diff --git a/data/test.csv b/data/test.csv new file mode 100644 index 0000000..b8efe72 --- /dev/null +++ b/data/test.csv @@ -0,0 +1,2309 @@ +uid|doc_title|doc_url|author_name|author_id|author_url|journal_name|journal_url|download_num|refer_num +1007926|标准文献半衰期算法及实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201208018.htm|陈云鹏,张宝林|24760904,24760900|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24760904%3b24760900%3b&scholarName=%e9%99%88%e4%ba%91%e9%b9%8f|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|316|7 +1007926|IFLA标准化工作的特点及对我国发展团体标准的启示|http://www.cnki.com.cn/Article/CJFDTOTAL-SJBZ201603020.htm|陈云鹏,吕安然,刘亚中,王霞|24760904,14292455,22892322|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24760904%3b14292455%3b22892322%3b&scholarName=%e9%99%88%e4%ba%91%e9%b9%8f|标准科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJBZ|143|3 +1007926|标准引用与论文引用、专利引用的异同比较研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SJBZ201512006.htm|陈云鹏,张明,高燕,王霞|24760904,32475314,33140341,22892322|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24760904%3b32475314%3b33140341%3b22892322%3b&scholarName=%e9%99%88%e4%ba%91%e9%b9%8f|标准科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJBZ|136|1 +1007926|标准分析及其在情报研究中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-SJBZ201406013.htm|陈云鹏,卢丽丽,王颖|24760904,09504518,31484252|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24760904%3b09504518%3b31484252%3b&scholarName=%e9%99%88%e4%ba%91%e9%b9%8f|标准科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJBZ|92|3 +1007926|基于支撑标准生命周期的标准情报报告服务模式研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SJBZ201512003.htm|陈云鹏,王霞,高燕,刘亚中|24760904,22892322,33140341,14292455|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24760904%3b22892322%3b33140341%3b14292455%3b&scholarName=%e9%99%88%e4%ba%91%e9%b9%8f|标准科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJBZ|49|1 +1007926|GB/T1.1的技术标准演进研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SJBZ201502007.htm|陈云鹏,汪滨,吕安然|24760904,09480560|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24760904%3b09480560%3b&scholarName=%e9%99%88%e4%ba%91%e9%b9%8f|标准科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJBZ|75|1 +1007926|技术竞争情报在企业标准化领域的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-SJBZ201207008.htm|陈云鹏|24760904|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24760904%3b&scholarName=%e9%99%88%e4%ba%91%e9%b9%8f|标准科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJBZ|105|2 +1007926|国内外动力用锂离子电池主要标准对比分析|http://www.cnki.com.cn/Article/CJFDTOTAL-SJBZ201404009.htm|计雄飞,陈云鹏,魏利伟,赵亚娟|24760899,24760904,25826287,17151178|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24760899%3b24760904%3b25826287%3b17151178%3b&scholarName=%e8%ae%a1%e9%9b%84%e9%a3%9e|标准科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJBZ|523|9 +1007926|关于我国标准起草人署名的历史探轶及现状研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZBZD201208017.htm|陈云鹏|24760904|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24760904%3b&scholarName=%e9%99%88%e4%ba%91%e9%b9%8f|中国标准导报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZBZD|81|8 +1007926|企业自我声明标准合规性评价方法初探|http://www.cnki.com.cn/Article/CJFDTOTAL-SJBZ201702010.htm|计雄飞,王霞,陈云鹏,张明|24760899,22892322,24760904,32475314|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24760899%3b22892322%3b24760904%3b32475314%3b&scholarName=%e8%ae%a1%e9%9b%84%e9%a3%9e|标准科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJBZ|109|4 +1007926|标准信息公益服务模式研究——以国家标准文献共享服务平台为例|http://www.cnki.com.cn/Article/CJFDTOTAL-SJBZ201512004.htm|汪滨,陈云鹏,张明,王霞,高燕|09480560,24760904,32475314,22892322,33140341|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09480560%3b24760904%3b32475314%3b22892322%3b33140341%3b&scholarName=%e6%b1%aa%e6%bb%a8|标准科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJBZ|70|1 +1007926|我国分析仪器性能测试标准体系框架研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TEST201209037.htm|张宝林,赵羽,计雄飞,陈云鹏,汪正范|24760900,25827699,27972970,24760899,24760904,10645904|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24760900%3b25827699%3b27972970%3b24760899%3b24760904%3b10645904%3b&scholarName=%e5%bc%a0%e5%ae%9d%e6%9e%97|分析测试学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TEST|152|2 +1007926|标准信息集成研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SJBZ201212009.htm|卢丽丽,陈云鹏,张宝林,计雄飞|09504518,24760904,24760900,24760899|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09504518%3b24760904%3b24760900%3b24760899%3b&scholarName=%e5%8d%a2%e4%b8%bd%e4%b8%bd|标准科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJBZ|37|2 +1007926|面向服务的标准信息专题知识组织|http://www.cnki.com.cn/Article/CJFDTOTAL-SJBZ201008010.htm|计雄飞,胡雄伟,张宝林,李国鹏,刘智洋,王玉琢,陈云鹏,王震|24760899,22306035,24760900,24760901,24760902,24760903,24760904,24760905|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24760899%3b22306035%3b24760900%3b24760901%3b24760902%3b24760903%3b24760904%3b24760905%3b&scholarName=%e8%ae%a1%e9%9b%84%e9%a3%9e|标准科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJBZ|93|4 +1007926|国内外标准文献开放获取资源的分析|http://www.cnki.com.cn/Article/CJFDTOTAL-SJBZ201102004.htm|李景,汪滨,魏利伟,潘薇,陈云鹏,李菁,旻苏,赵萍,王霞,李波,赵奇|09443699,09480560,25826287,10744747,24760904,22369392,14226066,23073761,22892322,09480548,29738973|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09443699%3b09480560%3b25826287%3b10744747%3b24760904%3b22369392%3b14226066%3b23073761%3b22892322%3b09480548%3b29738973%3b&scholarName=%e6%9d%8e%e6%99%af|标准科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJBZ|0|2 +1007926|标准引用与论文引用的比较研究|http://www.cnki.com.cn/Article/CJFDTOTAL-KYGL201705013.htm|陈云鹏,周国民,谢晨,汪滨|35630827,24760904,09729193,33138491,09480560|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35630827%3b24760904%3b09729193%3b33138491%3b09480560%3b&scholarName=%e9%99%88%e4%ba%91%e9%b9%8f|科研管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KYGL|176|0 +1007926|基于五要素模型的标准影响力评价方法研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201611020.htm|陈云鹏,周国民,汪滨,谢晨|35677002,24760904,35677003,09480560,33138491|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35677002%3b24760904%3b35677003%3b09480560%3b33138491%3b&scholarName=%e9%99%88%e4%ba%91%e9%b9%8f|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|151|3 +1007926|基于引证系数的论文影响力评价方法研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201105014.htm|钟文一,陈云鹏|06967127,24760904|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06967127%3b24760904%3b&scholarName=%e9%92%9f%e6%96%87%e4%b8%80|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|716|20 +1007926|技术标准情报分析服务研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SHIJ201618009.htm|陈云鹏,周国民|35630827,35757429|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35630827%3b35757429%3b&scholarName=%e9%99%88%e4%ba%91%e9%b9%8f|兰台世界|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SHIJ|39|0 +1007926|IFLA标准化工作的特点及对我国发展团体标准的启示|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZSSG201610001041.htm|陈云鹏,吕安然,刘亚中,王霞|24760904,14292455,22892322|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24760904%3b14292455%3b22892322%3b&scholarName=%e9%99%88%e4%ba%91%e9%b9%8f|||14|0 +1008827|纳米出版及其应用研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201807022.htm|牛丽慧,欧石燕|39363873,25904869|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=39363873%3b25904869%3b&scholarName=%e7%89%9b%e4%b8%bd%e6%85%a7|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|133|0 +1008827|微出版及其应用探析|http://www.cnki.com.cn/Article/CJFDTOTAL-XDQB201806013.htm|牛丽慧|39363873|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=39363873%3b&scholarName=%e7%89%9b%e4%b8%bd%e6%85%a7|现代情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDQB|86|0 +1009307|社会化媒体在图书馆阅读推广中的应用及其运行机制|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGG201410032.htm|王翠萍,高灵溪|06604030,30651660|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06604030%3b30651660%3b&scholarName=%e7%8e%8b%e7%bf%a0%e8%90%8d|图书馆工作与研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGG|548|12 +1009307|调查法在我国图书情报学研究中的应用回顾及展望|http://www.cnki.com.cn/Article/CJFDTOTAL-QBTS201401004.htm|梁宵萌,高灵溪|29674902,30651660|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29674902%3b30651660%3b&scholarName=%e6%a2%81%e5%ae%b5%e8%90%8c|情报探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBTS|175|2 +1009754|基于合著论文的学科知识流动网络的特征分析——以“药物化学”学科为例|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201501015.htm|徐晓艺,杨立英|32040566,33248649,22225223|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32040566%3b33248649%3b22225223%3b&scholarName=%e5%be%90%e6%99%93%e8%89%ba|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|576|8 +1009754|科研合作视角下的学科知识流动分析方法研究——以药物化学学科为例|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201419020.htm|徐晓艺,杨立英|32040566,33248649,22225223|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32040566%3b33248649%3b22225223%3b&scholarName=%e5%be%90%e6%99%93%e8%89%ba|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|408|9 +1009754|中国科学:“三驾马车”中的新锐——2013年SCI论文统计分析|http://www.cnki.com.cn/Article/CJFDTOTAL-KCGC201401004.htm|岳婷,杨立英,丁洁兰,周秋菊,徐晓艺,史双青,王昊贤|22224207,17263072,25972149,17194590,30806450,30806451,30806452|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22224207%3b17263072%3b25972149%3b17194590%3b30806450%3b30806451%3b30806452%3b&scholarName=%e5%b2%b3%e5%a9%b7|科学观察|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KCGC|256|2 +1011124|“中国的图书馆学”建设仍在路上——纪念梁启超《中华图书馆协会成立会演说辞》发表90周年|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201505002.htm|王子舟,孟晨霞,汪聪,苏杰,王东宁,张越,钱欣|06274927,32633899,32979696,32979697,32979698,25459256,25941041|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06274927%3b32633899%3b32979696%3b32979697%3b32979698%3b25459256%3b25941041%3b&scholarName=%e7%8e%8b%e5%ad%90%e8%88%9f|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|379|6 +1011124|中美公共图书馆服务规范比较研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201616003.htm|黄苑,汪聪|35582211,32979696|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35582211%3b32979696%3b&scholarName=%e9%bb%84%e8%8b%91|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|208|0 +1011124|β-双酮稀土元素配合物的质谱研究|http://www.cnki.com.cn/Article/CJFDTOTAL-HXXB198403005.htm|徐广智,汪聪慧,孙家镔,唐有祺|05967070,08110002,05965161,14824550|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967070%3b08110002%3b05965161%3b14824550%3b&scholarName=%e5%be%90%e5%b9%bf%e6%99%ba|化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HXXB|51|4 +1011461|高校图书馆信息资源共建共享的认识与定位|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGJ201105006.htm|郑立新,肖强|07437717,24565801|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07437717%3b24565801%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|图书馆建设|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGJ|570|11 +1011461|阅读危机背景下图书馆多元化阅读文化建设研究|http://www.cnki.com.cn/Article/CJFDTOTAL-LYTS201803030.htm|郑立新|07437717|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07437717%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|农业图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LYTS|75|1 +1011461|我国高校图书馆信息资源共建共享综述|http://www.cnki.com.cn/Article/CJFDTOTAL-TNGZ201107014.htm|郑立新,吴剑霞|07437717,07437687|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07437717%3b07437687%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|图书馆杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TNGZ|819|7 +1011461|图书馆员竞争能力构筑分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201107011.htm|郑立新,肖强,文庭孝|07437717,24565801,09242726|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07437717%3b24565801%3b09242726%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|270|5 +1011461|论图书馆员工隐性知识挖掘|http://www.cnki.com.cn/Article/CJFDTOTAL-XDQB201003010.htm|郑立新|07437717|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07437717%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|现代情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDQB|204|8 +1011461|图书馆移动参考咨询服务市场需求及策略分析|http://www.cnki.com.cn/Article/CJFDTOTAL-LYTS201607051.htm|郑立新|07437717|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07437717%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|农业图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LYTS|82|1 +1011461|湖南省高校图书馆信息资源共建共享研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGX201104019.htm|郑立新,熊燕,林则花|07437717,23694630,25852304|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07437717%3b23694630%3b25852304%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGX|191|4 +1011461|图书馆员的知识服务能力建设|http://www.cnki.com.cn/Article/CJFDTOTAL-QBTS201104006.htm|郑立新,肖强|07437717,24565801|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07437717%3b24565801%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|情报探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBTS|207|6 +1011461|浅谈机构知识库群联盟的建设|http://www.cnki.com.cn/Article/CJFDTOTAL-JXTS201102040.htm|郑立新,肖强|07437717,24565801|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07437717%3b24565801%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|江西图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXTS|247|2 +1011461|理念的变革与技术的进步对文献采访的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-TUSH201102008.htm|郑立新|07437717|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07437717%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|四川图书馆学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TUSH|70|3 +1011461|基于学习需求的高校图书馆移动嵌入服务模式研究|http://www.cnki.com.cn/Article/CJFDTOTAL-HNTX201606048.htm|郑立新|07437717|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07437717%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|河南图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HNTX|43|0 +1011461|从读者与图书馆的关系看信息公平构建|http://www.cnki.com.cn/Article/CJFDTOTAL-XDQB201101030.htm|郑立新|07437717|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07437717%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|现代情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDQB|101|0 +1011461|对怀化学院图书馆网站的设计与思考|http://www.cnki.com.cn/Article/CJFDTOTAL-HKTY201102029.htm|郑立新|07437717|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07437717%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|河北科技图苑|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HKTY|53|0 +1011461|论高校图书馆与信息素质教育|http://www.cnki.com.cn/Article/CJFDTOTAL-HUAI200503042.htm|郑立新,杨翊||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|怀化学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HUAI|39|1 +1011461|试论文献采访的疏漏补救|http://www.cnki.com.cn/Article/CJFDTOTAL-HNTX201101010.htm|郑立新|07437717|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07437717%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|河南图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HNTX|48|0 +1011461|略谈图书馆隐性知识的共享|http://www.cnki.com.cn/Article/CJFDTOTAL-NMKJ201010065.htm|郑立新|07437717|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07437717%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|内蒙古科技与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NMKJ|58|0 +1011461|高校图书馆“弯道超车”竞争因素分析|http://www.cnki.com.cn/Article/CJFDTOTAL-HKTY201005032.htm|郑立新|07437717|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07437717%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|河北科技图苑|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HKTY|40|0 +1011461|试论高校图书馆的信息加工及其实质|http://www.cnki.com.cn/Article/CJFDTOTAL-QBTS200503005.htm|郑立新|07437717|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07437717%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|情报探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBTS|85|3 +1011461|谈新洋Glis的SQL语句管理和数据安全备份|http://www.cnki.com.cn/Article/CJFDTOTAL-HUAI200608027.htm|郑立新,申雯|11678134,07437717|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11678134%3b07437717%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|怀化学院学报(自然科学)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HUAI|34|0 +1011461|规范随书光盘著录 提高随书光盘利用率|http://www.cnki.com.cn/Article/CJFDTOTAL-QBTS200603043.htm|郑立新|07437717|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07437717%3b&scholarName=%e9%83%91%e7%ab%8b%e6%96%b0|情报探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBTS|123|4 +1011461|关联数据研究进展概述|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201113015.htm|肖强,郑立新|24565801,07437717|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24565801%3b07437717%3b&scholarName=%e8%82%96%e5%bc%ba|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|810|15 +1011461|对高校图书馆智能化管理和服务的思考|http://www.cnki.com.cn/Article/CJFDTOTAL-HUAI200806045.htm|龙润琛,郑立新|17300633,07437717|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17300633%3b07437717%3b&scholarName=%e9%be%99%e6%b6%a6%e7%90%9b|怀化学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HUAI|148|0 +1049094|基于引文内容的单篇学术论文参考文献网络结构研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201410006.htm|卢超,章成志|30346081,13897453|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30346081%3b13897453%3b&scholarName=%e5%8d%a2%e8%b6%85|现代图书情报技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|298|4 +1049094|术语引用视角下的学科交叉测度——以PLOS ONE上六个学科为例|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201708006.htm|徐庶睿,卢超,章成志|36383536,30346081,13897453,08071869|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36383536%3b30346081%3b13897453%3b08071869%3b&scholarName=%e5%be%90%e5%ba%b6%e7%9d%bf|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|285|6 +1049094|中英译本图书社会化标签的比较研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201323005.htm|卢超,章成志|30346081,13897453|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30346081%3b13897453%3b&scholarName=%e5%8d%a2%e8%b6%85|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|130|1 +1049094|利用引文内容进行主题级学科交叉类型分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201723004.htm|徐庶睿,章成志,卢超|36383536,13897453,08071869,30346081|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36383536%3b13897453%3b08071869%3b30346081%3b&scholarName=%e5%be%90%e5%ba%b6%e7%9d%bf|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|295|4 +1049094|用于引文内容分析的标准化数据集构建|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201608008.htm|张梦莹,卢超,郑茹佳,章成志|35437212,30346081,35437213,13897453|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35437212%3b30346081%3b35437213%3b13897453%3b&scholarName=%e5%bc%a0%e6%a2%a6%e8%8e%b9|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|257|6 +1049094|基于状态模式的地铁纸币处理器设备驱动程序设计|http://www.cnki.com.cn/Article/CJFDTOTAL-JYXH201504026.htm|卢超,徐骏善|30346081,08066874|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30346081%3b08066874%3b&scholarName=%e5%8d%a2%e8%b6%85|计算机与现代化|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYXH|66|3 +1049094|学科交叉度的点面关系研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201710012.htm|徐庶睿,卢超,章成志|36383536,30346081,13897453|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36383536%3b30346081%3b13897453%3b&scholarName=%e5%be%90%e5%ba%b6%e7%9d%bf|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|172|2 +1049094|利用引文内容监测多学科交叉现象的方法与实证|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201619017.htm|章成志,徐庶睿,卢超|13897453,08071869,36383536,30346081|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13897453%3b08071869%3b36383536%3b30346081%3b&scholarName=%e7%ab%a0%e6%88%90%e5%bf%97|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|528|7 +1049094|学术专著引用行为研究——基于引文内容特征分析的视角|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201703011.htm|章成志,王玉琢,卢超|13897453,08071869,37700416,30346081|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13897453%3b08071869%3b37700416%3b30346081%3b&scholarName=%e7%ab%a0%e6%88%90%e5%bf%97|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|342|4 +1049094|不同学科领域的用户标签标注行为差异研究——以新浪微博用户的标签为例|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201609018.htm|池雪花,张颖怡,高星,卢超,章成志|33886771,33886770,17551787,30346081,13897453|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33886771%3b33886770%3b17551787%3b30346081%3b13897453%3b&scholarName=%e6%b1%a0%e9%9b%aa%e8%8a%b1|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|253|5 +1049094|情报分析中竞争假设分析法的优化研究|http://www.cnki.com.cn/Article/CJFDTOTAL-CQGY201401019.htm|张彤,卢超,严贝妮|11405066,30346081,06143784|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11405066%3b30346081%3b06143784%3b&scholarName=%e5%bc%a0%e5%bd%a4|重庆科技学院学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CQGY|209|0 +1049094|无锡地铁自动售票机付款子系统设计和开发|http://cdmd.cnki.com.cn/Article/CDMD-10288-1016222510.htm|卢超|30346081|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30346081%3b&scholarName=%e5%8d%a2%e8%b6%85|||70|0 +1049329|ERP的神经机制:诱发模型还是相位重排模型?|http://www.cnki.com.cn/Article/CJFDTOTAL-XLXD201104005.htm|张丹丹,罗跃嘉|25771026,05967206|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25771026%3b05967206%3b&scholarName=%e5%bc%a0%e4%b8%b9%e4%b8%b9|心理科学进展|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XLXD|616|12 +1049329|厌恶情绪加工特点的事件相关电位研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XLXB201411008.htm|金熠,张丹丹,柳昀哲,罗跃嘉|31967924,29518642,28734271,29518644|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31967924%3b29518642%3b28734271%3b29518644%3b&scholarName=%e9%87%91%e7%86%a0|心理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XLXB|1267|6 +1049329|婴儿社会和情绪脑机制的早期发展|http://www.cnki.com.cn/Article/CJFDTOTAL-KXTB201309002.htm|柳昀哲,张丹丹,罗跃嘉|28734271,25771026,05967206,28631877|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28734271%3b25771026%3b05967206%3b28631877%3b&scholarName=%e6%9f%b3%e6%98%80%e5%93%b2|科学通报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KXTB|770|5 +1049329|麻醉剂浓度对大鼠暴发-抑制脑电特征的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-SWGC201202004.htm|张丹丹,贾晓枫,丁海艳|25771026,25303276,10888003,27359084,08166062|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25771026%3b25303276%3b10888003%3b27359084%3b08166062%3b&scholarName=%e5%bc%a0%e4%b8%b9%e4%b8%b9|生物医学工程学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SWGC|117|1 +1049329|社会神经科学研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-JCXK201406004.htm|柳昀哲,张丹丹,罗跃嘉|28734271,29518642,29518644|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28734271%3b29518642%3b29518644%3b&scholarName=%e6%9f%b3%e6%98%80%e5%93%b2|中国科学:生命科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JCXK|793|2 +1049329|记忆抑制在正常人群与抑郁人群中的研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-XLKX201602036.htm|张丹丹,柳昀哲|29518642,25771026,28734271|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29518642%3b25771026%3b28734271%3b&scholarName=%e5%bc%a0%e4%b8%b9%e4%b8%b9|心理科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XLKX|596|5 +1049329|高校图书馆信息资源整合体系的构成及分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201310010.htm|张丹丹,刘松柏|07282856,06372819|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07282856%3b06372819%3b&scholarName=%e5%bc%a0%e4%b8%b9%e4%b8%b9|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|271|3 +1049329|抑郁障碍的核心脑机制—基于fMRI元分析的证据|http://www.cnki.com.cn/Article/CJFDTOTAL-JCXK201512005.htm|刘耀中,柳昀哲,林碗君,何振宏,张丹丹,关青,罗跃嘉|07747791,28734271,34098931,34085741,29518642,34098932,29518644,28631877|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07747791%3b28734271%3b34098931%3b34085741%3b29518642%3b34098932%3b29518644%3b28631877%3b&scholarName=%e5%88%98%e8%80%80%e4%b8%ad|中国科学:生命科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JCXK|736|8 +1049329|汶川5.12大地震地表次生灾害评价与分析|http://www.cnki.com.cn/Article/CJFDTOTAL-DZXE201009003.htm|孙晓宇,周成虎,郭兆成,张俊,苏奋振,仉天宇,张丹丹,吕婷婷|22201735,24953664,05967638,09607418,10342221,10342108,24953665,13989767,23254926,22500291|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22201735%3b24953664%3b05967638%3b09607418%3b10342221%3b10342108%3b24953665%3b13989767%3b23254926%3b22500291%3b&scholarName=%e5%ad%99%e6%99%93%e5%ae%87|地质学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DZXE|406|17 +1049329|早产儿脑白质损伤程度与早期脑电生理变化关系的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-DDKZ201305000.htm|刘云峰,童笑梅,周丛乐,张丹丹,朴梅花,李在玲|24684188,06279815,05964402,25771026,06273931,06280098|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24684188%3b06279815%3b05964402%3b25771026%3b06273931%3b06280098%3b&scholarName=%e5%88%98%e4%ba%91%e5%b3%b0|中国当代儿科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DDKZ|361|15 +1049329|新生儿睡眠期的脑电非线性分析方法|http://www.cnki.com.cn/Article/CJFDTOTAL-BJSC201106005.htm|杨宝爵,彭诚,丁海艳,张丹丹,刘云峰,叶大田|26844182,22065524,08166062,25771026,24684188,08834909|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26844182%3b22065524%3b08166062%3b25771026%3b24684188%3b08834909%3b&scholarName=%e6%9d%a8%e5%ae%9d%e7%88%b5|北京生物医学工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJSC|33|1 +1049329|精神分裂症自我参照加工能力受损的认知神经机制|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=ZHYX201309005126&dbname=IPFD9914|赵艳丽,张丹丹,谭淑平,范丰梅,宋崇升,崔界峰,范宏振,朱小林,张进国,李东|27007801,25771026,06332116,27007800,06332112,14350807,22144548,27007792,11475287,11384786|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27007801%3b25771026%3b06332116%3b27007800%3b06332112%3b14350807%3b22144548%3b27007792%3b11475287%3b11384786%3b&scholarName=%e8%b5%b5%e8%89%b3%e4%b8%bd|||31|0 +106558|基于新媒体技术和思维的学术期刊影响力提升理论研究|http://www.cnki.com.cn/Article/CJFDTOTAL-BJXB201801003.htm|胡小洋,游俊,熊显长,江津,陈道德|25921644,07366648,07360067,38670705,07365142|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25921644%3b07366648%3b07360067%3b38670705%3b07365142%3b&scholarName=%e8%83%a1%e5%b0%8f%e6%b4%8b|编辑学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJXB|308|6 +106558|“编辑学者化”的实质及现实可行性分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201103008.htm|游俊,胡小洋|07366648,25921644|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07366648%3b25921644%3b&scholarName=%e6%b8%b8%e4%bf%8a|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|222|17 +106558|文献计量分析:专业编辑的可选学术研究方向——以江汉大学1980年以来三大索引收录论文的统计分析为例|http://www.cnki.com.cn/Article/CJFDTOTAL-WHZG201204020.htm|胡小洋,游俊,赵燕|25921644,07366648,25293798|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25921644%3b07366648%3b25293798%3b&scholarName=%e8%83%a1%e5%b0%8f%e6%b4%8b|江汉大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WHZG|59|4 +106558|科技论文中的数据问题及原因分析|http://www.cnki.com.cn/Article/CJFDTOTAL-WHZG201204048.htm|游俊,胡小洋,赵燕|07366648,25921644,25293798|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07366648%3b25921644%3b25293798%3b&scholarName=%e6%b8%b8%e4%bf%8a|江汉大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WHZG|87|3 +106558|科技论文中数据问题的编辑审读技巧|http://www.cnki.com.cn/Article/CJFDTOTAL-BJXB201206011.htm|游俊,赵燕,胡小洋|07366648,25293798,25921644|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07366648%3b25293798%3b25921644%3b&scholarName=%e6%b8%b8%e4%bf%8a|编辑学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJXB|157|9 +106558|比较视角下的中国学术期刊发展问题研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201501004.htm|胡小洋,邱均平|32157344,25921644,05965051|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32157344%3b25921644%3b05965051%3b&scholarName=%e8%83%a1%e5%b0%8f%e6%b4%8b|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|924|18 +106558|编辑角色在提高外审稿质量中的行为分析|http://www.cnki.com.cn/Article/CJFDTOTAL-CBLY201807115.htm|赵燕,游俊,江津,胡小洋|25293798,07366648,38670705,25921644|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25293798%3b07366648%3b38670705%3b25921644%3b&scholarName=%e8%b5%b5%e7%87%95|传播力研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CBLY|47|1 +106558|“信息可视化”主题下的多学科知识结构探究——基于2004~2013年WoS数据库的文献计量和内容分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201505016.htm|胡小洋,李小涛,余厚强,邱均平|32157344,25921644,10584201,26977345,05965051|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32157344%3b25921644%3b10584201%3b26977345%3b05965051%3b&scholarName=%e8%83%a1%e5%b0%8f%e6%b4%8b|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|694|14 +106558|现代智库事业的发展历程及特征研究——基于学术研究视角|http://www.cnki.com.cn/Article/CJFDTOTAL-CDSK201603016.htm|胡小洋,邱均平|32157344,25921644,09007853,05965051|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32157344%3b25921644%3b09007853%3b05965051%3b&scholarName=%e8%83%a1%e5%b0%8f%e6%b4%8b|重庆大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CDSK|182|4 +106558|我国学术期刊的地域发展力研究——基于《RCCSE(2015—2016)》评价结果的统计分析|http://www.cnki.com.cn/Article/CJFDTOTAL-GHLJ201602021.htm|胡小洋,邱均平|32157344,25921644,05965051|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32157344%3b25921644%3b05965051%3b&scholarName=%e8%83%a1%e5%b0%8f%e6%b4%8b|中国劳动关系学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GHLJ|104|1 +106558|学术论文的网络首发:愿景·瓶颈·应对策略|http://www.cnki.com.cn/Article/CJFDTOTAL-BJXB201803032.htm|占莉娟,胡小洋|24676253,11664664,25921644|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24676253%3b11664664%3b25921644%3b&scholarName=%e5%8d%a0%e8%8e%89%e5%a8%9f|编辑学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJXB|170|0 +106558|庆发文和被引双增,贺质量和影响齐升——1980—2013年《情报理论与实践》载文的计量研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201412002.htm|邱均平,胡小洋|05965051,32157344,25921644|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05965051%3b32157344%3b25921644%3b&scholarName=%e9%82%b1%e5%9d%87%e5%b9%b3|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|198|4 +1072690|吕小萍:以缺口的名义|http://xuewen.cnki.net/CCND-SHZJ20050125ZZ29.html|吕小萍||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%90%95%e5%b0%8f%e8%90%8d|||6|0 +1074380|中国国际科技合作主导地位变迁和效度分析|http://www.cnki.com.cn/Article/CJFDTOTAL-KXXG201601001.htm|岳晓旭,袁军鹏,潘云涛,石淑香|31640077,15112420,09549408,25760937|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31640077%3b15112420%3b09549408%3b25760937%3b&scholarName=%e5%b2%b3%e6%99%93%e6%97%ad|科学学与科学技术管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KXXG|541|12 +1074380|常用科学知识图谱工具实例对比|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201405018.htm|岳晓旭,袁军鹏,高继平,翟丽华,潘云涛|31640077,15112420,31640078,26323676,09549408|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31640077%3b15112420%3b31640078%3b26323676%3b09549408%3b&scholarName=%e5%b2%b3%e6%99%93%e6%97%ad|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|657|11 +1074412|国内外信息生态研究的可视化分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201302031.htm|支凤稳,张海涛,许孝君,姚佳含,翁毓琦|25253929,07671978,27794764,28503352,28311616|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25253929%3b07671978%3b27794764%3b28503352%3b28311616%3b&scholarName=%e6%94%af%e5%87%a4%e7%a8%b3|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|1115|11 +1074412|档案信息资源数字化融合服务模式研究|http://www.cnki.com.cn/Article/CJFDTOTAL-DAXT201506013.htm|支凤稳,赵红颖|25253929,24539462|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25253929%3b24539462%3b&scholarName=%e6%94%af%e5%87%a4%e7%a8%b3|档案学通讯|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DAXT|559|7 +1074412|竞争情报扫描、动态能力与企业创新绩效的关系研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201503011.htm|王萍,支凤稳,沈涛|07668754,25253929,07674860|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668754%3b25253929%3b07674860%3b&scholarName=%e7%8e%8b%e8%90%8d|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|333|7 +1074412|组织间竞争情报共享与合作创新绩效的关系研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201505003.htm|王萍,支凤稳,张斌|07668754,25253929,08992752|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668754%3b25253929%3b08992752%3b&scholarName=%e7%8e%8b%e8%90%8d|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|339|4 +1074412|基于知识图谱的国际竞争情报研究的可视化分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201206028.htm|王萍,支凤稳,沈涛,王磊|07668754,25253929,07674860,07676363|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668754%3b25253929%3b07674860%3b07676363%3b&scholarName=%e7%8e%8b%e8%90%8d|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|820|11 +1074412|基于知识管理的企业科技创新模式|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201106009.htm|支凤稳,张海涛,钱丹丹|25253929,07671978,24968062|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25253929%3b07671978%3b24968062%3b&scholarName=%e6%94%af%e5%87%a4%e7%a8%b3|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|351|2 +1074412|运用概念格分析企业竞争情报需求|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201310012.htm|王萍,支凤稳,王毅,沈涛|07668754,25253929,07668925,07674860|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668754%3b25253929%3b07668925%3b07674860%3b&scholarName=%e7%8e%8b%e8%90%8d|现代图书情报技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|301|4 +1074412|政府公共危机信息预警流程与控制研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201217006.htm|张海涛,支凤稳,刘阔,翁毓琦|07671978,25253929,28311615,28311616|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671978%3b25253929%3b28311615%3b28311616%3b&scholarName=%e5%bc%a0%e6%b5%b7%e6%b6%9b|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|331|5 +1074412|企业跨国并购中的知识转移过程研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201709022.htm|沈涛,王丹,支凤稳|07674860,07670389,34602929|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07674860%3b07670389%3b34602929%3b&scholarName=%e6%b2%88%e6%b6%9b|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|246|1 +1074412|国内外环境扫描研究综述|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201523023.htm|沈涛,赵树宽,李金津,支凤稳|07674860,00089389,07659950,25253929|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07674860%3b00089389%3b07659950%3b25253929%3b&scholarName=%e6%b2%88%e6%b6%9b|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|337|2 +1074412|环境扫描对企业知识创新的作用研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201603010.htm|沈涛,赵树宽,支凤稳|07674860,00089389,34602929|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07674860%3b00089389%3b34602929%3b&scholarName=%e6%b2%88%e6%b6%9b|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|247|2 +1074412|高校图书馆核心价值体系:内涵、维度及结构模型|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201117008.htm|张海涛,钱丹丹,支凤稳|07671978,24968062,25253929|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671978%3b24968062%3b25253929%3b&scholarName=%e5%bc%a0%e6%b5%b7%e6%b6%9b|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|388|9 +1074412|基于知识价值链的企业知识转移模型|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201105006.htm|钱丹丹,张海涛,支凤稳|24968062,07671978,25253929|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24968062%3b07671978%3b25253929%3b&scholarName=%e9%92%b1%e4%b8%b9%e4%b8%b9|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|520|8 +1074412|创新导向的高校图书馆博客服务模式|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201011008.htm|张海涛,海金梅,张玉梅,支凤稳,钱丹丹|07671978,25253927,25253929,24968062|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671978%3b25253927%3b25253929%3b24968062%3b&scholarName=%e5%bc%a0%e6%b5%b7%e6%b6%9b|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|367|3 +1074412|社会化标注中用户群体认知地图的演化|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201407016.htm|张斌,支凤稳|08992752,25253929|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08992752%3b25253929%3b&scholarName=%e5%bc%a0%e6%96%8c|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|261|0 +1074412|环境扫描对企业知识创新的影响研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1015589298.htm|支凤稳|25253929|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25253929%3b&scholarName=%e6%94%af%e5%87%a4%e7%a8%b3|||495|3 +1076374|基于小波神经网络的地下水流数值模拟模型的替代模型研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGHJ201501025.htm|王宇,卢文喜,卞建民,安永凯|07671046,07678350,07665268,23434512|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b07678350%3b07665268%3b23434512%3b&scholarName=%e7%8e%8b%e5%ae%87|中国环境科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGHJ|420|13 +1076374|渗透率各向异性测量和评价方法综述|http://www.cnki.com.cn/Article/CJFDTOTAL-DQWJ201706036.htm|王宇竹,潘保芝|38416868,07674020|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38416868%3b07674020%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%ab%b9|地球物理学进展|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DQWJ|126|3 +1076374|探索式搜索行为的眼动研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201411008.htm|王宇,张云秋|07671046,15703313,07692085|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b15703313%3b07692085%3b&scholarName=%e7%8e%8b%e5%ae%87|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|482|14 +1076374|重症营养风险评分表的应用进展|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHHL201705019.htm|王宇娇,黄迎春,高岚|31007056,20598317,07695361|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31007056%3b20598317%3b07695361%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%a8%87|中华护理杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHHL|851|2 +1076374|致密砂岩储层的相渗特征与岩电参数的关系研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SJDZ201704029.htm|王宇竹,潘保芝,郭宇航|38416868,07674020,07664935|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38416868%3b07674020%3b07664935%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%ab%b9|世界地质|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJDZ|83|1 +1076374|三种地下水位动态预测模型在吉林西部的应用与对比|http://www.cnki.com.cn/Article/CJFDTOTAL-CCDZ201503021.htm|王宇,卢文喜,卞建民,侯泽宇|07671046,07678350,07665268,28775219|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b07678350%3b07665268%3b28775219%3b&scholarName=%e7%8e%8b%e5%ae%87|吉林大学学报(地球科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CCDZ|176|6 +1076374|Choukroun富血小板纤维蛋白对兔拔牙窝愈合修复的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-KQYZ201106005.htm|王宇,周延民,车彦海,于东升,付丽|23443217,07691944,07682925,26016703,21695216|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23443217%3b07691944%3b07682925%3b26016703%3b21695216%3b&scholarName=%e7%8e%8b%e5%ae%87|口腔医学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KQYZ|345|28 +1076374|图像质量客观评价的复数矩阵结构相似度方法|http://www.cnki.com.cn/Article/CJFDTOTAL-YQXB201405022.htm|王勇,王宇庆,赵晓晖|07671041,17743011,07681619|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671041%3b17743011%3b07681619%3b&scholarName=%e7%8e%8b%e5%8b%87|仪器仪表学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YQXB|400|16 +1076374|家庭结构变迁下居民的养老预期及养老方式偏好研究|http://www.cnki.com.cn/Article/CJFDTOTAL-RKXK201604006.htm|蒲新微,王宇超|07674080,35235861|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07674080%3b35235861%3b&scholarName=%e8%92%b2%e6%96%b0%e5%be%ae|人口学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/RKXK|941|12 +1076374|糖尿病周围神经病发病机制探讨|http://www.cnki.com.cn/Article/CJFDTOTAL-ZFSJ200505046.htm|王宇石,吕萍,饶明俐|07696059,07682649,05978272|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07696059%3b07682649%3b05978272%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%9f%b3|中风与神经疾病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZFSJ|346|38 +1076374|糖尿病周围神经病动物模型的建立、病理观察及巴曲酶保护作用研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZFSJ200701007.htm|王宇石,巨名飞,饶明俐|10994506,05978272,07696059|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10994506%3b05978272%3b07696059%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%9f%b3|中风与神经疾病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZFSJ|419|13 +1076374|任务类型对用户网络健康信息搜寻行为的影响研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201509024.htm|孙丽,王宇婷,曹锦丹|07669813,31467690,07653357|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07669813%3b31467690%3b07653357%3b&scholarName=%e5%ad%99%e4%b8%bd|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|687|15 +1076374|小波神经网络在白城地区浅层地下水埋深预测中的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JSGU201412017.htm|王宇,卢文喜,卞建民,侯泽宇|07671046,07678350,07665268,28775219|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b07678350%3b07665268%3b28775219%3b&scholarName=%e7%8e%8b%e5%ae%87|节水灌溉|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSGU|128|7 +1076374|基于叠加马尔科夫链和BP神经网络模型的降水量预测研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZNSD201409020.htm|王宇博,梁秀娟,乔雨,王亮,徐海岩,陈伟|30786147,07660714,30786146,07668730,31822890,07655535|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30786147%3b07660714%3b30786146%3b07668730%3b31822890%3b07655535%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%8d%9a|中国农村水利水电|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZNSD|213|7 +1076374|地下水位预测模型对比分析研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JSGU201507016.htm|王宇博,梁秀娟,乔雨,王中凯|30786147,07660714,30786146,29392264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30786147%3b07660714%3b30786146%3b29392264%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%8d%9a|节水灌溉|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSGU|148|4 +1076374|基于仿生学的四足行走机构|http://www.cnki.com.cn/Article/CJFDTOTAL-GWDZ201117012.htm|王宇,范钦钰,赵亚东,蔡冬,赵宁宁|07671046,26462958,07692243,11328141,26462959|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b26462958%3b07692243%3b11328141%3b26462959%3b&scholarName=%e7%8e%8b%e5%ae%87|电子设计工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GWDZ|257|10 +1076374|Ka波段卫星通信上行链路功率控制算法|http://www.cnki.com.cn/Article/CJFDTOTAL-CCYD200605005.htm|王宇飞,康健,刘义|07667235,07676876,07659018|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07667235%3b07676876%3b07659018%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%a3%9e|吉林大学学报(信息科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CCYD|256|14 +1076374|基于面部特征的嵌入式安全认证终端|http://www.cnki.com.cn/Article/CJFDTOTAL-CCYD201601021.htm|王宇航,成敏,李会坤,宋占伟|07668942,34277199,34277197,07680435|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668942%3b34277199%3b34277197%3b07680435%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%88%aa|吉林大学学报(信息科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CCYD|83|2 +1076374|2种方法在地下水水质评价中的应用——以吉林市为例|http://www.cnki.com.cn/Article/CJFDTOTAL-JSGU201405011.htm|王宇博,梁秀娟,乔雨|30786147,07660714,30786146|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30786147%3b07660714%3b30786146%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%8d%9a|节水灌溉|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSGU|134|7 +1076374|SNS网站信息生态系统现存问题初探|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201308006.htm|王宇,李建华,陈阳阳,孙学帅,单既民,魏昌龙,李海华|07671046,05963898,28959053,27794763,28783657,29218564,29218567|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b05963898%3b28959053%3b27794763%3b28783657%3b29218564%3b29218567%3b&scholarName=%e7%8e%8b%e5%ae%87|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|261|4 +1076374|企业网络与技术创新战略选择|http://www.cnki.com.cn/Article/CJFDTOTAL-DDJJ201311010.htm|王宇,李建华,陈阳阳,李海华|07671046,05963898,28959053,25144777|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b05963898%3b28959053%3b25144777%3b&scholarName=%e7%8e%8b%e5%ae%87|当代经济研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DDJJ|156|4 +1076374|Wallenberg综合征58例临床表现、CT及MRI分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZFSJ200305020.htm|王宇,冯加纯,饶明俐|05978272,07696058,07681025|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05978272%3b07696058%3b07681025%3b&scholarName=%e7%8e%8b%e5%ae%87|中风与神经疾病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZFSJ|192|22 +1076374|吉林西部地区地下水水质特征对应分析研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JSGU201303009.htm|王宇,卢文喜,夏广卿,程卫国|07671046,07678350,27599227,07671396|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b07678350%3b27599227%3b07671396%3b&scholarName=%e7%8e%8b%e5%ae%87|节水灌溉|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSGU|194|5 +1076374|糖尿病大鼠周围神经NGF的动态表达及巴曲酶对其影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZFSJ200703017.htm|王宇石,程门雪,饶明俐|05978272,07696059,07682481|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05978272%3b07696059%3b07682481%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%9f%b3|中风与神经疾病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZFSJ|98|17 +1076374|Ka波段多波束卫星通信降雨衰减功率优化法|http://www.cnki.com.cn/Article/CJFDTOTAL-CCYD200604007.htm|王宇飞,康健,王保印|07676876,07659018,07680860|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07676876%3b07659018%3b07680860%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%a3%9e|吉林大学学报(信息科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CCYD|184|8 +1076374|以吖啶酮为母体的双螺吡喃开关分子的设计、合成与性质研究|http://www.cnki.com.cn/Article/CJFDTOTAL-HXXB201608005.htm|陈鹏,王宇洋,张宇模,张晓安|07663646,31875613,33327176,26880448|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07663646%3b31875613%3b33327176%3b26880448%3b&scholarName=%e9%99%88%e9%b9%8f|化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HXXB|157|3 +1076374|基于强电磁脉冲的车辆电磁屏蔽效能仿真分析|http://www.cnki.com.cn/Article/CJFDTOTAL-XTFZ201012051.htm|王宇飞,赵晓晖,孙晓颖|07676876,10515292,07681619,07669864|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07676876%3b10515292%3b07681619%3b07669864%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%a3%9e|系统仿真学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XTFZ|311|6 +1076374|间质性肺纤维化治疗药物的筛选试验及作用机制的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLXZ200202010.htm|王宇宏,黄志卫,马忠森,周及红,于晓莉|20352652,20385214,20639895,20943750,07696509|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=20352652%3b20385214%3b20639895%3b20943750%3b07696509%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%ae%8f|中国老年学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLXZ|175|20 +1076374|Choukroun富血小板纤维蛋白机制及应用的研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-KQYZ201204038.htm|王宇,李琦,周延民|23443217,23443216,07691944|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23443217%3b23443216%3b07691944%3b&scholarName=%e7%8e%8b%e5%ae%87|口腔医学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KQYZ|207|6 +1076374|TREM-1、TNF-α和IL-8在单核细胞源性泡沫细胞中的表达|http://www.cnki.com.cn/Article/CJFDTOTAL-BQEB201002036.htm|王宇石,刘心刚,郑杨|07696059,21923022,07691875|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07696059%3b21923022%3b07691875%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%9f%b3|吉林大学学报(医学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BQEB|226|6 +1076374|巴曲酶对糖尿病周围神经病大鼠血液流变性的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZFSJ200601020.htm|王宇石,程门雪,饶明俐|07682481,05978272|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07682481%3b05978272%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%9f%b3|中风与神经疾病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZFSJ|93|20 +1076374|论土地承包经营权的变动模式|http://www.cnki.com.cn/Article/CJFDTOTAL-DDFX201105003.htm|蔡立东,王宇飞|07653322,07676876|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07653322%3b07676876%3b&scholarName=%e8%94%a1%e7%ab%8b%e4%b8%9c|当代法学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DDFX|930|18 +1076374|毛酸浆果乙醇提取物抗炎作用及其机制研究|http://www.cnki.com.cn/Article/CJFDTOTAL-YWPJ201605009.htm|陈芳,王宇晨,关雪娃,庞志强,路艳娇,王国强,郑敬彤,朱海林,王放|14035128,35816331,34308546,32211053,34308545,07670431,21979888,33403865,07680922|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14035128%3b35816331%3b34308546%3b32211053%3b34308545%3b07670431%3b21979888%3b33403865%3b07680922%3b&scholarName=%e9%99%88%e8%8a%b3|药物评价研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YWPJ|110|3 +1076374|缺失E3L基因减毒天坛株痘苗病毒的构建及筛选|http://www.cnki.com.cn/Article/CJFDTOTAL-ZSYX201111017.htm|王宇航,李霄,王浩然,阚式绂,王卓越,齐延新,吴娜,杜寿文,金宁一|07668942,25773323,20113691,11617228,26652551,24010004,23967482,25538149,26652550,26652552,26652553,26652554,25139197,25139198,05967940,20624281|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668942%3b25773323%3b20113691%3b11617228%3b26652551%3b24010004%3b23967482%3b25538149%3b26652550%3b26652552%3b26652553%3b26652554%3b25139197%3b25139198%3b05967940%3b20624281%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%88%aa|中国兽医学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZSYX|85|8 +1076374|发展协商民主 强化合法性基础|http://www.cnki.com.cn/Article/CJFDTOTAL-FBSF201304005.htm|王宇环|14338781|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14338781%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%8e%af|湖北社会科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FBSF|217|5 +1076374|新疆富蕴县蒙库铁矿床赋矿浅粒岩锆石U-Pb年代学研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GJSD201302008.htm|王宇利,孙丰月,李碧乐,张晗,王冠|29054391,07680517,05983774,11085400,10840778|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29054391%3b07680517%3b05983774%3b11085400%3b10840778%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%88%a9|地质与资源|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GJSD|123|2 +1076374|客观评价彩色图像质量的全四元数结构相似度方法|http://www.cnki.com.cn/Article/CJFDTOTAL-GDZJ201410028.htm|王勇,王宇庆,顾海军,赵晓辉|07671041,17743011,07664839,15005019|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671041%3b17743011%3b07664839%3b15005019%3b&scholarName=%e7%8e%8b%e5%8b%87|光电子.激光|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDZJ|244|3 +1076374|政府购买体育公共服务的现状问题及对策研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TYWS201509004.htm|邹晓峰,王宇婷|07688606,31467690|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07688606%3b31467690%3b&scholarName=%e9%82%b9%e6%99%93%e5%b3%b0|体育文化导刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TYWS|569|9 +1076374|组织网络在企业技术创新战略中的作用|http://www.cnki.com.cn/Article/CJFDTOTAL-SWYJ201305009.htm|王宇,李建华,陈阳阳|07671046,05963898,28959053|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b05963898%3b28959053%3b&scholarName=%e7%8e%8b%e5%ae%87|税务与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SWYJ|94|2 +1076374|胼胝体变性(Marchiafava-Bignami综合征)1例报道及文献复习|http://www.cnki.com.cn/Article/CJFDTOTAL-ZSZD201203058.htm|王宇,赵明明,马明,常佳,赵晴|23190759,26323752,23190758,27221108,07697695|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23190759%3b26323752%3b23190758%3b27221108%3b07697695%3b&scholarName=%e7%8e%8b%e5%ae%87|中国实验诊断学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZSZD|217|4 +1076374|糖尿病大鼠周围神经IGF-1及VEGF的动态表达及巴曲酶对其的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZFSJ200905016.htm|王宇石,程门雪,杨薇,饶明俐|07696059,07682481,07691055,05978272|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07696059%3b07682481%3b07691055%3b05978272%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%9f%b3|中风与神经疾病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZFSJ|133|3 +1076374|中国Ka波段卫星通信线路的雨衰分布特性|http://www.cnki.com.cn/Article/CJFDTOTAL-TXXB200608015.htm|康健,王宇飞|07676876,07659018|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07676876%3b07659018%3b&scholarName=%e5%ba%b7%e5%81%a5|通信学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TXXB|361|22 +1076374|证成与正当性:洛克路径与康德路径的对垒|http://www.cnki.com.cn/Article/CJFDTOTAL-BHDS200901013.htm|王宇环|14338781|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14338781%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%8e%af|北京航空航天大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BHDS|348|2 +1076374|巴曲酶对实验性糖尿病大鼠周围神经传导速度的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZFSJ200503018.htm|王宇石,朱丹,徐静,饶明俐|07682901,05978272,07681305,07696059|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07682901%3b05978272%3b07681305%3b07696059%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%9f%b3|中风与神经疾病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZFSJ|89|16 +1076374|胸腺素beta4在快速老化鼠耳蜗的过度表达|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHEB200412003.htm|王宇声,浅村贤二,宇佐美真一|07682767,09280556,09247222|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07682767%3b09280556%3b09247222%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%a3%b0|中华耳鼻咽喉科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHEB|68|4 +1076374|改进的响尾蛇双模式细胞模型的图像融合|http://www.cnki.com.cn/Article/CJFDTOTAL-GXJM201611029.htm|王勇,王宇庆,马娇|07671041,17743011,36153665|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671041%3b17743011%3b36153665%3b&scholarName=%e7%8e%8b%e5%8b%87|光学精密工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GXJM|64|0 +1076374|血清胱抑素C在糖尿病肾病早期肾损伤中的临床应用价值|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGCK201103052.htm|王宇,丁旭,关宝杰,王欣|24377670,07690070,23454139,25317498|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24377670%3b07690070%3b23454139%3b25317498%3b&scholarName=%e7%8e%8b%e5%ae%87|中国临床研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGCK|139|12 +1076374|分层梯度模量微沥青级配碎石对倒装式路面结构的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-CQJT201805008.htm|戴文亭,王宇放,王振,王琦|07653701,37850394,07687711,07676691|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07653701%3b37850394%3b07687711%3b07676691%3b&scholarName=%e6%88%b4%e6%96%87%e4%ba%ad|重庆交通大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CQJT|81|0 +1076374|《客从何处来》的“微传播”研究|http://www.cnki.com.cn/Article/CJFDTOTAL-KJCB201516057.htm|王宇涵|33322652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33322652%3b&scholarName=%e7%8e%8b%e5%ae%87%e6%b6%b5|科技传播|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJCB|205|2 +1076374|VSP资料约束地层反滤波研究|http://www.cnki.com.cn/Article/CJFDTOTAL-CCDZ2006S2011.htm|王宇,韩立国,崔杰|07671046,07673572,14183724|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b07673572%3b14183724%3b&scholarName=%e7%8e%8b%e5%ae%87|吉林大学学报(地球科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CCDZ|106|2 +1076374|职能主义法人分类模式批判——兼论我国民法典法人制度设计的支架|http://www.cnki.com.cn/Article/CJFDTOTAL-SHZX201109034.htm|蔡立东,王宇飞|07653322,07676876|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07653322%3b07676876%3b&scholarName=%e8%94%a1%e7%ab%8b%e4%b8%9c|社会科学战线|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SHZX|760|10 +1076374|公共决策合法性证成——论复兴同意的审议民主之想象|http://www.cnki.com.cn/Article/CJFDTOTAL-CBXK200805016.htm|王宇环|14338781|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14338781%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%8e%af|长白学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CBXK|255|2 +1076374|地震信号谱分解匹配追踪快速算法及其应用|http://www.cnki.com.cn/Article/CJFDTOTAL-SYWT201001003.htm|张显文,韩立国,王宇,单刚义|07680299,07673572,20914805,07664147|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07680299%3b07673572%3b20914805%3b07664147%3b&scholarName=%e5%bc%a0%e6%98%be%e6%96%87|石油物探|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SYWT|771|32 +1076374|东周时期中国北方系腰带研究(一)|http://www.cnki.com.cn/Article/CJFDTOTAL-BJKG201701010.htm|潘玲,王宇|07679205,07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07679205%3b07671046%3b&scholarName=%e6%bd%98%e7%8e%b2|边疆考古研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJKG|60|0 +1076374|短棒状杆菌有效成分的分离及其作用|http://www.cnki.com.cn/Article/CJFDTOTAL-SWZP200505014.htm|王宇宏,高航,倪维华,霍得胜,台桂香|15083337,07668348,15018803,07676877,07654070|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15083337%3b07668348%3b15018803%3b07676877%3b07654070%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%ae%8f|中国生物制品学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SWZP|104|10 +1076374|凹球面双发射极超声阵列悬浮能力研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XAJT201811016.htm|李新波,王英伟,王宇昆,刘国君,吴越,石要武|07666637,10573739,40396346,07677771,07669130,07674904|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07666637%3b10573739%3b40396346%3b07677771%3b07669130%3b07674904%3b&scholarName=%e6%9d%8e%e6%96%b0%e6%b3%a2|西安交通大学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XAJT|96|0 +1076374|医学生的互联网+创新实践|http://www.cnki.com.cn/Article/CJFDTOTAL-ZYEB201606015.htm|王宇声,房宁,崔香艳,汪欣|07682767,17447372,07682484,07690958|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07682767%3b17447372%3b07682484%3b07690958%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%a3%b0|中国医学文摘(耳鼻咽喉科学)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZYEB|84|0 +1076374|中韩在朝核问题上的政策协调:合作基础与行动路径|http://www.cnki.com.cn/Article/CJFDTOTAL-DDHG201502004.htm|王箫轲,王宇轩|24112638,31935231|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24112638%3b31935231%3b&scholarName=%e7%8e%8b%e7%ae%ab%e8%bd%b2|当代韩国|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DDHG|305|3 +1076374|手性配合物模板剂对磷酸锌骨架的手性传递|http://www.cnki.com.cn/Article/CJFDTOTAL-WJHX200201010.htm|于吉红,王宇,施展,徐如人|05965171,07668048,07671046,07690639|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05965171%3b07668048%3b07671046%3b07690639%3b&scholarName=%e4%ba%8e%e5%90%89%e7%ba%a2|无机化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WJHX|256|14 +1076374|关于教师队伍管理问题改革的思考|http://www.cnki.com.cn/Article/CJFDTOTAL-GJXK201616086.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|高教学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GJXK|43|2 +1076374|地铁换乘站开挖对临近建筑物影响的分析研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SGJS2017S1182.htm|戴文亭,王宇放,王振,王琦|07653701,37850394,07687711,07676691|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07653701%3b37850394%3b07687711%3b07676691%3b&scholarName=%e6%88%b4%e6%96%87%e4%ba%ad|施工技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SGJS|49|1 +1076374|变位分配原理在十字交叉地铁站施工中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-SYJZ201705005.htm|戴文亭,王宇放,王振,王琦|07653701,37850394,07687711,07676691|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07653701%3b37850394%3b07687711%3b07676691%3b&scholarName=%e6%88%b4%e6%96%87%e4%ba%ad|沈阳建筑大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SYJZ|34|0 +1076374|关于高校教学改革与创新型人才培养的探讨|http://www.cnki.com.cn/Article/CJFDTOTAL-WJZZ201615066.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|文教资料|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WJZZ|18|4 +1076374|糖尿病大鼠周围神经bFGF的动态表达及巴曲酶对其的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZFSJ201003012.htm|王宇石,程门雪,饶明俐|07696059,07682481,05978272|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07696059%3b07682481%3b05978272%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%9f%b3|中风与神经疾病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZFSJ|89|1 +1076374|集束化护理干预在预防脑卒中病人相关性肺炎中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-SXHZ201519046.htm|邓秋霞,高岚,王宇娇,王金玲|24233527,07695361,31007056,11696904|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24233527%3b07695361%3b31007056%3b11696904%3b&scholarName=%e9%82%93%e7%a7%8b%e9%9c%9e|护理研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SXHZ|324|28 +1076374|板材三维曲面翻边的逆成形预示与修边线确定|http://www.cnki.com.cn/Article/CJFDTOTAL-LXXB200704011.htm|张向奎,鲍益东,胡平,胡斯博,郎志奎,王宇|11141811,07675684,07663451,07671046,07674325,07666033|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11141811%3b07675684%3b07663451%3b07671046%3b07674325%3b07666033%3b&scholarName=%e5%bc%a0%e5%90%91%e5%a5%8e|力学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LXXB|242|29 +1076374|血液透析患者内瘘渗血的预防及护理对策|http://www.cnki.com.cn/Article/CJFDTOTAL-HZZZ201328102.htm|王宇,张明玉,李双,王慧颖|07696058,29974048,29974055,29974049|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07696058%3b29974048%3b29974055%3b29974049%3b&scholarName=%e7%8e%8b%e5%ae%87|中外医疗|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HZZZ|92|4 +1076374|基于对应分析法的吉林西部地下水化学特征时空演化研究|http://www.cnki.com.cn/Article/CJFDTOTAL-HJXX201603010.htm|董海彪,卢文喜,安永凯,程卫国,王宇|31067071,07678350,23434512,07671396,07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31067071%3b07678350%3b23434512%3b07671396%3b07671046%3b&scholarName=%e8%91%a3%e6%b5%b7%e5%bd%aa|环境科学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HJXX|216|5 +1076374|颤振征兆早期识别的模糊信息融合法|http://www.cnki.com.cn/Article/CJFDTOTAL-JXXB200402023.htm|孔繁森,王宇,于骏一|07678841,07671046,07659028|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07678841%3b07671046%3b07659028%3b&scholarName=%e5%ad%94%e7%b9%81%e6%a3%ae|机械工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXXB|229|14 +1076374|石菖蒲及其有效成分α-细辛醚对癫痫幼鼠脑海马神经元凋亡的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZCYO200608035.htm|杨立彬,李树蕾,黄艳智,王宇虹,梁建民,张淑琴|07691050,07660048,07697572,07695884,07025783,07026045|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07691050%3b07660048%3b07697572%3b07695884%3b07025783%3b07026045%3b&scholarName=%e6%9d%a8%e7%ab%8b%e5%bd%ac|中草药|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZCYO|511|39 +1076374|目的论证成与自生证成——大卫·施密茨证成国家的两种方式|http://www.cnki.com.cn/Article/CJFDTOTAL-BHDS200902014.htm|王宇环|14338781|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14338781%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%8e%af|北京航空航天大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BHDS|80|1 +1076374|非对称均值回归与金融危机形成机理——基于ANST-GARCH模型的实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-BUSI201503002.htm|宋玉臣,王宇洋|07668164,31875613|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668164%3b31875613%3b&scholarName=%e5%ae%8b%e7%8e%89%e8%87%a3|商业研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BUSI|164|1 +1076374|石菖蒲及其有效成分α-细辛醚对癫痫幼鼠运动行为和记忆功能的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZCYO200507027.htm|杨立彬,李树蕾,黄艳智,梁建民,王宇虹,张淑琴|07697572,07660048,07695884,07691843,14450630|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07697572%3b07660048%3b07695884%3b07691843%3b14450630%3b&scholarName=%e6%9d%a8%e7%ab%8b%e5%bd%ac|中草药|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZCYO|476|34 +1076374|矽卡岩型矿床中石榴石的特征|http://www.cnki.com.cn/Article/CJFDTOTAL-JSTB201802051.htm|王宇威|39427476|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=39427476%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%a8%81|中国金属通报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSTB|41|0 +1076374|关于我国粮食安全问题的思考|http://www.cnki.com.cn/Article/CJFDTOTAL-NCJI201616006.htm|王宇鹏|35177392|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35177392%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%b9%8f|农村经济与科技|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NCJI|192|0 +1076374|单核细胞源性泡沫细胞TREM-1的表达|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLXZ201009038.htm|王宇石,刘心刚|07696059,21923022|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07696059%3b21923022%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%9f%b3|中国老年学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLXZ|92|1 +1076374|松花江吉林段傍河地带地下水化学特征及成因|http://www.cnki.com.cn/Article/CJFDTOTAL-RIVE201811005.htm|宫晓艳,卞建民,王宇,孙晓庆,杨广申|35692658,07665268,07671046,25585394,39408406,33087862|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35692658%3b07665268%3b07671046%3b25585394%3b39408406%3b33087862%3b&scholarName=%e5%ae%ab%e6%99%93%e8%89%b3|人民长江|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/RIVE|82|0 +1076374|均匀设计-BP神经网络优化超临界CO_2提取杜香挥发油工艺|http://www.cnki.com.cn/Article/CJFDTOTAL-NYGU2011S2057.htm|姜玮,刘静波,陶旭,王宇,张燕,王二雷,卢静|17724943,07672250,25187460,26857665,07680353,10555790,07673090|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17724943%3b07672250%3b25187460%3b26857665%3b07680353%3b10555790%3b07673090%3b&scholarName=%e5%a7%9c%e7%8e%ae|农业工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NYGU|398|13 +1076374|1例周围神经病并发横纹肌溶解综合征病人的护理|http://www.cnki.com.cn/Article/CJFDTOTAL-SXHZ201732038.htm|路子文,王宇娇,王永红|07690892,31007056,11669854|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07690892%3b31007056%3b11669854%3b&scholarName=%e8%b7%af%e5%ad%90%e6%96%87|护理研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SXHZ|53|0 +1076374|PLA/MSM缓释微球的制备及生物活性|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH201304042.htm|王鑫众,刘建国,唐宇锋,王宇,章培标,陈学思|28745813,28745814,07690584,28745815,28745816,21649310,10340110,09521903|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28745813%3b28745814%3b07690584%3b28745815%3b28745816%3b21649310%3b10340110%3b09521903%3b&scholarName=%e7%8e%8b%e9%91%ab%e4%bc%97|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|286|6 +1076374|正义、效率与国家证成——克里斯托芬·毛瑞斯的国家证成路径|http://www.cnki.com.cn/Article/CJFDTOTAL-BHDS201202005.htm|王宇环|14338781|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14338781%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%8e%af|北京航空航天大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BHDS|53|0 +1076374|吉林西部盐碱土壤水力学参数特征及其影响因素|http://www.cnki.com.cn/Article/CJFDTOTAL-DBDX201602025.htm|刘彩虹,卞建民,王宇|26843712,07665268,07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26843712%3b07665268%3b07671046%3b&scholarName=%e5%88%98%e5%bd%a9%e8%99%b9|东北大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DBDX|189|7 +1076374|组合权重模糊数学法在水质评价中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-RMHH201505023.htm|乔雨,梁秀娟,王宇博,肖长来,刘泓志,刘佳|30786146,07660714,30786147,07670020,29350773,07677809|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30786146%3b07660714%3b30786147%3b07670020%3b29350773%3b07677809%3b&scholarName=%e4%b9%94%e9%9b%a8|人民黄河|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/RMHH|476|12 +1076374|改进的模糊数学法在地下水水质评价中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-SDNY201506007.htm|乔雨,梁秀娟,王宇博,闫佰忠,刘泓志,刘佳|30786146,07660714,30786147,23282379,29350773,07677809|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30786146%3b07660714%3b30786147%3b23282379%3b29350773%3b07677809%3b&scholarName=%e4%b9%94%e9%9b%a8|水电能源科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SDNY|423|7 +1076374|植物修复技术在水环境污染控制中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-SZYB201001016.htm|张冬冬,肖长来,梁秀娟,许斌,王宇轩,孙瑞瑞|07671389,07670020,07660714,07670198,23906083,23470920|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671389%3b07670020%3b07660714%3b07670198%3b23906083%3b23470920%3b&scholarName=%e5%bc%a0%e5%86%ac%e5%86%ac|水资源保护|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZYB|961|26 +1076374|高阶统计量方法在地震信号分析中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-CCDZ2007S1035.htm|邢贞贞,韩立国,王宇,秦雪霏|15094632,07673572,20914805,07674159|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15094632%3b07673572%3b20914805%3b07674159%3b&scholarName=%e9%82%a2%e8%b4%9e%e8%b4%9e|吉林大学学报(地球科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CCDZ|577|18 +1076374|解读《飘》中的南方文化情结|http://www.cnki.com.cn/Article/CJFDTOTAL-QNWJ201705083.htm|王宇涵|33322652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33322652%3b&scholarName=%e7%8e%8b%e5%ae%87%e6%b6%b5|青年文学家|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QNWJ|9|0 +1076374|快速老化鼠耳蜗的cDNA微阵列分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLXZ200801005.htm|王宇声,雷爱军,杜波|07681084,07682767,07690459|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07681084%3b07682767%3b07690459%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%a3%b0|中国老年学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLXZ|104|2 +1076374|针对未绑定问题的买卖方水印协议|http://www.cnki.com.cn/Article/CJFDTOTAL-JLGY201405036.htm|温泉,王宇飞,张新鹏|07669041,10515292,08539257|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07669041%3b10515292%3b08539257%3b&scholarName=%e6%b8%a9%e6%b3%89|吉林大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLGY|44|2 +1076374|富血小板纤维蛋白修复兔颅骨骨缺损的实验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-KQYZ201107015.htm|李琦,周延民,翟静捷,王宇,张明锐|23443216,07691944,26138147,23443217,22665187|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23443216%3b07691944%3b26138147%3b23443217%3b22665187%3b&scholarName=%e6%9d%8e%e7%90%a6|口腔医学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KQYZ|359|19 +1076374|中药石菖蒲及其主要成分α-细辛醚对癫痫幼鼠惊厥行为及脑电图的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-BQEB200601030.htm|李树蕾,杨立彬,黄艳智,梁建民,王宇虹,张淑琴|07025783,07691843,07660048,07691050,07697572,07695884|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07025783%3b07691843%3b07660048%3b07691050%3b07697572%3b07695884%3b&scholarName=%e6%9d%8e%e6%a0%91%e8%95%be|吉林大学学报(医学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BQEB|447|29 +1076374|环孢霉素A对人胚肺纤维母细胞增殖及凋亡的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-BQEB200304043.htm|王宇宏,马忠森,王秀丽,张浩|07689337,07678931,07679603,07694041|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07689337%3b07678931%3b07679603%3b07694041%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%ae%8f|吉林大学学报(医学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BQEB|91|1 +1076374|重组人胶原绑定骨形态发生蛋白2在大肠杆菌中的表达、纯化与复性|http://www.cnki.com.cn/Article/CJFDTOTAL-BQEB201602007.htm|吴乃蓬,王宇,宋佳,武振旭,高田林,冯祥汝,付川,王宗良,王春艳|34589471,21649310,17459006,34589472,32288686,34589473,34589474,23300733,07680893|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34589471%3b21649310%3b17459006%3b34589472%3b32288686%3b34589473%3b34589474%3b23300733%3b07680893%3b&scholarName=%e5%90%b4%e4%b9%83%e8%93%ac|吉林大学学报(医学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BQEB|98|0 +1076374|腐植酸作用下γ-六氯环己烷在冰相中的光转化|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH201612018.htm|包思琪,康春莉,钟宇博,周林,姚志富,黄冬梅,王宇寒,田涛|31059999,07665992,30687029,07676646,31660907,07674362,33415782,23703238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31059999%3b07665992%3b30687029%3b07676646%3b31660907%3b07674362%3b33415782%3b23703238%3b&scholarName=%e5%8c%85%e6%80%9d%e7%90%aa|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|74|2 +1076374|胶原/羟基磷灰石复合材料的制备及用于骨缺损修复的研究现状|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHSX201603016.htm|陈利,陈月,王宗良,王宇,章培标|11200342,32483577,07655856,23300733,34169028,21649310,33234153,10340110|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11200342%3b32483577%3b07655856%3b23300733%3b34169028%3b21649310%3b33234153%3b10340110%3b&scholarName=%e9%99%88%e5%88%a9|中华损伤与修复杂志(电子版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHSX|294|2 +1076374|多分辨率小波分析在线状要素简化中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-DLGT200505009.htm|王明常,王宇,邢立新,杨毅恒,李建平|07671046,09543512,07668742,07688221,07673695|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b09543512%3b07668742%3b07688221%3b07673695%3b&scholarName=%e7%8e%8b%e6%98%8e%e5%b8%b8|地理与地理信息科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DLGT|187|7 +1076374|IL-12和IL-18的体外联合孵育协同增强P0_(180-199)T/Th1细胞增殖和分化的实验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZFSJ200404005.htm|王宇虹,张淑琴,蔡正旭,杨立斌,梁建民|07695307,20830752,14978544,07695306,07695302|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07695307%3b20830752%3b14978544%3b07695306%3b07695302%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%99%b9|中风与神经疾病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZFSJ|62|0 +1076374|变速肢体延长与肌肉损伤|http://www.cnki.com.cn/Article/CJFDTOTAL-ZJXS200212007.htm|张新,王宇,吴其常,王春禹|07696058,07690968,05973589|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07696058%3b07690968%3b05973589%3b&scholarName=%e5%bc%a0%e6%96%b0|中国矫形外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZJXS|50|13 +1076374|基于极限学习机面部识别的疲劳驾驶监测方法的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SBGL201809042.htm|赵旭阳,王宇豪|35544585,39485921|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35544585%3b39485921%3b&scholarName=%e8%b5%b5%e6%97%ad%e9%98%b3|中国设备工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SBGL|76|0 +1076374|中国农村制度变革过程中的金融冲突与解决路径|http://www.cnki.com.cn/Article/CJFDTOTAL-SHZX201408016.htm|宋玉臣,王宇洋|07668164,31875613|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668164%3b31875613%3b&scholarName=%e5%ae%8b%e7%8e%89%e8%87%a3|社会科学战线|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SHZX|102|2 +1076374|非满载汽车罐车液体冲击等效机械模型|http://www.cnki.com.cn/Article/CJFDTOTAL-JLGY201306009.htm|郑雪莲,李显生,任园园,王宇宁,杨猛|25968913,07660081,17471590,27671084,07689761|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25968913%3b07660081%3b17471590%3b27671084%3b07689761%3b&scholarName=%e9%83%91%e9%9b%aa%e8%8e%b2|吉林大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLGY|141|9 +1076374|α,β,γ,δ-四苯基卟啉的纯制|http://www.cnki.com.cn/Article/CJFDTOTAL-JLDX198104016.htm|王宇天,刘国发,梁映秋|07666718,07687689,07677391|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07666718%3b07687689%3b07677391%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%a4%a9|吉林大学自然科学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLDX|47|2 +1076374|外科手术联合放射性粒子~(125)I植入治疗晚期头颈部恶性肿瘤|http://www.cnki.com.cn/Article/CJFDTOTAL-EBYT200907011.htm|杜波,王宇声,张岩,杜宝东|07690459,07682767,07691850,05975911|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07690459%3b07682767%3b07691850%3b05975911%3b&scholarName=%e6%9d%9c%e6%b3%a2|中国耳鼻咽喉头颈外科|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/EBYT|131|4 +1076374|基于信息融合方法的切削颤振状态识别技术|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDGC200402018.htm|孔繁森,王宇,于骏一|07659028,07678841,06466063|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07659028%3b07678841%3b06466063%3b&scholarName=%e5%ad%94%e7%b9%81%e6%a3%ae|振动工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDGC|177|4 +1076374|创新型企业的理念创新|http://www.cnki.com.cn/Article/CJFDTOTAL-SWYJ200705004.htm|田波,赵英才,王宇|07681645,07671046,07668424|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07681645%3b07671046%3b07668424%3b&scholarName=%e7%94%b0%e6%b3%a2|税务与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SWYJ|394|14 +1076374|石墨烯/尼龙66导电纳米复合材料的制备与性能研究|http://www.cnki.com.cn/Article/CJFDTOTAL-HGXC201503016.htm|王宇遥,刘畅,杨丽龙,翟春熙,刘申,宫克难,王贵宾|29632992,26864346,07670425|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29632992%3b26864346%3b07670425%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%81%a5|化工新型材料|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HGXC|601|4 +1076374|《支那语军用会话》研究——日本侵华“军用”中国语教科书铁证|http://www.cnki.com.cn/Article/CJFDTOTAL-YBDS200603017.htm|陈珊珊,王宇宏|20248688,07653506|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=20248688%3b07653506%3b&scholarName=%e9%99%88%e7%8f%8a%e7%8f%8a|延边大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YBDS|161|8 +1076374|试析真人秀纪录片节目对传统文化传播的意义——以《客从何处来》为例|http://www.cnki.com.cn/Article/CJFDTOTAL-XBGS201605099.htm|周元松,王宇涵|34959410,33322652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34959410%3b33322652%3b&scholarName=%e5%91%a8%e5%85%83%e6%9d%be|西部广播电视|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XBGS|178|3 +1076374|稀土乙酰丙酮络合物的拉曼光谱(Ⅱ)|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH198301014.htm|刘国发,王宇天,赵永年,梁映秋|07666718,07687689,00009692,07677391|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07666718%3b07687689%3b00009692%3b07677391%3b&scholarName=%e5%88%98%e5%9b%bd%e5%8f%91|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|107|10 +1076374|输血安全与成分输血|http://www.cnki.com.cn/Article/CJFDTOTAL-JLYX200902026.htm|冷雪,王宇,齐宏欣|22044926,07696058,11291763|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22044926%3b07696058%3b11291763%3b&scholarName=%e5%86%b7%e9%9b%aa|吉林医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLYX|219|6 +1076374|外周血抗Survivin抗体在喉癌诊断中的意义|http://www.cnki.com.cn/Article/CJFDTOTAL-ZSZD201805054.htm|林铭轩,陈阳,王东霞,温得中,王宇声|39231127,07663696,37850723,07671721,07682767|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=39231127%3b07663696%3b37850723%3b07671721%3b07682767%3b&scholarName=%e6%9e%97%e9%93%ad%e8%bd%a9|中国实验诊断学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZSZD|24|0 +1076374|髋臼成形与股骨截骨联合术治疗儿童发育性髋关节发育不良|http://www.cnki.com.cn/Article/CJFDTOTAL-ZXDY201423018.htm|臧俊亭,王宇航,孙博,赵智越,李长胜|31639874,31275046,31639875,31639876,07695427|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31639874%3b31275046%3b31639875%3b31639876%3b07695427%3b&scholarName=%e8%87%a7%e4%bf%8a%e4%ba%ad|中国现代医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZXDY|75|2 +1076374|大鼠颈总动脉分次结扎建立血管性痴呆模型评价|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLXZ201201032.htm|马明,赵晴,杜建时,王宇|23190758,07697695,07684785,23190759|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23190758%3b07697695%3b07684785%3b23190759%3b&scholarName=%e9%a9%ac%e6%98%8e|中国老年学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLXZ|297|14 +1076374|依达拉奉对血管性痴呆大鼠海马线粒体COX活性及基因表达的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLXZ200915023.htm|赵晴,杜建时,徐忠信,李新颖,王海燕,赵明明,马明,王宇|07697695,07684785,07692483,07697311,21923095,22585053,23190758,23190759|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07697695%3b07684785%3b07692483%3b07697311%3b21923095%3b22585053%3b23190758%3b23190759%3b&scholarName=%e8%b5%b5%e6%99%b4|中国老年学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLXZ|266|12 +1076374|五家子灌区引水对镇赉县低平原的环境影响|http://www.cnki.com.cn/Article/CJFDTOTAL-CCDZ200702023.htm|肖长来,贾涛,梁秀娟,李淼,王宇,王洪波|10902350,10899011,07656875,07670020,16751580|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10902350%3b10899011%3b07656875%3b07670020%3b16751580%3b&scholarName=%e8%82%96%e9%95%bf%e6%9d%a5|吉林大学学报(地球科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CCDZ|129|11 +1076374|小波变换理论的线状要素制图综合研究|http://www.cnki.com.cn/Article/CJFDTOTAL-CCDZ2005S1031.htm|王明常,谷兰英,王宇,李建平|07664827,07671046,07668742,09543512|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07664827%3b07671046%3b07668742%3b09543512%3b&scholarName=%e7%8e%8b%e6%98%8e%e5%b8%b8|吉林大学学报(地球科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CCDZ|289|9 +1076374|通货膨胀经济中均衡选择问题研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SJJJ200410004.htm|张世伟,罗胤,王宇星|07691502,07673224,07687690|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07691502%3b07673224%3b07687690%3b&scholarName=%e5%bc%a0%e4%b8%96%e4%bc%9f|世界经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJJJ|337|2 +1076374|稀土乙酰丙酮络合物的激光拉曼和红外光谱(Ⅰ)|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH198101011.htm|梁映秋,刘举正,刘国发,赵永年,王宇天|07666718,07687689,00009692,05972294,07677391|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07666718%3b07687689%3b00009692%3b05972294%3b07677391%3b&scholarName=%e6%a2%81%e6%98%a0%e7%a7%8b|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|158|31 +1076374|大型基坑降水工程弱透水层水文地质参数的计算|http://www.cnki.com.cn/Article/CJFDTOTAL-GCKC201004011.htm|方樟,肖长来,马喆,丛远飞,王宇轩|11160571,07670020,10908103,23906082,10681309,23906083,23906084|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11160571%3b07670020%3b10908103%3b23906082%3b10681309%3b23906083%3b23906084%3b&scholarName=%e6%96%b9%e6%a8%9f|工程勘察|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GCKC|415|7 +1076374|即刻种植间隙充填富血小板纤维蛋白修复骨缺损2例|http://www.cnki.com.cn/Article/CJFDTOTAL-ZSKQ200908030.htm|周延民,李琦,储顺礼,李春艳,王宇|07691944,23443216,11042728,17655773,23443217|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07691944%3b23443216%3b11042728%3b17655773%3b23443217%3b&scholarName=%e5%91%a8%e5%bb%b6%e6%b0%91|中国实用口腔科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZSKQ|754|51 +1076374|带状非线性方程组的一种换元解法|http://www.cnki.com.cn/Article/CJFDTOTAL-JLDX199101004.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|吉林大学自然科学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLDX|19|1 +1076374|程序化护理管理在风湿科患者精准服药率中的作用|http://www.cnki.com.cn/Article/CJFDTOTAL-XDLH201705003.htm|姜珊,郭彩霞,王宇娇,赵新明|32843845,07684805,37454748,37454749|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32843845%3b07684805%3b37454748%3b37454749%3b&scholarName=%e5%a7%9c%e7%8f%8a|现代临床护理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDLH|62|2 +1076374|基于褶积理论的深度域地震资料反演|http://www.cnki.com.cn/Article/CJFDTOTAL-KXJS201419009.htm|彭军,周家雄,王宇,隋波,李海鹏|23466465,30472053,21073286,20914805,20206557,23387644|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23466465%3b30472053%3b21073286%3b20914805%3b20206557%3b23387644%3b&scholarName=%e5%bd%ad%e5%86%9b|科学技术与工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KXJS|156|4 +1076374|具有氢键假想孔道结构的[M(en)_3][GeF_6](M=Ni,Co)的合成与表征|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH200512000.htm|潘勤鹤,李激扬,于吉红,王宇,方千荣,徐如人|07659934,05965171,07690639,07672591,07671046,07669245|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07659934%3b05965171%3b07690639%3b07672591%3b07671046%3b07669245%3b&scholarName=%e6%bd%98%e5%8b%a4%e9%b9%a4|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|138|9 +1076374|Y型钢板或内外髁双钢板内固定治疗肱骨髁间骨折的康复训练及护理体会|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGCK200803099.htm|王宇鑫,庄晓红,宋正娥|15737975,17381793,17381152|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15737975%3b17381793%3b17381152%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%91%ab|中国厂矿医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGCK|33|2 +1076374|基于AR技术的手机拍摄软件的开发|http://www.cnki.com.cn/Article/CJFDTOTAL-XDXK201805008.htm|朱晨璐,隋超,周翠翠,刘高强,王宇航|39321910,39321911,39321912,39321913,07668942|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=39321910%3b39321911%3b39321912%3b39321913%3b07668942%3b&scholarName=%e6%9c%b1%e6%99%a8%e7%92%90|现代信息科技|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDXK|70|0 +1076374|吉林省竞技体操发展的回顾、现状及对策研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JLTY200704036.htm|李顶,王宇,王道杰,梁士雨|15466929,10555777,10855046,11158640|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15466929%3b10555777%3b10855046%3b11158640%3b&scholarName=%e6%9d%8e%e9%a1%b6|吉林体育学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLTY|76|4 +1076374|基于GPRS的无线智能租赁系统设计|http://www.cnki.com.cn/Article/CJFDTOTAL-CCYD201602008.htm|李会坤,徐强,王宇航,宋占伟|34277197,10935142,07668942,07680435|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34277197%3b10935142%3b07668942%3b07680435%3b&scholarName=%e6%9d%8e%e4%bc%9a%e5%9d%a4|吉林大学学报(信息科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CCYD|65|1 +1076374|两种模型在地下水埋深预测中的应用及对比研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JSGU201403012.htm|乔雨,梁秀娟,王宇博|30786146,07660714,30786147|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30786146%3b07660714%3b30786147%3b&scholarName=%e4%b9%94%e9%9b%a8|节水灌溉|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSGU|129|5 +1076374|论李宗易的心、禅世界|http://www.cnki.com.cn/Article/CJFDTOTAL-LJSK201503030.htm|杨威,王宇宏|07689789,28926192,20248688|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07689789%3b28926192%3b20248688%3b&scholarName=%e6%9d%a8%e5%a8%81|黑龙江社会科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LJSK|31|0 +1076374|1658例小儿气管支气管异物诊治分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZFYB200622019.htm|王宇声,杜波,孙乐|07682767,07690938,07690459|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07682767%3b07690938%3b07690459%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%a3%b0|中国妇幼保健|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZFYB|44|0 +1076374|均衡迁移过程的模拟分析|http://www.cnki.com.cn/Article/CJFDTOTAL-SLJY200310012.htm|张世伟,王宇星|07687690,07691502|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07687690%3b07691502%3b&scholarName=%e5%bc%a0%e4%b8%96%e4%bc%9f|数量经济技术经济研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SLJY|154|2 +1076374|从文化类纪录片的共同模式探究传统文化的传播方式——以《客从何处来》和《Who Do You Think You Are》为例|http://www.cnki.com.cn/Article/CJFDTOTAL-KJCB201608003.htm|杨婧言,王宇涵|34840743,33322652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34840743%3b33322652%3b&scholarName=%e6%9d%a8%e5%a9%a7%e8%a8%80|科技传播|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJCB|130|1 +1076374|激光拼焊板制复杂件的成型模拟及拉深筋优化研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QCJS200712011.htm|王春燕,王宇,张驰,韩英淳|07676225,07671046,07671357,07655582|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07676225%3b07671046%3b07671357%3b07655582%3b&scholarName=%e7%8e%8b%e6%98%a5%e7%87%95|汽车技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QCJS|165|1 +1076374|血卟啉衍生物(HpD)的表面增强共振拉曼光谱|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH198804023.htm|王宇天,徐蔚青,刘举正,梁映秋|07672867,07677391,05972294,07687689|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07672867%3b07677391%3b05972294%3b07687689%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%a4%a9|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|52|0 +1076374|吉林省听力障碍及耳疾流行病学调查研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHER200704008.htm|杜波,张岩,王宇声,任大伟,付涛,尹万忠,孙乐,陈菲菲,张元丁,杜宝东,雷爱军|07691850,07682767,10825044,07690474,10825046,07690938,13997906,13997908,05975911,07681084|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07691850%3b07682767%3b10825044%3b07690474%3b10825046%3b07690938%3b13997906%3b13997908%3b05975911%3b07681084%3b&scholarName=%e6%9d%9c%e6%b3%a2|中华耳科学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHER|130|12 +1076374|髓外定位与关节内代偿截骨在膝内翻合并股骨畸形TKA术中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-GGJS201802046.htm|李印良,王友斌,姜立忠,齐明,王宇,张亮|07682598,36338689,31502814,36338688,36338690,36338691|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07682598%3b36338689%3b31502814%3b36338688%3b36338690%3b36338691%3b&scholarName=%e6%9d%8e%e5%8d%b0%e8%89%af|中国骨与关节损伤杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GGJS|25|0 +1076374|表达鸡新城疫病毒血凝素-神经氨酸酶基因的重组腺病毒对肝癌细胞HepG-2的抑制作用|http://www.cnki.com.cn/Article/CJFDTOTAL-SWZP201004006.htm|温中梅,李霄,刘妍,高鹏,阚式绂,王卓越,王宇航,彭丽萍,金宁一|24312486,24312487,20809502,24312488,20480018,07695362,22036086,07705973,24010003,24312489,24312490,07682670,20624279|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24312486%3b24312487%3b20809502%3b24312488%3b20480018%3b07695362%3b22036086%3b07705973%3b24010003%3b24312489%3b24312490%3b07682670%3b20624279%3b&scholarName=%e6%b8%a9%e4%b8%ad%e6%a2%85|中国生物制品学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SWZP|129|9 +1076374|高校毕业生就业管理问题研究——以吉林大学为例|http://www.cnki.com.cn/Article/CJFDTOTAL-JIUY201711017.htm|鲁凯,朱宇,王宇超|26216605,07681907,35235861|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26216605%3b07681907%3b35235861%3b&scholarName=%e9%b2%81%e5%87%af|中国大学生就业|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JIUY|47|0 +1076374|鼻内镜双极电凝烧灼治疗老年人鼻出血的疗效|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLXZ201317107.htm|孙乐,史金凤,王宇声|07690938,28565964,07682767|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07690938%3b28565964%3b07682767%3b&scholarName=%e5%ad%99%e4%b9%90|中国老年学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLXZ|51|15 +1076374|知识构建对情报学发展的影响研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX200809005.htm|范晓春,王晰巍,王宇光|07670937,07672575|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07670937%3b07672575%3b&scholarName=%e8%8c%83%e6%99%93%e6%98%a5|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|324|3 +1076374|镧系乙酰丙酮-α、β、γ、δ-四苯基卟啉络合物的红外和拉曼光谱|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH198405031.htm|刘国发,张元福,赵永年,王桂馥,王宇天|00009692,07676269,07681444,07666718,07687689|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=00009692%3b07676269%3b07681444%3b07666718%3b07687689%3b&scholarName=%e5%88%98%e5%9b%bd%e5%8f%91|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|112|28 +1076374|外伤性面瘫的手术治疗|http://www.cnki.com.cn/Article/CJFDTOTAL-ZFSJ200106022.htm|王宇声,付涛,祝威,马忠恕,黄黉|07691885,07690474,07705998,07695940,07682767|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07691885%3b07690474%3b07705998%3b07695940%3b07682767%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%a3%b0|中风与神经疾病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZFSJ|46|1 +1076374|新型双基因表达盒真核载体的构建及功能验证|http://www.cnki.com.cn/Article/CJFDTOTAL-SWGJ201109002.htm|杜寿文,李昌,王宇航,任大勇,刘存霞,孙丹丹,朱娜,李沂,秦艳青,金宁一|25139197,25139198,20098354,07668942,25773323,25452986,23967488,24995346,23711304,25773324,26491518,26491519,25452987,05967940|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25139197%3b25139198%3b20098354%3b07668942%3b25773323%3b25452986%3b23967488%3b24995346%3b23711304%3b25773324%3b26491518%3b26491519%3b25452987%3b05967940%3b&scholarName=%e6%9d%9c%e5%af%bf%e6%96%87|中国生物工程杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SWGJ|156|2 +1076374|p38丝裂原活化蛋白激酶与缺血性脑损伤|http://www.cnki.com.cn/Article/CJFDTOTAL-ZFSJ200405040.htm|周官恩,刘宗超,王宇石,饶明俐|05978272,07681399,07696059,07695919|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05978272%3b07681399%3b07696059%3b07695919%3b&scholarName=%e5%91%a8%e5%ae%98%e6%81%a9|中风与神经疾病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZFSJ|330|7 +1076374|素环上带自同构的函数恒等式|http://www.cnki.com.cn/Article/CJFDTOTAL-JLDX201001006.htm|杜奕秋,王宇|23938853,07744448,07744832|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23938853%3b07744448%3b07744832%3b&scholarName=%e6%9d%9c%e5%a5%95%e7%a7%8b|吉林大学学报(理学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLDX|46|2 +1076374|慕课在耳鼻咽喉头颈外科学教学中的应用探索|http://www.cnki.com.cn/Article/CJFDTOTAL-ZYEB201706030.htm|房宁,汪欣,崔香艳,林明轩,王宇声|17447372,07690958,07682484,38323334,07682767|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17447372%3b07690958%3b07682484%3b38323334%3b07682767%3b&scholarName=%e6%88%bf%e5%ae%81|中国医学文摘(耳鼻咽喉科学)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZYEB|35|1 +1076374|漠河盆地南缘塔木兰沟组火山岩锆石U-Pb定年、地球化学特征及其地质意义|http://www.cnki.com.cn/Article/CJFDTOTAL-GJSD201506003.htm|李伫民,石绍山,李愈华,王宇利,时建民,江山|34736829,33364901,32384543,32575022,32384554,30116758,32575021|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34736829%3b33364901%3b32384543%3b32575022%3b32384554%3b30116758%3b32575021%3b&scholarName=%e6%9d%8e%e4%bc%ab%e6%b0%91|地质与资源|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GJSD|110|0 +1076374|HIV复合表位DNA重组体和痘苗病毒疫苗联合免疫实验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JCXK201305007.htm|刘存霞,杜寿文,李昌,王宇航,王茂鹏,李沂,尹荣兰,李霄,任大勇,秦艳青,任静强,金宁一|24995346,23711304,25139197,25139198,20098354,25773323,26034670,28244764,26491519,25201968,20113691,25452986,23967488,25452987,26260850,25149761,20624281|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24995346%3b23711304%3b25139197%3b25139198%3b20098354%3b25773323%3b26034670%3b28244764%3b26491519%3b25201968%3b20113691%3b25452986%3b23967488%3b25452987%3b26260850%3b25149761%3b20624281%3b&scholarName=%e5%88%98%e5%ad%98%e9%9c%9e|中国科学:生命科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JCXK|166|0 +1076374|生物柴油与石化柴油的性能对比研究|http://www.cnki.com.cn/Article/CJFDTOTAL-NRJJ200903016.htm|高寒,崔勇,郑晋军,王宇|07672734,15117005,13547960,07692967,16751624|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07672734%3b15117005%3b13547960%3b07692967%3b16751624%3b&scholarName=%e9%ab%98%e5%af%92|内燃机|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NRJJ|284|6 +1076374|维生素E对D-半乳糖亚急性中毒拟衰老模型鼠氧自由基及相关生化指标的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLXZ200714006.htm|曹湘博,西月,王艳春,王宇峰,常雅萍|07665356,07655380,11226825,10573737,11082898|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07665356%3b07655380%3b11226825%3b10573737%3b11082898%3b&scholarName=%e6%9b%b9%e6%b9%98%e5%8d%9a|中国老年学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLXZ|235|14 +1076374|石菖蒲及其成分对幼鼠电刺激反应性和电致惊厥阈的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZFSJ200402004.htm|杨立彬,黄民,梁健民,蔡正旭,王宇红,张淑琴|07691843,07691050,07681129,07655793,07682460,07682766|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07691843%3b07691050%3b07681129%3b07655793%3b07682460%3b07682766%3b&scholarName=%e6%9d%a8%e7%ab%8b%e5%bd%ac|中风与神经疾病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZFSJ|225|14 +1076374|辽宁省开封沟金矿流体特征、锆石U-Pb年龄及矿床成因研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GJSD201302004.htm|张立仕,孙丰月,张雅静,李良,王宇利|29054390,07680517,24688992,11093899,29054391|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29054390%3b07680517%3b24688992%3b11093899%3b29054391%3b&scholarName=%e5%bc%a0%e7%ab%8b%e4%bb%95|地质与资源|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GJSD|137|1 +1076374|权利与国家证成——诺齐克的证成国家路径|http://www.cnki.com.cn/Article/CJFDTOTAL-CCSW200801020.htm|王宇环|14338781|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14338781%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%8e%af|长春市委党校学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CCSW|207|3 +1076374|传统图形艺术在现代平面设计中的运用探究|http://www.cnki.com.cn/Article/CJFDTOTAL-DZLU201302072.htm|王宇航|07668942|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668942%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%88%aa|大众文艺|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DZLU|40|1 +1076374|流感疫苗诱导Hela细胞凋亡与免疫调节效应|http://www.cnki.com.cn/Article/CJFDTOTAL-SWZP200707005.htm|杨巍,王宇峰,蒋颖超,杨林,常雅萍|07673637,07665356,07678646,11226825,11076686|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07673637%3b07665356%3b07678646%3b11226825%3b11076686%3b&scholarName=%e6%9d%a8%e5%b7%8d|中国生物制品学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SWZP|119|0 +1076374|胰腺癌的影像学研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLXZ201314153.htm|池琦,吴恩余,张玲玲,申国强,王兆永,田磊,马岩,高文慧,王宇航|28538519,07679027,29470163,27123316,28538520,29372723,11323969,29470164,29470165|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28538519%3b07679027%3b29470163%3b27123316%3b28538520%3b29372723%3b11323969%3b29470164%3b29470165%3b&scholarName=%e6%b1%a0%e7%90%a6|中国老年学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLXZ|180|3 +1076374|维生素E对D-半乳糖亚急性中毒拟衰老模型鼠自由基及相关生化指标的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLXZ200914027.htm|曹湘博,韩艳非,王宇峰,常雅萍|07655380,11274260,11226825,07665356|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07655380%3b11274260%3b11226825%3b07665356%3b&scholarName=%e6%9b%b9%e6%b9%98%e5%8d%9a|中国老年学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLXZ|152|13 +1076374|基于聚类分析的家电回收异常点挖据|http://www.cnki.com.cn/Article/CJFDTOTAL-XDBY201704093.htm|姜晓茜,王宇,冒嘉驹|36619940,07671046,36619941|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36619940%3b07671046%3b36619941%3b&scholarName=%e5%a7%9c%e6%99%93%e8%8c%9c|现代商业|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDBY|34|0 +1076374|转录因子T-bet在鼻黏膜上皮细胞中的表达及对儿童变应性鼻炎的应用前景|http://www.cnki.com.cn/Article/CJFDTOTAL-ZFYB200806070.htm|孙克巍,王宇声,朱学伟,杨娜,董震|07682767,07684784,14170177,07702658|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07682767%3b07684784%3b14170177%3b07702658%3b&scholarName=%e5%ad%99%e5%85%8b%e5%b7%8d|中国妇幼保健|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZFYB|82|2 +1076374|探讨腹腔镜下小儿疝气的舒适护理应用效果|http://www.cnki.com.cn/Article/CJFDTOTAL-WMIA201603195.htm|赵玲珊,刘丽芳,汤雪婷,王宇航,张云贺,李雪梅|34453098,34453099,34453088,34453100,34453101,34453089|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34453098%3b34453099%3b34453088%3b34453100%3b34453101%3b34453089%3b&scholarName=%e8%b5%b5%e7%8e%b2%e7%8f%8a|世界最新医学信息文摘|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WMIA|43|11 +1076374|噪声性听力损失患者普通话双音节词表测试结果分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TLXJ201401007.htm|王越,张华,郑中伟,郭珈彤,佟佳梅,王硕,王宇鑫,郑晓林|07682418,06372477,27232635,28561429,22286848,06376233,17381793,24377684|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07682418%3b06372477%3b27232635%3b28561429%3b22286848%3b06376233%3b17381793%3b24377684%3b&scholarName=%e7%8e%8b%e8%b6%8a|听力学及言语疾病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TLXJ|93|1 +1076374|血管性痴呆大鼠海马线粒体COX活性及基因表达变化的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZSZD200909005.htm|赵晴,杜建时,曲淑彦,赵明明,王海燕,李新颖,马明,王宇|07697695,07684785,07692400,22585053,21923095,07697311,23190758,23190759|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07697695%3b07684785%3b07692400%3b22585053%3b21923095%3b07697311%3b23190758%3b23190759%3b&scholarName=%e8%b5%b5%e6%99%b4|中国实验诊断学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZSZD|177|5 +1076374|缺血性脑血管病患者血清肝细胞生长因子含量变化及其临床意义|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLXZ201014013.htm|王海燕,杜建时,徐忠信,赵明明,王宇,马明,赵晴|21923095,07684785,07692483,22585053,23190759,23190758,07697695|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21923095%3b07684785%3b07692483%3b22585053%3b23190759%3b23190758%3b07697695%3b&scholarName=%e7%8e%8b%e6%b5%b7%e7%87%95|中国老年学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLXZ|95|8 +1076374|蛋黄-壳结构Fe_3O_4@SiO_2@PMO磁性微球的制备及对漆酶的固定化|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH201902002.htm|段秉怡,王宇,郭宁宁,王润伟,张宗弢,裘式纶|41137607,07671046,07657292,07668783,23703189,07674738|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=41137607%3b07671046%3b07657292%3b07668783%3b23703189%3b07674738%3b&scholarName=%e6%ae%b5%e7%a7%89%e6%80%a1|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|0|0 +1076374|试论力学学科的发展与力学知识的普及|http://www.cnki.com.cn/Article/CJFDTOTAL-SHNG201206120.htm|王宇,王孟祺|07671046,27213247|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b27213247%3b&scholarName=%e7%8e%8b%e5%ae%87|商|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SHNG|52|0 +1076374|表达大鼠脑源性神经营养因子(BDNF)腺相关病毒的构建及体外表达分析|http://www.cnki.com.cn/Article/CJFDTOTAL-LYSJ200701010.htm|张惊宇,赵节绪,陈嘉峰,王宇虹,杨永梅|07682469,23061301,07024740,11644184,07696567|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07682469%3b23061301%3b07024740%3b11644184%3b07696567%3b&scholarName=%e5%bc%a0%e6%83%8a%e5%ae%87|脑与神经疾病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LYSJ|157|3 +1076374|高校BBS公共舆论平台建设与商议民主的发展|http://www.cnki.com.cn/Article/CJFDTOTAL-GJHJ201103019.htm|贾晓辉,王宇环|14252552,14338781|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14252552%3b14338781%3b&scholarName=%e8%b4%be%e6%99%93%e8%be%89|高教研究与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GJHJ|84|1 +1076374|加强药物疗法联合鼻内镜手术治疗慢性鼻-鼻窦炎的临床效果|http://www.cnki.com.cn/Article/CJFDTOTAL-LCWX201862008.htm|刘依男,韩宇丹,焦宇,李涵宇,王宇鑫|25358234,07682371,10744046,40156029,17381793|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25358234%3b07682371%3b10744046%3b40156029%3b17381793%3b&scholarName=%e5%88%98%e4%be%9d%e7%94%b7|临床医药文献电子杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCWX|0|0 +1076374|一种小型铒/镱双掺光纤放大器增益特性研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JGHW200604004.htm|徐雪梅,郭玉彬,王天枢,王宇航|07678117,07676753,07673546,07668942|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07678117%3b07676753%3b07673546%3b07668942%3b&scholarName=%e5%be%90%e9%9b%aa%e6%a2%85|激光与红外|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JGHW|143|5 +1076374|稀土乙酰丙酮络合物的激光拉曼和红外光谱(英文)|http://www.cnki.com.cn/Article/CJFDTOTAL-FZKB198101013.htm|梁映秋,刘举正,刘国发,赵水年,王宇天|07687689,07677391,05972294,14933254,07666718|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07687689%3b07677391%3b05972294%3b14933254%3b07666718%3b&scholarName=%e6%a2%81%e6%98%a0%e7%a7%8b|分子科学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FZKB|116|4 +1076374|表达Apoptin基因抗肿瘤双特异性重组腺病毒的构建及鉴定|http://www.cnki.com.cn/Article/CJFDTOTAL-ZSYX201111003.htm|王卓越,李霄,王浩然,阚式绂,王宇航,齐延新,吴娜,刘燕瑜,金宁一|25538149,26652550,20113691,11617228,26652551,24010004,23967482,07668942,25773323,26652552,26652553,26652554,24995348,25023853,05967940,20624281|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25538149%3b26652550%3b20113691%3b11617228%3b26652551%3b24010004%3b23967482%3b07668942%3b25773323%3b26652552%3b26652553%3b26652554%3b24995348%3b25023853%3b05967940%3b20624281%3b&scholarName=%e7%8e%8b%e5%8d%93%e8%b6%8a|中国兽医学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZSYX|89|1 +1076374|血液透析治疗肾综合征出血热致急性肾功能衰竭的疗效分析|http://www.cnki.com.cn/Article/CJFDTOTAL-HZZZ201328064.htm|张明玉,王宇,王慧颖,姜佳琦|29974048,07696058,29974049,29974050|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29974048%3b07696058%3b29974049%3b29974050%3b&scholarName=%e5%bc%a0%e6%98%8e%e7%8e%89|中外医疗|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HZZZ|45|3 +1076374|乙肝患者检测血浆D-D二聚体及HBV-DNA的临床意义|http://www.cnki.com.cn/Article/CJFDTOTAL-XTYX201610011.htm|王欣,朱海燕,王宇|25317498,07680129,24377670|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25317498%3b07680129%3b24377670%3b&scholarName=%e7%8e%8b%e6%ac%a3|系统医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XTYX|39|2 +1076374|钆、铽、铒、铥的乙酰丙酮三水络合物的晶体结构和分子结构|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH198306016.htm|申成,樊玉国,刘国发,王宇天,吕品喆|07679769,07667392,07672558,07666718,07687689|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07679769%3b07667392%3b07672558%3b07666718%3b07687689%3b&scholarName=%e7%94%b3%e6%88%90|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|84|7 +1076374|浅析中国动画艺术风格与表现|http://www.cnki.com.cn/Article/CJFDTOTAL-DYLX201116017.htm|王宝义,王宇|11187347,10556162|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11187347%3b10556162%3b&scholarName=%e7%8e%8b%e5%ae%9d%e4%b9%89|电影文学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DYLX|205|0 +1076374|模糊PID控制在太阳帆板驱动机构系统中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-KJTB201204068.htm|林东姝,王宇,葛立良|27558620,06339952,27558621|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27558620%3b06339952%3b27558621%3b&scholarName=%e6%9e%97%e4%b8%9c%e5%a7%9d|科技通报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJTB|65|1 +1076374|Bcl-2和Bax蛋白在糖尿病大鼠耳蜗中的表达|http://www.cnki.com.cn/Article/CJFDTOTAL-BQEB200706011.htm|杜波,王苹,王宇声,杜宝东|07690459,07682745,07682767,05975911|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07690459%3b07682745%3b07682767%3b05975911%3b&scholarName=%e6%9d%9c%e6%b3%a2|吉林大学学报(医学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BQEB|95|2 +1076374|基于ARM11的嵌入式Linux中nRF24L01驱动的实现|http://www.cnki.com.cn/Article/CJFDTOTAL-CGJM201502020.htm|张頔,宋欣,王宇航,宋占伟|26325714,07668942,07680435|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26325714%3b07668942%3b07680435%3b&scholarName=%e5%bc%a0%e9%a0%94|长春理工大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CGJM|49|0 +1076374|含CpG和CTB的HIV多表位基因真核表达载体的构建及表达|http://www.cnki.com.cn/Article/CJFDTOTAL-JSYX201103007.htm|杜寿文,任大勇,王宇航,王婧,孙丹丹,任静强,李昌,金宁一|25139197,25139198,25452986,23967488,07668942,25773323,07676346,25139199,25773324,25149761,20098354,05967940|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25139197%3b25139198%3b25452986%3b23967488%3b07668942%3b25773323%3b07676346%3b25139199%3b25773324%3b25149761%3b20098354%3b05967940%3b&scholarName=%e6%9d%9c%e5%af%bf%e6%96%87|军事医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSYX|115|1 +1076374|浅析影视作品中设计美学的体现——影片《唐山大地震》对比手法的表现与运用|http://www.cnki.com.cn/Article/CJFDTOTAL-DYLX201119018.htm|石鹏翔,王宇|11081525,10556162|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11081525%3b10556162%3b&scholarName=%e7%9f%b3%e9%b9%8f%e7%bf%94|电影文学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DYLX|116|0 +1076374|宣教护理在白内障超声乳化术的作用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZSSA201007172.htm|李立,王宇鑫|24094551,17381793|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24094551%3b17381793%3b&scholarName=%e6%9d%8e%e7%ab%8b|中国实用医药|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZSSA|23|2 +1076374|乙肝HBV-DNA阳性患者血清超敏C反应蛋白检测的临床意义|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGCK201012047.htm|王欣,王宇,管园园|25317498,24377670,25317499|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25317498%3b24377670%3b25317499%3b&scholarName=%e7%8e%8b%e6%ac%a3|中国临床研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGCK|70|4 +1076374|缺血性脑血管病患者血清抗心磷脂抗体水平及其临床意义|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLXZ201115025.htm|张英丽,赵晴,李新颖,赵明明,王宇,马明|07697684,07697695,25588040,22585053,23190759,23190758|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07697684%3b07697695%3b25588040%3b22585053%3b23190759%3b23190758%3b&scholarName=%e5%bc%a0%e8%8b%b1%e4%b8%bd|中国老年学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLXZ|99|4 +1076374|胸腔镜下肺叶切除术护理干预效果评价|http://www.cnki.com.cn/Article/CJFDTOTAL-ZWVJ201609086.htm|吕秋波,王宇鑫,庄月秋|24094042,17381793,15415009|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24094042%3b17381793%3b15415009%3b&scholarName=%e5%90%95%e7%a7%8b%e6%b3%a2|中外女性健康研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZWVJ|11|0 +1076374|肺部超声在心力衰竭患者中的应用现状和进展|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLXZ201416156.htm|沈波涛,赵巍,王宇石,郑杨|14338260,14339772,07696059,07691875|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14338260%3b14339772%3b07696059%3b07691875%3b&scholarName=%e6%b2%88%e6%b3%a2%e6%b6%9b|中国老年学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLXZ|127|0 +1076374|LnTPPacac络合物的合成和稳定性的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JLDX198304008.htm|刘国发,王桂馥,王宇天|07676269,07666718,07687689|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07676269%3b07666718%3b07687689%3b&scholarName=%e5%88%98%e5%9b%bd%e5%8f%91|吉林大学自然科学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLDX|43|5 +1076374|松辽流域主要河流水沙规律分析|http://www.cnki.com.cn/Article/CJFDTOTAL-DBSL200912022.htm|林沫,刘颖,丛远飞,王宇轩,张羽|23596584,20837263,14337835,23906082,10681309,23906083,23906084,14339681|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23596584%3b20837263%3b14337835%3b23906082%3b10681309%3b23906083%3b23906084%3b14339681%3b&scholarName=%e6%9e%97%e6%b2%ab|东北水利水电|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DBSL|132|0 +1076374|稀土乙酰丙酮-α,β,γ,δ-四邻硝基苯基卟啉钬的合成|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH198306021.htm|刘国发,王宇天,王桂馥|07666718,07687689,07676269|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07666718%3b07687689%3b07676269%3b&scholarName=%e5%88%98%e5%9b%bd%e5%8f%91|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|54|2 +1076374|深化办学体制改革探索高等职业教育新途径|http://www.cnki.com.cn/Article/CJFDTOTAL-ZYJW200034006.htm|张向先,王宇光|07672161,07671047|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07672161%3b07671047%3b&scholarName=%e5%bc%a0%e5%90%91%e5%85%88|职业技术教育|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZYJW|71|1 +1076374|L波段掺铒光纤放大器增益钳制及提高特性研究|http://www.cnki.com.cn/Article/CJFDTOTAL-HJGX200603002.htm|赵铭,王天枢,郭玉彬,王宇航,申铉国|07687107,07676753,07673546,07674849,07668942|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07687107%3b07676753%3b07673546%3b07674849%3b07668942%3b&scholarName=%e8%b5%b5%e9%93%ad|海军工程大学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HJGX|119|0 +1076374|钠曲线联合超滤曲线透析在低血压患者中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-JLYX201401043.htm|王慧颖,窦海川,仲维佳,王宇,耿操|29974049,11246365,22044933,07696058,30324263|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29974049%3b11246365%3b22044933%3b07696058%3b30324263%3b&scholarName=%e7%8e%8b%e6%85%a7%e9%a2%96|吉林医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLYX|41|2 +1076374|α、β、γ、δ-四苯基卟啉和稀土乙酰丙酮-α、β、γ、δ-四苯基卟啉的共振喇曼光谱研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH198406022.htm|赵永年,刘国发,王桂馥,王宇天|07666718,07687689,00009692,07676269|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07666718%3b07687689%3b00009692%3b07676269%3b&scholarName=%e8%b5%b5%e6%b0%b8%e5%b9%b4|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|30|3 +1076374|唾液酸Lewis-X在慢性鼻-鼻窦炎鼻黏膜组织中的表达|http://www.cnki.com.cn/Article/CJFDTOTAL-LCEH200820005.htm|朱学伟,朱冬冬,孙克巍,王宇声,董震|14170177,07697718,15599891,07682767,07684784|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14170177%3b07697718%3b15599891%3b07682767%3b07684784%3b&scholarName=%e6%9c%b1%e5%ad%a6%e4%bc%9f|临床耳鼻咽喉头颈外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCEH|59|0 +1076374|社会主义新农村建设的首要任务是农民增收|http://www.cnki.com.cn/Article/CJFDTOTAL-ZXZX200601021.htm|王宇光||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e7%8e%8b%e5%ae%87%e5%85%89|新长征|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZXZX|20|2 +1076374|L1-L2范数联合约束稀疏脉冲反演的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-DQKX200905018.htm|王宇,韩立国,周家雄,李海鹏|20914805,07673572,21073286,23387644|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=20914805%3b07673572%3b21073286%3b23387644%3b&scholarName=%e7%8e%8b%e5%ae%87|地球科学(中国地质大学学报)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DQKX|716|17 +1076374|配合腹腔镜直肠癌手术的护理体会|http://www.cnki.com.cn/Article/CJFDTOTAL-YSXD201602260.htm|赵云婷,王宇飞,郭兵,蔡晓宇|34327425,34327426,32842545,34327427|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34327425%3b34327426%3b32842545%3b34327427%3b&scholarName=%e8%b5%b5%e4%ba%91%e5%a9%b7|现代养生|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YSXD|3|0 +1076374|镨和钐的乙酰丙酮二水络合物的晶体结构与分子结构|http://www.cnki.com.cn/Article/CJFDTOTAL-JLDX198302015.htm|申成,樊玉国,王宇天,刘国发,吕品喆|07667392,07679769,07672558,07666718,07687689|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07667392%3b07679769%3b07672558%3b07666718%3b07687689%3b&scholarName=%e7%94%b3%e6%88%90|吉林大学自然科学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLDX|39|0 +1076374|环上的σ-导子(英文)|http://www.cnki.com.cn/Article/CJFDTOTAL-SXZZ200301013.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|数学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SXZZ|38|1 +1076374|吉林省听力障碍和耳疾病调查研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLXZ200720032.htm|杜波,张岩,雷爱军,王宇声,付涛,尹万忠,任大伟,杜宝东|07682767,07690474,10825046,10825044,07681084,07690459,07691850,05975911|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07682767%3b07690474%3b10825046%3b10825044%3b07681084%3b07690459%3b07691850%3b05975911%3b&scholarName=%e6%9d%9c%e6%b3%a2|中国老年学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLXZ|55|0 +1076374|新疆富蕴县蒙库铁矿床地质特征及成因探讨|http://cdmd.cnki.com.cn/Article/CDMD-10183-1013194621.htm|王宇利|29054391|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29054391%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%88%a9|||311|2 +1076374|看连续流气提式好氧颗粒污泥流化床污泥颗粒化机理研究|http://www.cnki.com.cn/Article/CJFDTOTAL-CYTZ201320117.htm|霍金阁,张迪龙,唐妍涤,李美姣,于耀淳,王宇彤|29594068,29594069,29594070,29594071,29594072,29325771|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29594068%3b29594069%3b29594070%3b29594071%3b29594072%3b29325771%3b&scholarName=%e9%9c%8d%e9%87%91%e9%98%81|中国科技投资|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CYTZ|103|1 +1076374|1例头颈部多发淋巴组织淀粉样变病例报告并文献回顾|http://www.cnki.com.cn/Article/CJFDTOTAL-ZSZD201012079.htm|孙乐,雷爱军,王宇声,何忠印|07690938,07681084,07682767,15513032|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07690938%3b07681084%3b07682767%3b15513032%3b&scholarName=%e5%ad%99%e4%b9%90|中国实验诊断学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZSZD|36|0 +1076374|嵌入医保:我国长期护理保险的模式选择|http://cdmd.cnki.com.cn/Article/CDMD-10183-1017158936.htm|王宇超|35235861|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35235861%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%b6%85|||904|3 +1076374|健康老龄化视角下社会工作介入农村社区老年人健康管理的实务研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1018217596.htm|王宇玲|40332233|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=40332233%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%8e%b2|||170|0 +1076374|不同电刺激信号对大鼠雪旺细胞增殖的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-SGLC201604001.htm|王宇,付川,危岩,章培标|21649310,33234153,34589474,33871253,25278969,10340110|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21649310%3b33234153%3b34589474%3b33871253%3b25278969%3b10340110%3b&scholarName=%e7%8e%8b%e5%ae%87|生物医学工程与临床|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SGLC|99|2 +1076374|冠心病患者超敏C反应蛋白与血脂联合检测的临床意义|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGCK201005002.htm|魏宇鹏,孔繁君,王宇|07695262,14942004,24377670|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07695262%3b14942004%3b24377670%3b&scholarName=%e9%ad%8f%e5%ae%87%e9%b9%8f|中国临床研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGCK|65|0 +1076374|肝性脑病的研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-LCGD200502031.htm|王宇,朴云峰,许贤姬|07682675,17729039,07696095|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07682675%3b17729039%3b07696095%3b&scholarName=%e7%8e%8b%e5%ae%87|临床肝胆病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCGD|428|16 +1076374|基于广义S变换和随机森林算法的癫痫脑电信号特征提取与分类研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1018223822.htm|王宇桥|36146793|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36146793%3b&scholarName=%e7%8e%8b%e5%ae%87%e6%a1%a5|||117|0 +1076374|煤工尘肺的研究现状及展望|http://www.cnki.com.cn/Article/CJFDTOTAL-ZSSA200805090.htm|王宇宏,魏艳,马忠森|07704372,14231964|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07704372%3b14231964%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%ae%8f|中国实用医药|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZSSA|296|18 +1076374|线缆孔洞对车辆电子设备屏蔽效能分析|http://www.cnki.com.cn/Article/CJFDTOTAL-CCYD201303004.htm|王宇飞,赵晓晖,温泉|10515292,07676876,07681619,07669041|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10515292%3b07676876%3b07681619%3b07669041%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%a3%9e|吉林大学学报(信息科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CCYD|105|2 +1076374|肝硬化合并肝性脑病74例回顾分析|http://www.cnki.com.cn/Article/CJFDTOTAL-LCGD200503018.htm|王宇,朴云峰,许贤姬|07682675,17729039,06514616|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07682675%3b17729039%3b06514616%3b&scholarName=%e7%8e%8b%e5%ae%87|临床肝胆病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCGD|162|24 +1076374|急性肾功能衰竭1例报告|http://www.cnki.com.cn/Article/CJFDTOTAL-ZSSA200817201.htm|李双,窦海川,王宇||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e6%9d%8e%e5%8f%8c|中国实用医药|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZSSA|25|0 +1076374|富晟汽车零部件公司关系营销策略研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1018225093.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||83|0 +1076374|适配体靶向及响应型抗肿瘤药物与miRNA共递送系统的构建与评价|http://cdmd.cnki.com.cn/Article/CDMD-10183-1018224264.htm|王宇頔|40331615|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=40331615%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%a0%94|||67|0 +1076374|基于快速原型的电子机械助力制动器控制算法研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1018214804.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||73|0 +1076374|车辆电控设备不规则腔体的屏蔽效能分析|http://www.cnki.com.cn/Article/CJFDTOTAL-CCYD201402012.htm|王宇飞,赵晓晖,温泉|10515292,07681619,07669041|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10515292%3b07681619%3b07669041%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%a3%9e|吉林大学学报(信息科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CCYD|48|0 +1076374|精灵公园|http://www.cnki.com.cn/Article/CJFDTOTAL-XZJX200901040.htm|王宇飞|22336105|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22336105%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%a3%9e|小作家选刊(小学)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XZJX|7|0 +1076374|用微柱凝胶法诊断新生儿溶血病的实验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZSZD201112012.htm|王宇宏,刘冰|07722975,07682609|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07722975%3b07682609%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%ae%8f|中国实验诊断学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZSZD|57|7 +1076374|直接列修正Cholesky因子的Newton型方法|http://www.cnki.com.cn/Article/CJFDTOTAL-SZJS401.003.htm|王宇,冯果忱||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e7%8e%8b%e5%ae%87|数值计算与计算机应用|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZJS|70|4 +1076374|丙种球蛋白对格林-巴利综合征患者白介素12与白介素18表达的影响及其相关性研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZFSJ200604008.htm|王宇虹,王德生,王安宁,杨立斌,李树蕾|07025748,07025783,14978544,10572207,07660048|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07025748%3b07025783%3b14978544%3b10572207%3b07660048%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%99%b9|中风与神经疾病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZFSJ|104|2 +1076374|新疆富蕴县蒙库铁矿床地质特征及构造变形作用|http://www.cnki.com.cn/Article/CJFDTOTAL-KCDZ2014S1454.htm|王宇利,孙丰月,石绍山,魏明辉|32384554,07680517,32384543,32384548|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32384554%3b07680517%3b32384543%3b32384548%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%88%a9|矿床地质|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KCDZ|23|1 +1076374|早期主动活动对危重症患者营养状况的影响|http://cdmd.cnki.com.cn/Article/CDMD-10183-1018222395.htm|王宇娇|40354980|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=40354980%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%a8%87|||42|0 +1076374|基于P2P网络访问控制模式构建|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX200606024.htm|王宇东,葛宝山|07688061,07664528|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07688061%3b07664528%3b&scholarName=%e7%8e%8b%e5%ae%87%e4%b8%9c|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|116|0 +1076374|1000例角膜异物临床分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZSSA201004066.htm|吕秋波,王宇鑫|24094042,17381793|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24094042%3b17381793%3b&scholarName=%e5%90%95%e7%a7%8b%e6%b3%a2|中国实用医药|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZSSA|24|2 +1076374|库存红细胞悬液乳酸和pH值检测的价值|http://www.cnki.com.cn/Article/CJFDTOTAL-DYBF201305032.htm|王宇宏,孙景春|07722975,07692418|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07722975%3b07692418%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%ae%8f|中国地方病防治杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DYBF|46|3 +1076374|白细胞介素12和18在P0_(180-199)特异性T细胞致神经炎中的协同增强效应|http://www.cnki.com.cn/Article/CJFDTOTAL-XDKF200533030.htm|王宇虹,张惊宇,张淑琴,杨立斌|07695307,14978544,14871118,07025783|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07695307%3b14978544%3b14871118%3b07025783%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%99%b9|中国临床康复|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDKF|45|1 +1076374|艾叶挥发油治疗大鼠变应性鼻炎的实验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZMXZ201109005.htm|张枢,王宇,张宇|06226560,25685434,07675753|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06226560%3b25685434%3b07675753%3b&scholarName=%e5%bc%a0%e6%9e%a2|中国免疫学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZMXZ|271|18 +1076374|长春龙嘉堡矿震事件的判定|http://www.cnki.com.cn/Article/CJFDTOTAL-DDYJ201304008.htm|王宇,王希燕,杨桐,张可佳,吕晨阳,傅维洲|27517977,24826374,24713923,21763048,28100407,25891657,25891658|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27517977%3b24826374%3b24713923%3b21763048%3b28100407%3b25891657%3b25891658%3b&scholarName=%e7%8e%8b%e5%ae%87|防灾减灾学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DDYJ|42|0 +1076374|商务网络信息生态链的形成机理研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201512029.htm|许孝君,王宇婷,张海涛|34171828,31167614,07671978|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34171828%3b31167614%3b07671978%3b&scholarName=%e8%ae%b8%e5%ad%9d%e5%90%9b|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|166|4 +1076374|基于改进HOG特征提取的车型识别算法|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGGA201802003.htm|耿庆田,赵浩宇,于繁华,王宇婷,赵宏伟|33347442,07654171,30622142,33350491,31467690,07681541|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33347442%3b07654171%3b30622142%3b33350491%3b31467690%3b07681541%3b&scholarName=%e8%80%bf%e5%ba%86%e7%94%b0|中国光学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGGA|169|3 +1076374|探讨综合护理干预在小儿疝气手术护理中的实施效果|http://www.cnki.com.cn/Article/CJFDTOTAL-WMIA201711158.htm|陈丽秋,黄莹,侯丹,王宇航|36751339,36751340,34453090,34453100|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36751339%3b36751340%3b34453090%3b34453100%3b&scholarName=%e9%99%88%e4%b8%bd%e7%a7%8b|世界最新医学信息文摘|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WMIA|17|0 +1076374|癌症患者血浆PAI-1浓度变化|http://www.cnki.com.cn/Article/CJFDTOTAL-ZSZD201004022.htm|王宇,肖英红,何成彦,王楠,冯学超|06601598,21801711,07697267,06588624,06596632|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06601598%3b21801711%3b07697267%3b06588624%3b06596632%3b&scholarName=%e7%8e%8b%e5%ae%87|中国实验诊断学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZSZD|75|2 +1076374|矩阵分解因子的直接换元修正|http://www.cnki.com.cn/Article/CJFDTOTAL-GDSX199104005.htm|王宇,冯果忱|07700048,07653957|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07700048%3b07653957%3b&scholarName=%e7%8e%8b%e5%ae%87|高等学校计算数学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDSX|23|2 +1076374|常温合成硫掺杂微孔碳及其二氧化碳的吸附性能|http://www.cnki.com.cn/Article/CJFDTOTAL-WJHX201711027.htm|郭宁宁,王宇,王润伟,张宗弢,裘式纶|07657292,07671046,07668783,23703189,07674738|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07657292%3b07671046%3b07668783%3b23703189%3b07674738%3b&scholarName=%e9%83%ad%e5%ae%81%e5%ae%81|无机化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WJHX|107|0 +1076374|微粘结沥青碎石基层性能研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1018213861.htm|王宇放|37850394|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37850394%3b&scholarName=%e7%8e%8b%e5%ae%87%e6%94%be|||19|0 +1076374|M公司职业教育实训项目实施管理研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1018214630.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||20|0 +1076374|高压下LiFePO_4的结构和电输运性质研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1017152760.htm|王宇飞|07676876|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07676876%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%a3%9e|||88|1 +1076374|冠脉造影图像三维重建的研究与实现|http://cdmd.cnki.com.cn/Article/CDMD-10183-1017148091.htm|王宇龙|33369138|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33369138%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%be%99|||87|0 +1076374|基于安卓的电力故障报修系统的设计与实现|http://cdmd.cnki.com.cn/Article/CDMD-10183-1017148066.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||111|1 +1076374|阿德福韦酯治疗HBeAg阳性的中国慢性乙型病毒性肝炎患者52周的多中心临床研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHCR200506012.htm|曾民德,茅益民,姚光弼,周霞秋,王豪,徐道振,姚集鲁,侯金林,王宇明,任红,陈亚岗,牛俊奇,王耀宗|05973101,05967625,05974363,05966738,05967195,07681181,23065705,22828829,20248699,22983073,16745124,10052934,23044118|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05973101%3b05967625%3b05974363%3b05966738%3b05967195%3b07681181%3b23065705%3b22828829%3b20248699%3b22983073%3b16745124%3b10052934%3b23044118%3b&scholarName=%e6%9b%be%e6%b0%91%e5%be%b7|中华传染病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHCR|880|200 +1076374|恶性梗阻性黄疸术前减黄的利弊及合理选择|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGWK200710008.htm|全志伟,王健东,王忠裕,何振平,姜洪池,秦鸣放,田雨霖,谭毓铨,王贵民,田伏洲,吴志勇,余云,杨福全,梁力建,苗毅,戴存才,郭峰,王宇|14495453,07031415,10623913,23049029,08940517,07690973,10691149,23052785,14296586,10515430,10647362,05978527,00000371,05964733,05972448,05967971,08087500,08759006|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14495453%3b07031415%3b10623913%3b23049029%3b08940517%3b07690973%3b10691149%3b23052785%3b14296586%3b10515430%3b10647362%3b05978527%3b00000371%3b05964733%3b05972448%3b05967971%3b08087500%3b08759006%3b&scholarName=%e5%85%a8%e5%bf%97%e4%bc%9f|中国实用外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGWK|1075|51 +1076374|基于改进SIFT特征提取的车标识别|http://www.cnki.com.cn/Article/CJFDTOTAL-GXJM201805028.htm|耿庆田,赵浩宇,王宇婷,赵宏伟|33347442,07654171,30622142,31467690,07681541|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33347442%3b07654171%3b30622142%3b31467690%3b07681541%3b&scholarName=%e8%80%bf%e5%ba%86%e7%94%b0|光学精密工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GXJM|152|0 +1076374|辽宁喀左卢家沟出土北魏佛教造像整理简报|http://www.cnki.com.cn/Article/CJFDTOTAL-WENW201808004.htm|李健,田永兵,张力,刘雅婷,解峰,王宇||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e6%9d%8e%e5%81%a5|文物|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WENW|160|0 +1076374|在现代家居设计中高技派语言的应用研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1017153293.htm|王宇奇|35868797|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35868797%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%a5%87|||49|0 +1076374|重症脑损伤患者肠内营养支持的护理实践与依据|http://www.cnki.com.cn/Article/CJFDTOTAL-GLHL201709006.htm|刘芳,高岚,王宇娇,王冉|22811516,07695361,31007056,22889151|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22811516%3b07695361%3b31007056%3b22889151%3b&scholarName=%e5%88%98%e8%8a%b3|中国护理管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GLHL|196|6 +1076374|改性纳米羟基磷灰石/PLGA复合材料的制备及生物活性|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH200907041.htm|于婷,刘娅,王宇,景遐斌,章培标,陈学思|21649309,11168963,07677974,21649310,10339624,10340110,09521903|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21649309%3b11168963%3b07677974%3b21649310%3b10339624%3b10340110%3b09521903%3b&scholarName=%e4%ba%8e%e5%a9%b7|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|1220|39 +1076374|块松弛BFGS方法|http://www.cnki.com.cn/Article/CJFDTOTAL-JLDX198904000.htm|王宇,冯果忱|07700048,07653957|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07700048%3b07653957%3b&scholarName=%e7%8e%8b%e5%ae%87|吉林大学自然科学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLDX|14|0 +1076374|基于最小二次支持向量机数据驱动的Hammerstein系统故障诊断与分离方法|http://www.cnki.com.cn/Article/CJFDTOTAL-RNWS201703021.htm|刘哲显,王宇雷|37023581,32912863|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37023581%3b32912863%3b&scholarName=%e5%88%98%e5%93%b2%e6%98%be|热能动力工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/RNWS|68|2 +1076374|危重症患者持续静脉静脉血液滤过局部枸橼酸抗凝与全身普通肝素抗凝的比较研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SYNK201008024.htm|彭劲民,王宇石,翁利,胡小芸,杜斌|22833753,07696059,22899720,22763692,22996597|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22833753%3b07696059%3b22899720%3b22763692%3b22996597%3b&scholarName=%e5%bd%ad%e5%8a%b2%e6%b0%91|中国实用内科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SYNK|503|8 +1076374|基于Carsim的公路弯道路段车辆行驶稳定性研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1014266382.htm|王宇宁|27671084|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27671084%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%ae%81|||1064|12 +1076374|关于素环的两个定理(英文)|http://www.cnki.com.cn/Article/CJFDTOTAL-SLXK200002002.htm|王宇|07718160|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07718160%3b&scholarName=%e7%8e%8b%e5%ae%87|松辽学刊(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SLXK|16|0 +1076374|智能手机平台浏览器上网记录的提取与分析|http://cdmd.cnki.com.cn/Article/CDMD-10183-1015600802.htm|王宇阳|33368952|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33368952%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%98%b3|||362|8 +1076374|应用于CO气体检测的DFB激光器驱动及温控电路的设计|http://cdmd.cnki.com.cn/Article/CDMD-10183-1015594190.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||660|7 +1076374|碳纤维/纳米二氧化钛/聚醚醚酮耐磨复合材料的制备及性能研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1016079383.htm|王宇遥|29632992|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29632992%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%81%a5|||482|3 +1076374|厚钢板冲裁机理及凸模失效研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1015588215.htm|王宇昆|29790017|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29790017%3b&scholarName=%e7%8e%8b%e5%ae%87%e6%98%86|||216|9 +1076374|基于SIFT的车标识别算法|http://www.cnki.com.cn/Article/CJFDTOTAL-JLDX201803029.htm|耿庆田,于繁华,王宇婷,赵宏伟,赵东|33347442,07654171,33350491,31467690,07681541,33347443|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33347442%3b07654171%3b33350491%3b31467690%3b07681541%3b33347443%3b&scholarName=%e8%80%bf%e5%ba%86%e7%94%b0|吉林大学学报(理学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLDX|72|0 +1076374|基于特征融合的车型检测新算法|http://www.cnki.com.cn/Article/CJFDTOTAL-JLGY201803037.htm|耿庆田,于繁华,王宇婷,高琦坤|33347442,07654171,33350491,31467690,39327091|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33347442%3b07654171%3b33350491%3b31467690%3b39327091%3b&scholarName=%e8%80%bf%e5%ba%86%e7%94%b0|吉林大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLGY|49|0 +1076374|微型客车概念设计阶段车身结构抗撞性分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JLGY200603003.htm|林逸,刘静岩,张君媛,张建伟,王宇|05977943,07671046,07666782,07672017|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05977943%3b07671046%3b07666782%3b07672017%3b&scholarName=%e6%9e%97%e9%80%b8|吉林大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLGY|350|26 +1076374|BP神经网络与HOG特征提取相结合的车辆识别技术在无线设备下的应用|http://cdmd.cnki.com.cn/Article/CDMD-10183-1014282000.htm|王宇婷|31467690|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31467690%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%a9%b7|||653|5 +1076374|基于高分辨率阵列感应测井的GA-SVM流体识别方法|http://www.cnki.com.cn/Article/CJFDTOTAL-DQWJ201705026.htm|刘丹,潘保芝,周玉凤,王宇博,黄溯航|27229604,07674020,25243426,38075431,17422182|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27229604%3b07674020%3b25243426%3b38075431%3b17422182%3b&scholarName=%e5%88%98%e4%b8%b9|地球物理学进展|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DQWJ|53|0 +1076374|微型客车车身结构正面碰撞参数化模型的建立|http://www.cnki.com.cn/Article/CJFDTOTAL-QCGC200601013.htm|林逸,刘静岩,张君媛,张建伟,王宇|07671046,07672041,07672017,05977943,07666782|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b07672041%3b07672017%3b05977943%3b07666782%3b&scholarName=%e6%9e%97%e9%80%b8|汽车工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QCGC|340|24 +1076374|鹤大高速公路建设对靖宇自然保护区天然矿泉水影响研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1016093838.htm|王宇博|30786147|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30786147%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%8d%9a|||132|2 +1076374|吉林省经济与环境协调发展研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1014293030.htm|王宇庭|31413968|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31413968%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%ba%ad|||431|5 +1076374|中国医科大学附属第一医院医疗保险管理体系构建研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1013188644.htm|王宇哲|17497931|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17497931%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%93%b2|||628|8 +1076374|基于改进的RFID标签防碰撞技术的研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1013193602.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||351|5 +1076374|重金属免疫学检测研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-NMMS201003025.htm|高志刚,刘国文,王宇,韩东波|08002796,07667199,24617864,24617865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08002796%3b07667199%3b24617864%3b24617865%3b&scholarName=%e9%ab%98%e5%bf%97%e5%88%9a|内蒙古民族大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NMMS|424|14 +1076374|建设我国电子商务物流配送体系的设想|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGSM201023056.htm|李海华,王宇|25144777,07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25144777%3b07671046%3b&scholarName=%e6%9d%8e%e6%b5%b7%e5%8d%8e|中国商贸|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGSM|517|5 +1076374|物资库存管理信息系统的分析设计|http://cdmd.cnki.com.cn/Article/CDMD-10183-1015599822.htm|王宇翔|31452212|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31452212%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%bf%94|||600|4 +1076374|崎岖海底OBC地震数据全波形反演策略|http://www.cnki.com.cn/Article/CJFDTOTAL-SJDZ201701028.htm|赫建伟,周家雄,王宇,张盼,王新领|30348373,21073286,20914805,28167918,28876146|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30348373%3b21073286%3b20914805%3b28167918%3b28876146%3b&scholarName=%e8%b5%ab%e5%bb%ba%e4%bc%9f|世界地质|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJDZ|55|0 +1076374|用曲波变换消除VSP数据处理中的空间假频与采样不规则|http://www.cnki.com.cn/Article/CJFDTOTAL-DZKT201603015.htm|彭军,韩立国,周家雄,王宇,隋波,李海鹏|30472053,23466465,07673572,21073286,20914805,20206557,23387644|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30472053%3b23466465%3b07673572%3b21073286%3b20914805%3b20206557%3b23387644%3b&scholarName=%e5%bd%ad%e5%86%9b|地质与勘探|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DZKT|59|2 +1076374|基于面模特征的嵌入式安全认证终端的设计与实现|http://cdmd.cnki.com.cn/Article/CDMD-10183-1016083949.htm|王宇航|07668942|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668942%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%88%aa|||117|1 +1076374|辽西地区慕容鲜卑及三燕时期墓葬研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2008065810.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||1143|16 +1076374|某城域传送网工程方案设计|http://cdmd.cnki.com.cn/Article/CDMD-10183-1016093718.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||97|0 +1076374|现代网上购物信息管理系统的研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1015600803.htm|王宇龙|33369138|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33369138%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%be%99|||554|0 +1076374|现代汉语表频时间副词“常常”与“往往”的比较研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2007106960.htm|王宇培|10902256|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10902256%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%9f%b9|||1823|30 +1076374|黑龙江J银行信息网络项目建设研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1018007114.htm|王宇宁|27671084|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27671084%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%ae%81|||27|0 +1076374|“か”“は”的基本用法与省略|http://cdmd.cnki.com.cn/Article/CDMD-10183-1016077610.htm|王宇菲|35514449|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35514449%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%8f%b2|||166|0 +1076374|银行自助终端机的设计与实现|http://cdmd.cnki.com.cn/Article/CDMD-10183-1015598348.htm|王宇涵|33322652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33322652%3b&scholarName=%e7%8e%8b%e5%ae%87%e6%b6%b5|||230|0 +1076374|纳米掺杂对聚合物分散液晶光电性能影响的研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1013193030.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||357|3 +1076374|公安部门人力资源激励机制研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1016091629.htm|王宇宁|27671084|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27671084%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%ae%81|||192|3 +1076374|论克吕尼运动对中世纪西欧秩序的塑造|http://cdmd.cnki.com.cn/Article/CDMD-10183-1014211927.htm|王宇翔|31452212|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31452212%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%bf%94|||513|0 +1076374|“温阳补气”针法对实验性自身免疫性重症肌无力大鼠血清IL-12和IL-18表达水平的影响及其作用机制|http://www.cnki.com.cn/Article/CJFDTOTAL-ZMXZ201407012.htm|王洪峰,李实,董理,王宇峰|14224202,07683099,25318507,21993396|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14224202%3b07683099%3b25318507%3b21993396%3b&scholarName=%e7%8e%8b%e6%b4%aa%e5%b3%b0|中国免疫学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZMXZ|220|4 +1076374|企业网络、组织学习对技术创新的作用关系研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1014130349.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||1664|11 +1076374|热稳定体相还原态对二氧化钛气敏应用重要性的实验证实|http://www.cnki.com.cn/Article/CJFDTOTAL-HXXB201213010.htm|邹晓新,李国栋,邹永存,王培培,苏娟,赵君,王宇宁,陈接胜|27671081,23703165,07659885,07688611,27671082,27671083,27064538,07681564,27671084,23703166|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27671081%3b23703165%3b07659885%3b07688611%3b27671082%3b27671083%3b27064538%3b07681564%3b27671084%3b23703166%3b&scholarName=%e9%82%b9%e6%99%93%e6%96%b0|化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HXXB|141|4 +1076374|BL20L液化天然气(LNG)发动机的开发|http://cdmd.cnki.com.cn/Article/CDMD-10183-1011098971.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||665|9 +1076374|可变载频径向剪切雅敏干涉仪|http://www.cnki.com.cn/Article/CJFDTOTAL-GXJM201405010.htm|朱勇建,那景新,王宇,职亚楠,范玉峰|23951790,07693176,07667646,30498077,10353388,29147143|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23951790%3b07693176%3b07667646%3b30498077%3b10353388%3b29147143%3b&scholarName=%e6%9c%b1%e5%8b%87%e5%bb%ba|光学精密工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GXJM|87|1 +1076374|Ka波段多波束卫星通信系统降雨衰减补偿方法的研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2006092581.htm|王宇飞|07676876|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07676876%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%a3%9e|||650|12 +1076374|脉冲电刺激对改性纳米羟基磷灰石/聚丙交酯-乙交酯复合材料表面成骨细胞增殖及成骨活性的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-XDKF200916019.htm|于婷,刘娅,邬海涛,崔巍巍,王宇,景遐斌,章培标,陈学思|21649309,11168963,07677974,22460169,22460170,07664107,21649310,05968183,10340110,09521903|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21649309%3b11168963%3b07677974%3b22460169%3b22460170%3b07664107%3b21649310%3b05968183%3b10340110%3b09521903%3b&scholarName=%e4%ba%8e%e5%a9%b7|中国组织工程研究与临床康复|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDKF|257|6 +1076374|从同意到公共理由|http://cdmd.cnki.com.cn/Article/CDMD-10183-1013187854.htm|王宇环|14338781|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14338781%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%8e%af|||728|6 +1076374|LR-WPAN/IEEE802.15.4冲突避免机制的研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2009092821.htm|王宇雯|23198196|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23198196%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%9b%af|||612|8 +1076374|海林地区政策性粮食安全保障问题研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1017008403.htm|王宇鹏|35177392|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35177392%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%b9%8f|||31|0 +1076374|基于DVI接口的数字视频信号传输技术研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2005105296.htm|王宇庆|07671049|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671049%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%ba%86|||900|9 +1076374|KA注射致痫大鼠脑组织中CX43的表达及其意义|http://www.cnki.com.cn/Article/CJFDTOTAL-ZFSJ200502005.htm|蔡正旭,张淑琴,郭慧淑,刘群,杨立彬,梁建民,王宇虹|09291312,07695884,07691843,07691050,07682624,06548408,07025783|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09291312%3b07695884%3b07691843%3b07691050%3b07682624%3b06548408%3b07025783%3b&scholarName=%e8%94%a1%e6%ad%a3%e6%97%ad|中风与神经疾病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZFSJ|141|18 +1076374|吉林省中部城市引松供水工程九台、德惠支线工程水资源论证|http://cdmd.cnki.com.cn/Article/CDMD-10183-2010108908.htm|王宇轩|23906083|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23906083%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%bd%a9|||458|6 +1076374|肺组织灌注前后双向电泳的比较|http://www.cnki.com.cn/Article/CJFDTOTAL-XAYX200602028.htm|李圣青,赵峰,戚好文,张晓君,赵馨,潘刚,吴哲,王宇,阙海萍,刘少君|22789859,05965980,21051254,20519352,21059608,07671046,20475219|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22789859%3b05965980%3b21051254%3b20519352%3b21059608%3b07671046%3b20475219%3b&scholarName=%e6%9d%8e%e5%9c%a3%e9%9d%92|西安交通大学学报(医学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XAYX|81|14 +1076374|非对称均值回归与金融危机的形成机理|http://cdmd.cnki.com.cn/Article/CDMD-10183-1016077991.htm|王宇洋|31875613|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31875613%3b&scholarName=%e7%8e%8b%e5%ae%87%e6%b4%8b|||207|0 +1076374|沈阳公用集团生态产品市场推广项目的营销计划研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1014203560.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||269|0 +1076374|基于UEFI的底层API的性能分析及其功能测试的研究与设计|http://cdmd.cnki.com.cn/Article/CDMD-10183-2010110378.htm|王宇飞|07676876|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07676876%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%a3%9e|||254|8 +1076374|基于谱分解的薄层反演方法研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2007094807.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||938|8 +1076374|缝隙连接蛋白32(CX32)在癫痫发病中的作用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZFSJ200504010.htm|蔡正旭,张淑琴,郭慧淑,刘群,杨立彬,梁建民,王宇虹|07691050,07695884,09291312,07691843,06548408,07025783,07682624|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07691050%3b07695884%3b09291312%3b07691843%3b06548408%3b07025783%3b07682624%3b&scholarName=%e8%94%a1%e6%ad%a3%e6%97%ad|中风与神经疾病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZFSJ|169|9 +1076374|聚合物优选对驱油效果的影响|http://cdmd.cnki.com.cn/Article/CDMD-10183-1014292111.htm|王宇航|07668942|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668942%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%88%aa|||200|0 +1076374|上海通用雪佛兰4S店的营销策略研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1012359079.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||1762|3 +1076374|Choukroun富血小板纤维蛋白在拔牙位点保存中应用的实验研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2010110253.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||528|10 +1076374|急性白血病并发静脉血栓33例临床分析|http://cdmd.cnki.com.cn/Article/CDMD-10183-1013193979.htm|王宇彤|29325771|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29325771%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%bd%a4|||239|2 +1076374|新郑郑国祭祀遗址相关问题研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1011096177.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||524|3 +1076374|基于多租户SaaS的模式映射技术|http://cdmd.cnki.com.cn/Article/CDMD-10183-1012367023.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||148|3 +1076374|天津一汽丰田汽车有限公司总装车间的管理体系和对策研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1011096559.htm|王宇铨|26459133|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26459133%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%93%a8|||660|5 +1076374|血管性认知障碍与颈动脉硬化的相关性临床研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1012371119.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||307|1 +1076374|科技型企业核心竞争力研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2005013905.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||1302|5 +1076374|炎症信号在血管衰老中的作用机制|http://www.cnki.com.cn/Article/CJFDTOTAL-LNBY201603008.htm|张莉,刘彧,王宇石,黄毅,雷达,郑杨,张存泰,王明屹|36370870,35407141,36370872,36370871,07696059,07604389,36708493,07691875,07613848,36370873|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36370870%3b35407141%3b36370872%3b36370871%3b07696059%3b07604389%3b36708493%3b07691875%3b07613848%3b36370873%3b&scholarName=%e5%bc%a0%e8%8e%89|中华老年病研究电子杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LNBY|116|0 +1076374|基于激光拼焊板特征的轿车前围上盖板再设计研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2008061352.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||313|4 +1076374|Mg-1.5Mn-1.5Y-3Sn合金显微组织及力学性能研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XJXG201306040.htm|房大庆,邓庆东,王宇,张雅琴,张晓茹,张云飞,柴跃生|27386866,29270897,11223283,08869880,26831872,29228769,08863293|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27386866%3b29270897%3b11223283%3b08869880%3b26831872%3b29228769%3b08863293%3b&scholarName=%e6%88%bf%e5%a4%a7%e5%ba%86|新技术新工艺|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XJXG|97|3 +1076374|基于数字电视技术的HFC网络升级改造方案|http://cdmd.cnki.com.cn/Article/CDMD-10183-2005105300.htm|王宇航|07668942|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668942%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%88%aa|||423|6 +1076374|图书馆员的职业素养新视野|http://www.cnki.com.cn/Article/CJFDTOTAL-CCLG200906070.htm|王方平,王宇佳,王杰英|23763644,07768885,07676338|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23763644%3b07768885%3b07676338%3b&scholarName=%e7%8e%8b%e6%96%b9%e5%b9%b3|长春理工大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CCLG|77|1 +1076374|急性脑梗死患者血浆8-异前列腺素F2α测定及其临床意义|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLXZ201114023.htm|赵明明,徐忠信,王宇,马明,王海燕,李新颖,赵晴|26323752,07692483,23190759,23190758,26323753,25588040,07697695|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26323752%3b07692483%3b23190759%3b23190758%3b26323753%3b25588040%3b07697695%3b&scholarName=%e8%b5%b5%e6%98%8e%e6%98%8e|中国老年学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLXZ|129|5 +1076374|吉林市城区中医药社区卫生服务现状调查与对策研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2009052429.htm|王宇凤|22546580|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22546580%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%87%a4|||588|4 +1076374|中国保险业的技术效率及其影响因素分析|http://cdmd.cnki.com.cn/Article/CDMD-10183-2008065465.htm|王宇石|07668943|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668943%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%9f%b3|||262|7 +1076374|基于覆盖件成形结果的整车碰撞精细仿真|http://www.cnki.com.cn/Article/CJFDTOTAL-SXGC201101003.htm|刘瑞军,胡平,王宇|06236360,11141811,07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06236360%3b11141811%3b07671046%3b&scholarName=%e5%88%98%e7%91%9e%e5%86%9b|塑性工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SXGC|138|2 +1076374|电子政务通用安全中间件|http://cdmd.cnki.com.cn/Article/CDMD-10183-1013118471.htm|王宇生|28585774|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28585774%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%94%9f|||115|1 +1076374|管材缺陷的模糊模式识别方法的研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2005105125.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||244|7 +1076374|心肌桥-壁冠状动脉的临床分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZSSA201334052.htm|王凌云,王宇飞,张尉华|30306895,30306896,07696540|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30306895%3b30306896%3b07696540%3b&scholarName=%e7%8e%8b%e5%87%8c%e4%ba%91|中国实用医药|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZSSA|43|0 +1076374|原卟啉钠水溶液的表面增强拉曼光谱|http://www.cnki.com.cn/Article/CJFDTOTAL-HLDZ199304017.htm|付宏刚,王宇天,梁映秋|07677391,05973603,07687689|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07677391%3b05973603%3b07687689%3b&scholarName=%e4%bb%98%e5%ae%8f%e5%88%9a|黑龙江大学自然科学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HLDZ|51|0 +1076374|肝硬化合并自发性腹膜炎诊断的研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-LCGD200503031.htm|许贤姬,朴云峰,王宇|07682675,21404500,17729039|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07682675%3b21404500%3b17729039%3b&scholarName=%e8%ae%b8%e8%b4%a4%e5%a7%ac|临床肝胆病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCGD|163|4 +1076374|辩论赛自由辩论阶段语用预设研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2008065703.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||1344|6 +1076374|《支那语军用会话》研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2007105472.htm|王宇宏|07676877|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07676877%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%ae%8f|||365|3 +1076374|狂犬病病毒抗原ELISA检测方法的建立及其应用|http://www.cnki.com.cn/Article/CJFDTOTAL-SWZP200907030.htm|王亚军,戚凤春,薛向光,李晓波,王丽娜,谢琳,王宇,夏青娟,隋波,张梅,魏涛,郭立君|27021966,07676821,27015972,27015962,27016746,27021919,27021967,27021554,27021968,23176727,27015963,23176728,27017352|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27021966%3b07676821%3b27015972%3b27015962%3b27016746%3b27021919%3b27021967%3b27021554%3b27021968%3b23176727%3b27015963%3b23176728%3b27017352%3b&scholarName=%e7%8e%8b%e4%ba%9a%e5%86%9b|中国生物制品学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SWZP|281|2 +1076374|政府成本控制研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2004099171.htm|王宇恒|07687688|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07687688%3b&scholarName=%e7%8e%8b%e5%ae%87%e6%81%92|||668|8 +1076374|四磺基苯基卟啉的表面增强拉曼效应|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH199310022.htm|付宏刚,王宇天,梁映秋|05973603,08032589,07687689|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05973603%3b08032589%3b07687689%3b&scholarName=%e4%bb%98%e5%ae%8f%e5%88%9a|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|40|0 +1076374|罗哌卡因腰椎硬膜外联合麻醉在老年下肢骨关节置换术中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLXZ201219116.htm|王诚,李琦,王宇冬|15229694,07681104,27869871|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15229694%3b07681104%3b27869871%3b&scholarName=%e7%8e%8b%e8%af%9a|中国老年学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLXZ|36|14 +1076374|支持向量机在电网故障诊断中的应用研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2010110493.htm|王宇飞|07676876|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07676876%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%a3%9e|||297|6 +1076374|空心、大孔氮掺杂多孔碳的合成及其气体吸附、氧还原的性能研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1018225587.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||464|0 +1076374|新型多孔芳香骨架材料的合成及其在钙钛矿太阳能电池中的应用|http://cdmd.cnki.com.cn/Article/CDMD-10183-1018217820.htm|王宇迪|10940529|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10940529%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%bf%aa|||130|0 +1076374|人参皂苷Rh2的人类内靶点鉴定及抗肿瘤分子机制研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1018217909.htm|王宇石|07668943|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668943%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%9f%b3|||173|0 +1076374|致密岩石渗透率获取方法及储层产能测井预测|http://cdmd.cnki.com.cn/Article/CDMD-10183-1018218699.htm|王宇竹|38416868|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38416868%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%ab%b9|||57|0 +1076374|Espin与whirlin相互作用机制的研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1018213218.htm|王宇晨|35816331|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35816331%3b&scholarName=%e7%8e%8b%e5%ae%87%e6%99%a8|||19|0 +1076374|中国插画设计中的传统与时尚|http://cdmd.cnki.com.cn/Article/CDMD-10183-1013188870.htm|王宇航|07668942|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668942%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%88%aa|||450|2 +1076374|表面修饰二氧化钛光催化剂的制备以及性能研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1012365548.htm|王宇宁|27671084|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27671084%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%ae%81|||282|2 +1076374|重组肿瘤相关抗原蛋白与肿瘤治疗性DNA疫苗静电耦合成为复合纳米颗粒的初步研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JSYX200803007.htm|王浩,阎瑾琦,张飒,贾锐,张亮,刘宁,王宇,宋晓国,于继云|21117770,20757911,20898818,21152706,20473532,20248662,05975494,21133176|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21117770%3b20757911%3b20898818%3b21152706%3b20473532%3b20248662%3b05975494%3b21133176%3b&scholarName=%e7%8e%8b%e6%b5%a9|军事医学科学院院刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSYX|116|2 +1076374|FOXO1对破骨细胞生成和功能的影响及其机制的研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1014266010.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||650|2 +1076374|不真正连带债务研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2008063462.htm|王宇飞|07676876|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07676876%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%a3%9e|||188|3 +1076374|关于建立中日韩自由贸易区的可行性分析|http://cdmd.cnki.com.cn/Article/CDMD-10183-2007092926.htm|王宇光|07671047|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671047%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%85%89|||607|2 +1076374|微型客车车体结构与乘员约束系统整体模型的研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2005106483.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||312|2 +1076374|等离子射频消融治疗慢性肥厚性鼻炎156例分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JLYX200705051.htm|赵志峰,王宇声,杜波|07682767,21458280,07690459|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07682767%3b21458280%3b07690459%3b&scholarName=%e8%b5%b5%e5%bf%97%e5%b3%b0|吉林医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLYX|27|1 +1076374|基于信用风险评估的开发银行贷款定价研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2010032857.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||302|2 +1076374|吉林省产业集群发展实证研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2007105206.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||319|2 +1076374|TE3L/TE4L缺失型天坛株痘苗病毒的构建及免疫原性分析|http://cdmd.cnki.com.cn/Article/CDMD-10183-1012371896.htm|王宇航|07668942|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668942%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%88%aa|||85|2 +1076374|商业银行高端个人客户资产配置的项目管理研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1012358883.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||467|2 +1076374|基于FD-BPM的有机聚合物光波导器件的模拟|http://cdmd.cnki.com.cn/Article/CDMD-10183-2007091574.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||369|2 +1076374|论我国农村承包地收回制度的权利逻辑|http://cdmd.cnki.com.cn/Article/CDMD-10183-1012259616.htm|王宇飞|07676876|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07676876%3b&scholarName=%e7%8e%8b%e5%ae%87%e9%a3%9e|||596|5 +1076374|具有手性结构特征的金属磷酸盐的合成与表征|http://cdmd.cnki.com.cn/Article/CDMD-10183-2004100327.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||685|5 +1076374|逆成形有限元法若干关键问题与整车碰撞精细仿真研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2008126830.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||416|8 +1076374|图书综合管理系统|http://cdmd.cnki.com.cn/Article/CDMD-10183-1011100149.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||524|0 +1076374|数字图书馆运营模式电子商务化研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2004099061.htm|王宇东|07676875|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07676875%3b&scholarName=%e7%8e%8b%e5%ae%87%e4%b8%9c|||530|1 +1076374|大学师生课堂矛盾成因与对策探讨|http://www.cnki.com.cn/Article/CJFDTOTAL-JYJU201036127.htm|李海华,王宇|25144777,07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25144777%3b07671046%3b&scholarName=%e6%9d%8e%e6%b5%b7%e5%8d%8e|教育教学论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYJU|30|0 +1076374|利用组织芯片检测水通道蛋白1在乳腺癌组织中的表达|http://www.cnki.com.cn/Article/CJFDTOTAL-ZSZD201103008.htm|王楠,肖英红,王宇,冯学超,何成彦|06588624,21801711,06601598,06596632,07697267|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06588624%3b21801711%3b06601598%3b06596632%3b07697267%3b&scholarName=%e7%8e%8b%e6%a5%a0|中国实验诊断学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZSZD|106|3 +1076374|经皮肝穿刺射频热凝治疗原发性小肝癌近期疗效的监测|http://www.cnki.com.cn/Article/CJFDTOTAL-LCGD200501022.htm|吴洪磊,朴云峰,王宇|07682675,07696058,08858226|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07682675%3b07696058%3b08858226%3b&scholarName=%e5%90%b4%e6%b4%aa%e7%a3%8a|临床肝胆病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCGD|59|6 +1076374|美国股指期货市场发展分析|http://cdmd.cnki.com.cn/Article/CDMD-10183-2008065796.htm|王宇新|17514105|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17514105%3b&scholarName=%e7%8e%8b%e5%ae%87%e6%96%b0|||787|1 +1076374|JAK激酶抑制剂AG490阻断Stat3信号转导介导肿瘤细胞凋亡实验研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2007094430.htm|王宇峰|11226825|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11226825%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%b3%b0|||397|0 +1076374|论伽达默尔的释义学历史观|http://cdmd.cnki.com.cn/Article/CDMD-10183-2007104636.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||258|2 +1076374|中医综合康复对脊髓损伤后膀胱功能障碍患者自主排尿功能及生活质量的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-SJZX201901023.htm|边静,张为民,王宇峰,宋柏林,丛德毓,唐强,李丽,周谋望,冼庆林,廖维靖,冯晓东,朱庆三|25940742,21747012,24049792,23199990,24049791,07365375,08397919,06280366,17296495,08997544,14029507,07685079|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25940742%3b21747012%3b24049792%3b23199990%3b24049791%3b07365375%3b08397919%3b06280366%3b17296495%3b08997544%3b14029507%3b07685079%3b&scholarName=%e8%be%b9%e9%9d%99|世界中西医结合杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJZX|0|0 +1076374|从个人同意到公共理由|http://cdmd.cnki.com.cn/Article/CDMD-10183-2009097524.htm|王宇环|14338781|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14338781%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%8e%af|||309|1 +1076374|超宽带掺铒光纤放大器的研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2006092582.htm|王宇航|07668942|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668942%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%88%aa|||299|0 +1076374|基于遗传算法的宏观经济模型|http://cdmd.cnki.com.cn/Article/CDMD-10183-2004098776.htm|王宇星|07687690|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07687690%3b&scholarName=%e7%8e%8b%e5%ae%87%e6%98%9f|||544|2 +1076374|多层螺旋CTA在颅内未破裂动脉瘤的应用研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1011099224.htm|王宇峰|11226825|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11226825%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%b3%b0|||86|2 +1076374|精益理论在DPH公司产品开发管理中的应用与实践|http://cdmd.cnki.com.cn/Article/CDMD-10183-2008061540.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||202|1 +1076374|论反垄断法与规模经济|http://cdmd.cnki.com.cn/Article/CDMD-10183-2006114636.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||481|0 +1076374|浅谈自然形态视觉要素的画面构成|http://cdmd.cnki.com.cn/Article/CDMD-10183-2009052075.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||210|2 +1076374|医院管理系统中数据仓库的构建与OLAP解决方案|http://cdmd.cnki.com.cn/Article/CDMD-10183-2006092211.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||202|0 +1076374|碱化利多卡因和神经安定镇痛术联合应用于30例椎管内麻醉老年手术患者的临床观察|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLXZ201216088.htm|王诚,李琦,王宇冬|15229694,07681104,27869871|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15229694%3b07681104%3b27869871%3b&scholarName=%e7%8e%8b%e8%af%9a|中国老年学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLXZ|25|4 +1076374|SCDMA小灵通信令监测软件设计与实现|http://cdmd.cnki.com.cn/Article/CDMD-10183-1012368162.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||20|0 +1076374|74例肝硬化合并肝性脑病临床分析|http://cdmd.cnki.com.cn/Article/CDMD-10183-2004101014.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||468|1 +1076374|Lie理想上具有幂-协中心化的导子|http://www.cnki.com.cn/Article/CJFDTOTAL-JLDX200603007.htm|张敏,吴伟,王宇|07733195,07744832|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07733195%3b07744832%3b&scholarName=%e5%bc%a0%e6%95%8f|吉林大学学报(理学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLDX|43|0 +1076374|TGF-β及其信号传导蛋白在卵巢上皮性肿瘤中的表达研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2008061674.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||250|0 +1076374|基于硅色敏传感器的电脑比色仪的研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2008060808.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||129|0 +1076374|交换网络系统安全性的研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2008062890.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||88|1 +1076374|大鼠脊髓损伤与修复相关基因:生物信息学分析及SCIRR10分子特性|http://cdmd.cnki.com.cn/Article/CDMD-10183-2005105762.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||192|0 +1076374|东亚汇率制度安排和国际政策协调|http://cdmd.cnki.com.cn/Article/CDMD-10183-2005108526.htm|王宇涛|07671050|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671050%3b&scholarName=%e7%8e%8b%e5%ae%87%e6%b6%9b|||202|0 +1076374|上海邮政运输网络运行监控系统方案优选|http://cdmd.cnki.com.cn/Article/CDMD-10183-2006013937.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||111|0 +1076374|乙肝病毒表面抗原preS2/S基因的修饰及在Pichia Pastoris系统的分泌表达|http://cdmd.cnki.com.cn/Article/CDMD-10183-2007095158.htm|王宇迪|10940529|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10940529%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%bf%aa|||107|0 +1076374|浅析海关政务办公系统——HB2004|http://cdmd.cnki.com.cn/Article/CDMD-10183-2005105935.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||135|0 +1076374|核因子κB对氧化低密度脂蛋白诱导单核细胞U937凋亡的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLXZ201322075.htm|王凌云,张尉华,王宇飞,郑杨|30306895,07696540,30306896,07691875|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30306895%3b07696540%3b30306896%3b07691875%3b&scholarName=%e7%8e%8b%e5%87%8c%e4%ba%91|中国老年学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLXZ|12|0 +1076374|试析中国市场经济中的政府信用建设|http://cdmd.cnki.com.cn/Article/CDMD-10183-2008064678.htm|王宇哲|17497931|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17497931%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%93%b2|||181|0 +1076374|儿童分泌性中耳炎鼓膜置管术治疗|http://www.cnki.com.cn/Article/CJFDTOTAL-ZFYB200727035.htm|代志瑶,刘洪权,杜波,马忠恕,王宇声|07695940,07690583,07682767,07690459|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07695940%3b07690583%3b07682767%3b07690459%3b&scholarName=%e4%bb%a3%e5%bf%97%e7%91%b6|中国妇幼保健|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZFYB|60|1 +1076374|基于随机模型的消费异常下降顾客的筛选与分析|http://cdmd.cnki.com.cn/Article/CDMD-10183-1012358453.htm|王宇熙|27764576|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27764576%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%86%99|||56|0 +1076374|政府部门能源浪费的现状、成因和对策|http://cdmd.cnki.com.cn/Article/CDMD-10183-2009052510.htm|王宇航|07668942|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668942%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%88%aa|||178|2 +1076374|闭孔神经阻滞在经尿道膀胱肿瘤电切术中的临床应用|http://cdmd.cnki.com.cn/Article/CDMD-10183-2010110638.htm|王宇光|07671047|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671047%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%85%89|||116|1 +1076374|短小棒状杆菌有效成分的免疫活性研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2006092241.htm|王宇宏|07676877|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07676877%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%ae%8f|||132|0 +1076374|统筹法在病毒检验工作中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-GYKX201324082.htm|范荣军,庄艳,刘衷芳,周丽娜,李晓鹏,梁爽,王宇|22143810,10986091,07308720,07308232,22087613,28995833|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22143810%3b10986091%3b07308720%3b07308232%3b22087613%3b28995833%3b&scholarName=%e8%8c%83%e8%8d%a3%e5%86%9b|中国医药科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GYKX|32|0 +1076374|HIV-1 Vif诱导蛋白酶体途径降解APOBEC3蛋白过程中泛素化作用的研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-1011106012.htm|王宇迪|10940529|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10940529%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%bf%aa|||402|1 +1076374|SnO_2及Sn-Fe-Nb-O体系的合成与性质研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2008126413.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||252|1 +1076374|骨组织内降钙素基因相关肽(CGRP)免疫阳性神经在骨重建过程中的作用|http://cdmd.cnki.com.cn/Article/CDMD-10183-2010107202.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||216|0 +1076374|糖尿病大鼠周围神经、视网膜病变发病机制及巴曲酶保护作用研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2006109729.htm|王宇石|07668943|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07668943%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%9f%b3|||282|0 +1076374|孕妇产前贫血患病率及相关因素分析|http://www.cnki.com.cn/Article/CJFDTOTAL-SYXL200812055.htm|李海素,李亚梅,曹刚,王宇宏,谭冲|07708262,07684851,21931606,07722975,17375800|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07708262%3b07684851%3b21931606%3b07722975%3b17375800%3b&scholarName=%e6%9d%8e%e6%b5%b7%e7%b4%a0|实用心脑肺血管病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SYXL|65|1 +1076374|在过继性实验性自身免疫性神经炎中IL-12和IL-18的免疫发病机制及协同机制的研究|http://cdmd.cnki.com.cn/Article/CDMD-10183-2004100015.htm|王宇虹|07671048|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671048%3b&scholarName=%e7%8e%8b%e5%ae%87%e8%99%b9|||143|0 +1076374|21世纪如何推动终身学习|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-JDNX201311001011.htm|王宇|07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b&scholarName=%e7%8e%8b%e5%ae%87|||21|0 +1076374|聚集诱导发光增强凝胶体系的发光调控|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGHY201707003062.htm|尚红杏,王宇飞,姜世梅|28194100,07676876,07665847|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28194100%3b07676876%3b07665847%3b&scholarName=%e5%b0%9a%e7%ba%a2%e6%9d%8f|||3|0 +1076374|过表达猪脂蛋白相关磷脂酶A_2转基因猪建立|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=IGSQ201610001059&dbname=IPFDLAST2017|唐小春,王罡琦,刘星星,韩晓蕾,李壮,冉光耀,李占军,宋琦,纪元,王海军,王宇辉,欧阳红生,逄大欣|11198825,27721724,31470195,27205212,07677343,33366803,07660652,11237161,27176282,07670436,06260452,07669227,07669274|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11198825%3b27721724%3b31470195%3b27205212%3b07677343%3b33366803%3b07660652%3b11237161%3b27176282%3b07670436%3b06260452%3b07669227%3b07669274%3b&scholarName=%e5%94%90%e5%b0%8f%e6%98%a5|||3|0 +1076374|双氮源法合成高氮含量氮掺杂多孔碳空心球|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGHY201607043173.htm|王宇,王润伟,张宗弢,裘式纶|07671046,07668783,23703189,07674738|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07671046%3b07668783%3b23703189%3b07674738%3b&scholarName=%e7%8e%8b%e5%ae%87|||42|0 +1076374|两步还原法制备聚醚醚酮/石墨烯导电复合材料|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGHY201310013107.htm|杨丽龙,张淑玲,郭云亮,王宇瑶,王贵宾|26864346,07680252,26863334,30232151,07670425|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26864346%3b07680252%3b26863334%3b30232151%3b07670425%3b&scholarName=%e6%9d%a8%e4%b8%bd%e9%be%99|||70|0 +1076374|非创伤性脑脊液鼻漏5例报告及文献回顾|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-JLKX201108001042.htm|王宇声,孙乐|07682767,07690938|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07682767%3b07690938%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%a3%b0|||10|0 +1076374|42例甲状腺再次手术临床分析|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZHYX200710004313.htm|王宇声|07682767|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07682767%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%a3%b0|||14|0 +1076374|无模板合成硫氮双掺杂树脂微球|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGHY201607043220.htm|郭宁宁,王宇,王润伟,张宗弢,裘式纶|07657292,07668783|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07657292%3b07668783%3b&scholarName=%e9%83%ad%e5%ae%81%e5%ae%81|||4|0 +1076374|无机氧化物手性液晶自支撑膜及其对稀土荧光发光的调控|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGHY201408047179.htm|褚光,屈丹,姜海晶,王宇,徐雁|28864569,25634295,32217171,07671046,07678122|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28864569%3b25634295%3b32217171%3b07671046%3b07678122%3b&scholarName=%e8%a4%9a%e5%85%89|||13|0 +1076374|糖尿病大鼠周围神经、视网膜病变发病机制及巴曲酶保护作用研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZHYX200609001A9W.htm|王宇石,饶明俐|07680135,11417501|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07680135%3b11417501%3b&scholarName=%e7%8e%8b%e5%ae%87%e7%9f%b3|||26|0 +1076374|酞菁在银电极上的表面增强喇曼光谱|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-PIDD198511001067.htm|王宇天,梁映秋|07687689,07677391|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07687689%3b07677391%3b&scholarName=%e7%8e%8b%e5%ae%87%e5%a4%a9|||6|0 +1076374|利用Cre-loxp系统及EGFP/Brdu双筛选标记构建基因缺失天坛株痘苗病毒载体|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGXJ201010005180.htm|阚式绂,李霄,王宇航,王卓越,齐延新,贾鹏,杜寿文,金宁一|24010003,24010004,20809502,24312490,07668942,24312489,25538149,26887742,26652552,25778305,25445452,25139197,05967940|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24010003%3b24010004%3b20809502%3b24312490%3b07668942%3b24312489%3b25538149%3b26887742%3b26652552%3b25778305%3b25445452%3b25139197%3b05967940%3b&scholarName=%e9%98%9a%e5%bc%8f%e7%bb%82|||38|0 +1076374|阿德福韦酯治疗HBeAg阳性的中国慢性乙型病毒性肝炎病人52周的多中心、随机、双盲、安慰剂平行对照的临床研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZHYX200505002017.htm|曾民德,茅益民,姚光弼,周霞秋,王豪,徐道振,姚集鲁,侯金林,王宇明,任红,陈亚岗,牛俊奇,王耀宗|05967625,05966610,23044118,20248699,05967317,16745124,05973101,05974363,07681181,05967195,10052934,22828246|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967625%3b05966610%3b23044118%3b20248699%3b05967317%3b16745124%3b05973101%3b05974363%3b07681181%3b05967195%3b10052934%3b22828246%3b&scholarName=%e6%9b%be%e6%b0%91%e5%be%b7|||46|1 +1076374|生物可吸收高分子纳米复合人工骨材料|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-IGSS200808004017.htm|章培标,崔阳,于婷,王宇,崔立国,景遐斌,陈学思|10340110,21649308,07653679,21649309,11168963,21649310,21649311,05968183,09521903|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10340110%3b21649308%3b07653679%3b21649309%3b11168963%3b21649310%3b21649311%3b05968183%3b09521903%3b&scholarName=%e7%ab%a0%e5%9f%b9%e6%a0%87|||61|0 +1076374|急性肺栓塞的比较蛋白质组学研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-IGSS200507002152.htm|李圣青,戚好文,张晓君,赵馨,潘刚,吴哲,王宇,阙海萍,刘少君|20766489,20475219,21059608,20534731,20519352,22789859,05965980,07669135,07671046|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=20766489%3b20475219%3b21059608%3b20534731%3b20519352%3b22789859%3b05965980%3b07669135%3b07671046%3b&scholarName=%e6%9d%8e%e5%9c%a3%e9%9d%92|||24|0 +1078655|文本表示方法对微博Hashtag推荐影响研究——以Twitter上H7N9微博为例|http://www.cnki.com.cn/Article/CJFDTOTAL-BOOK201503003.htm|邵健,章成志|32313946,13897453,08071869|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32313946%3b13897453%3b08071869%3b&scholarName=%e9%82%b5%e5%81%a5|图书与情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BOOK|328|1 +1078655|Hashtag研究综述|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201510007.htm|邵健,章成志,李蕾|32313946,13897453,08071869,26680182|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32313946%3b13897453%3b08071869%3b26680182%3b&scholarName=%e9%82%b5%e5%81%a5|现代图书情报技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|147|0 +1078655|从互联网上自动获取领域平行语料|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201412006.htm|邵健,章成志|32313946,13897453|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32313946%3b13897453%3b&scholarName=%e9%82%b5%e5%81%a5|现代图书情报技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|135|2 +1078655|多语言微博Hashtag生成及其应用研究|http://cdmd.cnki.com.cn/Article/CDMD-10288-1016222266.htm|邵健|32313946|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32313946%3b&scholarName=%e9%82%b5%e5%81%a5|||88|0 +1086141|在线用户评论细粒度属性抽取|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201705006.htm|周清清,章成志|32487022,37789594,13897453,08071869,37789595|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32487022%3b37789594%3b13897453%3b08071869%3b37789595%3b&scholarName=%e5%91%a8%e6%b8%85%e6%b8%85|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|407|5 +1086141|基于迁移学习微博情绪分类研究——以H7N9微博为例|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201604001.htm|周清清,章成志|32487022,13897453,08071869|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32487022%3b13897453%3b08071869%3b&scholarName=%e5%91%a8%e6%b8%85%e6%b8%85|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|306|8 +1086141|整合不同评论平台的图书综合影响力评价研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201809001.htm|章成志,童甜甜,周清清|13897453,17600748,40111372,32487022|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13897453%3b17600748%3b40111372%3b32487022%3b&scholarName=%e7%ab%a0%e6%88%90%e5%bf%97|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|453|0 +1086141|面向在线社交网络用户生成内容的饮食话题发现研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201610012.htm|张晓勇,周清清,章成志|35192654,35192655,32487022,35192657,13897453,35192656,08071869|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35192654%3b35192655%3b32487022%3b35192657%3b13897453%3b35192656%3b08071869%3b&scholarName=%e5%bc%a0%e6%99%93%e5%8b%87|现代图书情报技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|280|6 +1086141|利用在线评论挖掘用户饮食偏好——以北京地区为例|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201703017.htm|岳子静,章成志,周清清|36598714,13897453,32487022|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36598714%3b13897453%3b32487022%3b&scholarName=%e5%b2%b3%e5%ad%90%e9%9d%99|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|772|9 +1086141|考虑图书推荐列表相似性的图书推荐研究|http://www.cnki.com.cn/Article/CJFDTOTAL-BOOK201803019.htm|张恒,章成志,周清清|35381125,13897453,32487022|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35381125%3b13897453%3b32487022%3b&scholarName=%e5%bc%a0%e6%81%92|图书与情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BOOK|128|0 +1086141|基于UGC的中国各地区用户饮食偏好挖掘研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201711010.htm|岳子静,章成志,周清清|36598714,13897453,32487022|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36598714%3b13897453%3b32487022%3b&scholarName=%e5%b2%b3%e5%ad%90%e9%9d%99|数据分析与知识发现|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|250|1 +1086141|基于电商产品评论的产品概念层次体系自动构建研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201606023.htm|张晓勇,章成志,周清清|35192654,35192655,13897453,35192656,08071869,32487022,35192657|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35192654%3b35192655%3b13897453%3b35192656%3b08071869%3b32487022%3b35192657%3b&scholarName=%e5%bc%a0%e6%99%93%e5%8b%87|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|369|5 +1090482|基于文献计量学的我国心理学学科半衰期分析|http://www.cnki.com.cn/Article/CJFDTOTAL-BOOK201404013.htm|张艳琼|31696018,24846225|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31696018%3b24846225%3b&scholarName=%e5%bc%a0%e8%89%b3%e7%90%bc|图书与情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BOOK|356|6 +1090482|我国特殊教育的知识图谱分析——基于2000-2013年《中国特殊教育》刊文|http://www.cnki.com.cn/Article/CJFDTOTAL-XNZS201412044.htm|张艳琼,张伟锋|31696018,24846225,07547791,25090161|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31696018%3b24846225%3b07547791%3b25090161%3b&scholarName=%e5%bc%a0%e8%89%b3%e7%90%bc|西南民族大学学报(人文社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XNZS|717|3 +1090482|面向大数据的突发事件物联网情报采集|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201803008.htm|唐明伟,苏新宁,张艳琼|32637378,35681381,08041788,35244868|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32637378%3b35681381%3b08041788%3b35244868%3b&scholarName=%e5%94%90%e6%98%8e%e4%bc%9f|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|369|2 +1090482|基于学科文献半衰期探寻我国新闻传播学科特征|http://www.cnki.com.cn/Article/CJFDTOTAL-BOOK201501019.htm|陈祖琴,张艳琼|31600801,31696018,24846225|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31600801%3b31696018%3b24846225%3b&scholarName=%e9%99%88%e7%a5%96%e7%90%b4|图书与情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BOOK|171|4 +1090482|基于云模型的突发事件分级模型研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201501009.htm|张艳琼,陈祖琴,苏新宁|31696018,24846225,31600801,08041788|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31696018%3b24846225%3b31600801%3b08041788%3b&scholarName=%e5%bc%a0%e8%89%b3%e7%90%bc|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|328|3 +1090482|基于突发事件演化模型的突发事件案例库构建|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201718016.htm|张艳琼,苏新宁,唐明伟|35244868,31696018,08041788,32637378|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35244868%3b31696018%3b08041788%3b32637378%3b&scholarName=%e5%bc%a0%e8%89%b3%e7%90%bc|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|289|2 +1090482|基于层次粗糙集的突发事件检索模型研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201810006.htm|张艳琼,蒋勋,徐绪堪|35244868,31696018,28452451,30260980|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35244868%3b31696018%3b28452451%3b30260980%3b&scholarName=%e5%bc%a0%e8%89%b3%e7%90%bc|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|140|0 +1090482|基于云变换的突发事件属性概念树的构建|http://www.cnki.com.cn/Article/CJFDTOTAL-XDQB201602009.htm|张艳琼,邓三鸿|34391198,31696018,08036304|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34391198%3b31696018%3b08036304%3b&scholarName=%e5%bc%a0%e8%89%b3%e7%90%bc|现代情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDQB|149|4 +1090482|听障大学生与健听大学生数字化阅读比较研究——以江苏地区为例|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTS201622004.htm|张艳琼,潘健,刘菲|35244868,31696018,36113730,36113729|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35244868%3b31696018%3b36113730%3b36113729%3b&scholarName=%e5%bc%a0%e8%89%b3%e7%90%bc|现代特殊教育|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTS|52|2 +1090482|我国特殊教育学学科被引半衰期分析——基于文献计量学视角|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTS201612003.htm|张艳琼|35244868,31696018|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35244868%3b31696018%3b&scholarName=%e5%bc%a0%e8%89%b3%e7%90%bc|现代特殊教育|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTS|100|1 +1093131|国外社区图书馆研究的文献计量与内容分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201408020.htm|刘意,龚蛟腾|27828869,30120020,09240635|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27828869%3b30120020%3b09240635%3b&scholarName=%e5%88%98%e6%84%8f|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|578|8 +1093131|中部地区地市级公共图书馆数字资源建设调查与分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGT201306015.htm|刘意,刘灿姣|27828869,10236316|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27828869%3b10236316%3b&scholarName=%e5%88%98%e6%84%8f|图书馆|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGT|252|10 +1093131|我国21世纪新图书馆运动研究综述|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGT201204014.htm|刘意,文庭孝|27828869,09242726|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27828869%3b09242726%3b&scholarName=%e5%88%98%e6%84%8f|图书馆|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGT|299|9 +1093131|基于文献计量的基层图书馆研究成果分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JXTS201401001.htm|刘意,龚蛟腾|27828869,30120020|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27828869%3b30120020%3b&scholarName=%e5%88%98%e6%84%8f|图书馆研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXTS|151|1 +1093131|湖南图书馆学专业教育概述|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGT201402015.htm|刘意,龚蛟腾|27828869,09240635|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27828869%3b09240635%3b&scholarName=%e5%88%98%e6%84%8f|图书馆|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGT|116|1 +1093131|基于网络的湖南地市级公共图书馆服务调查与创新分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGT201404020.htm|刘意,周永红,周宝蓝|27828869,10237147,31473268|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27828869%3b10237147%3b31473268%3b&scholarName=%e5%88%98%e6%84%8f|图书馆|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGT|118|2 +1093131|图书馆学人文研究范式解析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGT201205008.htm|汪其英,龚蛟腾,刘意|27658494,09240635,27828869|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27658494%3b09240635%3b27828869%3b&scholarName=%e6%b1%aa%e5%85%b6%e8%8b%b1|图书馆|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGT|225|2 +1093131|社区图书馆可持续发展保障体系研究|http://cdmd.cnki.com.cn/Article/CDMD-10530-1014401378.htm|刘意|27828869|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27828869%3b&scholarName=%e5%88%98%e6%84%8f|||617|11 +1094103|信息披露制度的综述和起源研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TAIY201403013.htm|郭斐|29932254|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29932254%3b&scholarName=%e9%83%ad%e6%96%90|科技创新与生产力|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TAIY|141|1 +1094103|基于协同服务模式的学科馆员制度创新研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JTXU201305003.htm|郭斐|29932254|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29932254%3b&scholarName=%e9%83%ad%e6%96%90|晋图学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JTXU|66|1 +1094103|心理因素对音乐表演的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-HHZS201319020.htm|郭斐婓|30308400|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30308400%3b&scholarName=%e9%83%ad%e6%96%90%e5%a9%93|黄河之声|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HHZS|45|0 +1094103|信息披露的法律制度研究|http://cdmd.cnki.com.cn/Article/CDMD-10108-1015367736.htm|郭斐|29932254|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29932254%3b&scholarName=%e9%83%ad%e6%96%90|||163|2 +1099031|我国社会保障学科研究热点及方法——基于CSSCI数据库的可视化分析|http://www.cnki.com.cn/Article/CJFDTOTAL-XDQB201301026.htm|杨慧娟,宗乾进|28648115,25945537|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28648115%3b25945537%3b&scholarName=%e6%9d%a8%e6%85%a7%e5%a8%9f|现代情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDQB|536|3 +1099475|网络问答社区用户信息行为研究进展及展望|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQC201504010.htm|陈晓宇,邓胜利,孙雅梦|10543166,10132783,33384985|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10543166%3b10132783%3b33384985%3b&scholarName=%e9%99%88%e6%99%93%e5%ae%87|图书情报知识|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQC|1330|24 +1099475|社交问答网站答案质量与答案采纳对比研究——以百度知道和知乎为例|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201506008.htm|陈晓宇,卢兴威,邓胜利|10543166,33720872,10132783|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10543166%3b33720872%3b10132783%3b&scholarName=%e9%99%88%e6%99%93%e5%ae%87|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|363|12 +1099475|社会化问答社区用户信息行为的转化研究——从信息采纳到持续性信息搜寻的理论模型构建|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQC201704009.htm|付少雄,陈晓宇,邓胜利|35503722,37369793,10132783|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35503722%3b37369793%3b10132783%3b&scholarName=%e4%bb%98%e5%b0%91%e9%9b%84|图书情报知识|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQC|859|12 +1099475|全民阅读背景下公共图书馆的城市化运营模式——来自新加坡Mall图书馆的启示|http://www.cnki.com.cn/Article/CJFDTOTAL-BOOK201801010.htm|付少雄,陈晓宇|35503722,37369793|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35503722%3b37369793%3b&scholarName=%e4%bb%98%e5%b0%91%e9%9b%84|图书与情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BOOK|315|2 +1099475|科研人员论文引用动机及相互影响关系研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201509006.htm|邱均平,陈晓宇,何文静|05965051,10543166,32862004|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05965051%3b10543166%3b32862004%3b&scholarName=%e9%82%b1%e5%9d%87%e5%b9%b3|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|654|16 +1099475|数字生活情境下的数据、信息和知识——第十九届“亚太数字图书馆国际会议”综述|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201810020.htm|付少雄,陈晓宇,仝晶晶,王春迎|35503722,37369793,36155798,34927576|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35503722%3b37369793%3b36155798%3b34927576%3b&scholarName=%e4%bb%98%e5%b0%91%e9%9b%84|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|221|0 +1099475|信息传播媒介对用户健康信息搜寻的影响研究——基于健康素养和信息检索能力的双重视角|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201704023.htm|邓胜利,付少雄,陈晓宇|10132783,35503722,36805224|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10132783%3b35503722%3b36805224%3b&scholarName=%e9%82%93%e8%83%9c%e5%88%a9|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|927|18 +1099475|社会化问答社区用户信息需求对信息搜寻的影响研究——基于问答社区卷入度的中介作用分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201707001.htm|邓胜利,陈晓宇,付少雄|10132783,37369793,35503722|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10132783%3b37369793%3b35503722%3b&scholarName=%e9%82%93%e8%83%9c%e5%88%a9|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|496|6 +1099475|国外健康信息素养研究现状与发展动态述评|http://www.cnki.com.cn/Article/CJFDTOTAL-XNZY201603001.htm|付少雄,邓胜利,陈晓宇|35503722,10132783,10543166|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35503722%3b10132783%3b10543166%3b&scholarName=%e4%bb%98%e5%b0%91%e9%9b%84|信息资源管理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XNZY|702|11 +1099475|朱世慧京剧艺术综论|http://www.cnki.com.cn/Article/CJFDTOTAL-CJWP201704016.htm|陈晓宇,李远|10543166,35891248|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10543166%3b35891248%3b&scholarName=%e9%99%88%e6%99%93%e5%ae%87|长江文艺评论|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CJWP|22|0 +1099475|基于作者耦合的馆藏数字资源关联聚合研究——以新闻传播学为例|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201412033.htm|邱均平,陈晓宇|05965051,10543166|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05965051%3b10543166%3b&scholarName=%e9%82%b1%e5%9d%87%e5%b9%b3|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|315|5 +1099475|大数据时代图书情报学理论与教育发展对策——第四届中美数字时代图书馆学情报学教育国际研讨会综述|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQC201601017.htm|郭晓婉,冉从敬,吴丹,李翼,毕仁敏,唐源,邓胜利,陈晓宇,林艳青,张晓娟,唐长乐,肖秋会,许晓彤|29426021,08986855,09011828,31276441,34372868,34050212,10132783,10543166,34372869,09016101,34269557,15087569,31487397|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29426021%3b08986855%3b09011828%3b31276441%3b34372868%3b34050212%3b10132783%3b10543166%3b34372869%3b09016101%3b34269557%3b15087569%3b31487397%3b&scholarName=%e9%83%ad%e6%99%93%e5%a9%89|图书情报知识|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQC|1152|5 +1099475|需求驱动下的大数据与智能服务——第二届信息获取与知识服务国际学术会议暨第七届搜索行为与用户认知研讨会纪要|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQC201701016.htm|邓胜利,付少雄,陈晓宇,赵海平,刘瑾,秦阳,韦佳岑,付婷,刘婷,邱建行,向阳|10132783,35503722,10543166,33022055,09005851,36372677,36372678,34080396,11094176,36372679,10138719|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10132783%3b35503722%3b10543166%3b33022055%3b09005851%3b36372677%3b36372678%3b34080396%3b11094176%3b36372679%3b10138719%3b&scholarName=%e9%82%93%e8%83%9c%e5%88%a9|图书情报知识|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQC|841|0 +1099475|化丑为美:京剧名丑朱世慧的粉墨人生——朱世慧访谈录|http://www.cnki.com.cn/Article/CJFDTOTAL-CJWP201704015.htm|李远,陈晓宇,朱世慧|35891248,10543166,26806941|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35891248%3b10543166%3b26806941%3b&scholarName=%e6%9d%8e%e8%bf%9c|长江文艺评论|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CJWP|28|0 +1099475|35 kV快速放电线圈工作原理及性能影响因素分析|http://www.cnki.com.cn/Article/CJFDTOTAL-GYDQ201809037.htm|陈晓宇,金涌涛,蔡重凯,胡叶舟,陈柏超,付师璕,田翠华|30587804,32429397,30587802,32479002,10132369,40111230,10137635|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30587804%3b32429397%3b30587802%3b32479002%3b10132369%3b40111230%3b10137635%3b&scholarName=%e9%99%88%e6%99%93%e5%ae%87|高压电器|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GYDQ|34|0 +1099475|广告创意产业园的发展路径|http://www.cnki.com.cn/Article/CJFDTOTAL-XYQS201708024.htm|李媛媛,陈晓宇|15200480,10543166|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15200480%3b10543166%3b&scholarName=%e6%9d%8e%e5%aa%9b%e5%aa%9b|新闻前哨|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XYQS|44|1 +1099475|菌类多糖的二级结构及生物活性|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-YYWS201211001466.htm|张俐娜,许小娟,王晓华,张阳洋,陶咏真,陈晓宇|00008355,10139198,09031617,10576160,17640253,10543166|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=00008355%3b10139198%3b09031617%3b10576160%3b17640253%3b10543166%3b&scholarName=%e5%bc%a0%e4%bf%90%e5%a8%9c|||143|0 +1099475|茯苓中β-(1→3)-D-葡聚糖在NaOH/urea水溶液中的柔顺链构象|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGHY200710003414.htm|陈晓宇,许小娟,张俐娜|10543166,10139198,00008355|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10543166%3b10139198%3b00008355%3b&scholarName=%e9%99%88%e6%99%93%e5%ae%87|||79|0 +1101055|美国高校图书馆开展MOOC服务的实践及启示|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201419017.htm|杨杰,袁永翠|02636371,10368674|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=02636371%3b10368674%3b&scholarName=%e6%9d%a8%e6%9d%b0|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|1768|53 +1101055|美国公共图书馆MOOC服务实践及启示|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGJ201501019.htm|杨杰,袁永翠|17349122,10368674|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17349122%3b10368674%3b&scholarName=%e6%9d%a8%e6%9d%b0|图书馆建设|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGJ|1440|40 +1101055|环面蜗轮滚刀螺旋槽前刀面设计及修正方法|http://www.cnki.com.cn/Article/CJFDTOTAL-BJHK201809010.htm|杨杰,李海涛,芮成杰,董学朱|17349122,10367340,33682792,09720742|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17349122%3b10367340%3b33682792%3b09720742%3b&scholarName=%e6%9d%a8%e6%9d%b0|北京航空航天大学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJHK|64|0 +1101055|基于双锥砂轮的环面蜗轮滚刀前刀面成形方法|http://www.cnki.com.cn/Article/CJFDTOTAL-BJHK201811023.htm|杨杰,李海涛,芮成杰,龙新佳妮,魏文军|17349122,10367340,33682792,36904829,09725724|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17349122%3b10367340%3b33682792%3b36904829%3b09725724%3b&scholarName=%e6%9d%a8%e6%9d%b0|北京航空航天大学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJHK|45|0 +1101055|提高我国农民信息素养水平的思考|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJN200806023.htm|杨杰,王鲁燕,李道亮|17349122,09668999,09621322|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17349122%3b09668999%3b09621322%3b&scholarName=%e6%9d%a8%e6%9d%b0|农业网络信息|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJN|337|11 +1101055|玉米耐旱遗传育种研究及分子育种策略|http://www.cnki.com.cn/Article/CJFDTOTAL-YMKX201803001.htm|梁晓玲,王业建,杨杰,吴永波,宋洁,柳波娟,周跃恒,王楠,雷志刚,阿布来提·阿布拉,韩登旭,郗浩江,郝转芳,陈绍江,戴景瑞|38010855,10242914,33910822,02636371,24952209,37503223,37503224,39406744,39406745,33051270,09279547,17713794,11307422,33910823,09682266,05977526,05968132|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38010855%3b10242914%3b33910822%3b02636371%3b24952209%3b37503223%3b37503224%3b39406744%3b39406745%3b33051270%3b09279547%3b17713794%3b11307422%3b33910823%3b09682266%3b05977526%3b05968132%3b&scholarName=%e6%a2%81%e6%99%93%e7%8e%b2|玉米科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YMKX|207|0 +1101055|引进美国玉米自交系在我国的耐旱适应性分析|http://www.cnki.com.cn/Article/CJFDTOTAL-YMKX201805001.htm|梁晓玲,王楠,王业建,李铭东,杨杰,阿布来提,雷志刚,韩登旭,郗浩江,陈绍江,刘文欣,李明顺,郝转芳|38010855,10242914,33051270,33910822,09260893,24952209,09227395,09279547,11307422,33910823,05977526,09622147,10372137,09682266|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38010855%3b10242914%3b33051270%3b33910822%3b09260893%3b24952209%3b09227395%3b09279547%3b11307422%3b33910823%3b05977526%3b09622147%3b10372137%3b09682266%3b&scholarName=%e6%a2%81%e6%99%93%e7%8e%b2|玉米科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YMKX|118|0 +1101055|拟成果购买制的互联网运作模式探讨|http://www.cnki.com.cn/Article/CJFDTOTAL-KJJB200908008.htm|杨杰,奉公|17349122,09620237|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17349122%3b09620237%3b&scholarName=%e6%9d%a8%e6%9d%b0|科技进步与对策|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJJB|82|0 +1101055|贫富差距与数字鸿沟|http://www.cnki.com.cn/Article/CJFDTOTAL-AHSD200405011.htm|赵冬梅,杨杰,黄爱白|02636371,09670698,09620597|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=02636371%3b09670698%3b09620597%3b&scholarName=%e8%b5%b5%e5%86%ac%e6%a2%85|安徽师范大学学报(人文社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/AHSD|245|10 +1101055|基于特征荧光信号的去囊衣带芯橘瓣分选|http://www.cnki.com.cn/Article/CJFDTOTAL-NYGU201709039.htm|王叶群,杨增玲,任卫东,刘婷,杨杰,张绍英|30530428,09624825,09622139,17349122,09727078|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30530428%3b09624825%3b09622139%3b17349122%3b09727078%3b&scholarName=%e7%8e%8b%e5%8f%b6%e7%be%a4|农业工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NYGU|35|1 +1101055|河西走廊地区春小麦需水量驱动因素分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JSGU201609034.htm|户广勇,王素芬,杨杰|35663490,09725609,17349122|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35663490%3b09725609%3b17349122%3b&scholarName=%e6%88%b7%e5%b9%bf%e5%8b%87|节水灌溉|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSGU|71|2 +1101055|响应面法优化植物乳杆菌绿豆乳增殖培养基|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGSP201512018.htm|杨杰,谷新晰,李晨,卢海强,李博,田洪涛,罗云波|15087773,23278760,23279369,23277622,07092569,07093186,14794373|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15087773%3b23278760%3b23279369%3b23277622%3b07092569%3b07093186%3b14794373%3b&scholarName=%e6%9d%a8%e6%9d%b0|中国食品学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGSP|186|14 +1101055|地统计学在植物病害流行学研究中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-SLBC200406007.htm|杨杰,石守定|02951494,09723880|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=02951494%3b09723880%3b&scholarName=%e6%9d%a8%e6%9d%b0|中国森林病虫|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SLBC|311|5 +1101055|数字鸿沟与贫富差距|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGXN200522020.htm|赵冬梅,杨杰,黄爱白||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e8%b5%b5%e5%86%ac%e6%a2%85|中国信息界|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGXN|154|2 +1101055|双孢蘑菇工厂化生产关键配套装置设计与试验|http://www.cnki.com.cn/Article/CJFDTOTAL-NYGU201806005.htm|戴飞,杨杰,赵武云,李志刚,辛尚龙,张锋伟|23693155,17349122,06732706,35780489,06722358|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23693155%3b17349122%3b06732706%3b35780489%3b06722358%3b&scholarName=%e6%88%b4%e9%a3%9e|农业工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NYGU|81|0 +1101055|高光谱技术结合特征波长筛选和支持向量机的哈密瓜成熟度判别研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GUAN201707038.htm|孙静涛,马本学,董娟,杨杰,徐洁,蒋伟,高振江|28789808,08699006,21667304,31557640,34696226,33563225,09665712|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28789808%3b08699006%3b21667304%3b31557640%3b34696226%3b33563225%3b09665712%3b&scholarName=%e5%ad%99%e9%9d%99%e6%b6%9b|光谱学与光谱分析|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GUAN|264|6 +1101055|我国47份主要玉米自交系耐旱性分析|http://www.cnki.com.cn/Article/CJFDTOTAL-YMKX201804002.htm|王业建,郗浩江,李铭东,梁晓玲,韩登旭,杨杰,阿布来提,雷志刚,郝转芳,李明顺,刘文欣,陈绍江|33910822,33910823,09260893,10242914,38010855,11307422,24952209,09227395,09279547,09682266,10372137,09622147,05977526|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33910822%3b33910823%3b09260893%3b10242914%3b38010855%3b11307422%3b24952209%3b09227395%3b09279547%3b09682266%3b10372137%3b09622147%3b05977526%3b&scholarName=%e7%8e%8b%e4%b8%9a%e5%bb%ba|玉米科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YMKX|71|0 +1101055|基于离散元的施肥机肥料块破碎装置参数的优化|http://www.cnki.com.cn/Article/CJFDTOTAL-HNND201702017.htm|宋学锋,张锋伟,戴飞,赵武云,杨杰,张雪坤|33945768,06722358,23693155,06732706,17349122,29921169|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33945768%3b06722358%3b23693155%3b06732706%3b17349122%3b29921169%3b&scholarName=%e5%ae%8b%e5%ad%a6%e9%94%8b|湖南农业大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HNND|127|4 +1101055|“一膜两年用”玉米全膜双垄沟扎穴施肥装置设计|http://www.cnki.com.cn/Article/CJFDTOTAL-GHDQ201801041.htm|戴飞,赵武云,孙步功,杨杰,唐学鹏,辛尚龙|23693155,06732706,06715629,17349122,32171424,35780489|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23693155%3b06732706%3b06715629%3b17349122%3b32171424%3b35780489%3b&scholarName=%e6%88%b4%e9%a3%9e|干旱地区农业研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GHDQ|63|0 +1101055|基于CFD-DEM耦合的揉丝机排料装置内物料运动模拟与试验|http://www.cnki.com.cn/Article/CJFDTOTAL-NYDX201705012.htm|宋学锋,戴飞,张雪坤,谢军海,杨杰,张锋伟|33945768,23693155,29921169,32790494,17349122,06722358|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33945768%3b23693155%3b29921169%3b32790494%3b17349122%3b06722358%3b&scholarName=%e5%ae%8b%e5%ad%a6%e9%94%8b|中国农业大学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NYDX|122|2 +1101055|瑞士乳杆菌和干酪乳杆菌纯种发酵绿豆乳培养基的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGSP201306030.htm|贺志华,谷新晰,田晶晶,杨杰,田洪涛,罗云波|27607570,23278760,27465509,15087773,07093186,05973378|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27607570%3b23278760%3b27465509%3b15087773%3b07093186%3b05973378%3b&scholarName=%e8%b4%ba%e5%bf%97%e5%8d%8e|中国食品学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGSP|151|2 +1101055|日粮中碘、硒水平对绒山羊营养物质消化及生产性能的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-JSNB201302028.htm|秦枫,贾志海,杨杰,潘孝青,顾洪如|38257560,00006060,00256111,38257559,38257484|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38257560%3b00006060%3b00256111%3b38257559%3b38257484%3b&scholarName=%e7%a7%a6%e6%9e%ab|江苏农业学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSNB|105|1 +1101055|反拍卖电子采购价格影响因素研究|http://cdmd.cnki.com.cn/Article/CDMD-10019-2006042326.htm|杨杰|02636371|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=02636371%3b&scholarName=%e6%9d%a8%e6%9d%b0|||271|10 +110726|面向新闻领域的中文文本分类研究综述|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201314028.htm|薛春香,张玉芳|22071166,29606622|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22071166%3b29606622%3b&scholarName=%e8%96%9b%e6%98%a5%e9%a6%99|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|1599|22 +110726|基于《中图法》知识库的自动分类相关问题探析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGJ201506005.htm|薛春香,何琳,侯汉清|22071166,08072712,00019656|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22071166%3b08072712%3b00019656%3b&scholarName=%e8%96%9b%e6%98%a5%e9%a6%99|图书馆建设|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGJ|276|5 +110726|叙词表词汇控制机制变革的探讨|http://www.cnki.com.cn/Article/CJFDTOTAL-TNGZ201311008.htm|薛春香,侯汉清|22071166,00019656|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22071166%3b00019656%3b&scholarName=%e8%96%9b%e6%98%a5%e9%a6%99|图书馆杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TNGZ|259|6 +110726|在线新闻评论生长规律研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201809006.htm|宗红,薛春香,陈芬||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%ae%97%e7%ba%a2|数据分析与知识发现|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|71|0 +110726|中文报纸文献标引知识库设计与构建|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201307025.htm|薛春香|22071166|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22071166%3b&scholarName=%e8%96%9b%e6%98%a5%e9%a6%99|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|199|1 +110726|微博用户标签与博文内容相关度研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201603004.htm|朱玲,薛春香,章成志,傅柱|10733261,22071166,13897453,26653524|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10733261%3b22071166%3b13897453%3b26653524%3b&scholarName=%e6%9c%b1%e7%8e%b2|现代图书情报技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|331|1 +110726|融合用户特征与多级文本倾向性分析的网络意见领袖识别|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201807025.htm|陈芬,陈佩帆,吴鹏,薛春香|10792468,36908468,08095591,22071166|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10792468%3b36908468%3b08095591%3b22071166%3b&scholarName=%e9%99%88%e8%8a%ac|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|291|0 +110726|中文报纸文献内容深加工研究初探|http://www.cnki.com.cn/Article/CJFDTOTAL-LSGL201201004.htm|薛春香|22071166|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22071166%3b&scholarName=%e8%96%9b%e6%98%a5%e9%a6%99|图书馆理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LSGL|122|0 +110726|中文报纸文献内容深加工研究初探|http://www.cnki.com.cn/Article/CJFDTOTAL-SYZG201104020.htm|薛春香|22071166|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22071166%3b&scholarName=%e8%96%9b%e6%98%a5%e9%a6%99|中国索引|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SYZG|52|0 +110726|基于标签聚类的电子商务网站分类目录改善研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDQB201201002.htm|张红,甘利人,薛春香|17555958,08056184,22071166|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17555958%3b08056184%3b22071166%3b&scholarName=%e5%bc%a0%e7%ba%a2|现代情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDQB|412|11 +110726|不同干预下高级信息检索方法的学习行为分析|http://www.cnki.com.cn/Article/CJFDTOTAL-XDQB201111000.htm|张萍,甘利人,薛春香|17610380,08056184,22071166|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17610380%3b08056184%3b22071166%3b&scholarName=%e5%bc%a0%e8%90%8d|现代情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDQB|180|3 +110726|基于层级概念图的心智模型测量研究:以网站商品分类搜索为例|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201406010.htm|张晶晶,薛春香,甘利人|14042622,22071166,08056184|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14042622%3b22071166%3b08056184%3b&scholarName=%e5%bc%a0%e6%99%b6%e6%99%b6|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|46|1 +110726|面向数字环境的《中图法》通用复分表修订思考|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGTS200906010.htm|薛春香,侯汉清|23648647,22071166,00019656|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23648647%3b22071166%3b00019656%3b&scholarName=%e8%96%9b%e6%98%a5%e9%a6%99|中国图书馆学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGTS|354|13 +110726|知识组织系统的描述与评价浅析|http://www.cnki.com.cn/Article/CJFDTOTAL-DXTS201003021.htm|薛春香,朱礼军,乔晓东||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e8%96%9b%e6%98%a5%e9%a6%99|大学图书馆学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DXTS|560|6 +110726|KOS互操作中的术语映射研究综述|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201002008.htm|薛春香,乔晓东,朱礼军|23648647,22071166,09549411,09512655|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23648647%3b22071166%3b09549411%3b09512655%3b&scholarName=%e8%96%9b%e6%98%a5%e9%a6%99|现代图书情报技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|265|11 +110726|基于集成的领域知识组织系统构建初探|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ200911009.htm|薛春香,乔晓东,朱礼军|23648647,22071166,09549411,09512655|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23648647%3b22071166%3b09549411%3b09512655%3b&scholarName=%e8%96%9b%e6%98%a5%e9%a6%99|现代图书情报技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|251|5 +110726|《中国图书馆分类法》通用复分表修订的几点构想|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201019003.htm|薛春香|23648647,22071166|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23648647%3b22071166%3b&scholarName=%e8%96%9b%e6%98%a5%e9%a6%99|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|181|4 +110726|可视化同被引分析技术综述|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB200811008.htm|李运景,侯汉清,薛春香,任银铃|07228872,00019656,22071166,22071167|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07228872%3b00019656%3b22071166%3b22071167%3b&scholarName=%e6%9d%8e%e8%bf%90%e6%99%af|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|492|10 +110726|论张琪玉先生超前的情报语言学思想|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201408007.htm|侯汉清,薛春香|00019656,22071166|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=00019656%3b22071166%3b&scholarName=%e4%be%af%e6%b1%89%e6%b8%85|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|49|0 +110726|广义后缀树及其在汉语科技词系统中的应用研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201304007.htm|徐硕,乔晓东,朱礼军,张运良,薛春香|23960369,09549411,09512655,23274388,22071166|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23960369%3b09549411%3b09512655%3b23274388%3b22071166%3b&scholarName=%e5%be%90%e7%a1%95|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|21|2 +1126658|社会资本视角下开放获取动力问题——基于SPSS的实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201502003.htm|尤霞光,曹国如,盛小平|13477207,32463475,11320841|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13477207%3b32463475%3b11320841%3b&scholarName=%e5%b0%a4%e9%9c%9e%e5%85%89|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|389|1 +1131707|生物医学期刊论文中再利用国外期刊已发表图表的授权许可|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201406013.htm|叶维萍|31313060|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31313060%3b&scholarName=%e5%8f%b6%e7%bb%b4%e8%90%8d|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|81|1 +1132178|国内外移动图书馆服务研究综述|http://www.cnki.com.cn/Article/CJFDTOTAL-JSTS201502021.htm|叶莎莎,齐秀霞|31581933,10597070|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31581933%3b10597070%3b&scholarName=%e5%8f%b6%e8%8e%8e%e8%8e%8e|新世纪图书馆|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSTS|537|9 +1132178|《信息资源检索与利用》翻转课堂运用——基于学生自评学习表单的实施|http://www.cnki.com.cn/Article/CJFDTOTAL-LYTS201508028.htm|齐秀霞,解建红,王彤|10597070,06352256,06348342|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10597070%3b06352256%3b06348342%3b&scholarName=%e9%bd%90%e7%a7%80%e9%9c%9e|农业图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LYTS|129|0 +1132178|高校图书馆嵌入式信息服务举措|http://www.cnki.com.cn/Article/CJFDTOTAL-LYTS201311047.htm|齐秀霞|10597070|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10597070%3b&scholarName=%e9%bd%90%e7%a7%80%e9%9c%9e|农业图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LYTS|97|3 +1132178|北京学专题数据库建设初探|http://www.cnki.com.cn/Article/CJFDTOTAL-QBTS201011027.htm|齐秀霞|10597070|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10597070%3b&scholarName=%e9%bd%90%e7%a7%80%e9%9c%9e|情报探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBTS|66|2 +1132178|高校图书馆学科服务之有效路径——循环推行“六个一”|http://www.cnki.com.cn/Article/CJFDTOTAL-KJQB201416005.htm|齐秀霞,刘丽|10597070,06432084|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10597070%3b06432084%3b&scholarName=%e9%bd%90%e7%a7%80%e9%9c%9e|科技情报开发与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJQB|48|0 +1132178|运用3W+H分析法探讨Self-Access理念在图书馆电子资源使用推广中的运用|http://www.cnki.com.cn/Article/CJFDTOTAL-KJQB201031018.htm|齐秀霞|10597070|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10597070%3b&scholarName=%e9%bd%90%e7%a7%80%e9%9c%9e|科技情报开发与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJQB|54|0 +1132178|大学生勤工助学体验性学习实践模式探索|http://www.cnki.com.cn/Article/CJFDTOTAL-KJQB201503064.htm|王存,石鸣,齐秀霞,刁新颖,李琪|32454197,32454198,10597070,32454199,30270174|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32454197%3b32454198%3b10597070%3b32454199%3b30270174%3b&scholarName=%e7%8e%8b%e5%ad%98|科技情报开发与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJQB|77|2 +1132178|在CNMARC中200字段“责任者”子字段客观著录存在的弊端|http://www.cnki.com.cn/Article/CJFDTOTAL-KJQB200729059.htm|聂延平,齐秀霞|10738536,10597070|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10738536%3b10597070%3b&scholarName=%e8%81%82%e5%bb%b6%e5%b9%b3|科技情报开发与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJQB|68|1 +1132178|MOOC环境下高校图书馆参考咨询服务研究|http://www.cnki.com.cn/Article/CJFDTOTAL-LYTS201702040.htm|刘丽,齐秀霞|06432084,10597070|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06432084%3b10597070%3b&scholarName=%e5%88%98%e4%b8%bd|农业图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LYTS|269|5 +1132178|对于“学科馆员”制度深入发展的现实思考|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-NMGD200706001028.htm|聂延平,齐秀霞|10738536,10597070|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10738536%3b10597070%3b&scholarName=%e8%81%82%e5%bb%b6%e5%b9%b3|||2|0 +1136474|基于用户阅读行为的主动推送微服务模式研究——以专利文献为例|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201701019.htm|袁银池,王秀红,金玉成|31669915,07763065,10655897|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31669915%3b07763065%3b10655897%3b&scholarName=%e8%a2%81%e9%93%b6%e6%b1%a0|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|394|2 +1136474|用户专利文献阅读兴趣及其拓扑结构研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201619020.htm|王秀红,袁银池,金玉成|07763065,31669915,10655897|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07763065%3b31669915%3b10655897%3b&scholarName=%e7%8e%8b%e7%a7%80%e7%ba%a2|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|214|2 +1136474|阅读行为眼动研究知识图谱分析|http://www.cnki.com.cn/Article/CJFDTOTAL-PTSQ201602013.htm|王秀红,袁银池|07763065,31669915|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07763065%3b31669915%3b&scholarName=%e7%8e%8b%e7%a7%80%e7%ba%a2|图书情报研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/PTSQ|260|3 +1136474|用户专利文献阅读兴趣拓扑研究及在主动推送微服务中的应用|http://cdmd.cnki.com.cn/Article/CDMD-10299-1016727856.htm|袁银池|31669915|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31669915%3b&scholarName=%e8%a2%81%e9%93%b6%e6%b1%a0|||193|1 +1144125|防火墙新技术分析|http://www.cnki.com.cn/Article/CJFDTOTAL-DZJC200311010.htm|许一凡|10337739|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10337739%3b&scholarName=%e8%ae%b8%e4%b8%80%e5%87%a1|计算机安全|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DZJC|117|11 +1144125|应力分析法在星载SAR分系统中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-DZZN200505008.htm|许一力|02882527|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=02882527%3b&scholarName=%e8%ae%b8%e4%b8%80%e5%8a%9b|电子质量|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DZZN|40|0 +1144125|非皂基凹凸棒石润滑脂磨损修复机理研究|http://www.cnki.com.cn/Article/CJFDTOTAL-MCXX201406017.htm|张博,许一,王建华,王晓波|31204183,25719253,21114825,23499337,09568519|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31204183%3b25719253%3b21114825%3b23499337%3b09568519%3b&scholarName=%e5%bc%a0%e5%8d%9a|摩擦学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/MCXX|110|7 +1144125|分布式入侵检测模型研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JFYZ200308006.htm|连一峰,戴英侠,胡艳,许一凡|09542026,10337739,09506305,09583829|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09542026%3b10337739%3b09506305%3b09583829%3b&scholarName=%e8%bf%9e%e4%b8%80%e5%b3%b0|计算机研究与发展|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JFYZ|422|91 +1144125|基于改进轮廓跟踪的瞳孔快速检测|http://www.cnki.com.cn/Article/CJFDTOTAL-HWJS201706019.htm|顾可可,付威威,董月芳,许一,陈文建|35448069,30426994,28320922,37207831,08092377|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35448069%3b30426994%3b28320922%3b37207831%3b08092377%3b&scholarName=%e9%a1%be%e5%8f%af%e5%8f%af|红外技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HWJS|81|3 +1144125|合成孔径雷达系统设计的可靠性技术研究|http://cdmd.cnki.com.cn/Article/CDMD-80137-2006015171.htm|许一力|10343922|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10343922%3b&scholarName=%e8%ae%b8%e4%b8%80%e5%8a%9b|||336|2 +1158405|社交网站用户个人信息披露意愿影响因素研究——以新浪微博为例|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZL201501011.htm|李纲,王丹丹|08984698,15143096|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08984698%3b15143096%3b&scholarName=%e6%9d%8e%e7%ba%b2|情报资料工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZL|991|21 +1158405|银屑病病耻感的相关研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-MALA201403023.htm|王丹丹,喻思红,朱开梅|15143096,08992604,32013223|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15143096%3b08992604%3b32013223%3b&scholarName=%e7%8e%8b%e4%b8%b9%e4%b8%b9|中国麻风皮肤病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/MALA|105|2 +1158405|钙循环紊乱与心力衰竭后心律失常|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGXZ201703021.htm|谌晶晶,王丹丹,黄从新|26382404,30229223,08995296|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26382404%3b30229223%3b08995296%3b&scholarName=%e8%b0%8c%e6%99%b6%e6%99%b6|中国心脏起搏与心电生理杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGXZ|142|0 +1158405|硝普钠联合多巴胺治疗心衰的Meta分析|http://www.cnki.com.cn/Article/CJFDTOTAL-FBYF201306014.htm|余太辉,唐艳红,王丹丹,李乐|30229224,10142949,30229223,30515919|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30229224%3b10142949%3b30229223%3b30515919%3b&scholarName=%e4%bd%99%e5%a4%aa%e8%be%89|公共卫生与预防医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FBYF|217|9 +1158405|决奈达隆治疗房颤、房扑有效性与安全性的Meta分析|http://www.cnki.com.cn/Article/CJFDTOTAL-HAIN201416044.htm|郭宗文,王丹丹,王徐乐,黄从新|31211392,30229223,28446238,05967830|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31211392%3b30229223%3b28446238%3b05967830%3b&scholarName=%e9%83%ad%e5%ae%97%e6%96%87|海南医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HAIN|81|1 +1158405|环磷酸腺苷葡甲胺治疗病态窦房结综合征疗效Meta分析|http://www.cnki.com.cn/Article/CJFDTOTAL-YNBZ201502026.htm|李乐,唐艳红,余太辉,王丹丹|30515919,10142949,30229224,30229223|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30515919%3b10142949%3b30229224%3b30229223%3b&scholarName=%e6%9d%8e%e4%b9%90|疑难病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YNBZ|82|7 +1158405|针刺人迎穴在改善颈性眩晕症状的临床疗效分析|http://www.cnki.com.cn/Article/CJFDTOTAL-SWCX201422021.htm|胡小军,戴冀斌,肖长江,刘红艳,王丹丹|31531396,10132724,31531397,31531398,11443202|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31531396%3b10132724%3b31531397%3b31531398%3b11443202%3b&scholarName=%e8%83%a1%e5%b0%8f%e5%86%9b|现代生物医学进展|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SWCX|134|7 +1158405|Co掺杂纳米ZnO微结构的正电子湮没研究|http://www.cnki.com.cn/Article/CJFDTOTAL-WLXB201110109.htm|祁宁,王元为,王栋,王丹丹,陈志权|09007802,25628902,10137806,15143096,10132602|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09007802%3b25628902%3b10137806%3b15143096%3b10132602%3b&scholarName=%e7%a5%81%e5%ae%81|物理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WLXB|177|3 +1158405|吡西卡尼治疗房颤随机对照试验的Meta分析|http://www.cnki.com.cn/Article/CJFDTOTAL-GYYX201411021.htm|郭宗文,王丹丹,王徐乐,黄从新|31211392,30229223,28446238,05967830|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31211392%3b30229223%3b28446238%3b05967830%3b&scholarName=%e9%83%ad%e5%ae%97%e6%96%87|广西医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GYYX|42|0 +1158405|银杏叶提取物对超极化激活的环核苷酸门控基因编码的起搏通道电生理特性的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGXZ201306020.htm|唐艳红,陈卉,陈勇军,吴攀,王丹丹,余太辉,黄从新|10142949,26070888,23287995,09020963,30229223,30229224,05967830|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10142949%3b26070888%3b23287995%3b09020963%3b30229223%3b30229224%3b05967830%3b&scholarName=%e5%94%90%e8%89%b3%e7%ba%a2|中国心脏起搏与心电生理杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGXZ|75|1 +1158405|转录因子TBX18对乳鼠成纤维细胞的重编程作用|http://www.cnki.com.cn/Article/CJFDTOTAL-YNBZ201610018.htm|权大君,曹政,黄鹤,李莎,杨媚,王丹丹|34355566,30551456,09020021,34398711,28191015,30229223|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34355566%3b30551456%3b09020021%3b34398711%3b28191015%3b30229223%3b&scholarName=%e6%9d%83%e5%a4%a7%e5%90%9b|疑难病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YNBZ|53|0 +1158405|线状与面状对象的拓扑关系及其量度指标体系研究|http://www.cnki.com.cn/Article/CJFDTOTAL-CHKD200704034.htm|罗广祥,王丹丹,王俊峰,郝起礼,张转,祝国瑞|06452167,05971846,10548991,10548996,10548984|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06452167%3b05971846%3b10548991%3b10548996%3b10548984%3b&scholarName=%e7%bd%97%e5%b9%bf%e7%a5%a5|测绘科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CHKD|216|8 +1158405|如何加强政府采购的审计监督|http://www.cnki.com.cn/Article/CJFDTOTAL-FBCS200512013.htm|林晶,王丹丹|10941377,15143096|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10941377%3b15143096%3b&scholarName=%e6%9e%97%e6%99%b6|财政与发展|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FBCS|159|6 +1158405|纳米氧化物的磁性与微结构研究|http://cdmd.cnki.com.cn/Article/CDMD-10486-1013209871.htm|王丹丹|15143096|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15143096%3b&scholarName=%e7%8e%8b%e4%b8%b9%e4%b8%b9|||15|0 +1158405|Co_3O_4/ZnO纳米复合物微结构的正电子湮没研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-HWLX201011001157.htm|祁宁,王元为,王丹丹,陈志权|09007802,25628902,15143096,10132602|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09007802%3b25628902%3b15143096%3b10132602%3b&scholarName=%e7%a5%81%e5%ae%81|||21|0 +1158405|正电子谱学研究纳米氧化镁中铁磁性与界面缺陷的关系|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-HWLX201209001030.htm|王丹丹,陈志权,曹春岳,唐政|15143096,10132602,28049088,28124186|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15143096%3b10132602%3b28049088%3b28124186%3b&scholarName=%e7%8e%8b%e4%b8%b9%e4%b8%b9|||45|1 +1158405|ZnO纳米晶界面缺陷的正电子谱学研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-HWLX200911001009.htm|王栋,陈志权,王丹丹,祁宁,龚静|10137806,10132602,15143096,09007802,23806197|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10137806%3b10132602%3b15143096%3b09007802%3b23806197%3b&scholarName=%e7%8e%8b%e6%a0%8b|||26|0 +1158405|界面缺陷对纳米ZrO_2磁性影响的正电子湮没谱学研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-HWLX201407002038.htm|王丹丹,陈志权|21847321,10132602|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21847321%3b10132602%3b&scholarName=%e7%8e%8b%e4%b8%b9%e4%b8%b9|||17|0 +1168546|编辑部体制的终结与“后学报时代”的来临?|http://www.cnki.com.cn/Article/CJFDTOTAL-QHDZ201205004.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|清华大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QHDZ|418|31 +1168546|学术评价和学术期刊评价若干问题之我见|http://www.cnki.com.cn/Article/CJFDTOTAL-FJSX201601018.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|福建师范大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJSX|288|5 +1168546|体制之弊与纠偏之路——也谈高校学报的专业化转型|http://www.cnki.com.cn/Article/CJFDTOTAL-QHDZ201104016.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|清华大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QHDZ|515|31 +1168546|评价与被评价:当下学术期刊学术功能异化的一个视角|http://www.cnki.com.cn/Article/CJFDTOTAL-XDCB201401013.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|现代传播(中国传媒大学学报)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDCB|358|10 +1168546|基于动态帧间间隔更新的人群异常行为检测|http://www.cnki.com.cn/Article/CJFDTOTAL-XTYY201802034.htm|陈颖熙,廖晓东,钟帅|37995970,06671440,32719240|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37995970%3b06671440%3b32719240%3b&scholarName=%e9%99%88%e9%a2%96%e7%86%99|计算机系统应用|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XTYY|74|0 +1168546|谈高中化学实验教学设计的理性及其限度——以苏教版“氯气的工业制取”为例|http://www.cnki.com.cn/Article/CJFDTOTAL-FXJJ201615005.htm|陈颖,胡志刚,李盼盼|06662709,35552927,06665941,30579603|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b35552927%3b06665941%3b30579603%3b&scholarName=%e9%99%88%e9%a2%96|化学教育|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FXJJ|359|0 +1168546|催化氧化木薯淀粉的结构与胶粘性能|http://www.cnki.com.cn/Article/CJFDTOTAL-YYHX200610022.htm|陈颖,陈少平,游纪平,吴宗华|06665490,06662709,06669924,06667809|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06665490%3b06662709%3b06669924%3b06667809%3b&scholarName=%e9%99%88%e9%a2%96|应用化学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YYHX|283|12 +1168546|基于认知负荷理论探讨化学高效教学的策略|http://www.cnki.com.cn/Article/CJFDTOTAL-HXJX201406006.htm|陈颖,胡志刚,李盼盼|06662709,06665941,30579603|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b06665941%3b30579603%3b&scholarName=%e9%99%88%e9%a2%96|化学教学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HXJX|144|7 +1168546|论网络环境下学术期刊的出版安全|http://www.cnki.com.cn/Article/CJFDTOTAL-QHDZ200903017.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|清华大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QHDZ|265|6 +1168546|学术评价和学术期刊评价若干问题之我见|http://www.cnki.com.cn/Article/CJFDTOTAL-PJGL201604009.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|评价与管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/PJGL|62|2 +1168546|管窥国共对峙时代海峡两岸抗日小说——以《大江风雷》和《狼烟》为阐述对象|http://www.cnki.com.cn/Article/CJFDTOTAL-DLXS201301026.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|东南学术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DLXS|95|3 +1168546|中国战争小说的女性观(上)|http://www.cnki.com.cn/Article/CJFDTOTAL-FJSX200805013.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|福建师范大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJSX|307|3 +1168546|战后70年两岸抗日历史认知的差异及对文学创作与研究的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-QHDZ201505008.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|清华大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QHDZ|170|0 +1168546|“十七年”抗日小说创作再回眸|http://www.cnki.com.cn/Article/CJFDTOTAL-PCZD201704011.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|徐州工程学院学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/PCZD|32|0 +1168546|基于“城市记忆”的地方文献信息资源整合研究——以福州为例|http://www.cnki.com.cn/Article/CJFDTOTAL-FJSH201403019.htm|陈颖,孟雪梅|06662709,06667143|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b06667143%3b&scholarName=%e9%99%88%e9%a2%96|福建省社会主义学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJSH|144|4 +1168546|体验经济视角下中外跨境文化演出实践比较——以太阳马戏团与中国杂技团为例|http://www.cnki.com.cn/Article/CJFDTOTAL-HDZD201801014.htm|林航,陈颖|11167649,38770168|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11167649%3b38770168%3b&scholarName=%e6%9e%97%e8%88%aa|北京城市学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HDZD|94|3 +1168546|国共对峙年代两岸地下抗日小说管窥|http://www.cnki.com.cn/Article/CJFDTOTAL-FJSX201502012.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|福建师范大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJSX|60|0 +1168546|齐鲁大地抗战历史的两岸叙事比较——以长篇小说《大动乱》和《苦菜花》为例|http://www.cnki.com.cn/Article/CJFDTOTAL-SDSS201503005.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|山东师范大学学报(人文社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SDSS|64|0 +1168546|中国战争小说的女性观(下)|http://www.cnki.com.cn/Article/CJFDTOTAL-FJSX200806017.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|福建师范大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJSX|242|2 +1168546|台湾东北籍作家抗日小说创作概观|http://www.cnki.com.cn/Article/CJFDTOTAL-DBSS201506027.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|东北师大学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DBSS|50|0 +1168546|版面费:学术期刊之殇——以高校学报为关注点|http://www.cnki.com.cn/Article/CJFDTOTAL-FZFZ201101009.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|福建行政学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FZFZ|209|2 +1168546|中国战争小说创作的世纪回眸|http://www.cnki.com.cn/Article/CJFDTOTAL-BFLC200202018.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|北方论丛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BFLC|719|26 +1168546|2012年高考生物五套试卷的比较研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZXSW201305026.htm|陈颖妍,俞如旺|29384649,06668101|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29384649%3b06668101%3b&scholarName=%e9%99%88%e9%a2%96%e5%a6%8d|中学生物学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZXSW|176|4 +1168546|芭蕉芋淀粉的催化氧化|http://www.cnki.com.cn/Article/CJFDTOTAL-GDZZ200502003.htm|陈颖,吴宗华|06662709,06669924|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b06669924%3b&scholarName=%e9%99%88%e9%a2%96|造纸科学与技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDZZ|119|8 +1168546|双管齐下:非政府组织人力资源激励模式探究|http://www.cnki.com.cn/Article/CJFDTOTAL-LMDX200811011.htm|陈颖,李刚强|06662709,11416609|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b11416609%3b&scholarName=%e9%99%88%e9%a2%96|内蒙古电大学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LMDX|403|7 +1168546|台湾抗日小说的一道奇异景观——台籍原日本兵的南洋战争见证叙事|http://www.cnki.com.cn/Article/CJFDTOTAL-FJSX201204017.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|福建师范大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJSX|97|0 +1168546|高校社科学报科学发展的若干思考|http://www.cnki.com.cn/Article/CJFDTOTAL-FJSX200905028.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|福建师范大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJSX|89|2 +1168546|高考生物课程标准卷试题:变化与思考|http://www.cnki.com.cn/Article/CJFDTOTAL-KSYJ201403005.htm|俞如旺,陈颖妍,林帆|06668101,29384649,28679882|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06668101%3b29384649%3b28679882%3b&scholarName=%e4%bf%9e%e5%a6%82%e6%97%ba|中国考试|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KSYJ|405|5 +1168546|论台湾“新世代”作家的抗日小说|http://www.cnki.com.cn/Article/CJFDTOTAL-FJLW201304020.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|福建论坛(人文社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJLW|83|0 +1168546|相同的抗争母题 不同的斗争书写——海峡两岸乡土抗日小说母题比较系列研究之二|http://www.cnki.com.cn/Article/CJFDTOTAL-HQDX201203014.htm|陈颖,张畅|06662709,24575186|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b24575186%3b&scholarName=%e9%99%88%e9%a2%96|华侨大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HQDX|63|0 +1168546|乱世英雄的道德光环与悲剧结局——论中国古代战争小说的英雄崇拜意识|http://www.cnki.com.cn/Article/CJFDTOTAL-QSXK200502021.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|求是学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QSXK|849|11 +1168546|音乐治疗的一般模式及其发展取向|http://www.cnki.com.cn/Article/CJFDTOTAL-YXZX201503011.htm|蒋怀滨,张斌,陈颖,刘钟林,邱致燕|11720751,28269113,06662709,31975309,29224693|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11720751%3b28269113%3b06662709%3b31975309%3b29224693%3b&scholarName=%e8%92%8b%e6%80%80%e6%bb%a8|医学与哲学(A)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXZX|870|7 +1168546|《三国演义》与《孙子兵法》——中国战争小说与兵学文化关系研究之一|http://www.cnki.com.cn/Article/CJFDTOTAL-FJSX200104006.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|福建师范大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJSX|956|12 +1168546|论学术生态环境建设与学术期刊的责任|http://www.cnki.com.cn/Article/CJFDTOTAL-FJSX200603030.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|福建师范大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJSX|418|20 +1168546|浅谈如何有效使用宽带薪酬|http://www.cnki.com.cn/Article/CJFDTOTAL-WLCF201004033.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|网络财富|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WLCF|435|2 +1168546|“真实”的战争与战争的“真实”——试论房伟的抗战历史小说创作|http://www.cnki.com.cn/Article/CJFDTOTAL-PCZD201901010.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|徐州工程学院学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/PCZD|0|0 +1168546|浅析洗钱犯罪的危害、现状及对策|http://www.cnki.com.cn/Article/CJFDTOTAL-JJSY200908059.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|商业经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JJSY|335|1 +1168546|动态对等及源语双关语的翻译处理|http://www.cnki.com.cn/Article/CJFDTOTAL-ZZHY200904029.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|郑州航空工业管理学院学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZZHY|182|0 +1168546|《山海经》与《伊利亚特》——中西战争神话叙事比较|http://www.cnki.com.cn/Article/CJFDTOTAL-FJSX200303013.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|福建师范大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJSX|1515|4 +1168546|言说空间的折叠:日据时期台湾小说中的隐喻——以赖和、杨逵、吴浊流为例|http://www.cnki.com.cn/Article/CJFDTOTAL-QZXB201103006.htm|张畅,陈颖|24575186,06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24575186%3b06662709%3b&scholarName=%e5%bc%a0%e7%95%85|泉州师范学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QZXB|411|1 +1168546|《宠儿》中陌生化的母爱|http://www.cnki.com.cn/Article/CJFDTOTAL-KDZK201303012.htm|陈颖娟|28725089,25241733|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28725089%3b25241733%3b&scholarName=%e9%99%88%e9%a2%96%e5%a8%9f|考试周刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KDZK|157|0 +1168546|论丘东平的抗战军魂小说|http://www.cnki.com.cn/Article/CJFDTOTAL-SQSZ199901023.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|商邱师专学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SQSZ|113|5 +1168546|21世纪的学报事业与青年编辑的修养|http://www.cnki.com.cn/Article/CJFDTOTAL-FJSX200004030.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|福建师范大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJSX|46|2 +1168546|中国古代战争小说与汉民族宗教意识|http://www.cnki.com.cn/Article/CJFDTOTAL-FJSX200703014.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|福建师范大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJSX|257|3 +1168546|民众的觉醒及其抗日武装斗争小说——20世纪中国战争小说史研究之一|http://www.cnki.com.cn/Article/CJFDTOTAL-HNDB901.016.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|海南大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HNDB|72|2 +1168546|中小学教师教育技术能力培训策略探究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDJB201001008.htm|陈颖心|24105309|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24105309%3b&scholarName=%e9%99%88%e9%a2%96%e5%bf%83|中小学电教(下半月)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDJB|139|1 +1168546|高校学术期刊改革意欲何为?|http://www.cnki.com.cn/Article/CJFDTOTAL-YSXS201305008.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|阴山学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YSXS|29|0 +1168546|从中国战争小说看中华民族政治伦理观的演进(上)|http://www.cnki.com.cn/Article/CJFDTOTAL-FJSX200501009.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|福建师范大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJSX|273|2 +1168546|工农兵:当代英雄崇拜的主体及其消遁——略论中国当代战争小说英雄崇拜意识的变迁|http://www.cnki.com.cn/Article/CJFDTOTAL-JMDZ20050100F.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|集美大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JMDZ|239|6 +1168546|小学科学实验能有效培养学生的创新能力|http://www.cnki.com.cn/Article/CJFDTOTAL-CAIZ201120085.htm|陈颖|24413896|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24413896%3b&scholarName=%e9%99%88%e9%a2%96|才智|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CAIZ|294|2 +1168546|中国现代“反战”小说一瞥|http://www.cnki.com.cn/Article/CJFDTOTAL-FJSX803.009.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|福建师范大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJSX|78|1 +1168546|从中国战争小说看中华民族政治伦理观的演进(下)|http://www.cnki.com.cn/Article/CJFDTOTAL-FJSX200502010.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|福建师范大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJSX|242|2 +1168546|对高校学报健康和谐发展的若干思考|http://www.cnki.com.cn/Article/CJFDTOTAL-FSXB200804024.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|闽江学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FSXB|31|1 +1168546|发展性教学的历史回顾|http://www.cnki.com.cn/Article/CJFDTOTAL-JYJU200902032.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|教育教学论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYJU|65|0 +1168546|高中英语发展性阅读初探|http://www.cnki.com.cn/Article/CJFDTOTAL-WJZZ201417085.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|文教资料|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WJZZ|10|0 +1168546|发展性教学的历史回顾|http://www.cnki.com.cn/Article/CJFDTOTAL-JYJU200908121.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|教育教学论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYJU|35|2 +1168546|兵学文化的物化形态和审美仪式——略论中国古代战争小说中的兵器和武艺|http://www.cnki.com.cn/Article/CJFDTOTAL-TJSS200406011.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|天津师范大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TJSS|352|3 +1168546|《宠儿》中陌生的宠儿解读|http://www.cnki.com.cn/Article/CJFDTOTAL-KDZK201302023.htm|陈颖娟|28725089,25241733|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28725089%3b25241733%3b&scholarName=%e9%99%88%e9%a2%96%e5%a8%9f|考试周刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KDZK|41|0 +1168546|浅谈小学科学探究活动中的即时评价|http://www.cnki.com.cn/Article/CJFDTOTAL-XXTM201004018.htm|陈颖|24413896|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24413896%3b&scholarName=%e9%99%88%e9%a2%96|学生之友(小学版)(下)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XXTM|77|0 +1168546|催化氧化法制备快干型木薯淀粉胶粘剂|http://www.cnki.com.cn/Article/CJFDTOTAL-JHXY200701009.htm|陈丽珠,陈少平,陈颖,游纪萍,吴宗华|06672574,06665490,06670047,06662709,06669924|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06672574%3b06665490%3b06670047%3b06662709%3b06669924%3b&scholarName=%e9%99%88%e4%b8%bd%e7%8f%a0|吉林化工学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JHXY|349|8 +1168546|关于提升高师院校“现代教育技术”课程实效性的探究|http://www.cnki.com.cn/Article/CJFDTOTAL-JAOS201023032.htm|陈颖心|24105309|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24105309%3b&scholarName=%e9%99%88%e9%a2%96%e5%bf%83|教师|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JAOS|35|1 +1168546|P2P网络中最近节点定位的优化方法研究与实现|http://www.cnki.com.cn/Article/CJFDTOTAL-KXJS201616040.htm|郑艺芳,陈颖悦|22577633,11481580|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22577633%3b11481580%3b&scholarName=%e9%83%91%e8%89%ba%e8%8a%b3|科学技术与工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KXJS|20|0 +1168546|再论金融危机下的就业问题|http://www.cnki.com.cn/Article/CJFDTOTAL-CGJY201005009.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|出国与就业(就业版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CGJY|31|1 +1168546|文艺学与文艺学编辑|http://www.cnki.com.cn/Article/CJFDTOTAL-FJSX199904026.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|福建师范大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJSX|45|0 +1168546|薪火相传,有容乃大,再谱华章——福建师范大学中国语言文学学科百年学术发展概观|http://www.cnki.com.cn/Article/CJFDTOTAL-FJSX200706002.htm|郑家建,陈颖|06668202,06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06668202%3b06662709%3b&scholarName=%e9%83%91%e5%ae%b6%e5%bb%ba|福建师范大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJSX|125|0 +1168546|中国古代战争经典小说的兵学意义|http://www.cnki.com.cn/Article/CJFDTOTAL-JFYS200502004.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|解放军艺术学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JFYS|238|1 +1168546|水螅的寿命及出芽生殖初探|http://www.cnki.com.cn/Article/CJFDTOTAL-SWJX200207020.htm|陈颖芳,吴巧玲|06672114,06665725|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06672114%3b06665725%3b&scholarName=%e9%99%88%e9%a2%96%e8%8a%b3|生物学教学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SWJX|163|1 +1168546|毛泽东军事思想与中国当代战争小说创作|http://www.cnki.com.cn/Article/CJFDTOTAL-BJJX200403005.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|北京教育学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJJX|115|3 +1168546|福建省高校学报青年编辑从业状况调查分析|http://www.cnki.com.cn/Article/CJFDTOTAL-FJGG200708016.htm|陈芳,陈颖|06662709,06665593|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b06665593%3b&scholarName=%e9%99%88%e8%8a%b3|开放潮|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJGG|57|6 +1168546|试论WORDNET下的隐喻处理|http://www.cnki.com.cn/Article/CJFDTOTAL-SMSZ201404008.htm|郑艺芳,陈颖悦|22577633,11481580|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22577633%3b11481580%3b&scholarName=%e9%83%91%e8%89%ba%e8%8a%b3|三明学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SMSZ|27|0 +1168546|论小学课堂以外的科学教育|http://www.cnki.com.cn/Article/CJFDTOTAL-XKCH201006242.htm|陈颖|24413896|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24413896%3b&scholarName=%e9%99%88%e9%a2%96|新课程(教育学术)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XKCH|65|0 +1168546|编辑专业教育体制应当转轨|http://www.cnki.com.cn/Article/CJFDTOTAL-BJXZ199204017.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|编辑学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJXZ|16|0 +1168546|创建和谐课堂,提高小学科学探究的有效性|http://www.cnki.com.cn/Article/CJFDTOTAL-XXKX201102027.htm|陈颖|24413896|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24413896%3b&scholarName=%e9%99%88%e9%a2%96|小学科学(教师论坛)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XXKX|33|0 +1168546|高校学报:繁荣表象与学术危机|http://www.cnki.com.cn/Article/CJFDTOTAL-DXCB200004029.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|大学出版|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DXCB|32|4 +1168546|基于逻辑方法视阈的课例分析——以《盐类的水解》为例|http://www.cnki.com.cn/Article/CJFDTOTAL-HXJY201403001.htm|李盼盼,胡志刚,陈颖|30579603,06665941,06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30579603%3b06665941%3b06662709%3b&scholarName=%e6%9d%8e%e7%9b%bc%e7%9b%bc|化学教与学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HXJY|146|0 +1168546|陶瓷无氰电镀的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-FJHG200201004.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|福建化工|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJHG|91|2 +1168546|感恩对主观幸福感的内隐社会认知|http://www.cnki.com.cn/Article/CJFDTOTAL-KJWH201505074.htm|林珂,黄萍萍,陈颖,黄艳红|32535087,32683405,06662709,06670862|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32535087%3b32683405%3b06662709%3b06670862%3b&scholarName=%e6%9e%97%e7%8f%82|科教文汇(上旬刊)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJWH|100|0 +1168546|两岸抗日历史认知差异对文学创作的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-SHGC201601046.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|社会科学文摘|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SHGC|39|0 +1168546|论中外体育文化传播交流中的异化问题——以中泰综合格斗赛的报道为例|http://www.cnki.com.cn/Article/CJFDTOTAL-TYHS201802011.htm|任慧涛,陈颖,张俊涛|35024805,07584573,36458036|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35024805%3b07584573%3b36458036%3b&scholarName=%e4%bb%bb%e6%85%a7%e6%b6%9b|体育成人教育学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TYHS|100|0 +1168546|福建省地方文献开发利用研究|http://cdmd.cnki.com.cn/Article/CDMD-10394-1015718376.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|||435|3 +1168546|初中生英语自主学习能力的培养|http://cdmd.cnki.com.cn/Article/CDMD-10394-1012494277.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|||2005|16 +1168546|小学科学校本课程的内容设置研究|http://cdmd.cnki.com.cn/Article/CDMD-10394-1015720064.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|||849|4 +1168546|论《宠儿》陌生化叙事视角|http://cdmd.cnki.com.cn/Article/CDMD-10394-1015521571.htm|陈颖娟|28725089|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28725089%3b&scholarName=%e9%99%88%e9%a2%96%e5%a8%9f|||374|1 +1168546|高中化学有限教学的教学行为研究|http://cdmd.cnki.com.cn/Article/CDMD-10394-1015719837.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|||182|2 +1168546|人教版小学语文教科书叶圣陶儿童文学选编情况及教学研究|http://cdmd.cnki.com.cn/Article/CDMD-10394-1018053178.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|||116|0 +1168546|小微企业信贷融资困局及其破解|http://cdmd.cnki.com.cn/Article/CDMD-10394-1013308406.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|||1284|1 +1168546|基于思维能力培养导向的高中英语阅读教学设问研究|http://cdmd.cnki.com.cn/Article/CDMD-10394-1017031613.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|||295|4 +1168546|高中生英语课外阅读模式构建及个案分析研究|http://cdmd.cnki.com.cn/Article/CDMD-10394-1015720096.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|||78|0 +1168546|科学思维能力考查在生物学试题编制中的理论与实践|http://cdmd.cnki.com.cn/Article/CDMD-10394-1015523124.htm|陈颖妍|29384649|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29384649%3b&scholarName=%e9%99%88%e9%a2%96%e5%a6%8d|||395|0 +1168546|地方人大视野下的社会管理创新|http://www.cnki.com.cn/Article/CJFDTOTAL-RMZT201105006.htm|詹毅,任徐平,杜力夫,黄以西,郑江旗,许伟平,陈颖华|21750862,25920964,25920965,25920966,25920967,10635461,25033450,25920968,25920969|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21750862%3b25920964%3b25920965%3b25920966%3b25920967%3b10635461%3b25033450%3b25920968%3b25920969%3b&scholarName=%e8%a9%b9%e6%af%85|人民政坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/RMZT|312|2 +1168546|催化氧化淀粉的结构及其胶粘性能|http://cdmd.cnki.com.cn/Article/CDMD-10394-2006179259.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|||653|4 +1168546|中国战争小说史论|http://cdmd.cnki.com.cn/Article/CDMD-10394-2004095061.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|||2075|16 +1168546|女性主义翻译理论及其在中国的影响|http://cdmd.cnki.com.cn/Article/CDMD-10394-2008170624.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|||953|3 +1168546|交际法英语听力测试和交际法英语听力教学的研究|http://cdmd.cnki.com.cn/Article/CDMD-10394-2006020403.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|||878|3 +1168546|发展服务外包对大学生就业的影响探析|http://cdmd.cnki.com.cn/Article/CDMD-10394-1012267015.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|||326|0 +1168546|海峡西岸经济区地下金融犯罪问题研究|http://cdmd.cnki.com.cn/Article/CDMD-10394-1011060080.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|||176|1 +1168546|动感英语和动感习语:大学课堂CAI习语习得效果研究|http://cdmd.cnki.com.cn/Article/CDMD-10394-1011060111.htm|陈颖|06662709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06662709%3b&scholarName=%e9%99%88%e9%a2%96|||90|1 +1175159|网络健康信息生态系统构成要素分析|http://www.cnki.com.cn/Article/CJFDTOTAL-BOOK201504003.htm|宋丹,周晓英,郭敏|28544674,10375883,17336781,29277120|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28544674%3b10375883%3b17336781%3b29277120%3b&scholarName=%e5%ae%8b%e4%b8%b9|图书与情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BOOK|544|6 +1175159|核酸适体及其在环境检测中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-HJWR201806019.htm|宋丹,杨荣,罗强,龙峰|28544674,34020328,34953325,30189901|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28544674%3b34020328%3b34953325%3b30189901%3b&scholarName=%e5%ae%8b%e4%b8%b9|环境污染与防治|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HJWR|66|0 +1175159|健康素养与健康信息传播利用的国家战略研究|http://www.cnki.com.cn/Article/CJFDTOTAL-BOOK201504002.htm|周晓英,宋丹,张秀梅|10375883,28544674,29226903,11099578|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10375883%3b28544674%3b29226903%3b11099578%3b&scholarName=%e5%91%a8%e6%99%93%e8%8b%b1|图书与情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BOOK|1056|14 +1175159|基于脱氧核酶的铅离子生物传感器研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-HJWR201810019.htm|杨荣,宋丹,周小红,龙辉,龙峰|34020328,28544674,08244646,28486321,30189901|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34020328%3b28544674%3b08244646%3b28486321%3b30189901%3b&scholarName=%e6%9d%a8%e8%8d%a3|环境污染与防治|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HJWR|144|0 +1175159|“互联网+”时代的我国医院微信信息服务研究|http://www.cnki.com.cn/Article/CJFDTOTAL-BOOK201504004.htm|郭敏,周晓英,宋丹,张黎|17336781,29277120,10375883,28544674,28826980|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17336781%3b29277120%3b10375883%3b28544674%3b28826980%3b&scholarName=%e9%83%ad%e6%95%8f|图书与情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BOOK|1590|39 +1175159|论儿童证人的作证资格|http://www.cnki.com.cn/Article/CJFDTOTAL-FZSL201804046.htm|宋丹|28544674|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28544674%3b&scholarName=%e5%ae%8b%e4%b8%b9|法制与社会|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FZSL|78|0 +1175159|基于战略的医院管理人员职业化之路|http://www.cnki.com.cn/Article/CJFDTOTAL-JWSG201206036.htm|宋丹|28544674|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28544674%3b&scholarName=%e5%ae%8b%e4%b8%b9|江苏卫生事业管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JWSG|119|4 +1175159|现代组织动态按需激励模型探析|http://www.cnki.com.cn/Article/CJFDTOTAL-SYJJ201309044.htm|宋丹,纪晓旭,刘昕|28544674,28854369,09690585|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28544674%3b28854369%3b09690585%3b&scholarName=%e5%ae%8b%e4%b8%b9|商业时代|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SYJJ|142|2 +1175159|倏逝波免疫传感器超灵敏检测水样中的双酚A|http://www.cnki.com.cn/Article/CJFDTOTAL-HJHX201802019.htm|李伟,吴君,王浩宇,杨荣,宋丹,龙峰|09748214,37261911,37754015,34020328,28544674,30189901|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09748214%3b37261911%3b37754015%3b34020328%3b28544674%3b30189901%3b&scholarName=%e6%9d%8e%e4%bc%9f|环境化学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HJHX|76|0 +1175159|水中有毒污染物多指标快速检测仪器的研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-HJWR201809021.htm|王浩宇,李伟,任争光,宋丹,杨荣,施汉昌,龙峰|37754015,09748214,34579226,28544674,34020328,17726526,05964099,30189901|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37754015%3b09748214%3b34579226%3b28544674%3b34020328%3b17726526%3b05964099%3b30189901%3b&scholarName=%e7%8e%8b%e6%b5%a9%e5%ae%87|环境污染与防治|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HJWR|60|0 +1175159|盗窃案件适用法律难点五人谈|http://www.cnki.com.cn/Article/CJFDTOTAL-JCSJ201410019.htm|谢望原,周光权,宋丹,王志坤,董晓华,徐志豪|09692358,08244565,25078108,22876924,21744098,31229019|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09692358%3b08244565%3b25078108%3b22876924%3b21744098%3b31229019%3b&scholarName=%e8%b0%a2%e6%9c%9b%e5%8e%9f|中国检察官|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JCSJ|833|7 +1175159|乙腈和正己烷对环境特征污染物免疫传感分析的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-HJKZ201601056.htm|娄雪宁,周丽萍,宋丹,杨荣,龙峰|34205814,34205815,28544674,34020328,30189901|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34205814%3b34205815%3b28544674%3b34020328%3b30189901%3b&scholarName=%e5%a8%84%e9%9b%aa%e5%ae%81|环境科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HJKZ|56|2 +1175159|法国、荷兰畜产品质量追溯体系的发展及其启示|http://www.cnki.com.cn/Article/CJFDTOTAL-SJNY200701013.htm|陈生斗,宋丹阳,陈晨,王生,李成毅,唐荣福|09745729,11610067,11525502,11666526,11416992,11580522|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09745729%3b11610067%3b11525502%3b11666526%3b11416992%3b11580522%3b&scholarName=%e9%99%88%e7%94%9f%e6%96%97|世界农业|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJNY|445|30 +1175159|高校图书馆网络优质免费资源建设研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SDTG201506013.htm|杨敏,吉萍,宋丹|31599042,08863320,28544674|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31599042%3b08863320%3b28544674%3b&scholarName=%e6%9d%a8%e6%95%8f|山东图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SDTG|69|1 +1175159|海绵城市建设基于中国雨水利用状况与发达国家之比较视角|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-HJKP201710003135.htm|王浩宇,谢欢,李元杰,李伟,宋丹,杨荣,龙峰|37754015,39140370,39140371,36682011,09748214,28544674,34020328,30189901|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37754015%3b39140370%3b39140371%3b36682011%3b09748214%3b28544674%3b34020328%3b30189901%3b&scholarName=%e7%8e%8b%e6%b5%a9%e5%ae%87|||43|0 +1186986|结构化、关联化的开放数据及其应用|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201402013.htm|徐佳宁,王婉|28308925,26243890|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28308925%3b26243890%3b&scholarName=%e5%be%90%e4%bd%b3%e5%ae%81|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|640|19 +1186986|学者个人学术成就评价指标研究述评|http://www.cnki.com.cn/Article/CJFDTOTAL-QBTS201811020.htm|徐佳宁,孙婧|28308925,40478855|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28308925%3b40478855%3b&scholarName=%e5%be%90%e4%bd%b3%e5%ae%81|情报探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBTS|119|0 +1186986|模糊法优化ClimateQUAL~(TM)组织氛围评价法研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201215014.htm|徐佳宁|28308925|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28308925%3b&scholarName=%e5%be%90%e4%bd%b3%e5%ae%81|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|218|11 +1186986|基于社会网络分析的博客自组织实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBTS201412002.htm|徐佳宁,孙婧|28308925,32229189|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28308925%3b32229189%3b&scholarName=%e5%be%90%e4%bd%b3%e5%ae%81|情报探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBTS|132|1 +1186986|江苏省城镇化与区域图书馆协同发展实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBTS201512024.htm|倪四秀,徐佳宁|30364636,28308925|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30364636%3b28308925%3b&scholarName=%e5%80%aa%e5%9b%9b%e7%a7%80|情报探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBTS|96|2 +1191001|科技点燃希望|http://xuewen.cnki.net/CCND-QHRB200802270021.html|余鑫||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e4%bd%99%e9%91%ab|||3|0 +1191001|空谷幽兰送远香——记全国五一劳动奖章获得者女狱警孙淑兰|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGJA200203015.htm|孙晶岩||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%ad%99%e6%99%b6%e5%b2%a9|中国职工教育|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGJA|14|0 +1192647|美国大学图书馆基于机构知识库的出版服务实践研究|http://www.cnki.com.cn/Article/CJFDTOTAL-DXTS201503002.htm|魏蕊,初景利|31588313,33246990|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31588313%3b33246990%3b&scholarName=%e9%ad%8f%e8%95%8a|大学图书馆学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DXTS|1062|17 +1192647|学术图书开放获取与美国大学图书馆出版服务|http://www.cnki.com.cn/Article/CJFDTOTAL-DXTS201403004.htm|魏蕊,初景利|31588313|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31588313%3b&scholarName=%e9%ad%8f%e8%95%8a|大学图书馆学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DXTS|1532|24 +1192647|国外开放获取图书出版模式研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201311005.htm|魏蕊,初景利|29454704,15873886|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29454704%3b15873886%3b&scholarName=%e9%ad%8f%e8%95%8a|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|1040|24 +1192647|科技类开放获取学术专著元数据元素集的构建|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201502018.htm|魏蕊|31588313,33237576|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31588313%3b33237576%3b&scholarName=%e9%ad%8f%e8%95%8a|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|341|4 +1192647|新媒体联盟地平线报告:2017图书馆版|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201803023.htm|S.Adams Becker,M.Cummins,A.Davis,A.Freeman,C.Giesinger Hall,V.Ananthanarayanan,K.Langley,N.Wolfson,赵艳,魏蕊,高春玲,王丹丹,杨志刚|11474436,33250002,14204151,07946340,21847321,35412004|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11474436%3b33250002%3b14204151%3b07946340%3b21847321%3b35412004%3b&scholarName=S+Adams|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|880|3 +1192647|大英图书馆三十年(1985—2015)战略规划解读|http://www.cnki.com.cn/Article/CJFDTOTAL-BJJG201505006.htm|魏蕊,初景利,王铮,孔青青|14204151,13619016,31501276,33246631,28373355|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14204151%3b13619016%3b31501276%3b33246631%3b28373355%3b&scholarName=%e9%ad%8f%e8%95%8a|国家图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJJG|523|7 +1192647|京津冀高校机构知识库协同建设模式研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201714014.htm|魏蕊,王丽,封勇丽,樊振佳|14204151,37619255,34269562,37950779,10546304|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14204151%3b37619255%3b34269562%3b37950779%3b10546304%3b&scholarName=%e9%ad%8f%e8%95%8a|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|316|0 +1192647|石油焦高温催化气化的可行性研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SXJG201705014.htm|任立伟,魏蕊娣,高玉红,辛景|31495762,37834268,31495763,07044336,27890972|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31495762%3b37834268%3b31495763%3b07044336%3b27890972%3b&scholarName=%e4%bb%bb%e7%ab%8b%e4%bc%9f|石油学报(石油加工)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SXJG|78|4 +1192647|干旱评价指标及其在引黄灌区的应用|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-SLDC200909001090.htm|马建琴,魏蕊,夏军,刘晓洁|07507738,24786491,09535631,09607491|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07507738%3b24786491%3b09535631%3b09607491%3b&scholarName=%e9%a9%ac%e5%bb%ba%e7%90%b4|||2|0 +1199758|21世纪初主要发达国家科技人才政策新动向|http://www.cnki.com.cn/Article/CJFDTOTAL-SJKF201101047.htm|高峰,唐裕华,张志强,王雪梅,张树良,熊永兰,陈春,黄丽珺|22008060,13617294,15427927,22008062,23523299,25119676,26875111,26875112|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22008060%3b13617294%3b15427927%3b22008062%3b23523299%3b25119676%3b26875111%3b26875112%3b&scholarName=%e9%ab%98%e5%b3%b0|世界科技研究与发展|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJKF|228|14 +1203662|煤价全面市场化是管理的试金石|http://xuewen.cnki.net/CCND-CDLB201305060080.html|苏伟,李冬梅||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e8%8b%8f%e4%bc%9f|||3|0 +1203662|郭楠小学班主任工作室|http://www.cnki.com.cn/Article/CJFDTOTAL-JAOI201639001.htm||||江苏教育|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JAOI|21|0 +1203662|郭楠印象|http://www.cnki.com.cn/Article/CJFDTOTAL-YISH200003013.htm|寸言||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%af%b8%e8%a8%80|广东艺术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YISH|15|0 +1203662|郭楠现代化小戏导演手法小议|http://www.cnki.com.cn/Article/CJFDTOTAL-YISH200801010.htm|林昂||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e6%9e%97%e6%98%82|广东艺术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YISH|0|0 +1203662|期刊大家郭楠柠|http://www.cnki.com.cn/Article/CJFDTOTAL-XTDI200603002.htm|龚■村||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e9%be%9a%e2%96%a0%e6%9d%91|老人天地|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XTDI|4|0 +1213968|基于ESI的全球眼科学发展态势和研究热点分析及启示|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201710014.htm|方红玲,常海敏,刘雪立|09288710,09277535,09244038|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b09277535%3b09244038%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|218|2 +1213968|我国SCI收录期刊被引半衰期的国际比较研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201809011.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|106|0 +1213968|SSCI收录我国社科期刊文献计量学指标的国际对比研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201501021.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|451|15 +1213968|国内外眼科学、数学和环境科学期刊被引半衰期的比较|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201802012.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|75|1 +1213968|我国SCI收录期刊主要文献计量学指标国际对比|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201508019.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|249|6 +1213968|2003~2008年眼科学高被引论文统计分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201002020.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|288|45 +1213968|SSCI收录图书馆学情报学期刊文献计量学指标分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201604016.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|377|2 +1213968|国外期刊论文被引峰值年代及其影响因素研究——以SSCI收录图书情报学期刊为例|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201511019.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|163|5 +1213968|SSCI收录图书情报类期刊“非可被引文献”的引证特征|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201512014.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|123|4 +1213968|我国眼科学中文核心期刊高被引论文与低被引论文引文特征对比研究|http://www.cnki.com.cn/Article/CJFDTOTAL-KJXY201826010.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|江苏科技信息|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJXY|30|0 +1213968|医学期刊编辑审稿方法与高影响力论文的策划|http://www.cnki.com.cn/Article/CJFDTOTAL-BJXB201505027.htm|方红玲,刘雪立|09288710,09244038|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b09244038%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|编辑学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJXB|178|2 +1213968|基于JCR的中、日、印、韩SCI期刊引文指标对比研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBTS201602017.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|情报探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBTS|68|3 +1213968|基于被引频次分布特征的影响因子缺陷矫正——位置指标应用于期刊评价的实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201609017.htm|刘雪立,周晶,盖双双,盛丽娜,付中静,董建军,方红玲|09244038,32747760,30458307,09244066,17270109,09277550,09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244038%3b32747760%3b30458307%3b09244066%3b17270109%3b09277550%3b09288710%3b&scholarName=%e5%88%98%e9%9b%aa%e7%ab%8b|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|359|12 +1213968|我国眼科学科技核心期刊2010-2014年主要学术指标对比研究|http://www.cnki.com.cn/Article/CJFDTOTAL-YAKE201606020.htm|方红玲,董建军,盛丽娜,付中静,刘雪立|09288710,09277550,09244066,17270109,09244038|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b09277550%3b09244066%3b17270109%3b09244038%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|眼科|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YAKE|58|0 +1213968|《眼科新进展》2006-2009年高被引论文分析|http://www.cnki.com.cn/Article/CJFDTOTAL-YXTS201011026.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中华医学图书情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXTS|99|9 +1213968|期刊开放因子与其他评价指标相关性实证研究——以图书馆学情报学期刊为例|http://www.cnki.com.cn/Article/CJFDTOTAL-QBTS201610008.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|情报探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBTS|54|1 +1213968|SCI期刊论文类型与影响因子相关性研究及其影响因子预测|http://www.cnki.com.cn/Article/CJFDTOTAL-KJQB201507048.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|科技情报开发与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJQB|118|3 +1213968|科技期刊总被引频次和影响因子构成中的自引率比较——兼谈影响因子的人为操纵倾向|http://www.cnki.com.cn/Article/CJFDTOTAL-BJXB201706032.htm|刘雪立,魏雅慧,盛丽娜,方红玲,王燕,付中静,郑成铭,董建军|09244038,37163751,09244066,09288710,17365969,17270109,28319568,09277550|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244038%3b37163751%3b09244066%3b09288710%3b17365969%3b17270109%3b28319568%3b09277550%3b&scholarName=%e5%88%98%e9%9b%aa%e7%ab%8b|编辑学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJXB|150|5 +1213968|国内外相同学科期刊论文被引峰值年代对比研究|http://www.cnki.com.cn/Article/CJFDTOTAL-KJQB201521046.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|科技情报开发与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJQB|46|2 +1213968|不同引证时间窗口影响因子的比较研究——以SCI数据库眼科学期刊为例|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201412015.htm|刘雪立,盖双双,张诗乐,王璞,方红玲|09244038,30458307,29092135,22155504,09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244038%3b30458307%3b29092135%3b22155504%3b09288710%3b&scholarName=%e5%88%98%e9%9b%aa%e7%ab%8b|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|248|23 +1213968|《眼科新进展》杂志2004-2008年文后引文分析|http://www.cnki.com.cn/Article/CJFDTOTAL-YXXX200912041.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|医学信息|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXXX|50|4 +1213968|我国SSCI收录期刊影响因子相关自被引率的国际对比研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201901017.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|3|0 +1213968|科技期刊在线投稿系统应用中的问题分析及对策|http://www.cnki.com.cn/Article/CJFDTOTAL-BJXB200606016.htm|周志新,刘雪立,徐刚珍,董建军,方红玲,盛丽娜|09244197,09288710,10248662,09244038,09244066,09277550|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244197%3b09288710%3b10248662%3b09244038%3b09244066%3b09277550%3b&scholarName=%e5%91%a8%e5%bf%97%e6%96%b0|编辑学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJXB|562|41 +1213968|研究生初次投稿问题分析及编辑对策|http://www.cnki.com.cn/Article/CJFDTOTAL-BJXB200502024.htm|周志新,刘雪立,徐刚珍,董建军,方红玲,盛丽娜|09244066,09288710,09277550,10248662,09244038,09244197|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244066%3b09288710%3b09277550%3b10248662%3b09244038%3b09244197%3b&scholarName=%e5%91%a8%e5%bf%97%e6%96%b0|编辑学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJXB|515|42 +1213968|医学期刊广告经营原则与策略|http://www.cnki.com.cn/Article/CJFDTOTAL-BJXB200505025.htm|周志新,方红玲,徐刚珍,董建军,盛丽娜,刘雪立|09244066,09277550,09288710,09244038,09244197,10248662|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244066%3b09277550%3b09288710%3b09244038%3b09244197%3b10248662%3b&scholarName=%e5%91%a8%e5%bf%97%e6%96%b0|编辑学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJXB|102|16 +1213968|如何提高医学期刊的影响因子——从《眼科新进展》论文分类被引情况谈起|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ200804040.htm|刘雪立,徐刚珍,方红玲,周志新,董建军,盛丽娜,付中静,苗媛|09244038,10248662,09288710,09244197,09277550,09244066,17270109,17271244|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244038%3b10248662%3b09288710%3b09244197%3b09277550%3b09244066%3b17270109%3b17271244%3b&scholarName=%e5%88%98%e9%9b%aa%e7%ab%8b|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|163|57 +1213968|期刊论文“三审制”中的“马太效应”及应对策略|http://www.cnki.com.cn/Article/CJFDTOTAL-SXKJ201404056.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|山西科技|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SXKJ|55|0 +1213968|我国医学期刊出版周期与影响因子关系的调查研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ200701011.htm|刘雪立,董建军,周志新,徐刚珍,方红玲,盛丽娜|09244038,09277550,09244197,10248662,09288710,09244066|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244038%3b09277550%3b09244197%3b10248662%3b09288710%3b09244066%3b&scholarName=%e5%88%98%e9%9b%aa%e7%ab%8b|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|126|34 +1213968|2005~2007年我国医学期刊自引率与过度自引的界定|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ200904017.htm|刘雪立,周志新,方红玲,盛丽娜,秦小川|09244038,09244197,09288710,09244066,22302681|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244038%3b09244197%3b09288710%3b09244066%3b22302681%3b&scholarName=%e5%88%98%e9%9b%aa%e7%ab%8b|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|139|24 +1213968|科技期刊编辑部知识管理新方案|http://www.cnki.com.cn/Article/CJFDTOTAL-BJXB200902024.htm|秦小川,张帆,方红玲,刘雪立,苗媛,付中静|22302681,09277770,09288710,09244038,17271244,17270109|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22302681%3b09277770%3b09288710%3b09244038%3b17271244%3b17270109%3b&scholarName=%e7%a7%a6%e5%b0%8f%e5%b7%9d|编辑学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJXB|165|5 +1213968|跨学科学术评价指标PR8和FNII的构建及实证研究——以河南省高校哲学社会科学评价为例|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGKT201712006.htm|刘雪立,盛丽娜,董建军,方红玲,付中静,王燕,周志新|09244038,09244066,09277550,09288710,17270109,17365969,09244197|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244038%3b09244066%3b09277550%3b09288710%3b17270109%3b17365969%3b09244197%3b&scholarName=%e5%88%98%e9%9b%aa%e7%ab%8b|中国科技论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGKT|154|1 +1213968|CT检查在眼眶骨折法医学鉴定中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-XXYX200506027.htm|常海敏,方红玲,李莉|09277535,09288710,12562915|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09277535%3b09288710%3b12562915%3b&scholarName=%e5%b8%b8%e6%b5%b7%e6%95%8f|新乡医学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XXYX|57|4 +1213968|Calphostin C对乳腺癌细胞侵袭能力的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-XXYX201409006.htm|常海敏,千新来,方红玲,原志庆|09277535,09244052,09288710,09277758|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09277535%3b09244052%3b09288710%3b09277758%3b&scholarName=%e5%b8%b8%e6%b5%b7%e6%95%8f|新乡医学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XXYX|55|0 +1213968|《眼科研究》2003~2007年引文分析|http://www.cnki.com.cn/Article/CJFDTOTAL-YXXX200809018.htm|方红玲||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|医学信息|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXXX|59|4 +1213968|2013年SSCI收录图书情报学期刊的文献计量学分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201603022.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|272|2 +1213968|我国5种眼科学中文核心期刊零被引论文特征分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201407021.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|289|21 +1213968|医学期刊审稿中常见问题解析|http://www.cnki.com.cn/Article/CJFDTOTAL-YXXX201105041.htm|付中静,刘雪立,方红玲,董建军,周志新,盛丽娜,苗媛|17270109,09244038,09288710,09277550,09244197,09244066,17271244|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17270109%3b09244038%3b09288710%3b09277550%3b09244197%3b09244066%3b17271244%3b&scholarName=%e4%bb%98%e4%b8%ad%e9%9d%99|医学信息(上旬刊)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXXX|100|3 +1213968|我国科技期刊论文被引量和下载量峰值年代——多学科比较研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201105018.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|512|70 +1213968|OA网站与商业网站论文高下载量对比分析及其与被引频次的相关性研究——以《中国科技期刊研究》为例|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201305011.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|354|14 +1213968|5种眼科学核心期刊研究论著类论文参考文献引用分类标注情况分析|http://www.cnki.com.cn/Article/CJFDTOTAL-YXQB200805030.htm|董建军,刘雪立,徐刚珍,周志新,方红玲,盛丽娜,苗媛,付中静|09277550,09244197,09244038,17270109,10248662,09288710,09244066,17271244|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09277550%3b09244197%3b09244038%3b17270109%3b10248662%3b09288710%3b09244066%3b17271244%3b&scholarName=%e8%91%a3%e5%bb%ba%e5%86%9b|医学信息学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXQB|50|0 +1213968|2006~2010年我国眼科学期刊学术影响力动态分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201303022.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|227|12 +1213968|中、日、印、韩四国高影响力论文产出状况对比研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201306011.htm|方红玲,常海敏,刘雪立|09288710,09277535,09244038|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b09277535%3b09244038%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|192|15 +1213968|2007~2009年SCI数据库收录中、日、印、韩四国科技期刊自引率比较研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201103014.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|213|17 +1213968|我国医学期刊加入不同全文数据库前后文献计量学指标的变化|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201201024.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|130|10 +1213968|2010年SCIE收录眼科学期刊及其文献计量学指标统计分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201205023.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|110|4 +1213968|我国医学硕士学位论文文后引文特征分析——以我国眼科学硕士学位论文为例|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201301019.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|99|2 +1213968|我国自引率不同的科技期刊文献计量学特征的对照研究|http://www.cnki.com.cn/Article/CJFDTOTAL-BJXB201101005.htm|刘雪立,方红玲,周志新,董建军,盛丽娜|09244038,09288710,09244197,09277550,09244066|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244038%3b09288710%3b09244197%3b09277550%3b09244066%3b&scholarName=%e5%88%98%e9%9b%aa%e7%ab%8b|编辑学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJXB|482|32 +1213968|2006—2010年编辑出版类期刊学术影响力变化分析|http://www.cnki.com.cn/Article/CJFDTOTAL-KJQB201416060.htm|方红玲|09288710,24385446|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b24385446%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|科技情报开发与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJQB|73|3 +1213968|关于利用被引频次支付期刊论文部分稿酬的尝试|http://www.cnki.com.cn/Article/CJFDTOTAL-BJXB201405024.htm|方红玲|09288710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09288710%3b&scholarName=%e6%96%b9%e7%ba%a2%e7%8e%b2|编辑学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJXB|91|1 +1213968|科技期刊反向评价指标——零被引论文率及其与其他文献计量学指标的关系|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201104013.htm|刘雪立,方红玲,周志新,董建军,盛丽娜,苗媛,付中静|09244038,09288710,09244197,09277550,09244066,17271244,17270109|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244038%3b09288710%3b09244197%3b09277550%3b09244066%3b17271244%3b17270109%3b&scholarName=%e5%88%98%e9%9b%aa%e7%ab%8b|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|885|89 +1213968|2009年7347种SCIE期刊文献计量学指标统计分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201101014.htm|刘雪立,方红玲,王梅英,董建军,周志新,付中静,苗媛,盛丽娜|09244038,09288710,25662173,09277550,09244197,17270109,17271244,09244066|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244038%3b09288710%3b25662173%3b09277550%3b09244197%3b17270109%3b17271244%3b09244066%3b&scholarName=%e5%88%98%e9%9b%aa%e7%ab%8b|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|348|21 +1213968|五种综合性眼科学期刊论文下载量与被引量的关系及部分论文的量引背离现象|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201005016.htm|刘雪立,方红玲,苗媛,王梅英,秦小川,董建军|09244038,09288710,17271244,25662173,22302681,09277550|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244038%3b09288710%3b17271244%3b25662173%3b22302681%3b09277550%3b&scholarName=%e5%88%98%e9%9b%aa%e7%ab%8b|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|286|43 +1213968|我国5种眼科学核心期刊2004~2008年高下载量论文统计与分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201004014.htm|刘雪立,方红玲,苗媛,王梅英,秦小川,董建军|09244038,09288710,17271244,25662173,22302681,09277550|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244038%3b09288710%3b17271244%3b25662173%3b22302681%3b09277550%3b&scholarName=%e5%88%98%e9%9b%aa%e7%ab%8b|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|250|34 +1213968|国内外生物医学期刊通讯作者标注情况的调查分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201006014.htm|秦小川,方红玲,刘雪立|25822575,09288710,09244038|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25822575%3b09288710%3b09244038%3b&scholarName=%e7%a7%a6%e5%b0%8f%e5%b7%9d|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|315|20 +1213968|SCI数据库中1058种医学期刊影响因子和5年影响因子与出版频率的关系|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201102013.htm|刘雪立,方红玲,丁君,王梅英|09244038,09288710,09243389,25662173|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244038%3b09288710%3b09243389%3b25662173%3b&scholarName=%e5%88%98%e9%9b%aa%e7%ab%8b|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|428|11 +1213968|河南省学术期刊影响力统计分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201202015.htm|盛丽娜,刘雪立,张新,胡炜,方红玲,董建军,周志新,付中静,王梅英|09244066,25534169,09244038,25533888,15728016,16069969,09288710,24385446,09277550,15909988,09244197,25534168,17270109,27179987,25662173,27179988|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244066%3b25534169%3b09244038%3b25533888%3b15728016%3b16069969%3b09288710%3b24385446%3b09277550%3b15909988%3b09244197%3b25534168%3b17270109%3b27179987%3b25662173%3b27179988%3b&scholarName=%e7%9b%9b%e4%b8%bd%e5%a8%9c|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|276|15 +1213968|MEDLINE数据库收录的中文期刊学术影响力分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201408005.htm|盛丽娜,董建军,付中静,周志新,方红玲,刘雪立|09244066,09277550,17270109,09244197,09288710,09244038|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244066%3b09277550%3b17270109%3b09244197%3b09288710%3b09244038%3b&scholarName=%e7%9b%9b%e4%b8%bd%e5%a8%9c|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|182|4 +1213968|河南省105种科技期刊编校质量审读差错分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201105024.htm|付中静,刘雪立,张新,胡炜,苗媛,方红玲,董建军,周志新,盛丽娜|17270109,09244038,15728016,16069969,17271244,09288710,09277550,09244197,09244066|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17270109%3b09244038%3b15728016%3b16069969%3b17271244%3b09288710%3b09277550%3b09244197%3b09244066%3b&scholarName=%e4%bb%98%e4%b8%ad%e9%9d%99|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|263|3 +1213968|我国医学期刊出版周期与影响因子关系的调查研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-DIDD200609001320.htm|刘雪立,董建军,周志新,徐刚珍,方红玲,盛丽娜||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%88%98%e9%9b%aa%e7%ab%8b|||22|0 +1213968|我国医学期刊出版周期与影响因子关系的调查研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-UGGA200606001027.htm|刘雪立,董建军,周志新,徐刚珍,方红玲,盛丽娜|09244197,09244066,09288710,09277550,10248662,09244038|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09244197%3b09244066%3b09288710%3b09277550%3b10248662%3b09244038%3b&scholarName=%e5%88%98%e9%9b%aa%e7%ab%8b|||21|0 +1218023|安徽省委党校图书馆“三大文库”建设特色研究|http://www.cnki.com.cn/Article/CJFDTOTAL-LLJS201304019.htm|夏沈陵,赵红霞,夏皖宜,杨光斌|13485990,27973646,23214201,29762952|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13485990%3b27973646%3b23214201%3b29762952%3b&scholarName=%e5%a4%8f%e6%b2%88%e9%99%b5|理论建设|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LLJS|174|1 +1218023|农村阅读文化工程建设的抽样调查与思考|http://www.cnki.com.cn/Article/CJFDTOTAL-LBYT201028038.htm|夏沈陵|13485990|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13485990%3b&scholarName=%e5%a4%8f%e6%b2%88%e9%99%b5|学理论|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LBYT|150|8 +1218023|农村基层群体电子阅读推广探究|http://www.cnki.com.cn/Article/CJFDTOTAL-JMSJ201212291.htm|夏沈陵|13485990|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13485990%3b&scholarName=%e5%a4%8f%e6%b2%88%e9%99%b5|佳木斯教育学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JMSJ|84|2 +1218023|论党校图书馆数字资源共建共享的可持续发展|http://www.cnki.com.cn/Article/CJFDTOTAL-KJQB200929022.htm|夏沈陵|13485990|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13485990%3b&scholarName=%e5%a4%8f%e6%b2%88%e9%99%b5|科技情报开发与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJQB|139|3 +1218023|关注农民文化阅读需求 提升中国农村文化软实力|http://www.cnki.com.cn/Article/CJFDTOTAL-HSGX201206026.htm|夏沈陵|13485990|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13485990%3b&scholarName=%e5%a4%8f%e6%b2%88%e9%99%b5|黑龙江生态工程职业学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HSGX|122|2 +1218023|总结特点开发收藏实践特色服务——谈中共安徽省委党校图书馆期刊工作数字化自动化|http://www.cnki.com.cn/Article/CJFDTOTAL-LYTS201001055.htm|夏沈陵|13485990|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13485990%3b&scholarName=%e5%a4%8f%e6%b2%88%e9%99%b5|农业图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LYTS|56|2 +1218023|图书馆业务档案的管理|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZL801.016.htm|夏沈陵|13485990|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13485990%3b&scholarName=%e5%a4%8f%e6%b2%88%e9%99%b5|情报资料工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZL|35|2 +1218023|中小型图书馆印刷体馆藏数字化过程中的继承问题|http://www.cnki.com.cn/Article/CJFDTOTAL-KJQB200410013.htm|夏沈陵|13485990|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13485990%3b&scholarName=%e5%a4%8f%e6%b2%88%e9%99%b5|科技情报开发与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJQB|23|0 +1218023|我国报刊业市场变化中的图书馆期刊采购|http://www.cnki.com.cn/Article/CJFDTOTAL-HFXY200404032.htm|夏沈陵|13485990|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13485990%3b&scholarName=%e5%a4%8f%e6%b2%88%e9%99%b5|合肥学院学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HFXY|59|5 +1218023|加强农业省情文献资源的开发与利用|http://www.cnki.com.cn/Article/CJFDTOTAL-XZJJ199704016.htm|夏沈陵|13485990|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13485990%3b&scholarName=%e5%a4%8f%e6%b2%88%e9%99%b5|乡镇经济研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XZJJ|10|1 +1218023|图书馆为读者提供信息化服务新探|http://www.cnki.com.cn/Article/CJFDTOTAL-FYSZ200403014.htm|夏沈陵|13485990|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13485990%3b&scholarName=%e5%a4%8f%e6%b2%88%e9%99%b5|阜阳师范学院学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FYSZ|31|1 +1218023|整合图书馆资源优势发展建设农家书屋|http://www.cnki.com.cn/Article/CJFDTOTAL-LYTS201103062.htm|夏皖宜,夏沈陵|23214201,13485990|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23214201%3b13485990%3b&scholarName=%e5%a4%8f%e7%9a%96%e5%ae%9c|农业图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LYTS|172|8 +1218023|谈新农村图书室建设的几种途径|http://www.cnki.com.cn/Article/CJFDTOTAL-LBYT200915079.htm|夏皖宜,夏沈陵|23214201,13485990|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23214201%3b13485990%3b&scholarName=%e5%a4%8f%e7%9a%96%e5%ae%9c|学理论|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LBYT|29|4 +1221017|内蒙武川新改河早白垩世孢粉组合及其意义|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGDJ198200014010.htm|苗淑娟||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e8%8b%97%e6%b7%91%e5%a8%9f|||19|0 +1221017|武川蜕变|http://xuewen.cnki.net/CCND-HTRB201008170010.html|冯燕平||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%86%af%e7%87%95%e5%b9%b3|||10|0 +1221017|全力发展县域经济 努力建设和谐武川|http://xuewen.cnki.net/CCND-HTRB200611080021.html|海珍,王玲坤,张显业||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e6%b5%b7%e7%8f%8d|||4|0 +1221017|武川马铃薯三度进京|http://xuewen.cnki.net/CCND-HTRB200907150017.html|张西平||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%bc%a0%e8%a5%bf%e5%b9%b3|||11|0 +1221017|小土豆做成大产业 “后山宝”搭上科技车|http://xuewen.cnki.net/CCND-HTRB200609230013.html|张秀北,师青山||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%bc%a0%e7%a7%80%e5%8c%97|||1|0 +1221017|蓄势待发看武川|http://xuewen.cnki.net/CCND-HTRB200609260012.html|师青山,王春||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%b8%88%e9%9d%92%e5%b1%b1|||1|0 +1221017|建设“三县三川一城一花园” 武川县在特色上下功夫|http://xuewen.cnki.net/CCND-HTRB201201300020.html|王科岩||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e7%8e%8b%e7%a7%91%e5%b2%a9|||0|0 +1221017|农牧交错带土地利用变化对生态系统服务的影响|http://cdmd.cnki.com.cn/Article/CDMD-10126-1018713465.htm|孙亚楠|35684547|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35684547%3b&scholarName=%e5%ad%99%e4%ba%9a%e6%a5%a0|||110|0 +1221017|基于RS与GIS的内蒙古武川县退耕还林生态成效监测|http://www.cnki.com.cn/Article/CJFDTOTAL-NYGU201511039.htm|汪芳甜,安萍莉,蔡璐佳,黄鑫鑫,郝晋珉|31229243,00126516,33111068,33111069,00005348|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31229243%3b00126516%3b33111068%3b33111069%3b00005348%3b&scholarName=%e6%b1%aa%e8%8a%b3%e7%94%9c|农业工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NYGU|403|14 +1221017|省道104公路一侧土壤重金属和基本化学性质研究|http://cdmd.cnki.com.cn/Article/CDMD-10135-1018843028.htm|高文邦|40005396|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=40005396%3b&scholarName=%e9%ab%98%e6%96%87%e9%82%a6|||26|0 +1221017|武川县林地生态效益研究|http://cdmd.cnki.com.cn/Article/CDMD-10129-1018882500.htm|刘莹|29989661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29989661%3b&scholarName=%e5%88%98%e8%8e%b9|||26|0 +1221017|半干旱区气候变化背景下近20年内蒙古武川县耕地质量变化|http://www.cnki.com.cn/Article/CJFDTOTAL-NYGU201311030.htm|王立为,安萍莉,潘志华,赫迪,董智强|29074432,00126516,09667534,29074433,27773166|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29074432%3b00126516%3b09667534%3b29074433%3b27773166%3b&scholarName=%e7%8e%8b%e7%ab%8b%e4%b8%ba|农业工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NYGU|593|20 +1221017|气候变化背景下武川主要作物生产水足迹变化分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGNY201504004.htm|赵慧,潘志华,韩国琳,董智强,张婧婷,赫迪,王立为,张君|27052118,09667534,33546725,27773166,31977645,29074433,29074432,09670576|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27052118%3b09667534%3b33546725%3b27773166%3b31977645%3b29074433%3b29074432%3b09670576%3b&scholarName=%e8%b5%b5%e6%85%a7|中国农业气象|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGNY|263|10 +1221017|典型农牧区草地景观特征及退耕潜力分析——以内蒙古自治区武川县哈乐镇为例|http://www.cnki.com.cn/Article/CJFDTOTAL-NYDX201804013.htm|高艺宁,赵萌莉,熊梅|33061682,07997127,30392020|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33061682%3b07997127%3b30392020%3b&scholarName=%e9%ab%98%e8%89%ba%e5%ae%81|中国农业大学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NYDX|93|1 +1221017|不同土地利用方式下土壤风蚀主要影响因子研究——以内蒙古武川县为例|http://www.cnki.com.cn/Article/CJFDTOTAL-YYSB200511015.htm|何文清,赵彩霞,高旺盛,陈源泉,秦红灵,樊秀荣|09727156,09665000,05972124,10511470,09667580,20523275|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09727156%3b09665000%3b05972124%3b10511470%3b09667580%3b20523275%3b&scholarName=%e4%bd%95%e6%96%87%e6%b8%85|应用生态学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YYSB|790|70 +1224217|中国的“英国学派”国际社会理论研究——张小明教授访谈|http://www.cnki.com.cn/Article/CJFDTOTAL-GJZY201603006.htm|本刊特约记者||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e6%9c%ac%e5%88%8a%e7%89%b9%e7%ba%a6%e8%ae%b0%e8%80%85|国际政治研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GJZY|436|3 +1224217|走近英国学派:一个中国学者的视角——读张小明的《国际关系英国学派》|http://www.cnki.com.cn/Article/CJFDTOTAL-OZZZ201004011.htm|袁正清|09890208|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09890208%3b&scholarName=%e8%a2%81%e6%ad%a3%e6%b8%85|欧洲研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/OZZZ|629|2 +1224217|凯南的遏制思想与美国的遏制战略——张小明《乔治·凯南遏制思想研究》读后|http://www.cnki.com.cn/Article/CJFDTOTAL-MGYJ603.010.htm|任东来||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e4%bb%bb%e4%b8%9c%e6%9d%a5|美国研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/MGYJ|1052|12 +1224217|改善经营管理机制 提升国际业务竞争力——交通银行国际业务部总经理张小明访谈|http://www.cnki.com.cn/Article/CJFDTOTAL-XJRO200603005.htm|刘明娟||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%88%98%e6%98%8e%e5%a8%9f|新金融|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XJRO|364|7 +1224217|刀废千把 篆刻求真|http://xuewen.cnki.net/CCND-MESH201506200191.html|郑竹三||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e9%83%91%e7%ab%b9%e4%b8%89|||10|0 +1224217|保护水资源 改善水环境|http://xuewen.cnki.net/CCND-YURB201504150020.html|张琛||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%bc%a0%e7%90%9b|||7|0 +1224217|开创依法治水兴水新局面|http://xuewen.cnki.net/CCND-YURB201506290020.html|刘娇娇||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%88%98%e5%a8%87%e5%a8%87|||4|0 +1224217|张小明闯关|http://www.cnki.com.cn/Article/CJFDTOTAL-DSXG201709006.htm|张坤||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%bc%a0%e5%9d%a4|读写算(小学高年级)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DSXG|0|0 +1224217|应该弄懂乔治·凯南──与张小明先生商榷|http://www.cnki.com.cn/Article/CJFDTOTAL-ZYGL605.009.htm|刘靖华|07028216|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07028216%3b&scholarName=%e5%88%98%e9%9d%96%e5%8d%8e|战略与管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZYGL|277|1 +1224217|国际政治学领域的一可喜成果──评张小明著《乔治·凯南遏制思想研究》|http://www.cnki.com.cn/Article/CJFDTOTAL-SJJZ501.025.htm|赵宝煦|06272487|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06272487%3b&scholarName=%e8%b5%b5%e5%ae%9d%e7%85%a6|世界经济与政治|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJJZ|322|2 +1224217|张小明:借鉴数学史,实现“再创造”|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKT201604029.htm|张小明|11176725|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11176725%3b&scholarName=%e5%bc%a0%e5%b0%8f%e6%98%8e|教育研究与评论(课堂观察)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKT|22|0 +1224217|张小明的诗|http://www.cnki.com.cn/Article/CJFDTOTAL-YGZZ201103032.htm|张小明||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%bc%a0%e5%b0%8f%e6%98%8e|北方作家|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YGZZ|7|0 +1224217|张小明的遭遇(校园剧)|http://www.cnki.com.cn/Article/CJFDTOTAL-FDAY200704056.htm|刘敏|22807301|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22807301%3b&scholarName=%e5%88%98%e6%95%8f|辅导员|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FDAY|12|0 +1224217|张小明闯关|http://www.cnki.com.cn/Article/CJFDTOTAL-YWSJ200806020.htm|张坤||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%bc%a0%e5%9d%a4|语文世界(小学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YWSJ|4|0 +1224217|"""梦的方向""——记福州客运司机张小明"|http://www.cnki.com.cn/Article/CJFDTOTAL-LDAQ200502016.htm|毅杰||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e6%af%85%e6%9d%b0|安全与健康|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LDAQ|5|0 +1236350|Al-B-N中间合金对1070铝合金力学性能及导电性的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-JMCX201705007.htm|张邦冉,马霞,刘桂亮,刘相法|37717494,21710915,21639875|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37717494%3b21710915%3b21639875%3b&scholarName=%e5%bc%a0%e9%82%a6%e5%86%89|精密成形工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JMCX|47|0 +1236350|浅议竞业禁止的基础原则|http://www.cnki.com.cn/Article/CJFDTOTAL-SCXH200901203.htm|马霞|21710915|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21710915%3b&scholarName=%e9%a9%ac%e9%9c%9e|商场现代化|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SCXH|210|6 +1236350|论我国侦查程序构造的理性化重塑|http://cdmd.cnki.com.cn/Article/CDMD-10422-2009245811.htm|马霞|21710915|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21710915%3b&scholarName=%e9%a9%ac%e9%9c%9e|||137|0 +1255595|我国高校信息公开存在问题分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JJYD201417037.htm|韩宏亮|30844555|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30844555%3b&scholarName=%e9%9f%a9%e5%ae%8f%e4%ba%ae|经济研究导刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JJYD|163|1 +1255595|基于第三方微博平台的高校信息公开机制构建|http://cdmd.cnki.com.cn/Article/CDMD-10212-1014314947.htm|韩宏亮|30844555|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30844555%3b&scholarName=%e9%9f%a9%e5%ae%8f%e4%ba%ae|||364|2 +1256669|高海拔交流输电线路金具电晕放电特性|http://www.cnki.com.cn/Article/CJFDTOTAL-GDYJ201112010.htm|曹晶,张勤,杨迎建,周文俊,谢梁,谷莉莉|17411480,23605205,24581861,21787359,10141426,17712843,21787371|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17411480%3b23605205%3b24581861%3b21787359%3b10141426%3b17712843%3b21787371%3b&scholarName=%e6%9b%b9%e6%99%b6|高电压技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDYJ|468|21 +1256669|iSchool毕业生在信息领域的就业分析及思考|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201213026.htm|曹晶,肖希明|17411480,09012629|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17411480%3b09012629%3b&scholarName=%e6%9b%b9%e6%99%b6|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|469|20 +1256669|大范围地形及城市三维快速建模与漫游|http://www.cnki.com.cn/Article/CJFDTOTAL-CJKB200804015.htm|曹晶,邵远征,张煜,叶松|17411480,17412944,20772411,21129628|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17411480%3b17412944%3b20772411%3b21129628%3b&scholarName=%e6%9b%b9%e6%99%b6|长江科学院院报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CJKB|523|25 +1256669|城市路网中浮动车数据和线圈数据的融合|http://www.cnki.com.cn/Article/CJFDTOTAL-JTJS200804005.htm|曹晶,李清泉|10135008,17411480|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10135008%3b17411480%3b&scholarName=%e6%9b%b9%e6%99%b6|交通与计算机|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JTJS|575|22 +1256669|高海拔换流站相间操作冲击放电特性分析|http://www.cnki.com.cn/Article/CJFDTOTAL-GDYJ201012009.htm|曹晶,万启发,张勤,陈勇,周文俊,霍峰,胡伟,孟可风,康钧|17411480,23605205,17712844,24581861,10887677,10141426,22358535,23633930,22829766,21656077|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17411480%3b23605205%3b17712844%3b24581861%3b10887677%3b10141426%3b22358535%3b23633930%3b22829766%3b21656077%3b&scholarName=%e6%9b%b9%e6%99%b6|高电压技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDYJ|164|8 +1256669|青藏直流工程换流站交流侧外绝缘特性|http://www.cnki.com.cn/Article/CJFDTOTAL-GDYJ200910016.htm|曹晶,陈勇,万启发,何宝龙,孟可风,戴敏|17411480,23605205,08982143,10887677,17712844,21656080,22829766,22089440|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17411480%3b23605205%3b08982143%3b10887677%3b17712844%3b21656080%3b22829766%3b22089440%3b&scholarName=%e6%9b%b9%e6%99%b6|高电压技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDYJ|132|8 +1256669|强势品牌广告竞争的溢出效应|http://www.cnki.com.cn/Article/CJFDTOTAL-XLXB201806009.htm|晋向东,张广玲,曹晶,谷传华,魏华,谢志鹏,段朝辉|36725144,25212819,09015390,36725145,07626972,37698389,37024378,28630852|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36725144%3b25212819%3b09015390%3b36725145%3b07626972%3b37698389%3b37024378%3b28630852%3b&scholarName=%e6%99%8b%e5%90%91%e4%b8%9c|心理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XLXB|962|0 +1256669|基于Web大数据挖掘的证券价格波动实时影响研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJA201504033.htm|杨莎,余伟,李石君,曹晶晶,刘晶|22532681,28238763,08992551,09005340,32820646,08985480|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22532681%3b28238763%3b08992551%3b09005340%3b32820646%3b08985480%3b&scholarName=%e6%9d%a8%e8%8e%8e|计算机科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJA|627|11 +1256669|750kV双回紧凑型线路杆塔放电特性及绝缘配合|http://www.cnki.com.cn/Article/CJFDTOTAL-GDYJ201005016.htm|霍锋,万启发,陈勇,谷定燮,曹晶|14471056,21787372,17712844,10887677,17712845,23605205|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14471056%3b21787372%3b17712844%3b10887677%3b17712845%3b23605205%3b&scholarName=%e9%9c%8d%e9%94%8b|高电压技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDYJ|245|21 +1256669|短时交通流量模式提取及时变特征分析|http://www.cnki.com.cn/Article/CJFDTOTAL-WHCH201112002.htm|李清泉,曹晶,乐阳,李志恒|10135008,17411480,23395889,08229056|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10135008%3b17411480%3b23395889%3b08229056%3b&scholarName=%e6%9d%8e%e6%b8%85%e6%b3%89|武汉大学学报(信息科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WHCH|297|4 +1256669|高海拔地区500kV紧凑型线路过电压及防雷特性|http://www.cnki.com.cn/Article/CJFDTOTAL-GDYJ201101010.htm|赵建宁,谷定燮,霍锋,曹晶,戴敏|23337163,23337164,17712845,21787372,23605205,22089440|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23337163%3b23337164%3b17712845%3b21787372%3b23605205%3b22089440%3b&scholarName=%e8%b5%b5%e5%bb%ba%e5%ae%81|高电压技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDYJ|258|13 +1256669|氟西汀对培养的人结膜上皮细胞炎性因子及丝裂原活化蛋白激酶信号通路的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-HBYK201801018.htm|曹婷,杨燕宁,严江波,曹晶|09018998,10143310,33141721,17473955|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09018998%3b10143310%3b33141721%3b17473955%3b&scholarName=%e6%9b%b9%e5%a9%b7|武汉大学学报(医学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HBYK|64|0 +1256669|网络广告密集的作用机制|http://www.cnki.com.cn/Article/CJFDTOTAL-DACB201701029.htm|晋向东,张广玲,曹晶|36725144,25212819,09015390,36725145|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36725144%3b25212819%3b09015390%3b36725145%3b&scholarName=%e6%99%8b%e5%90%91%e4%b8%9c|当代传播|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DACB|154|0 +1256669|黄斑裂孔性视网膜脱离合并白内障的手术治疗|http://www.cnki.com.cn/Article/CJFDTOTAL-HBYK201104034.htm|刘晓姣,曹晶,杨安怀|09039474,17473955,09021035|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09039474%3b17473955%3b09021035%3b&scholarName=%e5%88%98%e6%99%93%e5%a7%a3|武汉大学学报(医学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HBYK|72|0 +1256669|多焦点LASIK手术老视患者围术期护理|http://www.cnki.com.cn/Article/CJFDTOTAL-HLXZ200816028.htm|刘晓姣,万金方,王晓雄,张宁,曹晶|09039474,09040515,09020908,09022283,17473955|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09039474%3b09040515%3b09020908%3b09022283%3b17473955%3b&scholarName=%e5%88%98%e6%99%93%e5%a7%a3|护理学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HLXZ|18|3 +1256669|高海拔地区750kV开关站空气间隙选择研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SDNY200906066.htm|李三,曹晶,陈勇,万启发,谷定燮|23569123,23605205,17411480,10887677,08982143,17712844,17712845|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23569123%3b23605205%3b17411480%3b10887677%3b08982143%3b17712844%3b17712845%3b&scholarName=%e6%9d%8e%e4%b8%89|水电能源科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SDNY|96|1 +1256669|高海拔换流站空气间隙放电特性及海拔修正研究|http://cdmd.cnki.com.cn/Article/CDMD-10486-1013210204.htm|曹晶|17411480|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17411480%3b&scholarName=%e6%9b%b9%e6%99%b6|||681|10 +1256669|中国高铁组织网空间增长建模及可达性研究|http://cdmd.cnki.com.cn/Article/CDMD-10486-1015516312.htm|曹晶|17411480|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17411480%3b&scholarName=%e6%9b%b9%e6%99%b6|||684|7 +1256669|PMBP/环已烷、异戊醇萃取分离等离子体发射光谱法同时测定水中微量稀土元素|http://www.cnki.com.cn/Article/CJFDTOTAL-FJKS199301007.htm|丁健华,曹晶华,廖振环|15787431,10135384|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15787431%3b10135384%3b&scholarName=%e4%b8%81%e5%81%a5%e5%8d%8e|环境科学与技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJKS|22|3 +1257020|基于复杂网络视角的科学文献数据分析|http://www.cnki.com.cn/Article/CJFDTOTAL-KJDB201808009.htm|周建林,牛琪锴,曾安,樊瑛,狄增如|39148198,32210670,25712165,06361559,06353896|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=39148198%3b32210670%3b25712165%3b06361559%3b06353896%3b&scholarName=%e5%91%a8%e5%bb%ba%e6%9e%97|科技导报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJDB|106|1 +1257020|科学引文网中基于“H指数”的文章影响力评价|http://www.cnki.com.cn/Article/CJFDTOTAL-BSDZ201406022.htm|牛琪锴,狄增如,樊瑛|32210670,06353896,06361559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32210670%3b06353896%3b06361559%3b&scholarName=%e7%89%9b%e7%90%aa%e9%94%b4|北京师范大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BSDZ|197|2 +1261916|国内外信息行为对比研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201505002.htm|赵鹏|27233295|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27233295%3b&scholarName=%e8%b5%b5%e9%b9%8f|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|1336|14 +1261916|在线存储服务持续使用意愿研究——基于用户满意度和感知风险视角|http://www.cnki.com.cn/Article/CJFDTOTAL-XNZY201502010.htm|赵鹏,张晋朝|27233295,25249619|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27233295%3b25249619%3b&scholarName=%e8%b5%b5%e9%b9%8f|信息资源管理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XNZY|324|11 +1261916|学术博客用户知识共享意愿的影响因素研究——以科学网博客为例|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201411030.htm|赵鹏|27233295|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27233295%3b&scholarName=%e8%b5%b5%e9%b9%8f|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|386|12 +1261916|面向iOS的移动端全景地图构建方法|http://www.cnki.com.cn/Article/CJFDTOTAL-DLGT201601018.htm|赵鹏程,胡庆武,刘仙雄,姚远|29945838,10134002,34391591,09034009|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29945838%3b10134002%3b34391591%3b09034009%3b&scholarName=%e8%b5%b5%e9%b9%8f%e7%a8%8b|地理与地理信息科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DLGT|319|7 +1261916|澜沧江流域中长期径流预报方法研究|http://www.cnki.com.cn/Article/CJFDTOTAL-WSDD201807001.htm|赵鹏雁,张利平,王旭,胡振奎,吕双江,倪旺丹|36082167,09015482,37453784,29751241,39731810,29751234|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36082167%3b09015482%3b37453784%3b29751241%3b39731810%3b29751234%3b&scholarName=%e8%b5%b5%e9%b9%8f%e9%9b%81|武汉大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WSDD|105|0 +1261916|虚拟社区用户知识共享行为影响因素研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201604015.htm|黄维,赵鹏|09014132,27233295|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09014132%3b27233295%3b&scholarName=%e9%bb%84%e7%bb%b4|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|1052|17 +1261916|出口贸易对异质性企业生产率的影响——基于不同行业类别和企业类别的实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JJJW201604012.htm|赵鹏豪,王保双|34136970,29266608|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34136970%3b29266608%3b&scholarName=%e8%b5%b5%e9%b9%8f%e8%b1%aa|经济经纬|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JJJW|223|3 +1261916|MoO_3纳米带在外场作用下的相变|http://www.cnki.com.cn/Article/CJFDTOTAL-DZXV201705003.htm|赵鹏辉,曹凡,贾双凤,郑赫,王建波,赵东山|37891692,35434264,23300772,28907282,09009950,37247160,09036828|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37891692%3b35434264%3b23300772%3b28907282%3b09009950%3b37247160%3b09036828%3b&scholarName=%e8%b5%b5%e9%b9%8f%e8%be%89|电子显微学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DZXV|27|2 +1261916|制度是一种约束还是一种资源——比较制度优势的来源及影响研究|http://www.cnki.com.cn/Article/CJFDTOTAL-WSLD201703015.htm|汪涛,赵鹏,金珞欣|10137749,27233295,26716325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10137749%3b27233295%3b26716325%3b&scholarName=%e6%b1%aa%e6%b6%9b|武汉大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WSLD|293|0 +1261916|阻塞性睡眠呼吸暂停低通气综合征患者呼出气冷凝液中TNF-α、IL-6的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-LCFK201104069.htm|赵鹏展,胡克,崔忠惠,于志明,梅永添|25651572,10142552,24331114,25651571,25595191|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25651572%3b10142552%3b24331114%3b25651571%3b25595191%3b&scholarName=%e8%b5%b5%e9%b9%8f%e5%b1%95|临床肺科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCFK|89|9 +1261916|行为轨迹时空聚类与分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZRZZ201803005.htm|秦昆,王玉龙,赵鹏祥,徐雯婷,徐源泉|08986806,24901182,39635726,37849116,37849115|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08986806%3b24901182%3b39635726%3b37849116%3b37849115%3b&scholarName=%e7%a7%a6%e6%98%86|自然杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZRZZ|267|0 +1261916|浅谈高校青年教师如何处理好教学与科学研究之间的关系|http://www.cnki.com.cn/Article/CJFDTOTAL-JYJU201644103.htm|赵鹏|27233295|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27233295%3b&scholarName=%e8%b5%b5%e9%b9%8f|教育教学论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYJU|36|0 +1261916|多用户非均匀供电线路电压质量与线损优化方法研究|http://www.cnki.com.cn/Article/CJFDTOTAL-DCYQ201524001.htm|李晓明,赵鹏,邓笑冬,田震,黄建明|10135085,27233295,34184806,33222204,34184807|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10135085%3b27233295%3b34184806%3b33222204%3b34184807%3b&scholarName=%e6%9d%8e%e6%99%93%e6%98%8e|电测与仪表|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DCYQ|60|2 +1261916|浅谈众源地理数据|http://www.cnki.com.cn/Article/CJFDTOTAL-XXJK201312016.htm|贾宁,赵鹏祥|29346785,29346786|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29346785%3b29346786%3b&scholarName=%e8%b4%be%e5%ae%81|中国科技信息|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XXJK|581|9 +1261916|改进矩阵算法及在实际中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-DCYQ201712004.htm|闫方果,李晓明,杨俊杰,路书敏,赵鹏|37331217,10135085,36949675,36949676,36718735|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37331217%3b10135085%3b36949675%3b36949676%3b36718735%3b&scholarName=%e9%97%ab%e6%96%b9%e6%9e%9c|电测与仪表|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DCYQ|61|1 +1261916|利用vc~(++)实现汉字转换unicode码的技术研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDSM200910160.htm|王聪,赵鹏飞,刘宇,杨之文|22449572,22449573,08985851,22449574|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22449572%3b22449573%3b08985851%3b22449574%3b&scholarName=%e7%8e%8b%e8%81%aa|现代商贸工业|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDSM|166|3 +1261916|2009年湖北省甲型H1N1流感重症病例60例临床分析|http://www.cnki.com.cn/Article/CJFDTOTAL-NKJW201101006.htm|于志明,赵鹏展,胡克|25651571,25651572,10142552|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25651571%3b25651572%3b10142552%3b&scholarName=%e4%ba%8e%e5%bf%97%e6%98%8e|内科急危重症杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NKJW|38|2 +1261916|PDU模式的短信息编解码技术及在Visual C++中的实现|http://www.cnki.com.cn/Article/CJFDTOTAL-KXLT200907036.htm|王聪,赵鹏飞,张拯民,刘宇|22449572,22449573,23188127,08985851|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22449572%3b22449573%3b23188127%3b08985851%3b&scholarName=%e7%8e%8b%e8%81%aa|科协论坛(下半月)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KXLT|170|2 +1261916|顾及结构信息的DOM镶嵌线搜索算法|http://www.cnki.com.cn/Article/CJFDTOTAL-CHKD201601037.htm|焦晨静,陈时雨,赵鹏祥|32039494,34080389,29346786|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32039494%3b34080389%3b29346786%3b&scholarName=%e7%84%a6%e6%99%a8%e9%9d%99|测绘科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CHKD|69|1 +1261916|川芎嗪对哮喘小鼠p38蛋白激酶及类胰蛋白酶表达的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-LCFK201112002.htm|梅永添,黄翠萍,胡克,赵鹏展,肖锦秀,赵景景|25595191,26652010,09230367,10142552,25651572,26196460,26196459|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25595191%3b26652010%3b09230367%3b10142552%3b25651572%3b26196460%3b26196459%3b&scholarName=%e6%a2%85%e6%b0%b8%e6%b7%bb|临床肺科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCFK|111|6 +1261916|浅析设计艺术教学中“意境”对招贴创意的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZCRY201214054.htm|江南,赵鹏|10134449,27964174,08857789|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10134449%3b27964174%3b08857789%3b&scholarName=%e6%b1%9f%e5%8d%97|中国成人教育|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZCRY|54|0 +1261916|明渠均匀紊流掺混长度分布研究|http://www.cnki.com.cn/Article/CJFDTOTAL-FSJS201204023.htm|胡涛,吴鹏飞,赵鹏|08983860,27233296,27233295|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08983860%3b27233296%3b27233295%3b&scholarName=%e8%83%a1%e6%b6%9b|水利与建筑工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FSJS|110|1 +1261916|基于轨迹聚类的城市热点区域提取与分析方法研究|http://cdmd.cnki.com.cn/Article/CDMD-10486-1016015902.htm|赵鹏祥|29346786|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29346786%3b&scholarName=%e8%b5%b5%e9%b9%8f%e7%a5%a5|||2026|12 +1261916|浅谈我国农村沼气建设的重要意义与发展建议|http://www.cnki.com.cn/Article/CJFDTOTAL-KJYQ201206108.htm|胡涛,赵鹏,吴鹏飞|08983860,27233295,27233296|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08983860%3b27233295%3b27233296%3b&scholarName=%e8%83%a1%e6%b6%9b|科技与企业|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJYQ|103|2 +1261916|艺术传播在数字互动媒介中的涡旋控制|http://www.cnki.com.cn/Article/CJFDTOTAL-SDZS201306020.htm|赵鹏,江南|08857789,10134449,27964174|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08857789%3b10134449%3b27964174%3b&scholarName=%e8%b5%b5%e9%b9%8f|山东大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SDZS|211|2 +1261916|故宫藻井轩辕镜及配件的材料与工艺分析研究|http://www.cnki.com.cn/Article/CJFDTOTAL-WWBF201804005.htm|曲亮,赵鹏,段鸿莺,沈爱国,王文涛,史宁昌|21687046,27042854,22009207,10137010,29230540,35160939|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21687046%3b27042854%3b22009207%3b10137010%3b29230540%3b35160939%3b&scholarName=%e6%9b%b2%e4%ba%ae|文物保护与考古科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WWBF|50|0 +1261916|“制器尚象”对中国宗教文化识别传播的影响及表现特征|http://www.cnki.com.cn/Article/CJFDTOTAL-SDSK201206040.htm|赵鹏,江南|08857789,10134449|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08857789%3b10134449%3b&scholarName=%e8%b5%b5%e9%b9%8f|山东社会科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SDSK|155|2 +1261916|北朝佛传故事图像艺术中的济世观念|http://www.cnki.com.cn/Article/CJFDTOTAL-JXSH201405020.htm|赵鹏,江南|08857789,10134449,27964174|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08857789%3b10134449%3b27964174%3b&scholarName=%e8%b5%b5%e9%b9%8f|江西社会科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXSH|101|0 +1261916|跨国品牌本土化适应中的文化混搭现象:研究回顾与展望|http://www.cnki.com.cn/Article/CJFDTOTAL-WGJG201807009.htm|熊莎莎,汪涛,赵鹏|34675820,22434355,10137749,27233295|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34675820%3b22434355%3b10137749%3b27233295%3b&scholarName=%e7%86%8a%e8%8e%8e%e8%8e%8e|外国经济与管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WGJG|580|0 +1261916|中药复方板蓝根颗粒抗柯萨奇B_4病毒作用的实验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZNZK201103013.htm|刘钊,赵鹏,杨占秋|14678722,26513890,08992055|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14678722%3b26513890%3b08992055%3b&scholarName=%e5%88%98%e9%92%8a|中南民族大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZNZK|187|9 +1261916|裸露符号在广告中展现女性美的现代解读|http://www.cnki.com.cn/Article/CJFDTOTAL-GGGG201107034.htm|赵鹏,江南|08857789,10134449,17607110|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08857789%3b10134449%3b17607110%3b&scholarName=%e8%b5%b5%e9%b9%8f|中国广告|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GGGG|206|0 +1261916|斜坡异位泌乳素垂体腺瘤1例临床分析并文献复习|http://www.cnki.com.cn/Article/CJFDTOTAL-LCSW201601006.htm|穆林森,张红波,陈谦学,桂松柏,曾小君,白吉伟,李储忠,赵鹏,孙彦辉,宗绪毅,张亚卓|30328297,32990663,05971631,22753251,31883671,23854295,23110985,26690808,22852004,22985491,22974490|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30328297%3b32990663%3b05971631%3b22753251%3b31883671%3b23854295%3b23110985%3b26690808%3b22852004%3b22985491%3b22974490%3b&scholarName=%e7%a9%86%e6%9e%97%e6%a3%ae|临床神经外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCSW|96|3 +1261916|考虑年经济效益的分布式电源的优化配置研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XBDJ201701014.htm|王嘉庚,司聪,冉新夺,赵鹏超,郭波,王朋|36528486,36528487,36528488,36528489,36528490,09010757|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36528486%3b36528487%3b36528488%3b36528489%3b36528490%3b09010757%3b&scholarName=%e7%8e%8b%e5%98%89%e5%ba%9a|陕西电力|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XBDJ|39|3 +1261916|澜沧江流域径流演变规律研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SZYY201605007.htm|胡振奎,赵鹏雁,张利平,艾显仁,魏超,李江|29751241,36082167,09015482,36082168,30156754,24078023|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29751241%3b36082167%3b09015482%3b36082168%3b30156754%3b24078023%3b&scholarName=%e8%83%a1%e6%8c%af%e5%a5%8e|水资源研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZYY|40|1 +1261916|MoO_3纳米材料在外场作用下的相变|http://cdmd.cnki.com.cn/Article/CDMD-10486-1017195345.htm|赵鹏辉|37891692|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37891692%3b&scholarName=%e8%b5%b5%e9%b9%8f%e8%be%89|||8|0 +1261916|丙型肝炎病毒NS4B蛋白诱导细胞凋亡的研究|http://cdmd.cnki.com.cn/Article/CDMD-10486-1015026746.htm|赵鹏|27233295|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27233295%3b&scholarName=%e8%b5%b5%e9%b9%8f|||114|0 +1261916|电沉积制备壳聚糖/层状双氢氧化物“砖-泥”结构凝胶及多敏感蛋白释放研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGHY201510012041.htm|施晓文,赵鹏坤,邓红兵,杜予民|09029535,31042862,09003148,00003966|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09029535%3b31042862%3b09003148%3b00003966%3b&scholarName=%e6%96%bd%e6%99%93%e6%96%87|||41|0 +1261916|细胞自噬在花粉萌动过程中的作用|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGZO201610001035.htm|赵鹏,周雪妹,孙蒙祥|27233295,33542218,05982909|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27233295%3b33542218%3b05982909%3b&scholarName=%e8%b5%b5%e9%b9%8f|||18|0 +1261916|输血传播病毒(TTV)SANBAN分离株ORF2蛋白对NF-κB信号途径抑制的研究|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=HBKJ200710003061&dbname=IPFD9914|郑弦,叶林柏,曾莹春,蔡维嘉,赵鹏,张毅娟,朱生力,宿丽娅,吴正辉,佘应龙|15557189,05971022,15556756,15553195,15557110,15557015,15557330,15555499,13350065,13350063|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15557189%3b05971022%3b15556756%3b15553195%3b15557110%3b15557015%3b15557330%3b15555499%3b13350065%3b13350063%3b&scholarName=%e9%83%91%e5%bc%a6|||9|0 +1263195|e-Science环境下青年科研人员科研信息素养现状调查与分析|http://www.cnki.com.cn/Article/CJFDTOTAL-PTSQ201601016.htm|齐俊景|31373562|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31373562%3b&scholarName=%e9%bd%90%e4%bf%8a%e6%99%af|图书情报研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/PTSQ|106|1 +1263195|基于SEM的高校科研团队知识增长影响因素的实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDQB201607014.htm|金燕,齐俊景|09486907,31373562|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09486907%3b31373562%3b&scholarName=%e9%87%91%e7%87%95|现代情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDQB|127|1 +1263195|郑州大学信息管理学院硕士学位论文参考文献分析|http://www.cnki.com.cn/Article/CJFDTOTAL-DAGL201504030.htm|齐俊景|31373562|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31373562%3b&scholarName=%e9%bd%90%e4%bf%8a%e6%99%af|档案管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DAGL|125|1 +1263195|数字图书馆范式演变及特征比较研究|http://www.cnki.com.cn/Article/CJFDTOTAL-KJQB201412054.htm|齐俊景|31373562|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31373562%3b&scholarName=%e9%bd%90%e4%bf%8a%e6%99%af|科技情报开发与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJQB|46|0 +1263195|协同创新网络知识增长模型构建研究|http://cdmd.cnki.com.cn/Article/CDMD-10459-1016161907.htm|齐俊景|31373562|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31373562%3b&scholarName=%e9%bd%90%e4%bf%8a%e6%99%af|||120|0 +1274731|国企混合所有制改革的新思考|http://www.cnki.com.cn/Article/CJFDTOTAL-JSGZ2018Z1039.htm|李琪澳|38752132|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38752132%3b&scholarName=%e6%9d%8e%e7%90%aa%e6%be%b3|中国商界|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSGZ|310|1 +1274731|公共图书馆服务能力评价指标体系构建及实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZL201506017.htm|孙成江,李琪|06603969,03824451|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06603969%3b03824451%3b&scholarName=%e5%ad%99%e6%88%90%e6%b1%9f|情报资料工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZL|577|11 +1274731|短道速滑向速度滑冰项目转型的优劣势分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TYXK201406026.htm|陶玉晶,李琪珺|06598145,32109603|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06598145%3b32109603%3b&scholarName=%e9%99%b6%e7%8e%89%e6%99%b6|体育学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TYXK|182|3 +1274731|中国城市规划制度创新刍议|http://www.cnki.com.cn/Article/CJFDTOTAL-DBSZ200104017.htm|王士君,姜曦东,李琪|20685824,06596787,06604078|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=20685824%3b06596787%3b06604078%3b&scholarName=%e7%8e%8b%e5%a3%ab%e5%90%9b|东北师大学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DBSZ|235|13 +1274731|我国省级公共图书馆服务能力评价研究|http://cdmd.cnki.com.cn/Article/CDMD-10200-1015415388.htm|李琪|03824451|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=03824451%3b&scholarName=%e6%9d%8e%e7%90%aa|||229|1 +1274731|“软式”轮滑球游戏教学在小学轮滑课中的应用研究|http://cdmd.cnki.com.cn/Article/CDMD-10200-1017143727.htm|李琪珺|32109603|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32109603%3b&scholarName=%e6%9d%8e%e7%90%aa%e7%8f%ba|||82|0 +1274731|一项关于英语专业学生语法能力的调查|http://cdmd.cnki.com.cn/Article/CDMD-10200-2006098371.htm|李琪|03824451|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=03824451%3b&scholarName=%e6%9d%8e%e7%90%aa|||550|5 +1274741|基于技术贡献度的企业技术创新力测度方法研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201707001.htm|姚长青,崔笛,刘志辉,高影繁|11676978,33977191,26421642,24549645|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11676978%3b33977191%3b26421642%3b24549645%3b&scholarName=%e5%a7%9a%e9%95%bf%e9%9d%92|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|192|1 +1274741|双语句对翻译众包辅助平台设计与实现|http://www.cnki.com.cn/Article/CJFDTOTAL-QBGC201703011.htm|高影繁,李辉,徐红姣,崔笛|24549645,22315827,24138338,33977191|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24549645%3b22315827%3b24138338%3b33977191%3b&scholarName=%e9%ab%98%e5%bd%b1%e7%b9%81|情报工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBGC|65|0 +1276508|基于网络信息计量的纯电子期刊评价体系构建及实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201602003.htm|张洋,何祎雯,伦惠莲|10720437,34929672,34929673|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10720437%3b34929672%3b34929673%3b&scholarName=%e5%bc%a0%e6%b4%8b|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|224|1 +1289998|基于专利的国内外可穿戴式血压测量技术分析|http://www.cnki.com.cn/Article/CJFDTOTAL-YXTS201702002.htm|仇华炳,周丰丰|36488757,36488758|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36488757%3b36488758%3b&scholarName=%e4%bb%87%e5%8d%8e%e7%82%b3|中华医学图书情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXTS|191|1 +1289998|风力发电机组关键技术专利态势分析|http://www.cnki.com.cn/Article/CJFDTOTAL-KJCJ201710004.htm|仇华炳,赵晏强,马廷灿|36488757,26558182,10567586|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36488757%3b26558182%3b10567586%3b&scholarName=%e4%bb%87%e5%8d%8e%e7%82%b3|科技促进发展|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJCJ|90|1 +1289998|磁约束核聚变国际发展态势分析|http://www.cnki.com.cn/Article/CJFDTOTAL-KCGC201803002.htm|吴勘,赵晏强,仇华炳,郭楷模,陈伟,李富岭,汪其|37847512,26558182,36488757,39529770,17424821,09601768,28394800|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37847512%3b26558182%3b36488757%3b39529770%3b17424821%3b09601768%3b28394800%3b&scholarName=%e5%90%b4%e5%8b%98|科学观察|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KCGC|274|0 +1289998|国际储能关键技术竞争态势|http://www.cnki.com.cn/Article/CJFDTOTAL-KJCJ201710002.htm|赵晏强,周伯柱,仇华炳|26558182,38162655,36488757|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26558182%3b38162655%3b36488757%3b&scholarName=%e8%b5%b5%e6%99%8f%e5%bc%ba|科技促进发展|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJCJ|196|0 +1307089|基于LDA的国内数字图书馆研究主题发现与演化|http://cdmd.cnki.com.cn/Article/CDMD-10403-1017239802.htm|吴君麟|38126368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38126368%3b&scholarName=%e5%90%b4%e5%90%9b%e9%ba%9f|||211|2 +1333175|我国哲学社会科学国际影响力研究——基于国际文献大数据的分析(2011—2015年)|http://www.cnki.com.cn/Article/CJFDTOTAL-ZSKP201704011.htm|肖宏,张义川,汤丽云,伍军红,孙秀坤,孙隽,李芳芳|28077750,33103937,35738719,26840444,10636592,35738718,38453155|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28077750%3b33103937%3b35738719%3b26840444%3b10636592%3b35738718%3b38453155%3b&scholarName=%e8%82%96%e5%ae%8f|中国社会科学评价|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZSKP|189|1 +1333175|期刊论文被引用及其Web全文下载的文献计量分析|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ200504015.htm|万锦堃,花平寰,孙秀坤|10636592,10605112,10741888|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10636592%3b10605112%3b10741888%3b&scholarName=%e4%b8%87%e9%94%a6%e5%a0%83|现代图书情报技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|954|77 +1333175|h指数及其用于学术期刊评价|http://www.cnki.com.cn/Article/CJFDTOTAL-PJGL200603000.htm|万锦堃,花平寰,宋媛媛,杜剑,孙秀坤|10605112,10741888,10746045,10640519,10636592|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10605112%3b10741888%3b10746045%3b10640519%3b10636592%3b&scholarName=%e4%b8%87%e9%94%a6%e5%a0%83|评价与管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/PJGL|1059|96 +1336791|基于高被引论文的国立科研机构高影响力科研人员特征分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201510010.htm|慕慧鸽,张军|33252426,33047993,15161058|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33252426%3b33047993%3b15161058%3b&scholarName=%e6%85%95%e6%85%a7%e9%b8%bd|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|218|6 +1336791|国内情报学领域信息检索相关性研究进展分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201606002.htm|慕慧鸽,张军|33047993,33252426,15161058|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33047993%3b33252426%3b15161058%3b&scholarName=%e6%85%95%e6%85%a7%e9%b8%bd|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|647|3 +1336791|我国图书馆创客空间理论研究与实践发展综述|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQC201506005.htm|宋甫,吴跃伟,韩晓雪,慕慧鸽|33944630,33796720,10654705,33944631,33944632,33252426,33047993|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33944630%3b33796720%3b10654705%3b33944631%3b33944632%3b33252426%3b33047993%3b&scholarName=%e5%ae%8b%e7%94%ab|图书情报知识|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQC|3483|73 +1336791|基于文献计量的综合性国立科研机构科研产出研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XNZY201603009.htm|慕慧鸽,张军,马廷灿|33047993,33252426,15161058,10567586|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33047993%3b33252426%3b15161058%3b10567586%3b&scholarName=%e6%85%95%e6%85%a7%e9%b8%bd|信息资源管理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XNZY|92|0 +1336791|国际权威智库定量研究方法进展与趋势|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201507024.htm|张军,周磊,慕慧鸽|15161058,30554439,33047993,33252426|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15161058%3b30554439%3b33047993%3b33252426%3b&scholarName=%e5%bc%a0%e5%86%9b|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|1666|22 +1336791|中德国立科研机构高被引论文核心作者特征状况研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201602018.htm|张军,慕慧鸽|15161058,33047993,33252426|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15161058%3b33047993%3b33252426%3b&scholarName=%e5%bc%a0%e5%86%9b|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|174|0 +1345077|基于知识图谱分析的电子政务研究现状、热点与趋势|http://www.cnki.com.cn/Article/CJFDTOTAL-BOOK201301022.htm|程赛琰,丁磊,魏淑娟|11138752,28411963,07907269|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11138752%3b28411963%3b07907269%3b&scholarName=%e7%a8%8b%e8%b5%9b%e7%90%b0|图书与情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BOOK|2510|22 +1345077|突发事件中政务“双微”联动传播的困境及应对|http://www.cnki.com.cn/Article/CJFDTOTAL-CQSK201712014.htm|程赛琰,牛春华|11138752,07906446|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11138752%3b07906446%3b&scholarName=%e7%a8%8b%e8%b5%9b%e7%90%b0|重庆社会科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CQSK|249|4 +1345077|住房政策改革下单位社区分层现象探析——以L市X区为例|http://www.cnki.com.cn/Article/CJFDTOTAL-ZXGL201402013.htm|魏淑娟,程赛琰|07907269,11138752|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07907269%3b11138752%3b&scholarName=%e9%ad%8f%e6%b7%91%e5%a8%9f|中国行政管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZXGL|380|7 +1345077|我国信息计量学领域的奠基之作——邱均平教授新作《信息计量学》评介|http://www.cnki.com.cn/Article/CJFDTOTAL-BOOK200903034.htm|程赛琰|11138752|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11138752%3b&scholarName=%e7%a8%8b%e8%b5%9b%e7%90%b0|图书与情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BOOK|220|1 +1345077|典型计算机学(协)会职业伦理守则比较|http://www.cnki.com.cn/Article/CJFDTOTAL-BOOK200703016.htm|曾维导,程赛琰|11138752,10897755|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11138752%3b10897755%3b&scholarName=%e6%9b%be%e7%bb%b4%e5%af%bc|图书与情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BOOK|122|0 +1345077|信息安全研究领域的可视化分析|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGUH201311014002.htm|程赛琰,陆莉|11138752,31718321|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11138752%3b31718321%3b&scholarName=%e7%a8%8b%e8%b5%9b%e7%90%b0|||120|1 +1350340|高校图书馆纺织服装学科信息资源共建共享研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB200911023.htm|刘建平,陈惠兰|06607944,06598807|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06607944%3b06598807%3b&scholarName=%e5%88%98%e5%bb%ba%e5%b9%b3|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|212|7 +1350340|“纺织服装史图文专题数据库”建设的研究与实践|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGJ200901014.htm|刘建平|06607944|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06607944%3b&scholarName=%e5%88%98%e5%bb%ba%e5%b9%b3|图书馆建设|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGJ|295|4 +1350340|服装用天然纤维材料的文化构成|http://www.cnki.com.cn/Article/CJFDTOTAL-FZXB200701028.htm|刘建平,高卫东|07779428,06607944|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07779428%3b06607944%3b&scholarName=%e5%88%98%e5%bb%ba%e5%b9%b3|纺织学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FZXB|258|3 +1350340|重要检索系统来源刊检索介绍及投稿建议|http://www.cnki.com.cn/Article/CJFDTOTAL-DHDS200802017.htm|刘建平,陈惠兰|06598807,06607944|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06598807%3b06607944%3b&scholarName=%e5%88%98%e5%bb%ba%e5%b9%b3|东华大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DHDS|110|0 +1350340|基于ISI Web of Knowledge平台的中国纺织背景高校科研竞争力的计量评价研究|http://www.cnki.com.cn/Article/CJFDTOTAL-DHDZ201403022.htm|周晓鸥,刘建平|15132928,06607944|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15132928%3b06607944%3b&scholarName=%e5%91%a8%e6%99%93%e9%b8%a5|东华大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DHDZ|123|5 +1350340|基于图书借阅的馆藏结构和采购分析——以东华大学图书馆为例|http://www.cnki.com.cn/Article/CJFDTOTAL-SHGT201202017.htm|沈国,刘建平|17478401,06607944|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17478401%3b06607944%3b&scholarName=%e6%b2%88%e5%9b%bd|上海高校图书情报工作研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SHGT|181|2 +1350340|阿尔帕卡纱的开发与研制|http://www.cnki.com.cn/Article/CJFDTOTAL-SFXK200503020.htm|刘建平,吉维泽,黄立勇|06607944,12820025,12820024|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06607944%3b12820025%3b12820024%3b&scholarName=%e5%88%98%e5%bb%ba%e5%b9%b3|上海纺织科技|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SFXK|31|1 +1350340|高被引论文视角下的东华大学学术影响力探析|http://www.cnki.com.cn/Article/CJFDTOTAL-SHGT201401013.htm|周晓鸥,陈惠兰,刘建平|15132928,06598807,06607944|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15132928%3b06598807%3b06607944%3b&scholarName=%e5%91%a8%e6%99%93%e9%b8%a5|上海高校图书情报工作研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SHGT|137|4 +1350340|花式纱线的特征和质量控制|http://www.cnki.com.cn/Article/CJFDTOTAL-JSSZ200606005.htm|杨奇志,刘建平|25851616,06607944|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25851616%3b06607944%3b&scholarName=%e6%9d%a8%e5%a5%87%e5%bf%97|江苏丝绸|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSSZ|89|0 +1350340|纺织纤维试验室空调的温湿度控制|http://www.cnki.com.cn/Article/CJFDTOTAL-JSFA201009025.htm|张如萍,刘建平|24774563,06607944|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24774563%3b06607944%3b&scholarName=%e5%bc%a0%e5%a6%82%e8%90%8d|江苏纺织|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSFA|58|1 +1350340|中国高校图书馆用户网络信息行为研究及其他|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=ZNXX201206008058&dbname=IPFDLAST2016|刘建平,常璐,陈惠兰|06607944,28970562,06598807|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06607944%3b28970562%3b06598807%3b&scholarName=%e5%88%98%e5%bb%ba%e5%b9%b3|||12|0 +1350745|青少年运动员的目的取向和体育道德行为关系研究|http://www.cnki.com.cn/Article/CJFDTOTAL-BJTD200602016.htm|张璐斐,张华光,施小菊|10173914,06667872,06669245|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10173914%3b06667872%3b06669245%3b&scholarName=%e5%bc%a0%e7%92%90%e6%96%90|北京体育大学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJTD|628|27 +1350745|大学生自尊、归因对学业自我设限行为的影响研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GJTA201404031.htm|张璐斐,伍楚娟|10173914|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10173914%3b&scholarName=%e5%bc%a0%e7%92%90%e6%96%90|高教探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GJTA|335|5 +1350745|父母控制与亲子关系的研究综述|http://www.cnki.com.cn/Article/CJFDTOTAL-NLSF201305038.htm|张璐斐,黄勉芝,刘欢|10173914,30051625,30051626|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10173914%3b30051625%3b30051626%3b&scholarName=%e5%bc%a0%e7%92%90%e6%96%90|广西民族师范学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NLSF|720|7 +1350745|青春期父母教育方式的调整与亲子关系|http://www.cnki.com.cn/Article/CJFDTOTAL-JYLL200210014.htm|张璐斐,张琦光,施小菊|10173914,00555345,06669245|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10173914%3b00555345%3b06669245%3b&scholarName=%e5%bc%a0%e7%92%90%e6%96%90|教育理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYLL|1864|58 +1350745|兰开斯特与图书情报学|http://www.cnki.com.cn/Article/CJFDTOTAL-DXTQ201406024.htm|张璐,王明晓|17746721,32039375|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17746721%3b32039375%3b&scholarName=%e5%bc%a0%e7%92%90|大学图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DXTQ|142|2 +1350745|面孔识别的本族效应理论述评|http://www.cnki.com.cn/Article/CJFDTOTAL-XLXD200902007.htm|周国梅,张璐然,曾伟贤|21942079,22163290,22163291|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21942079%3b22163290%3b22163291%3b&scholarName=%e5%91%a8%e5%9b%bd%e6%a2%85|心理科学进展|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XLXD|1727|28 +1350745|亲子教育中的误区|http://www.cnki.com.cn/Article/CJFDTOTAL-KFSD200104026.htm|张璐斐,张琦光|00555345,10173914|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=00555345%3b10173914%3b&scholarName=%e5%bc%a0%e7%92%90%e6%96%90|开放时代|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KFSD|418|13 +1350745|父母控制与村镇初中学生行为的关系研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JYDK201406012.htm|张璐斐,刘欢,张琦光|10173914,30051626,00555345|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10173914%3b30051626%3b00555345%3b&scholarName=%e5%bc%a0%e7%92%90%e6%96%90|教育导刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYDK|166|2 +1350745|目标设定方法在提高体育成绩上的作用|http://www.cnki.com.cn/Article/CJFDTOTAL-GZTX200101032.htm|张璐斐,虞锡芳|10173914,08078281|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10173914%3b08078281%3b&scholarName=%e5%bc%a0%e7%92%90%e6%96%90|广州体育学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GZTX|133|2 +1350745|祖辈管教问题初探|http://www.cnki.com.cn/Article/CJFDTOTAL-SDJK200105005.htm|张璐斐,吴培冠|10173914,10172924|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10173914%3b10172924%3b&scholarName=%e5%bc%a0%e7%92%90%e6%96%90|山东教育科研|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SDJK|224|14 +1350745|营造良好教学环境,培养学生创造力|http://www.cnki.com.cn/Article/CJFDTOTAL-YJSA201401012.htm|黄燕平,张璐婓|31018785,31018786|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31018785%3b31018786%3b&scholarName=%e9%bb%84%e7%87%95%e5%b9%b3|中山大学研究生学刊(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YJSA|119|3 +1350745|基于语义字典构建的中山大学BBS舆情监测研究|http://www.cnki.com.cn/Article/CJFDTOTAL-YJSA201304005.htm|曹效阳,张璐,励敏,姚少群,郑云兰,黄菲|10479903,17746721,30979754,30979755,30979756,30979757|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10479903%3b17746721%3b30979754%3b30979755%3b30979756%3b30979757%3b&scholarName=%e6%9b%b9%e6%95%88%e9%98%b3|中山大学研究生学刊(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YJSA|110|1 +1350745|非主题因素对探索性信息检索的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201503004.htm|邹永利,王明晓,张璐|10483171,32039375,17746721|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10483171%3b32039375%3b17746721%3b&scholarName=%e9%82%b9%e6%b0%b8%e5%88%a9|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|246|0 +1350745|热处理温度对TiO_2纳米管膜层表面特性的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-LCKY201408007.htm|王珂,朱文军,张辉,张璐,王焱|31366198,10010873,10177567,31614998,23048524|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31366198%3b10010873%3b10177567%3b31614998%3b23048524%3b&scholarName=%e7%8e%8b%e7%8f%82|临床口腔医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCKY|80|3 +1350745|青少年行为研究新模式的实证探讨|http://www.cnki.com.cn/Article/CJFDTOTAL-SEEK200201013.htm|张璐斐,吴培冠,马庆强,张琦光|10173914,00555345,10234903,10172924|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10173914%3b00555345%3b10234903%3b10172924%3b&scholarName=%e5%bc%a0%e7%92%90%e6%96%90|教育探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SEEK|353|8 +1350745|热等离子体熔融固化模拟医疗废物的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-HJKZ201206054.htm|张璐,严建华,杜长明,陆胜勇,李晓东|09392008,09351047,11592280,09379162,09330978|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09392008%3b09351047%3b11592280%3b09379162%3b09330978%3b&scholarName=%e5%bc%a0%e7%92%90|环境科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HJKZ|240|10 +1350745|活动能力对维持性血液透析患者死亡率的预测价值|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGJH201204006.htm|张璐,尤黎明,郑晶,梁艳仪,陈念嫦,李英娜,李佛兰,吕少芬|27316493,10482620,10074435,27316494,10175350,10863009,07757287,06922825|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27316493%3b10482620%3b10074435%3b27316494%3b10175350%3b10863009%3b07757287%3b06922825%3b&scholarName=%e5%bc%a0%e7%92%90|中国血液净化|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGJH|112|5 +1350745|体力活动水平对维持性血液透析患者死亡率的预测价值分析|http://www.cnki.com.cn/Article/CJFDTOTAL-NFHL201217015.htm|张璐,尤黎明,郑晶,梁艳仪,陈念嫦,李英娜,李佛兰,吕少芬|27316493,10482620,10074435,27316494,10175350,10863009,07757287,06922825|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27316493%3b10482620%3b10074435%3b27316494%3b10175350%3b10863009%3b07757287%3b06922825%3b&scholarName=%e5%bc%a0%e7%92%90|护理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NFHL|92|7 +1350745|抑郁对维持性血液透析病人死亡率的预测价值|http://www.cnki.com.cn/Article/CJFDTOTAL-SXHZ201212010.htm|张璐,尤黎明,郑晶,梁艳仪,陈念嫦,李英娜,李佛兰,吕少芬|27316493,10482620,10074435,27316494,10175350,10863009,07757287,06922825|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27316493%3b10482620%3b10074435%3b27316494%3b10175350%3b10863009%3b07757287%3b06922825%3b&scholarName=%e5%bc%a0%e7%92%90|护理研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SXHZ|74|4 +1350745|心理测验学技术发展史(述评)|http://www.cnki.com.cn/Article/CJFDTOTAL-JKXL200501028.htm|郑建民,张璐菲,车洪生|21550515,10173913,06368443|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21550515%3b10173913%3b06368443%3b&scholarName=%e9%83%91%e5%bb%ba%e6%b0%91|中国健康心理学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JKXL|955|11 +1350745|酸角的化学成分及生物活性研究现状|http://www.cnki.com.cn/Article/CJFDTOTAL-GWYZ201604029.htm|李维熙,王葳,杨柏荣,张璐,苏薇薇,王文静|22487659,35600915,29270658,35600916,35600917,05973046,10272038|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22487659%3b35600915%3b29270658%3b35600916%3b35600917%3b05973046%3b10272038%3b&scholarName=%e6%9d%8e%e7%bb%b4%e7%86%99|国际药学研究杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GWYZ|309|1 +1350745|运动员的心理技能训练|http://www.cnki.com.cn/Article/CJFDTOTAL-NTXZ200403016.htm|施小菊,张华光,张璐斐|06669245,06667872,10173914|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06669245%3b06667872%3b10173914%3b&scholarName=%e6%96%bd%e5%b0%8f%e8%8f%8a|南京体育学院学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NTXZ|684|26 +1350745|89例糖尿病肾病合并尿路感染的病原菌特点及药敏分析|http://www.cnki.com.cn/Article/CJFDTOTAL-RDYZ200808026.htm|周耀辉,李忠文,张璐,徐巧兰|06809710,06798821,10010378|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06809710%3b06798821%3b10010378%3b&scholarName=%e5%91%a8%e8%80%80%e8%be%89|热带医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/RDYZ|50|2 +1350745|从中国奥运军团的成功之道谈我省九运会对策|http://www.cnki.com.cn/Article/CJFDTOTAL-FUJI200102007.htm|潘前,陈如桦,张璐裴|06659234,10004725,06690619|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06659234%3b10004725%3b06690619%3b&scholarName=%e6%bd%98%e5%89%8d|福建体育科技|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FUJI|19|1 +1350745|对香港青年一代团结引导工作的研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZTYZ200804001014.htm|张璐斐|10173914|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10173914%3b&scholarName=%e5%bc%a0%e7%92%90%e6%96%90|||88|0 +1350745|微胶囊电子墨水显示屏关键技术研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGZU200810001177.htm|邓少芝,陈宇,王喜杜,张璐,许宁生,佘峻聪|10480180,17746719,17746720,17746721,00113066,10071461|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10480180%3b17746719%3b17746720%3b17746721%3b00113066%3b10071461%3b&scholarName=%e9%82%93%e5%b0%91%e8%8a%9d|||126|0 +1350745|微胶囊电泳显示材料黏度对显示薄膜光电性能影响的研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGZU200810001178.htm|张璐,邓少芝,许宁生,陈宇|17746721,10480180,00113066,17746719|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17746721%3b10480180%3b00113066%3b17746719%3b&scholarName=%e5%bc%a0%e7%92%90|||66|0 +1350745|大学新生应对方式的研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGXQ200405001101.htm|张璐斐|10173914|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10173914%3b&scholarName=%e5%bc%a0%e7%92%90%e6%96%90|||103|0 +1350745|热处理温度对TiO_2纳米管膜层表面特性的影响|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-HZKQ201511001015.htm|王珂,朱文军,张辉,张璐,王焱|34998971,31366198,10010873,10177567,31614998,23048524|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34998971%3b31366198%3b10010873%3b10177567%3b31614998%3b23048524%3b&scholarName=%e7%8e%8b%e7%8f%82|||4|0 +1350745|黄鳍鲷幼鱼对蛋氨酸的适宜需求量|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=YXYY201311001037&dbname=IPFD9914|肖伟平,田丽霞,刘永坚,张璐|30243836,10482285,10172220,05975280,29187858|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30243836%3b10482285%3b10172220%3b05975280%3b29187858%3b&scholarName=%e8%82%96%e4%bc%9f%e5%b9%b3|||31|0 +1360371|基于文献的哈萨克医药现状可视化分析|http://www.cnki.com.cn/Article/CJFDTOTAL-XXYY201711021.htm|杨文军,毛晓峰,张予涵,梅拉·哈万|31220801,28349190,27403877,23629000|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31220801%3b28349190%3b27403877%3b23629000%3b&scholarName=%e6%9d%a8%e6%96%87%e5%86%9b|中国中医药信息杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XXYY|44|2 +1360371|VEGF、EGFR、p16在唇癌与口腔鳞癌中的表达及临床意义|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHKY200202009.htm|杨文军,林兆全,李良忠,张国山|10247143,10247644,09278227|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10247143%3b10247644%3b09278227%3b&scholarName=%e6%9d%a8%e6%96%87%e5%86%9b|中华口腔医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHKY|164|20 +1360371|应用跨平台工具PhoneGap开发移动图书馆|http://www.cnki.com.cn/Article/CJFDTOTAL-LYTS201407004.htm|杨文军|31220801|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31220801%3b&scholarName=%e6%9d%a8%e6%96%87%e5%86%9b|农业图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LYTS|86|3 +1360371|全媒体视阈下图书馆创新服务模式研究——以新疆医科大学图书馆为例|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB2016S1023.htm|张予涵,杨文军|27403877,31220801|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27403877%3b31220801%3b&scholarName=%e5%bc%a0%e4%ba%88%e6%b6%b5|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|207|1 +1360371|图书馆情报服务在高校人才核心竞争力的评价中的作用研究|http://www.cnki.com.cn/Article/CJFDTOTAL-LYTS201803047.htm|张予涵,杨文军|27403877,31220801|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27403877%3b31220801%3b&scholarName=%e5%bc%a0%e4%ba%88%e6%b6%b5|农业图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LYTS|32|0 +1360371|图书馆的办公插上“云的翅膀”|http://www.cnki.com.cn/Article/CJFDTOTAL-FJDN201404004.htm|杨文军|31220801|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31220801%3b&scholarName=%e6%9d%a8%e6%96%87%e5%86%9b|福建电脑|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJDN|20|0 +1360371|面向医教研信息共享的医学高校图书馆情报服务应用研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZYTQ201603011.htm|张予涵,杨文军|27403877,31220801|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27403877%3b31220801%3b&scholarName=%e5%bc%a0%e4%ba%88%e6%b6%b5|中国中医药图书情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZYTQ|61|2 +1360371|血管内皮生长因子及受体与肿瘤研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-XJYY200004038.htm|杨文军,王兵,林兆全|10247143,09239041|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10247143%3b09239041%3b&scholarName=%e6%9d%a8%e6%96%87%e5%86%9b|新疆医科大学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XJYY|34|0 +1360371|全媒体视阈下高校图书馆情报创新服务模式研究——以新疆医科大学为例|http://www.cnki.com.cn/Article/CJFDTOTAL-QBGC201601010.htm|张予涵,杨文军|27403877,31220801|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27403877%3b31220801%3b&scholarName=%e5%bc%a0%e4%ba%88%e6%b6%b5|情报工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBGC|46|0 +1360371|高校医学硕博学位论文的开发利用研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZXLJ201536128.htm|汪芳,徐姗姗,杨文军|27176273,34892668,31220801|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27176273%3b34892668%3b31220801%3b&scholarName=%e6%b1%aa%e8%8a%b3|科技资讯|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZXLJ|33|1 +1360371|维吾尔族口腔鳞癌HPV感染及p53、PCNA表达及临床病理学意义|http://www.cnki.com.cn/Article/CJFDTOTAL-XJYY200103005.htm|林兆全,李良忠,杨文军,郅克谦,刘楠,张国山|10247644,10247143,10245999,11157125,03470879,09278227|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10247644%3b10247143%3b10245999%3b11157125%3b03470879%3b09278227%3b&scholarName=%e6%9e%97%e5%85%86%e5%85%a8|新疆医科大学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XJYY|43|4 +1360371|60例腭裂治疗的临床分析|http://www.cnki.com.cn/Article/CJFDTOTAL-XJYI200103021.htm|吴佩玲,尼加提,杨文军,潘祖贺,刘海霞|09273784,10247143,09239027,09283411,09273750|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09273784%3b10247143%3b09239027%3b09283411%3b09273750%3b&scholarName=%e5%90%b4%e4%bd%a9%e7%8e%b2|新疆医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XJYI|9|0 +1361804|“以房养老”模式在中国受挫的原因及其政策建议研究|http://www.cnki.com.cn/Article/CJFDTOTAL-LDBL201306146.htm|刘楠楠|28523656|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28523656%3b&scholarName=%e5%88%98%e6%a5%a0%e6%a5%a0|劳动保障世界(理论版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LDBL|1994|32 +1361804|关于我国当前延迟退休年龄的探讨|http://www.cnki.com.cn/Article/CJFDTOTAL-CYYT201219031.htm|刘楠楠|28523656|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28523656%3b&scholarName=%e5%88%98%e6%a5%a0%e6%a5%a0|产业与科技论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CYYT|529|6 +1361804|中国延迟退休制度改革研究|http://cdmd.cnki.com.cn/Article/CDMD-10075-1014040147.htm|刘楠楠|28523656|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28523656%3b&scholarName=%e5%88%98%e6%a5%a0%e6%a5%a0|||1052|8 +1361804|投资项目后评价方法及应用研究|http://cdmd.cnki.com.cn/Article/CDMD-10075-1014040059.htm|刘楠楠|28523656|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28523656%3b&scholarName=%e5%88%98%e6%a5%a0%e6%a5%a0|||417|8 +1361804|H高校固定资产管理研究|http://cdmd.cnki.com.cn/Article/CDMD-10075-1015956886.htm|刘楠楠|28523656|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28523656%3b&scholarName=%e5%88%98%e6%a5%a0%e6%a5%a0|||411|0 +1361804|移动互联网环境下大学生信息查寻行为研究|http://cdmd.cnki.com.cn/Article/CDMD-10075-1015956926.htm|刘楠楠|28523656|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28523656%3b&scholarName=%e5%88%98%e6%a5%a0%e6%a5%a0|||325|6 +1371018|中国传统经典家训词频统计与分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQC201503007.htm|郑秀花|30617085|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30617085%3b&scholarName=%e9%83%91%e7%a7%80%e8%8a%b1|图书情报知识|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQC|636|4 +1371018|图书情报学学术学位与专业学位研究生培养协调机制研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGJ201312002.htm|蒋永福,郑秀花|07281259,30617085|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07281259%3b30617085%3b&scholarName=%e8%92%8b%e6%b0%b8%e7%a6%8f|图书馆建设|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGJ|167|3 +1371018|农村居民信息需求与农村图书馆服务研究——来自齐齐哈尔农村的田野调查|http://www.cnki.com.cn/Article/CJFDTOTAL-KJQB201503002.htm|马红,王瑛琦,郑秀花|32327216,30152706,30617085|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32327216%3b30152706%3b30617085%3b&scholarName=%e9%a9%ac%e7%ba%a2|科技情报开发与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJQB|97|0 +1371018|中国传统家训家规词频分析|http://cdmd.cnki.com.cn/Article/CDMD-10212-1015374053.htm|郑秀花|30617085|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30617085%3b&scholarName=%e9%83%91%e7%a7%80%e8%8a%b1|||397|3 +1378155|建立图书馆志愿服务长效机制的实践与探索——以济源市图书馆为例|http://www.cnki.com.cn/Article/CJFDTOTAL-NYHN201806022.htm|王爱品|36451439|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36451439%3b&scholarName=%e7%8e%8b%e7%88%b1%e5%93%81|河南农业|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NYHN|44|0 +1378155|基于“21天阅读挑战”的亲子阅读推广初探——以《济源晨报》“21天阅读挑战”活动为例|http://www.cnki.com.cn/Article/CJFDTOTAL-JCLT201728022.htm|王爱品|36451439,37962256|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36451439%3b37962256%3b&scholarName=%e7%8e%8b%e7%88%b1%e5%93%81|基础教育论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JCLT|38|0 +1378155|家园共育促进幼儿早期阅读习惯的养成——以济源市第一幼儿园中三班为例|http://www.cnki.com.cn/Article/CJFDTOTAL-JYYC201608025.htm|王爱品|36451439|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36451439%3b&scholarName=%e7%8e%8b%e7%88%b1%e5%93%81|教育实践与研究(C)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYYC|39|1 +1386494|陕西省“新生代”农民工信息需求实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-BJJG201302012.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|国家图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJJG|419|13 +1386494|维吾尔族民众社会融合信息需求影响因素实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201712018.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|268|0 +1386494|新疆少数民族农村青年社会融合信息需求实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201610007.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|297|2 +1386494|陕西农民信息需求现状及影响因素分析|http://www.cnki.com.cn/Article/CJFDTOTAL-NLXS201305010.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|西北农林科技大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NLXS|293|14 +1386494|图书馆2.0背景下馆员心理契约研究——基于陕西省高校图书馆员的调查与分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201302003.htm|井水,李静|10167559,27981587|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b27981587%3b&scholarName=%e4%ba%95%e6%b0%b4|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|304|8 +1386494|陕西省图书馆联盟现状调查及评测|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQC201205011.htm|井水,安娜|10167559,09085755|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b09085755%3b&scholarName=%e4%ba%95%e6%b0%b4|图书情报知识|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQC|281|6 +1386494|基于信息公平视角的女性农民工信息需求研究——以陕西新生代女性农民工为例|http://www.cnki.com.cn/Article/CJFDTOTAL-GXTG201602011.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|高校图书馆工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GXTG|137|3 +1386494|高校图书馆员组织支持感的调查与分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGJ201208022.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|图书馆建设|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGJ|231|9 +1386494|图书馆2.0背景下领导成员交换关系、组织支持感对高校图书馆员创新行为影响的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-LSGL201412003.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|图书馆理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LSGL|236|3 +1386494|图书馆2.0:理想与现实的羁绊——基于陕西省高校图书馆员对图书馆2.0的认知调研与分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGT201301019.htm|井水,安娜|10167559,09085755|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b09085755%3b&scholarName=%e4%ba%95%e6%b0%b4|图书馆|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGT|253|2 +1386494|高校图书馆员心理契约违背与重建研究——陕西省高校图书馆员实证调研与分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGJ201211021.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|图书馆建设|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGJ|211|2 +1386494|图书馆2.0背景下高校图书馆女性馆员组织支持感研究|http://www.cnki.com.cn/Article/CJFDTOTAL-LYTS201503052.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|农业图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LYTS|97|0 +1386494|“云”存储——高校图书馆存储系统的新“革命”|http://www.cnki.com.cn/Article/CJFDTOTAL-LYTS201207004.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|农业图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LYTS|70|4 +1386494|Lib2.0下“柴门霍夫效应”对创新人才的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-YXTS201308011.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|中华医学图书情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXTS|42|1 +1386494|西部地区农业发展的特点及其出路|http://www.cnki.com.cn/Article/CJFDTOTAL-NLXS200303018.htm|井水,张海涛,王丽英,夏绪梅|10167559,09058682,09058961,09086483|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b09058682%3b09058961%3b09086483%3b&scholarName=%e4%ba%95%e6%b0%b4|西北农林科技大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NLXS|102|4 +1386494|谈陕西省高校图书馆特色数据库发展现状与前景|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ200505045.htm|安娜,井水|10167559,09085755|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b09085755%3b&scholarName=%e5%ae%89%e5%a8%9c|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|288|15 +1386494|图书馆2.0背景下高校图书馆员心理契约违背解析|http://www.cnki.com.cn/Article/CJFDTOTAL-LYTS201502022.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|农业图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LYTS|69|0 +1386494|西部地方高校数字图书馆建设实证研究——以西安财经学院为例|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGX201303040.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGX|95|0 +1386494|浅议高校图书馆存储系统|http://www.cnki.com.cn/Article/CJFDTOTAL-XDQB201207008.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|现代情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDQB|86|1 +1386494|Lib2.0下高校图书馆工会组织支持感实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-HNTX201408019.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|河南图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HNTX|54|0 +1386494|陕西省公共图书馆服务联盟现状调查及绩效评测|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201216019.htm|安娜,井水|09085755,10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09085755%3b10167559%3b&scholarName=%e5%ae%89%e5%a8%9c|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|185|1 +1386494|图书馆2.0背景下高校图书馆员的心理契约|http://www.cnki.com.cn/Article/CJFDTOTAL-HKTY201402013.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|河北科技图苑|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HKTY|50|0 +1386494|试论Lib2.0背景下创新人才的成长瓶颈|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGU201401009.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|图书馆界|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGU|36|0 +1386494|试论数字化背景下高校图书馆与院系资料室的整合及分工|http://www.cnki.com.cn/Article/CJFDTOTAL-KJQB201120024.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|科技情报开发与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJQB|54|1 +1386494|浅议利用CASHL推动西北地区高校图书馆文献资源共享建设|http://www.cnki.com.cn/Article/CJFDTOTAL-SHAA201202013.htm|井水,安娜|10167559,09085755|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b09085755%3b&scholarName=%e4%ba%95%e6%b0%b4|陕西教育学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SHAA|43|0 +1386494|浅谈云计算和Ajax对高校电子阅览室的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZXLJ201120009.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|科技资讯|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZXLJ|93|1 +1386494|浅谈图书馆建设中环境文化的育人功能|http://www.cnki.com.cn/Article/CJFDTOTAL-NMKJ201115054.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|内蒙古科技与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NMKJ|81|1 +1386494|依托CASHL推动西北地区高校文献资源共享建设|http://www.cnki.com.cn/Article/CJFDTOTAL-KJNJ201108070.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|内江科技|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJNJ|55|2 +1386494|浅谈新时期高校图书馆工会维权问题|http://www.cnki.com.cn/Article/CJFDTOTAL-BJJJ201109061.htm|井水|10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b&scholarName=%e4%ba%95%e6%b0%b4|边疆经济与文化|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJJJ|41|0 +1386494|“云”计算下高校图书馆电子阅览室的定位和思考|http://www.cnki.com.cn/Article/CJFDTOTAL-ELEW201211020.htm|高秦,井水|27654039,10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27654039%3b10167559%3b&scholarName=%e9%ab%98%e7%a7%a6|电子世界|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ELEW|83|0 +1386494|从两家数据库看陕西省高校图书馆CALIS的建设|http://www.cnki.com.cn/Article/CJFDTOTAL-SHAA200502031.htm|安娜,井水|10167559,09085755|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10167559%3b09085755%3b&scholarName=%e5%ae%89%e5%a8%9c|陕西教育学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SHAA|57|0 +1386494|陕西省小城镇发展研究|http://www.cnki.com.cn/Article/CJFDTOTAL-NLXS200903018.htm|井水,王礼力|22454090,10167559,09122694|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22454090%3b10167559%3b09122694%3b&scholarName=%e4%ba%95%e6%b0%b4|西北农林科技大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NLXS|174|4 +1386494|高校图书馆“快乐文化”体系构建研究|http://www.cnki.com.cn/Article/CJFDTOTAL-LYTS201612029.htm|邹薇,井水|35989187,10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35989187%3b10167559%3b&scholarName=%e9%82%b9%e8%96%87|农业图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LYTS|35|0 +1386494|高校图书馆“快乐文化”体系构建研究|http://www.cnki.com.cn/Article/CJFDTOTAL-LYTS201611032.htm|邹薇,井水|35989187,10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35989187%3b10167559%3b&scholarName=%e9%82%b9%e8%96%87|农业图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LYTS|22|0 +1386494|囚徒困境视角下的图书馆联盟实施策略研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBTS201406034.htm|李静,井水|27981587,10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27981587%3b10167559%3b&scholarName=%e6%9d%8e%e9%9d%99|情报探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBTS|65|1 +1386494|西安新生代农民工社会融合信息需求与服务对策研究|http://www.cnki.com.cn/Article/CJFDTOTAL-DDTS201601006.htm|樊露露,井水|23391180,10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23391180%3b10167559%3b&scholarName=%e6%a8%8a%e9%9c%b2%e9%9c%b2|当代图书馆|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DDTS|87|2 +1386494|乌鲁木齐市维吾尔族农民工城市融入中信息短缺问题研究|http://www.cnki.com.cn/Article/CJFDTOTAL-HKTY201602011.htm|樊露露,井水|23391180,10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23391180%3b10167559%3b&scholarName=%e6%a8%8a%e9%9c%b2%e9%9c%b2|河北科技图苑|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HKTY|34|1 +1386494|加快陕西县域经济改革的主要思路和对策|http://www.cnki.com.cn/Article/CJFDTOTAL-SNKX200502031.htm|袁建岐,井水|09141406,10167559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09141406%3b10167559%3b&scholarName=%e8%a2%81%e5%bb%ba%e5%b2%90|陕西农业科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SNKX|117|1 +1415103|国外医学院校图书馆公益性服务现状研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GXTG201502018.htm|刘妮波,王春峰,郝彧,刘毅|30035447,28752774,23311325,15525845|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30035447%3b28752774%3b23311325%3b15525845%3b&scholarName=%e5%88%98%e5%a6%ae%e6%b3%a2|高校图书馆工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GXTG|159|7 +1415103|基于文献计量学的过敏性鼻炎国内研究定量分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JLYB201312022.htm|刘妮波,袁卫玲,张波,杨冬,李媛媛|30035447,22350104,20737285,30575673,27177097|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30035447%3b22350104%3b20737285%3b30575673%3b27177097%3b&scholarName=%e5%88%98%e5%a6%ae%e6%b3%a2|医学研究生学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLYB|164|3 +1415103|过敏性鼻炎专利技术形态分析|http://www.cnki.com.cn/Article/CJFDTOTAL-YYCY201532041.htm|刘妮波,袁卫玲|30035447,22350104|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30035447%3b22350104%3b&scholarName=%e5%88%98%e5%a6%ae%e6%b3%a2|中国医药导报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YYCY|120|0 +1415103|《中图法》网络版研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GXTG201306014.htm|刘妮波|30035447|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30035447%3b&scholarName=%e5%88%98%e5%a6%ae%e6%b3%a2|高校图书馆工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GXTG|136|1 +1415103|基于CNKI数据库对真实世界研究临床应用的文献计量学分析|http://www.cnki.com.cn/Article/CJFDTOTAL-HNZB201713026.htm|高毅超,刘妮波,郝彧,韩素恒,曹珊,赵紫薇,张文浩,王泓午|28340798,30035447,23311325,26916768,34345810,32576148,37165883,08956298|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28340798%3b30035447%3b23311325%3b26916768%3b34345810%3b32576148%3b37165883%3b08956298%3b&scholarName=%e9%ab%98%e6%af%85%e8%b6%85|中医药导报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HNZB|206|2 +1415103|中医药治疗特发性肺纤维化的文献计量学分析|http://www.cnki.com.cn/Article/CJFDTOTAL-HNZB201613022.htm|韩素恒,刘妮波,郝彧,曹姗,赵紫薇,王泓午|26916768,30035447,23311325,28729728,32576148,08956298|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26916768%3b30035447%3b23311325%3b28729728%3b32576148%3b08956298%3b&scholarName=%e9%9f%a9%e7%b4%a0%e6%81%92|中医药导报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HNZB|168|4 +1415103|2013年中国临床神经内科学发展现状文献分析|http://www.cnki.com.cn/Article/CJFDTOTAL-NMKJ201504067.htm|刘妮波,王春峰,李迎斌,思金华,杨勇,路延莉|30035447,28752774,32327217,23694730,32709740,32709741|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30035447%3b28752774%3b32327217%3b23694730%3b32709740%3b32709741%3b&scholarName=%e5%88%98%e5%a6%ae%e6%b3%a2|内蒙古科技与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NMKJ|70|1 +1415103|基于SCIE和GoPubMed的针灸学文献统计分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGZE201512053.htm|思金华,赵晨,刘妮波,商洪才|23694730,32953990,30035447,32440649|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23694730%3b32953990%3b30035447%3b32440649%3b&scholarName=%e6%80%9d%e9%87%91%e5%8d%8e|中国针灸|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGZE|246|7 +1415103|气象因素与过敏性鼻炎发病相关性研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-BXYY201407062.htm|刘丹,史丽萍,袁卫玲,杨东,刘妮波|25803845,11409103,22350104,15714901,30035447|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25803845%3b11409103%3b22350104%3b15714901%3b30035447%3b&scholarName=%e5%88%98%e4%b8%b9|中华中医药杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BXYY|797|16 +1415103|数字环境下高校图书馆学生阅读倾向性研究——以天津中医药大学图书馆为例|http://www.cnki.com.cn/Article/CJFDTOTAL-KJQB201404017.htm|刘妮波,陈柳,王春峰|30035447,26526945,28752774|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30035447%3b26526945%3b28752774%3b&scholarName=%e5%88%98%e5%a6%ae%e6%b3%a2|科技情报开发与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJQB|47|0 +1415103|医学院校图书馆数字资源社会化服务的调查分析|http://www.cnki.com.cn/Article/CJFDTOTAL-YXTS201410008.htm|王春峰,刘毅,张恒娟,刘妮波|28752774,15525845,23366993,30035447|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28752774%3b15525845%3b23366993%3b30035447%3b&scholarName=%e7%8e%8b%e6%98%a5%e5%b3%b0|中华医学图书情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXTS|75|5 +1415103|天津高校图书馆特色数据库建设现状与发展策略研究|http://www.cnki.com.cn/Article/CJFDTOTAL-KJQB201510064.htm|李迎斌,刘妮波,王春峰|32327217,30035447,28752774|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32327217%3b30035447%3b28752774%3b&scholarName=%e6%9d%8e%e8%bf%8e%e6%96%8c|科技情报开发与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJQB|65|1 +1415103|医学院校图书馆健康信息资源公益性开发研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGG201407015.htm|刘毅,郝彧,常飞,刘妮波,张恒娟|15525845,23311325,29437847,30035447,23366993|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15525845%3b23311325%3b29437847%3b30035447%3b23366993%3b&scholarName=%e5%88%98%e6%af%85|图书馆工作与研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGG|237|2 +1415103|谈抄本中医药古籍的欣赏与修复|http://www.cnki.com.cn/Article/CJFDTOTAL-ZYTQ201504017.htm|史宝友,刘妮波,王淼,韩赫宇|23696500,30035447,30822110,15282770|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23696500%3b30035447%3b30822110%3b15282770%3b&scholarName=%e5%8f%b2%e5%ae%9d%e5%8f%8b|中国中医药图书情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZYTQ|78|0 +1415103|高校图书馆网站建设浅析——以天津中医药大学图书馆为例|http://www.cnki.com.cn/Article/CJFDTOTAL-KJQB201320006.htm|王春峰,刘妮波|28752774,30035447|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28752774%3b30035447%3b&scholarName=%e7%8e%8b%e6%98%a5%e5%b3%b0|科技情报开发与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJQB|65|0 +1415103|高校图书馆个性化定制服务若干问题研究|http://www.cnki.com.cn/Article/CJFDTOTAL-NMKJ201511060.htm|李迎斌,刘丽萍,刘妮波|32327217,25009214,30035447|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32327217%3b25009214%3b30035447%3b&scholarName=%e6%9d%8e%e8%bf%8e%e6%96%8c|内蒙古科技与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NMKJ|29|1 +1415103|国外肝纤维化诊断的研究热点分析|http://www.cnki.com.cn/Article/CJFDTOTAL-SDYD201601017.htm|张弘,陶森,郝彧,赵紫薇,刘妮波,王泓午|29931860,10941137,23311325,32576148,30035447,08956298|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29931860%3b10941137%3b23311325%3b32576148%3b30035447%3b08956298%3b&scholarName=%e5%bc%a0%e5%bc%98|首都医科大学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SDYD|472|14 +1421495|面向疾病相关关联抽取的深度语义特征研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JSGG201808043.htm|康旭琴,吴偶,王磊,张音,杨帅|36787661,39048012,21059465,21043267,36787662|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36787661%3b39048012%3b21059465%3b21043267%3b36787662%3b&scholarName=%e5%ba%b7%e6%97%ad%e7%90%b4|计算机工程与应用|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSGG|77|0 +1421495|科学数据管理和数据馆员的发展及关键问题|http://www.cnki.com.cn/Article/CJFDTOTAL-YXTS201605001.htm|康旭琴,陈锐,程瑾,李芳薇|34925275,26185914,26185915,34925276|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34925275%3b26185914%3b26185915%3b34925276%3b&scholarName=%e5%ba%b7%e6%97%ad%e7%90%b4|中华医学图书情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXTS|259|3 +1421495|疾病相关基因-药物关联抽取规程设计|http://www.cnki.com.cn/Article/CJFDTOTAL-WSGL201802010.htm|康旭琴,张音,杨帅,王磊|36787661,21043267,36787662,21059465|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36787661%3b21043267%3b36787662%3b21059465%3b&scholarName=%e5%ba%b7%e6%97%ad%e7%90%b4|中国卫生信息管理杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WSGL|23|0 +1421495|北京精准医学研究现状及对策建议|http://www.cnki.com.cn/Article/CJFDTOTAL-WJYX201707032.htm|杨帅,康旭琴,张音,王磊|36787662,36787661,21043267,21059465|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36787662%3b36787661%3b21043267%3b21059465%3b&scholarName=%e6%9d%a8%e5%b8%85|武警医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WJYX|120|0 +1421598|基于相关性的跨模态信息检索研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201601005.htm|丁恒,陆伟|28598069,09006361|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28598069%3b09006361%3b&scholarName=%e4%b8%81%e6%81%92|现代图书情报技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|393|4 +1421598|医学图像模态特征表达及其比较研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201612007.htm|丁恒,陆伟,林霞,曹光超|28598069,09006361,34548049,36628479|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28598069%3b09006361%3b34548049%3b36628479%3b&scholarName=%e4%b8%81%e6%81%92|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|138|2 +1421598|基于情感的图像检索研究综述|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201302027.htm|陆泉,丁恒|08985964,28598069|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08985964%3b28598069%3b&scholarName=%e9%99%86%e6%b3%89|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|967|16 +1421598|深度学习图像标注与用户标注比较研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201805001.htm|陆伟,罗梦奇,丁恒,李信||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e9%99%86%e4%bc%9f|数据分析与知识发现|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|317|0 +1421598|论国家赔偿中的精神损害赔偿制度|http://www.cnki.com.cn/Article/CJFDTOTAL-FZSL201026081.htm|丁恒越|24872255|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24872255%3b&scholarName=%e4%b8%81%e6%81%92%e8%b6%8a|法制与社会|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FZSL|767|4 +1421598|基于标签语义距离的图像多样化检索|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201702008.htm|张震宇,丁恒,王瑞雪,陆伟|09016186,28598069,36810292,09006361|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09016186%3b28598069%3b36810292%3b09006361%3b&scholarName=%e5%bc%a0%e9%9c%87%e5%ae%87|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|103|0 +1421598|论法学专业学生如何通过国家司法考试|http://www.cnki.com.cn/Article/CJFDTOTAL-KJDS201101025.htm|丁恒越|24872255|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24872255%3b&scholarName=%e4%b8%81%e6%81%92%e8%b6%8a|科教导刊(上旬刊)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJDS|279|1 +1421598|基于图像语义的用户兴趣建模|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201704012.htm|曾金,陆伟,丁恒,陈海华|37407257,37407258,09006361,28598069,29467161|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37407257%3b37407258%3b09006361%3b28598069%3b29467161%3b&scholarName=%e6%9b%be%e9%87%91|数据分析与知识发现|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|205|0 +1421598|查询专指度对检索效果的影响研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201611005.htm|任珂,陆伟,丁恒|09007895,09006361,28598069|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09007895%3b09006361%3b28598069%3b&scholarName=%e4%bb%bb%e7%8f%82|现代图书情报技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|111|1 +1421598|基于社会标签的图像情感自动分类标注研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201412024.htm|陆泉,陈静,丁恒|08985964,07624450,28598069|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08985964%3b07624450%3b28598069%3b&scholarName=%e9%99%86%e6%b3%89|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|452|3 +1421598|高校独立学院法学教学改革问题研究——以劳动法学为视角|http://www.cnki.com.cn/Article/CJFDTOTAL-XDSM201024168.htm|丁恒越|24872255|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24872255%3b&scholarName=%e4%b8%81%e6%81%92%e8%b6%8a|现代商贸工业|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDSM|93|1 +1421598|标准文献知识服务系统设计与实现|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ2016Z1015.htm|丁恒,陆伟|28598069,09006361|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28598069%3b09006361%3b&scholarName=%e4%b8%81%e6%81%92|现代图书情报技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|262|4 +1424951|“新制造”产业集群将涌现 未来大规模工业片区可能不会存在|http://xuewen.cnki.net/CCND-SJBD201805140120.html|卢常乐||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%8d%a2%e5%b8%b8%e4%b9%90|||8|0 +1424951|于佳宁:发展区块链需与实体经济相结合|http://www.cnki.com.cn/Article/CJFDTOTAL-JJYI201812020.htm|黄芳芳||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e9%bb%84%e8%8a%b3%e8%8a%b3|经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JJYI|37|0 +1424951|应充分发挥区块链引导资金“脱虚向实”功能|http://xuewen.cnki.net/CCND-CJRB20181024B030.html|邢萌||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e9%82%a2%e8%90%8c|||0|0 +1424951|无意于佳与有意于佳──试析书法创作的两种方式|http://www.cnki.com.cn/Article/CJFDTOTAL-GSXB199901005.htm|张克锋|06725607|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06725607%3b&scholarName=%e5%bc%a0%e5%85%8b%e9%94%8b|甘肃教育学院学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GSXB|55|0 +1424951|谢无量:践行“无意于佳乃佳”的书法大家|http://www.cnki.com.cn/Article/CJFDTOTAL-ZJWX201709016.htm|王谦||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e7%8e%8b%e8%b0%a6|传记文学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZJWX|10|0 +1424951|对书法创作中“有意于佳”与“无意于佳”的思考|http://www.cnki.com.cn/Article/CJFDTOTAL-JDNS200201020.htm|马俊青|08872601|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08872601%3b&scholarName=%e9%a9%ac%e4%bf%8a%e9%9d%92|晋东南师范专科学校学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JDNS|65|0 +1424951|无意于佳乃佳|http://xuewen.cnki.net/CCND-ZGXX201012030040.html||||||16|0 +1424951|“无意于佳乃佳”在苏轼书法中的体现|http://www.cnki.com.cn/Article/CJFDTOTAL-SHUH201209010.htm|陈宁|27903393|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27903393%3b&scholarName=%e9%99%88%e5%ae%81|中国书画|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SHUH|210|0 +1424951|从“无意于佳乃佳”谈“无为”思想影响下的古典文艺创作|http://www.cnki.com.cn/Article/CJFDTOTAL-SXWL201206022.htm|王晓亮|28367793|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28367793%3b&scholarName=%e7%8e%8b%e6%99%93%e4%ba%ae|绍兴文理学院学报(哲学社会科学)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SXWL|49|1 +1424951|书无意于佳乃佳尔——苏轼《黄州寒食诗帖》鉴赏|http://www.cnki.com.cn/Article/CJFDTOTAL-MSHU200608022.htm|张国宏|08539186|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08539186%3b&scholarName=%e5%bc%a0%e5%9b%bd%e5%ae%8f|秘书|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/MSHU|381|0 +1424951|推动中国制造迈向中高端|http://xuewen.cnki.net/CCND-JJRB201712230044.html|黄鑫||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e9%bb%84%e9%91%ab|||3|0 +1424951|无意于佳乃佳——试论稿书涂改的审美意义|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGXE201207037.htm|吴胜|11229815|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11229815%3b&scholarName=%e5%90%b4%e8%83%9c|中国书法|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGXE|36|1 +1424951|无意于佳乃佳——黄庭坚的《花气薰人帖》赏读|http://www.cnki.com.cn/Article/CJFDTOTAL-LLJY201611023.htm|衣铭||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e8%a1%a3%e9%93%ad|老年教育(书画艺术)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LLJY|40|0 +1424951|释“无意于佳乃佳”|http://www.cnki.com.cn/Article/CJFDTOTAL-HGXB200801002.htm|杨疾超|07652015|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07652015%3b&scholarName=%e6%9d%a8%e7%96%be%e8%b6%85|黄冈师范学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HGXB|141|0 +1424951|论书法创作中的“无意于佳乃佳”与“无法之法”|http://www.cnki.com.cn/Article/CJFDTOTAL-GLJY200203005.htm|谢光辉|12350431|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=12350431%3b&scholarName=%e8%b0%a2%e5%85%89%e8%be%89|桂林师范高等专科学校学报(综合版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GLJY|150|1 +1438350|社交网络平台非正式科学交流的探讨——基于Evolutionary Biology学科Altmetrics数据计量|http://www.cnki.com.cn/Article/CJFDTOTAL-KXYJ201806007.htm|张立伟,陈悦,刘则渊,严方笠|06536140,06520963,06505316,34350127|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06536140%3b06520963%3b06505316%3b34350127%3b&scholarName=%e5%bc%a0%e7%ab%8b%e4%bc%9f|科学学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KXYJ|311|0 +1438350|期刊公众账号对学术文献社会传播的推动作用分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201809010.htm|张立伟,陈悦,刘则渊,徐芳|06536140,06520963,06505316,36607670|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06536140%3b06520963%3b06505316%3b36607670%3b&scholarName=%e5%bc%a0%e7%ab%8b%e4%bc%9f|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|77|0 +1438350|图书情报学高被引论文引用现象的实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201416025.htm|张立伟,姜春林,刘学,陈悦|06536140,06502314,24932382,06520963|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06536140%3b06502314%3b24932382%3b06520963%3b&scholarName=%e5%bc%a0%e7%ab%8b%e4%bc%9f|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|603|18 +1438350|世界科学学的序曲——波兰学者对科学学的重要贡献|http://www.cnki.com.cn/Article/CJFDTOTAL-KXYJ201701002.htm|陈悦,张立伟,刘则渊|06520963,06536140,06505316|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06520963%3b06536140%3b06505316%3b&scholarName=%e9%99%88%e6%82%a6|科学学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KXYJ|245|2 +1438350|SNS环境下无形学院的结构与特点透视——以科学网武夷山博客为例|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201509014.htm|陈悦,张立伟,杨阳,刘盛博|06520963,06536140,17303211,17380313|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06520963%3b06536140%3b17303211%3b17380313%3b&scholarName=%e9%99%88%e6%82%a6|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|318|4 +1438350|基于可视化技术的国外同行评议研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-KXXG201312005.htm|姜春林,张立伟,孙军卫|06502314,06536140,27207904|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06502314%3b06536140%3b27207904%3b&scholarName=%e5%a7%9c%e6%98%a5%e6%9e%97|科学学与科学技术管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KXXG|640|12 +1438350|编委学术表现与期刊质量的相关性探讨——基于图书情报学期刊的文献计量研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201409006.htm|张立伟,姜春林|06536140,06502314|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06536140%3b06502314%3b&scholarName=%e5%bc%a0%e7%ab%8b%e4%bc%9f|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|296|17 +1438350|学术期刊核心编委群体识别和测度——以管理学CSSCI期刊为例|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201410002.htm|张立伟,姜春林,刘盛博,刘学|06536140,06502314,17380313,24932382|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06536140%3b06502314%3b17380313%3b24932382%3b&scholarName=%e5%bc%a0%e7%ab%8b%e4%bc%9f|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|285|9 +1438350|一种用于测量SiO_2薄膜热导率的测试方法|http://www.cnki.com.cn/Article/CJFDTOTAL-IKJS200108008.htm|张立伟,马灵芝,唐祯安,蒋国平||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%bc%a0%e7%ab%8b%e4%bc%9f|测控技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/IKJS|249|8 +1438350|科学计量方法辅助代表作评价的探讨|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZL201403008.htm|姜春林,张立伟,张春博|06502314,06536140,21632401|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06502314%3b06536140%3b21632401%3b&scholarName=%e5%a7%9c%e6%98%a5%e6%9e%97|情报资料工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZL|265|3 +1438350|学术评价:同行评议抑或科学计量|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGDJ2014Z3009.htm|姜春林,张立伟|06502314,06536140|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06502314%3b06536140%3b&scholarName=%e5%a7%9c%e6%98%a5%e6%9e%97|中国高等教育|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGDJ|428|5 +1438350|中文高被引期刊论文的参考文献也倾向于高被引吗?——以图书情报学为例|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201501021.htm|姜春林,刘学,张立伟|06502314,24932382,06536140|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06502314%3b24932382%3b06536140%3b&scholarName=%e5%a7%9c%e6%98%a5%e6%9e%97|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|361|11 +1438350|我国研究生教育跨越式发展的实现|http://www.cnki.com.cn/Article/CJFDTOTAL-HHJY200504011.htm|张立伟,于克振|16982338,06536140|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=16982338%3b06536140%3b&scholarName=%e5%bc%a0%e7%ab%8b%e4%bc%9f|航海教育研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HHJY|89|3 +1438350|社会网络视角下中国创新管理学术团体研究|http://www.cnki.com.cn/Article/CJFDTOTAL-KXYJ201507004.htm|陈悦,王智琦,张立伟|06520963,31636640,06536140|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06520963%3b31636640%3b06536140%3b&scholarName=%e9%99%88%e6%82%a6|科学学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KXYJ|622|0 +1438350|中外高校知识产权课程设置比较及启示|http://www.cnki.com.cn/Article/CJFDTOTAL-HLLJ201311018.htm|姜春林,张立伟,孙军卫|06502314,06536140,27207904|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06502314%3b06536140%3b27207904%3b&scholarName=%e5%a7%9c%e6%98%a5%e6%9e%97|黑龙江教育(高教研究与评估)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HLLJ|228|4 +1438350|知识单元视角下学术论文评价研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201404006.htm|姜春林,张立伟,谷丽,胡志刚|06502314,06536140,23948594,06527352|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06502314%3b06536140%3b23948594%3b06527352%3b&scholarName=%e5%a7%9c%e6%98%a5%e6%9e%97|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|500|12 +1438350|中外同行评议研究现状及问题探讨|http://www.cnki.com.cn/Article/CJFDTOTAL-KJGL201503033.htm|姜春林,张立伟,刘学|06502314,06536140,24932382|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06502314%3b06536140%3b24932382%3b&scholarName=%e5%a7%9c%e6%98%a5%e6%9e%97|科技管理研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJGL|278|8 +1438350|牛顿抑或奥尔特加?——一项来自高被引文献和获奖者视角的实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZRBZ201411014.htm|姜春林,张立伟,刘学|06502314,06536140,24932382|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06502314%3b06536140%3b24932382%3b&scholarName=%e5%a7%9c%e6%98%a5%e6%9e%97|自然辩证法研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZRBZ|195|8 +1438350|图书情报学期刊“联锁编委”的社会网络分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201405004.htm|姜春林,张立伟,刘盛博|06502314,06536140,17380313|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06502314%3b06536140%3b17380313%3b&scholarName=%e5%a7%9c%e6%98%a5%e6%9e%97|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|61|4 +1438350|互联网平台下科学家非正式学术交流的探究——基于科学网博文数据的计量分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201507010.htm|张立伟,陈悦,王智琦,刘则渊|06536140,06520963,31636640,06505316|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06536140%3b06520963%3b31636640%3b06505316%3b&scholarName=%e5%bc%a0%e7%ab%8b%e4%bc%9f|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|98|2 +1438350|组织惯性的形成及其对我国民营企业转型的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-KJGL201420023.htm|姜春林,张立伟,谷丽|06502314,06536140,23948594|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06502314%3b06536140%3b23948594%3b&scholarName=%e5%a7%9c%e6%98%a5%e6%9e%97|科技管理研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJGL|288|3 +1438350|新制度经济学视角下人文社会科学期刊论文评审研究|http://www.cnki.com.cn/Article/CJFDTOTAL-CBGJ201410027.htm|姜春林,王文苑,张立伟|06502314,26832274,06536140|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06502314%3b26832274%3b06536140%3b&scholarName=%e5%a7%9c%e6%98%a5%e6%9e%97|出版广角|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CBGJ|62|0 +1438350|国外运动康复研究前沿及其热点演化分析|http://www.cnki.com.cn/Article/CJFDTOTAL-WTXB201803012.htm|王祥全,王晓峰,张立伟|15115193,07676797,06536140|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15115193%3b07676797%3b06536140%3b&scholarName=%e7%8e%8b%e7%a5%a5%e5%85%a8|武汉体育学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WTXB|527|1 +1438350|基于南海定点观测数据的强风场特性研究|http://www.cnki.com.cn/Article/CJFDTOTAL-HYGC201704005.htm|杜宇,王延林,武文华,吕柏呈,岳前进,张立伟|06521121,21801374,06532419,33886065,06535152|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06521121%3b21801374%3b06532419%3b33886065%3b06535152%3b&scholarName=%e6%9d%9c%e5%ae%87|海洋工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HYGC|71|0 +1438350|基于核心竞争力理论的大学学科建设研究|http://cdmd.cnki.com.cn/Article/CDMD-10141-2006068390.htm|张立伟|06536140|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06536140%3b&scholarName=%e5%bc%a0%e7%ab%8b%e4%bc%9f|||1486|24 +1438350|牛顿假说抑或奥尔特加假说的实证研究|http://cdmd.cnki.com.cn/Article/CDMD-10141-1015366922.htm|张立伟|06536140|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06536140%3b&scholarName=%e5%bc%a0%e7%ab%8b%e4%bc%9f|||81|0 +1438350|大连邮政新经济生长点的选择|http://cdmd.cnki.com.cn/Article/CDMD-10141-2001009445.htm|张立伟|06536140|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06536140%3b&scholarName=%e5%bc%a0%e7%ab%8b%e4%bc%9f|||91|0 +1494334|从精白米到“齿留鲜”——对话华夏鼎辉集团董事长张朝辉|http://www.cnki.com.cn/Article/CJFDTOTAL-NCPS201839009.htm|李文学||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e6%9d%8e%e6%96%87%e5%ad%a6|农产品市场周刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NCPS|2|0 +1494334|从精白米到“齿留鲜”——对话华夏鼎辉集团董事长张朝辉|http://www.cnki.com.cn/Article/CJFDTOTAL-SWNJ201811006.htm|李文学||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e6%9d%8e%e6%96%87%e5%ad%a6|农家书屋|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SWNJ|0|0 +1494334|天山南北好风光——张朝辉摄影作品选登|http://www.cnki.com.cn/Article/CJFDTOTAL-ZTWY201803002.htm|张朝辉|39152580|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=39152580%3b&scholarName=%e5%bc%a0%e6%9c%9d%e8%be%89|中国铁路文艺|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZTWY|2|0 +1494334|艺无止境·追求最高——小议张朝辉书法艺术|http://www.cnki.com.cn/Article/CJFDTOTAL-SCJE200911055.htm|阎正||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e9%98%8e%e6%ad%a3|收藏界|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SCJE|18|0 +1494334|张朝辉:饮水思源 孜孜不倦|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGKC201007044.htm|邓姗||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e9%82%93%e5%a7%97|中国高校科技与产业化|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGKC|48|0 +1494334|张朝辉的班组管理“经”|http://www.cnki.com.cn/Article/CJFDTOTAL-SAFE20050300C.htm|舒开义||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e8%88%92%e5%bc%80%e4%b9%89|安全、健康和环境|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SAFE|40|0 +1498759|大数据驱动下的图书情报学科热点领域挖掘——面向WOS题录数据的实证视角|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201704007.htm|李信,李旭晖,陆伟,黄薇|35477957,09016368,09006361,07405815|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35477957%3b09016368%3b09006361%3b07405815%3b&scholarName=%e6%9d%8e%e4%bf%a1|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|1799|15 +1498759|一种新兴的学科领域历史根源探究方法:RPYS|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201620011.htm|李信,陆伟,李旭晖|35477957,09006361,09016368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35477957%3b09006361%3b09016368%3b&scholarName=%e6%9d%8e%e4%bf%a1|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|537|9 +1498759|传统文献计量与科学评价的一个补充视角:全时间域的RPYS|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQC201704010.htm|李信,李倩|35477957,08984838|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35477957%3b08984838%3b&scholarName=%e6%9d%8e%e4%bf%a1|图书情报知识|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQC|291|5 +1498759|面向电子健康素养的大学生网络健康信息搜寻行为现状调查及对策建议|http://www.cnki.com.cn/Article/CJFDTOTAL-LSGL201704010.htm|李信,李旭晖|35477957,09016368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35477957%3b09016368%3b&scholarName=%e6%9d%8e%e4%bf%a1|图书馆理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LSGL|779|7 +1498759|基于RPYS分析的引文分析研究:起源和演化|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201711011.htm|李信,赵薇,肖香龙,吴梦佳|35477957,14485543,38055508,32412018|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35477957%3b14485543%3b38055508%3b32412018%3b&scholarName=%e6%9d%8e%e4%bf%a1|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|253|3 +1498759|基于文献计量的国际健康信息素养评估研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDQB201702025.htm|李信,李旭晖|35477957,09016368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35477957%3b09016368%3b&scholarName=%e6%9d%8e%e4%bf%a1|现代情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDQB|651|5 +1498759|基于词汇功能识别的科研文献分析系统设计与实现|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201701018.htm|李信,程齐凯,刘兴帮|35477957,23562894,32098800|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35477957%3b23562894%3b32098800%3b&scholarName=%e6%9d%8e%e4%bf%a1|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|271|1 +1498759|基于临床视角的健康素养评价指标体系构建|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGJK201606016.htm|李信,张士靖,侯胜超,李艳|35477957,07611136,26616238,07596995|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35477957%3b07611136%3b26616238%3b07596995%3b&scholarName=%e6%9d%8e%e4%bf%a1|中国健康教育|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGJK|269|5 +1498759|基于RPYS的用户体验研究综述|http://www.cnki.com.cn/Article/CJFDTOTAL-TNGZ201807005.htm|李倩,李信|08984838,35477957,39686388|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08984838%3b35477957%3b39686388%3b&scholarName=%e6%9d%8e%e5%80%a9|图书馆杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TNGZ|200|1 +1498759|基于霍尔模型的大数据战略实施体系构建|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201606008.htm|李信|35477957|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35477957%3b&scholarName=%e6%9d%8e%e4%bf%a1|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|142|3 +1498759|基于解剖结构视角的医学学科画像研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XNZY201803002.htm|陆伟,李信,任珂|09006361,35477957,09007895|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09006361%3b35477957%3b09007895%3b&scholarName=%e9%99%86%e4%bc%9f|信息资源管理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XNZY|108|0 +1498759|学术文本的结构功能识别——在关键词自动抽取中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201706008.htm|方龙,李信,黄永,陆伟|27890168,35477957,32458758,09006361|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27890168%3b35477957%3b32458758%3b09006361%3b&scholarName=%e6%96%b9%e9%be%99|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|347|6 +1498759|全文本文献计量分析学术沙龙综述|http://www.cnki.com.cn/Article/CJFDTOTAL-XNZY201804014.htm|王佳敏,李信,刘齐进|38423099,35477957,40532213|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38423099%3b35477957%3b40532213%3b&scholarName=%e7%8e%8b%e4%bd%b3%e6%95%8f|信息资源管理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XNZY|191|0 +1498759|用户体验视角下APP评价指标体系构建|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201702015.htm|杨雪梅,李信,沈丽宁|08992032,35477957,24652238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08992032%3b35477957%3b24652238%3b&scholarName=%e6%9d%a8%e9%9b%aa%e6%a2%85|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|572|7 +1498759|基于情感词汇的科研论文写作风格演变研究——1994-2012年科研论文摘要中情感词汇使用情况的回顾性分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQC201606008.htm|程齐凯,李信,陆伟|23562894,35477957,09006361|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23562894%3b35477957%3b09006361%3b&scholarName=%e7%a8%8b%e9%bd%90%e5%87%af|图书情报知识|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQC|345|2 +1498759|基于参考文献出版年图谱的知识管理演化研究|http://www.cnki.com.cn/Article/CJFDTOTAL-LSGL201807015.htm|杨冬敏,李信|39811071,35477957|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=39811071%3b35477957%3b&scholarName=%e6%9d%a8%e5%86%ac%e6%95%8f|图书馆理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LSGL|70|0 +1498759|学术文本可读性和复杂度评价研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201805013.htm|陈练文,李信,赵超烨|09002480,35477957,39286446|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09002480%3b35477957%3b39286446%3b&scholarName=%e9%99%88%e7%bb%83%e6%96%87|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|164|0 +1498759|面向语义出版的学术文本词汇语义功能自动识别|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201708005.htm|程齐凯,李信|23562894,35477957|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23562894%3b35477957%3b&scholarName=%e7%a8%8b%e9%bd%90%e5%87%af|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|132|3 +1498759|深度学习图像标注与用户标注比较研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201805001.htm|陆伟,罗梦奇,丁恒,李信||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e9%99%86%e4%bc%9f|数据分析与知识发现|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|317|0 +1498759|基于引文上下文的相关研究辅助生成系统设计与实现|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201708004.htm|王鑫,程齐凯,李信,陆伟|09031630,23562894,35477957,09006361|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09031630%3b23562894%3b35477957%3b09006361%3b&scholarName=%e7%8e%8b%e9%91%ab|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|104|1 +1498759|丙肝病毒全基因组cDNA克隆侵染细胞培养体系的建立|http://www.cnki.com.cn/Article/CJFDTOTAL-KXTB200410011.htm|姚相杰,郭佳,郑从义,方呈祥,屈三甫,陈震球,李中红,李信墙,李卫云|12385393,05970197,09029397,12385395,12385396,12385394,09014444,10133137,08983337|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=12385393%3b05970197%3b09029397%3b12385395%3b12385396%3b12385394%3b09014444%3b10133137%3b08983337%3b&scholarName=%e5%a7%9a%e7%9b%b8%e6%9d%b0|科学通报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KXTB|212|15 +1498759|评价GPS相位模糊度整数解正确性的严密方法|http://www.cnki.com.cn/Article/CJFDTOTAL-WHCH200411014.htm|周扬眉,刘经南,李信|09017013,05967933,13571962|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09017013%3b05967933%3b13571962%3b&scholarName=%e5%91%a8%e6%89%ac%e7%9c%89|武汉大学学报(信息科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WHCH|243|7 +1498759|丙肝病毒全基因组克隆转染细胞体系的初步研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZBDX200404001.htm|郭佳,姚相杰,郑从义,方呈祥,屈三甫,李信墙,李卫云|09029397,12385394,09014444,12385395,10133137,08983337,05970197|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09029397%3b12385394%3b09014444%3b12385395%3b10133137%3b08983337%3b05970197%3b&scholarName=%e9%83%ad%e4%bd%b3|中国病毒学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZBDX|125|2 +1498759|地下停车场空气中细菌与真菌的调查|http://www.cnki.com.cn/Article/CJFDTOTAL-GSHJ201704011.htm|李信沩,孙蓉,盛鄂湘|38439848,38439849,38365961|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38439848%3b38439849%3b38365961%3b&scholarName=%e6%9d%8e%e4%bf%a1%e6%b2%a9|环境研究与监测|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GSHJ|27|0 +1625820|2016中国民办本科院校及独立学院科研竞争力评价研究报告|http://www.cnki.com.cn/Article/CJFDTOTAL-JTGY201701006.htm|汤建民|34445296|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34445296%3b&scholarName=%e6%b1%a4%e5%bb%ba%e6%b0%91|高教发展与评估|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JTGY|333|5 +1625820|2015中国民办本科院校及独立学院科研竞争力评价研究报告|http://www.cnki.com.cn/Article/CJFDTOTAL-JTGY201605003.htm|汤建民|34445296|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34445296%3b&scholarName=%e6%b1%a4%e5%bb%ba%e6%b0%91|高教发展与评估|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JTGY|228|4 +1625820|基于图书计量视角看我国评价研究近百年来的发展|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201708018.htm|汤建民,邱均平|34445296,05965051|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34445296%3b05965051%3b&scholarName=%e6%b1%a4%e5%bb%ba%e6%b0%91|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|173|3 +1625820|大学排行榜的改进之策|http://www.cnki.com.cn/Article/CJFDTOTAL-JTGY201604002.htm|汤建民|34445296,35643170|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34445296%3b35643170%3b&scholarName=%e6%b1%a4%e5%bb%ba%e6%b0%91|高教发展与评估|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JTGY|230|5 +1625820|高校科研业绩量化评价中的常见陷阱及超越策略|http://www.cnki.com.cn/Article/CJFDTOTAL-KJJB201715016.htm|汤建民,邱均平|34445296,05965051|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34445296%3b05965051%3b&scholarName=%e6%b1%a4%e5%bb%ba%e6%b0%91|科技进步与对策|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJJB|175|0 +1625820|情报计量学视野下的当代人文社科发展背景描绘——一个人文社科领域数据密集型科学发现的探索性案例|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZL201601005.htm|汤建民|34445296,09455031|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34445296%3b09455031%3b&scholarName=%e6%b1%a4%e5%bb%ba%e6%b0%91|情报资料工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZL|206|1 +1625820|高等教育学科发展背景的自动化计算和图示化描绘——以数据科学为视角|http://www.cnki.com.cn/Article/CJFDTOTAL-JTGY201602007.htm|汤建民|34445296|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34445296%3b&scholarName=%e6%b1%a4%e5%bb%ba%e6%b0%91|高教发展与评估|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JTGY|152|0 +1625820|中国智库理论研究的最新进展与趋势|http://www.cnki.com.cn/Article/CJFDTOTAL-CDSK201602013.htm|邱均平,汤建民|09007853,05965051,34445296|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09007853%3b05965051%3b34445296%3b&scholarName=%e9%82%b1%e5%9d%87%e5%b9%b3|重庆大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CDSK|759|17 +1625820|评价科学在中国的发展概观和推进策略|http://www.cnki.com.cn/Article/CJFDTOTAL-KXYJ201712008.htm|汤建民,邱均平|38302052,34445296,38302053,05965051|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38302052%3b34445296%3b38302053%3b05965051%3b&scholarName=%e6%b1%a4%e5%bb%ba%e6%b0%91|科学学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KXYJ|234|4 +1625820|高等教育评价助力“双一流”大学建设——第二届全国“双一流”大学建设与评价论坛综述|http://www.cnki.com.cn/Article/CJFDTOTAL-JTGY201805005.htm|田京,汤建民,董西露|30187527,38302052,35683502|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30187527%3b38302052%3b35683502%3b&scholarName=%e7%94%b0%e4%ba%ac|高教发展与评估|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JTGY|247|0 +1625820|2012中国民办本科院校科研竞争力评价研究报告|http://www.cnki.com.cn/Article/CJFDTOTAL-PJGL201301007.htm|中国民办本科院校科研竞争力评价研究项目团队,汤建民|29267338,29267339,09455031|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29267338%3b29267339%3b09455031%3b&scholarName=%e4%b8%ad%e5%9b%bd%e6%b0%91%e5%8a%9e%e6%9c%ac%e7%a7%91%e9%99%a2%e6%a0%a1%e7%a7%91%e7%a0%94%e7%ab%9e%e4%ba%89%e5%8a%9b%e8%af%84%e4%bb%b7%e7%a0%94%e7%a9%b6%e9%a1%b9%e7%9b%ae%e5%9b%a2%e9%98%9f|评价与管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/PJGL|98|0 +1629009|科学知识图谱绘制工具CiteSpace的学科领域扩散特征研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201705013.htm|徐浩,钱爱兵,朱学芳,江川|11712517,21939593,08047306,37091274|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11712517%3b21939593%3b08047306%3b37091274%3b&scholarName=%e5%be%90%e6%b5%a9|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|661|6 +1629009|我国中医学学科交叉领域研究热点可视化分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZCYO201519028.htm|徐浩,濮文渊,钱爱兵,朱学芳|11712517,29768978,21939593,08047306|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11712517%3b29768978%3b21939593%3b08047306%3b&scholarName=%e5%be%90%e6%b5%a9|中草药|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZCYO|385|7 +1629009|中国中医学学科交叉领域知识图谱研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZYKX201501018.htm|徐浩,濮文渊,钱爱兵,朱学芳|11712517,29768978,21939593,08047306|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11712517%3b29768978%3b21939593%3b08047306%3b&scholarName=%e5%be%90%e6%b5%a9|中国医学科学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZYKX|499|8 +1629009|我国出版企业特殊管理股问题研究|http://www.cnki.com.cn/Article/CJFDTOTAL-KJYU201704013.htm|徐浩然|35826870|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35826870%3b&scholarName=%e5%be%90%e6%b5%a9%e7%84%b6|科技与出版|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJYU|134|2 +1629009|学科交叉研究领域知识源流可视化分析——以我国中医学学科交叉领域为例|http://www.cnki.com.cn/Article/CJFDTOTAL-TNGZ201509014.htm|徐浩,朱学芳,肖平,申俊龙|11712517,08047306,26712644,08771299|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11712517%3b08047306%3b26712644%3b08771299%3b&scholarName=%e5%be%90%e6%b5%a9|图书馆杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TNGZ|390|1 +1629009|抗生素联合糖皮质激素治疗老年慢性阻塞性肺气肿的临床效果|http://www.cnki.com.cn/Article/CJFDTOTAL-GYKX201511019.htm|徐浩锋|33291671,33291672|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33291671%3b33291672%3b&scholarName=%e5%be%90%e6%b5%a9%e9%94%8b|中国医药科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GYKX|49|11 +1629009|美国保险产品销售的适合性原则|http://www.cnki.com.cn/Article/CJFDTOTAL-KJSH201104030.htm|徐浩|11712517|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11712517%3b&scholarName=%e5%be%90%e6%b5%a9|科学经济社会|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJSH|220|8 +1629009|我国公司治理的多样性构建——以日本公司治理的沿革为参照|http://www.cnki.com.cn/Article/CJFDTOTAL-SCLY201505027.htm|徐浩|11712517|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11712517%3b&scholarName=%e5%be%90%e6%b5%a9|生产力研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SCLY|108|3 +1629009|租赁住房和二手房对城镇化的影响研究——基于34个大中城市的面板数据|http://www.cnki.com.cn/Article/CJFDTOTAL-JJSS201611142.htm|徐浩然,畅超,周豫|35826870,35947347,28788025|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35826870%3b35947347%3b28788025%3b&scholarName=%e5%be%90%e6%b5%a9%e7%84%b6|经济师|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JJSS|107|0 +1629009|日本公司资本制度的变迁|http://www.cnki.com.cn/Article/CJFDTOTAL-CJJX201107080.htm|徐浩|11712517|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11712517%3b&scholarName=%e5%be%90%e6%b5%a9|财经界(学术版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CJJX|322|7 +1629009|盐城地区血友病患者临床特征及生活状况分析|http://www.cnki.com.cn/Article/CJFDTOTAL-XSZX201805002.htm|李倩,姜玲玲,周荣富,褚红,徐浩|36712846,14696375,23077102,25596804,08322084|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36712846%3b14696375%3b23077102%3b25596804%3b08322084%3b&scholarName=%e6%9d%8e%e5%80%a9|血栓与止血学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XSZX|21|0 +1629009|基于社会网络的决策会计行为分析|http://www.cnki.com.cn/Article/CJFDTOTAL-KJQB200703086.htm|徐浩|11712517|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11712517%3b&scholarName=%e5%be%90%e6%b5%a9|科技情报开发与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJQB|187|1 +1629009|股东会、董事会职权的兜底条款质疑|http://www.cnki.com.cn/Article/CJFDTOTAL-BFFX201006014.htm|徐浩|09388037,11712517|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09388037%3b11712517%3b&scholarName=%e5%be%90%e6%b5%a9|北方法学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BFFX|913|18 +1629009|董事会对于股东提案的审查权探讨|http://www.cnki.com.cn/Article/CJFDTOTAL-ADZS201202022.htm|徐浩|09388037,11712517|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09388037%3b11712517%3b&scholarName=%e5%be%90%e6%b5%a9|安徽大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ADZS|334|9 +1629009|我国中医学期刊引用网络分析——基于CMSCI(2004-2012)年度数据|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201410017.htm|钱爱兵,徐浩|21939593,11712517|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21939593%3b11712517%3b&scholarName=%e9%92%b1%e7%88%b1%e5%85%b5|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|196|6 +1629009|基于文献计量学视角的公立医院外部监管研究现状分析|http://www.cnki.com.cn/Article/CJFDTOTAL-YKNS201506011.htm|毛鹏远,徐浩,王长青|34291881,11712517,29757811|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34291881%3b11712517%3b29757811%3b&scholarName=%e6%af%9b%e9%b9%8f%e8%bf%9c|南京医科大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YKNS|88|1 +1629009|我国P2P平台投资人羊群行为研究|http://cdmd.cnki.com.cn/Article/CDMD-10284-1017185249.htm|徐浩杰|37654865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37654865%3b&scholarName=%e5%be%90%e6%b5%a9%e6%9d%b0|||214|2 +1629009|四株共生菌的次级代谢产物研究|http://cdmd.cnki.com.cn/Article/CDMD-10284-1011126307.htm|徐浩|11712517|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11712517%3b&scholarName=%e5%be%90%e6%b5%a9|||435|1 +1629009|房地产价格波动模型及实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SCLY200923043.htm|王子龙,许箫迪,徐浩然,罗时龙|08729341,11115395,08754782,17382214,15125208|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08729341%3b11115395%3b08754782%3b17382214%3b15125208%3b&scholarName=%e7%8e%8b%e5%ad%90%e9%be%99|生产力研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SCLY|510|7 +1629009|证券分析师荐股准确率影响因素的实证研究——以2012-2013《新财富》上榜分析师的买入评级报告为例|http://www.cnki.com.cn/Article/CJFDTOTAL-JJSS201610046.htm|周豫,张林甫,徐浩然|28788025,35826869,35826870|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28788025%3b35826869%3b35826870%3b&scholarName=%e5%91%a8%e8%b1%ab|经济师|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JJSS|115|0 +1641005|图书馆实施分阶段科研数据管理服务中的权益问题初探|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201601011.htm|邹中才,顾立平,张闪闪,盖晓良|32979704,33252150,21779674,31019724,33701622,33033580,33701623|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32979704%3b33252150%3b21779674%3b31019724%3b33701622%3b33033580%3b33701623%3b&scholarName=%e9%82%b9%e4%b8%ad%e6%89%8d|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|546|4 +1641005|国外无纸实体图书馆实践研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201505016.htm|邹中才,陈朝晖|32979704,33252150,11226544|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32979704%3b33252150%3b11226544%3b&scholarName=%e9%82%b9%e4%b8%ad%e6%89%8d|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|170|1 +1784597|对“流通外包”的反思——兼与魏育辉等老师商榷|http://www.cnki.com.cn/Article/CJFDTOTAL-TNGZ201008010.htm|程愚|10693891|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10693891%3b&scholarName=%e7%a8%8b%e6%84%9a|图书馆杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TNGZ|202|4 +1792012|用文献计量研究重塑政策文本数据分析——政策文献计量的起源、迁移与方法创新|http://www.cnki.com.cn/Article/CJFDTOTAL-GGGL201502013.htm|李江,刘源浩,黄萃,苏竣|09377264,33072024,08168117,08235647|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b33072024%3b08168117%3b08235647%3b&scholarName=%e6%9d%8e%e6%b1%9f|公共管理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GGGL|4895|66 +1792012|引文曲线的分析框架研究——以诺贝尔奖得主的引文曲线为例|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGTS201402007.htm|李江,姜明利,李玥婷|09377264,30727983,30727984|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b30727983%3b30727984%3b&scholarName=%e6%9d%8e%e6%b1%9f|中国图书馆学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGTS|1261|28 +1792012|基于高光谱成像技术检测脐橙溃疡|http://www.cnki.com.cn/Article/CJFDTOTAL-NYGU201008040.htm|李江波,饶秀勤,应义斌,王东亭|09376368,10280671,00002776,24270074|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b10280671%3b00002776%3b24270074%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|农业工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NYGU|760|115 +1792012|科学中的“睡美人”与“昙花一现”现象评述|http://www.cnki.com.cn/Article/CJFDTOTAL-DXTS201603005.htm|李江|09377264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b&scholarName=%e6%9d%8e%e6%b1%9f|大学图书馆学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DXTS|386|11 +1792012|“跨学科性”的概念框架与测度|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQC201403015.htm|李江|09377264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b&scholarName=%e6%9d%8e%e6%b1%9f|图书情报知识|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQC|832|25 +1792012|农产品外部品质无损检测中高光谱成像技术的应用研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-GUAN201108003.htm|李江波,饶秀勤,应义斌|09376368,10280671,00002776|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b10280671%3b00002776%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|光谱学与光谱分析|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GUAN|2459|127 +1792012|以学生为中心、以项目为驱动力、以结果为导向——美国伍斯特理工学院本科工程教育模式创新及启示|http://www.cnki.com.cn/Article/CJFDTOTAL-GDGJ201303021.htm|李江霞|15272243,11066226|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15272243%3b11066226%3b&scholarName=%e6%9d%8e%e6%b1%9f%e9%9c%9e|高等工程教育研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDGJ|1489|20 +1792012|文献计量学研究共同体的特征与变迁:1994—2014年|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQC201603011.htm|李江,李东,俞欣辰|09377264,09377186,33715340|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b09377186%3b33715340%3b&scholarName=%e6%9d%8e%e6%b1%9f|图书情报知识|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQC|582|3 +1792012|基于引文的知识扩散研究评述|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZL201304010.htm|李江|09377264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b&scholarName=%e6%9d%8e%e6%b1%9f|情报资料工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZL|712|26 +1792012|基于照度-反射模型的脐橙表面缺陷检测|http://www.cnki.com.cn/Article/CJFDTOTAL-NYGU201107062.htm|李江波,饶秀勤,应义斌|09376368,10280671,00002776|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b10280671%3b00002776%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|农业工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NYGU|408|38 +1792012|产学研结合长效性分析与探索——基于高校与企业互动视角下的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GDGJ200703005.htm|李江,张莉|09377264,09391527|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b09391527%3b&scholarName=%e6%9d%8e%e6%b1%9f|高等工程教育研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDGJ|1023|41 +1792012|高光谱荧光成像技术在识别早期腐烂脐橙中的应用研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GUAN201201037.htm|李江波,王福杰,应义斌,饶秀勤|09376368,26919987,00002776,10280671|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b26919987%3b00002776%3b10280671%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|光谱学与光谱分析|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GUAN|617|38 +1792012|我国高等教育管理制度的特征及缺失|http://www.cnki.com.cn/Article/CJFDTOTAL-HIGH200102006.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|高等教育研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HIGH|828|57 +1792012|基于掩模及边缘灰度补偿算法的脐橙背景及表面缺陷分割|http://www.cnki.com.cn/Article/CJFDTOTAL-NYGU200912025.htm|李江波,饶秀勤,应义斌,马本学,郭俊先|09376368,10280671,00002776,10280079,23851250|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b10280671%3b00002776%3b10280079%3b23851250%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|农业工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NYGU|367|35 +1792012|基于专长吻合度、学术影响力与社会关联值的专家推荐模型研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201704002.htm|李江,李东,冯培桦,许维潇|09377264,09377186,37660096,35938467|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b09377186%3b37660096%3b35938467%3b&scholarName=%e6%9d%8e%e6%b1%9f|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|213|2 +1792012|水果表面亮度不均校正及单阈值缺陷提取研究|http://www.cnki.com.cn/Article/CJFDTOTAL-NYJX201108030.htm|李江波,饶秀勤,应义斌|09376368,10280671,00002776|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b10280671%3b00002776%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|农业机械学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NYJX|339|25 +1792012|局部阴影下的光伏阵列MPPT算法研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JZDF201403026.htm|李江,韩海霞,王晓倩,杨传东|09377264,31093572,31093573|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b31093572%3b31093573%3b&scholarName=%e6%9d%8e%e6%b1%9f|控制工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JZDF|295|20 +1792012|国内外文献计量学者的学术偏好比较|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201602026.htm|李江,蔡小静,李萍,彭欣蔚,叶程程|09377264,34325568,09376427,34325569,34325570|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b34325568%3b09376427%3b34325569%3b34325570%3b&scholarName=%e6%9d%8e%e6%b1%9f|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|484|3 +1792012|基于HHT的心音分段和医学指标提取|http://www.cnki.com.cn/Article/CJFDTOTAL-JZDF201501030.htm|李江,李晓玉|09377264,09376504|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b09376504%3b&scholarName=%e6%9d%8e%e6%b1%9f|控制工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JZDF|170|16 +1792012|论教育制度的缺陷与创新|http://www.cnki.com.cn/Article/CJFDTOTAL-JYLL200206004.htm|李江源,吴忠才|05967865,08625638|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b08625638%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|教育理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYLL|926|21 +1792012|高等教育制度创新不足略论|http://www.cnki.com.cn/Article/CJFDTOTAL-JIAO200102004.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|教育与现代化|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JIAO|320|68 +1792012|论我国大学制度变迁的“路径依赖”|http://www.cnki.com.cn/Article/CJFDTOTAL-GJTA200402001.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|高教探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GJTA|836|38 +1792012|教育平等新论|http://www.cnki.com.cn/Article/CJFDTOTAL-ZJSH200102027.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|浙江社会科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZJSH|439|46 +1792012|教育规范:自由发展的中介|http://www.cnki.com.cn/Article/CJFDTOTAL-SHZX200502010.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|社会科学战线|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SHZX|403|18 +1792012|铅污染水稻土的微生物活性|http://www.cnki.com.cn/Article/CJFDTOTAL-NHBH200605020.htm|李江遐,杨肖娥,何振立,陈声明|09373617,09389167,14404103,15358789|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09373617%3b09389167%3b14404103%3b15358789%3b&scholarName=%e6%9d%8e%e6%b1%9f%e9%81%90|农业环境科学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NHBH|349|18 +1792012|简论我国高等教育制度的特征及缺陷|http://www.cnki.com.cn/Article/CJFDTOTAL-GJTA200101002.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|高教探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GJTA|492|41 +1792012|积极倡导、主动参与、深化合作、全程协助——美国企业界在工程教育改革中的作用|http://www.cnki.com.cn/Article/CJFDTOTAL-GDGJ201202020.htm|李江霞|15272243,11066226|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15272243%3b11066226%3b&scholarName=%e6%9d%8e%e6%b1%9f%e9%9c%9e|高等工程教育研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDGJ|317|4 +1792012|基于高光谱成像及神经网络技术检测玉米含水率|http://www.cnki.com.cn/Article/CJFDTOTAL-BZSJ201006002.htm|李江波,苏忆楠,饶秀勤|09376368,25109101,10280671|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b25109101%3b10280671%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|包装与食品机械|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BZSJ|386|29 +1792012|自激脉冲喷嘴发生机理数值模拟|http://www.cnki.com.cn/Article/CJFDTOTAL-GCRB200402017.htm|李江云,徐如良,王乐勤|00005133,09377267,09388258|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=00005133%3b09377267%3b09388258%3b&scholarName=%e6%9d%8e%e6%b1%9f%e4%ba%91|工程热物理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GCRB|401|61 +1792012|我国图书情报学国际化发展的现状与趋势|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQC201706003.htm|童寿传,李江,李东|38142685,09377264,09377186|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38142685%3b09377264%3b09377186%3b&scholarName=%e7%ab%a5%e5%af%bf%e4%bc%a0|图书情报知识|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQC|411|3 +1792012|bcl-2 mRNA、bax mRNA表达在三氧化二砷诱导肝癌细胞凋亡中的意义|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHGD200304007.htm|李江涛,区庆嘉,刘颖斌,王新保,徐斌|09396325,10285498,09396005,05973310,05966306|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b10285498%3b09396005%3b05973310%3b05966306%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b6%9b|中华肝胆外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHGD|200|26 +1792012|铅污染对青紫泥微生物活性的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-TRQS200506044.htm|李江遐,杨肖娥,陈声明|14404103,09389167|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14404103%3b09389167%3b&scholarName=%e6%9d%8e%e6%b1%9f%e9%81%90|水土保持学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TRQS|183|12 +1792012|略论蔡元培的大学制度思想|http://www.cnki.com.cn/Article/CJFDTOTAL-GJTA200204026.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|高教探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GJTA|550|18 +1792012|基于特征的复杂曲面反求建模技术研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JXXB200005005.htm|李江雄,柯映林|05964661,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964661%3b09376370%3b&scholarName=%e6%9d%8e%e6%b1%9f%e9%9b%84|机械工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXXB|200|134 +1792012|基于实物的复杂曲面产品反求工程中的CAD建模技术|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGJX904.008.htm|李江雄,柯映林,程耀东|05964661,05966832,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964661%3b05966832%3b09376370%3b&scholarName=%e6%9d%8e%e6%b1%9f%e9%9b%84|中国机械工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGJX|598|226 +1792012|胰血管活性肠肽瘤一例报告并国内文献复习|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHWK200409003.htm|李江涛,彭淑牖,刘颖斌,方河清,吴育连,王新保,唐喆,钱浩然,纪成|09396005,09395914,05967238,09358481,09396298,05966306,05969176,05969822,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396005%3b09395914%3b05967238%3b09358481%3b09396298%3b05966306%3b05969176%3b05969822%3b09396325%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b6%9b|中华外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHWK|277|14 +1792012|基于结构光的微细管孔内表面三维重建|http://www.cnki.com.cn/Article/CJFDTOTAL-YQXB200603008.htm|李江雄,吴恩启,柯映林|09376370,09618733|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376370%3b09618733%3b&scholarName=%e6%9d%8e%e6%b1%9f%e9%9b%84|仪器仪表学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YQXB|277|8 +1792012|教育公平新论|http://www.cnki.com.cn/Article/CJFDTOTAL-QHDJ200201007.htm|田正平,李江源|05967865,09346613|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b09346613%3b&scholarName=%e7%94%b0%e6%ad%a3%e5%b9%b3|清华大学教育研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QHDJ|4352|358 +1792012|美国非政府组织在工程教育改革中的角色探析|http://www.cnki.com.cn/Article/CJFDTOTAL-GDGJ201301020.htm|李江霞|15272243,11066226|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15272243%3b11066226%3b&scholarName=%e6%9d%8e%e6%b1%9f%e9%9c%9e|高等工程教育研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDGJ|313|2 +1792012|基于光学导航定位的钹形压电微型管道机器人|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC200606001.htm|李江雄,郭彤,柯映林|05964661,09327548,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964661%3b09327548%3b09376370%3b&scholarName=%e6%9d%8e%e6%b1%9f%e9%9b%84|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|239|9 +1792012|一种新型的微细管道内表面形貌检测器|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC200609031.htm|李江雄,吴恩启,柯映林|09618733,09376370,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09618733%3b09376370%3b05964661%3b&scholarName=%e6%9d%8e%e6%b1%9f%e9%9b%84|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|170|13 +1792012|反求工程中复杂曲面边界线的自动提取技术|http://www.cnki.com.cn/Article/CJFDTOTAL-JXZZ200002010.htm|李江雄|09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376370%3b&scholarName=%e6%9d%8e%e6%b1%9f%e9%9b%84|机械设计与制造工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXZZ|433|78 +1792012|地区公共产品最优供给与城市社区分层化——基于蒂布特理论的分析|http://www.cnki.com.cn/Article/CJFDTOTAL-GGZY200607024.htm|李江,王玉雄|09377264,06365626|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b06365626%3b&scholarName=%e6%9d%8e%e6%b1%9f|改革与战略|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GGZY|427|12 +1792012|医源性胆管损伤的诊治|http://www.cnki.com.cn/Article/CJFDTOTAL-ZPWL201703002.htm|李江涛,金赟|09396325,28453975|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b28453975%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b6%9b|中国普外基础与临床杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZPWL|69|1 +1792012|全尾状叶肝切除手术入路及技巧|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGWK201408047.htm|李江涛,于源泉|09396325,30284591|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b30284591%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b6%9b|中国实用外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGWK|235|3 +1792012|胰十二指肠切除术后胰漏的处理|http://www.cnki.com.cn/Article/CJFDTOTAL-GDWZ201106007.htm|李江涛,于源泉|09396325,26910508|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b26910508%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b6%9b|肝胆外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDWZ|284|10 +1792012|基于计算机视觉的香菇缺陷检测|http://www.cnki.com.cn/Article/CJFDTOTAL-BZSJ201005000.htm|李江波,王靖宇,苏忆楠,饶秀勤|09376368,25109100,25109101,10280671|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b25109100%3b25109101%3b10280671%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|包装与食品机械|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BZSJ|222|9 +1792012|反求工程中的曲面建模技术及相关软件(模块)分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JSFY199910004.htm|李江雄|09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376370%3b&scholarName=%e6%9d%8e%e6%b1%9f%e9%9b%84|计算机辅助设计与制造|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSFY|243|76 +1792012|从社会哲学视野看教育制度的现代转型|http://www.cnki.com.cn/Article/CJFDTOTAL-XSYJ20050100K.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|学术研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XSYJ|315|6 +1792012|鲜香菇外部品质计算机视觉检测与分级研究|http://www.cnki.com.cn/Article/CJFDTOTAL-NCJX201010005.htm|李江波,王靖宇,苏忆楠,饶秀勤|09376368,25109100,25109101,10280671|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b25109100%3b25109101%3b10280671%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|农产品加工(学刊)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NCJX|217|5 +1792012|肝癌细胞侵犯微血管的临床相关因素及分子标志物的研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-LCGD201307026.htm|金赟,李江涛|28453975,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28453975%3b09396325%3b&scholarName=%e9%87%91%e8%b5%9f|临床肝胆病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCGD|326|24 +1792012|带工程约束的点匹配算法|http://www.cnki.com.cn/Article/CJFDTOTAL-JXXB201005031.htm|俞慈君,李江雄,余锋杰,柯映林,秦龙刚,陈学良,杨卫东,宋承志|22368581,09376370,11083698,05964661,22032032,22368582,22168331,13977397|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22368581%3b09376370%3b11083698%3b05964661%3b22032032%3b22368582%3b22168331%3b13977397%3b&scholarName=%e4%bf%9e%e6%85%88%e5%90%9b|机械工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXXB|390|45 +1792012|小波神经网络在人体电位信号分析中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-JZDF201301027.htm|李江,苏帅,包烨华,涂望明,李海|09377264,27500345,07053079,27510020,11025787,25839584|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b27500345%3b07053079%3b27510020%3b11025787%3b25839584%3b&scholarName=%e6%9d%8e%e6%b1%9f|控制工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JZDF|102|6 +1792012|大尺寸空间测量中转站误差分析与估计|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC201504007.htm|金涨军,李江雄,俞慈君,柯映林|32826533,09376370,22368581,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32826533%3b09376370%3b22368581%3b05964661%3b&scholarName=%e9%87%91%e6%b6%a8%e5%86%9b|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|360|13 +1792012|基于混沌和替代数据法的中风病人声音分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC201501008.htm|李江,赵雅琼,包晔华|09377264,31230315,32390358|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b31230315%3b32390358%3b&scholarName=%e6%9d%8e%e6%b1%9f|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|94|1 +1792012|教育制度变迁与中国教育现代化进程|http://www.cnki.com.cn/Article/CJFDTOTAL-HDXK200201004.htm|田正平,李江源|05967865,09346613|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b09346613%3b&scholarName=%e7%94%b0%e6%ad%a3%e5%b9%b3|华东师范大学学报(教育科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HDXK|5201|90 +1792012|教育制度:概念的厘定|http://www.cnki.com.cn/Article/CJFDTOTAL-HSJY200301003.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|河北师范大学学报(教育科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HSJY|1121|46 +1792012|塔式太阳能热发电全寿命周期成本电价分析|http://www.cnki.com.cn/Article/CJFDTOTAL-DLXT201507013.htm|李心,赵晓辉,李江烨,李伟,徐能,黄文君|26039483,28069033,09375252|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26039483%3b28069033%3b09375252%3b&scholarName=%e6%9d%8e%e5%bf%83|电力系统自动化|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DLXT|678|21 +1792012|复杂曲面自动化测量程序生成及分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JXKX806.056.htm|李江雄,柯映林,程耀东|05964661,05966832,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964661%3b05966832%3b09376370%3b&scholarName=%e6%9d%8e%e6%b1%9f%e9%9b%84|机械科学与技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXKX|167|28 +1792012|胰肠吻合口漏的防治|http://www.cnki.com.cn/Article/CJFDTOTAL-LCGD201208009.htm|李江涛,于源泉,彭淑牖|09396325,26910508,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b26910508%3b05967238%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b6%9b|临床肝胆病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCGD|82|7 +1792012|基于ARM的燃气调压器检测系统设计|http://www.cnki.com.cn/Article/CJFDTOTAL-JDGC201004032.htm|李江波,朱世强,郑东鑫|09376368,10284954,24323434|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b10284954%3b24323434%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|机电工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JDGC|162|4 +1792012|阿霉素诱导人胆囊癌细胞耐药过程中糖基化神经酰胺合成酶及caspase 3的动态变化|http://www.cnki.com.cn/Article/CJFDTOTAL-ZBLS200604032.htm|李江涛,彭淑牖,王新保,刘颖斌,王建伟,许斌,李海军,冯雪冬,钱浩然,王海军,吴育连,方河清|05966306,09394991,10285310,09396981,05969822,09396325,09467132,09396988,09395914|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05966306%3b09394991%3b10285310%3b09396981%3b05969822%3b09396325%3b09467132%3b09396988%3b09395914%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b6%9b|中国病理生理杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZBLS|106|5 +1792012|飞机机身-机翼接头精加工条件评价技术|http://www.cnki.com.cn/Article/CJFDTOTAL-HKXB201006025.htm|刘楚辉,李江雄,董辉跃,王青,柯映林|09378683,07843138,09376370,09371533,10281816,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09378683%3b07843138%3b09376370%3b09371533%3b10281816%3b05964661%3b&scholarName=%e5%88%98%e6%a5%9a%e8%be%89|航空学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HKXB|435|19 +1792012|基于Hausdorff距离的穴位阻抗重复性|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC201110016.htm|李江,黄益君,刘政,刘晓晖,包烨华,楚佳梅|09377264,25924822,25883033,11292163,07053079,07062139|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b25924822%3b25883033%3b11292163%3b07053079%3b07062139%3b&scholarName=%e6%9d%8e%e6%b1%9f|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|91|4 +1792012|腺相关病毒载体介导的PLB基因反义RNA对大鼠心肌细胞肌浆网Ca~(2+)-ATPase活性和[Ca~(2+)]i的作用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZBLS200601008.htm|李江,胡申江,赵晓燕,汪国忠,郑霞,姚宇玫,陈乃云,孙坚,朱朝晖|09360589,09398931,10285653,09398961,05966928,09361226,09399515,10285903|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09360589%3b09398931%3b10285653%3b09398961%3b05966928%3b09361226%3b09399515%3b10285903%3b&scholarName=%e6%9d%8e%e6%b1%9f|中国病理生理杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZBLS|130|5 +1792012|糖基化神经酰胺合成酶及相关基因的表达与人胆囊癌多药耐药|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHPZ200506025.htm|李江涛,彭淑牖,刘颖斌,王新保,王海军,王建伟,许斌,李海军,冯雪冬,钱浩然,吴育连,方河清|09467132,09395914,05967238,05969176,05966306,05969822,09396988,09396981,09396610,09394991,10285310,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09467132%3b09395914%3b05967238%3b05969176%3b05966306%3b05969822%3b09396988%3b09396981%3b09396610%3b09394991%3b10285310%3b09396325%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b6%9b|中华普通外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHPZ|87|20 +1792012|神经-模糊预测控制算法及其在碱回收炉中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGZB200101018.htm|李江,张良军,李平,郑新彬,廖秀蓉|09391546,00000967,12244958,12244924,09377264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09391546%3b00000967%3b12244958%3b12244924%3b09377264%3b&scholarName=%e6%9d%8e%e6%b1%9f|中国造纸学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGZB|82|6 +1792012|论教育制度创新|http://www.cnki.com.cn/Article/CJFDTOTAL-HSJY200203002.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|河北师范大学学报(教育科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HSJY|998|42 +1792012|我国技术创新存在的问题及对策研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JJWS200409030.htm|郭娅,李江东|10279072,10277947|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10279072%3b10277947%3b&scholarName=%e9%83%ad%e5%a8%85|经济问题探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JJWS|430|33 +1792012|肿瘤表达谱基因芯片筛选胆囊癌肿瘤相关基因的初步研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHWK200621020.htm|李江涛,冯雪冬,刘颖斌,王新保,王建伟,许斌,钱浩然,刘付宝,薛建锋,方河清,吴育连,彭淑牖|09401769,09396325,11533423,09396988,09395088,10286647,10285517,05969822,05967238,05969176,05966306,09467132|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09401769%3b09396325%3b11533423%3b09396988%3b09395088%3b10286647%3b10285517%3b05969822%3b05967238%3b05969176%3b05966306%3b09467132%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b6%9b|中华外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHWK|209|7 +1792012|教育制度的缺陷及其变革与创新|http://www.cnki.com.cn/Article/CJFDTOTAL-JYDK200211000.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|教育导刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYDK|229|13 +1792012|大型飞机机身调姿与对接试验系统|http://www.cnki.com.cn/Article/CJFDTOTAL-HKXB201105017.htm|邱宝贵,蒋君侠,毕运波,方强,王青,詹建潮,李江雄,柯映林|25792354,10278696,11019961,09326174,10281816,09353709,09376370,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25792354%3b10278696%3b11019961%3b09326174%3b10281816%3b09353709%3b09376370%3b05964661%3b&scholarName=%e9%82%b1%e5%ae%9d%e8%b4%b5|航空学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HKXB|1247|65 +1792012|教育制度的现代转型及功能|http://www.cnki.com.cn/Article/CJFDTOTAL-JYLL200401003.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|教育理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYLL|714|33 +1792012|利用圆心不对称投影精确标定工业相机|http://www.cnki.com.cn/Article/CJFDTOTAL-GXJM201408038.htm|朱伟东,曹良洪,梅标,李江雄,封璞加|09356600,30919498,31528167,09376370,31528168|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09356600%3b30919498%3b31528167%3b09376370%3b31528168%3b&scholarName=%e6%9c%b1%e4%bc%9f%e4%b8%9c|光学精密工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GXJM|358|17 +1792012|略论计划体制下我国大学制度的特性|http://www.cnki.com.cn/Article/CJFDTOTAL-GJTA200102002.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|高教探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GJTA|146|7 +1792012|绕肝提拉法前入路肝切除术(附6例临床报告)|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGWK200310010.htm|彭淑牖,李江涛,曹利平,刘颖斌,王新保,吴育连,方河清,王建伟,许斌,郑放|09396005,05967238,09396988,09396325,09394453,09396610,09355517,05969822,05969176,05966306|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396005%3b05967238%3b09396988%3b09396325%3b09394453%3b09396610%3b09355517%3b05969822%3b05969176%3b05966306%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|中国实用外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGWK|227|33 +1792012|教育传统与教育制度创新|http://www.cnki.com.cn/Article/CJFDTOTAL-JYLL200306005.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|教育理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYLL|699|21 +1792012|基于调度策略的自动化仓库系统优化问题研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJJ200609014.htm|柳赛男,柯映林,李江雄,吕震|10280009,05964661,09376370,09378380|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10280009%3b05964661%3b09376370%3b09378380%3b&scholarName=%e6%9f%b3%e8%b5%9b%e7%94%b7|计算机集成制造系统|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJJ|1233|184 +1792012|激光跟踪仪三维坐标转换综合优化方法|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJJ201511011.htm|黄鹏,王青,李江雄,俞慈君,柯映林|09329062,10281816,09376370,22368581,14764171|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09329062%3b10281816%3b09376370%3b22368581%3b14764171%3b&scholarName=%e9%bb%84%e9%b9%8f|计算机集成制造系统|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJJ|340|13 +1792012|基于小波消噪与关联维数的经穴电位信号研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJC201509052.htm|李江,王晓倩|09377264,31093573|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b31093573%3b&scholarName=%e6%9d%8e%e6%b1%9f|计算机工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJC|29|1 +1792012|基于Petri网的飞机总装配生产线建模及优化方法|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC201507004.htm|王青,温李庆,李江雄,柯映林,李涛,张世炯|10281816,33169941,33169942,09376370,05964661,11679176,33169943|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10281816%3b33169941%3b33169942%3b09376370%3b05964661%3b11679176%3b33169943%3b&scholarName=%e7%8e%8b%e9%9d%92|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|420|17 +1792012|试论义务教育中的公正|http://www.cnki.com.cn/Article/CJFDTOTAL-JYDK200012000.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|教育导刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYDK|111|7 +1792012|论教育制度公正|http://www.cnki.com.cn/Article/CJFDTOTAL-HSJY200403000.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|河北师范大学学报(教育科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HSJY|364|20 +1792012|论我国社会转型过程中的教育制度推进|http://www.cnki.com.cn/Article/CJFDTOTAL-JYLL200208000.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|教育理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYLL|309|25 +1792012|一种受约束的散乱点三角划分方法|http://www.cnki.com.cn/Article/CJFDTOTAL-JXKX200002023.htm|李江雄|09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376370%3b&scholarName=%e6%9d%8e%e6%b1%9f%e9%9b%84|机械科学与技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXKX|107|14 +1792012|反求工程CAD建模技术研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJF200106018.htm|柯映林,肖尧先,李江雄|09349864,09376370,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09349864%3b09376370%3b05964661%3b&scholarName=%e6%9f%af%e6%98%a0%e6%9e%97|计算机辅助设计与图形学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJF|1099|194 +1792012|捆绑式胰胃吻合的技术演进及应用|http://www.cnki.com.cn/Article/CJFDTOTAL-WKLL201306002.htm|李江涛,金星,彭淑牖|09396325,29484628,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b29484628%3b05967238%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b6%9b|外科理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WKLL|77|2 +1792012|可逆流体转换器装置优化设计及应用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGJX200323004.htm|李江云,徐如良,王乐勤|09388258,00005133,09377267|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09388258%3b00005133%3b09377267%3b&scholarName=%e6%9d%8e%e6%b1%9f%e4%ba%91|中国机械工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGJX|51|3 +1792012|槽钹形压电复合换能器理论建模及有限元分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC20050400O.htm|郭彤,李江雄,柯映林|09376370,09327548,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376370%3b09327548%3b05964661%3b&scholarName=%e9%83%ad%e5%bd%a4|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|213|12 +1792012|地区科技竞争力综合评价——以浙江省为例|http://www.cnki.com.cn/Article/CJFDTOTAL-SYJG200405005.htm|金雪军,李江东,郭娅|05966088,10279072,10277947|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05966088%3b10279072%3b10277947%3b&scholarName=%e9%87%91%e9%9b%aa%e5%86%9b|商业经济与管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SYJG|256|24 +1792012|也谈教育制度|http://www.cnki.com.cn/Article/CJFDTOTAL-FLJY200402000.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|湖南师范大学教育科学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FLJY|457|14 +1792012|支持动态集成的产品数据管理Web服务架构|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJJ200507016.htm|韩捷,李江雄|09376370,09373161|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376370%3b09373161%3b&scholarName=%e9%9f%a9%e6%8d%b7|计算机集成制造系统|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJJ|324|6 +1792012|喹诺酮类抗菌剂构效关系研究:母核变化对活性的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-YXXB807.003.htm|李江波,林瑞森,俞庆森,朱龙观|09376368,00001681,05964381,00019654|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b00001681%3b05964381%3b00019654%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|药学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXXB|231|5 +1792012|教育规范的基础|http://www.cnki.com.cn/Article/CJFDTOTAL-GWZX200403008.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|复旦教育论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GWZX|211|16 +1792012|论教育制度认同|http://www.cnki.com.cn/Article/CJFDTOTAL-JYDB200301015.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|嘉应大学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYDB|344|25 +1792012|激光跟踪仪转站热变形误差建模与补偿方法|http://www.cnki.com.cn/Article/CJFDTOTAL-HKXB201509040.htm|杨宝旒,俞慈君,金涨军,李江雄,李明飞|33314094,22368581,32826533,09376370,33121962|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33314094%3b22368581%3b32826533%3b09376370%3b33121962%3b&scholarName=%e6%9d%a8%e5%ae%9d%e6%97%92|航空学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HKXB|195|9 +1792012|飞机自动化对接中装配准确度的小样本分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJJ200904020.htm|余锋杰,俞慈君,王青,李江雄,贾叔仕,柯映林,秦龙刚,陈学良,杨卫东,宋承志|11083698,22368581,10281816,09376370,09329213,05964661,22032032,22368582,22168331,13977397|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11083698%3b22368581%3b10281816%3b09376370%3b09329213%3b05964661%3b22032032%3b22368582%3b22168331%3b13977397%3b&scholarName=%e4%bd%99%e9%94%8b%e6%9d%b0|计算机集成制造系统|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJJ|608|19 +1792012|6R机器人实时逆运动学算法研究|http://www.cnki.com.cn/Article/CJFDTOTAL-KZLY200806011.htm|刘松国,朱世强,李江波,王宣银|09379662,10284954,09376368,05968445|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09379662%3b10284954%3b09376368%3b05968445%3b&scholarName=%e5%88%98%e6%9d%be%e5%9b%bd|控制理论与应用|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KZLY|961|47 +1792012|肝细胞癌合并门静脉癌栓的诊治进展|http://www.cnki.com.cn/Article/CJFDTOTAL-XXHB201724001.htm|朱焕兵,李江涛|37654677,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37654677%3b09396325%3b&scholarName=%e6%9c%b1%e7%84%95%e5%85%b5|世界华人消化杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XXHB|126|1 +1792012|微细管道内壁三维测量技术研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJF200501022.htm|吴恩启,李江雄,柯映林|09376370,05964661,10282202|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376370%3b05964661%3b10282202%3b&scholarName=%e5%90%b4%e6%81%a9%e5%90%af|计算机辅助设计与图形学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJF|253|16 +1792012|腺相关病毒介导的PLB基因反义RNA对糖尿病大鼠心肌肌浆网Ca~(2+)-ATPase活性的作用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZBLS201010014.htm|李江,胡申江|09360589,05966928|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09360589%3b05966928%3b&scholarName=%e6%9d%8e%e6%b1%9f|中国病理生理杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZBLS|57|1 +1792012|两介质段瞬变流的修正特征线法|http://www.cnki.com.cn/Article/CJFDTOTAL-GCRB200302017.htm|李江云,王乐勤|00005133,09377267|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=00005133%3b09377267%3b&scholarName=%e6%9d%8e%e6%b1%9f%e4%ba%91|工程热物理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GCRB|81|5 +1792012|基于孔特征约束的飞机部件位姿优化方法|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJJ201702003.htm|王青,郑飞,任英武,程亮,李江雄,柯映林|10281816,10284513,36634159,09325236,09376370,14764171|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10281816%3b10284513%3b36634159%3b09325236%3b09376370%3b14764171%3b&scholarName=%e7%8e%8b%e9%9d%92|计算机集成制造系统|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJJ|143|2 +1792012|曲面上曲线约束变形及光顺技术研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC200809021.htm|王青,李江雄,柯映林,刘伟|09376370,10281816,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376370%3b10281816%3b05964661%3b&scholarName=%e7%8e%8b%e9%9d%92|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|196|6 +1792012|平面多边形方向及内外点判断的新方法|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJF200006001.htm|李维诗,李江雄,柯映林|05964661,10279168,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964661%3b10279168%3b09376370%3b&scholarName=%e6%9d%8e%e7%bb%b4%e8%af%97|计算机辅助设计与图形学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJF|631|107 +1792012|侧脑室注射Conantokin-G类似物拮抗吗啡诱导小鼠奖赏效应的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-YWYB201303006.htm|李江敏,李鹏飞,朱永平|29240015,10279127,10285014|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29240015%3b10279127%3b10285014%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%95%8f|中国药物依赖性杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YWYB|41|0 +1792012|反求工程中的曲面重构技术|http://www.cnki.com.cn/Article/CJFDTOTAL-QCGC200006001.htm|陈志杨,李江雄,柯映林|05964661,09376370,09369665|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964661%3b09376370%3b09369665%3b&scholarName=%e9%99%88%e5%bf%97%e6%9d%a8|汽车工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QCGC|348|56 +1792012|影响喹诺酮C-4位构效关系的若干因素|http://www.cnki.com.cn/Article/CJFDTOTAL-HXYJ903.012.htm|李江波,林瑞森,俞庆森|00001681,05964381,09376368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=00001681%3b05964381%3b09376368%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|化学研究与应用|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HXYJ|96|7 +1792012|教育制度的缺陷及补救路径*|http://www.cnki.com.cn/Article/CJFDTOTAL-JYDB200204017.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|嘉应大学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYDB|309|17 +1792012|飞机自动化装配过程数据集成与实现|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC200902004.htm|余锋杰,王青,李江雄,董辉跃,柯映林,杨卫东,秦龙刚|11083698,10281816,09376370,09371533,05964661,22168331,22032032|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11083698%3b10281816%3b09376370%3b09371533%3b05964661%3b22168331%3b22032032%3b&scholarName=%e4%bd%99%e9%94%8b%e6%9d%b0|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|851|28 +1792012|捆绑式胰胃吻合术|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHZW201703001.htm|金赟,李江涛,彭淑牖|28453975,09396325,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28453975%3b09396325%3b05967238%3b&scholarName=%e9%87%91%e8%b5%9f|中华肝脏外科手术学电子杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHZW|34|1 +1792012|内镜技术在急性胆源性胰腺炎诊治中的合理应用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGWK201708030.htm|于源泉,李江涛|26910508,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26910508%3b09396325%3b&scholarName=%e4%ba%8e%e6%ba%90%e6%b3%89|中国实用外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGWK|70|1 +1792012|论教育制度的现代转型|http://www.cnki.com.cn/Article/CJFDTOTAL-FLJY200504001.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|湖南师范大学教育科学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FLJY|410|7 +1792012|基于狭义相对论的新光线跟踪算法|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJX199809005.htm|李江,彭群生|05964985,09377264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964985%3b09377264%3b&scholarName=%e6%9d%8e%e6%b1%9f|计算机学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJX|112|6 +1792012|飞机航炮的数字化校准分析|http://www.cnki.com.cn/Article/CJFDTOTAL-GXJM201312017.htm|黄鹏,王青,俞慈君,任英武,任义,李江雄,宋西民,柯映林|09329062,10281816,22368581,30556895,30556896,09376370,30556897,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09329062%3b10281816%3b22368581%3b30556895%3b30556896%3b09376370%3b30556897%3b05964661%3b&scholarName=%e9%bb%84%e9%b9%8f|光学精密工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GXJM|156|10 +1792012|微型管道机器人钹形压电复合驱动器的结构设计及优化|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGJX200518003.htm|郭彤,李江雄,柯映林|09376370,09327548,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376370%3b09327548%3b05964661%3b&scholarName=%e9%83%ad%e5%bd%a4|中国机械工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGJX|204|9 +1792012|论教育机会平等|http://www.cnki.com.cn/Article/CJFDTOTAL-JYLT200412007.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|当代教育论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYLT|533|15 +1792012|基于动力学模型的飞机大部件调姿轨迹规划|http://www.cnki.com.cn/Article/CJFDTOTAL-HKXB201409031.htm|黄鹏,王青,李江雄,柯映林,张春山|09329062,10281816,09376370,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09329062%3b10281816%3b09376370%3b05964661%3b&scholarName=%e9%bb%84%e9%b9%8f|航空学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HKXB|350|5 +1792012|胰腺囊性肿瘤的规范化诊治|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHZW201606001.htm|于源泉,李江涛,彭淑牖|26910508,09396325,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26910508%3b09396325%3b05967238%3b&scholarName=%e4%ba%8e%e6%ba%90%e6%b3%89|中华肝脏外科手术学电子杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHZW|84|1 +1792012|肝切除术中血流控制方法的进展|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGWK200401011.htm|彭淑牖,李江涛|05967238,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967238%3b09396325%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|中国实用外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGWK|163|15 +1792012|接受高等教育机会不公的制度性因素分析|http://www.cnki.com.cn/Article/CJFDTOTAL-GJTA200201006.htm|彭玉生,李江源|05967865,09335017|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b09335017%3b&scholarName=%e5%bd%ad%e7%8e%89%e7%94%9f|高教探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GJTA|389|13 +1792012|金融供求的变迁与金融中介体系的建立——对我国农村金融发展状况的分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TJJC200623050.htm|李江,张莉|09377264,09391527|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b09391527%3b&scholarName=%e6%9d%8e%e6%b1%9f|统计与决策|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TJJC|225|1 +1792012|茶多酚和黄芩苷对百草枯中毒大鼠血清及肺组织TGF-β1和HIF-1α表达的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZJZH201409006.htm|徐丽倩,李江,李璐璐,李剑平,刘晓璐,何勇,邓丹凤,裘云庆|24854038,07232812,25970942,09360588,29271317,23713224,31710638,09361175|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24854038%3b07232812%3b25970942%3b09360588%3b29271317%3b23713224%3b31710638%3b09361175%3b&scholarName=%e5%be%90%e4%b8%bd%e5%80%a9|浙江中西医结合杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZJZH|119|6 +1792012|粉煤灰合成沸石过程溶解性机理及吸附潜能研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GSYT201102043.htm|陈晓燕,李江丽,王行,周林强,张志剑|10276916,25893526,09348158,24672378,09354801|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10276916%3b25893526%3b09348158%3b24672378%3b09354801%3b&scholarName=%e9%99%88%e6%99%93%e7%87%95|硅酸盐通报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GSYT|315|3 +1792012|论教育制度的逻辑结构与权力结构|http://www.cnki.com.cn/Article/CJFDTOTAL-GWZX200405004.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|复旦教育论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GWZX|346|6 +1792012|肝静脉和下腔静脉血流控制在高难度肝肿瘤切除中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHWK200405001.htm|彭淑牖,刘颖斌,许斌,蔡秀军,牟一平,吴育连,曹利平,方河清,王建伟,李海军,李江涛,王新宝,邓贵龙|09396988,05964914,09394453,05965597,10285206,09358516,09396610,10285310,05967238,05969822,05966306,05969176,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396988%3b05964914%3b09394453%3b05965597%3b10285206%3b09358516%3b09396610%3b10285310%3b05967238%3b05969822%3b05966306%3b05969176%3b09396325%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|中华外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHWK|250|48 +1792012|肝后隧道的建立与绕肝带的使用在高难度肝切除术中的作用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHYX200319001.htm|彭淑牖,曹利平,李江涛,王新保,刘颖斌,吴育连,方河清,王建伟,许斌,杜军|05969822,05966306,05969176,09396325,09394453,09396005,09357689,09396610,05967238,09396988|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05969822%3b05966306%3b05969176%3b09396325%3b09394453%3b09396005%3b09357689%3b09396610%3b05967238%3b09396988%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|中华医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHYX|268|69 +1792012|人肝癌细胞耐受As_2O_3分子机制的初步研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SYZZ200301010.htm|李江涛,区庆嘉,刘颖斌,方河清,许斌,邓贵龙,王建伟|05973310,10285206,09396610,05966306,05969822,09396988,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05973310%3b10285206%3b09396610%3b05966306%3b05969822%3b09396988%3b09396325%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b6%9b|实用肿瘤杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SYZZ|56|4 +1792012|基于实测数据的翼身交点接头干涉检测方法|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC201802001.htm|王青,范胜豪,程亮,李江雄,柯映林|10281816,38107604,09325236,09376370,14764171|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10281816%3b38107604%3b09325236%3b09376370%3b14764171%3b&scholarName=%e7%8e%8b%e9%9d%92|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|51|0 +1792012|彭氏胰胃吻合术——Ⅰ型与Ⅱ型的比较(兼论Ⅲ型和Ⅳ型)|http://www.cnki.com.cn/Article/CJFDTOTAL-WKLL200905016.htm|彭淑牖,王许安,刘颖斌,洪德飞,李江涛,陶峰,谭志健|05967238,17614342,22194136,09364036,09396325,23041133,06842789|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967238%3b17614342%3b22194136%3b09364036%3b09396325%3b23041133%3b06842789%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|外科理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WKLL|266|40 +1792012|潜入式微细管道机器人的全程定位方法|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGJX200416002.htm|金成柱,李江雄,柯映林|05964661,09376370,10278760|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964661%3b09376370%3b10278760%3b&scholarName=%e9%87%91%e6%88%90%e6%9f%b1|中国机械工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGJX|220|12 +1792012|性别歧视、能力和信任——基于可选择的信任博弈实验|http://www.cnki.com.cn/Article/CJFDTOTAL-NFJJ201511006.htm|汪思绮,郭文敏,虞爽,李江南,陈叶烽|33131631,34069124,34069125,34069126,23813191|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33131631%3b34069124%3b34069125%3b34069126%3b23813191%3b&scholarName=%e6%b1%aa%e6%80%9d%e7%bb%ae|南方经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NFJJ|688|0 +1792012|基于三维热变形原理的转站误差补偿方法|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC201507002.htm|俞慈君,杨宝旒,金涨军,李江雄,柯映林,李明飞,方强|22368581,33314094,32826533,09376370,05964661,33121962,09326174|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22368581%3b33314094%3b32826533%3b09376370%3b05964661%3b33121962%3b09326174%3b&scholarName=%e4%bf%9e%e6%85%88%e5%90%9b|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|151|7 +1792012|肝脏射频消融在转移性胰血管活性肠肽瘤中的作用|http://www.cnki.com.cn/Article/CJFDTOTAL-GDWZ201206005.htm|李江涛,金赟|09396325,28453975|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b28453975%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b6%9b|肝胆外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDWZ|32|1 +1792012|论社会转型时期教育制度执行中的制度规避|http://www.cnki.com.cn/Article/CJFDTOTAL-JYLT200403004.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|当代教育论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYLT|199|13 +1792012|肝门胆管癌:我们取得进展了吗?|http://www.cnki.com.cn/Article/CJFDTOTAL-GDYW201506006.htm|金赟,李江涛|28453975,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28453975%3b09396325%3b&scholarName=%e9%87%91%e8%b5%9f|肝胆胰外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDYW|118|0 +1792012|飞机数字化装配系统数据集成技术|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC201505009.htm|窦亚冬,王青,李江雄,柯映林|31547404,10281816,09376370,14764171|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31547404%3b10281816%3b09376370%3b14764171%3b&scholarName=%e7%aa%a6%e4%ba%9a%e5%86%ac|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|279|4 +1792012|基于容差约束的机翼最优位姿评价算法|http://www.cnki.com.cn/Article/CJFDTOTAL-JXXB201519016.htm|王青,程亮,程志彬,李江雄,柯映林|10281816,09325236,30279854,09376370,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10281816%3b09325236%3b30279854%3b09376370%3b05964661%3b&scholarName=%e7%8e%8b%e9%9d%92|机械工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXXB|170|3 +1792012|基于三坐标定位器的大部件调姿机构误差分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JDGC201003003.htm|李晨,方强,李江雄|09330760,09326174,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09330760%3b09326174%3b09376370%3b&scholarName=%e6%9d%8e%e6%99%a8|机电工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JDGC|248|17 +1792012|神经-模糊预测控制算法及应用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC200202002.htm|李江|09377264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b&scholarName=%e6%9d%8e%e6%b1%9f|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|258|21 +1792012|PCB测试系统自动绕线与标记算法设计实现|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC200106005.htm|李江波,潘雪增,平玲娣|09335022,09381727,09376368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09335022%3b09381727%3b09376368%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|75|1 +1792012|一个基于波动光学的光栅衍射光照模型|http://www.cnki.com.cn/Article/CJFDTOTAL-ZKJZ199803003.htm|李江,彭群生|09377264,05964985|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b05964985%3b&scholarName=%e6%9d%8e%e6%b1%9f|自然科学进展|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZKJZ|115|3 +1792012|胰十二指肠切除术后胰消化道重建方式的合理选择|http://www.cnki.com.cn/Article/CJFDTOTAL-GDWZ201106003.htm|彭淑牖,李江涛|05967238,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967238%3b09396325%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|肝胆外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDWZ|163|11 +1792012|三种不同胰肠吻合术可靠性比较的实验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHWK200605016.htm|刘颖斌,朱锦辉,王建伟,方河清,李江涛,刘付宝,薛建锋,王许安,蔡炜龙,王俊,彭淑牖|09396736,09396988,05969822,09396325,10285517,10895485,10879493,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396736%3b09396988%3b05969822%3b09396325%3b10285517%3b10895485%3b10879493%3b05967238%3b&scholarName=%e5%88%98%e9%a2%96%e6%96%8c|中华外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHWK|199|26 +1792012|绕肝提拉法在正中裂劈开肝脏切除中的意义|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHWK200519003.htm|彭淑牖,钱浩然,李江涛,冯雪冬,刘颖斌,王建伟,许斌,杜建军,曹利平,方河清|09395914,05967238,09396610,09394453,10285219,05966306,09394991,09396988,05969822,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09395914%3b05967238%3b09396610%3b09394453%3b10285219%3b05966306%3b09394991%3b09396988%3b05969822%3b09396325%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|中华外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHWK|259|30 +1792012|供体骨髓间充质干细胞干预非协调性异种肝移植免疫排斥反应的实验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHWK200519006.htm|王建伟,刘颖斌,许斌,李江涛,钱浩然,张茂,彭淑牖|09396325,05966306,10286647,09401769,09396988,05967238,09359372|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b05966306%3b10286647%3b09401769%3b09396988%3b05967238%3b09359372%3b&scholarName=%e7%8e%8b%e5%bb%ba%e4%bc%9f|中华外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHWK|260|23 +1792012|低压大流量自激振荡脉冲射流喷嘴结构参数优化研究|http://www.cnki.com.cn/Article/CJFDTOTAL-LTJX200403002.htm|王乐勤,王循明,徐如良,李江云|09385914,00005133,09388258,09377267|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09385914%3b00005133%3b09388258%3b09377267%3b&scholarName=%e7%8e%8b%e4%b9%90%e5%8b%a4|流体机械|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LTJX|419|39 +1792012|教育制度的本质与现代转型(下)——基于社会哲学的视野|http://www.cnki.com.cn/Article/CJFDTOTAL-ZJSK200402001.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|江苏大学学报(高教研究版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZJSK|299|8 +1792012|教育规范的基础和自由发展的中介|http://www.cnki.com.cn/Article/CJFDTOTAL-JYLL200419005.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|教育理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYLL|249|5 +1792012|现代教育:促进人与社会可持续发展的融合|http://www.cnki.com.cn/Article/CJFDTOTAL-SLSB200101025.htm|李江源,巫春华|05967865,07765129|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b07765129%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|华北水利水电学院学报(社科版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SLSB|107|1 +1792012|肝内胆管细胞癌的淋巴结清扫:共识和争议|http://www.cnki.com.cn/Article/CJFDTOTAL-GDWZ201605002.htm|吴锦洪,李江涛|36481571,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36481571%3b09396325%3b&scholarName=%e5%90%b4%e9%94%a6%e6%b4%aa|肝胆外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDWZ|97|1 +1792012|肝门胆管癌的手术方式及联合肝胰十二指肠切除术|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGWK200508004.htm|彭淑牖,李江涛|05967238,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967238%3b09396325%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|中国实用外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGWK|248|6 +1792012|原油储存沉降规律及罐底油泥形成机理研究|http://www.cnki.com.cn/Article/CJFDTOTAL-YQCY200407012.htm|徐如良,韩子兴,焦磊,李江云,侯天明,王乐勤|20312082,20570816,00005133,10278740,09377267,09388258|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=20312082%3b20570816%3b00005133%3b10278740%3b09377267%3b09388258%3b&scholarName=%e5%be%90%e5%a6%82%e8%89%af|油气储运|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YQCY|464|23 +1792012|自激振荡脉冲喷嘴结构参数配比试验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GCRB200406015.htm|王乐勤,王循明,徐如良,李江云|00005133,09377267,09385914,09388258|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=00005133%3b09377267%3b09385914%3b09388258%3b&scholarName=%e7%8e%8b%e4%b9%90%e5%8b%a4|工程热物理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GCRB|563|56 +1792012|胰腺囊性肿瘤的外科决策|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHZW201606003.htm|周冬儿,李江涛|36238449,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36238449%3b09396325%3b&scholarName=%e5%91%a8%e5%86%ac%e5%84%bf|中华肝脏外科手术学电子杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHZW|49|0 +1792012|二级脾蒂离断术在门静脉高压脾切除术中应用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGWK200801023.htm|孔颖,刘颖斌,王许安,马孝明,陈燕,陈德琴,翁伟宏,李江涛,曹利平,彭淑牖|11334973,05966306,10895485,10906828,11112115,10998166,11145045,09396325,09394453,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11334973%3b05966306%3b10895485%3b10906828%3b11112115%3b10998166%3b11145045%3b09396325%3b09394453%3b05967238%3b&scholarName=%e5%ad%94%e9%a2%96|中国实用外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGWK|233|32 +1792012|基于力密度方法的NURBS曲线和曲面变形框架|http://www.cnki.com.cn/Article/CJFDTOTAL-JXXB200703025.htm|王青,柯映林,李江雄|10281816,09376370,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10281816%3b09376370%3b05964661%3b&scholarName=%e7%8e%8b%e9%9d%92|机械工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXXB|250|15 +1792012|论教育制度的局限与完善路径|http://www.cnki.com.cn/Article/CJFDTOTAL-FLJY200303003.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|湖南师范大学教育科学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FLJY|363|8 +1792012|1-取代-7-{3-[(乙氨基)甲基]-1-吡咯基}喹诺酮N1位定量构效关系|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH907.031.htm|李江波,咸春颖,林瑞森,俞庆森|09387832,05964381,00001681,09376368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09387832%3b05964381%3b00001681%3b09376368%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|56|4 +1792012|1,4,5-三磷酸肌醇受体与心血管疾病|http://www.cnki.com.cn/Article/CJFDTOTAL-GWLK200705002.htm|许蓓,李江,胡申江|05966928,09361786,09360589|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05966928%3b09361786%3b09360589%3b&scholarName=%e8%ae%b8%e8%93%93|国际内科学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GWLK|366|3 +1792012|基于SolidWorks的级进模标准件库的建立|http://www.cnki.com.cn/Article/CJFDTOTAL-MJGY200210002.htm|吴央芳,李江雄,柯映林|09387249,09376370,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09387249%3b09376370%3b05964661%3b&scholarName=%e5%90%b4%e5%a4%ae%e8%8a%b3|模具工业|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/MJGY|111|17 +1792012|飞机附件数字化校准系统的开发与应用|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJJ201512020.htm|黄鹏,王青,俞慈君,李江雄,柯映林|09329062,10281816,22368581,09376370,14764171|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09329062%3b10281816%3b22368581%3b09376370%3b14764171%3b&scholarName=%e9%bb%84%e9%b9%8f|计算机集成制造系统|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJJ|160|2 +1792012|胆囊癌肝转移模型的建立和高转移细胞亚群的筛选|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHYX200630010.htm|刘颖斌,何小伟,王建伟,李江涛,李克强,刘付宝,薛建锋,朱锦辉,李兵,彭淑牖|09396325,23004660,05966306,10285517,09396988,05967238,09395088,09396322,09396736,11328426|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b23004660%3b05966306%3b10285517%3b09396988%3b05967238%3b09395088%3b09396322%3b09396736%3b11328426%3b&scholarName=%e5%88%98%e9%a2%96%e6%96%8c|中华医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHYX|215|15 +1792012|教育失序问题的文化救治(上)|http://www.cnki.com.cn/Article/CJFDTOTAL-ZJSK200501001.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|江苏大学学报(高教研究版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZJSK|146|5 +1792012|自由曲面模型全局美化技术|http://www.cnki.com.cn/Article/CJFDTOTAL-JXXB200705029.htm|范树迁,李江雄,柯映林|09372005,09376370,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09372005%3b09376370%3b05964661%3b&scholarName=%e8%8c%83%e6%a0%91%e8%bf%81|机械工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXXB|164|4 +1792012|基于孔边距约束和Shepard插值的孔位修正方法|http://www.cnki.com.cn/Article/CJFDTOTAL-HKXB201512026.htm|王青,郑守国,李江雄,柯映林,陈磊|10281816,34105862,09376370,05964661,24145399|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10281816%3b34105862%3b09376370%3b05964661%3b24145399%3b&scholarName=%e7%8e%8b%e9%9d%92|航空学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HKXB|150|2 +1792012|肝癌合并下腔静脉癌栓的外科治疗|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHWK200613009.htm|彭淑牖,蔡秀军,牟一平,洪德飞,许斌,钱浩然,刘颖斌,方河清,李江涛,王建伟,刘付宝,薛建锋|05964914,05967238,05965597,09364036,05966306,05969822,09395088,10285517,09396988,09396325,09401769,10286647|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964914%3b05967238%3b05965597%3b09364036%3b05966306%3b05969822%3b09395088%3b10285517%3b09396988%3b09396325%3b09401769%3b10286647%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|中华外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHWK|299|17 +1792012|肝尾状叶原发性肝细胞肝癌的外科治疗|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHWK200501015.htm|彭淑牖,冯雪冬,刘颖斌,钱浩然,李江涛,王建伟,许斌,方河清,曹利平,沈宏伟,杜建军,蔡秀军,牟一平|09395914,09396948,05964914,05966306,05969822,09396325,09394453,05967238,05965597,09396988,09394991,09396610,10285219|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09395914%3b09396948%3b05964914%3b05966306%3b05969822%3b09396325%3b09394453%3b05967238%3b05965597%3b09396988%3b09394991%3b09396610%3b10285219%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|中华外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHWK|286|20 +1792012|民生新闻:公信力的基础构建与功能提升|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGCB201020008.htm|张莉,李江|09391527,25098544|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09391527%3b25098544%3b&scholarName=%e5%bc%a0%e8%8e%89|中国出版|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGCB|232|4 +1792012|急性胆源性胰腺炎的外科治疗|http://www.cnki.com.cn/Article/CJFDTOTAL-GDWZ200701004.htm|彭淑牖,李江涛,刘笑雷|09396325,11227136,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b11227136%3b05967238%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|肝胆外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDWZ|163|20 +1792012|基于序列二次规划算法的定位器坐标快速标定方法|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC201702013.htm|王青,余小光,乔明杰,赵安安,程亮,李江雄,柯映林|10281816,34892574,20858076,34611437,09325236,09376370,14764171|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10281816%3b34892574%3b20858076%3b34611437%3b09325236%3b09376370%3b14764171%3b&scholarName=%e7%8e%8b%e9%9d%92|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|118|1 +1792012|飞机数字化装配机翼姿态评价及调整方法|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC201407021.htm|王青,梁琴,李江雄,柯映林|10281816,31393398,09376370,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10281816%3b31393398%3b09376370%3b05964661%3b&scholarName=%e7%8e%8b%e9%9d%92|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|254|4 +1792012|工业油罐底泥处理现状与试验探索|http://www.cnki.com.cn/Article/CJFDTOTAL-SYAQ200303013.htm|徐如良,王乐勤,孟庆鹏,周自忠,刘春平,李江云,张晓方,黄永港|09388258,21156186,17395174,21465033,00005133,20079905,21457888,09377267|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09388258%3b21156186%3b17395174%3b21465033%3b00005133%3b20079905%3b21457888%3b09377267%3b&scholarName=%e5%be%90%e5%a6%82%e8%89%af|石油化工安全技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SYAQ|515|79 +1792012|用蒙特卡罗方法研究生物组织中的光分布|http://www.cnki.com.cn/Article/CJFDTOTAL-GXXB401.020.htm|孙威,应金品,李江,林煜|09377264,09377440,09389900,09383558|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b09377440%3b09389900%3b09383558%3b&scholarName=%e5%ad%99%e5%a8%81|光学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GXXB|575|60 +1792012|中华蜜蜂磷酸甘油变位酶(Phosphoglycerate Mutase)基因的序列分析(英文)|http://www.cnki.com.cn/Article/CJFDTOTAL-XCKG200304002.htm|李江红,王敦,安世恒,刘艳荷,张传溪|10279708,05971842,09347533,09317841,09377265|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10279708%3b05971842%3b09347533%3b09317841%3b09377265%3b&scholarName=%e6%9d%8e%e6%b1%9f%e7%ba%a2|Entomologia Sinica|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XCKG|25|1 +1792012|通用绕线式PCB测试系统的算法与实现|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJJ200106014.htm|李江波,潘雪增,平玲娣|09376368,09381727,09335022|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b09381727%3b09335022%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|计算机集成制造系统-CIMS|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJJ|38|0 +1792012|甘氨酸对急性坏死性胰腺炎鼠血和胰腺组织中TNF-α、IL-1β、IL-6、IL-8和IL-10的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZBLS200602008.htm|李海军,彭淑牖,刘颖斌,李江涛,许斌,王建伟|05966306,09396988,05967238,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05966306%3b09396988%3b05967238%3b09396325%3b&scholarName=%e6%9d%8e%e6%b5%b7%e5%86%9b|中国病理生理杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZBLS|291|15 +1792012|基于位置传感器的微细管道内表面无损检测|http://www.cnki.com.cn/Article/CJFDTOTAL-GDZJ200509016.htm|吴恩启,柯映林,李江雄|05964661,09376370,10282202|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964661%3b09376370%3b10282202%3b&scholarName=%e5%90%b4%e6%81%a9%e5%90%af|光电子·激光|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDZJ|246|14 +1792012|逆行性肝尾状叶切除7例报告|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHWK200523006.htm|彭淑牖,刘付宝,刘颖斌,李江涛,薛建峰,王建伟,冯雪东,方河清,许斌,钱浩然,洪德飞|09395088,05967238,14773518,05969822,10286647,09396988,09396325,09364036,10285516,05966306,09401769|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09395088%3b05967238%3b14773518%3b05969822%3b10286647%3b09396988%3b09396325%3b09364036%3b10285516%3b05966306%3b09401769%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|中华外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHWK|200|21 +1792012|捆绑式胰肠吻合术在胰十二指肠切除术中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHYX200412007.htm|刘颖斌,王建伟,方河清,彭承宏,吴育连,许斌,邓贵龙,李海军,李江涛,王新保|05974732,05969176,05966306,05969822,10286647,09396325,10285310,09396005,10285206,09396988|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05974732%3b05969176%3b05966306%3b05969822%3b10286647%3b09396325%3b10285310%3b09396005%3b10285206%3b09396988%3b&scholarName=%e5%88%98%e9%a2%96%e6%96%8c|中华医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHYX|177|33 +1792012|导言:胰腺癌诊治前沿和展望|http://www.cnki.com.cn/Article/CJFDTOTAL-YXZL201501003.htm|李江涛,彭淑牖|09396325,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b05967238%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b6%9b|医学与哲学(B)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXZL|81|0 +1792012|全反式维甲酸对肝癌细胞连接蛋白基因表达及细胞间隙连接通讯功能的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHYX200520016.htm|刘颖斌,许斌,王建伟,方河清,李江涛,李海军,唐喆,钱浩然,冯雪冬,彭淑牖|09395914,05966306,05969822,09396325,10286647,09394991,10285310,05967238,09358481,09396988|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09395914%3b05966306%3b05969822%3b09396325%3b10286647%3b09394991%3b10285310%3b05967238%3b09358481%3b09396988%3b&scholarName=%e5%88%98%e9%a2%96%e6%96%8c|中华医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHYX|206|11 +1792012|教育政策失真原因的综合探析|http://www.cnki.com.cn/Article/CJFDTOTAL-XDJY200005012.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|现代教育论丛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDJY|350|6 +1792012|基于离散模型的曲面光顺性分析算法|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGJX200612000.htm|李奇敏,李江雄,柯映林|09376370,10279132,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376370%3b10279132%3b05964661%3b&scholarName=%e6%9d%8e%e5%a5%87%e6%95%8f|中国机械工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGJX|145|4 +1792012|教育制度的本质与现代转型(上)——基于社会哲学的视野|http://www.cnki.com.cn/Article/CJFDTOTAL-ZJSK200401001.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|江苏大学学报(高教研究版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZJSK|330|3 +1792012|教育政策失真的因素分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JYLL200111004.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|教育理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYLL|1142|81 +1792012|大学的“学”与“用”|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGGJ200012021.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|中国高教研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGGJ|64|4 +1792012|论社会转型时期的教育失序与教育制度重建|http://www.cnki.com.cn/Article/CJFDTOTAL-JYLT200306002.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|当代教育论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYLT|434|28 +1792012|药物成瘾中的CaMK Ⅱ信号转导机制|http://www.cnki.com.cn/Article/CJFDTOTAL-YWYB201306003.htm|李鹏飞,李江敏,朱永平|10279127,29240015,10285014|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10279127%3b29240015%3b10285014%3b&scholarName=%e6%9d%8e%e9%b9%8f%e9%a3%9e|中国药物依赖性杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YWYB|124|2 +1792012|基于局部协调设计的复杂自由曲面模型拓扑还原技术|http://www.cnki.com.cn/Article/CJFDTOTAL-JXXB200907005.htm|边柯柯,李江雄,柯映林|23129400,09376370,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23129400%3b09376370%3b05964661%3b&scholarName=%e8%be%b9%e6%9f%af%e6%9f%af|机械工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXXB|173|1 +1792012|一种新型电动蝶阀调节特性的数值计算及实验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-YYYQ200605022.htm|沈新荣,李江莉,李增珍,陆冰|14054498,09335888,11650363,09376369|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14054498%3b09335888%3b11650363%3b09376369%3b&scholarName=%e6%b2%88%e6%96%b0%e8%8d%a3|液压与气动|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YYYQ|186|17 +1792012|基于残留高度约束的插刀粗加工刀位轨迹生成算法|http://www.cnki.com.cn/Article/CJFDTOTAL-MJGY200307003.htm|巫新海,李江雄|09376370,09386128|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376370%3b09386128%3b&scholarName=%e5%b7%ab%e6%96%b0%e6%b5%b7|模具工业|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/MJGY|84|16 +1792012|胰腺远端切除术胰腺残端处理方法进展|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGWK200812037.htm|马锐,李江涛,彭淑牖|21914599,09396325,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21914599%3b09396325%3b05967238%3b&scholarName=%e9%a9%ac%e9%94%90|中国实用外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGWK|193|1 +1792012|基于Levenberg-Marquardt算法的线性热变形补偿系数矩阵优化|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC201606007.htm|俞慈君,宋凯,李江雄,金涨军,樊新田,章明|22368581,09383425,09376370,32826533,35006706,09392551|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22368581%3b09383425%3b09376370%3b32826533%3b35006706%3b09392551%3b&scholarName=%e4%bf%9e%e6%85%88%e5%90%9b|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|89|1 +1792012|蜜蜂囊状幼虫病毒病的Nest-PCR检测|http://www.cnki.com.cn/Article/CJFDTOTAL-KJTB200706013.htm|许益鹏,章奕卿,李江红,邢丽苹,张传溪|10826568,10826572,09387465,09390728|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10826568%3b10826572%3b09387465%3b09390728%3b&scholarName=%e8%ae%b8%e7%9b%8a%e9%b9%8f|科技通报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJTB|146|29 +1792012|1-环丙基-5-取代-7-(4-甲基哌嗪基)-6,8-二氟-1,4-二氢-4-氧-3-喹啉羧酸的定量构效关系|http://www.cnki.com.cn/Article/CJFDTOTAL-JSYH2000Z1010.htm|李江波,邹建卫,林瑞森,俞庆森|05964381,05969941,00001681,09376368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964381%3b05969941%3b00001681%3b09376368%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|计算机与应用化学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSYH|72|3 +1792012|肝门胆管癌手术切除技巧|http://www.cnki.com.cn/Article/CJFDTOTAL-GDWZ200601006.htm|彭淑牖,李江涛|09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|肝胆外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDWZ|226|10 +1792012|肝内胆管癌新辅助化疗后手术切除1例报告并文献复习|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGWK201707038.htm|吴锦洪,周冬儿,于源泉,李百周,卢良骥,刘达人,王亮,彭淑牖,李江涛|36481571,36238449,26910508,21918073,31624269,09395086,29174587,05967238,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36481571%3b36238449%3b26910508%3b21918073%3b31624269%3b09395086%3b29174587%3b05967238%3b09396325%3b&scholarName=%e5%90%b4%e9%94%a6%e6%b4%aa|中国实用外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGWK|49|0 +1792012|捆绑式胰胃吻合术:改进与优化|http://www.cnki.com.cn/Article/CJFDTOTAL-WKLL201506002.htm|于源泉,李江涛,彭淑牖|26910508,09396325,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26910508%3b09396325%3b05967238%3b&scholarName=%e4%ba%8e%e6%ba%90%e6%b3%89|外科理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WKLL|61|2 +1792012|最佳混合范数逼近|http://www.cnki.com.cn/Article/CJFDTOTAL-SXZZ199001005.htm|李江波|09376368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|数学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SXZZ|30|0 +1792012|基于LMI的永磁直线电机H∞鲁棒控制器设计|http://www.cnki.com.cn/Article/CJFDTOTAL-JDGC201106017.htm|陈国锋,方强,李江雄|09369089,09326174,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09369089%3b09326174%3b09376370%3b&scholarName=%e9%99%88%e5%9b%bd%e9%94%8b|机电工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JDGC|269|11 +1792012|先天性胆总管囊肿癌变20例报告|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGWK200709026.htm|刘颖斌,马孝明,王建伟,李江涛,嵇振岭,孔颖,王许安,蔡炜龙,王俊,曹利平,彭淑牖|09396988,10285451,09394453,09396325,16110284,10895485,10906828,11334973,10879493,05966306,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396988%3b10285451%3b09394453%3b09396325%3b16110284%3b10895485%3b10906828%3b11334973%3b10879493%3b05966306%3b05967238%3b&scholarName=%e5%88%98%e9%a2%96%e6%96%8c|中国实用外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGWK|286|18 +1792012|一种自动流量平衡阀的实验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-LTJX200611001.htm|沈新荣,李增珍,李江莉|09376369,11650363,09335888|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376369%3b11650363%3b09335888%3b&scholarName=%e6%b2%88%e6%96%b0%e8%8d%a3|流体机械|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LTJX|182|24 +1792012|缝隙连接脱耦联剂庚醇对大鼠缺血-再灌注损伤心肌的保护作用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZBLS200506008.htm|陈宝平,毛红娇,范芳燕,李江,夏强|09318546,09360589,09371980,09387814,08661623|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09318546%3b09360589%3b09371980%3b09387814%3b08661623%3b&scholarName=%e9%99%88%e5%ae%9d%e5%b9%b3|中国病理生理杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZBLS|136|16 +1792012|腹膜后肿瘤切除术|http://www.cnki.com.cn/Article/CJFDTOTAL-XHZL201102025.htm|李江涛|09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b6%9b|消化肿瘤杂志(电子版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XHZL|24|0 +1792012|当前宁波银行业“层级化”发展研究|http://www.cnki.com.cn/Article/CJFDTOTAL-NBTX200703014.htm|李江,周昌林|09377264,22941265|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b22941265%3b&scholarName=%e6%9d%8e%e6%b1%9f|宁波通讯|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NBTX|93|1 +1792012|混合范数最佳逼近的存在性和离散化|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC199001018.htm|李江波,叶懋冬|09352176,09376368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09352176%3b09376368%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|浙江大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|23|0 +1792012|飞机翼身交点精加工通信系统设计与集成技术|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC201307020.htm|郑思渊,王青,李江雄,柯映林,李松|27452802,10281816,09376370,05964661,29473117|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27452802%3b10281816%3b09376370%3b05964661%3b29473117%3b&scholarName=%e9%83%91%e6%80%9d%e6%b8%8a|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|151|5 +1792012|紧邻肝内外重要血管的肝血管瘤外科治疗(附27例报告)|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGWK200311008.htm|彭淑牖,刘颖斌,王建伟,李江涛,王新保,许斌,李海军,邓贵龙,唐喆,方河清,吴育连|09396325,09396005,09396610,10285310,10285206,05967238,09358481,09396988,05969822,05966306,05969176|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b09396005%3b09396610%3b10285310%3b10285206%3b05967238%3b09358481%3b09396988%3b05969822%3b05966306%3b05969176%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|中国实用外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGWK|145|14 +1792012|肝静脉主干预置阻断带在高风险肝切除术中的作用和意义|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHPZ200307026.htm|彭淑牖,李江涛,杜建军,刘颖斌,王新保,王建伟,许斌,李海军,方河清|09396325,10285219,09396005,10285310,05966306,05969822,05967238,09396988,09396610|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b10285219%3b09396005%3b10285310%3b05966306%3b05969822%3b05967238%3b09396988%3b09396610%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|中华普通外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHPZ|86|13 +1792012|基于空间栅格支撑与曲率云图引导的点云表面构线|http://www.cnki.com.cn/Article/CJFDTOTAL-JXXB200908031.htm|边柯柯,柯映林,李江雄|23129400,05964661,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23129400%3b05964661%3b09376370%3b&scholarName=%e8%be%b9%e6%9f%af%e6%9f%af|机械工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXXB|204|6 +1792012|术后门静脉血栓高危的肝硬化门静脉高压症患者血浆中内皮素-1、降钙素基因相关肽与肝功能的相关性|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLXZ201411041.htm|谈振华,李江涛,谢平,钱海|31351666,09396325,09419650,23515539|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31351666%3b09396325%3b09419650%3b23515539%3b&scholarName=%e8%b0%88%e6%8c%af%e5%8d%8e|中国老年学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLXZ|35|5 +1792012|并存糖尿病的老年病人手术体会|http://www.cnki.com.cn/Article/CJFDTOTAL-LCWK200302004.htm|彭淑牖,李江涛|09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|临床外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCWK|59|32 +1792012|捆绑式胰胃吻合术患者术后生活质量调查的初步报告|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHZW201703007.htm|王亮,金星,于源泉,周冬儿,金赟,张小小,刘达人,李江涛,彭淑牖|29174587,37204681,26910508,36238449,28453975,37204682,09395086,09396325,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29174587%3b37204681%3b26910508%3b36238449%3b28453975%3b37204682%3b09395086%3b09396325%3b05967238%3b&scholarName=%e7%8e%8b%e4%ba%ae|中华肝脏外科手术学电子杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHZW|17|1 +1792012|中药大黄对急性百草枯中毒大鼠肺损伤的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZWZD201306001.htm|王杰赞,陆远强,李江,李璐璐,裘云庆|23956074,14345792,09360589,25970942,09361175|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23956074%3b14345792%3b09360589%3b25970942%3b09361175%3b&scholarName=%e7%8e%8b%e6%9d%b0%e8%b5%9e|中华危重症医学杂志(电子版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZWZD|115|8 +1792012|基于声学特性检测西瓜内部空心的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-BZSJ201105002.htm|危艳君,饶秀勤,漆兵,李江波|26612353,10280671,26612354,09376368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26612353%3b10280671%3b26612354%3b09376368%3b&scholarName=%e5%8d%b1%e8%89%b3%e5%90%9b|包装与食品机械|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BZSJ|195|9 +1792012|最佳同时L_P逼近|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC198902001.htm|李江波|09376368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|浙江大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|11|0 +1792012|气液活塞泵数值计算的修正特征线法|http://www.cnki.com.cn/Article/CJFDTOTAL-SLXB200206012.htm|李江云|09377267|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377267%3b&scholarName=%e6%9d%8e%e6%b1%9f%e4%ba%91|水利学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SLXB|114|4 +1792012|知识与智慧:现代教育中的二律背反|http://www.cnki.com.cn/Article/CJFDTOTAL-XDJY200101001.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|现代教育论丛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDJY|239|22 +1792012|水平轴潮流能捕获桨叶设计流速研究|http://www.cnki.com.cn/Article/CJFDTOTAL-HYGC201602010.htm|林躜,张利,李江花,姜楚华,陈俊华,杨灿军|17245202,34643291,32941763,33012167,09369163,21919713|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17245202%3b34643291%3b32941763%3b33012167%3b09369163%3b21919713%3b&scholarName=%e6%9e%97%e8%ba%9c|海洋工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HYGC|98|0 +1792012|EXPRESS驱动的XML在CAx/PDM集成框架中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJC200510076.htm|韩捷,李江雄,柯映林,苏财茂|05964661,09383455,09373161,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964661%3b09383455%3b09373161%3b09376370%3b&scholarName=%e9%9f%a9%e6%8d%b7|计算机工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJC|121|3 +1792012|空间曲线型微细管道局部几何性质检测|http://www.cnki.com.cn/Article/CJFDTOTAL-GDGC200408013.htm|金成柱,李江雄,柯映林|09376370,05964661,10278760|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376370%3b05964661%3b10278760%3b&scholarName=%e9%87%91%e6%88%90%e6%9f%b1|光电工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDGC|73|6 +1792012|大型纸浆厂碱回收炉建模与优化控制策略研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JDGC200003040.htm|张良军,李江,李平|09377264,09391546,00000967|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b09391546%3b00000967%3b&scholarName=%e5%bc%a0%e8%89%af%e5%86%9b|机电工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JDGC|104|10 +1792012|入世过渡期结束与宁波银行业“层级化”发展|http://www.cnki.com.cn/Article/CJFDTOTAL-NBSJ200703004.htm|李江,周昌林||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e6%9d%8e%e6%b1%9f|宁波经济(三江论坛)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NBSJ|47|0 +1792012|教育规范何以可能|http://www.cnki.com.cn/Article/CJFDTOTAL-JYLT200407004.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|当代教育论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYLT|158|4 +1792012|内外分区空间统一精度场建立方法研究|http://www.cnki.com.cn/Article/CJFDTOTAL-HKGJ201714003.htm|俞慈君,罗涛,李江雄,樊新田,乔明杰|22368581,09380351,09376370,35006706,20858076|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22368581%3b09380351%3b09376370%3b35006706%3b20858076%3b&scholarName=%e4%bf%9e%e6%85%88%e5%90%9b|航空制造技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HKGJ|26|0 +1792012|一种自动流量平衡阀的数值分析及实验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-YYYQ200601024.htm|沈新荣,陆冰,李江莉,李增珍|11650363,09376369,14054498|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11650363%3b09376369%3b14054498%3b&scholarName=%e6%b2%88%e6%96%b0%e8%8d%a3|液压与气动|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YYYQ|169|26 +1792012|新型载基因微泡的制备及其在心肌细胞报告基因转染中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-SWGC200604038.htm|汪国忠,胡申江,郑哲岚,孙坚,郑霞,朱朝晖,李江,姚宇玫|09398944,09360589,09398961,10285903,05966928,09398939,09361226,09399515|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09398944%3b09360589%3b09398961%3b10285903%3b05966928%3b09398939%3b09361226%3b09399515%3b&scholarName=%e6%b1%aa%e5%9b%bd%e5%bf%a0|生物医学工程学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SWGC|136|10 +1792012|空间曲线型微细管道曲率检测器|http://www.cnki.com.cn/Article/CJFDTOTAL-GDGC200505010.htm|吴恩启,李江雄,柯映林|05964661,09376370,10282202|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964661%3b09376370%3b10282202%3b&scholarName=%e5%90%b4%e6%81%a9%e5%90%af|光电工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDGC|129|3 +1792012|基于图形制导的复杂曲面最佳匹配的一种算法|http://www.cnki.com.cn/Article/CJFDTOTAL-HKXB200003030.htm|陈志杨,李江雄,柯映林|05964661,09369665,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964661%3b09369665%3b09376370%3b&scholarName=%e9%99%88%e5%bf%97%e6%9d%a8|航空学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HKXB|103|15 +1792012|喹诺酮类抗菌剂抗分支杆菌的QSAR研究——C-7位结构变化对活性的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGYD901.016.htm|李江波,林瑞森,俞庆森|09376368,00001681,05964381|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b00001681%3b05964381%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|中国药科大学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGYD|55|0 +1792012|腹腔镜胰腺中段切除术的现状|http://www.cnki.com.cn/Article/CJFDTOTAL-LCGD201704012.htm|曹阳,刘达人,李江涛|36802503,09395086,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36802503%3b09395086%3b09396325%3b&scholarName=%e6%9b%b9%e9%98%b3|临床肝胆病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCGD|58|0 +1792012|经正中裂入路单独完整肝尾状叶切除术的策略探讨(附19例报告)|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHWK200719014.htm|彭淑牖,洪德飞,许斌,王建伟,刘颖斌,钱浩然,李江涛,牟一平,蔡秀军,严力锋,王钊|05967238,09364036,10286647,09396988,05966306,09401769,09396325,05964914,05965597,14361041,14360445|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967238%3b09364036%3b10286647%3b09396988%3b05966306%3b09401769%3b09396325%3b05964914%3b05965597%3b14361041%3b14360445%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|中华外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHWK|36|24 +1792012|肝门部胆管癌的术式选择|http://www.cnki.com.cn/Article/CJFDTOTAL-LCWK200602006.htm|彭淑牖,李江涛||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|临床外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCWK|187|3 +1792012|心力衰竭的基因治疗|http://www.cnki.com.cn/Article/CJFDTOTAL-XXGB200505018.htm|孙培钰,李江,胡申江|09361210,09360589,05966928|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09361210%3b09360589%3b05966928%3b&scholarName=%e5%ad%99%e5%9f%b9%e9%92%b0|心血管病学进展|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XXGB|218|1 +1792012|美国金融中介成长的实证性描述|http://www.cnki.com.cn/Article/CJFDTOTAL-HNJG200606009.htm|李江|09377264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b&scholarName=%e6%9d%8e%e6%b1%9f|河南金融管理干部学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HNJG|195|1 +1792012|飞机数字化装配系统运动数据集成及监控技术|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC201305005.htm|应征,王青,李江雄,柯映林,孙文博,韩永伟|23487961,10281816,09376370,05964661,29020035,27358044|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23487961%3b10281816%3b09376370%3b05964661%3b29020035%3b27358044%3b&scholarName=%e5%ba%94%e5%be%81|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|274|1 +1792012|基于XML Schema和Web服务的虚拟企业集成框架|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHJC200410004.htm|韩捷,李江雄,苏财茂|09376370,09373161,09383455|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376370%3b09373161%3b09383455%3b&scholarName=%e9%9f%a9%e6%8d%b7|组合机床与自动化加工技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHJC|145|1 +1792012|基于西瓜声学特性测定其成熟度|http://www.cnki.com.cn/Article/CJFDTOTAL-NCJX201201003.htm|危艳君,饶秀勤,漆兵,林鹏鸟,李江波|26612353,10280671,26612354,26995215,09376368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26612353%3b10280671%3b26612354%3b26995215%3b09376368%3b&scholarName=%e5%8d%b1%e8%89%b3%e5%90%9b|农产品加工(学刊)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NCJX|238|8 +1792012|基于图的网格分割|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC200705008.htm|李奇敏,柯映林,李江雄|09376370,10279132,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376370%3b10279132%3b05964661%3b&scholarName=%e6%9d%8e%e5%a5%87%e6%95%8f|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|254|5 +1792012|缺血/再灌注心肌肌浆网肌钙调控蛋白mRNA表达的变化|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGSL200602003.htm|郑霞,孙坚,胡申江,朱朝晖,汪国忠,李江,张必祺|09398939,10285728,09360589,09398961,10285903,09361226,10286059|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09398939%3b10285728%3b09360589%3b09398961%3b10285903%3b09361226%3b10286059%3b&scholarName=%e9%83%91%e9%9c%9e|中国应用生理学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGSL|185|8 +1792012|下腔静脉重建联合肝叶切除治疗肝癌的初步研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHPZ200608011.htm|彭淑牖,洪德飞,许斌,蔡秀军,牟一平,刘颖斌,王建伟,李江涛,薛建锋,刘付宝,钱浩然|09396988,09401769,09395088,05967238,05964914,09364036,05965597,05966306,09396325,10285517,10286647|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396988%3b09401769%3b09395088%3b05967238%3b05964914%3b09364036%3b05965597%3b05966306%3b09396325%3b10285517%3b10286647%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|中华普通外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHPZ|170|7 +1792012|脉冲射流作用下驻点压力特性的试验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GCRB200501019.htm|王乐勤,焦磊,徐如良,李江云|10278740,00005133,09377267,09388258|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10278740%3b00005133%3b09377267%3b09388258%3b&scholarName=%e7%8e%8b%e4%b9%90%e5%8b%a4|工程热物理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GCRB|214|13 +1792012|大型刚体调姿实验平台手轮功能的实现|http://www.cnki.com.cn/Article/CJFDTOTAL-JDGC201004004.htm|扈慧强,李江雄|24323405,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24323405%3b09376370%3b&scholarName=%e6%89%88%e6%85%a7%e5%bc%ba|机电工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JDGC|86|2 +1792012|略论现代教育制度|http://www.cnki.com.cn/Article/CJFDTOTAL-ZYJS200503002.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|教师之友|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZYJS|308|3 +1792012|教育发展与教育制度创新略论|http://www.cnki.com.cn/Article/CJFDTOTAL-QHDJ200302007.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|清华大学教育研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QHDJ|634|16 +1792012|喹诺酮模型化合物:2-吡酮酸和4-吡酮酸分子的abinitio理论研究|http://www.cnki.com.cn/Article/CJFDTOTAL-HZDX200005009.htm|李江波,林瑞森|00001681,09376368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=00001681%3b09376368%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|浙江大学学报(理学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HZDX|15|0 +1792012|侵犯重要血管的胰头癌切除的可行性探讨|http://www.cnki.com.cn/Article/CJFDTOTAL-WKLL200703009.htm|刘颖斌,马孝明,李江涛,王许安,蔡炜龙,孔颖,王俊,王建伟,曹利平,彭淑牖|09396988,10285451,09396325,09394453,10895485,11334973,10906828,10879493,05967238,05966306|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396988%3b10285451%3b09396325%3b09394453%3b10895485%3b11334973%3b10906828%3b10879493%3b05967238%3b05966306%3b&scholarName=%e5%88%98%e9%a2%96%e6%96%8c|外科理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WKLL|104|9 +1792012|冲击高度对淹没冲击射流影响的数值预测|http://www.cnki.com.cn/Article/CJFDTOTAL-GCRB200505017.htm|焦磊,王乐勤,徐如良,李江云|12423909,00005133,10278740,09377267|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=12423909%3b00005133%3b10278740%3b09377267%3b&scholarName=%e7%84%a6%e7%a3%8a|工程热物理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GCRB|219|10 +1792012|“重工业优先发展战略”与我国大学制度的变迁|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGGJ200305016.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|中国高教研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGGJ|218|2 +1792012|复杂自由曲面模型的局部协调设计技术|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC200906027.htm|边柯柯,王青,李江雄,柯映林|23129400,10281816,09376370,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23129400%3b10281816%3b09376370%3b05964661%3b&scholarName=%e8%be%b9%e6%9f%af%e6%9f%af|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|181|3 +1792012|重组逆转录病毒载体介导人ANGPTL4基因的抗肝癌作用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHPZ200601024.htm|刘颖斌,李克强,王建伟,李江涛,钱浩然,冯雪冬,朱锦辉,王俊,蔡炜龙,彭淑牖|11328426,09396325,15271361,09394991,09396736,10285451,10879493|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11328426%3b09396325%3b15271361%3b09394991%3b09396736%3b10285451%3b10879493%3b&scholarName=%e5%88%98%e9%a2%96%e6%96%8c|中华普通外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHPZ|175|5 +1792012|基于多张面和点云约束的N边域填充|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC200903002.htm|徐进,柯映林,李江雄|09388705,05964661,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09388705%3b05964661%3b09376370%3b&scholarName=%e5%be%90%e8%bf%9b|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|143|3 +1792012|彭氏Ⅱ型捆绑式胰肠吻合术|http://www.cnki.com.cn/Article/CJFDTOTAL-WKLL200305001.htm|刘颖斌,许斌,王建伟,邓贵龙,李海军,李江涛,王新保|09396325,09396988,09396005,09396610,10285206,10285310,05966306|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b09396988%3b09396005%3b09396610%3b10285206%3b10285310%3b05966306%3b&scholarName=%e5%88%98%e9%a2%96%e6%96%8c|外科理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WKLL|104|11 +1792012|肝尾叶切除的策略和技巧|http://www.cnki.com.cn/Article/CJFDTOTAL-LNWK200805002.htm|彭淑牖,李江涛|05967238,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967238%3b09396325%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|岭南现代临床外科|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LNWK|110|6 +1792012|高等农业院校一年级新生开设体育选项课的实验对比|http://www.cnki.com.cn/Article/CJFDTOTAL-STYB200002017.htm|李赵来,李江,黄茂武,武晓君,董福春,罗长全,朱桦,孟令英,李国强,李学林,李庶鸿,田振生,田少平|09376568,06358168|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376568%3b06358168%3b&scholarName=%e6%9d%8e%e8%b5%b5%e6%9d%a5|上海体育学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/STYB|75|4 +1792012|胃肠道浆肌层吻合的可行性研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHSY200611045.htm|黄从云,彭淑牖,李江涛,赵之明,薛建峰,刘付宝,孙菊妹|10285516,09396325,09397669,09396965,10285275,09395088,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10285516%3b09396325%3b09397669%3b09396965%3b10285275%3b09395088%3b05967238%3b&scholarName=%e9%bb%84%e4%bb%8e%e4%ba%91|中华实验外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHSY|70|11 +1792012|超声破裂载基因微泡增强心肌细胞报告基因的转染与表达|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGSL200504003.htm|汪国忠,胡申江,郑哲岚,孙坚,李江,郑霞,朱朝晖,姚宇玫|10285903,09398939,05966928,09360589,09398961,09361226,09398944,09399515|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10285903%3b09398939%3b05966928%3b09360589%3b09398961%3b09361226%3b09398944%3b09399515%3b&scholarName=%e6%b1%aa%e5%9b%bd%e5%bf%a0|中国应用生理学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGSL|90|6 +1792012|复杂型面逆向工程设计系统的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JSFY199702024.htm|柯映林,李江雄,许澍虹,程耀东,黄品才,钱应璋,张兵|12200704,10282970,09376370,12200501,12200581,05966832,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=12200704%3b10282970%3b09376370%3b12200501%3b12200581%3b05966832%3b05964661%3b&scholarName=%e6%9f%af%e6%98%a0%e6%9e%97|计算机辅助设计与制造|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSFY|129|5 +1792012|一个基于波动光学的薄膜干涉光照模型|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJF702.014.htm|李江,彭群生|09377264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b&scholarName=%e6%9d%8e%e6%b1%9f|计算机辅助设计与图形学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJF|112|1 +1792012|左半结肠癌急性梗阻一期切除吻合的安全保证——彻底快速而无污染的肠减压术(英文)|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDLZ200501002.htm|彭淑牖,何小伟,刘颖斌,李江涛,王建伟,钱浩然|09395914,05966306,05967238,09396988,09396325,09357729|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09395914%3b05966306%3b05967238%3b09396988%3b09396325%3b09357729%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|The Chinese-German Journal of Clinical Oncology|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDLZ|79|12 +1792012|糖尿病大鼠心肌磷酸受纳蛋白基因表达和肌浆网Ca~(2+)-ATPase活性的变化|http://www.cnki.com.cn/Article/CJFDTOTAL-ZBLS200609006.htm|赵晓燕,胡申江,李江,牟云,陈宝平,许蓓|09360589,09318546,05966928,09398931,09398007,09361786|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09360589%3b09318546%3b05966928%3b09398931%3b09398007%3b09361786%3b&scholarName=%e8%b5%b5%e6%99%93%e7%87%95|中国病理生理杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZBLS|108|5 +1792012|大鼠胰腺干细胞转分化为胰岛样细胞簇的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHPZ200612027.htm|李兵,苏红,戚基萍,李江涛,刘颖斌,彭淑牖,许评,宋春芳|07024651,07031295,05966306,05967238,07025302,20205539,09396325,09396322|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07024651%3b07031295%3b05966306%3b05967238%3b07025302%3b20205539%3b09396325%3b09396322%3b&scholarName=%e6%9d%8e%e5%85%b5|中华普通外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHPZ|174|8 +1792012|胆管癌栓致梗阻性黄疸的外科治疗分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHYX200630019.htm|王建伟,马振峰,刘颖斌,许斌,李江涛,钱浩然,薛建峰,刘付宝,彭淑牖|09396988,09401769,05967238,09395088,07082237,10286647,05966306,10285516,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396988%3b09401769%3b05967238%3b09395088%3b07082237%3b10286647%3b05966306%3b10285516%3b09396325%3b&scholarName=%e7%8e%8b%e5%bb%ba%e4%bc%9f|中华医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHYX|93|5 +1792012|丙烯齐聚催化剂的反应性能|http://www.cnki.com.cn/Article/CJFDTOTAL-HXFY401.006.htm|潘声云,李江宁,许慧萍,徐铸德,张晓东,冯伟||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e6%bd%98%e5%a3%b0%e4%ba%91|化学反应工程与工艺|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HXFY|98|3 +1792012|重组大肠杆菌高效可溶性表达芳基硫磺基转移酶的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-YWSW201405001.htm|齐晨,杨修亮,李晓燕,李江涛,黄磊,徐志南|31223031,09330984,09374459,09388843|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31223031%3b09330984%3b09374459%3b09388843%3b&scholarName=%e9%bd%90%e6%99%a8|药物生物技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YWSW|96|2 +1792012|基于COM的SolidWorks级进模CAD常用接口|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJC200310035.htm|杨洁,柯映林,李江雄|05964661,09389088,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964661%3b09389088%3b09376370%3b&scholarName=%e6%9d%a8%e6%b4%81|计算机工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJC|69|14 +1792012|大型中开式离心泵变频调速节能研究|http://www.cnki.com.cn/Article/CJFDTOTAL-NYJX200303014.htm|王乐勤,吴大转,李江云|00005133,09377267,09349088|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=00005133%3b09377267%3b09349088%3b&scholarName=%e7%8e%8b%e4%b9%90%e5%8b%a4|农业机械学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NYJX|137|5 +1792012|几种天然彩色茧品种蚕茧抑菌率的测定与比较|http://www.cnki.com.cn/Article/CJFDTOTAL-CSCT201104002.htm|侯国军,张金卫,李江涛,钟伯雄,冯世民,鱼南洋,金杏丽,汤新新,丁农,徐森华|26242418,15601230,21936766,09355637,22216733,17303462,21518715,21482252,17298473,26351515|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26242418%3b15601230%3b21936766%3b09355637%3b22216733%3b17303462%3b21518715%3b21482252%3b17298473%3b26351515%3b&scholarName=%e4%be%af%e5%9b%bd%e5%86%9b|蚕桑茶叶通讯|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CSCT|180|6 +1792012|后现代主义与文化碰撞|http://www.cnki.com.cn/Article/CJFDTOTAL-GZBS200403012.htm|李江|09377264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b&scholarName=%e6%9d%8e%e6%b1%9f|贵州大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GZBS|132|0 +1792012|基于SolidWorks的引线框架级进模CAD/CAM系统研制|http://www.cnki.com.cn/Article/CJFDTOTAL-JXKX200304046.htm|吴央芳,李江雄,张峻,杨洁,柯映林|05964661,09389088,09387249,09376370,10284000|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964661%3b09389088%3b09387249%3b09376370%3b10284000%3b&scholarName=%e5%90%b4%e5%a4%ae%e8%8a%b3|机械科学与技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXKX|111|0 +1792012|欧美高等教育系统中院校分工的比较及对我国的启示|http://www.cnki.com.cn/Article/CJFDTOTAL-HLJG200801024.htm|李江霞||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e6%9d%8e%e6%b1%9f%e9%9c%9e|黑龙江高教研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HLJG|129|0 +1792012|彭氏捆绑式胰肠吻合术在胰十二指肠切除术中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-LCWK200404013.htm|刘颖斌,许斌,钱浩然,王建伟,李海军,邓贵龙,冯雪冬,李江涛,王新保,唐喆|09396325,10285310,09394991,09396610,10285206,09396005,09396988,09358481,05966306,09395914|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b10285310%3b09394991%3b09396610%3b10285206%3b09396005%3b09396988%3b09358481%3b05966306%3b09395914%3b&scholarName=%e5%88%98%e9%a2%96%e6%96%8c|临床外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCWK|96|7 +1792012|解析的核学习自适应单步预测控制算法|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC200811014.htm|刘毅,王海清,李江,李平|09378330,09385477,09377264,00000967|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09378330%3b09385477%3b09377264%3b00000967%3b&scholarName=%e5%88%98%e6%af%85|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|115|1 +1792012|载基因微泡介导β-galactosidase质粒转染心肌细胞的对照研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHCY20041100M.htm|汪国忠,胡申江,郑哲岚,童紫莺,郑霞,姚宇玫,李江|05966928,09398944,09360589,09399061,09361226,09399515,09398939|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05966928%3b09398944%3b09360589%3b09399061%3b09361226%3b09399515%3b09398939%3b&scholarName=%e6%b1%aa%e5%9b%bd%e5%bf%a0|中华超声影像学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHCY|81|2 +1792012|浙北部分地区猪伪狂犬病血清学调查|http://www.cnki.com.cn/Article/CJFDTOTAL-ZJNX201409050.htm|何家梁,李江涛,张金卫,胡亮,沈群华|31468999,31301999,21936766,15601230,31469000,22541463|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31468999%3b31301999%3b21936766%3b15601230%3b31469000%3b22541463%3b&scholarName=%e4%bd%95%e5%ae%b6%e6%a2%81|浙江农业科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZJNX|53|0 +1792012|基于FPGA的刚体调姿系统逻辑控制器开发|http://www.cnki.com.cn/Article/CJFDTOTAL-JDGC201104019.htm|何丹青,李江雄|25811648,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25811648%3b09376370%3b&scholarName=%e4%bd%95%e4%b8%b9%e9%9d%92|机电工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JDGC|29|0 +1792012|论社会转型时期教育制度执行的有效性|http://www.cnki.com.cn/Article/CJFDTOTAL-JMDX200402004.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|集美大学学报(教育科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JMDX|237|8 +1792012|教育发展与教育制度创新略论|http://www.cnki.com.cn/Article/CJFDTOTAL-JYDK2003Z1003.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|教育导刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYDK|133|0 +1792012|3-X-2(1H)-吡啶酮互变异构体系的理论计算|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH199911028.htm|邹建卫,李江波,朱龙观,俞庆森,林瑞森|00019654,05964381,05969941,00001681,09376368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=00019654%3b05964381%3b05969941%3b00001681%3b09376368%3b&scholarName=%e9%82%b9%e5%bb%ba%e5%8d%ab|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|53|3 +1792012|VEGF反义寡核苷酸对人胆囊癌细胞VEGF、Flt-1及KDR mRNA和蛋白水平表达的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHYX200747006.htm|方河清,李海军,刘颖斌,王许安,马孝明,孔颖,陈燕,陈德琴,翁伟宏,张志平,KR Devkota,王建伟,李江涛,曹利平,彭淑牖|05969822,15323558,05966306,10895485,10906828,11334973,11112115,10998166,11145045,15617470,22176089,09396988,09396325,09394453,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05969822%3b15323558%3b05966306%3b10895485%3b10906828%3b11334973%3b11112115%3b10998166%3b11145045%3b15617470%3b22176089%3b09396988%3b09396325%3b09394453%3b05967238%3b&scholarName=%e6%96%b9%e6%b2%b3%e6%b8%85|中华医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHYX|20|3 +1792012|论技术市场与资本市场的对接|http://www.cnki.com.cn/Article/CJFDTOTAL-KXGY200402026.htm|金雪军,郭娅,李江东|05966088,10277947,10279072|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05966088%3b10277947%3b10279072%3b&scholarName=%e9%87%91%e9%9b%aa%e5%86%9b|科学管理研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KXGY|146|2 +1792012|基于开关函数求广义最短通路的新算法|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC200403014.htm|郑玉玺,李江,蒋黔麟|09376187,09355621,09377264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376187%3b09355621%3b09377264%3b&scholarName=%e9%83%91%e7%8e%89%e7%8e%ba|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|28|1 +1792012|简易胰门三头控制技术在困难型胰十二指肠切除术中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHWK200721020.htm|彭淑牖,洪德飞,许斌,严力锋,王建伟,刘颖斌,李江涛,钱浩然,牟一平,蔡秀军|05967238,09364036,10286647,14361041,09396988,05966306,09396325,09401769,05964914,05965597|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967238%3b09364036%3b10286647%3b14361041%3b09396988%3b05966306%3b09396325%3b09401769%3b05964914%3b05965597%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|中华外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHWK|12|7 +1792012|空间曲线形微细管孔检测系统设计|http://www.cnki.com.cn/Article/CJFDTOTAL-JXKX200506008.htm|毛一添,柯映林,李江雄|09376370,09379924,05964661|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376370%3b09379924%3b05964661%3b&scholarName=%e6%af%9b%e4%b8%80%e6%b7%bb|机械科学与技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXKX|90|2 +1792012|原发性胆囊癌染色体比较基因组杂交分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHSY200712009.htm|刘付宝,李江涛,刘颖斌,王建伟,彭佳萍,徐伟珍,胡亮,关新元,彭淑牖|09395088,09396325,05966306,09396988,09358417,09358561,09206831,10234620,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09395088%3b09396325%3b05966306%3b09396988%3b09358417%3b09358561%3b09206831%3b10234620%3b05967238%3b&scholarName=%e5%88%98%e4%bb%98%e5%ae%9d|中华实验外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHSY|11|3 +1792012|基于曲面局平特性的快速曲面重建算法|http://www.cnki.com.cn/Article/CJFDTOTAL-JDGC200606012.htm|潘丹丹,李江雄|09376370,10280343|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376370%3b10280343%3b&scholarName=%e6%bd%98%e4%b8%b9%e4%b8%b9|机电工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JDGC|68|0 +1792012|热电厂燃气轮机发电机组噪声控制|http://www.cnki.com.cn/Article/CJFDTOTAL-LTJX200304012.htm|王乐勤,何秋良,李江云|09377267,09327690,00005133|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377267%3b09327690%3b00005133%3b&scholarName=%e7%8e%8b%e4%b9%90%e5%8b%a4|流体机械|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LTJX|155|1 +1792012|略论计划体制下大学制度的“保护—束缚”机制|http://www.cnki.com.cn/Article/CJFDTOTAL-JMDX200302000.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|集美大学学报(教育科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JMDX|63|3 +1792012|骨髓间充质干细胞对植物血球凝集素刺激的T淋巴细胞CD25表达的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHYX200730019.htm|刘颖斌,钱浩然,洪德飞,王建伟,李江涛,王许安,孔颖,马孝明,陈燕,陈德琴,翁伟宏,彭淑牖|05966306,09401769,09364036,09396988,09396325,10895485,11334973,10906828,11112115,10998166,11145045,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05966306%3b09401769%3b09364036%3b09396988%3b09396325%3b10895485%3b11334973%3b10906828%3b11112115%3b10998166%3b11145045%3b05967238%3b&scholarName=%e5%88%98%e9%a2%96%e6%96%8c|中华医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHYX|14|3 +1792012|应用绕肝带提拉肝脏法处理巨大右肝癌破裂粘连膈肌一例|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHYX200401019.htm|彭淑牖,曹利平,李江涛,王新保,刘颖斌,吴峥嵘|09397037,05966306,09396325,09394453,09396005,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09397037%3b05966306%3b09396325%3b09394453%3b09396005%3b05967238%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|中华医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHYX|64|4 +1792012|慢性胰腺炎增生性胰管上皮细胞线粒体DNA突变的意义|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHHX200603008.htm|母德清,彭淑牖,李江涛,王国凤|10285444,05967238,09396325,09395126|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10285444%3b05967238%3b09396325%3b09395126%3b&scholarName=%e6%af%8d%e5%be%b7%e6%b8%85|中华消化杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHHX|66|0 +1792012|居住证制度与城乡劳动力市场整合|http://www.cnki.com.cn/Article/CJFDTOTAL-JJXD201512002.htm|姚先国,宋文娟,钱雪亚,李江|09389727,34255992,09381877,09377264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09389727%3b34255992%3b09381877%3b09377264%3b&scholarName=%e5%a7%9a%e5%85%88%e5%9b%bd|经济学动态|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JJXD|598|10 +1792012|美国高校分数膨胀现象述析|http://www.cnki.com.cn/Article/CJFDTOTAL-HLJG200704012.htm|李丽丽,李江霞|15272243,10886944|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15272243%3b10886944%3b&scholarName=%e6%9d%8e%e4%b8%bd%e4%b8%bd|黑龙江高教研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HLJG|217|5 +1792012|全反式维甲酸对肝癌细胞株细胞连接蛋白基因表达的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHPZ200603014.htm|许斌,王建伟,方河清,刘颖斌,牟一平,蔡秀军,李江涛,彭淑牖|10286647,05966306,05969822,09396325,09401327,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10286647%3b05966306%3b05969822%3b09396325%3b09401327%3b05967238%3b&scholarName=%e8%ae%b8%e6%96%8c|中华普通外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHPZ|112|0 +1792012|老年胰腺癌根治术不再是禁忌|http://www.cnki.com.cn/Article/CJFDTOTAL-SYLA200404004.htm|彭淑牖,李江涛|05967238,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967238%3b09396325%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|实用老年医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SYLA|46|1 +1792012|天然彩色茧烘茧前后抗氧化活性的测定|http://www.cnki.com.cn/Article/CJFDTOTAL-GDCY201102014.htm|侯国军,张金卫,李江涛,钟伯雄,冯世民,鱼南洋,金杏丽,汤新新,丁农|26242418,26432218,15601230,21936766,09355637,22216733,17303462,21518715,21482252,17298473|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26242418%3b26432218%3b15601230%3b21936766%3b09355637%3b22216733%3b17303462%3b21518715%3b21482252%3b17298473%3b&scholarName=%e4%be%af%e5%9b%bd%e5%86%9b|广东蚕业|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDCY|63|2 +1792012|基于Petri网的飞机总装配生产线建模及优化方法|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC201506023.htm|王青,温李庆,李江雄,柯映林,李涛,张世炯|10281816,33169941,33169942,09376370,05964661,11679176,33169943|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10281816%3b33169941%3b33169942%3b09376370%3b05964661%3b11679176%3b33169943%3b&scholarName=%e7%8e%8b%e9%9d%92|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|185|1 +1792012|胃肠道手工吻合方法对腹腔粘连形成的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-ZBLS200612047.htm|黄从云,彭淑牖,李江涛,赵之明,薛建锋,刘付宝,孙菊妹|09396325,10285517,09397669,09396965,05967238,09395088|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b10285517%3b09397669%3b09396965%3b05967238%3b09395088%3b&scholarName=%e9%bb%84%e4%bb%8e%e4%ba%91|中国病理生理杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZBLS|78|2 +1792012|应用COM技术建立Solid Works级进模CAD常用接口|http://www.cnki.com.cn/Article/CJFDTOTAL-MJGY200306001.htm|杨洁,柯映林,李江雄|05964661,09376370,09389088|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964661%3b09376370%3b09389088%3b&scholarName=%e6%9d%a8%e6%b4%81|模具工业|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/MJGY|59|2 +1792012|疑难病例析评 第44例 腹壁静脉及双下肢静脉曲张—肝下下腔静脉全程闭塞|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHYX200323023.htm|方河清,刘颖斌,王建伟,李江涛,李海军,许斌,吴育连,王坚,花锦福,柴莹,彭淑牖|05966306,05969822,05969176,05967238,09396325,09396988,10285168,09395028,09396610,10285310,10285448|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05966306%3b05969822%3b05969176%3b05967238%3b09396325%3b09396988%3b10285168%3b09395028%3b09396610%3b10285310%3b10285448%3b&scholarName=%e6%96%b9%e6%b2%b3%e6%b8%85|中华医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHYX|73|2 +1792012|临床表现不典型的升主动脉夹层动脉瘤破裂1例|http://www.cnki.com.cn/Article/CJFDTOTAL-LCFC201116035.htm|李璐璐,李江,宁建文,黄卫东|25970942,09360589,09398010,11517495|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25970942%3b09360589%3b09398010%3b11517495%3b&scholarName=%e6%9d%8e%e7%92%90%e7%92%90|临床荟萃|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCFC|32|0 +1792012|钝性创伤致肠系膜上动脉分支假性动脉瘤一例|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHCS200603019.htm|方河清,李江涛,刘颖斌,唐喆,晁明,伍建军,许俊,李斌,彭淑牖|05969822,09396325,05966306,09358538,09394456,09396611,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05969822%3b09396325%3b05966306%3b09358538%3b09394456%3b09396611%3b05967238%3b&scholarName=%e6%96%b9%e6%b2%b3%e6%b8%85|中华创伤杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHCS|37|2 +1792012|猪α+γ共表达干扰素在不同家蚕品种中的表达|http://www.cnki.com.cn/Article/CJFDTOTAL-CSTB201502006.htm|张玉玉,张金卫,易咏竹,李江涛,徐森华,冯世明,鱼南洋,钟伯雄,丁农|32654377,15601230,09628647,21936766,26351515,24958810,17303462,09355637,17298473|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32654377%3b15601230%3b09628647%3b21936766%3b26351515%3b24958810%3b17303462%3b09355637%3b17298473%3b&scholarName=%e5%bc%a0%e7%8e%89%e7%8e%89|蚕桑通报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CSTB|33|0 +1792012|不同蔟具及蔟中环境对彩色茧品种秋丰×黄_3茧丝质量的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-CSTB201102007.htm|侯国军,张金卫,李江涛,钟伯雄,冯世民,鱼南洋,金杏丽,汤新新,丁农|26242418,15601230,21936766,09355637,22216733,21518715,21482252,17298473|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26242418%3b15601230%3b21936766%3b09355637%3b22216733%3b21518715%3b21482252%3b17298473%3b&scholarName=%e4%be%af%e5%9b%bd%e5%86%9b|蚕桑通报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CSTB|30|2 +1792012|电除尘器离子流场理论模型|http://www.cnki.com.cn/Article/CJFDTOTAL-RLFD200206004.htm|李培芳,熊熠明,李江|09377797,10282682,09377264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377797%3b10282682%3b09377264%3b&scholarName=%e6%9d%8e%e5%9f%b9%e8%8a%b3|热力发电|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/RLFD|80|1 +1792012|多模干涉型GaAs光功分器的研制|http://www.cnki.com.cn/Article/CJFDTOTAL-GXXB199908022.htm|杨建义,孙一翎,周强,王明华,李江,王义周|09389359,23048696,09385613,09394733,10281274,23014741|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09389359%3b23048696%3b09385613%3b09394733%3b10281274%3b23014741%3b&scholarName=%e6%9d%a8%e5%bb%ba%e4%b9%89|光学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GXXB|57|5 +1792012|股青肿的急诊处理|http://www.cnki.com.cn/Article/CJFDTOTAL-JJYZ200304027.htm|方河清,余华,高顺良,刘颖斌,李松岗,朱松太,李江涛,王新保,徐斌,王涌|05966306,05969822,09396010,09396325,09397101,10285318,10285498,09397700,09396005,09357708|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05966306%3b05969822%3b09396010%3b09396325%3b09397101%3b10285318%3b10285498%3b09397700%3b09396005%3b09357708%3b&scholarName=%e6%96%b9%e6%b2%b3%e6%b8%85|中华急诊医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JJYZ|66|8 +1792012|低压大直径喷嘴自激脉冲射流空化模型|http://www.cnki.com.cn/Article/CJFDTOTAL-GCRB200503024.htm|李江云,王乐勤,徐如良,焦磊|00005133,08984758,10278740,09388258|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=00005133%3b08984758%3b10278740%3b09388258%3b&scholarName=%e6%9d%8e%e6%b1%9f%e4%ba%91|工程热物理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GCRB|464|18 +1792012|基于理论线性溶剂化能关系研究两类局部麻醉药物的疏水性质|http://www.cnki.com.cn/Article/CJFDTOTAL-JSYH2000Z1014.htm|邹建卫,李江波,俞庆森,林瑞森|09376368,05969941,05964381,00001681|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b05969941%3b05964381%3b00001681%3b&scholarName=%e9%82%b9%e5%bb%ba%e5%8d%ab|计算机与应用化学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSYH|110|3 +1792012|胰腺假性囊肿并发胃十二指肠流出道梗阻分析(附1例报告)|http://www.cnki.com.cn/Article/CJFDTOTAL-WKLL201405028.htm|于源泉,楼健颖,王亮,金赟,李江涛,梁廷波|26910508,10285349,29174587,28453975,09396325,27037691|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26910508%3b10285349%3b29174587%3b28453975%3b09396325%3b27037691%3b&scholarName=%e4%ba%8e%e6%ba%90%e6%b3%89|外科理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WKLL|43|0 +1792012|基于工艺规则的印制板可制造性建模研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDZC200103007.htm|黄圆圆,潘雪增,平玲娣,李江波|09376368,09335022,09381727,10278505|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b09335022%3b09381727%3b10278505%3b&scholarName=%e9%bb%84%e5%9c%86%e5%9c%86|浙江大学学报(工学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDZC|58|1 +1792012|教育失序问题的文化救治(下)|http://www.cnki.com.cn/Article/CJFDTOTAL-ZJSK200502002.htm|李江源|05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|江苏大学学报(高教研究版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZJSK|160|0 +1792012|干燥综合征合并慢性假性肠梗阻一例|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHNK200509012.htm|郑小娟,高敏,罗灵和,刘芊,李江波,马阿火|09401505,14886691,14630671,09401752,14487221,22840640|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09401505%3b14886691%3b14630671%3b09401752%3b14487221%3b22840640%3b&scholarName=%e9%83%91%e5%b0%8f%e5%a8%9f|中华内科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHNK|97|3 +1792012|论教育制度的伦理道德之维|http://www.cnki.com.cn/Article/CJFDTOTAL-JYLL200601005.htm|李江源,胡斌武|05967865,10278191|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b10278191%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|教育理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYLL|689|37 +1792012|天然黄色茧蚕品种实验室比较与生产应用试验|http://www.cnki.com.cn/Article/CJFDTOTAL-CSTB201103007.htm|侯国军,张金卫,李江涛,冯世民,鱼南洋,金杏丽,汤新新,丁农,钟伯雄|26242418,15601230,21936766,22216733,26668850,22476224,26668851,17298473,09355637|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26242418%3b15601230%3b21936766%3b22216733%3b26668850%3b22476224%3b26668851%3b17298473%3b09355637%3b&scholarName=%e4%be%af%e5%9b%bd%e5%86%9b|蚕桑通报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CSTB|23|1 +1792012|彭氏捆绑式胰肠吻合术的临床应用|http://www.cnki.com.cn/Article/CJFDTOTAL-XXHB200305028.htm|陈晓鹏,刘颖斌,李海军,许斌,王建伟,李江涛,王新保,吴育连|09357263,05969176,09396005,09396325,09396610,05966306,10285310,09396988|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09357263%3b05969176%3b09396005%3b09396325%3b09396610%3b05966306%3b10285310%3b09396988%3b&scholarName=%e9%99%88%e6%99%93%e9%b9%8f|世界华人消化杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XXHB|44|4 +1792012|国内(不含港、澳、台)英文版学术期刊的发展和现状|http://www.cnki.com.cn/Article/CJFDTOTAL-DXTS200201017.htm|张月红,王森,李江,谌群芳|13578608,12406118,09392222,09371025|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13578608%3b12406118%3b09392222%3b09371025%3b&scholarName=%e5%bc%a0%e6%9c%88%e7%ba%a2|大学图书馆学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DXTS|333|18 +1792012|基于并行工程的PCB CAM集成系统设计|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJY200002003.htm|陈瑜,平玲娣,潘雪增,李江波|09381727,09370964,09335022,09376368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09381727%3b09370964%3b09335022%3b09376368%3b&scholarName=%e9%99%88%e7%91%9c|计算机应用|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJY|43|0 +1792012|特发性收缩性肠系膜炎一例|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHNK200601007.htm|罗灵和,高敏,曹倩,李江波,刘芊,郑小娟|09401752,14630671,09401215,14886691,14487221|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09401752%3b14630671%3b09401215%3b14886691%3b14487221%3b&scholarName=%e7%bd%97%e7%81%b5%e5%92%8c|中华内科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHNK|58|0 +1792012|J2ME平台下基于手机定位实现的移动GIS导航系统|http://www.cnki.com.cn/Article/CJFDTOTAL-XDDJ200708016.htm|李江,薛全|10283019,20104161|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10283019%3b20104161%3b&scholarName=%e6%9d%8e%e6%b1%9f|现代电子技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDDJ|610|15 +1792012|外源铅胁迫对不同土壤上水稻生长及铅形态的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-TRQS201205052.htm|李江遐,张军,鲁洪娟,曹海生,杨肖娥|06153449,06157401,28060120,06153047,09389167|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06153449%3b06157401%3b28060120%3b06153047%3b09389167%3b&scholarName=%e6%9d%8e%e6%b1%9f%e9%81%90|水土保持学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TRQS|265|3 +1792012|捆绑式胰肠吻合术|http://www.cnki.com.cn/Article/CJFDTOTAL-JTYI200506009.htm|彭淑牖,蔡秀军,牟一平,吴育连,彭承宏,刘颖斌,曹利平,李江涛,王建伟,许斌|05974732,05967238,05965597,05966306,05964914,05969176,09377266,09318007,09347622,09350211|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05974732%3b05967238%3b05965597%3b05966306%3b05964914%3b05969176%3b09377266%3b09318007%3b09347622%3b09350211%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|家庭医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JTYI|77|0 +1792012|计算碰撞检测中接触位置的算法|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJZ200702055.htm|李江平,张申生,陈禄|09605819,08517856,11411668|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09605819%3b08517856%3b11411668%3b&scholarName=%e6%9d%8e%e6%b1%9f%e5%b9%b3|计算机仿真|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJZ|309|6 +1792012|原发性肝癌伴胆管癌栓的外科治疗方式(英文)|http://www.cnki.com.cn/Article/CJFDTOTAL-ZDLZ200303002.htm|彭淑牖,刘颖斌,王建伟,蔡秀军,牟一平,吴育连,方河清,李江涛,王新保,许斌,李海军|09396325,09396005,09396610,10285310,05967238,09396988,05966306,05964914,05969822,05965597,05969176|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b09396005%3b09396610%3b10285310%3b05967238%3b09396988%3b05966306%3b05964914%3b05969822%3b05965597%3b05969176%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|The Chinese-German Journal of Clinical Oncology|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZDLZ|86|0 +1792012|高校结构调整后的教育成效调查|http://www.cnki.com.cn/Article/CJFDTOTAL-GDGJ200303002.htm|李江云,梁美容,方正|10133158,09236808,08984758|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10133158%3b09236808%3b08984758%3b&scholarName=%e6%9d%8e%e6%b1%9f%e4%ba%91|高等工程教育研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDGJ|117|5 +1792012|变流速水平轴潮流能桨叶的设计研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JXGU201509048.htm|李江花,沈萌红,陈俊华,李强,孙珂琪|32941763,29503018,10280842,33706999,09369163,23764882,09377806,32941762,29503019|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32941763%3b29503018%3b10280842%3b33706999%3b09369163%3b23764882%3b09377806%3b32941762%3b29503019%3b&scholarName=%e6%9d%8e%e6%b1%9f%e8%8a%b1|机械工程师|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXGU|56|0 +1792012|责任与利益:基于政策文献量化分析的中国科技创新政策府际合作关系演进研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GLSJ201512010.htm|黄萃,任弢,李江,赵培强,苏竣|08168117,32694592,09377264,33495716,08235647|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08168117%3b32694592%3b09377264%3b33495716%3b08235647%3b&scholarName=%e9%bb%84%e8%90%83|管理世界|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GLSJ|3366|26 +1792012|排水泵站快速闸门与压缩空气的联合运用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGJX200312010.htm|李江云,马彦斌,林思达,王乐勤|08984758,10279440,08986309,00005133|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08984758%3b10279440%3b08986309%3b00005133%3b&scholarName=%e6%9d%8e%e6%b1%9f%e4%ba%91|中国机械工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGJX|58|3 +1792012|论教育制度创新的必然性与偶然性(下)|http://www.cnki.com.cn/Article/CJFDTOTAL-JMDX200601001.htm|李江源,沈萍|09382138,05967865|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09382138%3b05967865%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|集美大学学报(教育科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JMDX|235|0 +1792012|论教育制度创新的必然性与偶然性(上)|http://www.cnki.com.cn/Article/CJFDTOTAL-JMDX200504000.htm|李江源,沈萍|05967865,09382138|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967865%3b09382138%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%ba%90|集美大学学报(教育科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JMDX|234|0 +1792012|5位取代基对喹诺酮构效关系的影响因素|http://www.cnki.com.cn/Article/CJFDTOTAL-KJTB200003007.htm|李江波,邹建卫,林瑞森,俞庆森|06315246,00001681,05964381,05969941|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06315246%3b00001681%3b05964381%3b05969941%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|科技通报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJTB|66|10 +1792012|财产权利安排对后改革的意义及改革自身的逻辑|http://www.cnki.com.cn/Article/CJFDTOTAL-JHKX200406029.htm|李江,张莉|09078094,09391527|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09078094%3b09391527%3b&scholarName=%e6%9d%8e%e6%b1%9f|江苏社会科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JHKX|66|4 +1792012|中国有多少英文版学术期刊(不含港、澳、台)?|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ200302009.htm|张月红,林昌东,李江,王森|09392222,09378551,12406118,13578608|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09392222%3b09378551%3b12406118%3b13578608%3b&scholarName=%e5%bc%a0%e6%9c%88%e7%ba%a2|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|187|8 +1792012|美国国家科学基金会工程学部机构重组及运行机制探析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZJJX201104010.htm|李江霞|11066226,15272243|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11066226%3b15272243%3b&scholarName=%e6%9d%8e%e6%b1%9f%e9%9c%9e|浙江外国语学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZJJX|48|1 +1792012|基于共词分析的中国科技创新政策变迁量化分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZXGL201509022.htm|黄萃,赵培强,李江|08168117,33495716,09377264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08168117%3b33495716%3b09377264%3b&scholarName=%e9%bb%84%e8%90%83|中国行政管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZXGL|2586|50 +1792012|三氧化二砷在肝癌综合治疗中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZZXJ200312022.htm|李江涛,区庆嘉,吴一冲,周修静,黄东全,高维实|05973310,22973458,22786152,22882110,22769330,23000340|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05973310%3b22973458%3b22786152%3b22882110%3b22769330%3b23000340%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b6%9b|中国中西医结合杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZZXJ|59|3 +1792012|急性低氧对下丘脑-垂体-肾上腺皮质轴(HPA轴)和中枢去甲肾上腺素(NE)能系统的作用及其相互关系|http://www.cnki.com.cn/Article/CJFDTOTAL-GYYZ199703033.htm|李江伟,吴雁,杜继曾|09326041,09645216,10360001|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09326041%3b09645216%3b10360001%3b&scholarName=%e6%9d%8e%e6%b1%9f%e4%bc%9f|高原医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GYYZ|134|2 +1792012|转轨时期银行与中小企业信用联系的经济分析|http://www.cnki.com.cn/Article/CJFDTOTAL-KJGL200507030.htm|李江,张莉|09078094,09391527|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09078094%3b09391527%3b&scholarName=%e6%9d%8e%e6%b1%9f|科技管理研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJGL|61|1 +1792012|对喹诺酮C-3位构效关系的一些影响因素|http://www.cnki.com.cn/Article/CJFDTOTAL-BJHY200003022.htm|李江波,张敬畅,林瑞森,俞庆森,曹维良|00001681,05964381,06315246,00011701,05964267|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=00001681%3b05964381%3b06315246%3b00011701%3b05964267%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|北京化工大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJHY|78|4 +1792012|中国大陆大型盆地的岩石圈结构及构造意义|http://www.cnki.com.cn/Article/CJFDTOTAL-DQKX201810002.htm|李孟奎,宋晓东,李江涛,鲍学伟|25663835,09029867,38053298,38053299,39385861|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25663835%3b09029867%3b38053298%3b38053299%3b39385861%3b&scholarName=%e6%9d%8e%e5%ad%9f%e5%a5%8e|地球科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DQKX|133|0 +1792012|基于实物的复杂曲面零件反求工程中未知区域测量数据补充及曲面重构技术|http://www.cnki.com.cn/Article/CJFDTOTAL-JXXB200209028.htm|瞿建武,李江雄,柯映林|05964661,09376370,08970984|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964661%3b09376370%3b08970984%3b&scholarName=%e7%9e%bf%e5%bb%ba%e6%ad%a6|机械工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXXB|339|22 +1792012|基于智慧电源架构的DC-DC并联研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDDJ201702037.htm|王超,李江,李培芳,吴铁洲,杨传东|22252038,09377264,09377797,07372058|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22252038%3b09377264%3b09377797%3b07372058%3b&scholarName=%e7%8e%8b%e8%b6%85|现代电子技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDDJ|45|0 +1792012|聚焦农村金融|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGQG200509008.htm|李江,张莉|09391527,09078094|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09391527%3b09078094%3b&scholarName=%e6%9d%8e%e6%b1%9f|中国国情国力|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGQG|17|3 +1792012|水囊扩张后隐神经营养血管皮瓣修复足踝部软组织缺损|http://www.cnki.com.cn/Article/CJFDTOTAL-GGJS200409039.htm|李江,虞和君,范顺武,路磊,冯明录|22741699,05965933,22792307,22837173,09402098|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22741699%3b05965933%3b22792307%3b22837173%3b09402098%3b&scholarName=%e6%9d%8e%e6%b1%9f|骨与关节损伤杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GGJS|27|2 +1792012|畜禽有机肥对土壤-番茄体系作物产量和重金属平衡的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-TRQS201404044.htm|鲁洪娟,李江遐,陈海燕,李静,倪吾钟|28060120,10279875,06153449,11200676,09666558,05969997|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28060120%3b10279875%3b06153449%3b11200676%3b09666558%3b05969997%3b&scholarName=%e9%b2%81%e6%b4%aa%e5%a8%9f|水土保持学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TRQS|246|3 +1792012|长三角城市群的格局演进、动力机制与发展趋势探究|http://www.cnki.com.cn/Article/CJFDTOTAL-JJJW200705023.htm|周昌林,李江|10550060,09377264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10550060%3b09377264%3b&scholarName=%e5%91%a8%e6%98%8c%e6%9e%97|经济经纬|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JJJW|947|16 +1792012|单篇论著的引文扩散|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201804001.htm|闵超,Ying Ding,李江,孙建军|30647216,39573159,39573160,09377264,08067678|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30647216%3b39573159%3b39573160%3b09377264%3b08067678%3b&scholarName=%e9%97%b5%e8%b6%85|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|231|0 +1792012|基于Android的4G网络移动高清视频监控系统关键技术的研究|http://cdmd.cnki.com.cn/Article/CDMD-10335-1016049328.htm|李江|09377264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b&scholarName=%e6%9d%8e%e6%b1%9f|||851|16 +1792012|烟草坏死病毒A大豆分离物的分子鉴定|http://www.cnki.com.cn/Article/CJFDTOTAL-ZWBL200706007.htm|席德慧,李江,曹淳,韩成贵,李大伟,于嘉林,周雪平|09624105,09722495,09719822,05970827,10367322,05968314,05967653|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09624105%3b09722495%3b09719822%3b05970827%3b10367322%3b05968314%3b05967653%3b&scholarName=%e5%b8%ad%e5%be%b7%e6%85%a7|植物病理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZWBL|195|4 +1792012|二维曲线自动跟踪测量的一种新算法|http://www.cnki.com.cn/Article/CJFDTOTAL-JLXB200301004.htm|李维诗,李江雄,柯映林,程耀东|08521679,05964661,05966832,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08521679%3b05964661%3b05966832%3b09376370%3b&scholarName=%e6%9d%8e%e7%bb%b4%e8%af%97|计量学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLXB|187|28 +1792012|基于分子静电势的喹诺酮5位构效关系研究|http://www.cnki.com.cn/Article/CJFDTOTAL-YAOL200003035.htm|李江波,林瑞森,俞庆森|06315246,05964381,00001681|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06315246%3b05964381%3b00001681%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|中国药理学通报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YAOL|47|0 +1792012|基于RGB模型的脱绒棉种颜色特征与发芽状况的关系|http://www.cnki.com.cn/Article/CJFDTOTAL-NYGU201010031.htm|张若宇,坎杂,马蓉,曹卫彬,李江波|09747704,09746133,08699014,09745134,09376368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09747704%3b09746133%3b08699014%3b09745134%3b09376368%3b&scholarName=%e5%bc%a0%e8%8b%a5%e5%ae%87|农业工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NYGU|227|18 +1792012|腹腔镜逆行及次全胆囊切除术治疗复杂胆囊患者的对比研究|http://www.cnki.com.cn/Article/CJFDTOTAL-FQJW201306021.htm|应学清,李江涛,吴方华|29270934,09396325,29270935|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29270934%3b09396325%3b29270935%3b&scholarName=%e5%ba%94%e5%ad%a6%e6%b8%85|腹腔镜外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FQJW|48|5 +1792012|胃癌相关新基因GDDR的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHWK200501005.htm|杜建军,窦科峰,彭淑牖,李江涛,刘颖斌,王为忠,管文贤,高志清|05966306,09396325,22736872,05967238,05966445,05966858,05967999,05970764|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05966306%3b09396325%3b22736872%3b05967238%3b05966445%3b05966858%3b05967999%3b05970764%3b&scholarName=%e6%9d%9c%e5%bb%ba%e5%86%9b|中华外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHWK|219|17 +1792012|粉煤灰合成沸石优化设计及其废水同步脱氮除磷研究|http://cdmd.cnki.com.cn/Article/CDMD-10335-1013340080.htm|李江丽|25893526|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25893526%3b&scholarName=%e6%9d%8e%e6%b1%9f%e4%b8%bd|||777|2 +1792012|图像检测螺纹的系统设计|http://www.cnki.com.cn/Article/CJFDTOTAL-JZCK201503063.htm|孙珂琪,郑堤,陈俊华,郭瑞,李江花|32941762,29503019,26044676,09369163,30366492,32941763,29503018|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32941762%3b29503019%3b26044676%3b09369163%3b30366492%3b32941763%3b29503018%3b&scholarName=%e5%ad%99%e7%8f%82%e7%90%aa|计算机测量与控制|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JZCK|145|8 +1792012|长白猪有关繁殖性状对60d窝重影响的分析|http://www.cnki.com.cn/Article/CJFDTOTAL-SWSX200501018.htm|陈海燕,李江波,叶选怡,傅衍,陆建定|13455216,10277622,08551241,07917385,07927592|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13455216%3b10277622%3b08551241%3b07917385%3b07927592%3b&scholarName=%e9%99%88%e6%b5%b7%e7%87%95|生物数学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SWSX|62|4 +1792012|微细管道内表面检测器的对中方法研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GDZJ200604006.htm|吴恩启,李江雄,柯映林|05964661,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964661%3b09376370%3b&scholarName=%e5%90%b4%e6%81%a9%e5%90%af|光电子·激光|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDZJ|77|0 +1792012|基于自适应PIR技术的太阳能照明装置研究|http://www.cnki.com.cn/Article/CJFDTOTAL-NCNY201702007.htm|王超,吴铁洲,李江,李培芳,杨传东|22252038,07372058,09377264,09377797|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22252038%3b07372058%3b09377264%3b09377797%3b&scholarName=%e7%8e%8b%e8%b6%85|可再生能源|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NCNY|61|0 +1792012|高速加工技术及其在模具制造中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-MJZZ200206014.htm|童红峰,李江雄,吴福中,巫新海||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e7%ab%a5%e7%ba%a2%e5%b3%b0|模具制造|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/MJZZ|152|3 +1792012|高Ce含量(Nd,Ce)-Fe-B磁体显微组织与磁性能研究|http://cdmd.cnki.com.cn/Article/CDMD-10335-1017275269.htm|李江涛|09377266|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377266%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b6%9b|||65|1 +1792012|内蒙古草原不同利用方式下土壤有机质矿化及其微生物学机理研究|http://cdmd.cnki.com.cn/Article/CDMD-10335-1018001060.htm|李江叶|38373241|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38373241%3b&scholarName=%e6%9d%8e%e6%b1%9f%e5%8f%b6|||575|1 +1792012|脐橙表面缺陷的快速检测方法研究|http://cdmd.cnki.com.cn/Article/CDMD-10335-1012312661.htm|李江波|09376368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|||2076|44 +1792012|胆管癌染色体DNA拷贝数的变化研究|http://www.cnki.com.cn/Article/CJFDTOTAL-YIKE200806007.htm|刘付宝,李江涛,薛建锋,刘颖斌,彭佳萍,徐伟珍,胡亮,关新元,彭淑牖|10746032,09396325,10285517,05966306,09358417,09358561,09206831,10234620,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10746032%3b09396325%3b10285517%3b05966306%3b09358417%3b09358561%3b09206831%3b10234620%3b05967238%3b&scholarName=%e5%88%98%e4%bb%98%e5%ae%9d|安徽医科大学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YIKE|65|0 +1792012|菱湖“桑基鱼塘”系统及其农业文化遗产的的保护与利用|http://www.cnki.com.cn/Article/CJFDTOTAL-CSTB201501004.htm|丁农,金瑞丰,张金卫,李江涛,朱祥瑞,李卫旗,董魁富,王林荣|17298473,31368997,15601230,21936766,10284974,09377857,22216755|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17298473%3b31368997%3b15601230%3b21936766%3b10284974%3b09377857%3b22216755%3b&scholarName=%e4%b8%81%e5%86%9c|蚕桑通报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CSTB|218|4 +1792012|反求工程中实物测量数据补缺及重构技术|http://www.cnki.com.cn/Article/CJFDTOTAL-JXKX200203053.htm|瞿建武,柯映林,李江雄|08970984,05964661,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08970984%3b05964661%3b09376370%3b&scholarName=%e7%9e%bf%e5%bb%ba%e6%ad%a6|机械科学与技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXKX|212|22 +1792012|微细管道内表面光电检测及三维重构系统|http://www.cnki.com.cn/Article/CJFDTOTAL-GDGC200701016.htm|吴恩启,柯映林,李江雄|05964661,09618733,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964661%3b09618733%3b09376370%3b&scholarName=%e5%90%b4%e6%81%a9%e5%90%af|光电工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDGC|289|3 +1792012|基于ARM的燃气调压器检测系统研究|http://cdmd.cnki.com.cn/Article/CDMD-10335-2010056005.htm|李江波|09376368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|||280|9 +1792012|自由曲面的局部美化技术|http://www.cnki.com.cn/Article/CJFDTOTAL-JXXB200812032.htm|范树迁,石明全,柯映林,李江雄|21835773,09372005,14964183,05964661,09376370|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21835773%3b09372005%3b14964183%3b05964661%3b09376370%3b&scholarName=%e8%8c%83%e6%a0%91%e8%bf%81|机械工程学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXXB|174|1 +1792012|合并慢性胰腺炎的胰腺癌癌旁增生性胰管上皮细胞线粒体DNA突变的意义|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHZL200606012.htm|母德清,高丽杰,彭淑牖,李江涛,王国凤|20049369,05967238,20842340,10285444,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=20049369%3b05967238%3b20842340%3b10285444%3b09396325%3b&scholarName=%e6%af%8d%e5%be%b7%e6%b8%85|中华肿瘤杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHZL|73|4 +1792012|杂种猪胴体性状的通径分析|http://www.cnki.com.cn/Article/CJFDTOTAL-SHNX200301012.htm|陈海燕,李江波,徐燕云,钟仙龙,傅衍,徐宁迎,章胜乔|08551241,09350081,09392558,10277622,07917385,07927583,07927612|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08551241%3b09350081%3b09392558%3b10277622%3b07917385%3b07927583%3b07927612%3b&scholarName=%e9%99%88%e6%b5%b7%e7%87%95|上海交通大学学报(农业科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SHNX|46|2 +1792012|茶多酚作用于线粒体杀伤胰腺癌细胞的实验性研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHGD200606023.htm|母德清,彭淑牖,李江涛|09396325,05967238,20842340|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b05967238%3b20842340%3b&scholarName=%e6%af%8d%e5%be%b7%e6%b8%85|中华肝胆外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHGD|149|3 +1792012|天然彩色蚕茧茧层中色素含量及抗氧化物活性的测定|http://www.cnki.com.cn/Article/CJFDTOTAL-AHNY201511056.htm|丁农,张金卫,金瑞丰,李江涛,冯世明,鱼南洋,陆萍,李卫旗|17298473,15601230,31368997,21936766,24958810,17303462,10279920,09377857|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17298473%3b15601230%3b31368997%3b21936766%3b24958810%3b17303462%3b10279920%3b09377857%3b&scholarName=%e4%b8%81%e5%86%9c|安徽农业科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/AHNY|76|4 +1792012|门、脾、肠系膜上静脉控制在胰腺钩突癌的手术切除中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-GDWZ200901016.htm|冯雪冬,彭淑牖,李江涛,刘颖斌|11533423,05967238,09396325,05966306|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11533423%3b05967238%3b09396325%3b05966306%3b&scholarName=%e5%86%af%e9%9b%aa%e5%86%ac|肝胆外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDWZ|152|2 +1792012|原发性肝癌生长抑素受体mRNA表达的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHPZ200301028.htm|颜登国,区庆嘉,李江涛|06937438,09396325,05973310|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06937438%3b09396325%3b05973310%3b&scholarName=%e9%a2%9c%e7%99%bb%e5%9b%bd|中华普通外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHPZ|58|20 +1792012|一种自动流量平衡阀的数值分析与实验研究|http://cdmd.cnki.com.cn/Article/CDMD-10335-2006175440.htm|李江莉|09376369|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376369%3b&scholarName=%e6%9d%8e%e6%b1%9f%e8%8e%89|||325|10 +1792012|湖州市射中村桑基鱼塘发展变化与保护实践|http://www.cnki.com.cn/Article/CJFDTOTAL-ANHE201509202.htm|丁农,金瑞丰,张金卫,李江涛,朱祥瑞,李卫旗,董魁富,王林荣|17298473,31368997,15601230,21936766,10284974,09377857,22216755|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17298473%3b31368997%3b15601230%3b21936766%3b10284974%3b09377857%3b22216755%3b&scholarName=%e4%b8%81%e5%86%9c|现代农业科技|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ANHE|189|2 +1792012|海底热液活动声音与温度时序监测技术研究|http://cdmd.cnki.com.cn/Article/CDMD-10335-1018255140.htm|李江涛|09377266|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377266%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b6%9b|||21|0 +1792012|上海证券市场流动性的实证研究|http://cdmd.cnki.com.cn/Article/CDMD-10335-2005115577.htm|李江东|10279072|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10279072%3b&scholarName=%e6%9d%8e%e6%b1%9f%e4%b8%9c|||306|1 +1792012|减味血府逐瘀汤结合平衡针刺治疗脑卒中后肌张力增高的临床观察|http://www.cnki.com.cn/Article/CJFDTOTAL-ZJZZ200905004.htm|倪克锋,龚燕,包烨华,李江,丁志山,楚佳梅,葛芳,朱国祥,王延武,陈顺喜|07053164,07053115,07053079,09377264,10948800,07062139,07062156,07062469,22474879,22474880|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07053164%3b07053115%3b07053079%3b09377264%3b10948800%3b07062139%3b07062156%3b07062469%3b22474879%3b22474880%3b&scholarName=%e5%80%aa%e5%85%8b%e9%94%8b|浙江中医杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZJZZ|143|4 +1792012|MMP-7、TIMP-1在胆囊癌组织中的表达|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHLU200503018.htm|王新保,彭淑牖,郭剑民,李江涛,张则伟,杜义安|09450709,09450719,09418627,09467132,09396325,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09450709%3b09450719%3b09418627%3b09467132%3b09396325%3b05967238%3b&scholarName=%e7%8e%8b%e6%96%b0%e4%bf%9d|中国肿瘤|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHLU|71|2 +1792012|神经—模糊预测控制及其在碱回收炉中的应用|http://cdmd.cnki.com.cn/Article/CDMD-10335-2001010165.htm|李江|09377264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b&scholarName=%e6%9d%8e%e6%b1%9f|||567|5 +1792012|胆囊癌病人基质金属蛋白酶-7的表达|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHGD200601029.htm|王新保,彭淑牖,郭剑民,李江涛,张则伟,程向东,杜义安|09450719,09467132,10303623,09466617,09418627,05967238,09450709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09450719%3b09467132%3b10303623%3b09466617%3b09418627%3b05967238%3b09450709%3b&scholarName=%e7%8e%8b%e6%96%b0%e4%bf%9d|中华肝胆外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHGD|53|1 +1792012|喹诺酮类药物构效关系之研究|http://cdmd.cnki.com.cn/Article/CDMD-10335-2006158140.htm|李江波|09376368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|||769|4 +1792012|通过再燃降低炉膛NO_x技术中再燃燃料制备问题探讨|http://www.cnki.com.cn/Article/CJFDTOTAL-DZXT200506012.htm|李凤瑞,黄郁明,李剑,李江荣,池作和|20104013,00009784,20673005,20748557,20599086|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=20104013%3b00009784%3b20673005%3b20748557%3b20599086%3b&scholarName=%e6%9d%8e%e5%87%a4%e7%91%9e|电站系统工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DZXT|66|0 +1792012|肌球蛋白轻链激酶表达水平与炎症性肠病活动关系的研究|http://cdmd.cnki.com.cn/Article/CDMD-10335-2007079785.htm|李江波|09376368|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09376368%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|||148|0 +1792012|奥曲肽抑制裸小鼠肝脏移植瘤生长的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHSY200301041.htm|颜登国,区庆嘉,李江涛|09396325,06937438,05973310|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b06937438%3b05973310%3b&scholarName=%e9%a2%9c%e7%99%bb%e5%9b%bd|中华实验外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHSY|33|6 +1792012|中华蜜蜂(Apis cerana)毒腺cDNA文库的构建及主要毒蛋白基因表达调控研究|http://cdmd.cnki.com.cn/Article/CDMD-10335-2005088141.htm|李江红|09377265|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377265%3b&scholarName=%e6%9d%8e%e6%b1%9f%e7%ba%a2|||459|0 +1792012|PLB基因反义RNA腺相关病毒载体的构建及其对糖尿病大鼠心力衰竭的疗效|http://cdmd.cnki.com.cn/Article/CDMD-10335-2005086291.htm|李江|09377264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09377264%3b&scholarName=%e6%9d%8e%e6%b1%9f|||181|0 +1792012|茶多酚联合黄芩提取物对急性百草枯中毒大鼠治疗作用的实验研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGZP201404001038.htm|徐丽倩,李江,李璐璐,李剑平,刘晓璐,朱秀明,裘云庆|24854038,09360589,25970942,09360588,29271317,26697591,09361175|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24854038%3b09360589%3b25970942%3b09360588%3b29271317%3b26697591%3b09361175%3b&scholarName=%e5%be%90%e4%b8%bd%e5%80%a9|||36|0 +1792012|肌球蛋白轻链激酶(MLCK)表达水平与炎症性肠病(IBD)活动度关系的研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200711002065.htm|李江波,高敏|10277680|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10277680%3b&scholarName=%e6%9d%8e%e6%b1%9f%e6%b3%a2|||70|0 +1792012|急性中毒的进展|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200711006122.htm|李江,黄卫东,丁晨彦|09360589,11517495,09397325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09360589%3b11517495%3b09397325%3b&scholarName=%e6%9d%8e%e6%b1%9f|||42|0 +1792012|经胆道镜钬激光治疗肝内胆管结石并发胆道狭窄的初步经验附13例报告|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX201412003126.htm|楼健颖,陈伟,黄冰锋,胡启达,马涛,王冀,李国刚,张匀,高顺良,白雪莉,李江涛,梁廷波|10285349,09357260,32334663,32620630,32620631,32620632,09395064,30295022,09357708,28271405,09396325,27037691|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10285349%3b09357260%3b32334663%3b32620630%3b32620631%3b32620632%3b09395064%3b30295022%3b09357708%3b28271405%3b09396325%3b27037691%3b&scholarName=%e6%a5%bc%e5%81%a5%e9%a2%96|||40|0 +1792012|冷循环射频消融治疗421例肝脏肿瘤|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGKA201109004035.htm|方河清,唐喆,吴育连,李江涛,刘颖斌,高顺良,王涌,许俊,莫国强,陈建科,武晓勇|05969822,09358481,05969176,09396325,05966306,09357708,09396010,09396611,09358403,09395852,22620873|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05969822%3b09358481%3b05969176%3b09396325%3b05966306%3b09357708%3b09396010%3b09396611%3b09358403%3b09395852%3b22620873%3b&scholarName=%e6%96%b9%e6%b2%b3%e6%b8%85|||29|0 +1792012|中西医结合治疗术后耐药屎肠球菌感染|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGZP200707001024.htm|刘颖斌,唐喆,方河清,李江涛,王许安,孔颖,马孝明,陈燕,陈德琴,翁伟宏,彭淑牖|09358481,09396325,10895485,11145045,11334973,11112115,10998166,10906828,05967238,05969822,05966306|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09358481%3b09396325%3b10895485%3b11145045%3b11334973%3b11112115%3b10998166%3b10906828%3b05967238%3b05969822%3b05966306%3b&scholarName=%e5%88%98%e9%a2%96%e6%96%8c|||45|0 +1792012|肝癌切除术后早/晚复发的外科治疗和多因素分析|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200511003018.htm|方河清,苏昆仑,高顺良,李江涛,徐斌,吴育连|05969822,09395956,09357708,10285498,05969176,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05969822%3b09395956%3b09357708%3b10285498%3b05969176%3b09396325%3b&scholarName=%e6%96%b9%e6%b2%b3%e6%b8%85|||16|0 +1792012|腺相关病毒介导的磷酸受纳蛋白基因反义RNA改善糖尿病大鼠心肌肌浆网Ca2+-ATPase活性和左心功能|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200907001027.htm|李江,黄卫东|09360589,11517495|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09360589%3b11517495%3b&scholarName=%e6%9d%8e%e6%b1%9f|||20|0 +1792012|高含量γ-氨基丁酸功能稻米AbA-1品质分析及应用|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=OGSK200403001038&dbname=IPFD9914|崔艳丽,毛建卫,王桂仙,李江|10289271,13475316,09370489,13475328|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10289271%3b13475316%3b09370489%3b13475328%3b&scholarName=%e5%b4%94%e8%89%b3%e4%b8%bd|||28|0 +1792012|连续300例腹腔镜胆囊切除术行日间手术(Day Surgery)报告|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX201412003127.htm|楼健颖,陈伟,黄冰锋,胡启达,马涛,王冀,李国刚,张匀,高顺良,白雪莉,李江涛,梁廷波|10285349,09357260,32334663,32620630,32620631,32620632,09395064,30295022,09357708,28271405,09396325,27037691|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10285349%3b09357260%3b32334663%3b32620630%3b32620631%3b32620632%3b09395064%3b30295022%3b09357708%3b28271405%3b09396325%3b27037691%3b&scholarName=%e6%a5%bc%e5%81%a5%e9%a2%96|||60|1 +1792012|临床表现不典型的升主动脉夹层动脉瘤破裂1例分析|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=ZHYX201105002615&dbname=IPFD9914|李璐璐,李江,宁建文|25970942,09360589,09398010|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25970942%3b09360589%3b09398010%3b&scholarName=%e6%9d%8e%e7%92%90%e7%92%90|||25|0 +1792012|经正中裂入路单独完整肝尾状叶切除术的策略探讨|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200711005046.htm|洪德飞,彭淑牖,许斌,王建伟,刘颖斌,钱浩然,李江涛,牟一平,蔡秀军,严力锋,王钊|09401769,05964914,05965597,14361041,14360445,09364036,10286647,09396988,05966306,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09401769%3b05964914%3b05965597%3b14361041%3b14360445%3b09364036%3b10286647%3b09396988%3b05966306%3b09396325%3b&scholarName=%e6%b4%aa%e5%be%b7%e9%a3%9e|||38|0 +1792012|高含量γ-氨基丁酸功能稻米AbA-1品质分析及应用|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=OGSK200403002039&dbname=IPFD9914|崔艳丽,毛建卫,王桂仙,李江|10289271,13475316,13475328,09370489|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10289271%3b13475316%3b13475328%3b09370489%3b&scholarName=%e5%b4%94%e8%89%b3%e4%b8%bd|||17|0 +1792012|冷循环射频消融治疗421例肝脏肿瘤|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200711005011.htm|方河清,吴育连,唐喆,李江涛,刘颖斌,高顺良,王涌,许俊,莫国强,陈建科|05969822,09357708,09396010,09396611,09358481,09396325,09395852,05969176,05966306,09358403|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05969822%3b09357708%3b09396010%3b09396611%3b09358481%3b09396325%3b09395852%3b05969176%3b05966306%3b09358403%3b&scholarName=%e6%96%b9%e6%b2%b3%e6%b8%85|||5|0 +1792012|胆管癌栓致梗阻性黄疸外科治疗|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGKA200911001005.htm|彭淑牖,王建伟,李江涛|05967238,09396988,09396325|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967238%3b09396988%3b09396325%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|||16|0 +1792012|简易胰门三头控制技术在困难型胰十二指肠切除术中的应用|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=LSDD200710001132&dbname=IPFD9914|洪德飞,彭淑牖,许斌,严厉锋,王建伟,刘颖斌,李江涛,钱浩然,牟一平,蔡秀军|09396988,09396325,09364036,10286647,10826581,09401769,05964914,05965597,05967238,05966306|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396988%3b09396325%3b09364036%3b10286647%3b10826581%3b09401769%3b05964914%3b05965597%3b05967238%3b05966306%3b&scholarName=%e6%b4%aa%e5%be%b7%e9%a3%9e|||21|0 +1792012|环境噪声和地震面波成像构建中国大陆岩石圈高分辨率速度结构|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGDW201710036001.htm|鲍学伟,宋晓东,李江涛|39385861,37970983,37970982|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=39385861%3b37970983%3b37970982%3b&scholarName=%e9%b2%8d%e5%ad%a6%e4%bc%9f|||8|0 +1792012|脑血管病患者心理障碍及相关因素|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200608004027.htm|丁晨彦,李江|09397325,09360589|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09397325%3b09360589%3b&scholarName=%e4%b8%81%e6%99%a8%e5%bd%a6|||14|0 +1792012|冷循环射频消融治疗421例肝脏肿瘤|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=HJYB200809002873&dbname=IPFD9914|方河清,唐喆,吴育连,李江涛,刘颖斌,高顺良,王涌,许俊,莫国强,陈建科,武晓勇|05969822,09358481,05969176,09396325,05966306,09357708,09396010,09396611,09358403,09395852,22620873|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05969822%3b09358481%3b05969176%3b09396325%3b05966306%3b09357708%3b09396010%3b09396611%3b09358403%3b09395852%3b22620873%3b&scholarName=%e6%96%b9%e6%b2%b3%e6%b8%85|||8|0 +1792012|反义PLB载体对创伤性休克大鼠心肌钙超载的干预作用|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200810004020.htm|李江,黄卫东,陈作兵,丁晨彦,平玉坤|09360589,11517495,09360472,09397325,10285856|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09360589%3b11517495%3b09360472%3b09397325%3b10285856%3b&scholarName=%e6%9d%8e%e6%b1%9f|||2|0 +1792012|干燥综合症合并慢性假性肠梗阻1例|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200510005072.htm|郑小娟,高敏,罗灵和,刘芊,李江波,马阿火|14487221,22840640,14630671,09401505,14886691,09401752|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14487221%3b22840640%3b14630671%3b09401505%3b14886691%3b09401752%3b&scholarName=%e9%83%91%e5%b0%8f%e5%a8%9f|||50|0 +1792012|二维超声在评价急性大鼠心肌梗死实验模型中的应用|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-CSYX200708001104.htm|牟芸,李江,姚磊,赵晓燕|09398985,09399513,09398931,09360589|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09398985%3b09399513%3b09398931%3b09360589%3b&scholarName=%e7%89%9f%e8%8a%b8|||10|0 +1792012|TIMP-1小干扰RNA载体构建及对百草枯中毒大鼠肺纤维化的影响|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=ZHYX201105002515&dbname=IPFD9914|裘云庆,李江,陈作兵,丁晨彦,李璐璐,徐佳,宁建文|09361175,09360589,09360472,09397325,25970942,26769323,09398010|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09361175%3b09360589%3b09360472%3b09397325%3b25970942%3b26769323%3b09398010%3b&scholarName=%e8%a3%98%e4%ba%91%e5%ba%86|||28|0 +1792012|加压网前箱多变量计算机控制模拟系统|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-KZJC199605001262.htm|吴文吉,李江,李平,钱积新|00000816,00000967,09377264,09387215|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=00000816%3b00000967%3b09377264%3b09387215%3b&scholarName=%e5%90%b4%e6%96%87%e5%90%89|||3|0 +1792012|前入路肝切除术结合绕肝提拉技术在疑难肝切除术中的应用|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200711005025.htm|方河清,李江涛,唐喆,陆文洁,罗浩杰,温怡洪,陈辉,陈刚红|14356332,14356303,05969822,09396325,09358481,14358907,14358955,14360537|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14356332%3b14356303%3b05969822%3b09396325%3b09358481%3b14358907%3b14358955%3b14360537%3b&scholarName=%e6%96%b9%e6%b2%b3%e6%b8%85|||34|0 +1792012|肠系膜上动、静脉交叉提拉技术在胰头癌根治切除术中的应用|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200711005024.htm|彭淑牖,洪德飞,许斌,王钊,严力锋,王建伟,刘颖斌,李江涛,钱浩然,牟一平,蔡秀军|14361041,09396325,09401769,05965597,09396988,05966306,05964914,09364036,10286647,14360445|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14361041%3b09396325%3b09401769%3b05965597%3b09396988%3b05966306%3b05964914%3b09364036%3b10286647%3b14360445%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|||26|0 +1792012|简易胰门三头控制技术在困难型胰十二指肠切除术中的应用|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200711005041.htm|彭淑牖,洪德飞,许斌,严厉锋,王建伟,刘颖斌,李江涛,钱浩然,牟一平,蔡秀军|05966306,05964914,05965597,09364036,10286647,10826581,09396988,09396325,09401769|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05966306%3b05964914%3b05965597%3b09364036%3b10286647%3b10826581%3b09396988%3b09396325%3b09401769%3b&scholarName=%e5%bd%ad%e6%b7%91%e7%89%96|||26|0 +1792012|二维超声在评价大鼠急性心肌梗死实验模型中的应用|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200512004028.htm|牟芸,李江,姚磊,赵晓燕|09360589,09399513,09398985,09398931|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09360589%3b09399513%3b09398985%3b09398931%3b&scholarName=%e7%89%9f%e8%8a%b8|||10|0 +1792012|EICU患者的心理问题及对策|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200806002045.htm|丁晨彦,李江|09397325,09360589|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09397325%3b09360589%3b&scholarName=%e4%b8%81%e6%99%a8%e5%bd%a6|||3|0 +1792012|下腔静脉重建联合肝叶切除治疗肝癌的初步研究|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=LSDD200710001460&dbname=IPFD9914|洪德飞,彭淑牖,许斌,蔡秀军,牟一平,刘颖斌,王建伟,李江涛,薛建锋,刘付保,钱浩然|09364036,10286647,09401769,10285517,10826575,09396325,09396988,05966306,05965597,05964914,05967238|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09364036%3b10286647%3b09401769%3b10285517%3b10826575%3b09396325%3b09396988%3b05966306%3b05965597%3b05964914%3b05967238%3b&scholarName=%e6%b4%aa%e5%be%b7%e9%a3%9e|||17|0 +1792012|胰门三头控制结合血管交叉提拉技术在胰头癌根治术中的应用|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200811004094.htm|洪德飞,彭淑牖,许斌,刘颖斌,李江涛,钱浩然,蔡秀军|09364036,15257688,10286647,21927612,21927613,09401769,14588180|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09364036%3b15257688%3b10286647%3b21927612%3b21927613%3b09401769%3b14588180%3b&scholarName=%e6%b4%aa%e5%be%b7%e9%a3%9e|||9|0 +1792012|射频消融治疗517例肝脏肿瘤并发症的预防|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=HJYB200809002983&dbname=IPFD9914|方河清,唐喆,吴育连,李江涛,刘颖斌,莫国强,许俊,陈建科,武晓勇|05969822,09358481,05969176,09396325,05966306,09358403,09396611,09395852,22620873|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05969822%3b09358481%3b05969176%3b09396325%3b05966306%3b09358403%3b09396611%3b09395852%3b22620873%3b&scholarName=%e6%96%b9%e6%b2%b3%e6%b8%85|||10|0 +1792012|局部复发性胃癌再手术治疗28例分析|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200912004085.htm|陆贝,蔡阳,李江涛|23839710,24192991,09377266|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23839710%3b24192991%3b09377266%3b&scholarName=%e9%99%86%e8%b4%9d|||7|0 +1792012|rAAV-asPLB载体构建及其对急性心肌梗死心力衰竭的疗效|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZHJZ200605001737.htm|李江,周永庆,高原,陈作兵||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e6%9d%8e%e6%b1%9f|||7|0 +1792012|超声破裂微泡诱导大鼠心肌血管通透性的影响|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200711004094.htm|牟芸,叶炀,胡申江,李江,赵小燕|09398985,10285728,14362105,11206803,09360589|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09398985%3b10285728%3b14362105%3b11206803%3b09360589%3b&scholarName=%e7%89%9f%e8%8a%b8|||5|0 +1792012|56例良恶性阻塞性黄疸内镜治疗分析|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200510005009.htm|高敏,罗灵和,李江波,刘芊,郑小娟|09401505,14630671,14487221,14886691,09401752|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09401505%3b14630671%3b14487221%3b14886691%3b09401752%3b&scholarName=%e9%ab%98%e6%95%8f|||9|0 +1792012|特发性收缩性肠系膜炎1例|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200510005125.htm|罗灵和,高敏,曹倩,李江波,刘芊,郑小娟|09401752,14630671,14487221,14886691,09401215,09401505|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09401752%3b14630671%3b14487221%3b14886691%3b09401215%3b09401505%3b&scholarName=%e7%bd%97%e7%81%b5%e5%92%8c|||5|0 +1792012|特发性收缩性肠系膜炎一例|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200511001061.htm|罗灵和,高敏,曹倩,李江波,刘芊,郑小娟|14487221,09401505,09401215,14630671,14886691,09401752|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14487221%3b09401505%3b09401215%3b14630671%3b14886691%3b09401752%3b&scholarName=%e7%bd%97%e7%81%b5%e5%92%8c|||3|0 +1792012|56例良恶性阻塞性黄疸内镜治疗分析|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200511001051.htm|高敏,罗灵和,李江波,刘芊,郑小娟|09401752,09401505,14487221,14630671,14886691|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09401752%3b09401505%3b14487221%3b14630671%3b14886691%3b&scholarName=%e9%ab%98%e6%95%8f|||9|0 +1792012|超声破裂微泡对大鼠心肌血管通透性的影响|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZJKX200611010027.htm|姚磊,牟芸,叶炀,李江|09399513,09398985,09360589,11206803|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09399513%3b09398985%3b09360589%3b11206803%3b&scholarName=%e5%a7%9a%e7%a3%8a|||2|0 +1792012|中国甜米酒酒曲微生物多样性及生化分析|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=ZGSP201711001241&dbname=IPFDLAST2018|蔡海莺,张婷,葛展榜,李江,张琪,罗洁,俞韩科,王珍珍,毛旸晨,蔡成岗,冯凤琴,艾庭,毛建卫|37153084,29880645,37085093,38880593,38880594,38880591,38880592,38880590,32083512,37616399,28467855,09326236,10289271|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37153084%3b29880645%3b37085093%3b38880593%3b38880594%3b38880591%3b38880592%3b38880590%3b32083512%3b37616399%3b28467855%3b09326236%3b10289271%3b&scholarName=%e8%94%a1%e6%b5%b7%e8%8e%ba|||62|0 +1792012|食品添加剂工业中的膜技术进展|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=OGSK200304001009&dbname=IPFD9914|王桂仙,李江,毛建卫,崔艳丽|09370489,10289271|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09370489%3b10289271%3b&scholarName=%e7%8e%8b%e6%a1%82%e4%bb%99|||84|0 +1792012|五肽前导肽增强疏绵状嗜热丝孢菌脂肪酶在毕赤酵母的重组表达和蛋白折叠研究|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=ZGSP201711001238&dbname=IPFDLAST2018|蔡海莺,张婷,罗洁,张琪,葛展榜,李江,俞韩科,王珍珍,毛旸晨,蔡成岗,毛建卫,冯凤琴|37153084,29880645,37085093,38880592,38880591,38880593,38880594,38880590,32083512,37616399,28467855,10289271,09326236|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37153084%3b29880645%3b37085093%3b38880592%3b38880591%3b38880593%3b38880594%3b38880590%3b32083512%3b37616399%3b28467855%3b10289271%3b09326236%3b&scholarName=%e8%94%a1%e6%b5%b7%e8%8e%ba|||7|0 +1792012|miR-151-3p作为数据库不可预测的microRNA靶向Stat3并抑制天然IL-6生成|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-IGMD201710003020.htm|刘翔,苏小平,徐胜,王华敏,韩丹,李江雪,黄明燕,曹雪涛|20783588,20559800,20958853,33401473,27944393,38195947,36187088,05967370,32008961,26480769|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=20783588%3b20559800%3b20958853%3b33401473%3b27944393%3b38195947%3b36187088%3b05967370%3b32008961%3b26480769%3b&scholarName=%e5%88%98%e7%bf%94|||27|0 +1792012|同工酶共表达增强脂肪酶的毕赤酵母重组表达|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=ZGSP201711001237&dbname=IPFDLAST2018|蔡海莺,张婷,张琪,罗洁,葛展榜,李江,俞韩科,王珍珍,毛旸晨,蔡成岗,毛建卫,冯凤琴|37153084,29880645,37085093,38880591,38880592,38880593,38880594,38880590,32083512,37616399,28467855,10289271,09326236|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37153084%3b29880645%3b37085093%3b38880591%3b38880592%3b38880593%3b38880594%3b38880590%3b32083512%3b37616399%3b28467855%3b10289271%3b09326236%3b&scholarName=%e8%94%a1%e6%b5%b7%e8%8e%ba|||6|0 +1792012|烟草坏死病毒A大豆分离物的分子鉴定及其侵染性cDNA克隆的构建|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGVS200608001131.htm|席德慧,李江,曹淳,韩成贵,李大伟,于嘉林,周雪平|05967653,05968314,10367322,05970827,09719822,09624105,09722495|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05967653%3b05968314%3b10367322%3b05970827%3b09719822%3b09624105%3b09722495%3b&scholarName=%e5%b8%ad%e5%be%b7%e6%85%a7|||55|0 +1792012|TiO_2薄膜材料在手术解剖器上的应用|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGZU200708001123.htm|汪洋,李江涛,苏英|09396325,09395958,08547188|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09396325%3b09395958%3b08547188%3b&scholarName=%e6%b1%aa%e6%b4%8b|||27|0 +1798395|我国图情领域期刊论文在线百科的利用特征探析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201619016.htm|王志红|32926543|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32926543%3b&scholarName=%e7%8e%8b%e5%bf%97%e7%ba%a2|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|205|5 +1798395|智慧城市环境下个人信息安全保护问题分析及立法建议|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQC201503005.htm|曹树金,王志红,古婷骅|09997620,32926543,32926544|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09997620%3b32926543%3b32926544%3b&scholarName=%e6%9b%b9%e6%a0%91%e9%87%91|图书情报知识|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQC|1929|22 +1798395|面向网络信息资源聚合搜索的细粒度聚合单元元数据研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGTS201704006.htm|曹树金,李洁娜,王志红|09997620,37438960,32926543|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09997620%3b37438960%3b32926543%3b&scholarName=%e6%9b%b9%e6%a0%91%e9%87%91|中国图书馆学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGTS|868|9 +1798395|虚拟社区知识共享意愿与行为的影响因素及其调节变量:元分析研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201808013.htm|曹树金,王志红|09997620,32926543|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09997620%3b32926543%3b&scholarName=%e6%9b%b9%e6%a0%91%e9%87%91|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|426|0 +1798395|国内外知识组织研究内容与发展——基于《图书情报工作》与Knowledge Organization期刊论文的比较分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQC201704011.htm|曹树金,王志红,王连喜|09997620,32926543,24688918|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09997620%3b32926543%3b24688918%3b&scholarName=%e6%9b%b9%e6%a0%91%e9%87%91|图书情报知识|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQC|584|1 +1798395|论大数据时代下的图书情报学教育——基于iSchool院校“大数据”相关课程调查及思考|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201712004.htm|曹树金,王志红,刘慧云|09997620,32926543,35424393|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09997620%3b32926543%3b35424393%3b&scholarName=%e6%9b%b9%e6%a0%91%e9%87%91|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|502|4 +1798395|大数据时代的信息管理:为了一个更好的世界——第六届“变化世界中的信息管理国际研讨会”综述|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201611002.htm|张璇,王志红,刘盈盈,王灵,古婷骅,王维佳,刘慧云|17650235,32926543,10001074,23336714,35918475,26075418,32926544,24356483,35424393|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17650235%3b32926543%3b10001074%3b23336714%3b35918475%3b26075418%3b32926544%3b24356483%3b35424393%3b&scholarName=%e5%bc%a0%e7%92%87|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|569|3 +1798395|国内外图书情报领域信息聚合的发展趋势分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQC201804009.htm|曹树金,王连喜,王志红|09997620,37602647,32926543|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09997620%3b37602647%3b32926543%3b&scholarName=%e6%9b%b9%e6%a0%91%e9%87%91|图书情报知识|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQC|361|0 +1798395|广东省公共数字文化网站调查与分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201511003.htm|曹树金,王志红,古婷骅|09997620,32926543,32926544|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09997620%3b32926543%3b32926544%3b&scholarName=%e6%9b%b9%e6%a0%91%e9%87%91|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|324|7 +1798395|国内外“信息用户与信息利用”相关课程调查与启示|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201605017.htm|王志红,甘春梅|32926543,30648230|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32926543%3b30648230%3b&scholarName=%e7%8e%8b%e5%bf%97%e7%ba%a2|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|89|0 +1798395|我国公共数字文化建设与服务研究进展及特征分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201511002.htm|曹树金,古婷骅,王志红|09997620,32926544,32926543|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09997620%3b32926544%3b32926543%3b&scholarName=%e6%9b%b9%e6%a0%91%e9%87%91|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|567|10 +1798395|中美城市公共图书馆战略规划中阅读推广策略比较研究|http://www.cnki.com.cn/Article/CJFDTOTAL-PTSQ201601002.htm|曹树金,王志红|09997620,32926543|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09997620%3b32926543%3b&scholarName=%e6%9b%b9%e6%a0%91%e9%87%91|图书情报研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/PTSQ|453|8 +1798395|高校图书馆资源发现系统创新扩散机制研究|http://www.cnki.com.cn/Article/CJFDTOTAL-PTSQ201601004.htm|曹树金,王志红|09997620,32926543|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09997620%3b32926543%3b&scholarName=%e6%9b%b9%e6%a0%91%e9%87%91|图书情报研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/PTSQ|163|2 +1798395|KML标记语言规范及其与GML的交换研究|http://www.cnki.com.cn/Article/CJFDTOTAL-CHBC201001004.htm|王志红,张亦汉,任金铜|24115251,23481032,23416453|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24115251%3b23481032%3b23416453%3b&scholarName=%e7%8e%8b%e5%bf%97%e7%ba%a2|测绘标准化|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CHBC|290|7 +1798395|Native XML存储管理技术的GML应用研究|http://www.cnki.com.cn/Article/CJFDTOTAL-CHKD201006086.htm|兰小机,王志红,张亦汉|08370162,24115251,23481032|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08370162%3b24115251%3b23481032%3b&scholarName=%e5%85%b0%e5%b0%8f%e6%9c%ba|测绘科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CHKD|91|5 +1849526|近十年我国高校图书馆服务研究领域特征分布及前沿演进——基于CNKI核心期刊的文献计量及可视化分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TNGZ201708002.htm|孙掌印|27836472|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27836472%3b&scholarName=%e5%ad%99%e6%8e%8c%e5%8d%b0|图书馆杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TNGZ|954|4 +1849526|我国公共文化服务体系研究前沿热点及其知识基础可视化分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGJ201609011.htm|孙掌印|27836472|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27836472%3b&scholarName=%e5%ad%99%e6%8e%8c%e5%8d%b0|图书馆建设|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGJ|595|8 +1849526|21世纪以来我国教育治理研究的回顾与展望——基于CNKI学术期刊2000—2016年文献的可视化分析|http://www.cnki.com.cn/Article/CJFDTOTAL-SZJK201704009.htm|孙掌印|27836472|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27836472%3b&scholarName=%e5%ad%99%e6%8e%8c%e5%8d%b0|苏州大学学报(教育科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZJK|270|2 +1849526|新兴技术在高等教育领域中的应用趋势研究——基于《新媒体联盟地平线报告》的解读与启示|http://www.cnki.com.cn/Article/CJFDTOTAL-GJYJ201704005.htm|孙掌印|27836472|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27836472%3b&scholarName=%e5%ad%99%e6%8e%8c%e5%8d%b0|高等教育研究学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GJYJ|205|0 +1849526|《2017年新媒体联盟技术展望:北欧地平线项目区域报告》的解读与启示|http://www.cnki.com.cn/Article/CJFDTOTAL-JLJK201806025.htm|孙掌印,陈燕|27836472,08844202|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27836472%3b08844202%3b&scholarName=%e5%ad%99%e6%8e%8c%e5%8d%b0|现代教育科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLJK|98|0 +1849526|基于共词分析的基本公共文化服务均等化研究热点主题分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBTS201703006.htm|孙掌印|27836472|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27836472%3b&scholarName=%e5%ad%99%e6%8e%8c%e5%8d%b0|情报探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBTS|233|2 +1849526|基于CSSCI的高校图书馆研究知识图谱分析|http://www.cnki.com.cn/Article/CJFDTOTAL-DXTQ201505022.htm|孙掌印|27836472|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27836472%3b&scholarName=%e5%ad%99%e6%8e%8c%e5%8d%b0|大学图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DXTQ|214|3 +1849526|基于VOSviewer的我国体育教育管理研究热点主题分析|http://www.cnki.com.cn/Article/CJFDTOTAL-WXZJ201703004.htm|孙掌印|27836472|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27836472%3b&scholarName=%e5%ad%99%e6%8e%8c%e5%8d%b0|无锡职业技术学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WXZJ|243|0 +1849526|一种实现共词分析的方法——以国内知识图谱研究为例|http://www.cnki.com.cn/Article/CJFDTOTAL-JXTS201501029.htm|孙掌印,陈勇华|27836472,30952138|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27836472%3b30952138%3b&scholarName=%e5%ad%99%e6%8e%8c%e5%8d%b0|图书馆研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXTS|283|1 +1849526|我国高校图书馆参与社区文化建设研究评述——基于文献计量分析视角|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGU201403007.htm|孙掌印,储开稳|27836472,28093512|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27836472%3b28093512%3b&scholarName=%e5%ad%99%e6%8e%8c%e5%8d%b0|图书馆界|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGU|170|4 +1849526|高校图书馆参与城市社区文化建设的可行性分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGX201210026.htm|孙掌印|27836472|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27836472%3b&scholarName=%e5%ad%99%e6%8e%8c%e5%8d%b0|图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGX|117|2 +1849526|高校图书馆参与城市社区文化建设策略分析|http://www.cnki.com.cn/Article/CJFDTOTAL-LYTS201209028.htm|孙掌印|27836472|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27836472%3b&scholarName=%e5%ad%99%e6%8e%8c%e5%8d%b0|农业图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LYTS|89|1 +1849526|高校图书馆新员工职业发展规划研究|http://www.cnki.com.cn/Article/CJFDTOTAL-HKTY201204007.htm|孙掌印|27836472|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27836472%3b&scholarName=%e5%ad%99%e6%8e%8c%e5%8d%b0|河北科技图苑|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HKTY|64|0 +1849526|提倡人文理念,建设和谐高校图书馆|http://www.cnki.com.cn/Article/CJFDTOTAL-GWDT201222209.htm|孙掌印|27836472|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27836472%3b&scholarName=%e5%ad%99%e6%8e%8c%e5%8d%b0|中国科教创新导刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GWDT|20|1 +1849526|我国高校志愿服务研究现状定量分析|http://www.cnki.com.cn/Article/CJFDTOTAL-CSGF201303015.htm|陈燕,孙掌印|08844202,27836472|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08844202%3b27836472%3b&scholarName=%e9%99%88%e7%87%95|时代教育|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CSGF|83|0 +1849526|公共文化服务法治保障机制研究——基于《中华人民共和国公共文化服务保障法》的思考|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGT201706011.htm|徐路,李楠,孙掌印|33453007,26924902,27836472|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33453007%3b26924902%3b27836472%3b&scholarName=%e5%be%90%e8%b7%af|图书馆|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGT|528|6 +1859065|引用次数、相对影响力和社会网络在论文评价中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-YXTS201607001.htm|杨帅,潘云涛,王海燕,苏成|35336893,09549408,09583754,09549416|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35336893%3b09549408%3b09583754%3b09549416%3b&scholarName=%e6%9d%a8%e5%b8%85|中华医学图书情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXTS|169|4 +1859094|把果树基地建设成“花果山”|http://xuewen.cnki.net/CCND-SXBR201106090023.html|张学敏,郭月昌,郦珊珊||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%bc%a0%e5%ad%a6%e6%95%8f|||0|0 +1859097|科技政策语义分析方法研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBGC201506014.htm|王小玉,董诚,曾文|34707014,10655949,24565044|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34707014%3b10655949%3b24565044%3b&scholarName=%e7%8e%8b%e5%b0%8f%e7%8e%89|情报工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBGC|97|1 +1859097|科技政策术语自动识别技术初探|http://www.cnki.com.cn/Article/CJFDTOTAL-XXDB201703004.htm|曾文,李智杰,王小玉,董诚|24565044,36443190,34707014,10655949|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24565044%3b36443190%3b34707014%3b10655949%3b&scholarName=%e6%9b%be%e6%96%87|中国科技资源导刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XXDB|58|1 +1859102|基于专利数据的专利权人竞合关系分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201602022.htm|梁子豪,郑彦宁,刘志辉|34451109,09549446,26421642|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34451109%3b09549446%3b26421642%3b&scholarName=%e6%a2%81%e5%ad%90%e8%b1%aa|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|277|4 +1859102|基于关系整合的企业合作分析方法研究——以LED领域上市公司为例|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201801015.htm|郑彦宁,梁子豪,刘志辉|09549446,34451109,26421642|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09549446%3b34451109%3b26421642%3b&scholarName=%e9%83%91%e5%bd%a6%e5%ae%81|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|110|0 +1875588|创新驱动的图书馆创客空间生态系统研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGG201604017.htm|金淑娟,蒋合领|33276755,33384416|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33276755%3b33384416%3b&scholarName=%e9%87%91%e6%b7%91%e5%a8%9f|图书馆工作与研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGG|1026|29 +1875588|我国知识管理研究学派、知识基础及热点的可视化分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201602016.htm|陈琴,蒋合领|33507996,33384416|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33507996%3b33384416%3b&scholarName=%e9%99%88%e7%90%b4|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|956|8 +1875588|基于CSSCI的我国智库研究态势可视化分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201507014.htm|陈琴,蒋合领,王晴|33507996,33384416,23669617|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33507996%3b33384416%3b23669617%3b&scholarName=%e9%99%88%e7%90%b4|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|1512|11 +1875588|基于WoS核心合集的国际智库研究可视化分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZL201601015.htm|陈琴,蒋合领|33507996,33384416|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33507996%3b33384416%3b&scholarName=%e9%99%88%e7%90%b4|情报资料工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZL|394|4 +1875588|基于MDA的农业电子商务平台研究与实现|http://www.cnki.com.cn/Article/CJFDTOTAL-NJYJ201207052.htm|蒋合领,文静华,张梅|21854190,05981719,06939775|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21854190%3b05981719%3b06939775%3b&scholarName=%e8%92%8b%e5%90%88%e9%a2%86|农机化研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NJYJ|186|0 +1875588|UML在呼叫中心系统建模中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-HZXB200804023.htm|蒋合领,文静华|21854190,05981719|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21854190%3b05981719%3b&scholarName=%e8%92%8b%e5%90%88%e9%a2%86|河南科技学院学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HZXB|53|3 +1875588|基于Harel状态机的高校IP语音答疑系统设计|http://www.cnki.com.cn/Article/CJFDTOTAL-JXGY201103070.htm|黄强,蒋合领|10945900,21854190|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10945900%3b21854190%3b&scholarName=%e9%bb%84%e5%bc%ba|制造业自动化|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXGY|29|4 +1875588|遗传算法在精准农业地理信息系统中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-AHNY201205156.htm|张定义,文静华,蒋合领|27060819,05981719,21854190|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27060819%3b05981719%3b21854190%3b&scholarName=%e5%bc%a0%e5%ae%9a%e4%b9%89|安徽农业科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/AHNY|124|0 +1875588|国外Altmetrics研究综述|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201607030.htm|蒋合领,杨安,杨帆|32978264,33384416,10927291,27714507|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32978264%3b33384416%3b10927291%3b27714507%3b&scholarName=%e8%92%8b%e5%90%88%e9%a2%86|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|528|5 +1875588|我国图书馆治理研究的知识图谱分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201507005.htm|蒋合领,杨安,王晴|32978264,33384416,10927291,23669617|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32978264%3b33384416%3b10927291%3b23669617%3b&scholarName=%e8%92%8b%e5%90%88%e9%a2%86|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|823|3 +1875588|国外图书馆支持数字人文研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201624026.htm|杨滋荣,熊回香,蒋合领|36691716,33276756,07642720,33384416|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36691716%3b33276756%3b07642720%3b33384416%3b&scholarName=%e6%9d%a8%e6%bb%8b%e8%8d%a3|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|955|8 +1875588|基于软交换的农业信息服务呼叫中心系统|http://www.cnki.com.cn/Article/CJFDTOTAL-NJYJ201005038.htm|聂敏,文静华,蒋合领|24219189,05981719,21854190|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24219189%3b05981719%3b21854190%3b&scholarName=%e8%81%82%e6%95%8f|农机化研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NJYJ|84|1 +1875588|基于软交换的中小型呼叫中心平台研究与实现|http://cdmd.cnki.com.cn/Article/CDMD-10671-2010241596.htm|蒋合领|21854190|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21854190%3b&scholarName=%e8%92%8b%e5%90%88%e9%a2%86|||85|0 +1911809|基于用户认知的Web页面设计实证研究——以武汉大学图书馆网站为例|http://www.cnki.com.cn/Article/CJFDTOTAL-LSGL201512002.htm|邱均平,夏琦|05965051,34206151|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05965051%3b34206151%3b&scholarName=%e9%82%b1%e5%9d%87%e5%b9%b3|图书馆理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LSGL|231|1 +1916890|国内外高校博物馆之对比研究|http://www.cnki.com.cn/Article/CJFDTOTAL-BWYJ201304001.htm|孙逊|08537643|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08537643%3b&scholarName=%e5%ad%99%e9%80%8a|博物馆研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BWYJ|1025|17 +1916890|基于文献计量与定性分析法的我国数字博物馆研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-DNWH201503015.htm|孙逊|08537643,17670807|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08537643%3b17670807%3b&scholarName=%e5%ad%99%e9%80%8a|东南文化|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DNWH|445|4 +1916890|一种基于模糊聚类的隶属函数定义方法|http://www.cnki.com.cn/Article/CJFDTOTAL-JYRJ200507035.htm|孙逊,胡光锐,李剑萍|08537643,08517854,00001657|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08537643%3b08517854%3b00001657%3b&scholarName=%e5%ad%99%e9%80%8a|计算机应用与软件|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYRJ|506|28 +1916890|工作流在电子文件流程管理中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-SHIJ201211014.htm|孙逊,于英香|08537643,08483219|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08537643%3b08483219%3b&scholarName=%e5%ad%99%e9%80%8a|兰台世界|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SHIJ|174|5 +1916890|单相异步电动机常用调速方式浅析|http://www.cnki.com.cn/Article/CJFDTOTAL-WTDJ20050100C.htm|孙逊|08537643|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08537643%3b&scholarName=%e5%ad%99%e9%80%8a|微特电机|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WTDJ|460|4 +1916890|浅议人物数字纪念馆建设特色——以钱学森数字图书馆为例|http://www.cnki.com.cn/Article/CJFDTOTAL-KJXX201326003.htm|孙逊|08537643|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08537643%3b&scholarName=%e5%ad%99%e9%80%8a|科技信息|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJXX|61|2 +1916890|一种改进的BP算法在导弹综合测试专家系统中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-JYRJ200501040.htm|李剑萍,胡光锐,孙逊|00001657,08537643,08517854|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=00001657%3b08537643%3b08517854%3b&scholarName=%e6%9d%8e%e5%89%91%e8%90%8d|计算机应用与软件|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYRJ|145|13 +1916890|便携式电机能效检测仪的研制|http://www.cnki.com.cn/Article/CJFDTOTAL-JDXX201303081.htm|韦锋,孙逊,史伟伟|21990428,27128705,17471710|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21990428%3b27128705%3b17471710%3b&scholarName=%e9%9f%a6%e9%94%8b|机电信息|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JDXX|103|5 +1916890|电子文件管理理论研究之路径探析|http://www.cnki.com.cn/Article/CJFDTOTAL-DANA201004010.htm|于英香,孙逊|08483219,08537643|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08483219%3b08537643%3b&scholarName=%e4%ba%8e%e8%8b%b1%e9%a6%99|档案|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DANA|333|9 +1916890|mPEG-PLGA-mPEG系列纳米粒的毒性与其结构的关系|http://www.cnki.com.cn/Article/CJFDTOTAL-HXYO200903002.htm|杨立开,何黎黎,段友容,刘洁,孙逊,张志荣,龚涛|22574063,14577812,22574064,23107110,09790961,08750200,08743898,08745332|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22574063%3b14577812%3b22574064%3b23107110%3b09790961%3b08750200%3b08743898%3b08745332%3b&scholarName=%e6%9d%a8%e7%ab%8b%e5%bc%80|华西药学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HXYO|310|4 +1916890|浅议人物纪念馆元数据设计原则与思路——以钱学森数字图书馆为例|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-BJKP201305019023.htm|孙逊,魏红,陈华新|08537643,10750953,08566023|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08537643%3b10750953%3b08566023%3b&scholarName=%e5%ad%99%e9%80%8a|||106|0 +1916890|《钱学森批注》导言|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-SHCA201710001001.htm|"""钱学森批注整理与研究""子课题组,张凯,魏红,尤若,孙逊"|38170998|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38170998%3b&scholarName=%22%e9%92%b1%e5%ad%a6%e6%a3%ae%e6%89%b9%e6%b3%a8%e6%95%b4%e7%90%86%e4%b8%8e%e7%a0%94%e7%a9%b6%22%e5%ad%90%e8%af%be%e9%a2%98%e7%bb%84|||6|0 +1916890|电子文件管理理论研究之路径探析|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGDA201011002006.htm|于英香,孙逊|08483219,08537643|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08483219%3b08537643%3b&scholarName=%e4%ba%8e%e8%8b%b1%e9%a6%99|||114|0 +1956210|档案信息微传播初探|http://www.cnki.com.cn/Article/CJFDTOTAL-DAXY201605021.htm|朱兰兰,任琼辉|10689920,33657114|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10689920%3b33657114%3b&scholarName=%e6%9c%b1%e5%85%b0%e5%85%b0|档案学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DAXY|424|12 +1956210|档案信息微传播初探|http://www.cnki.com.cn/Article/CJFDTOTAL-XSHD201605013.htm|朱兰兰,任琼辉|10689920,33657114|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10689920%3b33657114%3b&scholarName=%e6%9c%b1%e5%85%b0%e5%85%b0|上海档案|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XSHD|27|1 +1956210|网络表达工具对语言文字应用的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-HNKJ201511003.htm|朱兰兰,任琼辉|10689920,33657114|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10689920%3b33657114%3b&scholarName=%e6%9c%b1%e5%85%b0%e5%85%b0|河南科技|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HNKJ|73|0 +1956210|档案信息微传播研究|http://cdmd.cnki.com.cn/Article/CDMD-10485-1017710189.htm|任琼辉|33657114|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33657114%3b&scholarName=%e4%bb%bb%e7%90%bc%e8%be%89|||362|5 +2012855|基于不同网络数据源的期刊评价研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201702014.htm|张洋,吴娟平,郎林芳|10720437,36616242,36407829|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10720437%3b36616242%3b36407829%3b&scholarName=%e5%bc%a0%e6%b4%8b|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|410|5 +2028271|科研用户博文关键词标注行为差异研究——以科学网博客为例|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201510003.htm|张颖怡,章成志,池雪花,李蕾|33886770,13897453,08071869,33886771,26680182|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33886770%3b13897453%3b08071869%3b33886771%3b26680182%3b&scholarName=%e5%bc%a0%e9%a2%96%e6%80%a1|现代图书情报技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|238|5 +2028271|学术博客用户的博文分类行为研究——以科学网博客为例|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201611010.htm|张颖怡,章成志,陈果|33886770,13897453,08071869,08055577|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33886770%3b13897453%3b08071869%3b08055577%3b&scholarName=%e5%bc%a0%e9%a2%96%e6%80%a1|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|142|1 +2028271|不同学科领域的用户标签标注行为差异研究——以新浪微博用户的标签为例|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201609018.htm|池雪花,张颖怡,高星,卢超,章成志|33886771,33886770,17551787,30346081,13897453|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33886771%3b33886770%3b17551787%3b30346081%3b13897453%3b&scholarName=%e6%b1%a0%e9%9b%aa%e8%8a%b1|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|253|5 +2034538|教学和科研视角下的学科关联性分析——以大连理工大学化工与环境生命学部为例|http://www.cnki.com.cn/Article/CJFDTOTAL-GDGJ201702032.htm|赵宇航,胡志刚,姜春林|33632637,06527352,06502314|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33632637%3b06527352%3b06502314%3b&scholarName=%e8%b5%b5%e5%ae%87%e8%88%aa|高等工程教育研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDGJ|328|1 +2034538|我国科学学与科技管理类期刊发展现状及提升策略|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201604018.htm|姜春林,赵宇航,程秀红|06502314,33632637,33632636|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06502314%3b33632637%3b33632636%3b&scholarName=%e5%a7%9c%e6%98%a5%e6%9e%97|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|225|1 +2034538|代表作评价:探索之路与完善之策|http://www.cnki.com.cn/Article/CJFDTOTAL-GSSH201603026.htm|姜春林,赵宇航|06502314,33632637|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06502314%3b33632637%3b&scholarName=%e5%a7%9c%e6%98%a5%e6%9e%97|甘肃社会科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GSSH|200|3 +2034538|我国省级哲学社会科学评奖体系现状研究——基于评奖文件的分析|http://www.cnki.com.cn/Article/CJFDTOTAL-BOOK201504016.htm|姜春林,程秀红,赵宇航|06502314,33632636,33632637|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06502314%3b33632636%3b33632637%3b&scholarName=%e5%a7%9c%e6%98%a5%e6%9e%97|图书与情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BOOK|242|5 +2034538|发文和引文视角下我国航空航天领域学科交叉研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201611007.htm|姜春林,赵宇航,魏庆肖|06502314,33632637,36075774|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06502314%3b33632637%3b36075774%3b&scholarName=%e5%a7%9c%e6%98%a5%e6%9e%97|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|187|0 +2034538|我国航空航天领域学科交叉特征研究|http://cdmd.cnki.com.cn/Article/CDMD-10141-1017822269.htm|赵宇航|33632637|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33632637%3b&scholarName=%e8%b5%b5%e5%ae%87%e8%88%aa|||86|0 +2038629|基于中介度揭示学科热点与传统词频统计法结果比较研究——以链接分析领域为例|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201603024.htm|宋广宇,孙建军|34662705,08067678|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34662705%3b08067678%3b&scholarName=%e5%ae%8b%e5%b9%bf%e5%ae%87|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|265|1 +2038629|连锁董事网络对二元创新的影响研究|http://cdmd.cnki.com.cn/Article/CDMD-10284-1017096180.htm|宋广宇|34662705|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34662705%3b&scholarName=%e5%ae%8b%e5%b9%bf%e5%ae%87|||176|0 +2101995|基于IMIA国际倡议的我国卫生信息管理本科课程体系构建|http://www.cnki.com.cn/Article/CJFDTOTAL-YXTS201601002.htm|张鼎,张士靖,马敬东,向菲,曾可,刘海通|34492859,07611136,07602609,11201257,32055750,27453607|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34492859%3b07611136%3b07602609%3b11201257%3b32055750%3b27453607%3b&scholarName=%e5%bc%a0%e9%bc%8e|中华医学图书情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXTS|91|0 +2101995|我国卫生信息管理专业人才需求及从业现状调查|http://www.cnki.com.cn/Article/CJFDTOTAL-YXTS201601005.htm|曾可,张士靖,张鼎,马敬东,沈丽宁,刘海通|32055750,07611136,34492859,07602609,24652238,27453607|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32055750%3b07611136%3b34492859%3b07602609%3b24652238%3b27453607%3b&scholarName=%e6%9b%be%e5%8f%af|中华医学图书情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXTS|337|12 +2121557|我国省级公共图书馆开展志愿者服务实践调查与分析|http://www.cnki.com.cn/Article/CJFDTOTAL-BJJG201702013.htm|欧亮|35261409|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35261409%3b&scholarName=%e6%ac%a7%e4%ba%ae|国家图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJJG|281|4 +2121557|我国“985工程”高校图书馆向社会开放的调查分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201504013.htm|欧亮,万慕晨|35261409,27451932|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35261409%3b27451932%3b&scholarName=%e6%ac%a7%e4%ba%ae|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|430|19 +2121557|基于门户网站调研的美国公共图书馆利用社会力量特点剖析|http://www.cnki.com.cn/Article/CJFDTOTAL-BOOK201604011.htm|欧亮|35261409|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35261409%3b&scholarName=%e6%ac%a7%e4%ba%ae|图书与情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BOOK|176|2 +2121557|我国公共图书馆利用社会力量研究综述|http://www.cnki.com.cn/Article/CJFDTOTAL-XQJI201701027.htm|欧亮|35261409|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35261409%3b&scholarName=%e6%ac%a7%e4%ba%ae|重庆第二师范学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XQJI|180|4 +2121557|基于门户网站调研的公共图书馆利用社会力量现状分析——以我国省级公共图书馆为例|http://www.cnki.com.cn/Article/CJFDTOTAL-LSGL201608012.htm|欧亮,万慕晨|35261409,27451932|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35261409%3b27451932%3b&scholarName=%e6%ac%a7%e4%ba%ae|图书馆理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LSGL|144|2 +2121557|高校图书馆社会化服务研究述评——基于CNKI数据的内容分析|http://www.cnki.com.cn/Article/CJFDTOTAL-XQJI201601039.htm|欧亮|35261409|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35261409%3b&scholarName=%e6%ac%a7%e4%ba%ae|重庆第二师范学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XQJI|144|0 +2121557|斯坦福大学关联数据报告概述|http://www.cnki.com.cn/Article/CJFDTOTAL-XQJI201303050.htm|欧亮|35261409|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35261409%3b&scholarName=%e6%ac%a7%e4%ba%ae|重庆第二师范学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XQJI|178|2 +2121557|中小企业的咨询服务质量研究——基于公共图书馆DRS的探讨|http://www.cnki.com.cn/Article/CJFDTOTAL-XQJI201206044.htm|欧亮,万慕晨|35261409,27451932|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35261409%3b27451932%3b&scholarName=%e6%ac%a7%e4%ba%ae|重庆教育学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XQJI|35|1 +2121557|浅议对学生开展信息素养教育的必要性及对策——以重庆第二师范学院为例|http://www.cnki.com.cn/Article/CJFDTOTAL-NMKJ201514052.htm|欧亮|35261409|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35261409%3b&scholarName=%e6%ac%a7%e4%ba%ae|内蒙古科技与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/NMKJ|32|1 +2121557|基于图书馆视角利用开放存取的文献计量研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XQJI201406041.htm|欧亮|35261409|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35261409%3b&scholarName=%e6%ac%a7%e4%ba%ae|重庆第二师范学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XQJI|36|0 +2121557|基于微信公众平台的高校图书馆阅读推广效果实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201522015.htm|万慕晨,欧亮|27451932,35261409|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27451932%3b35261409%3b&scholarName=%e4%b8%87%e6%85%95%e6%99%a8|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|6273|157 +2121557|我国省级公共图书馆利用捐赠文献的实践调查与分析|http://www.cnki.com.cn/Article/CJFDTOTAL-LSGL201808015.htm|万慕晨,欧亮|27451932,35261409|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27451932%3b35261409%3b&scholarName=%e4%b8%87%e6%85%95%e6%99%a8|图书馆理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LSGL|67|0 +2121557|RFID在开架书库中快速定位研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XQJI201403040.htm|万慕晨,欧亮|27451932,35261409|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27451932%3b35261409%3b&scholarName=%e4%b8%87%e6%85%95%e6%99%a8|重庆第二师范学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XQJI|88|2 +2121843|基于元分析的Altmetrics指标与传统引用指标相关性研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201608010.htm|曹丽江,周毅|29003043,08850620|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29003043%3b08850620%3b&scholarName=%e6%9b%b9%e4%b8%bd%e6%b1%9f|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|393|4 +2121843|基于专利地图的我国太阳能光伏建筑一体化专利信息分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201305017.htm|曹丽江,孙帅|29003043,24913070|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29003043%3b24913070%3b&scholarName=%e6%9b%b9%e4%b8%bd%e6%b1%9f|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|374|4 +2121843|网络空间多元主体协同治理的仿真实验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-DZZW201607003.htm|周毅,曹丽江|08850620,29003043|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08850620%3b29003043%3b&scholarName=%e5%91%a8%e6%af%85|电子政务|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DZZW|369|0 +2121843|2007-2011年D-Lib Magazine与The Electronic Library作者信息比较分析|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201303011.htm|孙帅,曹丽江,李卓卓|24913070,29003043,23925876|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24913070%3b29003043%3b23925876%3b&scholarName=%e5%ad%99%e5%b8%85|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|25|0 +2121843|苏南文化强市战略特征及实施调查分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JJSS201411098.htm|李卓卓,吉顺权,曹丽江|23925876,28858607,29003043|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23925876%3b28858607%3b29003043%3b&scholarName=%e6%9d%8e%e5%8d%93%e5%8d%93|经济师|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JJSS|73|0 +2121843|基于Altmetrics的学者影响力综合评价研究|http://cdmd.cnki.com.cn/Article/CDMD-10285-1018034944.htm|曹丽江|29003043|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29003043%3b&scholarName=%e6%9b%b9%e4%b8%bd%e6%b1%9f|||195|1 +213646|新形势下的国际贸易|http://xuewen.cnki.net/CCND-YTJJ20020525A063.html|郑必清||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e9%83%91%e5%bf%85%e6%b8%85|||59|0 +213646|与时代脉搏一起跳动——评王启云教授的《现代消费经济探索》|http://www.cnki.com.cn/Article/CJFDTOTAL-XFJY201203025.htm|陈桂香|09210010|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09210010%3b&scholarName=%e9%99%88%e6%a1%82%e9%a6%99|消费经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XFJY|30|0 +213646|合理利用外资是发展民族工业的重要途径——读王启云的《利用外资论》|http://www.cnki.com.cn/Article/CJFDTOTAL-JSDX199904025.htm|周靖|09243594|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09243594%3b&scholarName=%e5%91%a8%e9%9d%96|吉首大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSDX|32|0 +213646|一本富有创意的国际贸易学的学术著作——谈王启云的新作《国际贸易》|http://www.cnki.com.cn/Article/CJFDTOTAL-XTDX200204044.htm|刘桂斌|09240953|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09240953%3b&scholarName=%e5%88%98%e6%a1%82%e6%96%8c|湘潭大学社会科学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XTDX|34|0 +213646|研究西方消费调控的新力作——评王启云教授主编的《当代西方国家消费调控》一书|http://www.cnki.com.cn/Article/CJFDTOTAL-XTDX200006037.htm|刘桂斌|09240953|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09240953%3b&scholarName=%e5%88%98%e6%a1%82%e6%96%8c|湘潭大学社会科学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XTDX|23|0 +213646|提高利用外资的质量,关键在于外资的技术含量───评王启云的《利用外资论》一书|http://www.cnki.com.cn/Article/CJFDTOTAL-XTDX199705029.htm|刘桂斌|09240953|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09240953%3b&scholarName=%e5%88%98%e6%a1%82%e6%96%8c|湘潭大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XTDX|15|0 +213646|“杠杆”这样撬动——人武部长王启云、政委谢根信携手改变落后面貌纪实|http://www.cnki.com.cn/Article/CJFDTOTAL-MMZG200311029.htm|葛茯苓,赵同喜,章佳斌||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e8%91%9b%e8%8c%af%e8%8b%93|中国民兵|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/MMZG|5|0 +220689|期刊论文学术水平定量评价指标体系的初步设计|http://www.cnki.com.cn/Article/CJFDTOTAL-QBTS201005003.htm|苏学|24455076|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24455076%3b&scholarName=%e8%8b%8f%e5%ad%a6|情报探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBTS|393|33 +220689|科研创新产出评价指标体系的初步构建|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ2010S1046.htm|苏学,吴广印|24455076,17385811|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24455076%3b17385811%3b&scholarName=%e8%8b%8f%e5%ad%a6|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|353|9 +220689|科学计量学前沿演进可视化研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ2010S2002.htm|郭美荣,苏学|25459103,25589970|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25459103%3b25589970%3b&scholarName=%e9%83%ad%e7%be%8e%e8%8d%a3|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|300|6 +2209765|用户崛起与科技情报工作的创新|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQC201706008.htm|望俊成,张玄玄,范畅,师兵范|26570125,37946702,22687150,37792178|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26570125%3b37946702%3b22687150%3b37792178%3b&scholarName=%e6%9c%9b%e4%bf%8a%e6%88%90|图书情报知识|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQC|224|1 +2209765|全球无线充电产业发展现状分析|http://www.cnki.com.cn/Article/CJFDTOTAL-GJSX201603011.htm|望俊成,马晓倩,李翔,周晓丹|26570125,32411983,35298765,35298766|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26570125%3b32411983%3b35298765%3b35298766%3b&scholarName=%e6%9c%9b%e4%bf%8a%e6%88%90|高技术通讯|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GJSX|513|9 +2209765|无线充电领域专利竞争态势分析|http://www.cnki.com.cn/Article/CJFDTOTAL-GJSX201606012.htm|望俊成,马晓倩,周晓丹,赖文姗|26570125,32411983,35298766,36133646|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26570125%3b32411983%3b35298766%3b36133646%3b&scholarName=%e6%9c%9b%e4%bf%8a%e6%88%90|高技术通讯|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GJSX|176|5 +2209765|英国吸引和培养国际优秀科技人才的举措和特点|http://www.cnki.com.cn/Article/CJFDTOTAL-KJGL201319007.htm|望俊成,邢晓昭,鲁文婷|26570125,29994167,29994168|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26570125%3b29994167%3b29994168%3b&scholarName=%e6%9c%9b%e4%bf%8a%e6%88%90|科技管理研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJGL|467|7 +2209765|基于“知识维-职场维-用户维”的课程需求调查研究——以《数据可视化》课程需求调查为例|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201608002.htm|望俊成,武山山,梁娜,马费成|26570125,35743357,35743356,09018804|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26570125%3b35743357%3b35743356%3b09018804%3b&scholarName=%e6%9c%9b%e4%bf%8a%e6%88%90|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|124|0 +2209765|中信所《数据可视化》课堂的设计:基于翻转课堂的理念|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201608003.htm|望俊成,李幸,郭传斌,马费成|26570125,35936136,35936137,09018804|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26570125%3b35936136%3b35936137%3b09018804%3b&scholarName=%e6%9c%9b%e4%bf%8a%e6%88%90|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|126|2 +2209765|美国产业创新联盟的经验与启示——基于美国微电子与计算机技术公司的案例研究|http://www.cnki.com.cn/Article/CJFDTOTAL-KJGL201222002.htm|望俊成,温钊健|26570125,25418374|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26570125%3b25418374%3b&scholarName=%e6%9c%9b%e4%bf%8a%e6%88%90|科技管理研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJGL|460|5 +2209765|我国生物医药专利许可主体状况分析——基于文献计量及社会网络分析的视角|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201808008.htm|雷孝平,望俊成,张海超|25476951,26570125,36009690|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25476951%3b26570125%3b36009690%3b&scholarName=%e9%9b%b7%e5%ad%9d%e5%b9%b3|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|175|0 +2209765|中国与东盟科技合作现状分析——从SCI合著论文数据角度的实证分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QQKL201311012.htm|望俊成,马雪静,温钊健|26570125,30818640,25418374|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26570125%3b30818640%3b25418374%3b&scholarName=%e6%9c%9b%e4%bf%8a%e6%88%90|全球科技经济瞭望|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QQKL|94|2 +2209765|情报学视角下的文本可视化应用|http://www.cnki.com.cn/Article/CJFDTOTAL-QBGC201704007.htm|郭传斌,刘琦岩,赵婧,袁嘉莲,李明倩,望俊成|35936137,33661337,32936283,37861354,37861355,26570125|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35936137%3b33661337%3b32936283%3b37861354%3b37861355%3b26570125%3b&scholarName=%e9%83%ad%e4%bc%a0%e6%96%8c|情报工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBGC|112|1 +2209765|科技成果转化政策文本分析|http://www.cnki.com.cn/Article/CJFDTOTAL-XXDB201803009.htm|张芯茹,周杰,赵辉,望俊成|39796300,10337267,11273052,26570125|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=39796300%3b10337267%3b11273052%3b26570125%3b&scholarName=%e5%bc%a0%e8%8a%af%e8%8c%b9|中国科技资源导刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XXDB|80|0 +2209765|科技成果转化政策文本中的领域关键词汇提取研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XXDB201803010.htm|张越,刘琦岩,张玄玄,望俊成|39796301,33661337,37946702,26570125|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=39796301%3b33661337%3b37946702%3b26570125%3b&scholarName=%e5%bc%a0%e8%b6%8a|中国科技资源导刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XXDB|57|0 +2209765|信息老化的新认识——信息价值的产生与衰减|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201304003.htm|望俊成|26570125|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26570125%3b&scholarName=%e6%9c%9b%e4%bf%8a%e6%88%90|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|56|3 +2209765|生存分析法在学术期刊评价上的应用初探|http://www.cnki.com.cn/Article/CJFDTOTAL-XXDB201801013.htm|李幸,曾文,范畅,师兵范,望俊成|35936136,24565044,22687150,37792178,26570125|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35936136%3b24565044%3b22687150%3b37792178%3b26570125%3b&scholarName=%e6%9d%8e%e5%b9%b8|中国科技资源导刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XXDB|66|0 +2209765|美国WiTricity公司无线充电领域专利分析|http://www.cnki.com.cn/Article/CJFDTOTAL-GJSX201604012.htm|周晓丹,赵俊杰,梁娜,武山山,望俊成|35298766,09549442,35743356,35743357,26570125|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35298766%3b09549442%3b35743356%3b35743357%3b26570125%3b&scholarName=%e5%91%a8%e6%99%93%e4%b8%b9|高技术通讯|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GJSX|150|7 +2209765|澳大利亚的科技管理体系初探|http://www.cnki.com.cn/Article/CJFDTOTAL-SJKF201201046.htm|望俊成,刘芳|26570125,10135481|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26570125%3b10135481%3b&scholarName=%e6%9c%9b%e4%bf%8a%e6%88%90|世界科技研究与发展|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SJKF|59|1 +2209765|“双创”中投资决策信息需求的统计分析与启示|http://www.cnki.com.cn/Article/CJFDTOTAL-XXDB201704005.htm|焦一丹,刘娅,成卓兰,师兵范,望俊成|37792176,09512631,37792177,37792178,26570125|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37792176%3b09512631%3b37792177%3b37792178%3b26570125%3b&scholarName=%e7%84%a6%e4%b8%80%e4%b8%b9|中国科技资源导刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XXDB|30|0 +2209765|PATSTAT专利数据库数据集成策略研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201509003.htm|杨冠灿,张静,望俊成|30470984,25119924,26570125|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30470984%3b25119924%3b26570125%3b&scholarName=%e6%9d%a8%e5%86%a0%e7%81%bf|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|58|1 +2209765|国内多智能体系统应用研究归纳——共词分析视角|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201304004.htm|邢晓昭,望俊成|29994167,26570125|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29994167%3b26570125%3b&scholarName=%e9%82%a2%e6%99%93%e6%98%ad|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|67|5 +2209765|海尔公司无线充电领域专利分析|http://www.cnki.com.cn/Article/CJFDTOTAL-GJSX201803012.htm|师兵范,望俊成,史晓枫,赵泽龙|37792178,26570125,39472707,39472708|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37792178%3b26570125%3b39472707%3b39472708%3b&scholarName=%e5%b8%88%e5%85%b5%e8%8c%83|高技术通讯|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GJSX|67|0 +2209765|S-CAD方法在信息政策评价中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-QBTS201110004.htm|汪雅静,望俊成|26570124,26570125|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26570124%3b26570125%3b&scholarName=%e6%b1%aa%e9%9b%85%e9%9d%99|情报探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBTS|307|3 +2209765|基于语义网技术的企业信息资源整合研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201210009.htm|唐晓波,田杰,望俊成|08988594,28131065,26570125|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08988594%3b28131065%3b26570125%3b&scholarName=%e5%94%90%e6%99%93%e6%b3%a2|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|368|5 +2209765|基于产学研结合的专业镇公共技术创新平台建设研究——以佛山南庄陶瓷产业技术创新平台为例|http://www.cnki.com.cn/Article/CJFDTOTAL-GDKJ201221002.htm|刘启强,张晓娟,望俊成|17475253,09016101,26570125|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17475253%3b09016101%3b26570125%3b&scholarName=%e5%88%98%e5%90%af%e5%bc%ba|广东科技|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDKJ|231|2 +221037|学术博客交流特征及启示——基于交流主体、交流客体和交流方式的综合考察与实证分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGTS201503009.htm|丁敬达,许鑫|26625111,14281145|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26625111%3b14281145%3b&scholarName=%e4%b8%81%e6%95%ac%e8%be%be|中国图书馆学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGTS|870|12 +221037|作者贡献声明及与作者署名之间的关系——基于3种图情学期刊的实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201724014.htm|丁敬达,王新明|26625111,38579686|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26625111%3b38579686%3b&scholarName=%e4%b8%81%e6%95%ac%e8%be%be|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|234|2 +221037|高校机构知识库网络影响力评价研究——基于我国重点大学的实证分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TNGZ201407006.htm|丁敬达,朱梦月|26625111,31332901|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26625111%3b31332901%3b&scholarName=%e4%b8%81%e6%95%ac%e8%be%be|图书馆杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TNGZ|711|12 +221037|论学术虚拟社区知识交流模式|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201301013.htm|丁敬达,杨思洛,邱均平|26625111,09242991,05965051|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26625111%3b09242991%3b05965051%3b&scholarName=%e4%b8%81%e6%95%ac%e8%be%be|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|1341|34 +221037|维基百科词条信息质量启发式评价框架研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQC201402003.htm|丁敬达|26625111|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26625111%3b&scholarName=%e4%b8%81%e6%95%ac%e8%be%be|图书情报知识|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQC|501|13 +221037|网络搜索学术信息的评价影响因素研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201802009.htm|丁敬达,王新明|26625111,38579686|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26625111%3b38579686%3b&scholarName=%e4%b8%81%e6%95%ac%e8%be%be|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|165|0 +221037|社交媒体在图书馆的应用现状与提升策略研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201624009.htm|丁敬达,李辉|26625111,17430268|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26625111%3b17430268%3b&scholarName=%e4%b8%81%e6%95%ac%e8%be%be|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|211|3 +221037|SSCI期刊开放存取特征及启示|http://www.cnki.com.cn/Article/CJFDTOTAL-TNGZ201611014.htm|丁敬达,姚佳,罗力|26625111,34978500,25478115|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26625111%3b34978500%3b25478115%3b&scholarName=%e4%b8%81%e6%95%ac%e8%be%be|图书馆杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TNGZ|197|1 +221037|图书馆微信的移动信息服务研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201622008.htm|丁敬达,李辉|26625111,17430268|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26625111%3b17430268%3b&scholarName=%e4%b8%81%e6%95%ac%e8%be%be|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|266|1 +221037|国内图书情报学期刊网络引文的类型、分布与可追溯性分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201224012.htm|丁敬达,杨思洛|26625111,09242991|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26625111%3b09242991%3b&scholarName=%e4%b8%81%e6%95%ac%e8%be%be|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|276|8 +221037|国内档案学期刊网络引文的类型和相关特征分析——以2002-2011年《档案学通讯》、《档案学研究》为例|http://www.cnki.com.cn/Article/CJFDTOTAL-DAXT201206004.htm|丁敬达|26625111|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26625111%3b&scholarName=%e4%b8%81%e6%95%ac%e8%be%be|档案学通讯|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DAXT|396|6 +221037|信息管理学科计量学研究的新突破——评邱均平教授等著的《知识计量学》|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201422027.htm|丁敬达,朱梦月|26625111,31332901|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26625111%3b31332901%3b&scholarName=%e4%b8%81%e6%95%ac%e8%be%be|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|220|3 +221037|基于知识的大学核心竞争力评价框架研究|http://www.cnki.com.cn/Article/CJFDTOTAL-CDSK201302014.htm|丁敬达,刘宇,邱均平|26625111,25001564,05965051|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26625111%3b25001564%3b05965051%3b&scholarName=%e4%b8%81%e6%95%ac%e8%be%be|重庆大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CDSK|283|4 +221037|科研论文的著者合作模式研究综述|http://www.cnki.com.cn/Article/CJFDTOTAL-XDQB201808023.htm|王新明,丁敬达|38579686,26625111|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38579686%3b26625111%3b&scholarName=%e7%8e%8b%e6%96%b0%e6%98%8e|现代情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDQB|224|0 +221037|企业信息咨询职业核心技能需求研究——基于招聘广告的内容分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201702011.htm|潘香笑,丁敬达|36575253,26625111|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36575253%3b26625111%3b&scholarName=%e6%bd%98%e9%a6%99%e7%ac%91|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|468|3 +221037|探究式搜索中用户网络信息评价影响因素|http://www.cnki.com.cn/Article/CJFDTOTAL-SHGT201801016.htm|丁敬达|26625111|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26625111%3b&scholarName=%e4%b8%81%e6%95%ac%e8%be%be|上海高校图书情报工作研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SHGT|51|0 +221037|论学术博客评论的质量测度功能及指标——基于科学网博客的实证分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201502002.htm|丁敬达,许鑫|26625111,14281145|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26625111%3b14281145%3b&scholarName=%e4%b8%81%e6%95%ac%e8%be%be|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|77|2 +221037|网络环境下国内学者引证行为变化与学科间差异——基于历时角度的分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGTS201602002.htm|杨思洛,邱均平,丁敬达,余厚强|22395247,05965051,26625111,26977345|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22395247%3b05965051%3b26625111%3b26977345%3b&scholarName=%e6%9d%a8%e6%80%9d%e6%b4%9b|中国图书馆学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGTS|1202|4 +223581|在线信息素质教育平台的设计与实现|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGX201106030.htm|陈艳梅,张红军|06564721,06584032|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06564721%3b06584032%3b&scholarName=%e9%99%88%e8%89%b3%e6%a2%85|图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGX|281|10 +223581|HTML到XML转换技术的研究与实现|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ200305020.htm|陈艳梅,张斌|06574884,06564721|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06574884%3b06564721%3b&scholarName=%e9%99%88%e8%89%b3%e6%a2%85|现代图书情报技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|286|9 +223581|关于开设信息素养教育课程的思考|http://www.cnki.com.cn/Article/CJFDTOTAL-SHIJ201722025.htm|陈艳梅,石磊|06564721,06566205|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06564721%3b06566205%3b&scholarName=%e9%99%88%e8%89%b3%e6%a2%85|兰台世界|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SHIJ|86|0 +223581|MOOC社会化信息交互模式下的知识构建研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGX201709008.htm|姚天泓,陈艳梅|06583907,06564721|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06583907%3b06564721%3b&scholarName=%e5%a7%9a%e5%a4%a9%e6%b3%93|图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGX|116|0 +223581|也谈MARC与DC的相互转换|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGX200303020.htm|陈艳梅|06564721|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06564721%3b&scholarName=%e9%99%88%e8%89%b3%e6%a2%85|图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGX|112|8 +223581|东北大学图书馆特色数据库研究|http://www.cnki.com.cn/Article/CJFDTOTAL-KJXY201735006.htm|张宁,陈艳梅|06568488,06564721|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06568488%3b06564721%3b&scholarName=%e5%bc%a0%e5%ae%81|江苏科技信息|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJXY|57|2 +223581|基于元数据的数字图书馆信息资源组织|http://www.cnki.com.cn/Article/CJFDTOTAL-DXTQ200301015.htm|陈艳梅|06564721|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06564721%3b&scholarName=%e9%99%88%e8%89%b3%e6%a2%85|大学图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DXTQ|318|27 +223581|高校图书馆在线信息素质教育研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SHIJ201018047.htm|陈艳梅,石磊,刘丹丹,郝淑红,马磊,张楠,张明昊|06564721,06566205,13997303,06566783,24903340,06581266,06584070|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06564721%3b06566205%3b13997303%3b06566783%3b24903340%3b06581266%3b06584070%3b&scholarName=%e9%99%88%e8%89%b3%e6%a2%85|兰台世界|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SHIJ|135|5 +223581|高校图书馆书目数据的质量控制刍议|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGX200704046.htm|陈艳梅|06564721|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06564721%3b&scholarName=%e9%99%88%e8%89%b3%e6%a2%85|图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGX|113|15 +223581|高校图书馆员信息素质调查分析——以东北大学图书馆为例|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGX201107060.htm|张楠,陈艳梅,石磊,郝淑红,刘丹丹,马磊|06581266,06564721,06566205,06566783,13997303,24903340|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06581266%3b06564721%3b06566205%3b06566783%3b13997303%3b24903340%3b&scholarName=%e5%bc%a0%e6%a5%a0|图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGX|147|1 +223581|XML、JAVA与数字图书馆|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX200111014.htm|陈艳梅|06564721|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06564721%3b&scholarName=%e9%99%88%e8%89%b3%e6%a2%85|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|75|5 +223581|用虚拟馆藏为读者服务|http://www.cnki.com.cn/Article/CJFDTOTAL-KJQB200917007.htm|陈艳梅|06564721|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06564721%3b&scholarName=%e9%99%88%e8%89%b3%e6%a2%85|科技情报开发与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJQB|26|0 +223581|国外高校图书馆在线信息素质教育调查|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGX201108050.htm|马磊,刘丹丹,陈艳梅|24903340,13997303,06564721|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24903340%3b13997303%3b06564721%3b&scholarName=%e9%a9%ac%e7%a3%8a|图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGX|286|5 +223581|我国大学生信息素质现状调查与分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGX201206032.htm|刘丹丹,马磊,陈艳梅|13997303,24903340,06564721|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13997303%3b24903340%3b06564721%3b&scholarName=%e5%88%98%e4%b8%b9%e4%b8%b9|图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGX|171|6 +223581|谈MARC与DC的相互转换|http://www.cnki.com.cn/Article/CJFDTOTAL-JTXK200304010.htm|陈艳梅|06564721|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06564721%3b&scholarName=%e9%99%88%e8%89%b3%e6%a2%85|津图学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JTXK|83|2 +223581|浅谈CORBA与DCOM|http://www.cnki.com.cn/Article/CJFDTOTAL-SYXX200201047.htm|陈艳梅|06564721|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06564721%3b&scholarName=%e9%99%88%e8%89%b3%e6%a2%85|沈阳教育学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SYXX|39|7 +2255179|故事的魅力——图书馆微视频启示|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGG201502021.htm|鲁海宁|25589939|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25589939%3b&scholarName=%e9%b2%81%e6%b5%b7%e5%ae%81|图书馆工作与研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGG|422|6 +2255179|自建数据库信息服务平台模式构建|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGG201102012.htm|鲁海宁|25589939|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25589939%3b&scholarName=%e9%b2%81%e6%b5%b7%e5%ae%81|图书馆工作与研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGG|343|7 +2255179|图书馆员工作满意度微观影响因素实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGG201202035.htm|鲁海宁,张红莉|25589939,26202860|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25589939%3b26202860%3b&scholarName=%e9%b2%81%e6%b5%b7%e5%ae%81|图书馆工作与研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGG|278|1 +2255179|天津市高校图书馆员职业倦怠实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGG201107014.htm|张红莉,鲁海宁,马迪倩|26202860,25589939,08153085|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26202860%3b25589939%3b08153085%3b&scholarName=%e5%bc%a0%e7%ba%a2%e8%8e%89|图书馆工作与研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGG|346|6 +2255179|图书馆学的历史转型——重读《图书馆知识管理研究》|http://www.cnki.com.cn/Article/CJFDTOTAL-JXTS201301040.htm|鲁海宁|25589939|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25589939%3b&scholarName=%e9%b2%81%e6%b5%b7%e5%ae%81|图书馆研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXTS|126|0 +2258355|高校图书馆阅读推广创新实践与思考——以浙江工业大学图书馆为例|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201420016.htm|蒋一平,季亚娟,王醒宇|22648835,20682494,20911918|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22648835%3b20682494%3b20911918%3b&scholarName=%e8%92%8b%e4%b8%80%e5%b9%b3|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|1503|35 +2258355|国外高校图书馆同伴教育的进展研究|http://www.cnki.com.cn/Article/CJFDTOTAL-DXTS201603019.htm|蒋一平,左丽华|22648835,32335567|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22648835%3b32335567%3b&scholarName=%e8%92%8b%e4%b8%80%e5%b9%b3|大学图书馆学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DXTS|392|3 +2258355|国外图书馆利用社交网站的研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-BJJG201503025.htm|蒋一平,诸葛晴怡,卢振波|22648835,25475639,20818662|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22648835%3b25475639%3b20818662%3b&scholarName=%e8%92%8b%e4%b8%80%e5%b9%b3|国家图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJJG|375|5 +2258355|亚马逊网上书店用户协同信息行为及其对图书馆的启示|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZL201405018.htm|蒋一平,卢振波,陈洁|22648835,20818662,11380601|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22648835%3b20818662%3b11380601%3b&scholarName=%e8%92%8b%e4%b8%80%e5%b9%b3|情报资料工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZL|534|4 +2258355|图书馆粘滞知识测度模型研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDQB201502008.htm|蒋一平|22648835|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22648835%3b&scholarName=%e8%92%8b%e4%b8%80%e5%b9%b3|现代情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDQB|89|4 +2258355|大学图书馆游戏的调查与思考|http://www.cnki.com.cn/Article/CJFDTOTAL-DXTS201403010.htm|季亚娟,蒋一平|20682494,22648835|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=20682494%3b22648835%3b&scholarName=%e5%ad%a3%e4%ba%9a%e5%a8%9f|大学图书馆学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DXTS|530|16 +2258355|我国竞争情报研究的文献计量学分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JSTS201106005.htm|蒋一平,邵利勤,杨惠明,万跃华|22648835,20196495,20976072,00115216|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22648835%3b20196495%3b20976072%3b00115216%3b&scholarName=%e8%92%8b%e4%b8%80%e5%b9%b3|新世纪图书馆|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSTS|227|3 +2258355|我国公共图书馆组织结构改革新视角|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGY200902003.htm|蒋一平|22648835|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22648835%3b&scholarName=%e8%92%8b%e4%b8%80%e5%b9%b3|图书馆研究与工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGY|154|4 +2258355|专利分析在竞争情报工作中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZJTQ201001010.htm|蒋一平|22648835|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22648835%3b&scholarName=%e8%92%8b%e4%b8%80%e5%b9%b3|浙江高校图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZJTQ|522|9 +2258355|图书馆薪酬改革研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZJTQ201105002.htm|蒋一平|22648835|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22648835%3b&scholarName=%e8%92%8b%e4%b8%80%e5%b9%b3|浙江高校图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZJTQ|70|0 +2258355|读者参与图书馆阅读推广的实践与思考——以浙江工业大学图书馆为例|http://www.cnki.com.cn/Article/CJFDTOTAL-JSTS201710011.htm|左丽华,褚叶祺,蒋一平|32335567,28908642,22648835|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32335567%3b28908642%3b22648835%3b&scholarName=%e5%b7%a6%e4%b8%bd%e5%8d%8e|新世纪图书馆|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSTS|154|0 +2258355|基于科研生命周期理论的高校图书馆学科服务机制探索|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGY201605020.htm|禇叶祺,蒋一平|36112722,22648835|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36112722%3b22648835%3b&scholarName=%e7%a6%87%e5%8f%b6%e7%a5%ba|图书馆研究与工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGY|140|1 +2258355|用户视角下图书馆组织结构模式之设计|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL200904005.htm|叶祥满,蒋一平|09406122,22648835|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09406122%3b22648835%3b&scholarName=%e5%8f%b6%e7%a5%a5%e6%bb%a1|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|133|1 +2258355|国内外高校图书馆学科服务研究现状述评|http://www.cnki.com.cn/Article/CJFDTOTAL-ZJTQ201701002.htm|禇叶祺,蒋一平|36112722,22648835|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36112722%3b22648835%3b&scholarName=%e7%a6%87%e5%8f%b6%e7%a5%ba|浙江高校图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZJTQ|17|0 +2280171|阅读推广视角下的读者阅读障碍及对策研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JSTS201511003.htm|武超|34034550|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34034550%3b&scholarName=%e6%ad%a6%e8%b6%85|新世纪图书馆|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSTS|141|3 +2280171|高校图书馆知识服务及其能力提升研究|http://cdmd.cnki.com.cn/Article/CDMD-10108-1017000219.htm|武超|34034550|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34034550%3b&scholarName=%e6%ad%a6%e8%b6%85|||211|0 +2296037|情报事理图谱的概念界定与价值分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201805006.htm|周京艳,刘如,李佳娱,吴晨生|33424521,31818810,36740696,22255738|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33424521%3b31818810%3b36740696%3b22255738%3b&scholarName=%e5%91%a8%e4%ba%ac%e8%89%b3|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|307|1 +2296037|政策工具视角下我国大数据政策的文本量化分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBTS201612003.htm|周京艳,张惠娜,黄裕荣,李梦辉,刘如|33424521,31099331,23976707,33152234,31818810|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33424521%3b31099331%3b23976707%3b33152234%3b31818810%3b&scholarName=%e5%91%a8%e4%ba%ac%e8%89%b3|情报探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBTS|620|11 +2296037|智能集体评审的缘起和特征|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201803005.htm|周京艳,黄裕荣,刘如,张惠娜|33424521,23976707,31818810,31099331|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33424521%3b23976707%3b31818810%3b31099331%3b&scholarName=%e5%91%a8%e4%ba%ac%e8%89%b3|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|57|0 +2296037|我国中医药信息资源数字化建设的现状|http://www.cnki.com.cn/Article/CJFDTOTAL-YXTS201607009.htm|周京艳,杨萍,王世雯|33424521,24427264,24012249|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33424521%3b24427264%3b24012249%3b&scholarName=%e5%91%a8%e4%ba%ac%e8%89%b3|中华医学图书情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXTS|166|2 +2296037|论“张王乐府”的“古歌谣之遗风”——从古诗论中的雅俗、古今之争说起|http://www.cnki.com.cn/Article/CJFDTOTAL-HYWX201802021.htm|周京艳|33424521|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33424521%3b&scholarName=%e5%91%a8%e4%ba%ac%e8%89%b3|汉语言文学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HYWX|38|0 +2296037|基于数据科学思维的情报事理逻辑揭示与科学解读|http://www.cnki.com.cn/Article/CJFDTOTAL-QBLL201808005.htm|刘如,周京艳,李佳娱,吴晨生|31818810,33424521,36740696,22255738|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31818810%3b33424521%3b36740696%3b22255738%3b&scholarName=%e5%88%98%e5%a6%82|情报理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBLL|218|0 +2296037|《孙子》的情报理念探析|http://www.cnki.com.cn/Article/CJFDTOTAL-SUNZ201704008.htm|周京艳,黄裕荣,刘如|33424521|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33424521%3b&scholarName=%e5%91%a8%e4%ba%ac%e8%89%b3|孙子研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SUNZ|58|0 +2296037|意愿经济环境下用户情报需求的深度挖掘与探索|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201701003.htm|刘如,李梦辉,张惠娜,黄裕荣,周京艳|31818810,33152234,31099331,23976707,33424521|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31818810%3b33152234%3b31099331%3b23976707%3b33424521%3b&scholarName=%e5%88%98%e5%a6%82|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|306|2 +2296037|论科技情报工作对创新型国家建设的重要性及服务模式|http://www.cnki.com.cn/Article/CJFDTOTAL-QBGC201502015.htm|周京艳,王世雯,杨萍|33424521,24012249,24427264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33424521%3b24012249%3b24427264%3b&scholarName=%e5%91%a8%e4%ba%ac%e8%89%b3|情报工程|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBGC|88|2 +2296037|我国中医药网站现状分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZYTQ201504008.htm|周京艳,王世雯,杨萍|33424521,24012249,24427264|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33424521%3b24012249%3b24427264%3b&scholarName=%e5%91%a8%e4%ba%ac%e8%89%b3|中国中医药图书情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZYTQ|83|1 +2312387|国际顶级学术期刊《Nature》的发展轨迹及启示|http://www.cnki.com.cn/Article/CJFDTOTAL-BOOK201501007.htm|吴志祥,苏新宁|30854407,08041788|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30854407%3b08041788%3b&scholarName=%e5%90%b4%e5%bf%97%e7%a5%a5|图书与情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BOOK|657|12 +2312387|基于奇异值分解的专利术语层次关系解析研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201705005.htm|吴志祥,王昊,王雪颖,祁磊,苏新宁|30854407,08718875,31963794,37789593,08041788|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30854407%3b08718875%3b31963794%3b37789593%3b08041788%3b&scholarName=%e5%90%b4%e5%bf%97%e7%a5%a5|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|184|3 +2312387|中文专利术语层次关系解析研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBXB201704009.htm|吴志祥,王昊,王密平|30854407,08718875,32799367|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30854407%3b08718875%3b32799367%3b&scholarName=%e5%90%b4%e5%bf%97%e7%a5%a5|情报学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBXB|194|2 +2312387|2007-2011年我国图书情报领域本体研究论文计量分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201510013.htm|吴志祥,王昊,姜霖|30854407,08718875,30661447|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30854407%3b08718875%3b30661447%3b&scholarName=%e5%90%b4%e5%bf%97%e7%a5%a5|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|271|4 +2312387|我国体育人文社会学引用概况分析|http://www.cnki.com.cn/Article/CJFDTOTAL-XNZS201403040.htm|吴志祥,王子朴,梁金辉|30854407,08708494,10679212|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30854407%3b08708494%3b10679212%3b&scholarName=%e5%90%b4%e5%bf%97%e7%a5%a5|西南民族大学学报(人文社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XNZS|149|2 +2312387|基于CRFs的冶金领域中文专利术语抽取研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201606004.htm|王密平,王昊,邓三鸿,吴志祥||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e7%8e%8b%e5%af%86%e5%b9%b3|现代图书情报技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|238|8 +2312387|我国学位论文利用现状分析|http://www.cnki.com.cn/Article/CJFDTOTAL-BOOK201504007.htm|蒋伟伟,吴志祥|14181235,30854407|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14181235%3b30854407%3b&scholarName=%e8%92%8b%e4%bc%9f%e4%bc%9f|图书与情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BOOK|287|7 +2344811|高校图书馆网络安全体系的构建|http://www.cnki.com.cn/Article/CJFDTOTAL-WHCB200701012.htm|尹志清|08981123|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08981123%3b&scholarName=%e5%b0%b9%e5%bf%97%e6%b8%85|武汉船舶职业技术学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WHCB|97|7 +2344811|论高职院校学科导航库的建设|http://www.cnki.com.cn/Article/CJFDTOTAL-WHCB200903039.htm|尹志清|08981123|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08981123%3b&scholarName=%e5%b0%b9%e5%bf%97%e6%b8%85|武汉船舶职业技术学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WHCB|26|1 +2344811|论高校学生信息素养的培养|http://www.cnki.com.cn/Article/CJFDTOTAL-WHZB200504021.htm|尹志清|08981123|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08981123%3b&scholarName=%e5%b0%b9%e5%bf%97%e6%b8%85|武汉职业技术学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WHZB|116|4 +2344811|基于RSS技术的图书馆信息服务研究|http://www.cnki.com.cn/Article/CJFDTOTAL-WHCB201206018.htm|尹志清,张丽|08981123,25796645|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08981123%3b25796645%3b&scholarName=%e5%b0%b9%e5%bf%97%e6%b8%85|武汉船舶职业技术学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WHCB|37|0 +2344811|高职商务英语专业信息检索课双语教学的探索与实践|http://www.cnki.com.cn/Article/CJFDTOTAL-ZXQX200904159.htm|尹志清,李宗艳|08981123,13891018|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08981123%3b13891018%3b&scholarName=%e5%b0%b9%e5%bf%97%e6%b8%85|中小企业管理与科技(下旬刊)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZXQX|49|0 +2344811|高校图书馆的知识产权问题的探讨|http://www.cnki.com.cn/Article/CJFDTOTAL-QYDB200908129.htm|尹志清|23430616,08981123|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23430616%3b08981123%3b&scholarName=%e5%b0%b9%e5%bf%97%e6%b8%85|企业导报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QYDB|59|0 +2344811|图书馆开放型一站式服务模式的实施及对策|http://www.cnki.com.cn/Article/CJFDTOTAL-WHCB200901019.htm|肖亚明,尹志清|09001525,08981123|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09001525%3b08981123%3b&scholarName=%e8%82%96%e4%ba%9a%e6%98%8e|武汉船舶职业技术学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WHCB|107|4 +2357104|跨学科知识交流研究综述|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201603027.htm|关智远,陈仕吉|34662706,21730460|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34662706%3b21730460%3b&scholarName=%e5%85%b3%e6%99%ba%e8%bf%9c|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|434|7 +2357433|从连续三年中美高校图书馆电子资源建设经费统计数据看馆藏电子资源建设发展趋势|http://www.cnki.com.cn/Article/CJFDTOTAL-DXTS201201015.htm|程艾军,张兆忠,马路||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e7%a8%8b%e8%89%be%e5%86%9b|大学图书馆学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DXTS|1264|15 +2357433|基于有效信息行为的医学院校学科服务模式研究|http://www.cnki.com.cn/Article/CJFDTOTAL-YXQB201807017.htm|程艾军|17520882|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17520882%3b&scholarName=%e7%a8%8b%e8%89%be%e5%86%9b|医学信息学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXQB|55|0 +2357433|基于ESI和InCites的医学院校学科发展现状SWOT分析|http://www.cnki.com.cn/Article/CJFDTOTAL-YXQB201707020.htm|程艾军|17520882|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17520882%3b&scholarName=%e7%a8%8b%e8%89%be%e5%86%9b|医学信息学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXQB|202|0 +2357433|中美部分高校图书馆嵌入式学科服务比较及启示|http://www.cnki.com.cn/Article/CJFDTOTAL-YXQB201506022.htm|程艾军,马路|17520882,08692917|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17520882%3b08692917%3b&scholarName=%e7%a8%8b%e8%89%be%e5%86%9b|医学信息学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXQB|194|2 +2357433|基于用户需求分析的学科信息服务实践探索|http://www.cnki.com.cn/Article/CJFDTOTAL-YXQB201409020.htm|程艾军,马路|17520882,08692917|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17520882%3b08692917%3b&scholarName=%e7%a8%8b%e8%89%be%e5%86%9b|医学信息学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXQB|76|3 +2357433|《医学主题词表》(MeSH)及其在医学文献检索中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-SDYS200800029.htm|程艾军|17520882|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17520882%3b&scholarName=%e7%a8%8b%e8%89%be%e5%86%9b|首都医科大学学报(社科版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SDYS|1298|10 +2357433|新形势下医学院校查新工作站提高服务水平的实践探索|http://www.cnki.com.cn/Article/CJFDTOTAL-YXQB201302020.htm|程艾军,马路,李宁|17520882,08692917,04015657|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17520882%3b08692917%3b04015657%3b&scholarName=%e7%a8%8b%e8%89%be%e5%86%9b|医学信息学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXQB|62|2 +2357433|CBM数据库在医药卫生科技项目查新咨询中的应用研究|http://www.cnki.com.cn/Article/CJFDTOTAL-YXQB201108022.htm|程艾军|17520882|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17520882%3b&scholarName=%e7%a8%8b%e8%89%be%e5%86%9b|医学信息学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXQB|86|4 +2357433|基于BB平台的《医学信息检索》网络课程内容建设|http://www.cnki.com.cn/Article/CJFDTOTAL-SDYS201100043.htm|程艾军|17520882|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17520882%3b&scholarName=%e7%a8%8b%e8%89%be%e5%86%9b|首都医科大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SDYS|151|4 +2357433|基于BB平台的医学信息检索网络课程建设与在线考试|http://www.cnki.com.cn/Article/CJFDTOTAL-YXJG201603004.htm|杜建杰,程艾军,刘玉婷,黄芳|35164556,17520882,25587357,08708657|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35164556%3b17520882%3b25587357%3b08708657%3b&scholarName=%e6%9d%9c%e5%bb%ba%e6%9d%b0|医学教育管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXJG|93|3 +2357433|加强信息素质教育 促进读者服务工作|http://www.cnki.com.cn/Article/CJFDTOTAL-SDYS200900059.htm|程艾军|17520882|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17520882%3b&scholarName=%e7%a8%8b%e8%89%be%e5%86%9b|首都医科大学学报(社科版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SDYS|30|0 +2357433|综合干预对老年痴呆患者家庭照顾者抑郁情绪改善的系统评价|http://www.cnki.com.cn/Article/CJFDTOTAL-QKYX201535023.htm|赵岩,张丹丹,赵亚利,程艾军,杜娟|31691096,17407530,08715020,17520882,09764484|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31691096%3b17407530%3b08715020%3b17520882%3b09764484%3b&scholarName=%e8%b5%b5%e5%b2%a9|中国全科医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QKYX|443|17 +2361558|界面联合创始人张衍阁:以原创为“媒”界面的目标是“新闻+”|http://xuewen.cnki.net/CCND-SZSB20150819A080.html|解冰|27949070|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27949070%3b&scholarName=%e8%a7%a3%e5%86%b0|||78|1 +2361558|挥不尽的石油情|http://xuewen.cnki.net/CCND-PJRB200712280031.html|刘长青||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%88%98%e9%95%bf%e9%9d%92|||7|0 +2361558|心怀现实 情系大路——张衍海的版画艺术|http://www.cnki.com.cn/Article/CJFDTOTAL-MEIS201306022.htm|吴长江|13632538|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13632538%3b&scholarName=%e5%90%b4%e9%95%bf%e6%b1%9f|美术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/MEIS|27|0 +2361558|追忆张衍将军|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHZH200810015.htm|程传德||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e7%a8%8b%e4%bc%a0%e5%be%b7|纵横|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHZH|22|1 +2361558|关于张衍宏等两名同志不再担任政协十堰市第四届委员会委员的决定|http://xuewen.cnki.net/CCND-SYBR201405010021.html||||||1|0 +2361558|让荣誉的“附加值”最大化|http://xuewen.cnki.net/CCND-ZHSH201011300028.html|廖明超,熊刚,吴森||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%bb%96%e6%98%8e%e8%b6%85|||6|0 +2361558|创建维权自律协会 打造医院工作者之家——广东省医院协会会长张衍浩访谈|http://www.cnki.com.cn/Article/CJFDTOTAL-XDYU200603075.htm|陈冰||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e9%99%88%e5%86%b0|现代医院|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDYU|9|0 +2361558|少将张衍|http://www.cnki.com.cn/Article/CJFDTOTAL-DSZL200106008.htm|胡兴臣,焦秀銮||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e8%83%a1%e5%85%b4%e8%87%a3|党史纵览|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DSZL|4|0 +2361558|张衍浩副厅长在广东省肿瘤防治工作会议闭幕式上的讲话(摘录)|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHLU199211002.htm|张衍浩||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%bc%a0%e8%a1%8d%e6%b5%a9|中国肿瘤|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHLU|7|0 +2361558|创业成就梦想 创新成就辉煌——记吉林市人大代表、吉林省朗星科技股份有限公司董事长张衍成|http://www.cnki.com.cn/Article/CJFDTOTAL-JLRK201410031.htm|洪亮||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e6%b4%aa%e4%ba%ae|吉林人大|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JLRK|12|0 +2361558|新上海商业城繁荣的驱动力在哪里──记乐凯房地产开发有限公司副总经理张衍庆|http://www.cnki.com.cn/Article/CJFDTOTAL-PDKF605.006.htm|阮立||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e9%98%ae%e7%ab%8b|浦东开发|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/PDKF|10|0 +2361558|焚着的眷恋——记画家、作家张衍海|http://www.cnki.com.cn/Article/CJFDTOTAL-SDWX200006035.htm|雪界||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e9%9b%aa%e7%95%8c|山东文学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SDWX|2|0 +2361558|张衍建议停止知识青年上山下乡|http://www.cnki.com.cn/Article/CJFDTOTAL-BKHC200508014.htm|吴新明||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%90%b4%e6%96%b0%e6%98%8e|报刊荟萃|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BKHC|24|0 +2361558|张衍春|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZYLX200606001701.htm||||||1|0 +2361558|天下人心归延安——访张衍少将|http://kns.cnki.net/KCMS/detail/detail.aspx?dbname=CJFDPREP&filename=ZIGU199710006|赵勇田||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e8%b5%b5%e5%8b%87%e7%94%b0|紫光阁|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZIGU|0|0 +2376541|altmetrics:从理论假说、术语提出到内涵的重新界定|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201506019.htm|刘春丽|10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|716|29 +2376541|Altmetrics指标在科研评价与管理方面的应用——争议、评论和评估|http://www.cnki.com.cn/Article/CJFDTOTAL-KXXG201606002.htm|刘春丽|10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|科学学与科学技术管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KXXG|490|7 +2376541|altmetrics工具与机构知识库的整合与效果——以PlumX为例|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201524008.htm|刘春丽|10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|665|11 +2376541|Web 2.0环境下的科学计量学:选择性计量学|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201214011.htm|刘春丽|10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|1281|93 +2376541|基于PLOS API的论文影响力选择性计量指标研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201307022.htm|刘春丽|10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|754|35 +2376541|Altmetrics工具的发展、现况及相关问题|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201605019.htm|刘春丽|10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|453|6 +2376541|开放科学和开放数据环境中专业图书馆的新角色|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGJ201402024.htm|刘春丽,徐跃权|10113261,06601692|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b06601692%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|图书馆建设|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGJ|736|20 +2376541|论文层面计量学(Article-Level Metrics):发展过程、特点、指标与应用|http://www.cnki.com.cn/Article/CJFDTOTAL-TNGZ201602013.htm|刘春丽|10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|图书馆杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TNGZ|441|5 +2376541|大数据时代图书馆员专业阅读与专业能力的关联|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGJ201404016.htm|刘春丽,徐跃权|10113261,06601692|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b06601692%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|图书馆建设|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGJ|1043|15 +2376541|开放同行评审的产生、发展、成效与可行性|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201301010.htm|刘春丽,何钦成|10113261,09995326|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b09995326%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|268|24 +2376541|Altmetrics工具的起源、质疑、改进与发展|http://www.cnki.com.cn/Article/CJFDTOTAL-TNGZ201803014.htm|刘春丽|10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|图书馆杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TNGZ|285|1 +2376541|基于软同行评议的科学论文影响力评价方法——F1000因子|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201203014.htm|刘春丽|10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|352|14 +2376541|基于人脸识别技术的我国图书馆智慧服务功能设计与模式构建|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201818008.htm|王维秋,刘春丽|09927721,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09927721%3b10113261%3b&scholarName=%e7%8e%8b%e7%bb%b4%e7%a7%8b|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|594|0 +2376541|元素养:信息素养教育转型新导向|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZL201701019.htm|刘丽萍,刘春丽|34524717,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34524717%3b10113261%3b&scholarName=%e5%88%98%e4%b8%bd%e8%90%8d|情报资料工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZL|855|12 +2376541|美国马里兰大学图书馆利用iPad开展移动知识咨询案例介绍与思考|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201402015.htm|刘春丽,徐跃权|10113261,06601692|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b06601692%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|536|5 +2376541|公共物品供给博弈模型在我国文献信息资源共享中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX200701009.htm|刘春丽,徐跃权|06601692,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06601692%3b10113261%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|548|10 +2376541|开放同行评议利弊分析与建议|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201705001.htm|刘丽萍,刘春丽|34524717,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34524717%3b10113261%3b&scholarName=%e5%88%98%e4%b8%bd%e8%90%8d|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|242|11 +2376541|基于心理契约视角的高校图书馆馆员沉默研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201105014.htm|刘春丽,徐跃权|10113261,06601692|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b06601692%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|401|7 +2376541|不同学科间论文影响力评价指标模型的差异性研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201713020.htm|王雯霞,刘春丽|36697045,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36697045%3b10113261%3b&scholarName=%e7%8e%8b%e9%9b%af%e9%9c%9e|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|286|6 +2376541|基于IU原则的高校图书馆微信公众号营销策略研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGX201803016.htm|王聪,刘春丽,王雯霞,宫雪,韩爽|24757364,10113261,36697045,24728091,26048814|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24757364%3b10113261%3b36697045%3b24728091%3b26048814%3b&scholarName=%e7%8e%8b%e8%81%aa|图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGX|161|1 +2376541|二维码对基于Beacon的智慧图书馆应用的补充研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201705004.htm|王雯霞,刘春丽|36697045,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=36697045%3b10113261%3b&scholarName=%e7%8e%8b%e9%9b%af%e9%9c%9e|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|368|5 +2376541|智慧图书馆的理论演进历程、应用前沿与发展趋势研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201718003.htm|王维秋,刘春丽|09927721,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09927721%3b10113261%3b&scholarName=%e7%8e%8b%e7%bb%b4%e7%a7%8b|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|612|4 +2376541|资源共享联盟内部费用分摊模型研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDQB200702064.htm|刘春丽,徐跃权|06601692,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06601692%3b10113261%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|现代情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDQB|331|11 +2376541|基于学科的信息素养虚拟学习社区研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS200610026.htm|刘春丽,梁旭|10113261,10456605|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b10456605%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|445|4 +2376541|Publons管理模式对我国同行评审制度的启示|http://www.cnki.com.cn/Article/CJFDTOTAL-JYKQ201807005.htm|刘丽萍,刘春丽|34524717,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34524717%3b10113261%3b&scholarName=%e5%88%98%e4%b8%bd%e8%90%8d|中国科技期刊研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYKQ|109|0 +2376541|医学院校学科馆员服务实施方法研究——以中国医科大学图书馆为例|http://www.cnki.com.cn/Article/CJFDTOTAL-YXQB200907027.htm|刘春丽,邱宇红,董丽平,赵楠,郭继军|10113261,10456841,23393893,23393894,09995272|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b10456841%3b23393893%3b23393894%3b09995272%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|医学信息学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXQB|246|7 +2376541|Altmetrics在我国高校机构知识库应用分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201612022.htm|王聪,刘春丽|24757364,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24757364%3b10113261%3b&scholarName=%e7%8e%8b%e8%81%aa|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|288|4 +2376541|中美高校图书馆3D打印服务经验与分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201519009.htm|崔丽媛,刘春丽,徐跃权|33796723,10113261,06601692|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33796723%3b10113261%3b06601692%3b&scholarName=%e5%b4%94%e4%b8%bd%e5%aa%9b|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|293|8 +2376541|美国图书馆3D打印服务的调查与启示|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGX201712030.htm|崔丽媛,刘春丽|33796723,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33796723%3b10113261%3b&scholarName=%e5%b4%94%e4%b8%bd%e5%aa%9b|图书馆学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGX|96|0 +2376541|美国医学图书馆3D打印服务及其启示|http://www.cnki.com.cn/Article/CJFDTOTAL-YXTS201602002.htm|崔丽媛,刘春丽,刘丽萍,王聪|33796723,10113261,34524717,24757364|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33796723%3b10113261%3b34524717%3b24757364%3b&scholarName=%e5%b4%94%e4%b8%bd%e5%aa%9b|中华医学图书情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXTS|180|6 +2376541|中美两所医学高校机构知识库的对比分析|http://www.cnki.com.cn/Article/CJFDTOTAL-YXTS201611003.htm|王聪,刘春丽|24757364,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24757364%3b10113261%3b&scholarName=%e7%8e%8b%e8%81%aa|中华医学图书情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXTS|129|1 +2376541|图书馆在元素养教育中的角色定位与职能塑造|http://www.cnki.com.cn/Article/CJFDTOTAL-YXTS201702013.htm|刘丽萍,刘春丽|34524717,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34524717%3b10113261%3b&scholarName=%e5%88%98%e4%b8%bd%e8%90%8d|中华医学图书情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXTS|158|2 +2376541|美国元素养教育实践及思考|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201709001.htm|刘丽萍,王翠萍,刘春丽|34524717,06604030,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34524717%3b06604030%3b10113261%3b&scholarName=%e5%88%98%e4%b8%bd%e8%90%8d|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|270|3 +2376541|基于Web of Science的中国医科大学科研现状文献计量学研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XXJK201102042.htm|刘春丽,王新宇|10113261,25461199|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b25461199%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|中国科技信息|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XXJK|129|1 +2376541|我国图书馆3D打印服务的要素与模式探析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZL201605019.htm|崔丽媛,徐跃权,刘春丽|33796723,06601692,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33796723%3b06601692%3b10113261%3b&scholarName=%e5%b4%94%e4%b8%bd%e5%aa%9b|情报资料工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZL|227|2 +2376541|我国信息素养教育改革研究热点|http://www.cnki.com.cn/Article/CJFDTOTAL-KJQB200706070.htm|刘春丽,何春辉|10113261,09725032|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b09725032%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|科技情报开发与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJQB|144|1 +2376541|医学高校图书馆阅读推广的源动力及影响因素分析|http://www.cnki.com.cn/Article/CJFDTOTAL-YXQB201601021.htm|王维秋,刘春丽|09927721,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09927721%3b10113261%3b&scholarName=%e7%8e%8b%e7%bb%b4%e7%a7%8b|医学信息学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXQB|131|1 +2376541|导航技术在头颈部肿瘤应用专题的文献计量学研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGKQ201703027.htm|王绍杰,隋明爽,许丹,刘春丽,谭学新,孙长伏|37236071,31063108,10115011,10113261,10114467,10006713|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37236071%3b31063108%3b10115011%3b10113261%3b10114467%3b10006713%3b&scholarName=%e7%8e%8b%e7%bb%8d%e6%9d%b0|中国口腔颌面外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGKQ|30|0 +2376541|三种信息粒度下的新颖性探测理论及其应用|http://www.cnki.com.cn/Article/CJFDTOTAL-YXTS201611004.htm|陈斯斯,董立平,许丹,刘春丽,郭继军|28499066,11507333,10115011,10113261,09995272|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28499066%3b11507333%3b10115011%3b10113261%3b09995272%3b&scholarName=%e9%99%88%e6%96%af%e6%96%af|中华医学图书情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXTS|41|0 +2376541|从信息素养馆员到元素养馆员的角色转变|http://www.cnki.com.cn/Article/CJFDTOTAL-YXTS201809009.htm|刘丽萍,刘春丽|34524717,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34524717%3b10113261%3b&scholarName=%e5%88%98%e4%b8%bd%e8%90%8d|中华医学图书情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXTS|5|0 +2376541|新生儿郎格罕细胞组织细胞增生症1例报告|http://www.cnki.com.cn/Article/CJFDTOTAL-ZSEK200911030.htm|蔡清,薛辛东,刘春丽,富建华,张继红|23790779,10514784,23790780,10528260,11271469|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23790779%3b10514784%3b23790780%3b10528260%3b11271469%3b&scholarName=%e8%94%a1%e6%b8%85|中国实用儿科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZSEK|139|2 +2376541|《分析化学》2006~2010年载文及被引分析|http://www.cnki.com.cn/Article/CJFDTOTAL-XXJK201114117.htm|王维秋,刘春丽|09927721,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09927721%3b10113261%3b&scholarName=%e7%8e%8b%e7%bb%b4%e7%a7%8b|中国科技信息|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XXJK|36|1 +2376541|马丁·施雷廷格的图书馆学思想与贡献|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGTS201604004.htm|徐跃权,徐兆英,刘春丽|06601692,23205760,10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06601692%3b23205760%3b10113261%3b&scholarName=%e5%be%90%e8%b7%83%e6%9d%83|中国图书馆学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGTS|684|4 +2376541|板蓝根磷脂对内毒素血症小鼠巨噬细胞膜脂成分的保护作用|http://www.cnki.com.cn/Article/CJFDTOTAL-JJYZ200507016.htm|王新春,许平,刘北彦,肖莉萍,刘雪松,刘春丽||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e7%8e%8b%e6%96%b0%e6%98%a5|中华急诊医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JJYZ|129|3 +2376541|双胎早产儿脑损伤的相关因素分析|http://cdmd.cnki.com.cn/Article/CDMD-10159-2010116771.htm|刘春丽|10113261|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10113261%3b&scholarName=%e5%88%98%e6%98%a5%e4%b8%bd|||144|0 +2376541|板蓝根磷脂对内毒素血症小鼠巨噬细胞膜脂成分的保护作用|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZHJZ200412001036.htm|王新春,刘北彦,肖莉萍,刘雪松,刘春丽,许平|17644607,07023117,07019375,07027772,23057544,17633434|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17644607%3b07023117%3b07019375%3b07027772%3b23057544%3b17633434%3b&scholarName=%e7%8e%8b%e6%96%b0%e6%98%a5|||18|0 +240604|机构知识库元数据质量控制方法研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201804008.htm|刘丹|06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b&scholarName=%e5%88%98%e4%b8%b9|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|267|1 +240604|单壁碳纳米管的分离方法|http://www.cnki.com.cn/Article/CJFDTOTAL-KXTB201433006.htm|刘丹,张锦|06265568,06264156|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b06264156%3b&scholarName=%e5%88%98%e4%b8%b9|科学通报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KXTB|1014|7 +240604|胃神经内分泌肿瘤的诊断和治疗|http://www.cnki.com.cn/Article/CJFDTOTAL-LCZL201506017.htm|刘丹,沈琳,陆明|33314579,32707483,33314580,06282390,06444603,06396499,15189447,25097214,25093278|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33314579%3b32707483%3b33314580%3b06282390%3b06444603%3b06396499%3b15189447%3b25097214%3b25093278%3b&scholarName=%e5%88%98%e4%b8%b9|临床肿瘤学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCZL|437|14 +240604|机构知识库内容建设方法研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GXTG201803009.htm|刘丹|06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b&scholarName=%e5%88%98%e4%b8%b9|高校图书馆工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GXTG|199|1 +240604|XML检索研究综述|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201004008.htm|刘丹,孔少华,陆伟|06265568,24490159,09006361|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b24490159%3b09006361%3b&scholarName=%e5%88%98%e4%b8%b9|现代图书情报技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|734|13 +240604|雾霾和沙尘暴天气细颗粒物对人角质细胞促炎症作用和过敏反应的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-WSDL201702006.htm|刘丹,赵雨佳,王祎星,张慧峰,高慧明,周辉|06265568,37122791,37122792,37122793,29087934,06278271|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b37122791%3b37122792%3b37122793%3b29087934%3b06278271%3b&scholarName=%e5%88%98%e4%b8%b9|毒理学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WSDL|166|3 +240604|多柔比星海藻酸钠微球体内肝动脉栓塞的药代动力学和评价|http://www.cnki.com.cn/Article/CJFDTOTAL-YXXB200608017.htm|刘丹,王鹏程,齐宪荣,邹强,邹英华,洪宏|06265568,00012672,06268549,20817423,06263675,16051826|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b00012672%3b06268549%3b20817423%3b06263675%3b16051826%3b&scholarName=%e5%88%98%e4%b8%b9|药学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXXB|316|21 +240604|胃癌根治术后肺转移危险因素分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGWK201809023.htm|刘丹,陆明,李健,沈琳|33442966,27040447,22142467,20546071|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33442966%3b27040447%3b22142467%3b20546071%3b&scholarName=%e5%88%98%e4%b8%b9|中国实用外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGWK|29|0 +240604|多柔比星海藻酸钙微球的制备及其载药、释药性质的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZXYZ200615012.htm|刘丹,王鹏程,刘昕,李明光,齐宪荣|11025008,06258852,06268549,06265568,06263675|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11025008%3b06258852%3b06268549%3b06265568%3b06263675%3b&scholarName=%e5%88%98%e4%b8%b9|中国新药杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZXYZ|464|20 +240604|薪酬委员会特征与高管薪酬契约——基于中国上市公司的经验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-LXGZ201303002.htm|江伟,刘丹,李雯|29524741,10689458,07756700,24937641|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29524741%3b10689458%3b07756700%3b24937641%3b&scholarName=%e6%b1%9f%e4%bc%9f|会计与经济研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LXGZ|509|18 +240604|基于时空模型的中国房价收入关系研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZJJW201006002.htm|刘丹,霍德明|06265568,21652733|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b21652733%3b&scholarName=%e5%88%98%e4%b8%b9|中国经济问题|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZJJW|462|7 +240604|机构知识库的新机遇:替代计量学|http://www.cnki.com.cn/Article/CJFDTOTAL-JYWL201406056.htm|刘丹,赵宇峰,曾文|06265568,31263024,24565044|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b31263024%3b24565044%3b&scholarName=%e5%88%98%e4%b8%b9|中国教育网络|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYWL|362|9 +240604|运动对改善糖尿病患者血管并发症的有益作用|http://www.cnki.com.cn/Article/CJFDTOTAL-XXGB201605010.htm|刘丹,赵威,高炜|31804784,11009946,06273783|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31804784%3b11009946%3b06273783%3b&scholarName=%e5%88%98%e4%b8%b9|心血管病学进展|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XXGB|92|2 +240604|北京大学开放研究数据平台建设:探索与实践|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201604008.htm|朱玲,聂华,崔海媛,罗鹏程,刘丹,吴越|22607057,06268391,06254415,34622863,06265568,29576155|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22607057%3b06268391%3b06254415%3b34622863%3b06265568%3b29576155%3b&scholarName=%e6%9c%b1%e7%8e%b2|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|883|21 +240604|基于XML的中文博硕士论文检索系统设计及实现|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201005014.htm|刘丹|06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b&scholarName=%e5%88%98%e4%b8%b9|现代图书情报技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|303|3 +240604|降低系统芯片中跨时钟域设计和验证复杂度的方法|http://www.cnki.com.cn/Article/CJFDTOTAL-TXXB201211020.htm|刘丹,冯毅,党向磊,佟冬,程旭,王克义|06265568,15624708,24444426,06262842,06240072,06269981|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b15624708%3b24444426%3b06262842%3b06240072%3b06269981%3b&scholarName=%e5%88%98%e4%b8%b9|通信学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TXXB|94|4 +240604|住房市场模型研究——基于非稳定时间序列的FM-OLS估计|http://www.cnki.com.cn/Article/CJFDTOTAL-JJWT201009008.htm|刘丹,莫迪|06265568,24937559|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b24937559%3b&scholarName=%e5%88%98%e4%b8%b9|经济问题|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JJWT|377|5 +240604|他汀类药物影响运动能力的机制|http://www.cnki.com.cn/Article/CJFDTOTAL-XIXG201606001.htm|刘丹,赵威,高炜|31804784,11009946,06273783|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31804784%3b11009946%3b06273783%3b&scholarName=%e5%88%98%e4%b8%b9|中国心血管杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XIXG|57|0 +240604|“偿二代”:以风险为导向的偿付能力监管体系|http://www.cnki.com.cn/Article/CJFDTOTAL-XDBY201609032.htm|刘丹|06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b&scholarName=%e5%88%98%e4%b8%b9|现代商业|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDBY|659|3 +240604|面向384×288面阵型红外读出电路的低功耗设计(英文)|http://www.cnki.com.cn/Article/CJFDTOTAL-BDTX200801017.htm|刘丹,鲁文高,陈中建,吉利久,赵宝瑛|06265568,06255048,06240027,06256833,06264991|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b06255048%3b06240027%3b06256833%3b06264991%3b&scholarName=%e5%88%98%e4%b8%b9|半导体学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BDTX|232|4 +240604|股权分置改革与公司治理——二阶委托代理框架的视角|http://www.cnki.com.cn/Article/CJFDTOTAL-CJWT200702005.htm|乔志城,刘丹|11661788,06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11661788%3b06265568%3b&scholarName=%e4%b9%94%e5%bf%97%e5%9f%8e|财经问题研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CJWT|796|32 +240604|基于分子亲和色谱技术的肉苁蓉低分子糖巨噬细胞激活作用靶点群鉴定与机制分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGZY201719006.htm|王丽超,刘丹,姜勇,屠鹏飞,曾克武|37723439,30528726,06265568,06266629,06262861,22101536,11647779|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37723439%3b30528726%3b06265568%3b06266629%3b06262861%3b22101536%3b11647779%3b&scholarName=%e7%8e%8b%e4%b8%bd%e8%b6%85|中国中药杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGZY|250|2 +240604|面向内存访问性能优化的总线仲裁方法|http://www.cnki.com.cn/Article/CJFDTOTAL-JFYZ201205019.htm|刘丹,冯毅,佟冬,程旭,王克义|06265568,15624708,06262842,06240072,06269981|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b15624708%3b06262842%3b06240072%3b06269981%3b&scholarName=%e5%88%98%e4%b8%b9|计算机研究与发展|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JFYZ|103|1 +240604|新型低功耗320×288 IR ROIC中列读出级的设计|http://www.cnki.com.cn/Article/CJFDTOTAL-BJDZ200701011.htm|刘丹,鲁文高,陈中建,吉利久,赵宝瑛|06255048,06265568,06240027,06264991,06256833|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06255048%3b06265568%3b06240027%3b06264991%3b06256833%3b&scholarName=%e5%88%98%e4%b8%b9|北京大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJDZ|136|5 +240604|股权分置改革的进一步分析:制度变迁视角|http://www.cnki.com.cn/Article/CJFDTOTAL-GDJR200703022.htm|刘丹,吴玉立,乔志诚|11474925,06265568,14698458|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11474925%3b06265568%3b14698458%3b&scholarName=%e5%88%98%e4%b8%b9|南方金融|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDJR|276|4 +240604|房价宏观风险度量方法研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JRLS201010004.htm|刘丹,张中铭|06265568,25019085|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b25019085%3b&scholarName=%e5%88%98%e4%b8%b9|金融理论与实践|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JRLS|172|5 +240604|显微镜下多血管炎合并自身免疫性溶血性贫血的临床特点及治疗转归|http://www.cnki.com.cn/Article/CJFDTOTAL-BYDB201504024.htm|刘丹,李茹,刘佳钰,姚海红,陈庆平,贾园,苏茵|22563098,27090479,06291932,31584242,24277510,08514886,00090868,06284905|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22563098%3b27090479%3b06291932%3b31584242%3b24277510%3b08514886%3b00090868%3b06284905%3b&scholarName=%e5%88%98%e4%b8%b9|北京大学学报(医学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BYDB|110|0 +240604|控股股东类型与公司价值:来自上市公司的证据|http://www.cnki.com.cn/Article/CJFDTOTAL-ZQDB200808014.htm|吴刚,刘丹|06264578,06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06264578%3b06265568%3b&scholarName=%e5%90%b4%e5%88%9a|证券市场导报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZQDB|422|15 +240604|SEGUE量表评估住院医师医患沟通能力分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLYD201623041.htm|朱丹,刘丹,冯新恒,郭丽君,崔鸣,曾辉,陈宝霞,高炜|15147925,31804784,06273778,06267318,06279616,06272916,10854904,06273783|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15147925%3b31804784%3b06273778%3b06267318%3b06279616%3b06272916%3b10854904%3b06273783%3b&scholarName=%e6%9c%b1%e4%b8%b9|中华临床医师杂志(电子版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLYD|198|2 +240604|非感染性炎症与妊娠并发症|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHCJ201704015.htm|刘丹,樊尚荣|17436247,06279896|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17436247%3b06279896%3b&scholarName=%e5%88%98%e4%b8%b9|中华产科急救电子杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHCJ|23|0 +240604|建立小鼠视神经损伤模型的实验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDYF201018046.htm|刘丹,杨柳|21323260,00750259|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21323260%3b00750259%3b&scholarName=%e5%88%98%e4%b8%b9|现代预防医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDYF|258|4 +240604|新型低功耗128×128红外读出电路设计|http://www.cnki.com.cn/Article/CJFDTOTAL-JGHW200705018.htm|刘丹,鲁文高,陈中建,吉利久,赵宝瑛|06264991,06240027,06255048,06256833,06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06264991%3b06240027%3b06255048%3b06256833%3b06265568%3b&scholarName=%e5%88%98%e4%b8%b9|激光与红外|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JGHW|203|3 +240604|2015年美国疾病控制中心性传播疾病的诊断和治疗指南(续)——人乳头瘤病毒感染的诊断和治疗指南|http://www.cnki.com.cn/Article/CJFDTOTAL-QKYX201529002.htm|樊尚荣,刘丹|06279896,06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06279896%3b06265568%3b&scholarName=%e6%a8%8a%e5%b0%9a%e8%8d%a3|中国全科医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QKYX|497|7 +240604|资助机构开放获取知识库研究与构建——以国家自然科学基金基础研究知识库为例|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201711007.htm|崔海媛,聂华,罗鹏程,韦成府,吴越,刘丹,张乃帅,朱玲|06254415,06268391,34622863,24914970,29576155,06265568,30942079,22607057|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06254415%3b06268391%3b34622863%3b24914970%3b29576155%3b06265568%3b30942079%3b22607057%3b&scholarName=%e5%b4%94%e6%b5%b7%e5%aa%9b|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|320|1 +240604|超声引导经阴道穿刺取卵术的围手术期护理|http://www.cnki.com.cn/Article/CJFDTOTAL-XIYI201709038.htm|刘丹|17436247|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17436247%3b&scholarName=%e5%88%98%e4%b8%b9|中国校医|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XIYI|46|1 +240604|地塞米松对新辅助化疗后乳腺癌患者术后恶心呕吐发生率的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-BYDB201504029.htm|李志红,刘丹,何自静,范志毅|33442965,24486281,33442966,33314580,33442967,24486278,20042435,24486284|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33442965%3b24486281%3b33442966%3b33314580%3b33442967%3b24486278%3b20042435%3b24486284%3b&scholarName=%e6%9d%8e%e5%bf%97%e7%ba%a2|北京大学学报(医学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BYDB|233|6 +240604|纳米光学和生物单分子探测|http://www.cnki.com.cn/Article/CJFDTOTAL-WLZZ200412010.htm|白永强,刘丹,朱星|06238757,06266773,06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06238757%3b06266773%3b06265568%3b&scholarName=%e7%99%bd%e6%b0%b8%e5%bc%ba|物理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WLZZ|607|17 +240604|胸腔镜手术在孤立性肺结节诊断和治疗中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZWWK201003027.htm|梁正,刘丹丹,闫天生,沈祯云,王京弟,王可毅,宋金涛,王通|06267411,06273883,06272873,06279790,06280214,06280464,10548267,17354714|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06267411%3b06273883%3b06272873%3b06279790%3b06280214%3b06280464%3b10548267%3b17354714%3b&scholarName=%e6%a2%81%e6%ad%a3|中国微创外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZWWK|273|21 +240604|“二战”后发达国家货币政策变迁及对我国的启示|http://www.cnki.com.cn/Article/CJFDTOTAL-JTJJ201106005.htm|刘丹,李宏瑾|06265568,11196165|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b11196165%3b&scholarName=%e5%88%98%e4%b8%b9|金融与经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JTJJ|165|0 +240604|替代计量学在数字科研环境中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-JYWL201506043.htm|刘丹|06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b&scholarName=%e5%88%98%e4%b8%b9|中国教育网络|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYWL|121|2 +240604|资本市场收益与通货膨胀:对新兴市场的进一步检验|http://www.cnki.com.cn/Article/CJFDTOTAL-GDJR201106003.htm|刘丹|06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b&scholarName=%e5%88%98%e4%b8%b9|南方金融|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDJR|129|0 +240604|房价泡沫下GDP风险值的实证研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TJJC201016031.htm|刘丹|06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b&scholarName=%e5%88%98%e4%b8%b9|统计与决策|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TJJC|251|2 +240604|心理护理干预对高龄不孕患者心理状态及助孕结局的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-LNYX201701020.htm|刘丹,张碧娟,李萍|17436247,25087906,33133469|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17436247%3b25087906%3b33133469%3b&scholarName=%e5%88%98%e4%b8%b9|辽宁医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LNYX|105|5 +240604|三种PCR仪的特异性及灵敏度评价|http://www.cnki.com.cn/Article/CJFDTOTAL-YNWS200610029.htm|曾争,刘丹,公维波,斯崇文|06283362,21323260,15985050,05966548|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06283362%3b21323260%3b15985050%3b05966548%3b&scholarName=%e6%9b%be%e4%ba%89|医疗卫生装备|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YNWS|416|21 +240604|网络新闻传播的双重影响|http://www.cnki.com.cn/Article/CJFDTOTAL-HBGD200701019.htm|刘丹,吴星|06265568,11497812|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b11497812%3b&scholarName=%e5%88%98%e4%b8%b9|河北广播电视大学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HBGD|300|3 +240604|纳米集成光路中的光源、光波导和光增强|http://www.cnki.com.cn/Article/CJFDTOTAL-WLXB200801059.htm|刘丹,马仁敏,王菲菲,张增星,张振生,张学进,王笑,白永强,朱星,戴伦,章蓓|06265568,13977307,13979028,13979029,06278155,06276651,10509107,06238757,06249001,06272474|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b13977307%3b13979028%3b13979029%3b06278155%3b06276651%3b10509107%3b06238757%3b06249001%3b06272474%3b&scholarName=%e5%88%98%e4%b8%b9|物理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WLXB|689|4 +240604|新型低功耗QSBDI红外读出电路设计|http://www.cnki.com.cn/Article/CJFDTOTAL-BJDZ200705015.htm|刘丹,鲁文高,陈中建,吉利久,赵宝瑛|06240027,06256833,06265568,06255048,06264991|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06240027%3b06256833%3b06265568%3b06255048%3b06264991%3b&scholarName=%e5%88%98%e4%b8%b9|北京大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJDZ|135|0 +240604|合欢皮总皂苷抗肿瘤作用靶点鉴定与分子机制解析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGZY201719005.htm|钱薏,韩清华,刘丹,屠鹏飞,曾克武,梁鸿|31261488,37900781,06265568,06262861,11647779,06245439|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=31261488%3b37900781%3b06265568%3b06262861%3b11647779%3b06245439%3b&scholarName=%e9%92%b1%e8%96%8f|中国中药杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGZY|254|1 +240604|EBV抗体与EBV DNA水平的影响因素及其相关性分析|http://www.cnki.com.cn/Article/CJFDTOTAL-LCGD201505044.htm|陆海英,魏秀琴,徐小元,于岩岩,吴赤红,刘丹|06281887,32885833,05977538,06274976,06282243,21323260|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06281887%3b32885833%3b05977538%3b06274976%3b06282243%3b21323260%3b&scholarName=%e9%99%86%e6%b5%b7%e8%8b%b1|临床肝胆病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCGD|196|11 +240604|大规模IR ROIC中列读出级的低功耗设计|http://www.cnki.com.cn/Article/CJFDTOTAL-HWAI200707002.htm|刘丹,鲁文高,陈中建,韩临,赵宝瑛,吉利久|06255048,06265568,06240027,06264991,06256833,11220999|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06255048%3b06265568%3b06240027%3b06264991%3b06256833%3b11220999%3b&scholarName=%e5%88%98%e4%b8%b9|红外|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HWAI|100|0 +240604|近场光学显微技术的进展及其应用|http://www.cnki.com.cn/Article/CJFDTOTAL-DZXV200801017.htm|方哲宇,刘丹,王笑,黄姗,朱星|14263706,06265568,10509107,14263710,06266773|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14263706%3b06265568%3b10509107%3b14263710%3b06266773%3b&scholarName=%e6%96%b9%e5%93%b2%e5%ae%87|电子显微学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DZXV|1464|4 +240604|阻塞性睡眠呼吸暂停低通气综合征与心脏性猝死|http://www.cnki.com.cn/Article/CJFDTOTAL-XIXG200906038.htm|刘丹,张海澄|22563098,06292866|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22563098%3b06292866%3b&scholarName=%e5%88%98%e4%b8%b9|中国心血管杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XIXG|67|2 +240604|新型低功耗320×288 IR ROIC 中列读出级的设计|http://www.cnki.com.cn/Article/CJFDTOTAL-BDXP200602006.htm|刘丹,鲁文高,陈中建,吉利久,赵宝瑛|06265568,06255048,06240027,06256833,06264991|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b06255048%3b06240027%3b06256833%3b06264991%3b&scholarName=%e5%88%98%e4%b8%b9|北京大学学报(自然科学版)网络版(预印本)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BDXP|194|0 +240604|老年冠心病患者摄氧效率斜率与左室收缩与舒张功能的关系|http://www.cnki.com.cn/Article/CJFDTOTAL-YDYX201802005.htm|徐顺霖,汪宇鹏,姚思华,刘丹,赵威,冯新恒,高炜|11186519,22147227,37894079,31804784,11009946,06273778,06273783|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11186519%3b22147227%3b37894079%3b31804784%3b11009946%3b06273778%3b06273783%3b&scholarName=%e5%be%90%e9%a1%ba%e9%9c%96|中国运动医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YDYX|68|1 +240604|电视胸腔镜手术在胸外科疾病中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZWWK200205013.htm|梁正,刘丹丹,沈祯云,闫天生,崔睿,吴长青,周凤彩|06279790,06273758,06280494,06272873,06280362,06273883,06267411|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06279790%3b06273758%3b06280494%3b06272873%3b06280362%3b06273883%3b06267411%3b&scholarName=%e6%a2%81%e6%ad%a3|中国微创外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZWWK|80|33 +240604|客户交易结算资金独立存管及对投资者的保护|http://www.cnki.com.cn/Article/CJFDTOTAL-JRFY200400001.htm|廖凡,刘丹|16315268,06258571|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=16315268%3b06258571%3b&scholarName=%e5%bb%96%e5%87%a1|金融法苑|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JRFY|152|4 +240604|胸腔镜纵隔肿瘤的诊断和治疗|http://www.cnki.com.cn/Article/CJFDTOTAL-ZWWK200303015.htm|梁正,刘丹丹,沈祯云,崔睿,闫天生,王京弟,王可毅,周枫|06272873,06273883,06279790,06273758,06280214,06280464,06267411,06272970|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06272873%3b06273883%3b06279790%3b06273758%3b06280214%3b06280464%3b06267411%3b06272970%3b&scholarName=%e6%a2%81%e6%ad%a3|中国微创外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZWWK|141|15 +240604|ASCO/NCCN免疫治疗毒性管理指南解读|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLZD201802013.htm|彭智,袁家佳,王正航,刘丹,王雅坤,姬智,张静,张小田,沈琳|32030701,32848942,40114838,33442966,40114839,40114840,38530833,25159957,20546071|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32030701%3b32848942%3b40114838%3b33442966%3b40114839%3b40114840%3b38530833%3b25159957%3b20546071%3b&scholarName=%e5%bd%ad%e6%99%ba|肿瘤综合治疗电子杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLZD|80|0 +240604|面向SoC系统芯片中跨时钟域设计的模型检验方法|http://www.cnki.com.cn/Article/CJFDTOTAL-DZXU200805009.htm|冯毅,易江芳,刘丹,佟冬,程旭|15624708,11305585,06265568,06262842,06240072|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15624708%3b11305585%3b06265568%3b06262842%3b06240072%3b&scholarName=%e5%86%af%e6%af%85|电子学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DZXU|291|13 +240604|数据管理技术及其工具|http://www.cnki.com.cn/Article/CJFDTOTAL-JYWL2014Z1050.htm|刘丹|06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b&scholarName=%e5%88%98%e4%b8%b9|中国教育网络|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JYWL|48|1 +240604|近场光学显微法研究CdS及CdS_xSe_(1-x)一维纳米结构光学传输特性|http://www.cnki.com.cn/Article/CJFDTOTAL-JGXK200811011.htm|王笑,刘丹,潘安练,方哲宇,黄珊,朱星|10509107,06265568,17468594,14263706,21631596,06266773,21631597|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10509107%3b06265568%3b17468594%3b14263706%3b21631596%3b06266773%3b21631597%3b&scholarName=%e7%8e%8b%e7%ac%91|中国科学(G辑:物理学 力学 天文学)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JGXK|177|1 +240604|一种提供高效带宽分配和低延迟的片上通信仲裁方法(英文)|http://www.cnki.com.cn/Article/CJFDTOTAL-BJDZ200901006.htm|陆俊林,刘丹,佟冬,程旭|11265503,06265568,06262842,06240072|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11265503%3b06265568%3b06262842%3b06240072%3b&scholarName=%e9%99%86%e4%bf%8a%e6%9e%97|北京大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJDZ|124|3 +240604|Nd:YAG激光辅助根管内消毒的灭菌效果评价|http://www.cnki.com.cn/Article/CJFDTOTAL-BYDB201405032.htm|黎远皋,王霄,谢克贤,刘丹,王小林,肖秀美|06267368,06280479,25343483,31804784,06280481,17703588|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06267368%3b06280479%3b25343483%3b31804784%3b06280481%3b17703588%3b&scholarName=%e9%bb%8e%e8%bf%9c%e7%9a%8b|北京大学学报(医学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BYDB|204|9 +240604|Nd:YAG激光根管内照射时牙根表面温度的变化|http://www.cnki.com.cn/Article/CJFDTOTAL-HXKQ201405019.htm|黎远皋,王霄,谢克贤,刘丹|06267368,06280479,25343483,31804784|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06267368%3b06280479%3b25343483%3b31804784%3b&scholarName=%e9%bb%8e%e8%bf%9c%e7%9a%8b|华西口腔医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HXKQ|127|9 +240604|不孕症患者行门诊不麻醉宫腔镜检查疼痛影响因素分析|http://www.cnki.com.cn/Article/CJFDTOTAL-GWJS201801009.htm|刘金莲,赵佳,杜晓果,刘丹,张萌,宋东红|25418849,38516192,27035712,31804784,31720112,10816526|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25418849%3b38516192%3b27035712%3b31804784%3b31720112%3b10816526%3b&scholarName=%e5%88%98%e9%87%91%e8%8e%b2|国际生殖健康/计划生育杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GWJS|64|0 +240604|鼻型自然杀伤/T细胞淋巴瘤病人肿瘤组织CD44与血管内皮生长因子的表达及意义|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHYX200113003.htm|李挺,刘丹丹,张发顺,尹洪芳,张莹,赵恭华|21546475,06428609,06431208,06273478,17432089,21606032|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21546475%3b06428609%3b06431208%3b06273478%3b17432089%3b21606032%3b&scholarName=%e6%9d%8e%e6%8c%ba|中华医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHYX|111|6 +240604|颈椎前路手术并发食道瘘的诊断与治疗|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHWK200421010.htm|王少波,王圣林,马庆军,刘丹丹,张吉发,张学利|23067696,08925783,05976778,06280225,06273988,06273883|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23067696%3b08925783%3b05976778%3b06280225%3b06273988%3b06273883%3b&scholarName=%e7%8e%8b%e5%b0%91%e6%b3%a2|中华外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHWK|352|20 +240604|腋下小切口与电视胸腔镜手术治疗自发性气胸疗效及费用比较|http://www.cnki.com.cn/Article/CJFDTOTAL-ZWWK200102011.htm|沈祯云,刘丹丹,梁正,崔睿,闫天生|06273883,06272873,06273758,06279790,06267411|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06273883%3b06272873%3b06273758%3b06279790%3b06267411%3b&scholarName=%e6%b2%88%e7%a5%af%e4%ba%91|中国微创外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZWWK|81|41 +240604|近场光学显微镜研究SdS_(0.65)Se_(0.35)纳米带空间分辨光致荧光谱|http://www.cnki.com.cn/Article/CJFDTOTAL-WLXB200711034.htm|王笑,潘安练,刘丹,白永强,张朝晖,邹炳锁,朱星|17468594,06265568,10509107,06264071,10509885,06238757|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17468594%3b06265568%3b10509107%3b06264071%3b10509885%3b06238757%3b&scholarName=%e7%8e%8b%e7%ac%91|物理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WLXB|247|5 +240604|胸壁肿瘤切除与重建方法探讨|http://www.cnki.com.cn/Article/CJFDTOTAL-XDSS201002018.htm|沈祯云,刘丹丹,梁正,宋金涛,王通,王京弟,王可毅,闫天生|06279790,06273883,06267411,10548267,17354714,06280214,06280464,06272873|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06279790%3b06273883%3b06267411%3b10548267%3b17354714%3b06280214%3b06280464%3b06272873%3b&scholarName=%e6%b2%88%e7%a5%af%e4%ba%91|中国现代手术学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDSS|141|5 +240604|ESMO免疫治疗的毒性管理指南解读|http://www.cnki.com.cn/Article/CJFDTOTAL-ZLZD201801005.htm|彭智,王正航,袁家佳,刘丹,王雅坤,姬智,张静,王晰程,龚继芳,沈琳|32030701,40114838,32848942,33442966,40114839,40114840,38530833,27720936,30562254,20546071|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32030701%3b40114838%3b32848942%3b33442966%3b40114839%3b40114840%3b38530833%3b27720936%3b30562254%3b20546071%3b&scholarName=%e5%bd%ad%e6%99%ba|肿瘤综合治疗电子杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZLZD|58|1 +240604|聚酰胺衍生物的合成研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SXSZ200601015.htm|李钦玲,刘丹|06265568,06267466|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b06267466%3b&scholarName=%e6%9d%8e%e9%92%a6%e7%8e%b2|陕西师范大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SXSZ|238|2 +240604|TROPHY硬型宫腔镜在不孕症患者门诊检查治疗中的应用研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SFCZ201705026.htm|廖越,杜晓果,刘丹,康卉娴,吴章鑫,马彩虹|37204052,37204053,27035712,31804784,37123806,35053765,06280139|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37204052%3b37204053%3b27035712%3b31804784%3b37123806%3b35053765%3b06280139%3b&scholarName=%e5%bb%96%e8%b6%8a|实用妇产科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SFCZ|42|3 +240604|压力蒸汽灭菌生物监测与化学批量放行监测比较研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GRKZ200804021.htm|王继梅,刘丹,吕晓霞,刘玉珍|17436247,17436389,17436336,06286105|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17436247%3b17436389%3b17436336%3b06286105%3b&scholarName=%e7%8e%8b%e7%bb%a7%e6%a2%85|中国感染控制杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GRKZ|74|13 +240604|贲门癌手术切缘癌残留相关因素分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGZL200720011.htm|沈祯云,闫天生,刘丹丹,梁正,王可毅,周枫,宋金涛|10548267,06273883,06272873,06272970,06279790,06280464,06267411|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10548267%3b06273883%3b06272873%3b06272970%3b06279790%3b06280464%3b06267411%3b&scholarName=%e6%b2%88%e7%a5%af%e4%ba%91|中国肿瘤临床|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGZL|136|14 +240604|应用直线型缝合器行食管胃侧侧吻合术|http://www.cnki.com.cn/Article/CJFDTOTAL-XDSS200906013.htm|沈祯云,王可毅,宋金涛,王京弟,王通,刘丹丹,梁正,闫天生|06279790,06280464,10548267,06280214,17354714,06273883,06267411,06272873|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06279790%3b06280464%3b10548267%3b06280214%3b17354714%3b06273883%3b06267411%3b06272873%3b&scholarName=%e6%b2%88%e7%a5%af%e4%ba%91|中国现代手术学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDSS|112|14 +240604|北京地区干扰素联合利巴韦林经治与未经治慢性丙型肝炎患者直接抗病毒药物的天然耐药突变分析|http://www.cnki.com.cn/Article/CJFDTOTAL-LCGD201604032.htm|张玉,曹颖,张仁雯,张霞霞,陆海英,吴赤红,霍娜,于敏,刘丹,徐小元|33824270,32358965,31167774,33560177,06281887,06282243,21274655,17258037,21323260,21402658|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33824270%3b32358965%3b31167774%3b33560177%3b06281887%3b06282243%3b21274655%3b17258037%3b21323260%3b21402658%3b&scholarName=%e5%bc%a0%e7%8e%89|临床肝胆病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCGD|52|2 +240604|双向凝胶电泳-质谱技术行卵巢癌血浆标志物分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGSF200901016.htm|王静,张小为,袁杨,彭嘉柔,杨彬,刘丹,邹霞娟,娄雅欣,钟丽君,郭红燕,熊光武,韩劲松,张璐芳,梁华茂|06280215,06272938,10528543,06260793,10734273,06265568,06273395,06269384,06266303,06279587,05972747,06267323,05981393,06280103|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06280215%3b06272938%3b10528543%3b06260793%3b10734273%3b06265568%3b06273395%3b06269384%3b06266303%3b06279587%3b05972747%3b06267323%3b05981393%3b06280103%3b&scholarName=%e7%8e%8b%e9%9d%99|中国实用妇科与产科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGSF|326|5 +240604|薪酬委员会特征与行业薪酬基准——基于中国上市公司的经验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-KJZY201508011.htm|江伟,李雯,刘丹|29524741,10689458,24937641,07756700|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29524741%3b10689458%3b24937641%3b07756700%3b&scholarName=%e6%b1%9f%e4%bc%9f|会计之友|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJZY|110|1 +240604|中文版器官移植患者症状发生和症状困扰量表的信度及效度检验|http://www.cnki.com.cn/Article/CJFDTOTAL-GLHL201309011.htm|金三丽,谢双怡,路潜,庞冬,杨萍,刘丹|06256999,21411969,06255084,06256447,06263110,21323260|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06256999%3b21411969%3b06255084%3b06256447%3b06263110%3b21323260%3b&scholarName=%e9%87%91%e4%b8%89%e4%b8%bd|中国护理管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GLHL|136|3 +240604|从循证医学到临床实践:心脏再同步治疗心力衰竭的四个热点问题|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGXZ200904002.htm|张海澄,刘丹|06292866,22563098|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06292866%3b22563098%3b&scholarName=%e5%bc%a0%e6%b5%b7%e6%be%84|中国心脏起搏与心电生理杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGXZ|106|3 +240604|ERP思想在高校图书馆的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGXN201205024.htm|范子衿,刘丹|27514444,06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27514444%3b06265568%3b&scholarName=%e8%8c%83%e5%ad%90%e8%a1%bf|中国信息界|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGXN|104|2 +240604|表面不同修饰的两种多壁碳纳米管引起RAW264.7细胞蛋白质差异表达|http://www.cnki.com.cn/Article/CJFDTOTAL-BYDB201003024.htm|沈臻霖,聂海瑜,王海芳,杨彬,钟丽君,邹霞娟,娄雅欣,刘丹,郭健,贾光|24515649,23387739,23387737,10734273,06266303,06273395,06269384,06265568,06243070,06266569|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24515649%3b23387739%3b23387737%3b10734273%3b06266303%3b06273395%3b06269384%3b06265568%3b06243070%3b06266569%3b&scholarName=%e6%b2%88%e8%87%bb%e9%9c%96|北京大学学报(医学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BYDB|193|3 +240604|HBsAg及其与小鼠白介素-18融合蛋白表达质粒的构建和DNA免疫|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHCR200102004.htm|柯亨宁,斯崇文,成军,于敏,刘丹|21224429,21519804,17258037,05966548,21323260|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21224429%3b21519804%3b17258037%3b05966548%3b21323260%3b&scholarName=%e6%9f%af%e4%ba%a8%e5%ae%81|中华传染病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHCR|71|7 +240604|胸腔镜术后复发性气胸的再次胸腔镜手术治疗|http://www.cnki.com.cn/Article/CJFDTOTAL-ZWWK201308006.htm|王通,闫天生,宋金涛,王可毅,王京弟,刘丹丹,梁正,贺未,白洁|17354714,06272873,10548267,06280464,06280214,06273883,06267411,28171259,29617151|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17354714%3b06272873%3b10548267%3b06280464%3b06280214%3b06273883%3b06267411%3b28171259%3b29617151%3b&scholarName=%e7%8e%8b%e9%80%9a|中国微创外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZWWK|86|6 +240604|胃腺癌伴淋巴结转移的蛋白质组学分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZWWK201204024.htm|陈茉,丁士刚,刘琳娜,张静,娄雅欣,杨彬,刘丹|25827509,06279557,25148255,06274535,06269384,10734273,06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25827509%3b06279557%3b25148255%3b06274535%3b06269384%3b10734273%3b06265568%3b&scholarName=%e9%99%88%e8%8c%89|中国微创外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZWWK|85|4 +240604|胸段食管破裂的早期外科治疗|http://www.cnki.com.cn/Article/CJFDTOTAL-ZXDY201129019.htm|沈祯云,刘丹丹,梁正,闫天生|06279790,06273883,06267411,06272873|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06279790%3b06273883%3b06267411%3b06272873%3b&scholarName=%e6%b2%88%e7%a5%af%e4%ba%91|中国现代医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZXDY|63|2 +240604|Nd-YAG激光照射牙冠颈部髓腔内温度变化的实验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SYKQ201601028.htm|黎远皋,王霄,谢克贤,刘丹|06267368,06280479,25343483,31804784|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06267368%3b06280479%3b25343483%3b31804784%3b&scholarName=%e9%bb%8e%e8%bf%9c%e7%9a%8b|实用口腔医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SYKQ|76|2 +240604|既往有偿献血HIV-1感染者中合并感染的HCV对telaprevir和boceprevir天然耐药分析|http://www.cnki.com.cn/Article/CJFDTOTAL-CRBX201403009.htm|鲍毅,田地,郑颖颖,席宏丽,刘丹,于敏,徐小元|26740663,17247357,23817913,06274141,21323260,17258037,05977538|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26740663%3b17247357%3b23817913%3b06274141%3b21323260%3b17258037%3b05977538%3b&scholarName=%e9%b2%8d%e6%af%85|传染病信息|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CRBX|68|2 +240604|高龄肺癌外科治疗及围术期处理95例|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGZL200818006.htm|王京弟,闫天生,刘丹丹,梁正,沈祯云,王可毅,宋金涛|06280214,06272873,06273883,06267411,06279790,06280464,10548267|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06280214%3b06272873%3b06273883%3b06267411%3b06279790%3b06280464%3b10548267%3b&scholarName=%e7%8e%8b%e4%ba%ac%e5%bc%9f|中国肿瘤临床|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGZL|107|5 +240604|N-甲基吡咯类聚酰胺的合成及其与DNA的相互作用|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH200512016.htm|李钦玲,周江,刘丹,袁谷|06263970,06265568,06273155|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06263970%3b06265568%3b06273155%3b&scholarName=%e6%9d%8e%e9%92%a6%e7%8e%b2|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|229|2 +240604|高龄患者电视胸腔镜手术及围术期处理|http://www.cnki.com.cn/Article/CJFDTOTAL-ZWWK200903027.htm|王京弟,闫天生,刘丹丹,梁正,沈祯云,王可毅,宋金涛,王通|06280214,06272873,06273883,06267411,06279790,06280464,10548267,17354714|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06280214%3b06272873%3b06273883%3b06267411%3b06279790%3b06280464%3b10548267%3b17354714%3b&scholarName=%e7%8e%8b%e4%ba%ac%e5%bc%9f|中国微创外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZWWK|68|5 +240604|经胸腹联合小切口手术治疗贲门癌|http://www.cnki.com.cn/Article/CJFDTOTAL-ZWWK200801028.htm|王可毅,闫天生,崔睿,王京弟,沈祯云,刘丹丹|06280464,06273758,06279790,06272873,06280214,06273883|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06280464%3b06273758%3b06279790%3b06272873%3b06280214%3b06273883%3b&scholarName=%e7%8e%8b%e5%8f%af%e6%af%85|中国微创外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZWWK|113|6 +240604|北京大学期刊网的建设与推广|http://www.cnki.com.cn/Article/CJFDTOTAL-DXTS201901006.htm|周义刚,刘丹,聂华,张元俊,吴越,张乃帅|28876993,06265568,06268391,39789274,29576155,30942079|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28876993%3b06265568%3b06268391%3b39789274%3b29576155%3b30942079%3b&scholarName=%e5%91%a8%e4%b9%89%e5%88%9a|大学图书馆学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DXTS|5|0 +240604|基于Drupal构建北京大学图书馆新门户|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201408012.htm|周义刚,刘丹,韦成府,吴越,张乃帅|28876993,06265568,24914970,29576155,30942079|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28876993%3b06265568%3b24914970%3b29576155%3b30942079%3b&scholarName=%e5%91%a8%e4%b9%89%e5%88%9a|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|43|1 +240604|含对溴苯基的新型DNA切割剂的合成及活性研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH200308021.htm|李丽华,刘丹,汤菲力,袁谷|06257984,06262201,06263970,06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06257984%3b06262201%3b06263970%3b06265568%3b&scholarName=%e6%9d%8e%e4%b8%bd%e5%8d%8e|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|84|2 +240604|不同剂型苦参素体外抗2.2.15细胞乙型肝炎病毒的作用及其作用机理的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZZXJ2002S1072.htm|陆海英,王勤环,曾争,于敏,席宏丽,张乃临,公维波,张国庆,刘丹|05974214,21323260,06281887,06283362,17258037,21608737,21541403,06274141,10485383|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05974214%3b21323260%3b06281887%3b06283362%3b17258037%3b21608737%3b21541403%3b06274141%3b10485383%3b&scholarName=%e9%99%86%e6%b5%b7%e8%8b%b1|中国中西医结合杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZZXJ|60|7 +240604|人干扰素-α基因转移、表达及其抗乙型肝炎病毒的实验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHCR200004000.htm|曾争,斯崇文,刘芳华,于敏,席宏丽,刘丹,张国庆|21316687,05966548,06283362,21323260,17258037,06274141,21541403|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21316687%3b05966548%3b06283362%3b21323260%3b17258037%3b06274141%3b21541403%3b&scholarName=%e6%9b%be%e4%ba%89|中华传染病杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHCR|59|12 +240604|中老年自发性气胸2种手术方法的比较|http://www.cnki.com.cn/Article/CJFDTOTAL-ZWWK200802017.htm|王可毅,闫天生,刘丹丹,沈祯云,梁正,崔睿,王京弟|06280464,06272873,06273883,06279790,06267411,06273758,06280214|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06280464%3b06272873%3b06273883%3b06279790%3b06267411%3b06273758%3b06280214%3b&scholarName=%e7%8e%8b%e5%8f%af%e6%af%85|中国微创外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZWWK|67|4 +240604|宝贝最爱的玩具|http://www.cnki.com.cn/Article/CJFDTOTAL-FMBD200804059.htm|刘丹|06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b&scholarName=%e5%88%98%e4%b8%b9|父母必读|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FMBD|34|0 +240604|滑行的乐趣|http://www.cnki.com.cn/Article/CJFDTOTAL-FMBD201004055.htm|刘丹|06265568,08230534|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b08230534%3b&scholarName=%e5%88%98%e4%b8%b9|父母必读|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FMBD|12|0 +240604|以DNA修复蛋白AGT为靶向的PET显像剂前体O~6-苄基鸟嘌呤类似物的体外初步生物评价(英文)|http://www.cnki.com.cn/Article/CJFDTOTAL-XYGZ200801014.htm|贺巍巍,刘昭飞,刘丹,贾兵,王凡,崔育新|15520405,14358814,06265568,06263419,06259292|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15520405%3b14358814%3b06265568%3b06263419%3b06259292%3b&scholarName=%e8%b4%ba%e5%b7%8d%e5%b7%8d|Journal of Chinese Pharmaceutical Sciences|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XYGZ|107|0 +240604|消毒液风波|http://www.cnki.com.cn/Article/CJFDTOTAL-FMBD200804060.htm|刘丹|06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b&scholarName=%e5%88%98%e4%b8%b9|父母必读|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FMBD|15|0 +240604|被冷落的玻璃球|http://www.cnki.com.cn/Article/CJFDTOTAL-FMBD200810058.htm|刘丹|06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b&scholarName=%e5%88%98%e4%b8%b9|父母必读|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FMBD|15|0 +240604|“系统”内的实践和“系统”外的思考|http://www.cnki.com.cn/Article/CJFDTOTAL-ZXWS200006019.htm|唐登华,刘丹|06265568,06271564|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b06271564%3b&scholarName=%e5%94%90%e7%99%bb%e5%8d%8e|中国心理卫生杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZXWS|137|1 +240604|就是爱你,看你怎么办!|http://www.cnki.com.cn/Article/CJFDTOTAL-FMBD200807055.htm|刘丹|06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b&scholarName=%e5%88%98%e4%b8%b9|父母必读|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FMBD|12|0 +240604|小鸡的祭奠日|http://www.cnki.com.cn/Article/CJFDTOTAL-FMBD200807054.htm|刘丹|06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b&scholarName=%e5%88%98%e4%b8%b9|父母必读|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FMBD|12|0 +240604|圈养条件下东北虎的个性差异|http://www.cnki.com.cn/Article/CJFDTOTAL-KXZG200506008.htm|李潜,苏彦捷,刘丹|06264393,10735642,06262045|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06264393%3b10735642%3b06262045%3b&scholarName=%e6%9d%8e%e6%bd%9c|科学中国人|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KXZG|157|5 +240604|画眉|http://www.cnki.com.cn/Article/CJFDTOTAL-FMBD200810057.htm|刘丹|06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b&scholarName=%e5%88%98%e4%b8%b9|父母必读|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FMBD|9|0 +240604|Angiopoietin—1基因修饰的骨髓间充质干细胞(MSC)的蛋白质组学方法分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TEST2007S1021.htm|钟丽君,孙丽杰,杨彬,刘丹,娄雅欣,彭嘉柔,陈凤荣,崔鸣|06266303,06280187,10734273,06265568,06269384,06260793,06279535,06279616|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06266303%3b06280187%3b10734273%3b06265568%3b06269384%3b06260793%3b06279535%3b06279616%3b&scholarName=%e9%92%9f%e4%b8%bd%e5%90%9b|分析测试学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TEST|102|0 +240604|它莫西芬诱导乳腺癌MCF-7细胞自噬的比较蛋白质组学研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TEST2007S1032.htm|娄雅欣,钟丽君,杨彬,陈丽娜,刘丹,邹霞娟,彭嘉柔|06266303,10734273,10605329,06265568,06273395,06260793|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06266303%3b10734273%3b10605329%3b06265568%3b06273395%3b06260793%3b&scholarName=%e5%a8%84%e9%9b%85%e6%ac%a3|分析测试学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TEST|211|0 +240604|新一代学术交流生态系统的研究与构建——以北京大学为例|http://www.cnki.com.cn/Article/CJFDTOTAL-TSQB201822005.htm|崔海媛,罗鹏程,聂华,韦成府,刘丹,吴越,周义刚,张元俊|06254415,34622863,06268391,24914970,06265568,29576155,28876993,39789274|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06254415%3b34622863%3b06268391%3b24914970%3b06265568%3b29576155%3b28876993%3b39789274%3b&scholarName=%e5%b4%94%e6%b5%b7%e5%aa%9b|图书情报工作|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSQB|0|0 +240604|胸腔镜下胸顶壁层胸膜切除术治疗自发性气胸|http://www.cnki.com.cn/Article/CJFDTOTAL-XDSS200903011.htm|沈祯云,宋金涛,王京弟,王通,王可毅,曹文功,游选清,闫天生,梁正,刘丹丹|06279790,10548267,06280214,17354714,06280464,23157551,23157552,06272873,06267411,06273883|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06279790%3b10548267%3b06280214%3b17354714%3b06280464%3b23157551%3b23157552%3b06272873%3b06267411%3b06273883%3b&scholarName=%e6%b2%88%e7%a5%af%e4%ba%91|中国现代手术学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDSS|65|2 +240604|上叶肺癌术后支气管切缘癌残留相关因素分析|http://www.cnki.com.cn/Article/CJFDTOTAL-SYAZ200401025.htm|沈祯云,闫天生,刘丹丹,梁正,崔睿,王京弟|06279790,06280214,06273758,06272873,06273883,06267411|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06279790%3b06280214%3b06273758%3b06272873%3b06273883%3b06267411%3b&scholarName=%e6%b2%88%e7%a5%af%e4%ba%91|实用癌症杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SYAZ|54|3 +240604|电视胸腔镜胸腺切除9例报告|http://www.cnki.com.cn/Article/CJFDTOTAL-ZWWK200205005.htm|沈祯云,梁正,刘丹丹,崔睿,王可毅,闫天生|06280464,06267411,06272873,06273883,06279790,06273758|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06280464%3b06267411%3b06272873%3b06273883%3b06279790%3b06273758%3b&scholarName=%e6%b2%88%e7%a5%af%e4%ba%91|中国微创外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZWWK|59|6 +240604|我为什么怕见人|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGQN199512024.htm|刘丹|06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b&scholarName=%e5%88%98%e4%b8%b9|中国青年|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGQN|0|0 +240604|改良电休克治疗对抑郁症脑结构影响的磁共振成像研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZXWS201604017.htm|刘丹,李鹏,蒙华庆,曾金坤,史丹丹,陆林,罗庆华|23617220,34713046,10501734,34270483,33366539,31576376,10054856|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23617220%3b34713046%3b10501734%3b34270483%3b33366539%3b31576376%3b10054856%3b&scholarName=%e5%88%98%e4%b8%b9|中国心理卫生杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZXWS|167|5 +240604|睡眠呼吸暂停患者心律失常的发生机制|http://www.cnki.com.cn/Article/CJFDTOTAL-XCYS201045023.htm|张海澄,刘丹|05971663,22563098|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05971663%3b22563098%3b&scholarName=%e5%bc%a0%e6%b5%b7%e6%be%84|中国社区医师|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XCYS|71|0 +240604|宫、腹腔镜联合诊治女性不孕症145例临床分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZWWK200908021.htm|刘丹丹,马彩虹,乔杰|23263255,10860457,06280139,06280164|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23263255%3b10860457%3b06280139%3b06280164%3b&scholarName=%e5%88%98%e4%b8%b9%e4%b8%b9|中国微创外科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZWWK|241|35 +240604|不同盐的左氧氟沙星体外抗乙型肝炎病毒的作用及机理的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-BJYX200104017.htm|陆海英,王勤环,曾争,傅希贤,于敏,席宏丽,张乃临,公维国,张国庆,刘丹|06281887,21249780,21608737,21541403,00084899,05974214,21323260,17258037,06283362,06274141|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06281887%3b21249780%3b21608737%3b21541403%3b00084899%3b05974214%3b21323260%3b17258037%3b06283362%3b06274141%3b&scholarName=%e9%99%86%e6%b5%b7%e8%8b%b1|北京医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJYX|35|0 +240604|危重患者术后谵妄对远期生存率的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-CQYX201509026.htm|刘丹,王东信|32707483,17599332|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32707483%3b17599332%3b&scholarName=%e5%88%98%e4%b8%b9|重庆医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CQYX|202|11 +240604|国产利培酮治疗精神分裂症的疗效及安全性研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHMA200701008.htm|周沫,王向群,杨甫德,刘丹,徐红平,吕永良,林崇光,王怀海,谭庆荣|06279160,06270130,06332136,15614618,15616565,22147775,10127256,22147776,21019131|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06279160%3b06270130%3b06332136%3b15614618%3b15616565%3b22147775%3b10127256%3b22147776%3b21019131%3b&scholarName=%e5%91%a8%e6%b2%ab|中华精神科杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHMA|20|3 +240604|高校辅导员心理辅导工作督导需求调查|http://www.cnki.com.cn/Article/CJFDTOTAL-BJDE2018Z1042.htm|刘丹,刘海骅|08230534,06267806|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08230534%3b06267806%3b&scholarName=%e5%88%98%e4%b8%b9|北京教育(德育)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BJDE|39|0 +240604|1-磷酸鞘氨醇对雄性小鼠生殖毒性损害的拮抗作用|http://www.cnki.com.cn/Article/CJFDTOTAL-GYYB201605005.htm|刘丹薇,潘卫,徐国宾,杨国珍|35255557,35253697,28562756,35253447|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35255557%3b35253697%3b28562756%3b35253447%3b&scholarName=%e5%88%98%e4%b8%b9%e8%96%87|贵阳医学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GYYB|58|1 +240604|S1P致环磷酰胺染毒后雄性小鼠凋亡蛋白表达的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-GZYI201609007.htm|刘丹薇,潘卫,徐国宾,杨国珍|35255557,35253697,28562756,35253447|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35255557%3b35253697%3b28562756%3b35253447%3b&scholarName=%e5%88%98%e4%b8%b9%e8%96%87|贵州医药|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GZYI|43|1 +240604|超声造影指导下射频消融治疗肝癌的临床应用|http://www.cnki.com.cn/Article/CJFDTOTAL-AHYX201503007.htm|刘丹丹,张惠萍,汪向前,孙婷,尹毅,陶自坚,吴薇|32750767,06181599,32750768,32750769,06192183,06192464,22620801|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32750767%3b06181599%3b32750768%3b32750769%3b06192183%3b06192464%3b22620801%3b&scholarName=%e5%88%98%e4%b8%b9%e4%b8%b9|安徽医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/AHYX|68|3 +240604|商业银行“多维度风险管理”|http://www.cnki.com.cn/Article/CJFDTOTAL-JRYJ200706009.htm|王占峰,刘丹,何一峰|06265568,09156103,06243513|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b09156103%3b06243513%3b&scholarName=%e7%8e%8b%e5%8d%a0%e5%b3%b0|金融研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JRYJ|1812|30 +240604|经济结构转型背景下产业债筛选策略|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHQU201403013.htm|刘丹,王正昌|26374386,30932673|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26374386%3b30932673%3b&scholarName=%e5%88%98%e4%b8%b9|债券|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHQU|74|0 +240604|挖掘信用债在经济结构调整中的投资机会|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHQU201406014.htm|刘丹,肖成哲|26374386,31330851|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26374386%3b31330851%3b&scholarName=%e5%88%98%e4%b8%b9|债券|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHQU|61|0 +240604|支链化阳离子和甜菜碱表面活性剂对聚四氟乙烯表面润湿性的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-WLHX201504014.htm|元福卿,刘丹丹,郭兰磊,祝仰文,徐志成,黄建滨,张磊,张路|30795307,20731306,27115727,20530458,20363793,09569005,06262756,10543985,10351112|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30795307%3b20731306%3b27115727%3b20530458%3b20363793%3b09569005%3b06262756%3b10543985%3b10351112%3b&scholarName=%e5%85%83%e7%a6%8f%e5%8d%bf|物理化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WLHX|248|11 +240604|支链化甜菜碱和阳离子表面活性剂在聚甲基丙烯酸甲酯表面的吸附及其润湿性质|http://www.cnki.com.cn/Article/CJFDTOTAL-WLHX201605025.htm|吴伟,刘丹丹,徐志成,宫清涛,黄建滨,张磊,张路|20933577,27115727,09569005,09606975,06262756,10543985,10351112|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=20933577%3b27115727%3b09569005%3b09606975%3b06262756%3b10543985%3b10351112%3b&scholarName=%e5%90%b4%e4%bc%9f|物理化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WLHX|126|2 +240604|铜包覆多孔硅基材料p-Si@Cu(x)的制备与性能|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH201705020.htm|于志辉,刘丹丹,寇艳娜,夏定国|06299840,36498361,34255296,25018375|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06299840%3b36498361%3b34255296%3b25018375%3b&scholarName=%e4%ba%8e%e5%bf%97%e8%be%89|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|63|0 +240604|内蒙古地区流动人口糖尿病影响因素的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDYF201801045.htm|王瑞琪,杜茂林,梁丹艳,钱永刚,王培玉,刘丹,郑会秋,王学梅|34893187,28846797,34241197,08000351,06263673,36462552,34241196,30766201|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34893187%3b28846797%3b34241197%3b08000351%3b06263673%3b36462552%3b34241196%3b30766201%3b&scholarName=%e7%8e%8b%e7%91%9e%e7%90%aa|现代预防医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDYF|136|1 +240604|miRNA-93对结肠癌HT-29细胞株化疗敏感性的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-LCZL201809006.htm|苏超云,施奕君,刘丹,魏庆忠|28130681,40145038,06265568,28130682|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28130681%3b40145038%3b06265568%3b28130682%3b&scholarName=%e8%8b%8f%e8%b6%85%e4%ba%91|临床肿瘤学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LCZL|62|0 +240604|我国二、三级医院护士工作疲溃感状况的调查分析|http://www.cnki.com.cn/Article/CJFDTOTAL-HLXZ201224042.htm|肖保娟,刘可,尤黎明,张利峰,马莉,王磊,朱秀,刘丹,李小妹,李峥,陆敏敏,朱晓雯,郑晶|28498161,10070858,10482620,22168826,10113645,08750934,06279302,10156071,10178492,21682017,06702368,15737360,10074435|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28498161%3b10070858%3b10482620%3b22168826%3b10113645%3b08750934%3b06279302%3b10156071%3b10178492%3b21682017%3b06702368%3b15737360%3b10074435%3b&scholarName=%e8%82%96%e4%bf%9d%e5%a8%9f|护理学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HLXZ|312|20 +240604|基于微信提升护理专业实习生带教质量的探讨|http://www.cnki.com.cn/Article/CJFDTOTAL-JFYG201604027.htm|汤素琼,李彬,刘丹,艾媛,吉六舟,黄华明,张景宇,徐玉栋|21020483,20740251,20843619,35137592,20601571,28638671,28032964,28032965|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21020483%3b20740251%3b20843619%3b35137592%3b20601571%3b28638671%3b28032964%3b28032965%3b&scholarName=%e6%b1%a4%e7%b4%a0%e7%90%bc|解放军医院管理杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JFYG|294|5 +240604|发烧的好处|http://www.cnki.com.cn/Article/CJFDTOTAL-FMBD200912057.htm|刘丹|08230534,06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08230534%3b06265568%3b&scholarName=%e5%88%98%e4%b8%b9|父母必读|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FMBD|38|0 +240604|彩色多普勒超声显像检查在诊断新生儿肺透明膜病中的临床应用|http://www.cnki.com.cn/Article/CJFDTOTAL-YLSX201612017.htm|汤素琼,李彬,刘丹,胡芬,黄华明,张景宇,徐玉栋|21020483,20740251,20843619,28032962,28638671,28032964,28032965|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21020483%3b20740251%3b20843619%3b28032962%3b28638671%3b28032964%3b28032965%3b&scholarName=%e6%b1%a4%e7%b4%a0%e7%90%bc|中国医疗设备|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YLSX|71|4 +240604|基于溶液法的单壁碳纳米管手性分离|http://www.cnki.com.cn/Article/CJFDTOTAL-JBXK201504004.htm|顾健婷,邱松,刘丹,李红波,金赫华,李清文|32764069,33251270,30483376,06265568,24323489,24330056,24314633|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32764069%3b33251270%3b30483376%3b06265568%3b24323489%3b24330056%3b24314633%3b&scholarName=%e9%a1%be%e5%81%a5%e5%a9%b7|中国科学:化学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JBXK|273|0 +240604|次贷危机实证分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JRGJ201007015.htm|李伏安,刘丹|25079300,15257575,06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25079300%3b15257575%3b06265568%3b&scholarName=%e6%9d%8e%e4%bc%8f%e5%ae%89|国际金融|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JRGJ|167|1 +240604|微小空间碎片与原子氧协同效应研究|http://www.cnki.com.cn/Article/CJFDTOTAL-KJKB201104014.htm|李宏伟,蔡明辉,韩建伟,黄建国,李小银,于金祥,高著秀,刘丹秋|09602029,10701532,09602005,10350038,09602038,06263332,24010417,26227563|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09602029%3b10701532%3b09602005%3b10350038%3b09602038%3b06263332%3b24010417%3b26227563%3b&scholarName=%e6%9d%8e%e5%ae%8f%e4%bc%9f|空间科学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJKB|172|5 +240604|不同类型危重症评分的临床对比研究|http://www.cnki.com.cn/Article/CJFDTOTAL-LING201103020.htm|卢翠莲,张海澄,刘丹,安友仲,刘元生,楼槟城,郭继鸿|23025979,05971663,22563098,06291775,06292197,26305938,05967520|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23025979%3b05971663%3b22563098%3b06291775%3b06292197%3b26305938%3b05967520%3b&scholarName=%e5%8d%a2%e7%bf%a0%e8%8e%b2|临床心电学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/LING|271|5 +240604|父母最焦虑的场景解决分案|http://www.cnki.com.cn/Article/CJFDTOTAL-FMBD201710020.htm|本刊编辑部,柳佳,吴颖,崔玉涛,蒋竞雄,郝波,马扬,刘遂谦,张玉梅,云无心,刘丹,王争艳,张婍|37965935,10332012,33733930,25446410,06278127,40623673,35742754,23185498,08230534,08712123|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37965935%3b10332012%3b33733930%3b25446410%3b06278127%3b40623673%3b35742754%3b23185498%3b08230534%3b08712123%3b&scholarName=%e6%9c%ac%e5%88%8a%e7%bc%96%e8%be%91%e9%83%a8|父母必读|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FMBD|5|0 +240604|大肠癌患者术后系统化调查其肠道屏蔽功能的进展|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHPW201605028.htm|汤素琼,李彬,刘丹,胡芬,黄华明,张景宇,徐玉栋|21020483,20740251,20843619,28032962,28638671,28032964,28032965|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21020483%3b20740251%3b20843619%3b28032962%3b28638671%3b28032964%3b28032965%3b&scholarName=%e6%b1%a4%e7%b4%a0%e7%90%bc|中华普外科手术学杂志(电子版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHPW|22|0 +240604|多语言科技语料库建设研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201508010.htm|曾文,张均胜,徐红姣,李颖,刘敏,屈鹏,刘丹|24565044,26905238,24138338,22195868,11179543,28785320,06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24565044%3b26905238%3b24138338%3b22195868%3b11179543%3b28785320%3b06265568%3b&scholarName=%e6%9b%be%e6%96%87|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|76|0 +240604|微创经皮钢板固定技术在跟骨关节内骨折治疗中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-HNGY201503003.htm|张宏斌,焦翔,刘丹,曹立海,徐海林|27484691,17328742,29750247,07131339,06284992|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27484691%3b17328742%3b29750247%3b07131339%3b06284992%3b&scholarName=%e5%bc%a0%e5%ae%8f%e6%96%8c|华南国防医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HNGY|54|0 +240604|当我们焦虑宝宝吃的时候,我们究竟在焦虑什么?|http://www.cnki.com.cn/Article/CJFDTOTAL-FMBD201710021.htm|本刊编辑部,柳佳,吴颖,崔玉涛,蒋竞雄,郝波,马扬,刘遂谦,张玉梅,云无心,刘丹,王争艳,张婍|37965935,10332012,33733930,25446410,06278127,40623673,35742754,23185498,08230534,08712123|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37965935%3b10332012%3b33733930%3b25446410%3b06278127%3b40623673%3b35742754%3b23185498%3b08230534%3b08712123%3b&scholarName=%e6%9c%ac%e5%88%8a%e7%bc%96%e8%be%91%e9%83%a8|父母必读|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FMBD|3|0 +240604|宝宝吃,为何让我们如此焦虑?|http://www.cnki.com.cn/Article/CJFDTOTAL-FMBD201710019.htm|本刊编辑部,柳佳,吴颖,崔玉涛,蒋竞雄,郝波,马扬,刘遂谦,张玉梅,云无心,刘丹,王争艳,张婍|37965935,10332012,33733930,25446410,06278127,40623673,35742754,23185498,08230534,08712123|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37965935%3b10332012%3b33733930%3b25446410%3b06278127%3b40623673%3b35742754%3b23185498%3b08230534%3b08712123%3b&scholarName=%e6%9c%ac%e5%88%8a%e7%bc%96%e8%be%91%e9%83%a8|父母必读|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FMBD|2|0 +240604|生物反馈训练治疗慢性功能性便秘的护理|http://www.cnki.com.cn/Article/CJFDTOTAL-SXYI201209090.htm|李彬,汤素琼,刘丹,邱克,夏天慧,胡芬,黄华强,张景宇,徐玉栋|20740251,21020483,20843619,20533367,28032961,28032962,28032963,28032964,28032965|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=20740251%3b21020483%3b20843619%3b20533367%3b28032961%3b28032962%3b28032963%3b28032964%3b28032965%3b&scholarName=%e6%9d%8e%e5%bd%ac|山西医药杂志(下半月刊)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SXYI|47|2 +240604|小柴胡片抗乙型肝炎病毒的初步实验研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XJYY200102031.htm|倪勤,翟琦,余敏,席红丽,张国庆,刘丹,张耀新,张清民|21431133,20318178,21101323,09241503,10247723,20306701,20455719,01437235|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21431133%3b20318178%3b21101323%3b09241503%3b10247723%3b20306701%3b20455719%3b01437235%3b&scholarName=%e5%80%aa%e5%8b%a4|新疆医科大学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XJYY|54|4 +240604|食管胸上段癌手术胃网膜右动脉血管弓损伤行肋间动脉搭桥1例|http://www.cnki.com.cn/Article/CJFDTOTAL-GYYX200607108.htm|廖勇,闫天生,杨碧波,崔睿,刘丹丹|06272873,06280521,06273883,06876055,06273758|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06272873%3b06280521%3b06273883%3b06876055%3b06273758%3b&scholarName=%e5%bb%96%e5%8b%87|广西医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GYYX|31|2 +240604|构建安全高效的高校图书馆门户网站——以北京大学2018年图书馆门户网站改版为例|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGGC201810001067.htm|张元俊,吴越,刘丹|39789274,29576155,06265568|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=39789274%3b29576155%3b06265568%3b&scholarName=%e5%bc%a0%e5%85%83%e4%bf%8a|||78|0 +240604|苯并[a]芘促进阿尔兹海默症形成的作用与机制研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGDV201711002060.htm|刘丹,赵雨佳,张慧峰,黄焕焕,周辉|06265568,37122791,37122793,39395620,06278271|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b37122791%3b37122793%3b39395620%3b06278271%3b&scholarName=%e5%88%98%e4%b8%b9|||1|0 +240604|STAT4通过NKT细胞而非中性粒细胞作用于T细胞介导的肝脏损伤|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZHYX201406001091.htm|王艳,于敏,万华,刘丹,霍娜,尹彪,王贵强|17330574,17258037,21378559,21323260,21274655,21417142,06274074|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17330574%3b17258037%3b21378559%3b21323260%3b21274655%3b21417142%3b06274074%3b&scholarName=%e7%8e%8b%e8%89%b3|||41|0 +240604|从循证医学到临床实践:心脏再同步治疗心力衰竭的四个热点问题|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-XZQB201006001019.htm|张海澄,刘丹|06292866,22563098|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06292866%3b22563098%3b&scholarName=%e5%bc%a0%e6%b5%b7%e6%be%84|||37|0 +240604|营养干预与营养教育对人体健康的影响分析|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-EGYN200507001042.htm|施雪雁,刘丹,朱翠凤||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e6%96%bd%e9%9b%aa%e9%9b%81|||60|1 +240604|Nd:YAG激光辅助根管内消毒的灭菌效果评价|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-HZKQ201409001236.htm|黎远皋,王霄,谢克贤,刘丹|06267368,06280479,25343483,31804784|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06267368%3b06280479%3b25343483%3b31804784%3b&scholarName=%e9%bb%8e%e8%bf%9c%e7%9a%8b|||31|0 +240604|应用双向凝胶电泳-质谱技术探索卵巢癌的血浆标记物|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGYL200810001252.htm|王静,张小为,袁杨,彭嘉柔,杨彬,刘丹,邹霞娟,娄雅欣,钟丽君,郭红燕,熊光武,韩劲松,张璐芳,梁华茂|06272938,10528543,06260793,10734273,06265568,06273395,06269384,06266303,06279587,05972747,06267323,05981393,06280103|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06272938%3b10528543%3b06260793%3b10734273%3b06265568%3b06273395%3b06269384%3b06266303%3b06279587%3b05972747%3b06267323%3b05981393%3b06280103%3b&scholarName=%e7%8e%8b%e9%9d%99|||64|0 +240604|电喷雾质谱法研究N-甲基吡咯寡聚酰胺特异性识别HIV-1启动子DNA及碎裂机制|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZFCX201504001436.htm|袁谷,李卉卉,周江,刘丹,王军|06263970,11167622,06273155,06265568,06263051|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06263970%3b11167622%3b06273155%3b06265568%3b06263051%3b&scholarName=%e8%a2%81%e8%b0%b7|||12|0 +240604|用生物质谱研究PDCD5蛋白与DNA的相互作用|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=ZPXB200607001094&dbname=IPFD9914|邹霞娟,彭嘉柔,钟丽君,屡雅兴,刘丹,杨彬,王应,陈英玉|06260793,06266303,15299850,10734273,06273395,06265568,06270198,06248858|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06260793%3b06266303%3b15299850%3b10734273%3b06273395%3b06265568%3b06270198%3b06248858%3b&scholarName=%e9%82%b9%e9%9c%9e%e5%a8%9f|||50|0 +240604|圈养状态下东北虎个性的研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGDX200410001051.htm|李潜,苏彦捷,刘丹|06262045,10735642,06264393|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06262045%3b10735642%3b06264393%3b&scholarName=%e6%9d%8e%e6%bd%9c|||66|0 +240604|NS5A区天然耐药突变体对peg-IFN/RBV治疗的敏感性分析|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZHYX201509004187.htm|张玉,曹颖,张仁雯,张霞霞,李芳,陆海英,吴赤红,于敏,刘丹,徐小元|33824270,32358965,31167774,33560177,30385506,06281887,06282243,17258037,21323260,05977538|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33824270%3b32358965%3b31167774%3b33560177%3b30385506%3b06281887%3b06282243%3b17258037%3b21323260%3b05977538%3b&scholarName=%e5%bc%a0%e7%8e%89|||9|0 +240604|聚乙二醇干扰素治疗老年慢性丙型肝炎患者RVR和EVR发生率及不良反应分析|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-RDJS201110001158.htm|郑颖颖,范晓红,王力芬,于敏,刘丹,霍娜,田地,陆海英,吴赤红,徐小元,魏来|23817913,17442236,23793550,17258037,21323260,21274655,17247357,06281887,06282243,05977538,06292322|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23817913%3b17442236%3b23793550%3b17258037%3b21323260%3b21274655%3b17247357%3b06281887%3b06282243%3b05977538%3b06292322%3b&scholarName=%e9%83%91%e9%a2%96%e9%a2%96|||34|0 +240604|基于双分子协同效应的半导体性单壁碳管高效分离|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGHY201607048007.htm|刘丹,李盼,李清文,张锦|06265568,24330298,24314633,06264156|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b24330298%3b24314633%3b06264156%3b&scholarName=%e5%88%98%e4%b8%b9|||4|0 +240604|冷球蛋白血症对慢性丙型病毒性肝炎患者治疗的影响|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-RDJS201110001159.htm|范晓红,王力芬,姚英,郑颖颖,于敏,刘丹,霍娜,田地,陆海英,吴赤红,徐小元,魏来|17442236,23793550,26740704,23817913,17258037,21323260,21274655,17247357,06281887,06282243,05977538,06292322|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17442236%3b23793550%3b26740704%3b23817913%3b17258037%3b21323260%3b21274655%3b17247357%3b06281887%3b06282243%3b05977538%3b06292322%3b&scholarName=%e8%8c%83%e6%99%93%e7%ba%a2|||27|0 +240604|颈椎前路手术并发食道瘘的诊断与治疗|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGKF200410001023.htm|王圣林,王少波,马庆军,刘丹丹|06273988,06280225,06273883,05976778|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06273988%3b06280225%3b06273883%3b05976778%3b&scholarName=%e7%8e%8b%e5%9c%a3%e6%9e%97|||44|0 +240604|电视胸腔镜手术629例临床总结|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZHYX200408002037.htm|梁正,刘丹丹,闫天生,沈桢云,崔睿,王京第,王可毅,周枫|06272970,06273883,06272768,06272873,06280464,06267411,06273758,06273979|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06272970%3b06273883%3b06272768%3b06272873%3b06280464%3b06267411%3b06273758%3b06273979%3b&scholarName=%e6%a2%81%e6%ad%a3|||27|0 +240604|DNA切割剂的研究|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=ZGHY200510002042&dbname=IPFD9914|刘丹,袁谷|06265568,06263970|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06265568%3b06263970%3b&scholarName=%e5%88%98%e4%b8%b9|||19|0 +240604|圈养状态下东北虎个性的研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGXG200510001057.htm|李潜,苏彦捷,刘丹|06264393,06262045,10735642|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06264393%3b06262045%3b10735642%3b&scholarName=%e6%9d%8e%e6%bd%9c|||69|0 +240604|天然活性小分子苏木酮A抑制神经炎症的直接作用靶标的识别|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGHY201609007045.htm|廖理曦,宋小敏,王丽超,吕海宁,陈金凤,赵明波,刘丹,富戈,杨雁芳,董馨,杨秀伟,姜勇,曾克武,屠鹏飞|33713652,34563252,37723439,29271240,31447613,06272546,06265568,22621241,06263163,34169280,06263160,06266629,11647779,06262861|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33713652%3b34563252%3b37723439%3b29271240%3b31447613%3b06272546%3b06265568%3b22621241%3b06263163%3b34169280%3b06263160%3b06266629%3b11647779%3b06262861%3b&scholarName=%e5%bb%96%e7%90%86%e6%9b%a6|||66|0 +240604|无抽搐电休克治疗重性抑郁症的结构磁共振研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZHYX201509003305.htm|刘丹,李鹏,罗庆华,曾金坤,陆林,蒙华庆|23617220,34713046,10054856,34270483,31576376,10501734|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23617220%3b34713046%3b10054856%3b34270483%3b31576376%3b10501734%3b&scholarName=%e5%88%98%e4%b8%b9|||44|1 +240604|中药活性分子直接作用靶点的识别与确证研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGHY201709003015.htm|廖理曦,宋小敏,王丽超,吕海宁,陈金凤,刘丹,富戈,赵明波,姜勇,曾克武,屠鹏飞|33713652,34563252,37723439,30528726,29271240,31447613,06265568,22621241,06272546,06266629,11647779,06262861|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33713652%3b34563252%3b37723439%3b30528726%3b29271240%3b31447613%3b06265568%3b22621241%3b06272546%3b06266629%3b11647779%3b06262861%3b&scholarName=%e5%bb%96%e7%90%86%e6%9b%a6|||26|0 +240604|自身免疫性溶血性贫血为首发表现的显微镜下多血管炎的临床研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZHYX201205002123.htm|刘丹,李茹,贾园,苏茵|27090479,06291932,00090868,06284905|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27090479%3b06291932%3b00090868%3b06284905%3b&scholarName=%e5%88%98%e4%b8%b9|||14|0 +240604|区域皮瓣在鼻面部组织缺损修复中的应用|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZHYX200710003062.htm|王成元,赵恩民,刘丹丹|06428609,06430612|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=06428609%3b06430612%3b&scholarName=%e7%8e%8b%e6%88%90%e5%85%83|||4|0 +241888|基于矩阵分解学习的科学合作网络社区发现研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ201709005.htm|施晓华,卢宏涛|08570663,08534858|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08570663%3b08534858%3b&scholarName=%e6%96%bd%e6%99%93%e5%8d%8e|数据分析与知识发现|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|123|1 +241888|数据挖掘技术在图书馆学科数据馆藏分析中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201101036.htm|施晓华|08570663|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08570663%3b&scholarName=%e6%96%bd%e6%99%93%e5%8d%8e|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|730|15 +241888|构建高校图书馆个性化信息素养平台|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201105004.htm|施晓华|08570663|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08570663%3b&scholarName=%e6%96%bd%e6%99%93%e5%8d%8e|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|387|16 +241888|高校学术成果管理中学者身份关联应用与研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDQB201705022.htm|施晓华|08570663|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08570663%3b&scholarName=%e6%96%bd%e6%99%93%e5%8d%8e|现代情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDQB|96|1 +241888|信息检索新技术应用|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX200508022.htm|施晓华,黄骥|09593795,08570663|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09593795%3b08570663%3b&scholarName=%e6%96%bd%e6%99%93%e5%8d%8e|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|332|24 +241888|基于用户使用数据分析的图书馆学术推荐服务|http://www.cnki.com.cn/Article/CJFDTOTAL-TNGZ201109006.htm|施晓华,曲建峰,宋海艳|08570663,15058365,23590871|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08570663%3b15058365%3b23590871%3b&scholarName=%e6%96%bd%e6%99%93%e5%8d%8e|图书馆杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TNGZ|419|10 +241888|MOOC环境下的高校电子教参服务研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XJJS201601012.htm|马晨,施晓华,王昕|30505684,08570663,08538831|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30505684%3b08570663%3b08538831%3b&scholarName=%e9%a9%ac%e6%99%a8|现代教育技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XJJS|365|4 +241888|融入创新教学模式的电子教参服务体系构建——以上海交通大学为例|http://www.cnki.com.cn/Article/CJFDTOTAL-PTSQ201702007.htm|施晓华|08570663|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08570663%3b&scholarName=%e6%96%bd%e6%99%93%e5%8d%8e|图书情报研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/PTSQ|113|1 +241888|高校电子资源访问管理控制系统的设计和应用|http://www.cnki.com.cn/Article/CJFDTOTAL-JSYJ201103069.htm|施晓华,钱吟,谢锐|08570663,23266615,09603025|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08570663%3b23266615%3b09603025%3b&scholarName=%e6%96%bd%e6%99%93%e5%8d%8e|计算机应用研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSYJ|189|9 +241888|融入教学的多类型电子教参资源建设研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201319010.htm|王昕,施晓华|08538831,08570663|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08538831%3b08570663%3b&scholarName=%e7%8e%8b%e6%98%95|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|294|9 +241888|知识体系互操作中贝叶斯学习方法应用研究|http://www.cnki.com.cn/Article/CJFDTOTAL-QBZZ201308033.htm|施晓华,李芳|08570663,09595202|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08570663%3b09595202%3b&scholarName=%e6%96%bd%e6%99%93%e5%8d%8e|情报杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBZZ|133|2 +241888|基于高校图书馆参与的“智慧泛在课堂”构建与实践——以上海交通大学电子教参服务体系的改革与实践为例|http://www.cnki.com.cn/Article/CJFDTOTAL-BOOK201405008.htm|余晓蔚,施晓华,潘卫,陈进|13905715,08570663,08519791,08514167|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13905715%3b08570663%3b08519791%3b08514167%3b&scholarName=%e4%bd%99%e6%99%93%e8%94%9a|图书与情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BOOK|496|7 +241888|图书馆自助文印服务的数据分析与优化研究—以上海交通大学图书馆为例|http://www.cnki.com.cn/Article/CJFDTOTAL-DXTQ201602010.htm|李靖,施晓华,白永革,杜煜,汤萌,易庆|08521614,08570663,08565391,30955381,26657617,34561505|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08521614%3b08570663%3b08565391%3b30955381%3b26657617%3b34561505%3b&scholarName=%e6%9d%8e%e9%9d%96|大学图书情报学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DXTQ|120|4 +241888|智慧图书馆的空间设施构想|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201806004.htm|高协,王昕,张心言,施晓华,陈进|27148882,08538831,39766556,08570663,08514167|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27148882%3b08538831%3b39766556%3b08570663%3b08514167%3b&scholarName=%e9%ab%98%e5%8d%8f|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|244|0 +241888|大规模图书数字化过程中的质量控制研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201704008.htm|张保国,施晓华,王昕|08533562,08570663,08538831|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08533562%3b08570663%3b08538831%3b&scholarName=%e5%bc%a0%e4%bf%9d%e5%9b%bd|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|92|1 +241888|智慧图书馆的架构规划|http://www.cnki.com.cn/Article/CJFDTOTAL-SZTG201806002.htm|陈进,郭晶,徐璟,施晓华|08514167,08518472,10771184,08570663|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08514167%3b08518472%3b10771184%3b08570663%3b&scholarName=%e9%99%88%e8%bf%9b|数字图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SZTG|222|0 +241888|多分馆模式下虚拟网络联合研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201205011.htm|施晓华|08570663|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08570663%3b&scholarName=%e6%96%bd%e6%99%93%e5%8d%8e|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|67|0 +241888|Oracle RAC集群技术在图书馆集成管理系统中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-XDTQ2012Z1029.htm|曲建峰,孙翌,徐汝兴,施晓华|15058365,15692691,08540919,08570663|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15058365%3b15692691%3b08540919%3b08570663%3b&scholarName=%e6%9b%b2%e5%bb%ba%e5%b3%b0|现代图书情报技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDTQ|314|15 +241888|竞争情报工作中的道德法律问题探析|http://www.cnki.com.cn/Article/CJFDTOTAL-QBTS200502008.htm|白永革,施晓华|08570663,08565391|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08570663%3b08565391%3b&scholarName=%e7%99%bd%e6%b0%b8%e9%9d%a9|情报探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBTS|249|9 +241888|图书馆管理系统用户访问控制研究|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201105023.htm|曲建峰,施晓华,蔡峰华|15058365,08570663,24876918|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15058365%3b08570663%3b24876918%3b&scholarName=%e6%9b%b2%e5%bb%ba%e5%b3%b0|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|152|3 +241888|校园电子商务平台在图书馆技术加工服务中的开发与应用|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201323003.htm|李靖,钱吟,白永革,施晓华|08521614,23266615,08565391,08570663|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08521614%3b23266615%3b08565391%3b08570663%3b&scholarName=%e6%9d%8e%e9%9d%96|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|97|0 +241888|竞争优势分析模式的Web实现|http://www.cnki.com.cn/Article/CJFDTOTAL-QBTS200404045.htm|施晓华|08570663|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08570663%3b&scholarName=%e6%96%bd%e6%99%93%e5%8d%8e|情报探索|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBTS|54|0 +242745|热点、网络与态势:国外图书情报学领域元数据研究的知识图谱分析|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201606003.htm|汤敬谦,杨鹤林|22480255,17696960|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22480255%3b17696960%3b&scholarName=%e6%b1%a4%e6%95%ac%e8%b0%a6|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|607|3 +242745|科研产出元数据监护系统的开发与实践——以暨南大学图书馆为例|http://www.cnki.com.cn/Article/CJFDTOTAL-TSGL201505013.htm|汤敬谦,杨鹤林,王小强|22480255,17696960,29410895|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22480255%3b17696960%3b29410895%3b&scholarName=%e6%b1%a4%e6%95%ac%e8%b0%a6|图书馆论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSGL|384|8 +242745|基于元素养的嵌入式信息素养教育实施策略研究——以威斯康星大学Flex模式为例|http://www.cnki.com.cn/Article/CJFDTOTAL-TSSS201804003.htm|周琪,汤敬谦|22545672,22480255|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22545672%3b22480255%3b&scholarName=%e5%91%a8%e7%90%aa|图书馆学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSSS|404|2 +242745|文献计量学在高校学术论文统计分析中的应用——以暨南大学为例|http://www.cnki.com.cn/Article/CJFDTOTAL-XDQB201011027.htm|汤敬谦|22480255|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22480255%3b&scholarName=%e6%b1%a4%e6%95%ac%e8%b0%a6|现代情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDQB|256|14 +242745|利玛原甲藻中聚酮合酶基因克隆与分析|http://www.cnki.com.cn/Article/CJFDTOTAL-STXB200905026.htm|汤敬谦,李挺,杨维东,刘洁生,李宏业|22480255,17656094,07761702,05970022,07758385,22438938|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22480255%3b17656094%3b07761702%3b05970022%3b07758385%3b22438938%3b&scholarName=%e6%b1%a4%e6%95%ac%e8%b0%a6|生态学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/STXB|261|2 +242745|海洋底栖甲藻——利玛原甲藻(Prorocentrum lima)产毒特征的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-STDL200905031.htm|李丽璇,汤敬谦,杨维东,刘洁生,张剑军,李宏业|14036589,23931467,22480255,07761702,05970022,07758385,17411010,22438938|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14036589%3b23931467%3b22480255%3b07761702%3b05970022%3b07758385%3b17411010%3b22438938%3b&scholarName=%e6%9d%8e%e4%b8%bd%e7%92%87|生态毒理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/STDL|291|11 +242745|基于广东专利数据对广东科技进步水平的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-KJGL201424026.htm|邢少璟,汤敬谦|07749508,22480255|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07749508%3b22480255%3b&scholarName=%e9%82%a2%e5%b0%91%e7%92%9f|科技管理研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJGL|125|2 +242745|高校科研论文统计分析与管理——以暨南大学为例|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGKC201605007.htm|汤华清,汤敬谦,李祁平|26865353,22480255,07747140|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26865353%3b22480255%3b07747140%3b&scholarName=%e6%b1%a4%e5%8d%8e%e6%b8%85|中国高校科技|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGKC|106|0 +242745|我国大陆高校外语教师国际学术论文发表的现状与趋势——基于2000—2014年SSCI与A&HCI论文的分析|http://www.cnki.com.cn/Article/CJFDTOTAL-YYZS201702001.htm|彭剑娥,汤敬谦|08472851,22480255|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08472851%3b22480255%3b&scholarName=%e5%bd%ad%e5%89%91%e5%a8%a5|语言教育|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YYZS|153|1 +242745|Bcl-2家族在宫颈癌HeLa细胞凋亡中的研究进展|http://www.cnki.com.cn/Article/CJFDTOTAL-SYYZ201103082.htm|王文文,汤敬谦,邓毛程,李静|29374999,22480255,29244648,29244647|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29374999%3b22480255%3b29244648%3b29244647%3b&scholarName=%e7%8e%8b%e6%96%87%e6%96%87|实用医学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SYYZ|331|16 +242745|我国黄皮的生产及开发利用研究现状|http://www.cnki.com.cn/Article/CJFDTOTAL-AHNY201313108.htm|王文文,汤敬谦,张东峰|29374999,22480255,31125017|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29374999%3b22480255%3b31125017%3b&scholarName=%e7%8e%8b%e6%96%87%e6%96%87|安徽农业科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/AHNY|291|4 +242745|高压热水-酶法分段提取香菇多糖的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZZLS201504019.htm|王文文,谭才邓,吴亚丽,刘嘉俊,汤敬谦,邓毛程|29374999,28256863,31178270,33351867,22480255,29244648|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29374999%3b28256863%3b31178270%3b33351867%3b22480255%3b29244648%3b&scholarName=%e7%8e%8b%e6%96%87%e6%96%87|河南工业大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZZLS|198|3 +242745|纤维素酶及耐高温淀粉酶提取柑橘皮果胶的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SPYK201405006.htm|王文文,李静,邓毛程,汤敬谦,张东峰|29374999,29244647,29244648,22480255,31125017|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29374999%3b29244647%3b29244648%3b22480255%3b31125017%3b&scholarName=%e7%8e%8b%e6%96%87%e6%96%87|食品研究与开发|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SPYK|199|4 +242745|高职“生化分离技术”教学改革思考|http://www.cnki.com.cn/Article/CJFDTOTAL-XKCT201309023.htm|王文文,汤敬谦|29374999,22480255|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29374999%3b22480255%3b&scholarName=%e7%8e%8b%e6%96%87%e6%96%87|新课程研究(中旬刊)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XKCT|35|0 +242745|黄皮果汁中酯酶产生细菌的选育与酶学特性研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SPYK201511034.htm|王文文,张东峰,汤敬谦|29374999,31125017,22480255|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=29374999%3b31125017%3b22480255%3b&scholarName=%e7%8e%8b%e6%96%87%e6%96%87|食品研究与开发|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SPYK|44|1 +242745|利玛原甲藻中聚酮合成酶基因的克隆与表达分析|http://cdmd.cnki.com.cn/Article/CDMD-10559-2009108784.htm|汤敬谦|22480255|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22480255%3b&scholarName=%e6%b1%a4%e6%95%ac%e8%b0%a6|||189|0 +242745|实现文化精准扶贫前景下的中国贫困地区图书馆主题研究探讨|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=LRCM201802002062&dbname=IPFDLAST2018|刘丹雯,汤敬谦|27206647,22480255|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=27206647%3b22480255%3b&scholarName=%e5%88%98%e4%b8%b9%e9%9b%af|||30|0 +242745|高水平大学建设背景下图书馆学科评估工作|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=LRCM201802002069&dbname=IPFDLAST2018|黎景光,汤敬谦|14036520,22480255|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=14036520%3b22480255%3b&scholarName=%e9%bb%8e%e6%99%af%e5%85%89|||18|0 +242745|机构、人员与议题:国外涉藏学术论文的知识图谱分析|http://www.cnki.net/KCMS/detail/detail.aspx?dbcode=IPFD&filename=LRCM201803005055&dbname=IPFDLAST2018|朱易佳,汤敬谦|10622822,22480255|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10622822%3b22480255%3b&scholarName=%e6%9c%b1%e6%98%93%e4%bd%b3|||8|0 +2436014|王凯:中移动财报提振市场预期行业信息化应用成3G突破点|http://xuewen.cnki.net/CCND-TXXX20100324B080.html|林琳||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e6%9e%97%e7%90%b3|||1|0 +2436014|认同的幻觉与隐匿的压抑:“偶像物恋”背后的资本逻辑 以演员王凯的微博粉丝为中心|http://www.cnki.com.cn/Article/CJFDTOTAL-BDYX201705004.htm|魏建宇|32204819|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32204819%3b&scholarName=%e9%ad%8f%e5%bb%ba%e5%ae%87|北京电影学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BDYX|765|2 +2436014|“红头文件”冲突法律的责任归属——兼评福州王凯锋案|http://www.cnki.com.cn/Article/CJFDTOTAL-FXZZ200203000.htm|刘松山|13039353|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13039353%3b&scholarName=%e5%88%98%e6%9d%be%e5%b1%b1|法学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FXZZ|1173|55 +2436014|论行政法规、规章以外的行政规范性文件——由“王凯锋事件”引起的思考|http://www.cnki.com.cn/Article/CJFDTOTAL-XZFX200302002.htm|郑全新,于莉|07360249,07366651|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07360249%3b07366651%3b&scholarName=%e9%83%91%e5%85%a8%e6%96%b0|行政法学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XZFX|1525|40 +2436014|进行自我检查党性分析 开展批评和自我批评|http://xuewen.cnki.net/CCND-YULB20170125A011.html|关伟||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%85%b3%e4%bc%9f|||135|0 +2436014|《欢乐颂》牵出明星合作新模式 刘涛靳东王凯与制片方成生意合伙人|http://xuewen.cnki.net/CCND-MRJJ201605040070.html|牟璇||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e7%89%9f%e7%92%87|||84|0 +2436014|95后美女创业者王凯歆跌落神坛 是什么让“神奇百货”不再神奇?|http://xuewen.cnki.net/CCND-MRJJ201607120060.html|孟庆建||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%ad%9f%e5%ba%86%e5%bb%ba|||36|0 +2436014|自媒体节目品牌策略研究|http://cdmd.cnki.com.cn/Article/CDMD-10475-1017742108.htm|李璐煜|33351031|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=33351031%3b&scholarName=%e6%9d%8e%e7%92%90%e7%85%9c|||204|1 +2436014|牢记使命 实干兴玉 为实现“两个建成”宏伟目标而努力奋斗|http://xuewen.cnki.net/CCND-YULB20160830A020.html||||||11|0 +2436014|36岁的王凯,眼睛里种满了蒲公英|http://www.cnki.com.cn/Article/CJFDTOTAL-DYTX201802010.htm|喜宝,达生||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%96%9c%e5%ae%9d|电影|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DYTX|5|0 +2436014|王凯长篇小说《导弹和向日葵》:世界以痛吻我,我却报之以歌|http://xuewen.cnki.net/CCND-WEYI201712110030.html|傅逸尘||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%82%85%e9%80%b8%e5%b0%98|||7|0 +2436014|粉丝群体如何为偶像创造经济价值——以王凯的粉丝群体为例|http://www.cnki.com.cn/Article/CJFDTOTAL-CBLY201706190.htm|彭莹|37909878|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=37909878%3b&scholarName=%e5%bd%ad%e8%8e%b9|传播力研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CBLY|453|0 +2436014|王凯作品|http://www.cnki.com.cn/Article/CJFDTOTAL-DDGD2018Z4021.htm|王凯|26867532|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26867532%3b&scholarName=%e7%8e%8b%e5%87%af|当代工人(D版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DDGD|0|0 +2436014|嘉实基金王凯:体育和VR处于产业爆发前夜|http://xuewen.cnki.net/CCND-CZJB20160830A053.html|徐文擎||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e5%be%90%e6%96%87%e6%93%8e|||29|0 +2436014|同程文旅CEO 王凯:帮助景区摆脱“门票经济”是个大生意|http://xuewen.cnki.net/CCND-BJXD20180515B021.html||||||8|0 +2454906|大数据时代高校图书馆开展学科服务研究——学科馆员工作案例解析|http://www.cnki.com.cn/Article/CJFDTOTAL-XDQB201512013.htm|林静,伊雷,陈珊珊,王婷|09227652,28477700,11568780,06316027|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b28477700%3b11568780%3b06316027%3b&scholarName=%e6%9e%97%e9%9d%99|现代情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDQB|899|18 +2454906|城市区域生态风险预警方法及其在景观生态安全格局调控中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-DLYJ201703008.htm|李杨帆,林静玉,孙翔|34822630,36719097,36719098|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=34822630%3b36719097%3b36719098%3b&scholarName=%e6%9d%8e%e6%9d%a8%e5%b8%86|地理研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DLYJ|1380|19 +2454906|面向“双一流”建设的学科知识服务营销策略——厦门大学图书馆的实践|http://www.cnki.com.cn/Article/CJFDTOTAL-DXTS201705012.htm|杨薇,林静,黄国凡,李显辉,马鲁伟,庄锐锌|09230979,09227652,10230401,38063679,29721340,28712682|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09230979%3b09227652%3b10230401%3b38063679%3b29721340%3b28712682%3b&scholarName=%e6%9d%a8%e8%96%87|大学图书馆学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DXTS|1472|13 +2454906|国际食品安全标准的合法性之思|http://www.cnki.com.cn/Article/CJFDTOTAL-DLXS201406029.htm|林静,韩秀丽|09227652,10230278|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b10230278%3b&scholarName=%e6%9e%97%e9%9d%99|东南学术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/DLXS|218|4 +2454906|筼筜湖悬浮物及颗粒有机碳、氮、磷的时空分布|http://www.cnki.com.cn/Article/CJFDTOTAL-XDZK201103016.htm|林静毅,朱小明,黄凌风|25941022,09201079,10230429|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25941022%3b09201079%3b10230429%3b&scholarName=%e6%9e%97%e9%9d%99%e6%af%85|厦门大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDZK|405|7 +2454906|碳强度约束下中国全要素生产率测算与收敛性研究|http://www.cnki.com.cn/Article/CJFDTOTAL-JRYJ201006005.htm|孙传旺,刘希颖,林静|17602726,21925751,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=17602726%3b21925751%3b09227652%3b&scholarName=%e5%ad%99%e4%bc%a0%e6%97%ba|金融研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JRYJ|3708|142 +2454906|生态保护红线划定的情景分析方法及生态管治应用|http://www.cnki.com.cn/Article/CJFDTOTAL-HJBU201723020.htm|何书言,林静玉,李艺,李杨帆,沈迟|38370187,36719097,09196203,34822630,36613253|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38370187%3b36719097%3b09196203%3b34822630%3b36613253%3b&scholarName=%e4%bd%95%e4%b9%a6%e8%a8%80|环境保护|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HJBU|218|1 +2454906|基于链码的原木端面图像检尺径识别算法|http://www.cnki.com.cn/Article/CJFDTOTAL-XDZK201001016.htm|林静静,魏云龙,陈建清,陈文芗|24160221,24160222,23831929,09193949|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24160221%3b24160222%3b23831929%3b09193949%3b&scholarName=%e6%9e%97%e9%9d%99%e9%9d%99|厦门大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDZK|136|13 +2454906|有目标的电价补贴有助于能源公平和效率|http://www.cnki.com.cn/Article/CJFDTOTAL-JRYJ200911002.htm|林伯强,蒋竺均,林静|11048393,23783717,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11048393%3b23783717%3b09227652%3b&scholarName=%e6%9e%97%e4%bc%af%e5%bc%ba|金融研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JRYJ|1855|62 +2454906|王维山水诗歌中“空、静、闲”的禅宗意境|http://www.cnki.com.cn/Article/CJFDTOTAL-MZXS201636046.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|名作欣赏|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/MZXS|414|1 +2454906|WTO视角下食品安全私人标准问题研究|http://www.cnki.com.cn/Article/CJFDTOTAL-FJLW201409009.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|福建论坛(人文社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJLW|129|1 +2454906|公堂之上的人、鬼、神——《三侠五义》中的鬼神破案初探|http://www.cnki.com.cn/Article/CJFDTOTAL-MZXS201721014.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|名作欣赏|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/MZXS|103|0 +2454906|卤代苯和卤代萘用三氧化硫进行的磺化反应|http://www.cnki.com.cn/Article/CJFDTOTAL-YJHU199406011.htm|林静,邹友思|09225630,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09225630%3b09227652%3b&scholarName=%e6%9e%97%e9%9d%99|有机化学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YJHU|259|5 +2454906|关于厦门大学图书馆学术典藏库建设的思考|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJN201504016.htm|林静,韩闯,朱俊波,陈江帆|09227652,09194795,11420785,10229825|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b09194795%3b11420785%3b10229825%3b&scholarName=%e6%9e%97%e9%9d%99|农业网络信息|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJN|99|2 +2454906|MEMS光开关的静电驱动技术|http://www.cnki.com.cn/Article/CJFDTOTAL-ZYQB200506009.htm|林静,黄元庆|09227652,00025779|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b00025779%3b&scholarName=%e6%9e%97%e9%9d%99|中国仪器仪表|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZYQB|414|5 +2454906|侧链型Schiff碱液晶研究——单体的合成与聚合|http://www.cnki.com.cn/Article/CJFDTOTAL-HCHX701.011.htm|林静,陈立,林敏,许炳雄,宫国梁,邹友思|10229847,09222380,09194718,09227669,09227652,09225630|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10229847%3b09222380%3b09194718%3b09227669%3b09227652%3b09225630%3b&scholarName=%e6%9e%97%e9%9d%99|合成化学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HCHX|91|13 +2454906|双重文化视觉下的中国与美国——美国华裔文学第一人李恩富作品初探|http://www.cnki.com.cn/Article/CJFDTOTAL-HHXK201702010.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|黑河学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HHXK|60|0 +2454906|巴豆醛的选择氧化|http://www.cnki.com.cn/Article/CJFDTOTAL-XDZK199306014.htm|林静,林敏,隋乐恕,郭奇珍|09218727,09213701,09227669,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09218727%3b09213701%3b09227669%3b09227652%3b&scholarName=%e6%9e%97%e9%9d%99|厦门大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDZK|146|10 +2454906|货币因素在具有泡沫的戴蒙德模型中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-TJJC200912014.htm|林静|09227652,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b09227652%3b&scholarName=%e6%9e%97%e9%9d%99|统计与决策|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TJJC|189|2 +2454906|孔乙己:中国传统文人的悲剧命运和精神结构|http://www.cnki.com.cn/Article/CJFDTOTAL-MZXS201632003.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|名作欣赏|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/MZXS|205|0 +2454906|中国高校节能减排的影响因素分析|http://www.cnki.com.cn/Article/CJFDTOTAL-JRYJ201307007.htm|孔庆宝,林静,林雪莉|24604413,09227652,30828648|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24604413%3b09227652%3b30828648%3b&scholarName=%e5%ad%94%e5%ba%86%e5%ae%9d|金融研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JRYJ|305|1 +2454906|超精密磨床振动和温度无线监测系统研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZJYC201206068.htm|林静,郭隐彪,韩伟|09227652,09194788,17536925|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b09194788%3b17536925%3b&scholarName=%e6%9e%97%e9%9d%99|制造技术与机床|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZJYC|102|4 +2454906|酯交换制生物柴油的CaO固体碱催化剂|http://www.cnki.com.cn/Article/CJFDTOTAL-WLHX200810015.htm|蔡钒,张彬彬,林静,张国玉,方维平,杨乐夫|10229705,10232062,09227652,09194152,13902099,09200021|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10229705%3b10232062%3b09227652%3b09194152%3b13902099%3b09200021%3b&scholarName=%e8%94%a1%e9%92%92|物理化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WLHX|879|32 +2454906|干扰司法独立的外部因素——浅谈政党干预与司法独立|http://www.cnki.com.cn/Article/CJFDTOTAL-SYWX201005013.htm|韦林静,岳志勇|24465237,23210850|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24465237%3b23210850%3b&scholarName=%e9%9f%a6%e6%9e%97%e9%9d%99|商业文化(学术版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SYWX|723|5 +2454906|个人数字助理在糖尿病患者自我管理中的应用进展|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHHU201007020.htm|吴林静|15134609|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15134609%3b&scholarName=%e5%90%b4%e6%9e%97%e9%9d%99|中华护理教育|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHHU|170|3 +2454906|九龙江河口区多环芳烃分布逸度模型和实测分析|http://www.cnki.com.cn/Article/CJFDTOTAL-HYHJ201602001.htm|柯宏伟,陈凯,赵雯璐,陈勉,林嫣,刘萌阳,王俊,林静,蔡明刚|10230588,09211775,26871353,34445109,34445110,34445111,09230103,09227652,32524237,09224729|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10230588%3b09211775%3b26871353%3b34445109%3b34445110%3b34445111%3b09230103%3b09227652%3b32524237%3b09224729%3b&scholarName=%e6%9f%af%e5%ae%8f%e4%bc%9f|海洋环境科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HYHJ|249|10 +2454906|二烷基锌和醛的立体选择性加成|http://www.cnki.com.cn/Article/CJFDTOTAL-HXTB707.006.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|化学通报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HXTB|80|4 +2454906|PGSS技术制备薄荷醇/棕榈酸复合颗粒|http://www.cnki.com.cn/Article/CJFDTOTAL-HGJZ2011S1079.htm|朱林静,ANYEMEDU Kofi Asare,蓝洪桥,洪燕珍,苏玉忠,王宏涛,李军|23255687,26813093,24160227,11152501,09229504,10584444,09227335|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23255687%3b26813093%3b24160227%3b11152501%3b09229504%3b10584444%3b09227335%3b&scholarName=%e6%9c%b1%e6%9e%97%e9%9d%99|化工进展|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HGJZ|74|3 +2454906|厦门大学图书馆学科服务改革实践|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJN201803015.htm|刘文颖,林静,李政|38995340,09227652,11009961|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38995340%3b09227652%3b11009961%3b&scholarName=%e5%88%98%e6%96%87%e9%a2%96|农业网络信息|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJN|95|0 +2454906|话语施效行为初探|http://www.cnki.com.cn/Article/CJFDTOTAL-XMDS200404016.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|厦门大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XMDS|298|11 +2454906|甲氧基萘的磺化反应|http://www.cnki.com.cn/Article/CJFDTOTAL-YYHX501.012.htm|林静,邹友思|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|应用化学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YYHX|219|2 +2454906|4,4′-二羟基联苯的合成|http://www.cnki.com.cn/Article/CJFDTOTAL-YYHX199303023.htm|林静,林敏,陈立,黄海水|09194938,10229847,09227669,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09194938%3b10229847%3b09227669%3b09227652%3b&scholarName=%e6%9e%97%e9%9d%99|应用化学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YYHX|305|6 +2454906|我国法院调解制度之法学思考|http://www.cnki.com.cn/Article/CJFDTOTAL-FZSL201017073.htm|韦林静|24465237|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24465237%3b&scholarName=%e9%9f%a6%e6%9e%97%e9%9d%99|法制与社会|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FZSL|210|2 +2454906|新加坡会计发展及启示|http://www.cnki.com.cn/Article/CJFDTOTAL-CKTX200706051.htm|林静敏||http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=&scholarName=%e6%9e%97%e9%9d%99%e6%95%8f|财会通讯(综合版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CKTX|240|1 +2454906|电子商务环境下的产品类科技查新的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJN201803008.htm|沈冰文,林静|38995334,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38995334%3b09227652%3b&scholarName=%e6%b2%88%e5%86%b0%e6%96%87|农业网络信息|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJN|26|1 +2454906|优化问题神经网络方法的发展及有待解决的问题|http://www.cnki.com.cn/Article/CJFDTOTAL-TJJY200611006.htm|林静怡,朱建平|11474361,09232753|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11474361%3b09232753%3b&scholarName=%e6%9e%97%e9%9d%99%e6%80%a1|统计教育|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TJJY|191|0 +2454906|高斯-塞德尔迭代求解与国际政策合作分析的方法论研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SCLY200821029.htm|林静,艾凌宇|09227652,09227652,21865891|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b09227652%3b21865891%3b&scholarName=%e6%9e%97%e9%9d%99|生产力研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SCLY|85|1 +2454906|4,4'-二羟基联苯的单烷基化|http://www.cnki.com.cn/Article/CJFDTOTAL-YYHX199206025.htm|林静,黄海水|09194938,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09194938%3b09227652%3b&scholarName=%e6%9e%97%e9%9d%99|应用化学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YYHX|117|3 +2454906|品管圈活动在提高床边心电监护仪使用正确率中的效果|http://www.cnki.com.cn/Article/CJFDTOTAL-YJZY201730079.htm|蔡丽芬,吴林静,李丽圆,施婧,闫微|38022153,38022154,38022155,38022156,38022157|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38022153%3b38022154%3b38022155%3b38022156%3b38022157%3b&scholarName=%e8%94%a1%e4%b8%bd%e8%8a%ac|中外医学研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YJZY|82|1 +2454906|基于信息流约束机制的学科服务创新体系的构建|http://www.cnki.com.cn/Article/CJFDTOTAL-JSJN201503017.htm|韩闯,林静,杨薇|09194795,09227652,09230979|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09194795%3b09227652%3b09230979%3b&scholarName=%e9%9f%a9%e9%97%af|农业网络信息|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JSJN|72|2 +2454906|医疗仪器设备管理缺失中存在的护理安全隐患分析|http://www.cnki.com.cn/Article/CJFDTOTAL-GLHL200804022.htm|林丰,张锦辉,吴林静|15133835,15135003,15134609|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15133835%3b15135003%3b15134609%3b&scholarName=%e6%9e%97%e4%b8%b0|中国护理管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GLHL|218|38 +2454906|一蓑烟雨任平生——窦唯音乐中的禅宗味|http://www.cnki.com.cn/Article/CJFDTOTAL-XUEL201523021.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|雪莲|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XUEL|47|0 +2454906|相对于SBPC-相关幂零子群的特征标的稳定子极限|http://www.cnki.com.cn/Article/CJFDTOTAL-XDZK200902002.htm|林静,曾吉文|09227652,09231519|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b09231519%3b&scholarName=%e6%9e%97%e9%9d%99|厦门大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDZK|39|0 +2454906|卤代萘与三氧化硫的磺化反应|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH411.019.htm|林静,邹友思|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|151|1 +2454906|假性紫罗酮的合成|http://www.cnki.com.cn/Article/CJFDTOTAL-YYHX199204018.htm|林静,黄海水|09227652,09194938|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b09194938%3b&scholarName=%e6%9e%97%e9%9d%99|应用化学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YYHX|61|7 +2454906|“中国加入WTO十年的争端解决实践”研讨会综述|http://www.cnki.com.cn/Article/CJFDTOTAL-GJJF201104019.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|国际经济法学刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GJJF|53|0 +2454906|我国商标的商业性合理使用制度的初探——对美国商标的合理使用制度的借鉴|http://www.cnki.com.cn/Article/CJFDTOTAL-KXLT200705020.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|科协论坛(下半月)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KXLT|483|12 +2454906|硫酸钡粉末存在下无乳化剂的聚合研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GFXB199303012.htm|陈立,林静,林敏,黄海水|09227669,10229847,09194938,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227669%3b10229847%3b09194938%3b09227652%3b&scholarName=%e9%99%88%e7%ab%8b|高分子学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GFXB|54|18 +2454906|国际银行监管合作机制研究|http://www.cnki.com.cn/Article/CJFDTOTAL-ZZJJ201107047.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|知识经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZZJJ|94|1 +2454906|浅析诗歌在金庸小说武功描写中的作用|http://www.cnki.com.cn/Article/CJFDTOTAL-TSWX201609048.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|唐山文学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TSWX|18|1 +2454906|摇滚歌手崔健歌词的文学解析|http://www.cnki.com.cn/Article/CJFDTOTAL-BYYY201616026.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|北方音乐|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BYYY|55|0 +2454906|澳大利亚法务会计准则的解析、启示与反思|http://www.cnki.com.cn/Article/CJFDTOTAL-JJYD201017071.htm|武立明,韦林静|23510104,24465237|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=23510104%3b24465237%3b&scholarName=%e6%ad%a6%e7%ab%8b%e6%98%8e|经济研究导刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JJYD|305|5 +2454906|公正与效率视角下建构当代小额诉讼程序|http://www.cnki.com.cn/Article/CJFDTOTAL-FZSL200710220.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|法制与社会|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FZSL|415|11 +2454906|吸电子基团取代的苯和三氧化硫的反应研究|http://www.cnki.com.cn/Article/CJFDTOTAL-YJHU199504005.htm|邹友思,林静|09227652,09225630|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b09225630%3b&scholarName=%e9%82%b9%e5%8f%8b%e6%80%9d|有机化学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YJHU|180|5 +2454906|以职业能力为导向的高职语文教学研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SWBA201606046.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|散文百家(新语文活页)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SWBA|6|2 +2454906|乳酸酯的合成研究|http://www.cnki.com.cn/Article/CJFDTOTAL-XDZK704.017.htm|林敏,秦敬云,林静|09227669,10231275,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227669%3b10231275%3b09227652%3b&scholarName=%e6%9e%97%e6%95%8f|厦门大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDZK|286|26 +2454906|当代流行音乐歌词中古典文学融合|http://www.cnki.com.cn/Article/CJFDTOTAL-BYYY201622030.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|北方音乐|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/BYYY|16|0 +2454906|达明一派歌词里的八十年代|http://www.cnki.com.cn/Article/CJFDTOTAL-QNWJ201602021.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|青年文学家|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QNWJ|36|0 +2454906|起搏器植入患者生活质量调查|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHHU201310020.htm|曾桂英,吴林静,陈巧松|15389924,15134609,30041333|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15389924%3b15134609%3b30041333%3b&scholarName=%e6%9b%be%e6%a1%82%e8%8b%b1|中华护理教育|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHHU|69|7 +2454906|钝化萘衍生物的磺化反应研究|http://www.cnki.com.cn/Article/CJFDTOTAL-YJHU199504017.htm|邹友思,林静|09225630,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09225630%3b09227652%3b&scholarName=%e9%82%b9%e5%8f%8b%e6%80%9d|有机化学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YJHU|144|3 +2454906|甜菊糖甙总甙量的快速测定|http://www.cnki.com.cn/Article/CJFDTOTAL-XDZK199003025.htm|黄海水,林静|09227652,09194938|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b09194938%3b&scholarName=%e9%bb%84%e6%b5%b7%e6%b0%b4|厦门大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDZK|241|13 +2454906|PDCA在压疮评分中的应用效果评估|http://www.cnki.com.cn/Article/CJFDTOTAL-YXLT201811083.htm|张雪梅,吴智敏,吴林静,陈媛|39028352,38585993,38022154,39028353|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=39028352%3b38585993%3b38022154%3b39028353%3b&scholarName=%e5%bc%a0%e9%9b%aa%e6%a2%85|基层医学论坛|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YXLT|40|0 +2454906|错误规则的比较以及在我国的完善意见|http://www.cnki.com.cn/Article/CJFDTOTAL-FZSL200709013.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|法制与社会|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FZSL|119|7 +2454906|带有致钝取代基的萘衍生物和SO_3的反应研究|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH511.018.htm|邹友思,林静|09225630|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09225630%3b&scholarName=%e9%82%b9%e5%8f%8b%e6%80%9d|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|94|5 +2454906|琼脂糖的制备|http://www.cnki.com.cn/Article/CJFDTOTAL-XDZK199005017.htm|黄海水,胡友川,林静|09227652,10230379,09194938|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b10230379%3b09194938%3b&scholarName=%e9%bb%84%e6%b5%b7%e6%b0%b4|厦门大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDZK|385|9 +2454906|超临界流体技术制备胰岛素-三棕榈酸甘油酯复合微粒|http://www.cnki.com.cn/Article/CJFDTOTAL-ZHOU201012016.htm|王金献,朱林静,蒋茂星,李军|15559698,23255687,15558338,09227335|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15559698%3b23255687%3b15558338%3b09227335%3b&scholarName=%e7%8e%8b%e9%87%91%e7%8c%ae|中国医药工业杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZHOU|113|0 +2454906|我国浮动抵押制度的评析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZZJJ201012033.htm|韦林静|24465237|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24465237%3b&scholarName=%e9%9f%a6%e6%9e%97%e9%9d%99|知识经济|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZZJJ|143|0 +2454906|PMMA脊形光波导的设计与场分析|http://www.cnki.com.cn/Article/CJFDTOTAL-GDJS200604008.htm|周建华,游佰强,林静|09227652,10232186,09232709|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b10232186%3b09232709%3b&scholarName=%e5%91%a8%e5%bb%ba%e5%8d%8e|光电子技术|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDJS|228|3 +2454906|我院2004~2007年异基因干细胞移植住院患者用药分析|http://www.cnki.com.cn/Article/CJFDTOTAL-ZGYA200902009.htm|欧阳华,林静含|10597158,22056771|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10597158%3b22056771%3b&scholarName=%e6%ac%a7%e9%98%b3%e5%8d%8e|中国药房|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZGYA|103|0 +2454906|联萘衍生物的磺化反应研究|http://www.cnki.com.cn/Article/CJFDTOTAL-YJHU199604008.htm|邹友思,林静|09225630,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09225630%3b09227652%3b&scholarName=%e9%82%b9%e5%8f%8b%e6%80%9d|有机化学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YJHU|170|0 +2454906|N-对甲基丙烯酰氧基-苄亚甲基-对溴苯亚胺液晶单体的合成及聚合|http://www.cnki.com.cn/Article/CJFDTOTAL-XDZK703.019.htm|陈立,林静,林敏,许炳雄,郑啸|09227669,09222380,10229847,10232499,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227669%3b09222380%3b10229847%3b10232499%3b09227652%3b&scholarName=%e9%99%88%e7%ab%8b|厦门大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDZK|94|0 +2454906|层流室护士工作体验的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-HLGL201002007.htm|蒋亚缘,蔡玉贤,吴林静,颜秀珍,陈素惠|11647926,11585388,15134609,24791185,24791186|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11647926%3b11585388%3b15134609%3b24791185%3b24791186%3b&scholarName=%e8%92%8b%e4%ba%9a%e7%bc%98|护理管理杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HLGL|106|5 +2454906|糖尿病患儿实施综合护理干预的效果观察|http://www.cnki.com.cn/Article/CJFDTOTAL-TNBX201818075.htm|陈娜芬,苏雅漩,林静|39483770,40242040,40242041|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=39483770%3b40242040%3b40242041%3b&scholarName=%e9%99%88%e5%a8%9c%e8%8a%ac|糖尿病新世界|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/TNBX|8|0 +2454906|轮转护士岗位培训需求的调查分析|http://www.cnki.com.cn/Article/CJFDTOTAL-QQHB200907074.htm|张惠玲,张锦辉,吴林静|15433544,15135003,15134609|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=15433544%3b15135003%3b15134609%3b&scholarName=%e5%bc%a0%e6%83%a0%e7%8e%b2|齐齐哈尔医学院学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QQHB|212|4 +2454906|联苯衍生物的磺化反应|http://www.cnki.com.cn/Article/CJFDTOTAL-HCHX603.015.htm|邹友思,林静|09225630|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09225630%3b&scholarName=%e9%82%b9%e5%8f%8b%e6%80%9d|合成化学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HCHX|171|1 +2454906|氧化钙脱水法合成氯乙酸酯|http://www.cnki.com.cn/Article/CJFDTOTAL-JXSY199702021.htm|林敏,秦敬云,林静,陈毅辉,周瑞仪|09212906,09225562,10231275,09227669,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09212906%3b09225562%3b10231275%3b09227669%3b09227652%3b&scholarName=%e6%9e%97%e6%95%8f|精细石油化工|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/JXSY|144|13 +2454906|增加生理盐水冲管对降低HSCT患者中心静脉置管堵管的护理|http://www.cnki.com.cn/Article/CJFDTOTAL-HAIN201205069.htm|蔡玉贤,吴林静|11585388,15134609|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11585388%3b15134609%3b&scholarName=%e8%94%a1%e7%8e%89%e8%b4%a4|海南医学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HAIN|59|5 +2454906|健康教育对小儿哮喘护理效果的影响|http://www.cnki.com.cn/Article/CJFDTOTAL-SANE2017S3606.htm|陈娜芬,苏雅漩,林静|39483770,40242040,40242041|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=39483770%3b40242040%3b40242041%3b&scholarName=%e9%99%88%e5%a8%9c%e8%8a%ac|中国妇幼健康研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SANE|7|0 +2454906|21例微创左心室室壁瘤折叠术后患者的术后护理|http://www.cnki.com.cn/Article/CJFDTOTAL-YYXK201836193.htm|李丽圆,吴林静,蔡丽芬,闫微|38022155,38022154,38022153,38022157|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=38022155%3b38022154%3b38022153%3b38022157%3b&scholarName=%e6%9d%8e%e4%b8%bd%e5%9c%86|中国医药指南|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/YYXK|0|0 +2454906|磷酸焕酯的合成|http://www.cnki.com.cn/Article/CJFDTOTAL-XDZK199003026.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|厦门大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDZK|11|0 +2454906|氯仿至全氯代稠环芳烃的液相电弧合成|http://www.cnki.com.cn/Article/CJFDTOTAL-KXTB199716013.htm|黄伟杰,黄荣彬,王育煌,刘海锋,林静,郑兰荪|05964369,09198479,00005132,09227652,09194992,09196635|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=05964369%3b09198479%3b00005132%3b09227652%3b09194992%3b09196635%3b&scholarName=%e9%bb%84%e4%bc%9f%e6%9d%b0|科学通报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KXTB|54|12 +2454906|非活性苯衍生物的磺化反应|http://www.cnki.com.cn/Article/CJFDTOTAL-GDXH506.023.htm|邹友思,戴李宗,林静|09194070,09227652,09225630|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09194070%3b09227652%3b09225630%3b&scholarName=%e9%82%b9%e5%8f%8b%e6%80%9d|高等学校化学学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GDXH|274|5 +2454906|浅析乡土纠纷的特点及法律适用|http://www.cnki.com.cn/Article/CJFDTOTAL-GQGA201008105.htm|韦林静|24465237|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24465237%3b&scholarName=%e9%9f%a6%e6%9e%97%e9%9d%99|消费导刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/GQGA|49|0 +2454906|切花保鲜剂(下)|http://www.cnki.com.cn/Article/CJFDTOTAL-HXSS199202019.htm|林静,郭奇珍,胡友川|09227652,10230379,09213701|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b10230379%3b09213701%3b&scholarName=%e6%9e%97%e9%9d%99|化学世界|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HXSS|54|0 +2454906|卤代苯和卤代萘磺化产物的1~H NMR研究|http://www.cnki.com.cn/Article/CJFDTOTAL-PPXZ601.008.htm|邹友思,林静|09225630|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09225630%3b&scholarName=%e9%82%b9%e5%8f%8b%e6%80%9d|波谱学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/PPXZ|47|0 +2454906|非法所得是否应该课税?|http://www.cnki.com.cn/Article/CJFDTOTAL-KJWH200709137.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|科教文汇(上旬刊)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJWH|194|1 +2454906|三价碘有机物在有机合成中的应用|http://www.cnki.com.cn/Article/CJFDTOTAL-HXTB199006005.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|化学通报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HXTB|123|0 +2454906|负载型钴催化剂促进的不饱和脂肪酸酯中的双键过氧化|http://www.cnki.com.cn/Article/CJFDTOTAL-XDZK201003020.htm|李永燕,杨乐夫,张国玉,林静,蔡钒,方维平|24413424,10232062,13902099,09227652,10229705,09194152|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=24413424%3b10232062%3b13902099%3b09227652%3b10229705%3b09194152%3b&scholarName=%e6%9d%8e%e6%b0%b8%e7%87%95|厦门大学学报(自然科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDZK|116|0 +2454906|一个层面的两个层次——对行政法治二元结构的质疑——阅读余凌云教授《行政自由裁量论》|http://www.cnki.com.cn/Article/CJFDTOTAL-FZSL200711043.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|法制与社会|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FZSL|207|0 +2454906|“抱抱团”的一点法律思考|http://www.cnki.com.cn/Article/CJFDTOTAL-KJXH200708102.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|科教文汇(下旬刊)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJXH|22|0 +2454906|CCU-病房-院外连续管理模式对ACS病人二级预防目标的早期干预效果|http://www.cnki.com.cn/Article/CJFDTOTAL-SXHZ201533036.htm|吴林静,洪农,陈媛,黄贞,金婷,曾桂英,张锦辉|35549313,35549314,35549315,35549316,35549317,35549318,15135003|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=35549313%3b35549314%3b35549315%3b35549316%3b35549317%3b35549318%3b15135003%3b&scholarName=%e5%90%b4%e6%9e%97%e9%9d%99|护理研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SXHZ|122|3 +2454906|中国近几年宏观投资效率研究|http://www.cnki.com.cn/Article/CJFDTOTAL-SXDD200903015.htm|艾凌宇,林静|21865891,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=21865891%3b09227652%3b&scholarName=%e8%89%be%e5%87%8c%e5%ae%87|山西大学学报(哲学社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/SXDD|515|18 +2454906|合浦珠母贝碱性磷酸酶的分离纯化与性质研究|http://www.cnki.com.cn/Article/CJFDTOTAL-HYKX200010014.htm|谢莉萍,林静瑜,肖锐,张荣庆|09227653,08183339,08835641,08183306|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227653%3b08183339%3b08835641%3b08183306%3b&scholarName=%e8%b0%a2%e8%8e%89%e8%90%8d|海洋科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HYKX|296|51 +2454906|生理盐水和肝素钠盐水用于成人外周静脉留置针封管有效性的Meta分析|http://www.cnki.com.cn/Article/CJFDTOTAL-HLXZ201419030.htm|许丽春,胡雁,张锦辉,吴林静,傅建国|28594066,06696987,15135003,15134609,11562827|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=28594066%3b06696987%3b15135003%3b15134609%3b11562827%3b&scholarName=%e8%ae%b8%e4%b8%bd%e6%98%a5|护理学杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/HLXZ|1362|16 +2454906|我国上市公司并购中的税收筹划研究|http://cdmd.cnki.com.cn/Article/CDMD-10384-2009079634.htm|林静敏|22661889|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22661889%3b&scholarName=%e6%9e%97%e9%9d%99%e6%95%8f|||1593|14 +2454906|双向电泳联用质谱技术研究松材线虫和拟松材线虫的差异蛋白|http://www.cnki.com.cn/Article/CJFDTOTAL-ZNTB201325007.htm|罗茂春,刘颖,林静雯,王勤,潘沧桑,陈亮|07979334,09228486,22688637,09230141,10231223,09193173|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07979334%3b09228486%3b22688637%3b09230141%3b10231223%3b09193173%3b&scholarName=%e7%bd%97%e8%8c%82%e6%98%a5|中国农学通报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/ZNTB|106|2 +2454906|合浦珠母贝碱性磷酸酶的分离纯化和性质研究|http://cdmd.cnki.com.cn/Article/CDMD-10384-2002050889.htm|林静瑜|09227653|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227653%3b&scholarName=%e6%9e%97%e9%9d%99%e7%91%9c|||309|10 +2454906|松材线虫的早期诊断、快速检测技术及松材线虫与拟松材线虫的差异蛋白质组研究|http://cdmd.cnki.com.cn/Article/CDMD-10384-2009081127.htm|林静雯|22688637|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=22688637%3b&scholarName=%e6%9e%97%e9%9d%99%e9%9b%af|||275|3 +2454906|优化问题神经网络方法研究及实证分析|http://cdmd.cnki.com.cn/Article/CDMD-10384-2008059102.htm|林静怡|11474361|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=11474361%3b&scholarName=%e6%9e%97%e9%9d%99%e6%80%a1|||347|3 +2454906|厦门市不同时期典型砖混结构校舍抗震能力分析|http://www.cnki.com.cn/Article/CJFDTOTAL-WHCJ201103067.htm|王晓莉,黄建南,林静,袁兴仁|26502638,26502639,16087274,25037969,24583255|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26502638%3b26502639%3b16087274%3b25037969%3b24583255%3b&scholarName=%e7%8e%8b%e6%99%93%e8%8e%89|土木工程与管理学报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/WHCJ|45|0 +2454906|地佐辛和丙帕他莫用于开放性食管癌三野根治术术后镇痛的疗效观察|http://www.cnki.com.cn/Article/CJFDTOTAL-FJYY201406051.htm|郑鹏,郑萍,翁金森,林静萍,林艳,陈勇,杨建平|30906358,33266907,21823576,28208662,25906956,28208663,06669413|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=30906358%3b33266907%3b21823576%3b28208662%3b25906956%3b28208663%3b06669413%3b&scholarName=%e9%83%91%e9%b9%8f|福建医药杂志|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJYY|64|0 +2454906|我国高校男生集体宿舍便器设置的研究|http://www.cnki.com.cn/Article/CJFDTOTAL-FJJZ201104036.htm|陈少林,熊家晴,林静|25617584,09067419,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=25617584%3b09067419%3b09227652%3b&scholarName=%e9%99%88%e5%b0%91%e6%9e%97|福建建筑|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/FJJZ|69|0 +2454906|相对于SBPC-相关幂零子群的特征标的稳定限制|http://cdmd.cnki.com.cn/Article/CDMD-10384-2008058553.htm|林静|09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b&scholarName=%e6%9e%97%e9%9d%99|||12|0 +2454906|厦门湾海水-沉积物系统PCDD/Fs的多相分配及颗粒垂直通量研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGHI201211002014.htm|蔡明刚,洪清泉,纪凯献,何建华,高树基,梁俊华,林静|09224729,26871352,29525877,15300041,24516543,29525878,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09224729%3b26871352%3b29525877%3b15300041%3b24516543%3b29525878%3b09227652%3b&scholarName=%e8%94%a1%e6%98%8e%e5%88%9a|||46|0 +2454906|固体酸SO_4~(2-)/ZrO_2在生物柴油原料脱酸中的应用|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-SYBX200708001201.htm|张国玉,杨乐夫,左欣,张彬彬,林静,方维平,蔡俊修|13902099,10232062,13902109,09200021,09227652,09194152,09211641|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=13902099%3b10232062%3b13902109%3b09200021%3b09227652%3b09194152%3b09211641%3b&scholarName=%e5%bc%a0%e5%9b%bd%e7%8e%89|||43|0 +2454906|南极菲尔德斯半岛表层土壤及近岸沉积物中重金属的分布特征及污染评价|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGHY201109003557.htm|林静,王蕴,洪清泉,成震,蔡明刚|09227652,10968931,26871352,26871630,09224729|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09227652%3b10968931%3b26871352%3b26871630%3b09224729%3b&scholarName=%e6%9e%97%e9%9d%99|||62|1 +2454906|前体结构对氧化钙生物柴油酯交换反应催化活性的影响|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-SYBX200708002165.htm|张彬彬,杨乐夫,郭凛凛,张国玉,林静,方维平,蔡俊修|09200021,10232062,13902085,13902099,09227652,09194152,09211641|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09200021%3b10232062%3b13902085%3b13902099%3b09227652%3b09194152%3b09211641%3b&scholarName=%e5%bc%a0%e5%bd%ac%e5%bd%ac|||24|0 +2454906|泉州湾入海污染物总量控制研究——基于陆源污染物的调查与评价|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGHY201109003559.htm|赵雯璐,蔡明刚,王俊,杨圣云,肖佳媚,黄文怡,林静|26871353,09224729,09230103,05974084,09221118,26871354,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=26871353%3b09224729%3b09230103%3b05974084%3b09221118%3b26871354%3b09227652%3b&scholarName=%e8%b5%b5%e9%9b%af%e7%92%90|||75|0 +2454906|负载型碱金属固体碱催化酯交换反应制备生物柴油|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGHY200609002360.htm|林静,张彬彬,方荣谦,杨乐夫,蔡俊修|10232062,09227652,09211641,09225941,09200021|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=10232062%3b09227652%3b09211641%3b09225941%3b09200021%3b&scholarName=%e6%9e%97%e9%9d%99|||118|0 +2454906|近海实施入海污染物总量控制的理论与思考——以泉州湾为例|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-ZGHY201109003140.htm|蔡明刚,赵雯璐,王俊,杨圣云,黄文怡,林静|09224729,26871353,09230103,05974084,26871354,09227652|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=09224729%3b26871353%3b09230103%3b05974084%3b26871354%3b09227652%3b&scholarName=%e8%94%a1%e6%98%8e%e5%88%9a|||67|0 +2454906|变性剂和修饰剂对合浦珠母贝碱性磷酸酶活性和构象的影响|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-IGSS200109002444.htm|林静瑜,谢莉萍,张荣庆|08183339,08835641,09227653|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08183339%3b08835641%3b09227653%3b&scholarName=%e6%9e%97%e9%9d%99%e7%91%9c|||23|0 +2454906|合浦珠母贝碱性磷酸酶的纯化和性质研究|http://cpfd.cnki.com.cn/Article/CPFDTOTAL-IGSS200109002490.htm|谢莉萍,林静瑜,肖锐,张荣庆|08183339,08183306,08835641,09227653|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=08183339%3b08183306%3b08835641%3b09227653%3b&scholarName=%e8%b0%a2%e8%8e%89%e8%90%8d|||40|0 +2461979|基于五类数据源的情报学发展动向之计量可视化分析——国内情报学研究重点2012年度回顾与展望|http://www.cnki.com.cn/Article/CJFDTOTAL-QBKX201511022.htm|谭春辉,程凡|07628823,32740747|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07628823%3b32740747%3b&scholarName=%e8%b0%ad%e6%98%a5%e8%be%89|情报科学|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/QBKX|477|4 +2461979|近15年国家科技进步奖获奖成果科研合作分析|http://www.cnki.com.cn/Article/CJFDTOTAL-KJJB201611005.htm|谭春辉,程凡,麻晓杰|07628823,32740747,31018884|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07628823%3b32740747%3b31018884%3b&scholarName=%e8%b0%ad%e6%98%a5%e8%be%89|科技进步与对策|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KJJB|223|2 +2461979|2006—2015年新能源汽车电池技术专利数据分析|http://www.cnki.com.cn/Article/CJFDTOTAL-XXDB201802009.htm|谭春辉,吴晓风,程凡|07628823,38273163,32740747|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07628823%3b38273163%3b32740747%3b&scholarName=%e8%b0%ad%e6%98%a5%e8%be%89|中国科技资源导刊|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XXDB|175|0 +2461979|创新武汉市科技成果评价指标研究|http://www.cnki.com.cn/Article/CJFDTOTAL-KYGL2016S1087.htm|谭春辉,李思佳,程凡|07628823,32740746,32740747|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07628823%3b32740746%3b32740747%3b&scholarName=%e8%b0%ad%e6%98%a5%e8%be%89|科研管理|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KYGL|362|2 +2461979|中国高等教育学研究重点及前沿分析——基于三类数据源|http://www.cnki.com.cn/Article/CJFDTOTAL-CDSK201604013.htm|谭春辉,程凡|07628823,32740747|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07628823%3b32740747%3b&scholarName=%e8%b0%ad%e6%98%a5%e8%be%89|重庆大学学报(社会科学版)|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/CDSK|230|0 +2461979|“十五”至“十二五”期间国家科技进步奖获奖机构合作网络演化机理分析|http://www.cnki.com.cn/Article/CJFDTOTAL-XDQB201712024.htm|谭春辉,吴晓风,程凡|07628823,38273163,32740747|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07628823%3b38273163%3b32740747%3b&scholarName=%e8%b0%ad%e6%98%a5%e8%be%89|现代情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDQB|101|1 +2461979|基于知识图谱的国内知识服务研究的演变分析|http://www.cnki.com.cn/Article/CJFDTOTAL-XDQB201503021.htm|谭春辉,麻晓杰,李思佳,程凡|07628823,31018884,32740746,32740747|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07628823%3b31018884%3b32740746%3b32740747%3b&scholarName=%e8%b0%ad%e6%98%a5%e8%be%89|现代情报|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/XDQB|318|3 +2461979|国家科技进步奖获奖机构合作网络分析|http://www.cnki.com.cn/Article/CJFDTOTAL-KXGY201701009.htm|谭春辉,曾娟,程凡,李思佳|07628823,36061372,32740747,32740746|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=07628823%3b36061372%3b32740747%3b32740746%3b&scholarName=%e8%b0%ad%e6%98%a5%e8%be%89|科学管理研究|http://yuanjian.cnki.com.cn/CJFD/Detail/Index/KXGY|163|0 +2461979|基于专利分析的新能源汽车电池发展研究|http://cdmd.cnki.com.cn/Article/CDMD-10511-1017251657.htm|程凡|32740747|http://yuanjian.cnki.com.cn/scholar/Result?AuthorFilter=32740747%3b&scholarName=%e7%a8%8b%e5%87%a1|||561|2 \ No newline at end of file diff --git a/node_modules/.bin/semver b/node_modules/.bin/semver new file mode 100644 index 0000000..d592e69 --- /dev/null +++ b/node_modules/.bin/semver @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../semver/bin/semver" "$@" + ret=$? +else + node "$basedir/../semver/bin/semver" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/semver.cmd b/node_modules/.bin/semver.cmd new file mode 100644 index 0000000..eabc737 --- /dev/null +++ b/node_modules/.bin/semver.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\semver\bin\semver" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\semver\bin\semver" %* +) \ No newline at end of file diff --git a/node_modules/.bin/sshpk-conv b/node_modules/.bin/sshpk-conv new file mode 100644 index 0000000..c9c2987 --- /dev/null +++ b/node_modules/.bin/sshpk-conv @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../sshpk/bin/sshpk-conv" "$@" + ret=$? +else + node "$basedir/../sshpk/bin/sshpk-conv" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/sshpk-conv.cmd b/node_modules/.bin/sshpk-conv.cmd new file mode 100644 index 0000000..5397603 --- /dev/null +++ b/node_modules/.bin/sshpk-conv.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\sshpk\bin\sshpk-conv" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\sshpk\bin\sshpk-conv" %* +) \ No newline at end of file diff --git a/node_modules/.bin/sshpk-sign b/node_modules/.bin/sshpk-sign new file mode 100644 index 0000000..1a92124 --- /dev/null +++ b/node_modules/.bin/sshpk-sign @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../sshpk/bin/sshpk-sign" "$@" + ret=$? +else + node "$basedir/../sshpk/bin/sshpk-sign" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/sshpk-sign.cmd b/node_modules/.bin/sshpk-sign.cmd new file mode 100644 index 0000000..2aaf5e3 --- /dev/null +++ b/node_modules/.bin/sshpk-sign.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\sshpk\bin\sshpk-sign" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\sshpk\bin\sshpk-sign" %* +) \ No newline at end of file diff --git a/node_modules/.bin/sshpk-verify b/node_modules/.bin/sshpk-verify new file mode 100644 index 0000000..597a66b --- /dev/null +++ b/node_modules/.bin/sshpk-verify @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../sshpk/bin/sshpk-verify" "$@" + ret=$? +else + node "$basedir/../sshpk/bin/sshpk-verify" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/sshpk-verify.cmd b/node_modules/.bin/sshpk-verify.cmd new file mode 100644 index 0000000..37ecd35 --- /dev/null +++ b/node_modules/.bin/sshpk-verify.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\sshpk\bin\sshpk-verify" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\sshpk\bin\sshpk-verify" %* +) \ No newline at end of file diff --git a/node_modules/.bin/uuid b/node_modules/.bin/uuid new file mode 100644 index 0000000..f3bfcf4 --- /dev/null +++ b/node_modules/.bin/uuid @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../uuid/bin/uuid" "$@" + ret=$? +else + node "$basedir/../uuid/bin/uuid" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/uuid.cmd b/node_modules/.bin/uuid.cmd new file mode 100644 index 0000000..c59a2fd --- /dev/null +++ b/node_modules/.bin/uuid.cmd @@ -0,0 +1,7 @@ +@IF EXIST "%~dp0\node.exe" ( + "%~dp0\node.exe" "%~dp0\..\uuid\bin\uuid" %* +) ELSE ( + @SETLOCAL + @SET PATHEXT=%PATHEXT:;.JS;=;% + node "%~dp0\..\uuid\bin\uuid" %* +) \ No newline at end of file diff --git a/node_modules/ajv/.tonic_example.js b/node_modules/ajv/.tonic_example.js new file mode 100644 index 0000000..aa11812 --- /dev/null +++ b/node_modules/ajv/.tonic_example.js @@ -0,0 +1,20 @@ +var Ajv = require('ajv'); +var ajv = new Ajv({allErrors: true}); + +var schema = { + "properties": { + "foo": { "type": "string" }, + "bar": { "type": "number", "maximum": 3 } + } +}; + +var validate = ajv.compile(schema); + +test({"foo": "abc", "bar": 2}); +test({"foo": 2, "bar": 4}); + +function test(data) { + var valid = validate(data); + if (valid) console.log('Valid!'); + else console.log('Invalid: ' + ajv.errorsText(validate.errors)); +} \ No newline at end of file diff --git a/node_modules/ajv/LICENSE b/node_modules/ajv/LICENSE new file mode 100644 index 0000000..8105396 --- /dev/null +++ b/node_modules/ajv/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Evgeny Poberezkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/node_modules/ajv/README.md b/node_modules/ajv/README.md new file mode 100644 index 0000000..387c81d --- /dev/null +++ b/node_modules/ajv/README.md @@ -0,0 +1,1327 @@ +Ajv logo + +# Ajv: Another JSON Schema Validator + +The fastest JSON Schema validator for Node.js and browser with draft 6 support. + + +[![Build Status](https://travis-ci.org/epoberezkin/ajv.svg?branch=master)](https://travis-ci.org/epoberezkin/ajv) +[![npm version](https://badge.fury.io/js/ajv.svg)](https://www.npmjs.com/package/ajv) +[![npm@beta](https://img.shields.io/npm/v/ajv/beta.svg)](https://github.com/epoberezkin/ajv/tree/beta) +[![npm downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv) +[![Coverage Status](https://coveralls.io/repos/epoberezkin/ajv/badge.svg?branch=master&service=github)](https://coveralls.io/github/epoberezkin/ajv?branch=master) +[![Greenkeeper badge](https://badges.greenkeeper.io/epoberezkin/ajv.svg)](https://greenkeeper.io/) +[![Gitter](https://img.shields.io/gitter/room/ajv-validator/ajv.svg)](https://gitter.im/ajv-validator/ajv) + + +__Please note__: Ajv [version 6](https://github.com/epoberezkin/ajv/tree/beta) with [JSON Schema draft-07](http://json-schema.org/work-in-progress) support is released. Use `npm install ajv@beta` to install. + + +## Using version 5 + +[JSON Schema draft-06](https://trac.tools.ietf.org/html/draft-wright-json-schema-validation-01) is published. + +[Ajv version 5.0.0](https://github.com/epoberezkin/ajv/releases/tag/5.0.0) that supports draft-06 is released. It may require either migrating your schemas or updating your code (to continue using draft-04 and v5 schemas). + +__Please note__: To use Ajv with draft-04 schemas you need to explicitly add meta-schema to the validator instance: + +```javascript +ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-04.json')); +``` + + +## Contents + +- [Performance](#performance) +- [Features](#features) +- [Getting started](#getting-started) +- [Frequently Asked Questions](https://github.com/epoberezkin/ajv/blob/master/FAQ.md) +- [Using in browser](#using-in-browser) +- [Command line interface](#command-line-interface) +- Validation + - [Keywords](#validation-keywords) + - [Formats](#formats) + - [Combining schemas with $ref](#ref) + - [$data reference](#data-reference) + - NEW: [$merge and $patch keywords](#merge-and-patch-keywords) + - [Defining custom keywords](#defining-custom-keywords) + - [Asynchronous schema compilation](#asynchronous-schema-compilation) + - [Asynchronous validation](#asynchronous-validation) +- Modifying data during validation + - [Filtering data](#filtering-data) + - [Assigning defaults](#assigning-defaults) + - [Coercing data types](#coercing-data-types) +- API + - [Methods](#api) + - [Options](#options) + - [Validation errors](#validation-errors) +- [Related packages](#related-packages) +- [Packages using Ajv](#some-packages-using-ajv) +- [Tests, Contributing, History, License](#tests) + + +## Performance + +Ajv generates code using [doT templates](https://github.com/olado/doT) to turn JSON schemas into super-fast validation functions that are efficient for v8 optimization. + +Currently Ajv is the fastest and the most standard compliant validator according to these benchmarks: + +- [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark) - 50% faster than the second place +- [jsck benchmark](https://github.com/pandastrike/jsck#benchmarks) - 20-190% faster +- [z-schema benchmark](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html) +- [themis benchmark](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html) + + +Performance of different validators by [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark): + +[![performance](https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=32,4,1&chs=600x416&chxl=-1:|djv|ajv|json-schema-validator-generator|jsen|is-my-json-valid|themis|z-schema|jsck|skeemas|json-schema-library|tv4&chd=t:100,98,72.1,66.8,50.1,15.1,6.1,3.8,1.2,0.7,0.2)](https://github.com/ebdrup/json-schema-benchmark/blob/master/README.md#performance) + + +## Features + +- Ajv implements full JSON Schema [draft 6](http://json-schema.org/) and draft 4 standards: + - all validation keywords (see [JSON Schema validation keywords](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md)) + - full support of remote refs (remote schemas have to be added with `addSchema` or compiled to be available) + - support of circular references between schemas + - correct string lengths for strings with unicode pairs (can be turned off) + - [formats](#formats) defined by JSON Schema draft 4 standard and custom formats (can be turned off) + - [validates schemas against meta-schema](#api-validateschema) +- supports [browsers](#using-in-browser) and Node.js 0.10-8.x +- [asynchronous loading](#asynchronous-schema-compilation) of referenced schemas during compilation +- "All errors" validation mode with [option allErrors](#options) +- [error messages with parameters](#validation-errors) describing error reasons to allow creating custom error messages +- i18n error messages support with [ajv-i18n](https://github.com/epoberezkin/ajv-i18n) package +- [filtering data](#filtering-data) from additional properties +- [assigning defaults](#assigning-defaults) to missing properties and items +- [coercing data](#coercing-data-types) to the types specified in `type` keywords +- [custom keywords](#defining-custom-keywords) +- draft-6 keywords `const`, `contains` and `propertyNames` +- draft-6 boolean schemas (`true`/`false` as a schema to always pass/fail). +- keywords `switch`, `patternRequired`, `formatMaximum` / `formatMinimum` and `formatExclusiveMaximum` / `formatExclusiveMinimum` from [JSON-schema extension proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals) with [ajv-keywords](https://github.com/epoberezkin/ajv-keywords) package +- [$data reference](#data-reference) to use values from the validated data as values for the schema keywords +- [asynchronous validation](#asynchronous-validation) of custom formats and keywords + +Currently Ajv is the only validator that passes all the tests from [JSON Schema Test Suite](https://github.com/json-schema/JSON-Schema-Test-Suite) (according to [json-schema-benchmark](https://github.com/ebdrup/json-schema-benchmark), apart from the test that requires that `1.0` is not an integer that is impossible to satisfy in JavaScript). + + +## Install + +``` +npm install ajv +``` + +or to install [version 6](https://github.com/epoberezkin/ajv/tree/beta): + +``` +npm install ajv@beta +``` + + +## Getting started + +Try it in the Node.js REPL: https://tonicdev.com/npm/ajv + + +The fastest validation call: + +```javascript +var Ajv = require('ajv'); +var ajv = new Ajv(); // options can be passed, e.g. {allErrors: true} +var validate = ajv.compile(schema); +var valid = validate(data); +if (!valid) console.log(validate.errors); +``` + +or with less code + +```javascript +// ... +var valid = ajv.validate(schema, data); +if (!valid) console.log(ajv.errors); +// ... +``` + +or + +```javascript +// ... +var valid = ajv.addSchema(schema, 'mySchema') + .validate('mySchema', data); +if (!valid) console.log(ajv.errorsText()); +// ... +``` + +See [API](#api) and [Options](#options) for more details. + +Ajv compiles schemas to functions and caches them in all cases (using schema serialized with [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) or a custom function as a key), so that the next time the same schema is used (not necessarily the same object instance) it won't be compiled again. + +The best performance is achieved when using compiled functions returned by `compile` or `getSchema` methods (there is no additional function call). + +__Please note__: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](#validation-errors) + + +## Using in browser + +You can require Ajv directly from the code you browserify - in this case Ajv will be a part of your bundle. + +If you need to use Ajv in several bundles you can create a separate UMD bundle using `npm run bundle` script (thanks to [siddo420](https://github.com/siddo420)). + +Then you need to load Ajv in the browser: +```html + +``` + +This bundle can be used with different module systems; it creates global `Ajv` if no module system is found. + +The browser bundle is available on [cdnjs](https://cdnjs.com/libraries/ajv). + +Ajv is tested with these browsers: + +[![Sauce Test Status](https://saucelabs.com/browser-matrix/epoberezkin.svg)](https://saucelabs.com/u/epoberezkin) + +__Please note__: some frameworks, e.g. Dojo, may redefine global require in such way that is not compatible with CommonJS module format. In such case Ajv bundle has to be loaded before the framework and then you can use global Ajv (see issue [#234](https://github.com/epoberezkin/ajv/issues/234)). + + +## Command line interface + +CLI is available as a separate npm package [ajv-cli](https://github.com/jessedc/ajv-cli). It supports: + +- compiling JSON-schemas to test their validity +- BETA: generating standalone module exporting a validation function to be used without Ajv (using [ajv-pack](https://github.com/epoberezkin/ajv-pack)) +- migrate schemas to draft-06 (using [json-schema-migrate](https://github.com/epoberezkin/json-schema-migrate)) +- validating data file(s) against JSON-schema +- testing expected validity of data against JSON-schema +- referenced schemas +- custom meta-schemas +- files in JSON and JavaScript format +- all Ajv options +- reporting changes in data after validation in [JSON-patch](https://tools.ietf.org/html/rfc6902) format + + +## Validation keywords + +Ajv supports all validation keywords from draft 4 of JSON-schema standard: + +- [type](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#type) +- [for numbers](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#keywords-for-numbers) - maximum, minimum, exclusiveMaximum, exclusiveMinimum, multipleOf +- [for strings](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#keywords-for-strings) - maxLength, minLength, pattern, format +- [for arrays](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#keywords-for-arrays) - maxItems, minItems, uniqueItems, items, additionalItems, [contains](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#contains) +- [for objects](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#keywords-for-objects) - maxProperties, minProperties, required, properties, patternProperties, additionalProperties, dependencies, [propertyNames](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#propertynames) +- [for all types](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#keywords-for-all-types) - enum, [const](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#const) +- [compound keywords](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#compound-keywords) - not, oneOf, anyOf, allOf + +With [ajv-keywords](https://github.com/epoberezkin/ajv-keywords) package Ajv also supports validation keywords from [JSON Schema extension proposals](https://github.com/json-schema/json-schema/wiki/v5-Proposals) for JSON-schema standard: + +- [switch](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#switch-proposed) - conditional validation with a sequence of if/then clauses +- [patternRequired](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#patternrequired-proposed) - like `required` but with patterns that some property should match. +- [formatMaximum, formatMinimum, formatExclusiveMaximum, formatExclusiveMinimum](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md#formatmaximum--formatminimum-and-exclusiveformatmaximum--exclusiveformatminimum-proposed) - setting limits for date, time, etc. + +See [JSON Schema validation keywords](https://github.com/epoberezkin/ajv/blob/master/KEYWORDS.md) for more details. + + +## Formats + +The following formats are supported for string validation with "format" keyword: + +- _date_: full-date according to [RFC3339](http://tools.ietf.org/html/rfc3339#section-5.6). +- _time_: time with optional time-zone. +- _date-time_: date-time from the same source (time-zone is mandatory). `date`, `time` and `date-time` validate ranges in `full` mode and only regexp in `fast` mode (see [options](#options)). +- _uri_: full uri with optional protocol. +- _url_: [URL record](https://url.spec.whatwg.org/#concept-url). +- _uri-template_: URI template according to [RFC6570](https://tools.ietf.org/html/rfc6570) +- _email_: email address. +- _hostname_: host name according to [RFC1034](http://tools.ietf.org/html/rfc1034#section-3.5). +- _ipv4_: IP address v4. +- _ipv6_: IP address v6. +- _regex_: tests whether a string is a valid regular expression by passing it to RegExp constructor. +- _uuid_: Universally Unique IDentifier according to [RFC4122](http://tools.ietf.org/html/rfc4122). +- _json-pointer_: JSON-pointer according to [RFC6901](https://tools.ietf.org/html/rfc6901). +- _relative-json-pointer_: relative JSON-pointer according to [this draft](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00). + +There are two modes of format validation: `fast` and `full`. This mode affects formats `date`, `time`, `date-time`, `uri`, `email`, and `hostname`. See [Options](#options) for details. + +You can add additional formats and replace any of the formats above using [addFormat](#api-addformat) method. + +The option `unknownFormats` allows changing the default behaviour when an unknown format is encountered. In this case Ajv can either fail schema compilation (default) or ignore it (default in versions before 5.0.0). You also can whitelist specific format(s) to be ignored. See [Options](#options) for details. + +You can find patterns used for format validation and the sources that were used in [formats.js](https://github.com/epoberezkin/ajv/blob/master/lib/compile/formats.js). + + +## Combining schemas with $ref + +You can structure your validation logic across multiple schema files and have schemas reference each other using `$ref` keyword. + +Example: + +```javascript +var schema = { + "$id": "http://example.com/schemas/schema.json", + "type": "object", + "properties": { + "foo": { "$ref": "defs.json#/definitions/int" }, + "bar": { "$ref": "defs.json#/definitions/str" } + } +}; + +var defsSchema = { + "$id": "http://example.com/schemas/defs.json", + "definitions": { + "int": { "type": "integer" }, + "str": { "type": "string" } + } +}; +``` + +Now to compile your schema you can either pass all schemas to Ajv instance: + +```javascript +var ajv = new Ajv({schemas: [schema, defsSchema]}); +var validate = ajv.getSchema('http://example.com/schemas/schema.json'); +``` + +or use `addSchema` method: + +```javascript +var ajv = new Ajv; +var validate = ajv.addSchema(defsSchema) + .compile(schema); +``` + +See [Options](#options) and [addSchema](#api) method. + +__Please note__: +- `$ref` is resolved as the uri-reference using schema $id as the base URI (see the example). +- References can be recursive (and mutually recursive) to implement the schemas for different data structures (such as linked lists, trees, graphs, etc.). +- You don't have to host your schema files at the URIs that you use as schema $id. These URIs are only used to identify the schemas, and according to JSON Schema specification validators should not expect to be able to download the schemas from these URIs. +- The actual location of the schema file in the file system is not used. +- You can pass the identifier of the schema as the second parameter of `addSchema` method or as a property name in `schemas` option. This identifier can be used instead of (or in addition to) schema $id. +- You cannot have the same $id (or the schema identifier) used for more than one schema - the exception will be thrown. +- You can implement dynamic resolution of the referenced schemas using `compileAsync` method. In this way you can store schemas in any system (files, web, database, etc.) and reference them without explicitly adding to Ajv instance. See [Asynchronous schema compilation](#asynchronous-schema-compilation). + + +## $data reference + +With `$data` option you can use values from the validated data as the values for the schema keywords. See [proposal](https://github.com/json-schema/json-schema/wiki/$data-(v5-proposal)) for more information about how it works. + +`$data` reference is supported in the keywords: const, enum, format, maximum/minimum, exclusiveMaximum / exclusiveMinimum, maxLength / minLength, maxItems / minItems, maxProperties / minProperties, formatMaximum / formatMinimum, formatExclusiveMaximum / formatExclusiveMinimum, multipleOf, pattern, required, uniqueItems. + +The value of "$data" should be a [JSON-pointer](https://tools.ietf.org/html/rfc6901) to the data (the root is always the top level data object, even if the $data reference is inside a referenced subschema) or a [relative JSON-pointer](http://tools.ietf.org/html/draft-luff-relative-json-pointer-00) (it is relative to the current point in data; if the $data reference is inside a referenced subschema it cannot point to the data outside of the root level for this subschema). + +Examples. + +This schema requires that the value in property `smaller` is less or equal than the value in the property larger: + +```javascript +var ajv = new Ajv({$data: true}); + +var schema = { + "properties": { + "smaller": { + "type": "number", + "maximum": { "$data": "1/larger" } + }, + "larger": { "type": "number" } + } +}; + +var validData = { + smaller: 5, + larger: 7 +}; + +ajv.validate(schema, validData); // true +``` + +This schema requires that the properties have the same format as their field names: + +```javascript +var schema = { + "additionalProperties": { + "type": "string", + "format": { "$data": "0#" } + } +}; + +var validData = { + 'date-time': '1963-06-19T08:30:06.283185Z', + email: 'joe.bloggs@example.com' +} +``` + +`$data` reference is resolved safely - it won't throw even if some property is undefined. If `$data` resolves to `undefined` the validation succeeds (with the exclusion of `const` keyword). If `$data` resolves to incorrect type (e.g. not "number" for maximum keyword) the validation fails. + + +## $merge and $patch keywords + +With the package [ajv-merge-patch](https://github.com/epoberezkin/ajv-merge-patch) you can use the keywords `$merge` and `$patch` that allow extending JSON-schemas with patches using formats [JSON Merge Patch (RFC 7396)](https://tools.ietf.org/html/rfc7396) and [JSON Patch (RFC 6902)](https://tools.ietf.org/html/rfc6902). + +To add keywords `$merge` and `$patch` to Ajv instance use this code: + +```javascript +require('ajv-merge-patch')(ajv); +``` + +Examples. + +Using `$merge`: + +```json +{ + "$merge": { + "source": { + "type": "object", + "properties": { "p": { "type": "string" } }, + "additionalProperties": false + }, + "with": { + "properties": { "q": { "type": "number" } } + } + } +} +``` + +Using `$patch`: + +```json +{ + "$patch": { + "source": { + "type": "object", + "properties": { "p": { "type": "string" } }, + "additionalProperties": false + }, + "with": [ + { "op": "add", "path": "/properties/q", "value": { "type": "number" } } + ] + } +} +``` + +The schemas above are equivalent to this schema: + +```json +{ + "type": "object", + "properties": { + "p": { "type": "string" }, + "q": { "type": "number" } + }, + "additionalProperties": false +} +``` + +The properties `source` and `with` in the keywords `$merge` and `$patch` can use absolute or relative `$ref` to point to other schemas previously added to the Ajv instance or to the fragments of the current schema. + +See the package [ajv-merge-patch](https://github.com/epoberezkin/ajv-merge-patch) for more information. + + +## Defining custom keywords + +The advantages of using custom keywords are: + +- allow creating validation scenarios that cannot be expressed using JSON Schema +- simplify your schemas +- help bringing a bigger part of the validation logic to your schemas +- make your schemas more expressive, less verbose and closer to your application domain +- implement custom data processors that modify your data (`modifying` option MUST be used in keyword definition) and/or create side effects while the data is being validated + +If a keyword is used only for side-effects and its validation result is pre-defined, use option `valid: true/false` in keyword definition to simplify both generated code (no error handling in case of `valid: true`) and your keyword functions (no need to return any validation result). + +The concerns you have to be aware of when extending JSON-schema standard with custom keywords are the portability and understanding of your schemas. You will have to support these custom keywords on other platforms and to properly document these keywords so that everybody can understand them in your schemas. + +You can define custom keywords with [addKeyword](#api-addkeyword) method. Keywords are defined on the `ajv` instance level - new instances will not have previously defined keywords. + +Ajv allows defining keywords with: +- validation function +- compilation function +- macro function +- inline compilation function that should return code (as string) that will be inlined in the currently compiled schema. + +Example. `range` and `exclusiveRange` keywords using compiled schema: + +```javascript +ajv.addKeyword('range', { + type: 'number', + compile: function (sch, parentSchema) { + var min = sch[0]; + var max = sch[1]; + + return parentSchema.exclusiveRange === true + ? function (data) { return data > min && data < max; } + : function (data) { return data >= min && data <= max; } + } +}); + +var schema = { "range": [2, 4], "exclusiveRange": true }; +var validate = ajv.compile(schema); +console.log(validate(2.01)); // true +console.log(validate(3.99)); // true +console.log(validate(2)); // false +console.log(validate(4)); // false +``` + +Several custom keywords (typeof, instanceof, range and propertyNames) are defined in [ajv-keywords](https://github.com/epoberezkin/ajv-keywords) package - they can be used for your schemas and as a starting point for your own custom keywords. + +See [Defining custom keywords](https://github.com/epoberezkin/ajv/blob/master/CUSTOM.md) for more details. + + +## Asynchronous schema compilation + +During asynchronous compilation remote references are loaded using supplied function. See `compileAsync` [method](#api-compileAsync) and `loadSchema` [option](#options). + +Example: + +```javascript +var ajv = new Ajv({ loadSchema: loadSchema }); + +ajv.compileAsync(schema).then(function (validate) { + var valid = validate(data); + // ... +}); + +function loadSchema(uri) { + return request.json(uri).then(function (res) { + if (res.statusCode >= 400) + throw new Error('Loading error: ' + res.statusCode); + return res.body; + }); +} +``` + +__Please note__: [Option](#options) `missingRefs` should NOT be set to `"ignore"` or `"fail"` for asynchronous compilation to work. + + +## Asynchronous validation + +Example in Node.js REPL: https://tonicdev.com/esp/ajv-asynchronous-validation + +You can define custom formats and keywords that perform validation asynchronously by accessing database or some other service. You should add `async: true` in the keyword or format definition (see [addFormat](#api-addformat), [addKeyword](#api-addkeyword) and [Defining custom keywords](#defining-custom-keywords)). + +If your schema uses asynchronous formats/keywords or refers to some schema that contains them it should have `"$async": true` keyword so that Ajv can compile it correctly. If asynchronous format/keyword or reference to asynchronous schema is used in the schema without `$async` keyword Ajv will throw an exception during schema compilation. + +__Please note__: all asynchronous subschemas that are referenced from the current or other schemas should have `"$async": true` keyword as well, otherwise the schema compilation will fail. + +Validation function for an asynchronous custom format/keyword should return a promise that resolves with `true` or `false` (or rejects with `new Ajv.ValidationError(errors)` if you want to return custom errors from the keyword function). Ajv compiles asynchronous schemas to either [es7 async functions](http://tc39.github.io/ecmascript-asyncawait/) that can optionally be transpiled with [nodent](https://github.com/MatAtBread/nodent) or with [regenerator](https://github.com/facebook/regenerator) or to [generator functions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function*) that can be optionally transpiled with regenerator as well. You can also supply any other transpiler as a function. See [Options](#options). + +The compiled validation function has `$async: true` property (if the schema is asynchronous), so you can differentiate these functions if you are using both synchronous and asynchronous schemas. + +If you are using generators, the compiled validation function can be either wrapped with [co](https://github.com/tj/co) (default) or returned as generator function, that can be used directly, e.g. in [koa](http://koajs.com/) 1.0. `co` is a small library, it is included in Ajv (both as npm dependency and in the browser bundle). + +Async functions are currently supported in Chrome 55, Firefox 52, Node.js 7 (with --harmony-async-await) and MS Edge 13 (with flag). + +Generator functions are currently supported in Chrome, Firefox and Node.js. + +If you are using Ajv in other browsers or in older versions of Node.js you should use one of available transpiling options. All provided async modes use global Promise class. If your platform does not have Promise you should use a polyfill that defines it. + +Validation result will be a promise that resolves with validated data or rejects with an exception `Ajv.ValidationError` that contains the array of validation errors in `errors` property. + + +Example: + +```javascript +/** + * Default mode is non-transpiled generator function wrapped with `co`. + * Using package ajv-async (https://github.com/epoberezkin/ajv-async) + * you can auto-detect the best async mode. + * In this case, without "async" and "transpile" options + * (or with option {async: true}) + * Ajv will choose the first supported/installed option in this order: + * 1. native async function + * 2. native generator function wrapped with co + * 3. es7 async functions transpiled with nodent + * 4. es7 async functions transpiled with regenerator + */ + +var setupAsync = require('ajv-async'); +var ajv = setupAsync(new Ajv); + +ajv.addKeyword('idExists', { + async: true, + type: 'number', + validate: checkIdExists +}); + + +function checkIdExists(schema, data) { + return knex(schema.table) + .select('id') + .where('id', data) + .then(function (rows) { + return !!rows.length; // true if record is found + }); +} + +var schema = { + "$async": true, + "properties": { + "userId": { + "type": "integer", + "idExists": { "table": "users" } + }, + "postId": { + "type": "integer", + "idExists": { "table": "posts" } + } + } +}; + +var validate = ajv.compile(schema); + +validate({ userId: 1, postId: 19 }) +.then(function (data) { + console.log('Data is valid', data); // { userId: 1, postId: 19 } +}) +.catch(function (err) { + if (!(err instanceof Ajv.ValidationError)) throw err; + // data is invalid + console.log('Validation errors:', err.errors); +}); +``` + +### Using transpilers with asynchronous validation functions. + +To use a transpiler you should separately install it (or load its bundle in the browser). + +Ajv npm package includes minified browser bundles of regenerator and nodent in dist folder. + + +#### Using nodent + +```javascript +var setupAsync = require('ajv-async'); +var ajv = new Ajv({ /* async: 'es7', */ transpile: 'nodent' }); +setupAsync(ajv); +var validate = ajv.compile(schema); // transpiled es7 async function +validate(data).then(successFunc).catch(errorFunc); +``` + +`npm install nodent` or use `nodent.min.js` from dist folder of npm package. + + +#### Using regenerator + +```javascript +var setupAsync = require('ajv-async'); +var ajv = new Ajv({ /* async: 'es7', */ transpile: 'regenerator' }); +setupAsync(ajv); +var validate = ajv.compile(schema); // transpiled es7 async function +validate(data).then(successFunc).catch(errorFunc); +``` + +`npm install regenerator` or use `regenerator.min.js` from dist folder of npm package. + + +#### Using other transpilers + +```javascript +var ajv = new Ajv({ async: 'es7', processCode: transpileFunc }); +var validate = ajv.compile(schema); // transpiled es7 async function +validate(data).then(successFunc).catch(errorFunc); +``` + +See [Options](#options). + + +#### Comparison of async modes + +|mode|transpile
speed*|run-time
speed*|bundle
size| +|---|:-:|:-:|:-:| +|es7 async
(native)|-|0.75|-| +|generators
(native)|-|1.0|-| +|es7.nodent|1.35|1.1|215Kb| +|es7.regenerator|1.0|2.7|1109Kb| +|regenerator|1.0|3.2|1109Kb| + +\* Relative performance in Node.js 7.x — smaller is better. + +[nodent](https://github.com/MatAtBread/nodent) has several advantages: + +- much smaller browser bundle than regenerator +- almost the same performance of generated code as native generators in Node.js and the latest Chrome +- much better performance than native generators in other browsers +- works in IE 9 (regenerator does not) + + +## Filtering data + +With [option `removeAdditional`](#options) (added by [andyscott](https://github.com/andyscott)) you can filter data during the validation. + +This option modifies original data. + +Example: + +```javascript +var ajv = new Ajv({ removeAdditional: true }); +var schema = { + "additionalProperties": false, + "properties": { + "foo": { "type": "number" }, + "bar": { + "additionalProperties": { "type": "number" }, + "properties": { + "baz": { "type": "string" } + } + } + } +} + +var data = { + "foo": 0, + "additional1": 1, // will be removed; `additionalProperties` == false + "bar": { + "baz": "abc", + "additional2": 2 // will NOT be removed; `additionalProperties` != false + }, +} + +var validate = ajv.compile(schema); + +console.log(validate(data)); // true +console.log(data); // { "foo": 0, "bar": { "baz": "abc", "additional2": 2 } +``` + +If `removeAdditional` option in the example above were `"all"` then both `additional1` and `additional2` properties would have been removed. + +If the option were `"failing"` then property `additional1` would have been removed regardless of its value and property `additional2` would have been removed only if its value were failing the schema in the inner `additionalProperties` (so in the example above it would have stayed because it passes the schema, but any non-number would have been removed). + +__Please note__: If you use `removeAdditional` option with `additionalProperties` keyword inside `anyOf`/`oneOf` keywords your validation can fail with this schema, for example: + +```json +{ + "type": "object", + "oneOf": [ + { + "properties": { + "foo": { "type": "string" } + }, + "required": [ "foo" ], + "additionalProperties": false + }, + { + "properties": { + "bar": { "type": "integer" } + }, + "required": [ "bar" ], + "additionalProperties": false + } + ] +} +``` + +The intention of the schema above is to allow objects with either the string property "foo" or the integer property "bar", but not with both and not with any other properties. + +With the option `removeAdditional: true` the validation will pass for the object `{ "foo": "abc"}` but will fail for the object `{"bar": 1}`. It happens because while the first subschema in `oneOf` is validated, the property `bar` is removed because it is an additional property according to the standard (because it is not included in `properties` keyword in the same schema). + +While this behaviour is unexpected (issues [#129](https://github.com/epoberezkin/ajv/issues/129), [#134](https://github.com/epoberezkin/ajv/issues/134)), it is correct. To have the expected behaviour (both objects are allowed and additional properties are removed) the schema has to be refactored in this way: + +```json +{ + "type": "object", + "properties": { + "foo": { "type": "string" }, + "bar": { "type": "integer" } + }, + "additionalProperties": false, + "oneOf": [ + { "required": [ "foo" ] }, + { "required": [ "bar" ] } + ] +} +``` + +The schema above is also more efficient - it will compile into a faster function. + + +## Assigning defaults + +With [option `useDefaults`](#options) Ajv will assign values from `default` keyword in the schemas of `properties` and `items` (when it is the array of schemas) to the missing properties and items. + +This option modifies original data. + +__Please note__: by default the default value is inserted in the generated validation code as a literal (starting from v4.0), so the value inserted in the data will be the deep clone of the default in the schema. + +If you need to insert the default value in the data by reference pass the option `useDefaults: "shared"`. + +Inserting defaults by reference can be faster (in case you have an object in `default`) and it allows to have dynamic values in defaults, e.g. timestamp, without recompiling the schema. The side effect is that modifying the default value in any validated data instance will change the default in the schema and in other validated data instances. See example 3 below. + + +Example 1 (`default` in `properties`): + +```javascript +var ajv = new Ajv({ useDefaults: true }); +var schema = { + "type": "object", + "properties": { + "foo": { "type": "number" }, + "bar": { "type": "string", "default": "baz" } + }, + "required": [ "foo", "bar" ] +}; + +var data = { "foo": 1 }; + +var validate = ajv.compile(schema); + +console.log(validate(data)); // true +console.log(data); // { "foo": 1, "bar": "baz" } +``` + +Example 2 (`default` in `items`): + +```javascript +var schema = { + "type": "array", + "items": [ + { "type": "number" }, + { "type": "string", "default": "foo" } + ] +} + +var data = [ 1 ]; + +var validate = ajv.compile(schema); + +console.log(validate(data)); // true +console.log(data); // [ 1, "foo" ] +``` + +Example 3 (inserting "defaults" by reference): + +```javascript +var ajv = new Ajv({ useDefaults: 'shared' }); + +var schema = { + properties: { + foo: { + default: { bar: 1 } + } + } +} + +var validate = ajv.compile(schema); + +var data = {}; +console.log(validate(data)); // true +console.log(data); // { foo: { bar: 1 } } + +data.foo.bar = 2; + +var data2 = {}; +console.log(validate(data2)); // true +console.log(data2); // { foo: { bar: 2 } } +``` + +`default` keywords in other cases are ignored: + +- not in `properties` or `items` subschemas +- in schemas inside `anyOf`, `oneOf` and `not` (see [#42](https://github.com/epoberezkin/ajv/issues/42)) +- in `if` subschema of `switch` keyword +- in schemas generated by custom macro keywords + + +## Coercing data types + +When you are validating user inputs all your data properties are usually strings. The option `coerceTypes` allows you to have your data types coerced to the types specified in your schema `type` keywords, both to pass the validation and to use the correctly typed data afterwards. + +This option modifies original data. + +__Please note__: if you pass a scalar value to the validating function its type will be coerced and it will pass the validation, but the value of the variable you pass won't be updated because scalars are passed by value. + + +Example 1: + +```javascript +var ajv = new Ajv({ coerceTypes: true }); +var schema = { + "type": "object", + "properties": { + "foo": { "type": "number" }, + "bar": { "type": "boolean" } + }, + "required": [ "foo", "bar" ] +}; + +var data = { "foo": "1", "bar": "false" }; + +var validate = ajv.compile(schema); + +console.log(validate(data)); // true +console.log(data); // { "foo": 1, "bar": false } +``` + +Example 2 (array coercions): + +```javascript +var ajv = new Ajv({ coerceTypes: 'array' }); +var schema = { + "properties": { + "foo": { "type": "array", "items": { "type": "number" } }, + "bar": { "type": "boolean" } + } +}; + +var data = { "foo": "1", "bar": ["false"] }; + +var validate = ajv.compile(schema); + +console.log(validate(data)); // true +console.log(data); // { "foo": [1], "bar": false } +``` + +The coercion rules, as you can see from the example, are different from JavaScript both to validate user input as expected and to have the coercion reversible (to correctly validate cases where different types are defined in subschemas of "anyOf" and other compound keywords). + +See [Coercion rules](https://github.com/epoberezkin/ajv/blob/master/COERCION.md) for details. + + +## API + +##### new Ajv(Object options) -> Object + +Create Ajv instance. + + +##### .compile(Object schema) -> Function<Object data> + +Generate validating function and cache the compiled schema for future use. + +Validating function returns boolean and has properties `errors` with the errors from the last validation (`null` if there were no errors) and `schema` with the reference to the original schema. + +Unless the option `validateSchema` is false, the schema will be validated against meta-schema and if schema is invalid the error will be thrown. See [options](#options). + + +##### .compileAsync(Object schema [, Boolean meta] [, Function callback]) -> Promise + +Asynchronous version of `compile` method that loads missing remote schemas using asynchronous function in `options.loadSchema`. This function returns a Promise that resolves to a validation function. An optional callback passed to `compileAsync` will be called with 2 parameters: error (or null) and validating function. The returned promise will reject (and the callback will be called with an error) when: + +- missing schema can't be loaded (`loadSchema` returns a Promise that rejects). +- a schema containing a missing reference is loaded, but the reference cannot be resolved. +- schema (or some loaded/referenced schema) is invalid. + +The function compiles schema and loads the first missing schema (or meta-schema) until all missing schemas are loaded. + +You can asynchronously compile meta-schema by passing `true` as the second parameter. + +See example in [Asynchronous compilation](#asynchronous-schema-compilation). + + +##### .validate(Object schema|String key|String ref, data) -> Boolean + +Validate data using passed schema (it will be compiled and cached). + +Instead of the schema you can use the key that was previously passed to `addSchema`, the schema id if it was present in the schema or any previously resolved reference. + +Validation errors will be available in the `errors` property of Ajv instance (`null` if there were no errors). + +__Please note__: every time this method is called the errors are overwritten so you need to copy them to another variable if you want to use them later. + +If the schema is asynchronous (has `$async` keyword on the top level) this method returns a Promise. See [Asynchronous validation](#asynchronous-validation). + + +##### .addSchema(Array<Object>|Object schema [, String key]) -> Ajv + +Add schema(s) to validator instance. This method does not compile schemas (but it still validates them). Because of that dependencies can be added in any order and circular dependencies are supported. It also prevents unnecessary compilation of schemas that are containers for other schemas but not used as a whole. + +Array of schemas can be passed (schemas should have ids), the second parameter will be ignored. + +Key can be passed that can be used to reference the schema and will be used as the schema id if there is no id inside the schema. If the key is not passed, the schema id will be used as the key. + + +Once the schema is added, it (and all the references inside it) can be referenced in other schemas and used to validate data. + +Although `addSchema` does not compile schemas, explicit compilation is not required - the schema will be compiled when it is used first time. + +By default the schema is validated against meta-schema before it is added, and if the schema does not pass validation the exception is thrown. This behaviour is controlled by `validateSchema` option. + +__Please note__: Ajv uses the [method chaining syntax](https://en.wikipedia.org/wiki/Method_chaining) for all methods with the prefix `add*` and `remove*`. +This allows you to do nice things like the following. + +```javascript +var validate = new Ajv().addSchema(schema).addFormat(name, regex).getSchema(uri); +``` + +##### .addMetaSchema(Array<Object>|Object schema [, String key]) -> Ajv + +Adds meta schema(s) that can be used to validate other schemas. That function should be used instead of `addSchema` because there may be instance options that would compile a meta schema incorrectly (at the moment it is `removeAdditional` option). + +There is no need to explicitly add draft 6 meta schema (http://json-schema.org/draft-06/schema and http://json-schema.org/schema) - it is added by default, unless option `meta` is set to `false`. You only need to use it if you have a changed meta-schema that you want to use to validate your schemas. See `validateSchema`. + + +##### .validateSchema(Object schema) -> Boolean + +Validates schema. This method should be used to validate schemas rather than `validate` due to the inconsistency of `uri` format in JSON Schema standard. + +By default this method is called automatically when the schema is added, so you rarely need to use it directly. + +If schema doesn't have `$schema` property, it is validated against draft 6 meta-schema (option `meta` should not be false). + +If schema has `$schema` property, then the schema with this id (that should be previously added) is used to validate passed schema. + +Errors will be available at `ajv.errors`. + + +##### .getSchema(String key) -> Function<Object data> + +Retrieve compiled schema previously added with `addSchema` by the key passed to `addSchema` or by its full reference (id). The returned validating function has `schema` property with the reference to the original schema. + + +##### .removeSchema([Object schema|String key|String ref|RegExp pattern]) -> Ajv + +Remove added/cached schema. Even if schema is referenced by other schemas it can be safely removed as dependent schemas have local references. + +Schema can be removed using: +- key passed to `addSchema` +- it's full reference (id) +- RegExp that should match schema id or key (meta-schemas won't be removed) +- actual schema object that will be stable-stringified to remove schema from cache + +If no parameter is passed all schemas but meta-schemas will be removed and the cache will be cleared. + + +##### .addFormat(String name, String|RegExp|Function|Object format) -> Ajv + +Add custom format to validate strings or numbers. It can also be used to replace pre-defined formats for Ajv instance. + +Strings are converted to RegExp. + +Function should return validation result as `true` or `false`. + +If object is passed it should have properties `validate`, `compare` and `async`: + +- _validate_: a string, RegExp or a function as described above. +- _compare_: an optional comparison function that accepts two strings and compares them according to the format meaning. This function is used with keywords `formatMaximum`/`formatMinimum` (defined in [ajv-keywords](https://github.com/epoberezkin/ajv-keywords) package). It should return `1` if the first value is bigger than the second value, `-1` if it is smaller and `0` if it is equal. +- _async_: an optional `true` value if `validate` is an asynchronous function; in this case it should return a promise that resolves with a value `true` or `false`. +- _type_: an optional type of data that the format applies to. It can be `"string"` (default) or `"number"` (see https://github.com/epoberezkin/ajv/issues/291#issuecomment-259923858). If the type of data is different, the validation will pass. + +Custom formats can be also added via `formats` option. + + +##### .addKeyword(String keyword, Object definition) -> Ajv + +Add custom validation keyword to Ajv instance. + +Keyword should be different from all standard JSON schema keywords and different from previously defined keywords. There is no way to redefine keywords or to remove keyword definition from the instance. + +Keyword must start with a letter, `_` or `$`, and may continue with letters, numbers, `_`, `$`, or `-`. +It is recommended to use an application-specific prefix for keywords to avoid current and future name collisions. + +Example Keywords: +- `"xyz-example"`: valid, and uses prefix for the xyz project to avoid name collisions. +- `"example"`: valid, but not recommended as it could collide with future versions of JSON schema etc. +- `"3-example"`: invalid as numbers are not allowed to be the first character in a keyword + +Keyword definition is an object with the following properties: + +- _type_: optional string or array of strings with data type(s) that the keyword applies to. If not present, the keyword will apply to all types. +- _validate_: validating function +- _compile_: compiling function +- _macro_: macro function +- _inline_: compiling function that returns code (as string) +- _schema_: an optional `false` value used with "validate" keyword to not pass schema +- _metaSchema_: an optional meta-schema for keyword schema +- _modifying_: `true` MUST be passed if keyword modifies data +- _valid_: pass `true`/`false` to pre-define validation result, the result returned from validation function will be ignored. This option cannot be used with macro keywords. +- _$data_: an optional `true` value to support [$data reference](#data-reference) as the value of custom keyword. The reference will be resolved at validation time. If the keyword has meta-schema it would be extended to allow $data and it will be used to validate the resolved value. Supporting $data reference requires that keyword has validating function (as the only option or in addition to compile, macro or inline function). +- _async_: an optional `true` value if the validation function is asynchronous (whether it is compiled or passed in _validate_ property); in this case it should return a promise that resolves with a value `true` or `false`. This option is ignored in case of "macro" and "inline" keywords. +- _errors_: an optional boolean indicating whether keyword returns errors. If this property is not set Ajv will determine if the errors were set in case of failed validation. + +_compile_, _macro_ and _inline_ are mutually exclusive, only one should be used at a time. _validate_ can be used separately or in addition to them to support $data reference. + +__Please note__: If the keyword is validating data type that is different from the type(s) in its definition, the validation function will not be called (and expanded macro will not be used), so there is no need to check for data type inside validation function or inside schema returned by macro function (unless you want to enforce a specific type and for some reason do not want to use a separate `type` keyword for that). In the same way as standard keywords work, if the keyword does not apply to the data type being validated, the validation of this keyword will succeed. + +See [Defining custom keywords](#defining-custom-keywords) for more details. + + +##### .getKeyword(String keyword) -> Object|Boolean + +Returns custom keyword definition, `true` for pre-defined keywords and `false` if the keyword is unknown. + + +##### .removeKeyword(String keyword) -> Ajv + +Removes custom or pre-defined keyword so you can redefine them. + +While this method can be used to extend pre-defined keywords, it can also be used to completely change their meaning - it may lead to unexpected results. + +__Please note__: schemas compiled before the keyword is removed will continue to work without changes. To recompile schemas use `removeSchema` method and compile them again. + + +##### .errorsText([Array<Object> errors [, Object options]]) -> String + +Returns the text with all errors in a String. + +Options can have properties `separator` (string used to separate errors, ", " by default) and `dataVar` (the variable name that dataPaths are prefixed with, "data" by default). + + +## Options + +Defaults: + +```javascript +{ + // validation and reporting options: + $data: false, + allErrors: false, + verbose: false, + jsonPointers: false, + uniqueItems: true, + unicode: true, + format: 'fast', + formats: {}, + unknownFormats: true, + schemas: {}, + logger: undefined, + // referenced schema options: + schemaId: undefined // recommended '$id' + missingRefs: true, + extendRefs: 'ignore', // recommended 'fail' + loadSchema: undefined, // function(uri: string): Promise {} + // options to modify validated data: + removeAdditional: false, + useDefaults: false, + coerceTypes: false, + // asynchronous validation options: + async: 'co*', + transpile: undefined, // requires ajv-async package + // advanced options: + meta: true, + validateSchema: true, + addUsedSchema: true, + inlineRefs: true, + passContext: false, + loopRequired: Infinity, + ownProperties: false, + multipleOfPrecision: false, + errorDataPath: 'object', + messages: true, + sourceCode: false, + processCode: undefined, // function (str: string): string {} + cache: new Cache, + serialize: undefined +} +``` + +##### Validation and reporting options + +- _$data_: support [$data references](#data-reference). Draft 6 meta-schema that is added by default will be extended to allow them. If you want to use another meta-schema you need to use $dataMetaSchema method to add support for $data reference. See [API](#api). +- _allErrors_: check all rules collecting all errors. Default is to return after the first error. +- _verbose_: include the reference to the part of the schema (`schema` and `parentSchema`) and validated data in errors (false by default). +- _jsonPointers_: set `dataPath` property of errors using [JSON Pointers](https://tools.ietf.org/html/rfc6901) instead of JavaScript property access notation. +- _uniqueItems_: validate `uniqueItems` keyword (true by default). +- _unicode_: calculate correct length of strings with unicode pairs (true by default). Pass `false` to use `.length` of strings that is faster, but gives "incorrect" lengths of strings with unicode pairs - each unicode pair is counted as two characters. +- _format_: formats validation mode ('fast' by default). Pass 'full' for more correct and slow validation or `false` not to validate formats at all. E.g., 25:00:00 and 2015/14/33 will be invalid time and date in 'full' mode but it will be valid in 'fast' mode. +- _formats_: an object with custom formats. Keys and values will be passed to `addFormat` method. +- _unknownFormats_: handling of unknown formats. Option values: + - `true` (default) - if an unknown format is encountered the exception is thrown during schema compilation. If `format` keyword value is [$data reference](#data-reference) and it is unknown the validation will fail. + - `[String]` - an array of unknown format names that will be ignored. This option can be used to allow usage of third party schemas with format(s) for which you don't have definitions, but still fail if another unknown format is used. If `format` keyword value is [$data reference](#data-reference) and it is not in this array the validation will fail. + - `"ignore"` - to log warning during schema compilation and always pass validation (the default behaviour in versions before 5.0.0). This option is not recommended, as it allows to mistype format name and it won't be validated without any error message. This behaviour is required by JSON-schema specification. +- _schemas_: an array or object of schemas that will be added to the instance. In case you pass the array the schemas must have IDs in them. When the object is passed the method `addSchema(value, key)` will be called for each schema in this object. +- _logger_: sets the logging method. Default is the global `console` object that should have methods `log`, `warn` and `error`. Option values: + - custom logger - it should have methods `log`, `warn` and `error`. If any of these methods is missing an exception will be thrown. + - `false` - logging is disabled. + + +##### Referenced schema options + +- _schemaId_: this option defines which keywords are used as schema URI. Option value: + - `"$id"` (recommended) - only use `$id` keyword as schema URI (as specified in JSON Schema draft-06), ignore `id` keyword (if it is present a warning will be logged). + - `"id"` - only use `id` keyword as schema URI (as specified in JSON Schema draft-04), ignore `$id` keyword (if it is present a warning will be logged). + - `undefined` (default) - use both `$id` and `id` keywords as schema URI. If both are present (in the same schema object) and different the exception will be thrown during schema compilation. +- _missingRefs_: handling of missing referenced schemas. Option values: + - `true` (default) - if the reference cannot be resolved during compilation the exception is thrown. The thrown error has properties `missingRef` (with hash fragment) and `missingSchema` (without it). Both properties are resolved relative to the current base id (usually schema id, unless it was substituted). + - `"ignore"` - to log error during compilation and always pass validation. + - `"fail"` - to log error and successfully compile schema but fail validation if this rule is checked. +- _extendRefs_: validation of other keywords when `$ref` is present in the schema. Option values: + - `"ignore"` (default) - when `$ref` is used other keywords are ignored (as per [JSON Reference](https://tools.ietf.org/html/draft-pbryan-zyp-json-ref-03#section-3) standard). A warning will be logged during the schema compilation. + - `"fail"` (recommended) - if other validation keywords are used together with `$ref` the exception will be thrown when the schema is compiled. This option is recommended to make sure schema has no keywords that are ignored, which can be confusing. + - `true` - validate all keywords in the schemas with `$ref` (the default behaviour in versions before 5.0.0). +- _loadSchema_: asynchronous function that will be used to load remote schemas when `compileAsync` [method](#api-compileAsync) is used and some reference is missing (option `missingRefs` should NOT be 'fail' or 'ignore'). This function should accept remote schema uri as a parameter and return a Promise that resolves to a schema. See example in [Asynchronous compilation](#asynchronous-schema-compilation). + + +##### Options to modify validated data + +- _removeAdditional_: remove additional properties - see example in [Filtering data](#filtering-data). This option is not used if schema is added with `addMetaSchema` method. Option values: + - `false` (default) - not to remove additional properties + - `"all"` - all additional properties are removed, regardless of `additionalProperties` keyword in schema (and no validation is made for them). + - `true` - only additional properties with `additionalProperties` keyword equal to `false` are removed. + - `"failing"` - additional properties that fail schema validation will be removed (where `additionalProperties` keyword is `false` or schema). +- _useDefaults_: replace missing properties and items with the values from corresponding `default` keywords. Default behaviour is to ignore `default` keywords. This option is not used if schema is added with `addMetaSchema` method. See examples in [Assigning defaults](#assigning-defaults). Option values: + - `false` (default) - do not use defaults + - `true` - insert defaults by value (safer and slower, object literal is used). + - `"shared"` - insert defaults by reference (faster). If the default is an object, it will be shared by all instances of validated data. If you modify the inserted default in the validated data, it will be modified in the schema as well. +- _coerceTypes_: change data type of data to match `type` keyword. See the example in [Coercing data types](#coercing-data-types) and [coercion rules](https://github.com/epoberezkin/ajv/blob/master/COERCION.md). Option values: + - `false` (default) - no type coercion. + - `true` - coerce scalar data types. + - `"array"` - in addition to coercions between scalar types, coerce scalar data to an array with one element and vice versa (as required by the schema). + + +##### Asynchronous validation options + +- _async_: determines how Ajv compiles asynchronous schemas (see [Asynchronous validation](#asynchronous-validation)) to functions. Option values: + - `"*"` / `"co*"` (default) - compile to generator function ("co*" - wrapped with `co.wrap`). If generators are not supported and you don't provide `processCode` option (or `transpile` option if you use [ajv-async](https://github.com/epoberezkin/ajv-async) package), the exception will be thrown when async schema is compiled. + - `"es7"` - compile to es7 async function. Unless your platform supports them you need to provide `processCode` or `transpile` option. According to [compatibility table](http://kangax.github.io/compat-table/es7/)) async functions are supported by: + - Firefox 52, + - Chrome 55, + - Node.js 7 (with `--harmony-async-await`), + - MS Edge 13 (with flag). + - `undefined`/`true` - auto-detect async mode. It requires [ajv-async](https://github.com/epoberezkin/ajv-async) package. If `transpile` option is not passed, ajv-async will choose the first of supported/installed async/transpile modes in this order: + - "es7" (native async functions), + - "co*" (native generators with co.wrap), + - "es7"/"nodent", + - "co*"/"regenerator" during the creation of the Ajv instance. + + If none of the options is available the exception will be thrown. +- _transpile_: Requires [ajv-async](https://github.com/epoberezkin/ajv-async) package. It determines whether Ajv transpiles compiled asynchronous validation function. Option values: + - `"nodent"` - transpile with [nodent](https://github.com/MatAtBread/nodent). If nodent is not installed, the exception will be thrown. nodent can only transpile es7 async functions; it will enforce this mode. + - `"regenerator"` - transpile with [regenerator](https://github.com/facebook/regenerator). If regenerator is not installed, the exception will be thrown. + - a function - this function should accept the code of validation function as a string and return transpiled code. This option allows you to use any other transpiler you prefer. If you are passing a function, you can simply pass it to `processCode` option without using ajv-async. + + +##### Advanced options + +- _meta_: add [meta-schema](http://json-schema.org/documentation.html) so it can be used by other schemas (true by default). If an object is passed, it will be used as the default meta-schema for schemas that have no `$schema` keyword. This default meta-schema MUST have `$schema` keyword. +- _validateSchema_: validate added/compiled schemas against meta-schema (true by default). `$schema` property in the schema can either be http://json-schema.org/schema or http://json-schema.org/draft-04/schema or absent (draft-4 meta-schema will be used) or can be a reference to the schema previously added with `addMetaSchema` method. Option values: + - `true` (default) - if the validation fails, throw the exception. + - `"log"` - if the validation fails, log error. + - `false` - skip schema validation. +- _addUsedSchema_: by default methods `compile` and `validate` add schemas to the instance if they have `$id` (or `id`) property that doesn't start with "#". If `$id` is present and it is not unique the exception will be thrown. Set this option to `false` to skip adding schemas to the instance and the `$id` uniqueness check when these methods are used. This option does not affect `addSchema` method. +- _inlineRefs_: Affects compilation of referenced schemas. Option values: + - `true` (default) - the referenced schemas that don't have refs in them are inlined, regardless of their size - that substantially improves performance at the cost of the bigger size of compiled schema functions. + - `false` - to not inline referenced schemas (they will be compiled as separate functions). + - integer number - to limit the maximum number of keywords of the schema that will be inlined. +- _passContext_: pass validation context to custom keyword functions. If this option is `true` and you pass some context to the compiled validation function with `validate.call(context, data)`, the `context` will be available as `this` in your custom keywords. By default `this` is Ajv instance. +- _loopRequired_: by default `required` keyword is compiled into a single expression (or a sequence of statements in `allErrors` mode). In case of a very large number of properties in this keyword it may result in a very big validation function. Pass integer to set the number of properties above which `required` keyword will be validated in a loop - smaller validation function size but also worse performance. +- _ownProperties_: by default Ajv iterates over all enumerable object properties; when this option is `true` only own enumerable object properties (i.e. found directly on the object rather than on its prototype) are iterated. Contributed by @mbroadst. +- _multipleOfPrecision_: by default `multipleOf` keyword is validated by comparing the result of division with parseInt() of that result. It works for dividers that are bigger than 1. For small dividers such as 0.01 the result of the division is usually not integer (even when it should be integer, see issue [#84](https://github.com/epoberezkin/ajv/issues/84)). If you need to use fractional dividers set this option to some positive integer N to have `multipleOf` validated using this formula: `Math.abs(Math.round(division) - division) < 1e-N` (it is slower but allows for float arithmetics deviations). +- _errorDataPath_: set `dataPath` to point to 'object' (default) or to 'property' when validating keywords `required`, `additionalProperties` and `dependencies`. +- _messages_: Include human-readable messages in errors. `true` by default. `false` can be passed when custom messages are used (e.g. with [ajv-i18n](https://github.com/epoberezkin/ajv-i18n)). +- _sourceCode_: add `sourceCode` property to validating function (for debugging; this code can be different from the result of toString call). +- _processCode_: an optional function to process generated code before it is passed to Function constructor. It can be used to either beautify (the validating function is generated without line-breaks) or to transpile code. Starting from version 5.0.0 this option replaced options: + - `beautify` that formatted the generated function using [js-beautify](https://github.com/beautify-web/js-beautify). If you want to beautify the generated code pass `require('js-beautify').js_beautify`. + - `transpile` that transpiled asynchronous validation function. You can still use `transpile` option with [ajv-async](https://github.com/epoberezkin/ajv-async) package. See [Asynchronous validation](#asynchronous-validation) for more information. +- _cache_: an optional instance of cache to store compiled schemas using stable-stringified schema as a key. For example, set-associative cache [sacjs](https://github.com/epoberezkin/sacjs) can be used. If not passed then a simple hash is used which is good enough for the common use case (a limited number of statically defined schemas). Cache should have methods `put(key, value)`, `get(key)`, `del(key)` and `clear()`. +- _serialize_: an optional function to serialize schema to cache key. Pass `false` to use schema itself as a key (e.g., if WeakMap used as a cache). By default [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used. + + +## Validation errors + +In case of validation failure, Ajv assigns the array of errors to `errors` property of validation function (or to `errors` property of Ajv instance when `validate` or `validateSchema` methods were called). In case of [asynchronous validation](#asynchronous-validation), the returned promise is rejected with exception `Ajv.ValidationError` that has `errors` property. + + +### Error objects + +Each error is an object with the following properties: + +- _keyword_: validation keyword. +- _dataPath_: the path to the part of the data that was validated. By default `dataPath` uses JavaScript property access notation (e.g., `".prop[1].subProp"`). When the option `jsonPointers` is true (see [Options](#options)) `dataPath` will be set using JSON pointer standard (e.g., `"/prop/1/subProp"`). +- _schemaPath_: the path (JSON-pointer as a URI fragment) to the schema of the keyword that failed validation. +- _params_: the object with the additional information about error that can be used to create custom error messages (e.g., using [ajv-i18n](https://github.com/epoberezkin/ajv-i18n) package). See below for parameters set by all keywords. +- _message_: the standard error message (can be excluded with option `messages` set to false). +- _schema_: the schema of the keyword (added with `verbose` option). +- _parentSchema_: the schema containing the keyword (added with `verbose` option) +- _data_: the data validated by the keyword (added with `verbose` option). + +__Please note__: `propertyNames` keyword schema validation errors have an additional property `propertyName`, `dataPath` points to the object. After schema validation for each property name, if it is invalid an additional error is added with the property `keyword` equal to `"propertyNames"`. + + +### Error parameters + +Properties of `params` object in errors depend on the keyword that failed validation. + +- `maxItems`, `minItems`, `maxLength`, `minLength`, `maxProperties`, `minProperties` - property `limit` (number, the schema of the keyword). +- `additionalItems` - property `limit` (the maximum number of allowed items in case when `items` keyword is an array of schemas and `additionalItems` is false). +- `additionalProperties` - property `additionalProperty` (the property not used in `properties` and `patternProperties` keywords). +- `dependencies` - properties: + - `property` (dependent property), + - `missingProperty` (required missing dependency - only the first one is reported currently) + - `deps` (required dependencies, comma separated list as a string), + - `depsCount` (the number of required dependencies). +- `format` - property `format` (the schema of the keyword). +- `maximum`, `minimum` - properties: + - `limit` (number, the schema of the keyword), + - `exclusive` (boolean, the schema of `exclusiveMaximum` or `exclusiveMinimum`), + - `comparison` (string, comparison operation to compare the data to the limit, with the data on the left and the limit on the right; can be "<", "<=", ">", ">=") +- `multipleOf` - property `multipleOf` (the schema of the keyword) +- `pattern` - property `pattern` (the schema of the keyword) +- `required` - property `missingProperty` (required property that is missing). +- `propertyNames` - property `propertyName` (an invalid property name). +- `patternRequired` (in ajv-keywords) - property `missingPattern` (required pattern that did not match any property). +- `type` - property `type` (required type(s), a string, can be a comma-separated list) +- `uniqueItems` - properties `i` and `j` (indices of duplicate items). +- `enum` - property `allowedValues` pointing to the array of values (the schema of the keyword). +- `$ref` - property `ref` with the referenced schema URI. +- custom keywords (in case keyword definition doesn't create errors) - property `keyword` (the keyword name). + + +## Related packages + +- [ajv-async](https://github.com/epoberezkin/ajv-async) - configure async validation mode +- [ajv-cli](https://github.com/jessedc/ajv-cli) - command line interface +- [ajv-errors](https://github.com/epoberezkin/ajv-errors) - custom error messages +- [ajv-i18n](https://github.com/epoberezkin/ajv-i18n) - internationalised error messages +- [ajv-istanbul](https://github.com/epoberezkin/ajv-istanbul) - instrument generated validation code to measure test coverage of your schemas +- [ajv-keywords](https://github.com/epoberezkin/ajv-keywords) - custom validation keywords (if/then/else, select, typeof, etc.) +- [ajv-merge-patch](https://github.com/epoberezkin/ajv-merge-patch) - keywords $merge and $patch +- [ajv-pack](https://github.com/epoberezkin/ajv-pack) - produces a compact module exporting validation functions + + +## Some packages using Ajv + +- [webpack](https://github.com/webpack/webpack) - a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser +- [jsonscript-js](https://github.com/JSONScript/jsonscript-js) - the interpreter for [JSONScript](http://www.jsonscript.org) - scripted processing of existing endpoints and services +- [osprey-method-handler](https://github.com/mulesoft-labs/osprey-method-handler) - Express middleware for validating requests and responses based on a RAML method object, used in [osprey](https://github.com/mulesoft/osprey) - validating API proxy generated from a RAML definition +- [har-validator](https://github.com/ahmadnassri/har-validator) - HTTP Archive (HAR) validator +- [jsoneditor](https://github.com/josdejong/jsoneditor) - a web-based tool to view, edit, format, and validate JSON http://jsoneditoronline.org +- [JSON Schema Lint](https://github.com/nickcmaynard/jsonschemalint) - a web tool to validate JSON/YAML document against a single JSON-schema http://jsonschemalint.com +- [objection](https://github.com/vincit/objection.js) - SQL-friendly ORM for Node.js +- [table](https://github.com/gajus/table) - formats data into a string table +- [ripple-lib](https://github.com/ripple/ripple-lib) - a JavaScript API for interacting with [Ripple](https://ripple.com) in Node.js and the browser +- [restbase](https://github.com/wikimedia/restbase) - distributed storage with REST API & dispatcher for backend services built to provide a low-latency & high-throughput API for Wikipedia / Wikimedia content +- [hippie-swagger](https://github.com/CacheControl/hippie-swagger) - [Hippie](https://github.com/vesln/hippie) wrapper that provides end to end API testing with swagger validation +- [react-form-controlled](https://github.com/seeden/react-form-controlled) - React controlled form components with validation +- [rabbitmq-schema](https://github.com/tjmehta/rabbitmq-schema) - a schema definition module for RabbitMQ graphs and messages +- [@query/schema](https://www.npmjs.com/package/@query/schema) - stream filtering with a URI-safe query syntax parsing to JSON Schema +- [chai-ajv-json-schema](https://github.com/peon374/chai-ajv-json-schema) - chai plugin to us JSON-schema with expect in mocha tests +- [grunt-jsonschema-ajv](https://github.com/SignpostMarv/grunt-jsonschema-ajv) - Grunt plugin for validating files against JSON Schema +- [extract-text-webpack-plugin](https://github.com/webpack-contrib/extract-text-webpack-plugin) - extract text from bundle into a file +- [electron-builder](https://github.com/electron-userland/electron-builder) - a solution to package and build a ready for distribution Electron app +- [addons-linter](https://github.com/mozilla/addons-linter) - Mozilla Add-ons Linter +- [gh-pages-generator](https://github.com/epoberezkin/gh-pages-generator) - multi-page site generator converting markdown files to GitHub pages + + +## Tests + +``` +npm install +git submodule update --init +npm test +``` + +## Contributing + +All validation functions are generated using doT templates in [dot](https://github.com/epoberezkin/ajv/tree/master/lib/dot) folder. Templates are precompiled so doT is not a run-time dependency. + +`npm run build` - compiles templates to [dotjs](https://github.com/epoberezkin/ajv/tree/master/lib/dotjs) folder. + +`npm run watch` - automatically compiles templates when files in dot folder change + +Please see [Contributing guidelines](https://github.com/epoberezkin/ajv/blob/master/CONTRIBUTING.md) + + +## Changes history + +See https://github.com/epoberezkin/ajv/releases + +__Please note__: [Changes in version 5.0.0](https://github.com/epoberezkin/ajv/releases/tag/5.0.0). + +[Changes in version 4.6.0](https://github.com/epoberezkin/ajv/releases/tag/4.6.0). + +[Changes in version 4.0.0](https://github.com/epoberezkin/ajv/releases/tag/4.0.0). + +[Changes in version 3.0.0](https://github.com/epoberezkin/ajv/releases/tag/3.0.0). + +[Changes in version 2.0.0](https://github.com/epoberezkin/ajv/releases/tag/2.0.0). + + +## License + +[MIT](https://github.com/epoberezkin/ajv/blob/master/LICENSE) diff --git a/node_modules/ajv/dist/ajv.bundle.js b/node_modules/ajv/dist/ajv.bundle.js new file mode 100644 index 0000000..01d5632 --- /dev/null +++ b/node_modules/ajv/dist/ajv.bundle.js @@ -0,0 +1,7345 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Ajv = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&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}var i=typeof require=="function"&&require;for(var o=0;o%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i; +// For the source: https://gist.github.com/dperini/729294 +// For test cases: https://mathiasbynens.be/demo/url-regex +// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983. +// var URL = /^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu; +var URL = /^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i; +var UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i; +var JSON_POINTER = /^(?:\/(?:[^~/]|~0|~1)*)*$|^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i; +var RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/; + + +module.exports = formats; + +function formats(mode) { + mode = mode == 'full' ? 'full' : 'fast'; + return util.copy(formats[mode]); +} + + +formats.fast = { + // date: http://tools.ietf.org/html/rfc3339#section-5.6 + date: /^\d\d\d\d-[0-1]\d-[0-3]\d$/, + // date-time: http://tools.ietf.org/html/rfc3339#section-5.6 + time: /^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i, + 'date-time': /^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i, + // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js + uri: /^(?:[a-z][a-z0-9+-.]*)(?::|\/)\/?[^\s]*$/i, + 'uri-reference': /^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i, + 'uri-template': URITEMPLATE, + url: URL, + // email (sources from jsen validator): + // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363 + // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation') + email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i, + hostname: HOSTNAME, + // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html + ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/, + // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses + ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i, + regex: regex, + // uuid: http://tools.ietf.org/html/rfc4122 + uuid: UUID, + // JSON-pointer: https://tools.ietf.org/html/rfc6901 + // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A + 'json-pointer': JSON_POINTER, + // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00 + 'relative-json-pointer': RELATIVE_JSON_POINTER +}; + + +formats.full = { + date: date, + time: time, + 'date-time': date_time, + uri: uri, + 'uri-reference': URIREF, + 'uri-template': URITEMPLATE, + url: URL, + email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i, + hostname: hostname, + ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/, + ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i, + regex: regex, + uuid: UUID, + 'json-pointer': JSON_POINTER, + 'relative-json-pointer': RELATIVE_JSON_POINTER +}; + + +function date(str) { + // full-date from http://tools.ietf.org/html/rfc3339#section-5.6 + var matches = str.match(DATE); + if (!matches) return false; + + var month = +matches[1]; + var day = +matches[2]; + return month >= 1 && month <= 12 && day >= 1 && day <= DAYS[month]; +} + + +function time(str, full) { + var matches = str.match(TIME); + if (!matches) return false; + + var hour = matches[1]; + var minute = matches[2]; + var second = matches[3]; + var timeZone = matches[5]; + return hour <= 23 && minute <= 59 && second <= 59 && (!full || timeZone); +} + + +var DATE_TIME_SEPARATOR = /t|\s/i; +function date_time(str) { + // http://tools.ietf.org/html/rfc3339#section-5.6 + var dateTime = str.split(DATE_TIME_SEPARATOR); + return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true); +} + + +function hostname(str) { + // https://tools.ietf.org/html/rfc1034#section-3.5 + // https://tools.ietf.org/html/rfc1123#section-2 + return str.length <= 255 && HOSTNAME.test(str); +} + + +var NOT_URI_FRAGMENT = /\/|:/; +function uri(str) { + // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required "." + return NOT_URI_FRAGMENT.test(str) && URI.test(str); +} + + +var Z_ANCHOR = /[^\\]\\Z/; +function regex(str) { + if (Z_ANCHOR.test(str)) return false; + try { + new RegExp(str); + return true; + } catch(e) { + return false; + } +} + +},{"./util":12}],7:[function(require,module,exports){ +'use strict'; + +var resolve = require('./resolve') + , util = require('./util') + , errorClasses = require('./error_classes') + , stableStringify = require('fast-json-stable-stringify'); + +var validateGenerator = require('../dotjs/validate'); + +/** + * Functions below are used inside compiled validations function + */ + +var co = require('co'); +var ucs2length = util.ucs2length; +var equal = require('fast-deep-equal'); + +// this error is thrown by async schemas to return validation errors via exception +var ValidationError = errorClasses.Validation; + +module.exports = compile; + + +/** + * Compiles schema to validation function + * @this Ajv + * @param {Object} schema schema object + * @param {Object} root object with information about the root schema for this schema + * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution + * @param {String} baseId base ID for IDs in the schema + * @return {Function} validation function + */ +function compile(schema, root, localRefs, baseId) { + /* jshint validthis: true, evil: true */ + /* eslint no-shadow: 0 */ + var self = this + , opts = this._opts + , refVal = [ undefined ] + , refs = {} + , patterns = [] + , patternsHash = {} + , defaults = [] + , defaultsHash = {} + , customRules = []; + + root = root || { schema: schema, refVal: refVal, refs: refs }; + + var c = checkCompiling.call(this, schema, root, baseId); + var compilation = this._compilations[c.index]; + if (c.compiling) return (compilation.callValidate = callValidate); + + var formats = this._formats; + var RULES = this.RULES; + + try { + var v = localCompile(schema, root, localRefs, baseId); + compilation.validate = v; + var cv = compilation.callValidate; + if (cv) { + cv.schema = v.schema; + cv.errors = null; + cv.refs = v.refs; + cv.refVal = v.refVal; + cv.root = v.root; + cv.$async = v.$async; + if (opts.sourceCode) cv.source = v.source; + } + return v; + } finally { + endCompiling.call(this, schema, root, baseId); + } + + function callValidate() { + var validate = compilation.validate; + var result = validate.apply(null, arguments); + callValidate.errors = validate.errors; + return result; + } + + function localCompile(_schema, _root, localRefs, baseId) { + var isRoot = !_root || (_root && _root.schema == _schema); + if (_root.schema != root.schema) + return compile.call(self, _schema, _root, localRefs, baseId); + + var $async = _schema.$async === true; + + var sourceCode = validateGenerator({ + isTop: true, + schema: _schema, + isRoot: isRoot, + baseId: baseId, + root: _root, + schemaPath: '', + errSchemaPath: '#', + errorPath: '""', + MissingRefError: errorClasses.MissingRef, + RULES: RULES, + validate: validateGenerator, + util: util, + resolve: resolve, + resolveRef: resolveRef, + usePattern: usePattern, + useDefault: useDefault, + useCustomRule: useCustomRule, + opts: opts, + formats: formats, + logger: self.logger, + self: self + }); + + sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode) + + vars(defaults, defaultCode) + vars(customRules, customRuleCode) + + sourceCode; + + if (opts.processCode) sourceCode = opts.processCode(sourceCode); + // console.log('\n\n\n *** \n', JSON.stringify(sourceCode)); + var validate; + try { + var makeValidate = new Function( + 'self', + 'RULES', + 'formats', + 'root', + 'refVal', + 'defaults', + 'customRules', + 'co', + 'equal', + 'ucs2length', + 'ValidationError', + sourceCode + ); + + validate = makeValidate( + self, + RULES, + formats, + root, + refVal, + defaults, + customRules, + co, + equal, + ucs2length, + ValidationError + ); + + refVal[0] = validate; + } catch(e) { + self.logger.error('Error compiling schema, function code:', sourceCode); + throw e; + } + + validate.schema = _schema; + validate.errors = null; + validate.refs = refs; + validate.refVal = refVal; + validate.root = isRoot ? validate : _root; + if ($async) validate.$async = true; + if (opts.sourceCode === true) { + validate.source = { + code: sourceCode, + patterns: patterns, + defaults: defaults + }; + } + + return validate; + } + + function resolveRef(baseId, ref, isRoot) { + ref = resolve.url(baseId, ref); + var refIndex = refs[ref]; + var _refVal, refCode; + if (refIndex !== undefined) { + _refVal = refVal[refIndex]; + refCode = 'refVal[' + refIndex + ']'; + return resolvedRef(_refVal, refCode); + } + if (!isRoot && root.refs) { + var rootRefId = root.refs[ref]; + if (rootRefId !== undefined) { + _refVal = root.refVal[rootRefId]; + refCode = addLocalRef(ref, _refVal); + return resolvedRef(_refVal, refCode); + } + } + + refCode = addLocalRef(ref); + var v = resolve.call(self, localCompile, root, ref); + if (v === undefined) { + var localSchema = localRefs && localRefs[ref]; + if (localSchema) { + v = resolve.inlineRef(localSchema, opts.inlineRefs) + ? localSchema + : compile.call(self, localSchema, root, localRefs, baseId); + } + } + + if (v === undefined) { + removeLocalRef(ref); + } else { + replaceLocalRef(ref, v); + return resolvedRef(v, refCode); + } + } + + function addLocalRef(ref, v) { + var refId = refVal.length; + refVal[refId] = v; + refs[ref] = refId; + return 'refVal' + refId; + } + + function removeLocalRef(ref) { + delete refs[ref]; + } + + function replaceLocalRef(ref, v) { + var refId = refs[ref]; + refVal[refId] = v; + } + + function resolvedRef(refVal, code) { + return typeof refVal == 'object' || typeof refVal == 'boolean' + ? { code: code, schema: refVal, inline: true } + : { code: code, $async: refVal && refVal.$async }; + } + + function usePattern(regexStr) { + var index = patternsHash[regexStr]; + if (index === undefined) { + index = patternsHash[regexStr] = patterns.length; + patterns[index] = regexStr; + } + return 'pattern' + index; + } + + function useDefault(value) { + switch (typeof value) { + case 'boolean': + case 'number': + return '' + value; + case 'string': + return util.toQuotedString(value); + case 'object': + if (value === null) return 'null'; + var valueStr = stableStringify(value); + var index = defaultsHash[valueStr]; + if (index === undefined) { + index = defaultsHash[valueStr] = defaults.length; + defaults[index] = value; + } + return 'default' + index; + } + } + + function useCustomRule(rule, schema, parentSchema, it) { + var validateSchema = rule.definition.validateSchema; + if (validateSchema && self._opts.validateSchema !== false) { + var valid = validateSchema(schema); + if (!valid) { + var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors); + if (self._opts.validateSchema == 'log') self.logger.error(message); + else throw new Error(message); + } + } + + var compile = rule.definition.compile + , inline = rule.definition.inline + , macro = rule.definition.macro; + + var validate; + if (compile) { + validate = compile.call(self, schema, parentSchema, it); + } else if (macro) { + validate = macro.call(self, schema, parentSchema, it); + if (opts.validateSchema !== false) self.validateSchema(validate, true); + } else if (inline) { + validate = inline.call(self, it, rule.keyword, schema, parentSchema); + } else { + validate = rule.definition.validate; + if (!validate) return; + } + + if (validate === undefined) + throw new Error('custom keyword "' + rule.keyword + '"failed to compile'); + + var index = customRules.length; + customRules[index] = validate; + + return { + code: 'customRule' + index, + validate: validate + }; + } +} + + +/** + * Checks if the schema is currently compiled + * @this Ajv + * @param {Object} schema schema to compile + * @param {Object} root root object + * @param {String} baseId base schema ID + * @return {Object} object with properties "index" (compilation index) and "compiling" (boolean) + */ +function checkCompiling(schema, root, baseId) { + /* jshint validthis: true */ + var index = compIndex.call(this, schema, root, baseId); + if (index >= 0) return { index: index, compiling: true }; + index = this._compilations.length; + this._compilations[index] = { + schema: schema, + root: root, + baseId: baseId + }; + return { index: index, compiling: false }; +} + + +/** + * Removes the schema from the currently compiled list + * @this Ajv + * @param {Object} schema schema to compile + * @param {Object} root root object + * @param {String} baseId base schema ID + */ +function endCompiling(schema, root, baseId) { + /* jshint validthis: true */ + var i = compIndex.call(this, schema, root, baseId); + if (i >= 0) this._compilations.splice(i, 1); +} + + +/** + * Index of schema compilation in the currently compiled list + * @this Ajv + * @param {Object} schema schema to compile + * @param {Object} root root object + * @param {String} baseId base schema ID + * @return {Integer} compilation index + */ +function compIndex(schema, root, baseId) { + /* jshint validthis: true */ + for (var i=0; i= 0xD800 && value <= 0xDBFF && pos < len) { + // high surrogate, and there is a next character + value = str.charCodeAt(pos); + if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate + } + } + return length; +}; + +},{}],12:[function(require,module,exports){ +'use strict'; + + +module.exports = { + copy: copy, + checkDataType: checkDataType, + checkDataTypes: checkDataTypes, + coerceToTypes: coerceToTypes, + toHash: toHash, + getProperty: getProperty, + escapeQuotes: escapeQuotes, + equal: require('fast-deep-equal'), + ucs2length: require('./ucs2length'), + varOccurences: varOccurences, + varReplace: varReplace, + cleanUpCode: cleanUpCode, + finalCleanUpCode: finalCleanUpCode, + schemaHasRules: schemaHasRules, + schemaHasRulesExcept: schemaHasRulesExcept, + toQuotedString: toQuotedString, + getPathExpr: getPathExpr, + getPath: getPath, + getData: getData, + unescapeFragment: unescapeFragment, + unescapeJsonPointer: unescapeJsonPointer, + escapeFragment: escapeFragment, + escapeJsonPointer: escapeJsonPointer +}; + + +function copy(o, to) { + to = to || {}; + for (var key in o) to[key] = o[key]; + return to; +} + + +function checkDataType(dataType, data, negate) { + var EQUAL = negate ? ' !== ' : ' === ' + , AND = negate ? ' || ' : ' && ' + , OK = negate ? '!' : '' + , NOT = negate ? '' : '!'; + switch (dataType) { + case 'null': return data + EQUAL + 'null'; + case 'array': return OK + 'Array.isArray(' + data + ')'; + case 'object': return '(' + OK + data + AND + + 'typeof ' + data + EQUAL + '"object"' + AND + + NOT + 'Array.isArray(' + data + '))'; + case 'integer': return '(typeof ' + data + EQUAL + '"number"' + AND + + NOT + '(' + data + ' % 1)' + + AND + data + EQUAL + data + ')'; + default: return 'typeof ' + data + EQUAL + '"' + dataType + '"'; + } +} + + +function checkDataTypes(dataTypes, data) { + switch (dataTypes.length) { + case 1: return checkDataType(dataTypes[0], data, true); + default: + var code = ''; + var types = toHash(dataTypes); + if (types.array && types.object) { + code = types.null ? '(': '(!' + data + ' || '; + code += 'typeof ' + data + ' !== "object")'; + delete types.null; + delete types.array; + delete types.object; + } + if (types.number) delete types.integer; + for (var t in types) + code += (code ? ' && ' : '' ) + checkDataType(t, data, true); + + return code; + } +} + + +var COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]); +function coerceToTypes(optionCoerceTypes, dataTypes) { + if (Array.isArray(dataTypes)) { + var types = []; + for (var i=0; i= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl); + return paths[lvl - up]; + } + + if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl); + data = 'data' + ((lvl - up) || ''); + if (!jsonPointer) return data; + } + + var expr = data; + var segments = jsonPointer.split('/'); + for (var i=0; i', + $notOp = $isMax ? '>' : '<', + $errorKeyword = undefined; + if ($isDataExcl) { + var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr), + $exclusive = 'exclusive' + $lvl, + $exclType = 'exclType' + $lvl, + $exclIsNumber = 'exclIsNumber' + $lvl, + $opExpr = 'op' + $lvl, + $opStr = '\' + ' + $opExpr + ' + \''; + out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; '; + $schemaValueExcl = 'schemaExcl' + $lvl; + out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \'boolean\' && ' + ($exclType) + ' != \'undefined\' && ' + ($exclType) + ' != \'number\') { '; + var $errorKeyword = $exclusiveKeyword; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || '_exclusiveLimit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; + if (it.opts.messages !== false) { + out += ' , message: \'' + ($exclusiveKeyword) + ' should be boolean\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } else if ( '; + if ($isData) { + out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; + } + out += ' ' + ($exclType) + ' == \'number\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \'' + ($op) + '\' : \'' + ($op) + '=\';'; + } else { + var $exclIsNumber = typeof $schemaExcl == 'number', + $opStr = $op; + if ($exclIsNumber && $isData) { + var $opExpr = '\'' + $opStr + '\''; + out += ' if ( '; + if ($isData) { + out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; + } + out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { '; + } else { + if ($exclIsNumber && $schema === undefined) { + $exclusive = true; + $errorKeyword = $exclusiveKeyword; + $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword; + $schemaValue = $schemaExcl; + $notOp += '='; + } else { + if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema); + if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) { + $exclusive = true; + $errorKeyword = $exclusiveKeyword; + $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword; + $notOp += '='; + } else { + $exclusive = false; + $opStr += '='; + } + } + var $opExpr = '\'' + $opStr + '\''; + out += ' if ( '; + if ($isData) { + out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; + } + out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { '; + } + } + $errorKeyword = $errorKeyword || $keyword; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || '_limit') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should be ' + ($opStr) + ' '; + if ($isData) { + out += '\' + ' + ($schemaValue); + } else { + out += '' + ($schemaValue) + '\''; + } + } + if (it.opts.verbose) { + out += ' , schema: '; + if ($isData) { + out += 'validate.schema' + ($schemaPath); + } else { + out += '' + ($schema); + } + out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } '; + if ($breakOnError) { + out += ' else { '; + } + return out; +} + +},{}],14:[function(require,module,exports){ +'use strict'; +module.exports = function generate__limitItems(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $errorKeyword; + var $data = 'data' + ($dataLvl || ''); + var $isData = it.opts.$data && $schema && $schema.$data, + $schemaValue; + if ($isData) { + out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; + $schemaValue = 'schema' + $lvl; + } else { + $schemaValue = $schema; + } + var $op = $keyword == 'maxItems' ? '>' : '<'; + out += 'if ( '; + if ($isData) { + out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; + } + out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { '; + var $errorKeyword = $keyword; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || '_limitItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT have '; + if ($keyword == 'maxItems') { + out += 'more'; + } else { + out += 'less'; + } + out += ' than '; + if ($isData) { + out += '\' + ' + ($schemaValue) + ' + \''; + } else { + out += '' + ($schema); + } + out += ' items\' '; + } + if (it.opts.verbose) { + out += ' , schema: '; + if ($isData) { + out += 'validate.schema' + ($schemaPath); + } else { + out += '' + ($schema); + } + out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += '} '; + if ($breakOnError) { + out += ' else { '; + } + return out; +} + +},{}],15:[function(require,module,exports){ +'use strict'; +module.exports = function generate__limitLength(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $errorKeyword; + var $data = 'data' + ($dataLvl || ''); + var $isData = it.opts.$data && $schema && $schema.$data, + $schemaValue; + if ($isData) { + out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; + $schemaValue = 'schema' + $lvl; + } else { + $schemaValue = $schema; + } + var $op = $keyword == 'maxLength' ? '>' : '<'; + out += 'if ( '; + if ($isData) { + out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; + } + if (it.opts.unicode === false) { + out += ' ' + ($data) + '.length '; + } else { + out += ' ucs2length(' + ($data) + ') '; + } + out += ' ' + ($op) + ' ' + ($schemaValue) + ') { '; + var $errorKeyword = $keyword; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || '_limitLength') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT be '; + if ($keyword == 'maxLength') { + out += 'longer'; + } else { + out += 'shorter'; + } + out += ' than '; + if ($isData) { + out += '\' + ' + ($schemaValue) + ' + \''; + } else { + out += '' + ($schema); + } + out += ' characters\' '; + } + if (it.opts.verbose) { + out += ' , schema: '; + if ($isData) { + out += 'validate.schema' + ($schemaPath); + } else { + out += '' + ($schema); + } + out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += '} '; + if ($breakOnError) { + out += ' else { '; + } + return out; +} + +},{}],16:[function(require,module,exports){ +'use strict'; +module.exports = function generate__limitProperties(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $errorKeyword; + var $data = 'data' + ($dataLvl || ''); + var $isData = it.opts.$data && $schema && $schema.$data, + $schemaValue; + if ($isData) { + out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; + $schemaValue = 'schema' + $lvl; + } else { + $schemaValue = $schema; + } + var $op = $keyword == 'maxProperties' ? '>' : '<'; + out += 'if ( '; + if ($isData) { + out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'number\') || '; + } + out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { '; + var $errorKeyword = $keyword; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || '_limitProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT have '; + if ($keyword == 'maxProperties') { + out += 'more'; + } else { + out += 'less'; + } + out += ' than '; + if ($isData) { + out += '\' + ' + ($schemaValue) + ' + \''; + } else { + out += '' + ($schema); + } + out += ' properties\' '; + } + if (it.opts.verbose) { + out += ' , schema: '; + if ($isData) { + out += 'validate.schema' + ($schemaPath); + } else { + out += '' + ($schema); + } + out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += '} '; + if ($breakOnError) { + out += ' else { '; + } + return out; +} + +},{}],17:[function(require,module,exports){ +'use strict'; +module.exports = function generate_allOf(it, $keyword, $ruleType) { + var out = ' '; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $it = it.util.copy(it); + var $closingBraces = ''; + $it.level++; + var $nextValid = 'valid' + $it.level; + var $currentBaseId = $it.baseId, + $allSchemasEmpty = true; + var arr1 = $schema; + if (arr1) { + var $sch, $i = -1, + l1 = arr1.length - 1; + while ($i < l1) { + $sch = arr1[$i += 1]; + if (it.util.schemaHasRules($sch, it.RULES.all)) { + $allSchemasEmpty = false; + $it.schema = $sch; + $it.schemaPath = $schemaPath + '[' + $i + ']'; + $it.errSchemaPath = $errSchemaPath + '/' + $i; + out += ' ' + (it.validate($it)) + ' '; + $it.baseId = $currentBaseId; + if ($breakOnError) { + out += ' if (' + ($nextValid) + ') { '; + $closingBraces += '}'; + } + } + } + } + if ($breakOnError) { + if ($allSchemasEmpty) { + out += ' if (true) { '; + } else { + out += ' ' + ($closingBraces.slice(0, -1)) + ' '; + } + } + out = it.util.cleanUpCode(out); + return out; +} + +},{}],18:[function(require,module,exports){ +'use strict'; +module.exports = function generate_anyOf(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $valid = 'valid' + $lvl; + var $errs = 'errs__' + $lvl; + var $it = it.util.copy(it); + var $closingBraces = ''; + $it.level++; + var $nextValid = 'valid' + $it.level; + var $noEmptySchema = $schema.every(function($sch) { + return it.util.schemaHasRules($sch, it.RULES.all); + }); + if ($noEmptySchema) { + var $currentBaseId = $it.baseId; + out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; '; + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = true; + var arr1 = $schema; + if (arr1) { + var $sch, $i = -1, + l1 = arr1.length - 1; + while ($i < l1) { + $sch = arr1[$i += 1]; + $it.schema = $sch; + $it.schemaPath = $schemaPath + '[' + $i + ']'; + $it.errSchemaPath = $errSchemaPath + '/' + $i; + out += ' ' + (it.validate($it)) + ' '; + $it.baseId = $currentBaseId; + out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { '; + $closingBraces += '}'; + } + } + it.compositeRule = $it.compositeRule = $wasComposite; + out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('anyOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; + if (it.opts.messages !== false) { + out += ' , message: \'should match some schema in anyOf\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError(vErrors); '; + } else { + out += ' validate.errors = vErrors; return false; '; + } + } + out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } '; + if (it.opts.allErrors) { + out += ' } '; + } + out = it.util.cleanUpCode(out); + } else { + if ($breakOnError) { + out += ' if (true) { '; + } + } + return out; +} + +},{}],19:[function(require,module,exports){ +'use strict'; +module.exports = function generate_const(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $valid = 'valid' + $lvl; + var $isData = it.opts.$data && $schema && $schema.$data, + $schemaValue; + if ($isData) { + out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; + $schemaValue = 'schema' + $lvl; + } else { + $schemaValue = $schema; + } + if (!$isData) { + out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';'; + } + out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('const') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; + if (it.opts.messages !== false) { + out += ' , message: \'should be equal to constant\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' }'; + if ($breakOnError) { + out += ' else { '; + } + return out; +} + +},{}],20:[function(require,module,exports){ +'use strict'; +module.exports = function generate_contains(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $valid = 'valid' + $lvl; + var $errs = 'errs__' + $lvl; + var $it = it.util.copy(it); + var $closingBraces = ''; + $it.level++; + var $nextValid = 'valid' + $it.level; + var $idx = 'i' + $lvl, + $dataNxt = $it.dataLevel = it.dataLevel + 1, + $nextData = 'data' + $dataNxt, + $currentBaseId = it.baseId, + $nonEmptySchema = it.util.schemaHasRules($schema, it.RULES.all); + out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';'; + if ($nonEmptySchema) { + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = true; + $it.schema = $schema; + $it.schemaPath = $schemaPath; + $it.errSchemaPath = $errSchemaPath; + out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { '; + $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true); + var $passData = $data + '[' + $idx + ']'; + $it.dataPathArr[$dataNxt] = $idx; + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; + } else { + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; + } + out += ' if (' + ($nextValid) + ') break; } '; + it.compositeRule = $it.compositeRule = $wasComposite; + out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {'; + } else { + out += ' if (' + ($data) + '.length == 0) {'; + } + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('contains') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; + if (it.opts.messages !== false) { + out += ' , message: \'should contain a valid item\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } else { '; + if ($nonEmptySchema) { + out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } '; + } + if (it.opts.allErrors) { + out += ' } '; + } + out = it.util.cleanUpCode(out); + return out; +} + +},{}],21:[function(require,module,exports){ +'use strict'; +module.exports = function generate_custom(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $errorKeyword; + var $data = 'data' + ($dataLvl || ''); + var $valid = 'valid' + $lvl; + var $errs = 'errs__' + $lvl; + var $isData = it.opts.$data && $schema && $schema.$data, + $schemaValue; + if ($isData) { + out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; + $schemaValue = 'schema' + $lvl; + } else { + $schemaValue = $schema; + } + var $rule = this, + $definition = 'definition' + $lvl, + $rDef = $rule.definition, + $closingBraces = ''; + var $compile, $inline, $macro, $ruleValidate, $validateCode; + if ($isData && $rDef.$data) { + $validateCode = 'keywordValidate' + $lvl; + var $validateSchema = $rDef.validateSchema; + out += ' var ' + ($definition) + ' = RULES.custom[\'' + ($keyword) + '\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;'; + } else { + $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it); + if (!$ruleValidate) return; + $schemaValue = 'validate.schema' + $schemaPath; + $validateCode = $ruleValidate.code; + $compile = $rDef.compile; + $inline = $rDef.inline; + $macro = $rDef.macro; + } + var $ruleErrs = $validateCode + '.errors', + $i = 'i' + $lvl, + $ruleErr = 'ruleErr' + $lvl, + $asyncKeyword = $rDef.async; + if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema'); + if (!($inline || $macro)) { + out += '' + ($ruleErrs) + ' = null;'; + } + out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';'; + if ($isData && $rDef.$data) { + $closingBraces += '}'; + out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { '; + if ($validateSchema) { + $closingBraces += '}'; + out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { '; + } + } + if ($inline) { + if ($rDef.statements) { + out += ' ' + ($ruleValidate.validate) + ' '; + } else { + out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; '; + } + } else if ($macro) { + var $it = it.util.copy(it); + var $closingBraces = ''; + $it.level++; + var $nextValid = 'valid' + $it.level; + $it.schema = $ruleValidate.validate; + $it.schemaPath = ''; + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = true; + var $code = it.validate($it).replace(/validate\.schema/g, $validateCode); + it.compositeRule = $it.compositeRule = $wasComposite; + out += ' ' + ($code); + } else { + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; + out += ' ' + ($validateCode) + '.call( '; + if (it.opts.passContext) { + out += 'this'; + } else { + out += 'self'; + } + if ($compile || $rDef.schema === false) { + out += ' , ' + ($data) + ' '; + } else { + out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' '; + } + out += ' , (dataPath || \'\')'; + if (it.errorPath != '""') { + out += ' + ' + (it.errorPath); + } + var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData', + $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty'; + out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) '; + var def_callRuleValidate = out; + out = $$outStack.pop(); + if ($rDef.errors === false) { + out += ' ' + ($valid) + ' = '; + if ($asyncKeyword) { + out += '' + (it.yieldAwait); + } + out += '' + (def_callRuleValidate) + '; '; + } else { + if ($asyncKeyword) { + $ruleErrs = 'customErrors' + $lvl; + out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = ' + (it.yieldAwait) + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } '; + } else { + out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; '; + } + } + } + if ($rDef.modifying) { + out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];'; + } + out += '' + ($closingBraces); + if ($rDef.valid) { + if ($breakOnError) { + out += ' if (true) { '; + } + } else { + out += ' if ( '; + if ($rDef.valid === undefined) { + out += ' !'; + if ($macro) { + out += '' + ($nextValid); + } else { + out += '' + ($valid); + } + } else { + out += ' ' + (!$rDef.valid) + ' '; + } + out += ') { '; + $errorKeyword = $rule.keyword; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || 'custom') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \'' + ($rule.keyword) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should pass "' + ($rule.keyword) + '" keyword validation\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + var def_customError = out; + out = $$outStack.pop(); + if ($inline) { + if ($rDef.errors) { + if ($rDef.errors != 'full') { + out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '= 0) { + if ($breakOnError) { + out += ' if (true) { '; + } + return out; + } else { + throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"'); + } + } + var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate; + var $formatType = $isObject && $format.type || 'string'; + if ($isObject) { + var $async = $format.async === true; + $format = $format.validate; + } + if ($formatType != $ruleType) { + if ($breakOnError) { + out += ' if (true) { '; + } + return out; + } + if ($async) { + if (!it.async) throw new Error('async format in sync schema'); + var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate'; + out += ' if (!(' + (it.yieldAwait) + ' ' + ($formatRef) + '(' + ($data) + '))) { '; + } else { + out += ' if (! '; + var $formatRef = 'formats' + it.util.getProperty($schema); + if ($isObject) $formatRef += '.validate'; + if (typeof $format == 'function') { + out += ' ' + ($formatRef) + '(' + ($data) + ') '; + } else { + out += ' ' + ($formatRef) + '.test(' + ($data) + ') '; + } + out += ') { '; + } + } + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('format') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: '; + if ($isData) { + out += '' + ($schemaValue); + } else { + out += '' + (it.util.toQuotedString($schema)); + } + out += ' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should match format "'; + if ($isData) { + out += '\' + ' + ($schemaValue) + ' + \''; + } else { + out += '' + (it.util.escapeQuotes($schema)); + } + out += '"\' '; + } + if (it.opts.verbose) { + out += ' , schema: '; + if ($isData) { + out += 'validate.schema' + ($schemaPath); + } else { + out += '' + (it.util.toQuotedString($schema)); + } + out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } '; + if ($breakOnError) { + out += ' else { '; + } + return out; +} + +},{}],25:[function(require,module,exports){ +'use strict'; +module.exports = function generate_items(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $valid = 'valid' + $lvl; + var $errs = 'errs__' + $lvl; + var $it = it.util.copy(it); + var $closingBraces = ''; + $it.level++; + var $nextValid = 'valid' + $it.level; + var $idx = 'i' + $lvl, + $dataNxt = $it.dataLevel = it.dataLevel + 1, + $nextData = 'data' + $dataNxt, + $currentBaseId = it.baseId; + out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';'; + if (Array.isArray($schema)) { + var $additionalItems = it.schema.additionalItems; + if ($additionalItems === false) { + out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; '; + var $currErrSchemaPath = $errSchemaPath; + $errSchemaPath = it.errSchemaPath + '/additionalItems'; + out += ' if (!' + ($valid) + ') { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('additionalItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT have more than ' + ($schema.length) + ' items\' '; + } + if (it.opts.verbose) { + out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } '; + $errSchemaPath = $currErrSchemaPath; + if ($breakOnError) { + $closingBraces += '}'; + out += ' else { '; + } + } + var arr1 = $schema; + if (arr1) { + var $sch, $i = -1, + l1 = arr1.length - 1; + while ($i < l1) { + $sch = arr1[$i += 1]; + if (it.util.schemaHasRules($sch, it.RULES.all)) { + out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { '; + var $passData = $data + '[' + $i + ']'; + $it.schema = $sch; + $it.schemaPath = $schemaPath + '[' + $i + ']'; + $it.errSchemaPath = $errSchemaPath + '/' + $i; + $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true); + $it.dataPathArr[$dataNxt] = $i; + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; + } else { + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; + } + out += ' } '; + if ($breakOnError) { + out += ' if (' + ($nextValid) + ') { '; + $closingBraces += '}'; + } + } + } + } + if (typeof $additionalItems == 'object' && it.util.schemaHasRules($additionalItems, it.RULES.all)) { + $it.schema = $additionalItems; + $it.schemaPath = it.schemaPath + '.additionalItems'; + $it.errSchemaPath = it.errSchemaPath + '/additionalItems'; + out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { '; + $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true); + var $passData = $data + '[' + $idx + ']'; + $it.dataPathArr[$dataNxt] = $idx; + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; + } else { + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; + } + if ($breakOnError) { + out += ' if (!' + ($nextValid) + ') break; '; + } + out += ' } } '; + if ($breakOnError) { + out += ' if (' + ($nextValid) + ') { '; + $closingBraces += '}'; + } + } + } else if (it.util.schemaHasRules($schema, it.RULES.all)) { + $it.schema = $schema; + $it.schemaPath = $schemaPath; + $it.errSchemaPath = $errSchemaPath; + out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { '; + $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true); + var $passData = $data + '[' + $idx + ']'; + $it.dataPathArr[$dataNxt] = $idx; + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; + } else { + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; + } + if ($breakOnError) { + out += ' if (!' + ($nextValid) + ') break; '; + } + out += ' }'; + } + if ($breakOnError) { + out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; + } + out = it.util.cleanUpCode(out); + return out; +} + +},{}],26:[function(require,module,exports){ +'use strict'; +module.exports = function generate_multipleOf(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $isData = it.opts.$data && $schema && $schema.$data, + $schemaValue; + if ($isData) { + out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; + $schemaValue = 'schema' + $lvl; + } else { + $schemaValue = $schema; + } + out += 'var division' + ($lvl) + ';if ('; + if ($isData) { + out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \'number\' || '; + } + out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', '; + if (it.opts.multipleOfPrecision) { + out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' '; + } else { + out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') '; + } + out += ' ) '; + if ($isData) { + out += ' ) '; + } + out += ' ) { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('multipleOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should be multiple of '; + if ($isData) { + out += '\' + ' + ($schemaValue); + } else { + out += '' + ($schemaValue) + '\''; + } + } + if (it.opts.verbose) { + out += ' , schema: '; + if ($isData) { + out += 'validate.schema' + ($schemaPath); + } else { + out += '' + ($schema); + } + out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += '} '; + if ($breakOnError) { + out += ' else { '; + } + return out; +} + +},{}],27:[function(require,module,exports){ +'use strict'; +module.exports = function generate_not(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $errs = 'errs__' + $lvl; + var $it = it.util.copy(it); + $it.level++; + var $nextValid = 'valid' + $it.level; + if (it.util.schemaHasRules($schema, it.RULES.all)) { + $it.schema = $schema; + $it.schemaPath = $schemaPath; + $it.errSchemaPath = $errSchemaPath; + out += ' var ' + ($errs) + ' = errors; '; + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = true; + $it.createErrors = false; + var $allErrorsOption; + if ($it.opts.allErrors) { + $allErrorsOption = $it.opts.allErrors; + $it.opts.allErrors = false; + } + out += ' ' + (it.validate($it)) + ' '; + $it.createErrors = true; + if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption; + it.compositeRule = $it.compositeRule = $wasComposite; + out += ' if (' + ($nextValid) + ') { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('not') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT be valid\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } '; + if (it.opts.allErrors) { + out += ' } '; + } + } else { + out += ' var err = '; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('not') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT be valid\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + if ($breakOnError) { + out += ' if (false) { '; + } + } + return out; +} + +},{}],28:[function(require,module,exports){ +'use strict'; +module.exports = function generate_oneOf(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $valid = 'valid' + $lvl; + var $errs = 'errs__' + $lvl; + var $it = it.util.copy(it); + var $closingBraces = ''; + $it.level++; + var $nextValid = 'valid' + $it.level; + out += 'var ' + ($errs) + ' = errors;var prevValid' + ($lvl) + ' = false;var ' + ($valid) + ' = false;'; + var $currentBaseId = $it.baseId; + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = true; + var arr1 = $schema; + if (arr1) { + var $sch, $i = -1, + l1 = arr1.length - 1; + while ($i < l1) { + $sch = arr1[$i += 1]; + if (it.util.schemaHasRules($sch, it.RULES.all)) { + $it.schema = $sch; + $it.schemaPath = $schemaPath + '[' + $i + ']'; + $it.errSchemaPath = $errSchemaPath + '/' + $i; + out += ' ' + (it.validate($it)) + ' '; + $it.baseId = $currentBaseId; + } else { + out += ' var ' + ($nextValid) + ' = true; '; + } + if ($i) { + out += ' if (' + ($nextValid) + ' && prevValid' + ($lvl) + ') ' + ($valid) + ' = false; else { '; + $closingBraces += '}'; + } + out += ' if (' + ($nextValid) + ') ' + ($valid) + ' = prevValid' + ($lvl) + ' = true;'; + } + } + it.compositeRule = $it.compositeRule = $wasComposite; + out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('oneOf') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; + if (it.opts.messages !== false) { + out += ' , message: \'should match exactly one schema in oneOf\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError(vErrors); '; + } else { + out += ' validate.errors = vErrors; return false; '; + } + } + out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }'; + if (it.opts.allErrors) { + out += ' } '; + } + return out; +} + +},{}],29:[function(require,module,exports){ +'use strict'; +module.exports = function generate_pattern(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $isData = it.opts.$data && $schema && $schema.$data, + $schemaValue; + if ($isData) { + out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; + $schemaValue = 'schema' + $lvl; + } else { + $schemaValue = $schema; + } + var $regexp = $isData ? '(new RegExp(' + $schemaValue + '))' : it.usePattern($schema); + out += 'if ( '; + if ($isData) { + out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \'string\') || '; + } + out += ' !' + ($regexp) + '.test(' + ($data) + ') ) { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('pattern') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: '; + if ($isData) { + out += '' + ($schemaValue); + } else { + out += '' + (it.util.toQuotedString($schema)); + } + out += ' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should match pattern "'; + if ($isData) { + out += '\' + ' + ($schemaValue) + ' + \''; + } else { + out += '' + (it.util.escapeQuotes($schema)); + } + out += '"\' '; + } + if (it.opts.verbose) { + out += ' , schema: '; + if ($isData) { + out += 'validate.schema' + ($schemaPath); + } else { + out += '' + (it.util.toQuotedString($schema)); + } + out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += '} '; + if ($breakOnError) { + out += ' else { '; + } + return out; +} + +},{}],30:[function(require,module,exports){ +'use strict'; +module.exports = function generate_properties(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $valid = 'valid' + $lvl; + var $errs = 'errs__' + $lvl; + var $it = it.util.copy(it); + var $closingBraces = ''; + $it.level++; + var $nextValid = 'valid' + $it.level; + var $key = 'key' + $lvl, + $idx = 'idx' + $lvl, + $dataNxt = $it.dataLevel = it.dataLevel + 1, + $nextData = 'data' + $dataNxt, + $dataProperties = 'dataProperties' + $lvl; + var $schemaKeys = Object.keys($schema || {}), + $pProperties = it.schema.patternProperties || {}, + $pPropertyKeys = Object.keys($pProperties), + $aProperties = it.schema.additionalProperties, + $someProperties = $schemaKeys.length || $pPropertyKeys.length, + $noAdditional = $aProperties === false, + $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length, + $removeAdditional = it.opts.removeAdditional, + $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional, + $ownProperties = it.opts.ownProperties, + $currentBaseId = it.baseId; + var $required = it.schema.required; + if ($required && !(it.opts.v5 && $required.$data) && $required.length < it.opts.loopRequired) var $requiredHash = it.util.toHash($required); + if (it.opts.patternGroups) { + var $pgProperties = it.schema.patternGroups || {}, + $pgPropertyKeys = Object.keys($pgProperties); + } + out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;'; + if ($ownProperties) { + out += ' var ' + ($dataProperties) + ' = undefined;'; + } + if ($checkAdditional) { + if ($ownProperties) { + out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; '; + } else { + out += ' for (var ' + ($key) + ' in ' + ($data) + ') { '; + } + if ($someProperties) { + out += ' var isAdditional' + ($lvl) + ' = !(false '; + if ($schemaKeys.length) { + if ($schemaKeys.length > 5) { + out += ' || validate.schema' + ($schemaPath) + '[' + ($key) + '] '; + } else { + var arr1 = $schemaKeys; + if (arr1) { + var $propertyKey, i1 = -1, + l1 = arr1.length - 1; + while (i1 < l1) { + $propertyKey = arr1[i1 += 1]; + out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' '; + } + } + } + } + if ($pPropertyKeys.length) { + var arr2 = $pPropertyKeys; + if (arr2) { + var $pProperty, $i = -1, + l2 = arr2.length - 1; + while ($i < l2) { + $pProperty = arr2[$i += 1]; + out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') '; + } + } + } + if (it.opts.patternGroups && $pgPropertyKeys.length) { + var arr3 = $pgPropertyKeys; + if (arr3) { + var $pgProperty, $i = -1, + l3 = arr3.length - 1; + while ($i < l3) { + $pgProperty = arr3[$i += 1]; + out += ' || ' + (it.usePattern($pgProperty)) + '.test(' + ($key) + ') '; + } + } + } + out += ' ); if (isAdditional' + ($lvl) + ') { '; + } + if ($removeAdditional == 'all') { + out += ' delete ' + ($data) + '[' + ($key) + ']; '; + } else { + var $currentErrorPath = it.errorPath; + var $additionalProperty = '\' + ' + $key + ' + \''; + if (it.opts._errorDataPathProperty) { + it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); + } + if ($noAdditional) { + if ($removeAdditional) { + out += ' delete ' + ($data) + '[' + ($key) + ']; '; + } else { + out += ' ' + ($nextValid) + ' = false; '; + var $currErrSchemaPath = $errSchemaPath; + $errSchemaPath = it.errSchemaPath + '/additionalProperties'; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('additionalProperties') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \'' + ($additionalProperty) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT have additional properties\' '; + } + if (it.opts.verbose) { + out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + $errSchemaPath = $currErrSchemaPath; + if ($breakOnError) { + out += ' break; '; + } + } + } else if ($additionalIsSchema) { + if ($removeAdditional == 'failing') { + out += ' var ' + ($errs) + ' = errors; '; + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = true; + $it.schema = $aProperties; + $it.schemaPath = it.schemaPath + '.additionalProperties'; + $it.errSchemaPath = it.errSchemaPath + '/additionalProperties'; + $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); + var $passData = $data + '[' + $key + ']'; + $it.dataPathArr[$dataNxt] = $key; + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; + } else { + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; + } + out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } '; + it.compositeRule = $it.compositeRule = $wasComposite; + } else { + $it.schema = $aProperties; + $it.schemaPath = it.schemaPath + '.additionalProperties'; + $it.errSchemaPath = it.errSchemaPath + '/additionalProperties'; + $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); + var $passData = $data + '[' + $key + ']'; + $it.dataPathArr[$dataNxt] = $key; + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; + } else { + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; + } + if ($breakOnError) { + out += ' if (!' + ($nextValid) + ') break; '; + } + } + } + it.errorPath = $currentErrorPath; + } + if ($someProperties) { + out += ' } '; + } + out += ' } '; + if ($breakOnError) { + out += ' if (' + ($nextValid) + ') { '; + $closingBraces += '}'; + } + } + var $useDefaults = it.opts.useDefaults && !it.compositeRule; + if ($schemaKeys.length) { + var arr4 = $schemaKeys; + if (arr4) { + var $propertyKey, i4 = -1, + l4 = arr4.length - 1; + while (i4 < l4) { + $propertyKey = arr4[i4 += 1]; + var $sch = $schema[$propertyKey]; + if (it.util.schemaHasRules($sch, it.RULES.all)) { + var $prop = it.util.getProperty($propertyKey), + $passData = $data + $prop, + $hasDefault = $useDefaults && $sch.default !== undefined; + $it.schema = $sch; + $it.schemaPath = $schemaPath + $prop; + $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey); + $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers); + $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey); + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + $code = it.util.varReplace($code, $nextData, $passData); + var $useData = $passData; + } else { + var $useData = $nextData; + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; '; + } + if ($hasDefault) { + out += ' ' + ($code) + ' '; + } else { + if ($requiredHash && $requiredHash[$propertyKey]) { + out += ' if ( ' + ($useData) + ' === undefined '; + if ($ownProperties) { + out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; + } + out += ') { ' + ($nextValid) + ' = false; '; + var $currentErrorPath = it.errorPath, + $currErrSchemaPath = $errSchemaPath, + $missingProperty = it.util.escapeQuotes($propertyKey); + if (it.opts._errorDataPathProperty) { + it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers); + } + $errSchemaPath = it.errSchemaPath + '/required'; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \''; + if (it.opts._errorDataPathProperty) { + out += 'is a required property'; + } else { + out += 'should have required property \\\'' + ($missingProperty) + '\\\''; + } + out += '\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + $errSchemaPath = $currErrSchemaPath; + it.errorPath = $currentErrorPath; + out += ' } else { '; + } else { + if ($breakOnError) { + out += ' if ( ' + ($useData) + ' === undefined '; + if ($ownProperties) { + out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; + } + out += ') { ' + ($nextValid) + ' = true; } else { '; + } else { + out += ' if (' + ($useData) + ' !== undefined '; + if ($ownProperties) { + out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; + } + out += ' ) { '; + } + } + out += ' ' + ($code) + ' } '; + } + } + if ($breakOnError) { + out += ' if (' + ($nextValid) + ') { '; + $closingBraces += '}'; + } + } + } + } + if ($pPropertyKeys.length) { + var arr5 = $pPropertyKeys; + if (arr5) { + var $pProperty, i5 = -1, + l5 = arr5.length - 1; + while (i5 < l5) { + $pProperty = arr5[i5 += 1]; + var $sch = $pProperties[$pProperty]; + if (it.util.schemaHasRules($sch, it.RULES.all)) { + $it.schema = $sch; + $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty); + $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty); + if ($ownProperties) { + out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; '; + } else { + out += ' for (var ' + ($key) + ' in ' + ($data) + ') { '; + } + out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { '; + $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); + var $passData = $data + '[' + $key + ']'; + $it.dataPathArr[$dataNxt] = $key; + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; + } else { + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; + } + if ($breakOnError) { + out += ' if (!' + ($nextValid) + ') break; '; + } + out += ' } '; + if ($breakOnError) { + out += ' else ' + ($nextValid) + ' = true; '; + } + out += ' } '; + if ($breakOnError) { + out += ' if (' + ($nextValid) + ') { '; + $closingBraces += '}'; + } + } + } + } + } + if (it.opts.patternGroups && $pgPropertyKeys.length) { + var arr6 = $pgPropertyKeys; + if (arr6) { + var $pgProperty, i6 = -1, + l6 = arr6.length - 1; + while (i6 < l6) { + $pgProperty = arr6[i6 += 1]; + var $pgSchema = $pgProperties[$pgProperty], + $sch = $pgSchema.schema; + if (it.util.schemaHasRules($sch, it.RULES.all)) { + $it.schema = $sch; + $it.schemaPath = it.schemaPath + '.patternGroups' + it.util.getProperty($pgProperty) + '.schema'; + $it.errSchemaPath = it.errSchemaPath + '/patternGroups/' + it.util.escapeFragment($pgProperty) + '/schema'; + out += ' var pgPropCount' + ($lvl) + ' = 0; '; + if ($ownProperties) { + out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; '; + } else { + out += ' for (var ' + ($key) + ' in ' + ($data) + ') { '; + } + out += ' if (' + (it.usePattern($pgProperty)) + '.test(' + ($key) + ')) { pgPropCount' + ($lvl) + '++; '; + $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers); + var $passData = $data + '[' + $key + ']'; + $it.dataPathArr[$dataNxt] = $key; + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; + } else { + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; + } + if ($breakOnError) { + out += ' if (!' + ($nextValid) + ') break; '; + } + out += ' } '; + if ($breakOnError) { + out += ' else ' + ($nextValid) + ' = true; '; + } + out += ' } '; + if ($breakOnError) { + out += ' if (' + ($nextValid) + ') { '; + $closingBraces += '}'; + } + var $pgMin = $pgSchema.minimum, + $pgMax = $pgSchema.maximum; + if ($pgMin !== undefined || $pgMax !== undefined) { + out += ' var ' + ($valid) + ' = true; '; + var $currErrSchemaPath = $errSchemaPath; + if ($pgMin !== undefined) { + var $limit = $pgMin, + $reason = 'minimum', + $moreOrLess = 'less'; + out += ' ' + ($valid) + ' = pgPropCount' + ($lvl) + ' >= ' + ($pgMin) + '; '; + $errSchemaPath = it.errSchemaPath + '/patternGroups/minimum'; + out += ' if (!' + ($valid) + ') { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('patternGroups') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { reason: \'' + ($reason) + '\', limit: ' + ($limit) + ', pattern: \'' + (it.util.escapeQuotes($pgProperty)) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT have ' + ($moreOrLess) + ' than ' + ($limit) + ' properties matching pattern "' + (it.util.escapeQuotes($pgProperty)) + '"\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } '; + if ($pgMax !== undefined) { + out += ' else '; + } + } + if ($pgMax !== undefined) { + var $limit = $pgMax, + $reason = 'maximum', + $moreOrLess = 'more'; + out += ' ' + ($valid) + ' = pgPropCount' + ($lvl) + ' <= ' + ($pgMax) + '; '; + $errSchemaPath = it.errSchemaPath + '/patternGroups/maximum'; + out += ' if (!' + ($valid) + ') { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('patternGroups') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { reason: \'' + ($reason) + '\', limit: ' + ($limit) + ', pattern: \'' + (it.util.escapeQuotes($pgProperty)) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT have ' + ($moreOrLess) + ' than ' + ($limit) + ' properties matching pattern "' + (it.util.escapeQuotes($pgProperty)) + '"\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } '; + } + $errSchemaPath = $currErrSchemaPath; + if ($breakOnError) { + out += ' if (' + ($valid) + ') { '; + $closingBraces += '}'; + } + } + } + } + } + } + if ($breakOnError) { + out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {'; + } + out = it.util.cleanUpCode(out); + return out; +} + +},{}],31:[function(require,module,exports){ +'use strict'; +module.exports = function generate_propertyNames(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $errs = 'errs__' + $lvl; + var $it = it.util.copy(it); + var $closingBraces = ''; + $it.level++; + var $nextValid = 'valid' + $it.level; + if (it.util.schemaHasRules($schema, it.RULES.all)) { + $it.schema = $schema; + $it.schemaPath = $schemaPath; + $it.errSchemaPath = $errSchemaPath; + var $key = 'key' + $lvl, + $idx = 'idx' + $lvl, + $i = 'i' + $lvl, + $invalidName = '\' + ' + $key + ' + \'', + $dataNxt = $it.dataLevel = it.dataLevel + 1, + $nextData = 'data' + $dataNxt, + $dataProperties = 'dataProperties' + $lvl, + $ownProperties = it.opts.ownProperties, + $currentBaseId = it.baseId; + out += ' var ' + ($errs) + ' = errors; '; + if ($ownProperties) { + out += ' var ' + ($dataProperties) + ' = undefined; '; + } + if ($ownProperties) { + out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; '; + } else { + out += ' for (var ' + ($key) + ' in ' + ($data) + ') { '; + } + out += ' var startErrs' + ($lvl) + ' = errors; '; + var $passData = $key; + var $wasComposite = it.compositeRule; + it.compositeRule = $it.compositeRule = true; + var $code = it.validate($it); + $it.baseId = $currentBaseId; + if (it.util.varOccurences($code, $nextData) < 2) { + out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' '; + } else { + out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' '; + } + it.compositeRule = $it.compositeRule = $wasComposite; + out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + '= it.opts.loopRequired, + $ownProperties = it.opts.ownProperties; + if ($breakOnError) { + out += ' var missing' + ($lvl) + '; '; + if ($loopRequired) { + if (!$isData) { + out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; '; + } + var $i = 'i' + $lvl, + $propertyPath = 'schema' + $lvl + '[' + $i + ']', + $missingProperty = '\' + ' + $propertyPath + ' + \''; + if (it.opts._errorDataPathProperty) { + it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers); + } + out += ' var ' + ($valid) + ' = true; '; + if ($isData) { + out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {'; + } + out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined '; + if ($ownProperties) { + out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) '; + } + out += '; if (!' + ($valid) + ') break; } '; + if ($isData) { + out += ' } '; + } + out += ' if (!' + ($valid) + ') { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \''; + if (it.opts._errorDataPathProperty) { + out += 'is a required property'; + } else { + out += 'should have required property \\\'' + ($missingProperty) + '\\\''; + } + out += '\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } else { '; + } else { + out += ' if ( '; + var arr2 = $required; + if (arr2) { + var $propertyKey, $i = -1, + l2 = arr2.length - 1; + while ($i < l2) { + $propertyKey = arr2[$i += 1]; + if ($i) { + out += ' || '; + } + var $prop = it.util.getProperty($propertyKey), + $useData = $data + $prop; + out += ' ( ( ' + ($useData) + ' === undefined '; + if ($ownProperties) { + out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; + } + out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) '; + } + } + out += ') { '; + var $propertyPath = 'missing' + $lvl, + $missingProperty = '\' + ' + $propertyPath + ' + \''; + if (it.opts._errorDataPathProperty) { + it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath; + } + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \''; + if (it.opts._errorDataPathProperty) { + out += 'is a required property'; + } else { + out += 'should have required property \\\'' + ($missingProperty) + '\\\''; + } + out += '\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } else { '; + } + } else { + if ($loopRequired) { + if (!$isData) { + out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; '; + } + var $i = 'i' + $lvl, + $propertyPath = 'schema' + $lvl + '[' + $i + ']', + $missingProperty = '\' + ' + $propertyPath + ' + \''; + if (it.opts._errorDataPathProperty) { + it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers); + } + if ($isData) { + out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \''; + if (it.opts._errorDataPathProperty) { + out += 'is a required property'; + } else { + out += 'should have required property \\\'' + ($missingProperty) + '\\\''; + } + out += '\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { '; + } + out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined '; + if ($ownProperties) { + out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) '; + } + out += ') { var err = '; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \''; + if (it.opts._errorDataPathProperty) { + out += 'is a required property'; + } else { + out += 'should have required property \\\'' + ($missingProperty) + '\\\''; + } + out += '\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } '; + if ($isData) { + out += ' } '; + } + } else { + var arr3 = $required; + if (arr3) { + var $propertyKey, i3 = -1, + l3 = arr3.length - 1; + while (i3 < l3) { + $propertyKey = arr3[i3 += 1]; + var $prop = it.util.getProperty($propertyKey), + $missingProperty = it.util.escapeQuotes($propertyKey), + $useData = $data + $prop; + if (it.opts._errorDataPathProperty) { + it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers); + } + out += ' if ( ' + ($useData) + ' === undefined '; + if ($ownProperties) { + out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \'' + (it.util.escapeQuotes($propertyKey)) + '\') '; + } + out += ') { var err = '; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('required') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \'' + ($missingProperty) + '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \''; + if (it.opts._errorDataPathProperty) { + out += 'is a required property'; + } else { + out += 'should have required property \\\'' + ($missingProperty) + '\\\''; + } + out += '\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } '; + } + } + } + } + it.errorPath = $currentErrorPath; + } else if ($breakOnError) { + out += ' if (true) {'; + } + return out; +} + +},{}],34:[function(require,module,exports){ +'use strict'; +module.exports = function generate_uniqueItems(it, $keyword, $ruleType) { + var out = ' '; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $data = 'data' + ($dataLvl || ''); + var $valid = 'valid' + $lvl; + var $isData = it.opts.$data && $schema && $schema.$data, + $schemaValue; + if ($isData) { + out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; '; + $schemaValue = 'schema' + $lvl; + } else { + $schemaValue = $schema; + } + if (($schema || $isData) && it.opts.uniqueItems !== false) { + if ($isData) { + out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \'boolean\') ' + ($valid) + ' = false; else { '; + } + out += ' var ' + ($valid) + ' = true; if (' + ($data) + '.length > 1) { var i = ' + ($data) + '.length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } } '; + if ($isData) { + out += ' } '; + } + out += ' if (!' + ($valid) + ') { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ('uniqueItems') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } '; + if (it.opts.messages !== false) { + out += ' , message: \'should NOT have duplicate items (items ## \' + j + \' and \' + i + \' are identical)\' '; + } + if (it.opts.verbose) { + out += ' , schema: '; + if ($isData) { + out += 'validate.schema' + ($schemaPath); + } else { + out += '' + ($schema); + } + out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } '; + if ($breakOnError) { + out += ' else { '; + } + } else { + if ($breakOnError) { + out += ' if (true) { '; + } + } + return out; +} + +},{}],35:[function(require,module,exports){ +'use strict'; +module.exports = function generate_validate(it, $keyword, $ruleType) { + var out = ''; + var $async = it.schema.$async === true, + $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'), + $id = it.self._getId(it.schema); + if (it.isTop) { + if ($async) { + it.async = true; + var $es7 = it.opts.async == 'es7'; + it.yieldAwait = $es7 ? 'await' : 'yield'; + } + out += ' var validate = '; + if ($async) { + if ($es7) { + out += ' (async function '; + } else { + if (it.opts.async != '*') { + out += 'co.wrap'; + } + out += '(function* '; + } + } else { + out += ' (function '; + } + out += ' (data, dataPath, parentData, parentDataProperty, rootData) { \'use strict\'; '; + if ($id && (it.opts.sourceCode || it.opts.processCode)) { + out += ' ' + ('/\*# sourceURL=' + $id + ' */') + ' '; + } + } + if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) { + var $keyword = 'false schema'; + var $lvl = it.level; + var $dataLvl = it.dataLevel; + var $schema = it.schema[$keyword]; + var $schemaPath = it.schemaPath + it.util.getProperty($keyword); + var $errSchemaPath = it.errSchemaPath + '/' + $keyword; + var $breakOnError = !it.opts.allErrors; + var $errorKeyword; + var $data = 'data' + ($dataLvl || ''); + var $valid = 'valid' + $lvl; + if (it.schema === false) { + if (it.isTop) { + $breakOnError = true; + } else { + out += ' var ' + ($valid) + ' = false; '; + } + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || 'false schema') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} '; + if (it.opts.messages !== false) { + out += ' , message: \'boolean schema is false\' '; + } + if (it.opts.verbose) { + out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + } else { + if (it.isTop) { + if ($async) { + out += ' return data; '; + } else { + out += ' validate.errors = null; return true; '; + } + } else { + out += ' var ' + ($valid) + ' = true; '; + } + } + if (it.isTop) { + out += ' }); return validate; '; + } + return out; + } + if (it.isTop) { + var $top = it.isTop, + $lvl = it.level = 0, + $dataLvl = it.dataLevel = 0, + $data = 'data'; + it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema)); + it.baseId = it.baseId || it.rootId; + delete it.isTop; + it.dataPathArr = [undefined]; + out += ' var vErrors = null; '; + out += ' var errors = 0; '; + out += ' if (rootData === undefined) rootData = data; '; + } else { + var $lvl = it.level, + $dataLvl = it.dataLevel, + $data = 'data' + ($dataLvl || ''); + if ($id) it.baseId = it.resolve.url(it.baseId, $id); + if ($async && !it.async) throw new Error('async schema in sync schema'); + out += ' var errs_' + ($lvl) + ' = errors;'; + } + var $valid = 'valid' + $lvl, + $breakOnError = !it.opts.allErrors, + $closingBraces1 = '', + $closingBraces2 = ''; + var $errorKeyword; + var $typeSchema = it.schema.type, + $typeIsArray = Array.isArray($typeSchema); + if ($typeIsArray && $typeSchema.length == 1) { + $typeSchema = $typeSchema[0]; + $typeIsArray = false; + } + if (it.schema.$ref && $refKeywords) { + if (it.opts.extendRefs == 'fail') { + throw new Error('$ref: validation keywords used in schema at path "' + it.errSchemaPath + '" (see option extendRefs)'); + } else if (it.opts.extendRefs !== true) { + $refKeywords = false; + it.logger.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"'); + } + } + if ($typeSchema) { + if (it.opts.coerceTypes) { + var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema); + } + var $rulesGroup = it.RULES.types[$typeSchema]; + if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) { + var $schemaPath = it.schemaPath + '.type', + $errSchemaPath = it.errSchemaPath + '/type'; + var $schemaPath = it.schemaPath + '.type', + $errSchemaPath = it.errSchemaPath + '/type', + $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType'; + out += ' if (' + (it.util[$method]($typeSchema, $data, true)) + ') { '; + if ($coerceToTypes) { + var $dataType = 'dataType' + $lvl, + $coerced = 'coerced' + $lvl; + out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; '; + if (it.opts.coerceTypes == 'array') { + out += ' if (' + ($dataType) + ' == \'object\' && Array.isArray(' + ($data) + ')) ' + ($dataType) + ' = \'array\'; '; + } + out += ' var ' + ($coerced) + ' = undefined; '; + var $bracesCoercion = ''; + var arr1 = $coerceToTypes; + if (arr1) { + var $type, $i = -1, + l1 = arr1.length - 1; + while ($i < l1) { + $type = arr1[$i += 1]; + if ($i) { + out += ' if (' + ($coerced) + ' === undefined) { '; + $bracesCoercion += '}'; + } + if (it.opts.coerceTypes == 'array' && $type != 'array') { + out += ' if (' + ($dataType) + ' == \'array\' && ' + ($data) + '.length == 1) { ' + ($coerced) + ' = ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; } '; + } + if ($type == 'string') { + out += ' if (' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\') ' + ($coerced) + ' = \'\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \'\'; '; + } else if ($type == 'number' || $type == 'integer') { + out += ' if (' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \'string\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' '; + if ($type == 'integer') { + out += ' && !(' + ($data) + ' % 1)'; + } + out += ')) ' + ($coerced) + ' = +' + ($data) + '; '; + } else if ($type == 'boolean') { + out += ' if (' + ($data) + ' === \'false\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \'true\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; '; + } else if ($type == 'null') { + out += ' if (' + ($data) + ' === \'\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; '; + } else if (it.opts.coerceTypes == 'array' && $type == 'array') { + out += ' if (' + ($dataType) + ' == \'string\' || ' + ($dataType) + ' == \'number\' || ' + ($dataType) + ' == \'boolean\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; '; + } + } + } + out += ' ' + ($bracesCoercion) + ' if (' + ($coerced) + ' === undefined) { '; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \''; + if ($typeIsArray) { + out += '' + ($typeSchema.join(",")); + } else { + out += '' + ($typeSchema); + } + out += '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should be '; + if ($typeIsArray) { + out += '' + ($typeSchema.join(",")); + } else { + out += '' + ($typeSchema); + } + out += '\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } else { '; + var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData', + $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty'; + out += ' ' + ($data) + ' = ' + ($coerced) + '; '; + if (!$dataLvl) { + out += 'if (' + ($parentData) + ' !== undefined)'; + } + out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } '; + } else { + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \''; + if ($typeIsArray) { + out += '' + ($typeSchema.join(",")); + } else { + out += '' + ($typeSchema); + } + out += '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should be '; + if ($typeIsArray) { + out += '' + ($typeSchema.join(",")); + } else { + out += '' + ($typeSchema); + } + out += '\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + } + out += ' } '; + } + } + if (it.schema.$ref && !$refKeywords) { + out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' '; + if ($breakOnError) { + out += ' } if (errors === '; + if ($top) { + out += '0'; + } else { + out += 'errs_' + ($lvl); + } + out += ') { '; + $closingBraces2 += '}'; + } + } else { + if (it.opts.v5 && it.schema.patternGroups) { + it.logger.warn('keyword "patternGroups" is deprecated and disabled. Use option patternGroups: true to enable.'); + } + var arr2 = it.RULES; + if (arr2) { + var $rulesGroup, i2 = -1, + l2 = arr2.length - 1; + while (i2 < l2) { + $rulesGroup = arr2[i2 += 1]; + if ($shouldUseGroup($rulesGroup)) { + if ($rulesGroup.type) { + out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data)) + ') { '; + } + if (it.opts.useDefaults && !it.compositeRule) { + if ($rulesGroup.type == 'object' && it.schema.properties) { + var $schema = it.schema.properties, + $schemaKeys = Object.keys($schema); + var arr3 = $schemaKeys; + if (arr3) { + var $propertyKey, i3 = -1, + l3 = arr3.length - 1; + while (i3 < l3) { + $propertyKey = arr3[i3 += 1]; + var $sch = $schema[$propertyKey]; + if ($sch.default !== undefined) { + var $passData = $data + it.util.getProperty($propertyKey); + out += ' if (' + ($passData) + ' === undefined) ' + ($passData) + ' = '; + if (it.opts.useDefaults == 'shared') { + out += ' ' + (it.useDefault($sch.default)) + ' '; + } else { + out += ' ' + (JSON.stringify($sch.default)) + ' '; + } + out += '; '; + } + } + } + } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) { + var arr4 = it.schema.items; + if (arr4) { + var $sch, $i = -1, + l4 = arr4.length - 1; + while ($i < l4) { + $sch = arr4[$i += 1]; + if ($sch.default !== undefined) { + var $passData = $data + '[' + $i + ']'; + out += ' if (' + ($passData) + ' === undefined) ' + ($passData) + ' = '; + if (it.opts.useDefaults == 'shared') { + out += ' ' + (it.useDefault($sch.default)) + ' '; + } else { + out += ' ' + (JSON.stringify($sch.default)) + ' '; + } + out += '; '; + } + } + } + } + } + var arr5 = $rulesGroup.rules; + if (arr5) { + var $rule, i5 = -1, + l5 = arr5.length - 1; + while (i5 < l5) { + $rule = arr5[i5 += 1]; + if ($shouldUseRule($rule)) { + var $code = $rule.code(it, $rule.keyword, $rulesGroup.type); + if ($code) { + out += ' ' + ($code) + ' '; + if ($breakOnError) { + $closingBraces1 += '}'; + } + } + } + } + } + if ($breakOnError) { + out += ' ' + ($closingBraces1) + ' '; + $closingBraces1 = ''; + } + if ($rulesGroup.type) { + out += ' } '; + if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) { + out += ' else { '; + var $schemaPath = it.schemaPath + '.type', + $errSchemaPath = it.errSchemaPath + '/type'; + var $$outStack = $$outStack || []; + $$outStack.push(out); + out = ''; /* istanbul ignore else */ + if (it.createErrors !== false) { + out += ' { keyword: \'' + ($errorKeyword || 'type') + '\' , dataPath: (dataPath || \'\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \''; + if ($typeIsArray) { + out += '' + ($typeSchema.join(",")); + } else { + out += '' + ($typeSchema); + } + out += '\' } '; + if (it.opts.messages !== false) { + out += ' , message: \'should be '; + if ($typeIsArray) { + out += '' + ($typeSchema.join(",")); + } else { + out += '' + ($typeSchema); + } + out += '\' '; + } + if (it.opts.verbose) { + out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' '; + } + out += ' } '; + } else { + out += ' {} '; + } + var __err = out; + out = $$outStack.pop(); + if (!it.compositeRule && $breakOnError) { /* istanbul ignore if */ + if (it.async) { + out += ' throw new ValidationError([' + (__err) + ']); '; + } else { + out += ' validate.errors = [' + (__err) + ']; return false; '; + } + } else { + out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; '; + } + out += ' } '; + } + } + if ($breakOnError) { + out += ' if (errors === '; + if ($top) { + out += '0'; + } else { + out += 'errs_' + ($lvl); + } + out += ') { '; + $closingBraces2 += '}'; + } + } + } + } + } + if ($breakOnError) { + out += ' ' + ($closingBraces2) + ' '; + } + if ($top) { + if ($async) { + out += ' if (errors === 0) return data; '; + out += ' else throw new ValidationError(vErrors); '; + } else { + out += ' validate.errors = vErrors; '; + out += ' return errors === 0; '; + } + out += ' }); return validate;'; + } else { + out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';'; + } + out = it.util.cleanUpCode(out); + if ($top) { + out = it.util.finalCleanUpCode(out, $async); + } + + function $shouldUseGroup($rulesGroup) { + var rules = $rulesGroup.rules; + for (var i = 0; i < rules.length; i++) + if ($shouldUseRule(rules[i])) return true; + } + + function $shouldUseRule($rule) { + return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule)); + } + + function $ruleImplementsSomeKeyword($rule) { + var impl = $rule.implements; + for (var i = 0; i < impl.length; i++) + if (it.schema[impl[i]] !== undefined) return true; + } + return out; +} + +},{}],36:[function(require,module,exports){ +'use strict'; + +var IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i; +var customRuleCode = require('./dotjs/custom'); + +module.exports = { + add: addKeyword, + get: getKeyword, + remove: removeKeyword +}; + +/** + * Define custom keyword + * @this Ajv + * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords). + * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`. + * @return {Ajv} this for method chaining + */ +function addKeyword(keyword, definition) { + /* jshint validthis: true */ + /* eslint no-shadow: 0 */ + var RULES = this.RULES; + + if (RULES.keywords[keyword]) + throw new Error('Keyword ' + keyword + ' is already defined'); + + if (!IDENTIFIER.test(keyword)) + throw new Error('Keyword ' + keyword + ' is not a valid identifier'); + + if (definition) { + if (definition.macro && definition.valid !== undefined) + throw new Error('"valid" option cannot be used with macro keywords'); + + var dataType = definition.type; + if (Array.isArray(dataType)) { + var i, len = dataType.length; + for (i=0; i 2) res = slice.call(arguments, 1); + resolve(res); + }); + }); +} + +/** + * Convert an array of "yieldables" to a promise. + * Uses `Promise.all()` internally. + * + * @param {Array} obj + * @return {Promise} + * @api private + */ + +function arrayToPromise(obj) { + return Promise.all(obj.map(toPromise, this)); +} + +/** + * Convert an object of "yieldables" to a promise. + * Uses `Promise.all()` internally. + * + * @param {Object} obj + * @return {Promise} + * @api private + */ + +function objectToPromise(obj){ + var results = new obj.constructor(); + var keys = Object.keys(obj); + var promises = []; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var promise = toPromise.call(this, obj[key]); + if (promise && isPromise(promise)) defer(promise, key); + else results[key] = obj[key]; + } + return Promise.all(promises).then(function () { + return results; + }); + + function defer(promise, key) { + // predefine the key in the result + results[key] = undefined; + promises.push(promise.then(function (res) { + results[key] = res; + })); + } +} + +/** + * Check if `obj` is a promise. + * + * @param {Object} obj + * @return {Boolean} + * @api private + */ + +function isPromise(obj) { + return 'function' == typeof obj.then; +} + +/** + * Check if `obj` is a generator. + * + * @param {Mixed} obj + * @return {Boolean} + * @api private + */ + +function isGenerator(obj) { + return 'function' == typeof obj.next && 'function' == typeof obj.throw; +} + +/** + * Check if `obj` is a generator function. + * + * @param {Mixed} obj + * @return {Boolean} + * @api private + */ +function isGeneratorFunction(obj) { + var constructor = obj.constructor; + if (!constructor) return false; + if ('GeneratorFunction' === constructor.name || 'GeneratorFunction' === constructor.displayName) return true; + return isGenerator(constructor.prototype); +} + +/** + * Check for plain object. + * + * @param {Mixed} val + * @return {Boolean} + * @api private + */ + +function isObject(val) { + return Object == val.constructor; +} + +},{}],41:[function(require,module,exports){ +'use strict'; + +module.exports = function equal(a, b) { + if (a === b) return true; + + var arrA = Array.isArray(a) + , arrB = Array.isArray(b) + , i; + + if (arrA && arrB) { + if (a.length != b.length) return false; + for (i = 0; i < a.length; i++) + if (!equal(a[i], b[i])) return false; + return true; + } + + if (arrA != arrB) return false; + + if (a && b && typeof a === 'object' && typeof b === 'object') { + var keys = Object.keys(a); + if (keys.length !== Object.keys(b).length) return false; + + var dateA = a instanceof Date + , dateB = b instanceof Date; + if (dateA && dateB) return a.getTime() == b.getTime(); + if (dateA != dateB) return false; + + var regexpA = a instanceof RegExp + , regexpB = b instanceof RegExp; + if (regexpA && regexpB) return a.toString() == b.toString(); + if (regexpA != regexpB) return false; + + for (i = 0; i < keys.length; i++) + if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; + + for (i = 0; i < keys.length; i++) + if(!equal(a[keys[i]], b[keys[i]])) return false; + + return true; + } + + return false; +}; + +},{}],42:[function(require,module,exports){ +'use strict'; + +module.exports = function (data, opts) { + if (!opts) opts = {}; + if (typeof opts === 'function') opts = { cmp: opts }; + var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false; + + var cmp = opts.cmp && (function (f) { + return function (node) { + return function (a, b) { + var aobj = { key: a, value: node[a] }; + var bobj = { key: b, value: node[b] }; + return f(aobj, bobj); + }; + }; + })(opts.cmp); + + var seen = []; + return (function stringify (node) { + if (node && node.toJSON && typeof node.toJSON === 'function') { + node = node.toJSON(); + } + + if (node === undefined) return; + if (typeof node == 'number') return isFinite(node) ? '' + node : 'null'; + if (typeof node !== 'object') return JSON.stringify(node); + + var i, out; + if (Array.isArray(node)) { + out = '['; + for (i = 0; i < node.length; i++) { + if (i) out += ','; + out += stringify(node[i]) || 'null'; + } + return out + ']'; + } + + if (node === null) return 'null'; + + if (seen.indexOf(node) !== -1) { + if (cycles) return JSON.stringify('__cycle__'); + throw new TypeError('Converting circular structure to JSON'); + } + + var seenIndex = seen.push(node) - 1; + var keys = Object.keys(node).sort(cmp && cmp(node)); + out = ''; + for (i = 0; i < keys.length; i++) { + var key = keys[i]; + var value = stringify(node[key]); + + if (!value) continue; + if (out) out += ','; + out += JSON.stringify(key) + ':' + value; + } + seen.splice(seenIndex, 1); + return '{' + out + '}'; + })(data); +}; + +},{}],43:[function(require,module,exports){ +'use strict'; + +var traverse = module.exports = function (schema, opts, cb) { + if (typeof opts == 'function') { + cb = opts; + opts = {}; + } + _traverse(opts, cb, schema, '', schema); +}; + + +traverse.keywords = { + additionalItems: true, + items: true, + contains: true, + additionalProperties: true, + propertyNames: true, + not: true +}; + +traverse.arrayKeywords = { + items: true, + allOf: true, + anyOf: true, + oneOf: true +}; + +traverse.propsKeywords = { + definitions: true, + properties: true, + patternProperties: true, + dependencies: true +}; + +traverse.skipKeywords = { + enum: true, + const: true, + required: true, + maximum: true, + minimum: true, + exclusiveMaximum: true, + exclusiveMinimum: true, + multipleOf: true, + maxLength: true, + minLength: true, + pattern: true, + format: true, + maxItems: true, + minItems: true, + uniqueItems: true, + maxProperties: true, + minProperties: true +}; + + +function _traverse(opts, cb, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) { + if (schema && typeof schema == 'object' && !Array.isArray(schema)) { + cb(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex); + for (var key in schema) { + var sch = schema[key]; + if (Array.isArray(sch)) { + if (key in traverse.arrayKeywords) { + for (var i=0; i= 0x80 (not a basic code point)', + 'invalid-input': 'Invalid input' + }, + + /** Convenience shortcuts */ + baseMinusTMin = base - tMin, + floor = Math.floor, + stringFromCharCode = String.fromCharCode, + + /** Temporary variable */ + key; + + /*--------------------------------------------------------------------------*/ + + /** + * A generic error utility function. + * @private + * @param {String} type The error type. + * @returns {Error} Throws a `RangeError` with the applicable error message. + */ + function error(type) { + throw new RangeError(errors[type]); + } + + /** + * A generic `Array#map` utility function. + * @private + * @param {Array} array The array to iterate over. + * @param {Function} callback The function that gets called for every array + * item. + * @returns {Array} A new array of values returned by the callback function. + */ + function map(array, fn) { + var length = array.length; + var result = []; + while (length--) { + result[length] = fn(array[length]); + } + return result; + } + + /** + * A simple `Array#map`-like wrapper to work with domain name strings or email + * addresses. + * @private + * @param {String} domain The domain name or email address. + * @param {Function} callback The function that gets called for every + * character. + * @returns {Array} A new string of characters returned by the callback + * function. + */ + function mapDomain(string, fn) { + var parts = string.split('@'); + var result = ''; + if (parts.length > 1) { + // In email addresses, only the domain name should be punycoded. Leave + // the local part (i.e. everything up to `@`) intact. + result = parts[0] + '@'; + string = parts[1]; + } + // Avoid `split(regex)` for IE8 compatibility. See #17. + string = string.replace(regexSeparators, '\x2E'); + var labels = string.split('.'); + var encoded = map(labels, fn).join('.'); + return result + encoded; + } + + /** + * Creates an array containing the numeric code points of each Unicode + * character in the string. While JavaScript uses UCS-2 internally, + * this function will convert a pair of surrogate halves (each of which + * UCS-2 exposes as separate characters) into a single code point, + * matching UTF-16. + * @see `punycode.ucs2.encode` + * @see + * @memberOf punycode.ucs2 + * @name decode + * @param {String} string The Unicode input string (UCS-2). + * @returns {Array} The new array of code points. + */ + function ucs2decode(string) { + var output = [], + counter = 0, + length = string.length, + value, + extra; + while (counter < length) { + value = string.charCodeAt(counter++); + if (value >= 0xD800 && value <= 0xDBFF && counter < length) { + // high surrogate, and there is a next character + extra = string.charCodeAt(counter++); + if ((extra & 0xFC00) == 0xDC00) { // low surrogate + output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); + } else { + // unmatched surrogate; only append this code unit, in case the next + // code unit is the high surrogate of a surrogate pair + output.push(value); + counter--; + } + } else { + output.push(value); + } + } + return output; + } + + /** + * Creates a string based on an array of numeric code points. + * @see `punycode.ucs2.decode` + * @memberOf punycode.ucs2 + * @name encode + * @param {Array} codePoints The array of numeric code points. + * @returns {String} The new Unicode string (UCS-2). + */ + function ucs2encode(array) { + return map(array, function(value) { + var output = ''; + if (value > 0xFFFF) { + value -= 0x10000; + output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800); + value = 0xDC00 | value & 0x3FF; + } + output += stringFromCharCode(value); + return output; + }).join(''); + } + + /** + * Converts a basic code point into a digit/integer. + * @see `digitToBasic()` + * @private + * @param {Number} codePoint The basic numeric code point value. + * @returns {Number} The numeric value of a basic code point (for use in + * representing integers) in the range `0` to `base - 1`, or `base` if + * the code point does not represent a value. + */ + function basicToDigit(codePoint) { + if (codePoint - 48 < 10) { + return codePoint - 22; + } + if (codePoint - 65 < 26) { + return codePoint - 65; + } + if (codePoint - 97 < 26) { + return codePoint - 97; + } + return base; + } + + /** + * Converts a digit/integer into a basic code point. + * @see `basicToDigit()` + * @private + * @param {Number} digit The numeric value of a basic code point. + * @returns {Number} The basic code point whose value (when used for + * representing integers) is `digit`, which needs to be in the range + * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is + * used; else, the lowercase form is used. The behavior is undefined + * if `flag` is non-zero and `digit` has no uppercase form. + */ + function digitToBasic(digit, flag) { + // 0..25 map to ASCII a..z or A..Z + // 26..35 map to ASCII 0..9 + return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); + } + + /** + * Bias adaptation function as per section 3.4 of RFC 3492. + * https://tools.ietf.org/html/rfc3492#section-3.4 + * @private + */ + function adapt(delta, numPoints, firstTime) { + var k = 0; + delta = firstTime ? floor(delta / damp) : delta >> 1; + delta += floor(delta / numPoints); + for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { + delta = floor(delta / baseMinusTMin); + } + return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); + } + + /** + * Converts a Punycode string of ASCII-only symbols to a string of Unicode + * symbols. + * @memberOf punycode + * @param {String} input The Punycode string of ASCII-only symbols. + * @returns {String} The resulting string of Unicode symbols. + */ + function decode(input) { + // Don't use UCS-2 + var output = [], + inputLength = input.length, + out, + i = 0, + n = initialN, + bias = initialBias, + basic, + j, + index, + oldi, + w, + k, + digit, + t, + /** Cached calculation results */ + baseMinusT; + + // Handle the basic code points: let `basic` be the number of input code + // points before the last delimiter, or `0` if there is none, then copy + // the first basic code points to the output. + + basic = input.lastIndexOf(delimiter); + if (basic < 0) { + basic = 0; + } + + for (j = 0; j < basic; ++j) { + // if it's not a basic code point + if (input.charCodeAt(j) >= 0x80) { + error('not-basic'); + } + output.push(input.charCodeAt(j)); + } + + // Main decoding loop: start just after the last delimiter if any basic code + // points were copied; start at the beginning otherwise. + + for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { + + // `index` is the index of the next character to be consumed. + // Decode a generalized variable-length integer into `delta`, + // which gets added to `i`. The overflow checking is easier + // if we increase `i` as we go, then subtract off its starting + // value at the end to obtain `delta`. + for (oldi = i, w = 1, k = base; /* no condition */; k += base) { + + if (index >= inputLength) { + error('invalid-input'); + } + + digit = basicToDigit(input.charCodeAt(index++)); + + if (digit >= base || digit > floor((maxInt - i) / w)) { + error('overflow'); + } + + i += digit * w; + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + + if (digit < t) { + break; + } + + baseMinusT = base - t; + if (w > floor(maxInt / baseMinusT)) { + error('overflow'); + } + + w *= baseMinusT; + + } + + out = output.length + 1; + bias = adapt(i - oldi, out, oldi == 0); + + // `i` was supposed to wrap around from `out` to `0`, + // incrementing `n` each time, so we'll fix that now: + if (floor(i / out) > maxInt - n) { + error('overflow'); + } + + n += floor(i / out); + i %= out; + + // Insert `n` at position `i` of the output + output.splice(i++, 0, n); + + } + + return ucs2encode(output); + } + + /** + * Converts a string of Unicode symbols (e.g. a domain name label) to a + * Punycode string of ASCII-only symbols. + * @memberOf punycode + * @param {String} input The string of Unicode symbols. + * @returns {String} The resulting Punycode string of ASCII-only symbols. + */ + function encode(input) { + var n, + delta, + handledCPCount, + basicLength, + bias, + j, + m, + q, + k, + t, + currentValue, + output = [], + /** `inputLength` will hold the number of code points in `input`. */ + inputLength, + /** Cached calculation results */ + handledCPCountPlusOne, + baseMinusT, + qMinusT; + + // Convert the input in UCS-2 to Unicode + input = ucs2decode(input); + + // Cache the length + inputLength = input.length; + + // Initialize the state + n = initialN; + delta = 0; + bias = initialBias; + + // Handle the basic code points + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue < 0x80) { + output.push(stringFromCharCode(currentValue)); + } + } + + handledCPCount = basicLength = output.length; + + // `handledCPCount` is the number of code points that have been handled; + // `basicLength` is the number of basic code points. + + // Finish the basic string - if it is not empty - with a delimiter + if (basicLength) { + output.push(delimiter); + } + + // Main encoding loop: + while (handledCPCount < inputLength) { + + // All non-basic code points < n have been handled already. Find the next + // larger one: + for (m = maxInt, j = 0; j < inputLength; ++j) { + currentValue = input[j]; + if (currentValue >= n && currentValue < m) { + m = currentValue; + } + } + + // Increase `delta` enough to advance the decoder's state to , + // but guard against overflow + handledCPCountPlusOne = handledCPCount + 1; + if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { + error('overflow'); + } + + delta += (m - n) * handledCPCountPlusOne; + n = m; + + for (j = 0; j < inputLength; ++j) { + currentValue = input[j]; + + if (currentValue < n && ++delta > maxInt) { + error('overflow'); + } + + if (currentValue == n) { + // Represent delta as a generalized variable-length integer + for (q = delta, k = base; /* no condition */; k += base) { + t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); + if (q < t) { + break; + } + qMinusT = q - t; + baseMinusT = base - t; + output.push( + stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) + ); + q = floor(qMinusT / baseMinusT); + } + + output.push(stringFromCharCode(digitToBasic(q, 0))); + bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); + delta = 0; + ++handledCPCount; + } + } + + ++delta; + ++n; + + } + return output.join(''); + } + + /** + * Converts a Punycode string representing a domain name or an email address + * to Unicode. Only the Punycoded parts of the input will be converted, i.e. + * it doesn't matter if you call it on a string that has already been + * converted to Unicode. + * @memberOf punycode + * @param {String} input The Punycoded domain name or email address to + * convert to Unicode. + * @returns {String} The Unicode representation of the given Punycode + * string. + */ + function toUnicode(input) { + return mapDomain(input, function(string) { + return regexPunycode.test(string) + ? decode(string.slice(4).toLowerCase()) + : string; + }); + } + + /** + * Converts a Unicode string representing a domain name or an email address to + * Punycode. Only the non-ASCII parts of the domain name will be converted, + * i.e. it doesn't matter if you call it with a domain that's already in + * ASCII. + * @memberOf punycode + * @param {String} input The domain name or email address to convert, as a + * Unicode string. + * @returns {String} The Punycode representation of the given domain name or + * email address. + */ + function toASCII(input) { + return mapDomain(input, function(string) { + return regexNonASCII.test(string) + ? 'xn--' + encode(string) + : string; + }); + } + + /*--------------------------------------------------------------------------*/ + + /** Define the public API */ + punycode = { + /** + * A string representing the current Punycode.js version number. + * @memberOf punycode + * @type String + */ + 'version': '1.4.1', + /** + * An object of methods to convert from JavaScript's internal character + * representation (UCS-2) to Unicode code points, and back. + * @see + * @memberOf punycode + * @type Object + */ + 'ucs2': { + 'decode': ucs2decode, + 'encode': ucs2encode + }, + 'decode': decode, + 'encode': encode, + 'toASCII': toASCII, + 'toUnicode': toUnicode + }; + + /** Expose `punycode` */ + // Some AMD build optimizers, like r.js, check for specific condition patterns + // like the following: + if ( + typeof define == 'function' && + typeof define.amd == 'object' && + define.amd + ) { + define('punycode', function() { + return punycode; + }); + } else if (freeExports && freeModule) { + if (module.exports == freeExports) { + // in Node.js, io.js, or RingoJS v0.8.0+ + freeModule.exports = punycode; + } else { + // in Narwhal or RingoJS v0.7.0- + for (key in punycode) { + punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]); + } + } + } else { + // in Rhino or a web browser + root.punycode = punycode; + } + +}(this)); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],45:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +'use strict'; + +// If obj.hasOwnProperty has been overridden, then calling +// obj.hasOwnProperty(prop) will break. +// See: https://github.com/joyent/node/issues/1707 +function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} + +module.exports = function(qs, sep, eq, options) { + sep = sep || '&'; + eq = eq || '='; + var obj = {}; + + if (typeof qs !== 'string' || qs.length === 0) { + return obj; + } + + var regexp = /\+/g; + qs = qs.split(sep); + + var maxKeys = 1000; + if (options && typeof options.maxKeys === 'number') { + maxKeys = options.maxKeys; + } + + var len = qs.length; + // maxKeys <= 0 means that we should not limit keys count + if (maxKeys > 0 && len > maxKeys) { + len = maxKeys; + } + + for (var i = 0; i < len; ++i) { + var x = qs[i].replace(regexp, '%20'), + idx = x.indexOf(eq), + kstr, vstr, k, v; + + if (idx >= 0) { + kstr = x.substr(0, idx); + vstr = x.substr(idx + 1); + } else { + kstr = x; + vstr = ''; + } + + k = decodeURIComponent(kstr); + v = decodeURIComponent(vstr); + + if (!hasOwnProperty(obj, k)) { + obj[k] = v; + } else if (isArray(obj[k])) { + obj[k].push(v); + } else { + obj[k] = [obj[k], v]; + } + } + + return obj; +}; + +var isArray = Array.isArray || function (xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; +}; + +},{}],46:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +'use strict'; + +var stringifyPrimitive = function(v) { + switch (typeof v) { + case 'string': + return v; + + case 'boolean': + return v ? 'true' : 'false'; + + case 'number': + return isFinite(v) ? v : ''; + + default: + return ''; + } +}; + +module.exports = function(obj, sep, eq, name) { + sep = sep || '&'; + eq = eq || '='; + if (obj === null) { + obj = undefined; + } + + if (typeof obj === 'object') { + return map(objectKeys(obj), function(k) { + var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; + if (isArray(obj[k])) { + return map(obj[k], function(v) { + return ks + encodeURIComponent(stringifyPrimitive(v)); + }).join(sep); + } else { + return ks + encodeURIComponent(stringifyPrimitive(obj[k])); + } + }).join(sep); + + } + + if (!name) return ''; + return encodeURIComponent(stringifyPrimitive(name)) + eq + + encodeURIComponent(stringifyPrimitive(obj)); +}; + +var isArray = Array.isArray || function (xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; +}; + +function map (xs, f) { + if (xs.map) return xs.map(f); + var res = []; + for (var i = 0; i < xs.length; i++) { + res.push(f(xs[i], i)); + } + return res; +} + +var objectKeys = Object.keys || function (obj) { + var res = []; + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key); + } + return res; +}; + +},{}],47:[function(require,module,exports){ +'use strict'; + +exports.decode = exports.parse = require('./decode'); +exports.encode = exports.stringify = require('./encode'); + +},{"./decode":45,"./encode":46}],48:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +'use strict'; + +var punycode = require('punycode'); +var util = require('./util'); + +exports.parse = urlParse; +exports.resolve = urlResolve; +exports.resolveObject = urlResolveObject; +exports.format = urlFormat; + +exports.Url = Url; + +function Url() { + this.protocol = null; + this.slashes = null; + this.auth = null; + this.host = null; + this.port = null; + this.hostname = null; + this.hash = null; + this.search = null; + this.query = null; + this.pathname = null; + this.path = null; + this.href = null; +} + +// Reference: RFC 3986, RFC 1808, RFC 2396 + +// define these here so at least they only have to be +// compiled once on the first module load. +var protocolPattern = /^([a-z0-9.+-]+:)/i, + portPattern = /:[0-9]*$/, + + // Special case for a simple path URL + simplePathPattern = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/, + + // RFC 2396: characters reserved for delimiting URLs. + // We actually just auto-escape these. + delims = ['<', '>', '"', '`', ' ', '\r', '\n', '\t'], + + // RFC 2396: characters not allowed for various reasons. + unwise = ['{', '}', '|', '\\', '^', '`'].concat(delims), + + // Allowed by RFCs, but cause of XSS attacks. Always escape these. + autoEscape = ['\''].concat(unwise), + // Characters that are never ever allowed in a hostname. + // Note that any invalid chars are also handled, but these + // are the ones that are *expected* to be seen, so we fast-path + // them. + nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape), + hostEndingChars = ['/', '?', '#'], + hostnameMaxLen = 255, + hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/, + hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, + // protocols that can allow "unsafe" and "unwise" chars. + unsafeProtocol = { + 'javascript': true, + 'javascript:': true + }, + // protocols that never have a hostname. + hostlessProtocol = { + 'javascript': true, + 'javascript:': true + }, + // protocols that always contain a // bit. + slashedProtocol = { + 'http': true, + 'https': true, + 'ftp': true, + 'gopher': true, + 'file': true, + 'http:': true, + 'https:': true, + 'ftp:': true, + 'gopher:': true, + 'file:': true + }, + querystring = require('querystring'); + +function urlParse(url, parseQueryString, slashesDenoteHost) { + if (url && util.isObject(url) && url instanceof Url) return url; + + var u = new Url; + u.parse(url, parseQueryString, slashesDenoteHost); + return u; +} + +Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { + if (!util.isString(url)) { + throw new TypeError("Parameter 'url' must be a string, not " + typeof url); + } + + // Copy chrome, IE, opera backslash-handling behavior. + // Back slashes before the query string get converted to forward slashes + // See: https://code.google.com/p/chromium/issues/detail?id=25916 + var queryIndex = url.indexOf('?'), + splitter = + (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#', + uSplit = url.split(splitter), + slashRegex = /\\/g; + uSplit[0] = uSplit[0].replace(slashRegex, '/'); + url = uSplit.join(splitter); + + var rest = url; + + // trim before proceeding. + // This is to support parse stuff like " http://foo.com \n" + rest = rest.trim(); + + if (!slashesDenoteHost && url.split('#').length === 1) { + // Try fast path regexp + var simplePath = simplePathPattern.exec(rest); + if (simplePath) { + this.path = rest; + this.href = rest; + this.pathname = simplePath[1]; + if (simplePath[2]) { + this.search = simplePath[2]; + if (parseQueryString) { + this.query = querystring.parse(this.search.substr(1)); + } else { + this.query = this.search.substr(1); + } + } else if (parseQueryString) { + this.search = ''; + this.query = {}; + } + return this; + } + } + + var proto = protocolPattern.exec(rest); + if (proto) { + proto = proto[0]; + var lowerProto = proto.toLowerCase(); + this.protocol = lowerProto; + rest = rest.substr(proto.length); + } + + // figure out if it's got a host + // user@server is *always* interpreted as a hostname, and url + // resolution will treat //foo/bar as host=foo,path=bar because that's + // how the browser resolves relative URLs. + if (slashesDenoteHost || proto || rest.match(/^\/\/[^@\/]+@[^@\/]+/)) { + var slashes = rest.substr(0, 2) === '//'; + if (slashes && !(proto && hostlessProtocol[proto])) { + rest = rest.substr(2); + this.slashes = true; + } + } + + if (!hostlessProtocol[proto] && + (slashes || (proto && !slashedProtocol[proto]))) { + + // there's a hostname. + // the first instance of /, ?, ;, or # ends the host. + // + // If there is an @ in the hostname, then non-host chars *are* allowed + // to the left of the last @ sign, unless some host-ending character + // comes *before* the @-sign. + // URLs are obnoxious. + // + // ex: + // http://a@b@c/ => user:a@b host:c + // http://a@b?@c => user:a host:c path:/?@c + + // v0.12 TODO(isaacs): This is not quite how Chrome does things. + // Review our test case against browsers more comprehensively. + + // find the first instance of any hostEndingChars + var hostEnd = -1; + for (var i = 0; i < hostEndingChars.length; i++) { + var hec = rest.indexOf(hostEndingChars[i]); + if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) + hostEnd = hec; + } + + // at this point, either we have an explicit point where the + // auth portion cannot go past, or the last @ char is the decider. + var auth, atSign; + if (hostEnd === -1) { + // atSign can be anywhere. + atSign = rest.lastIndexOf('@'); + } else { + // atSign must be in auth portion. + // http://a@b/c@d => host:b auth:a path:/c@d + atSign = rest.lastIndexOf('@', hostEnd); + } + + // Now we have a portion which is definitely the auth. + // Pull that off. + if (atSign !== -1) { + auth = rest.slice(0, atSign); + rest = rest.slice(atSign + 1); + this.auth = decodeURIComponent(auth); + } + + // the host is the remaining to the left of the first non-host char + hostEnd = -1; + for (var i = 0; i < nonHostChars.length; i++) { + var hec = rest.indexOf(nonHostChars[i]); + if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) + hostEnd = hec; + } + // if we still have not hit it, then the entire thing is a host. + if (hostEnd === -1) + hostEnd = rest.length; + + this.host = rest.slice(0, hostEnd); + rest = rest.slice(hostEnd); + + // pull out port. + this.parseHost(); + + // we've indicated that there is a hostname, + // so even if it's empty, it has to be present. + this.hostname = this.hostname || ''; + + // if hostname begins with [ and ends with ] + // assume that it's an IPv6 address. + var ipv6Hostname = this.hostname[0] === '[' && + this.hostname[this.hostname.length - 1] === ']'; + + // validate a little. + if (!ipv6Hostname) { + var hostparts = this.hostname.split(/\./); + for (var i = 0, l = hostparts.length; i < l; i++) { + var part = hostparts[i]; + if (!part) continue; + if (!part.match(hostnamePartPattern)) { + var newpart = ''; + for (var j = 0, k = part.length; j < k; j++) { + if (part.charCodeAt(j) > 127) { + // we replace non-ASCII char with a temporary placeholder + // we need this to make sure size of hostname is not + // broken by replacing non-ASCII by nothing + newpart += 'x'; + } else { + newpart += part[j]; + } + } + // we test again with ASCII char only + if (!newpart.match(hostnamePartPattern)) { + var validParts = hostparts.slice(0, i); + var notHost = hostparts.slice(i + 1); + var bit = part.match(hostnamePartStart); + if (bit) { + validParts.push(bit[1]); + notHost.unshift(bit[2]); + } + if (notHost.length) { + rest = '/' + notHost.join('.') + rest; + } + this.hostname = validParts.join('.'); + break; + } + } + } + } + + if (this.hostname.length > hostnameMaxLen) { + this.hostname = ''; + } else { + // hostnames are always lower case. + this.hostname = this.hostname.toLowerCase(); + } + + if (!ipv6Hostname) { + // IDNA Support: Returns a punycoded representation of "domain". + // It only converts parts of the domain name that + // have non-ASCII characters, i.e. it doesn't matter if + // you call it with a domain that already is ASCII-only. + this.hostname = punycode.toASCII(this.hostname); + } + + var p = this.port ? ':' + this.port : ''; + var h = this.hostname || ''; + this.host = h + p; + this.href += this.host; + + // strip [ and ] from the hostname + // the host field still retains them, though + if (ipv6Hostname) { + this.hostname = this.hostname.substr(1, this.hostname.length - 2); + if (rest[0] !== '/') { + rest = '/' + rest; + } + } + } + + // now rest is set to the post-host stuff. + // chop off any delim chars. + if (!unsafeProtocol[lowerProto]) { + + // First, make 100% sure that any "autoEscape" chars get + // escaped, even if encodeURIComponent doesn't think they + // need to be. + for (var i = 0, l = autoEscape.length; i < l; i++) { + var ae = autoEscape[i]; + if (rest.indexOf(ae) === -1) + continue; + var esc = encodeURIComponent(ae); + if (esc === ae) { + esc = escape(ae); + } + rest = rest.split(ae).join(esc); + } + } + + + // chop off from the tail first. + var hash = rest.indexOf('#'); + if (hash !== -1) { + // got a fragment string. + this.hash = rest.substr(hash); + rest = rest.slice(0, hash); + } + var qm = rest.indexOf('?'); + if (qm !== -1) { + this.search = rest.substr(qm); + this.query = rest.substr(qm + 1); + if (parseQueryString) { + this.query = querystring.parse(this.query); + } + rest = rest.slice(0, qm); + } else if (parseQueryString) { + // no query string, but parseQueryString still requested + this.search = ''; + this.query = {}; + } + if (rest) this.pathname = rest; + if (slashedProtocol[lowerProto] && + this.hostname && !this.pathname) { + this.pathname = '/'; + } + + //to support http.request + if (this.pathname || this.search) { + var p = this.pathname || ''; + var s = this.search || ''; + this.path = p + s; + } + + // finally, reconstruct the href based on what has been validated. + this.href = this.format(); + return this; +}; + +// format a parsed object into a url string +function urlFormat(obj) { + // ensure it's an object, and not a string url. + // If it's an obj, this is a no-op. + // this way, you can call url_format() on strings + // to clean up potentially wonky urls. + if (util.isString(obj)) obj = urlParse(obj); + if (!(obj instanceof Url)) return Url.prototype.format.call(obj); + return obj.format(); +} + +Url.prototype.format = function() { + var auth = this.auth || ''; + if (auth) { + auth = encodeURIComponent(auth); + auth = auth.replace(/%3A/i, ':'); + auth += '@'; + } + + var protocol = this.protocol || '', + pathname = this.pathname || '', + hash = this.hash || '', + host = false, + query = ''; + + if (this.host) { + host = auth + this.host; + } else if (this.hostname) { + host = auth + (this.hostname.indexOf(':') === -1 ? + this.hostname : + '[' + this.hostname + ']'); + if (this.port) { + host += ':' + this.port; + } + } + + if (this.query && + util.isObject(this.query) && + Object.keys(this.query).length) { + query = querystring.stringify(this.query); + } + + var search = this.search || (query && ('?' + query)) || ''; + + if (protocol && protocol.substr(-1) !== ':') protocol += ':'; + + // only the slashedProtocols get the //. Not mailto:, xmpp:, etc. + // unless they had them to begin with. + if (this.slashes || + (!protocol || slashedProtocol[protocol]) && host !== false) { + host = '//' + (host || ''); + if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname; + } else if (!host) { + host = ''; + } + + if (hash && hash.charAt(0) !== '#') hash = '#' + hash; + if (search && search.charAt(0) !== '?') search = '?' + search; + + pathname = pathname.replace(/[?#]/g, function(match) { + return encodeURIComponent(match); + }); + search = search.replace('#', '%23'); + + return protocol + host + pathname + search + hash; +}; + +function urlResolve(source, relative) { + return urlParse(source, false, true).resolve(relative); +} + +Url.prototype.resolve = function(relative) { + return this.resolveObject(urlParse(relative, false, true)).format(); +}; + +function urlResolveObject(source, relative) { + if (!source) return relative; + return urlParse(source, false, true).resolveObject(relative); +} + +Url.prototype.resolveObject = function(relative) { + if (util.isString(relative)) { + var rel = new Url(); + rel.parse(relative, false, true); + relative = rel; + } + + var result = new Url(); + var tkeys = Object.keys(this); + for (var tk = 0; tk < tkeys.length; tk++) { + var tkey = tkeys[tk]; + result[tkey] = this[tkey]; + } + + // hash is always overridden, no matter what. + // even href="" will remove it. + result.hash = relative.hash; + + // if the relative url is empty, then there's nothing left to do here. + if (relative.href === '') { + result.href = result.format(); + return result; + } + + // hrefs like //foo/bar always cut to the protocol. + if (relative.slashes && !relative.protocol) { + // take everything except the protocol from relative + var rkeys = Object.keys(relative); + for (var rk = 0; rk < rkeys.length; rk++) { + var rkey = rkeys[rk]; + if (rkey !== 'protocol') + result[rkey] = relative[rkey]; + } + + //urlParse appends trailing / to urls like http://www.example.com + if (slashedProtocol[result.protocol] && + result.hostname && !result.pathname) { + result.path = result.pathname = '/'; + } + + result.href = result.format(); + return result; + } + + if (relative.protocol && relative.protocol !== result.protocol) { + // if it's a known url protocol, then changing + // the protocol does weird things + // first, if it's not file:, then we MUST have a host, + // and if there was a path + // to begin with, then we MUST have a path. + // if it is file:, then the host is dropped, + // because that's known to be hostless. + // anything else is assumed to be absolute. + if (!slashedProtocol[relative.protocol]) { + var keys = Object.keys(relative); + for (var v = 0; v < keys.length; v++) { + var k = keys[v]; + result[k] = relative[k]; + } + result.href = result.format(); + return result; + } + + result.protocol = relative.protocol; + if (!relative.host && !hostlessProtocol[relative.protocol]) { + var relPath = (relative.pathname || '').split('/'); + while (relPath.length && !(relative.host = relPath.shift())); + if (!relative.host) relative.host = ''; + if (!relative.hostname) relative.hostname = ''; + if (relPath[0] !== '') relPath.unshift(''); + if (relPath.length < 2) relPath.unshift(''); + result.pathname = relPath.join('/'); + } else { + result.pathname = relative.pathname; + } + result.search = relative.search; + result.query = relative.query; + result.host = relative.host || ''; + result.auth = relative.auth; + result.hostname = relative.hostname || relative.host; + result.port = relative.port; + // to support http.request + if (result.pathname || result.search) { + var p = result.pathname || ''; + var s = result.search || ''; + result.path = p + s; + } + result.slashes = result.slashes || relative.slashes; + result.href = result.format(); + return result; + } + + var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'), + isRelAbs = ( + relative.host || + relative.pathname && relative.pathname.charAt(0) === '/' + ), + mustEndAbs = (isRelAbs || isSourceAbs || + (result.host && relative.pathname)), + removeAllDots = mustEndAbs, + srcPath = result.pathname && result.pathname.split('/') || [], + relPath = relative.pathname && relative.pathname.split('/') || [], + psychotic = result.protocol && !slashedProtocol[result.protocol]; + + // if the url is a non-slashed url, then relative + // links like ../.. should be able + // to crawl up to the hostname, as well. This is strange. + // result.protocol has already been set by now. + // Later on, put the first path part into the host field. + if (psychotic) { + result.hostname = ''; + result.port = null; + if (result.host) { + if (srcPath[0] === '') srcPath[0] = result.host; + else srcPath.unshift(result.host); + } + result.host = ''; + if (relative.protocol) { + relative.hostname = null; + relative.port = null; + if (relative.host) { + if (relPath[0] === '') relPath[0] = relative.host; + else relPath.unshift(relative.host); + } + relative.host = null; + } + mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === ''); + } + + if (isRelAbs) { + // it's absolute. + result.host = (relative.host || relative.host === '') ? + relative.host : result.host; + result.hostname = (relative.hostname || relative.hostname === '') ? + relative.hostname : result.hostname; + result.search = relative.search; + result.query = relative.query; + srcPath = relPath; + // fall through to the dot-handling below. + } else if (relPath.length) { + // it's relative + // throw away the existing file, and take the new path instead. + if (!srcPath) srcPath = []; + srcPath.pop(); + srcPath = srcPath.concat(relPath); + result.search = relative.search; + result.query = relative.query; + } else if (!util.isNullOrUndefined(relative.search)) { + // just pull out the search. + // like href='?foo'. + // Put this after the other two cases because it simplifies the booleans + if (psychotic) { + result.hostname = result.host = srcPath.shift(); + //occationaly the auth can get stuck only in host + //this especially happens in cases like + //url.resolveObject('mailto:local1@domain1', 'local2@domain2') + var authInHost = result.host && result.host.indexOf('@') > 0 ? + result.host.split('@') : false; + if (authInHost) { + result.auth = authInHost.shift(); + result.host = result.hostname = authInHost.shift(); + } + } + result.search = relative.search; + result.query = relative.query; + //to support http.request + if (!util.isNull(result.pathname) || !util.isNull(result.search)) { + result.path = (result.pathname ? result.pathname : '') + + (result.search ? result.search : ''); + } + result.href = result.format(); + return result; + } + + if (!srcPath.length) { + // no path at all. easy. + // we've already handled the other stuff above. + result.pathname = null; + //to support http.request + if (result.search) { + result.path = '/' + result.search; + } else { + result.path = null; + } + result.href = result.format(); + return result; + } + + // if a url ENDs in . or .., then it must get a trailing slash. + // however, if it ends in anything else non-slashy, + // then it must NOT get a trailing slash. + var last = srcPath.slice(-1)[0]; + var hasTrailingSlash = ( + (result.host || relative.host || srcPath.length > 1) && + (last === '.' || last === '..') || last === ''); + + // strip single dots, resolve double dots to parent dir + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = srcPath.length; i >= 0; i--) { + last = srcPath[i]; + if (last === '.') { + srcPath.splice(i, 1); + } else if (last === '..') { + srcPath.splice(i, 1); + up++; + } else if (up) { + srcPath.splice(i, 1); + up--; + } + } + + // if the path is allowed to go above the root, restore leading ..s + if (!mustEndAbs && !removeAllDots) { + for (; up--; up) { + srcPath.unshift('..'); + } + } + + if (mustEndAbs && srcPath[0] !== '' && + (!srcPath[0] || srcPath[0].charAt(0) !== '/')) { + srcPath.unshift(''); + } + + if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) { + srcPath.push(''); + } + + var isAbsolute = srcPath[0] === '' || + (srcPath[0] && srcPath[0].charAt(0) === '/'); + + // put the host back + if (psychotic) { + result.hostname = result.host = isAbsolute ? '' : + srcPath.length ? srcPath.shift() : ''; + //occationaly the auth can get stuck only in host + //this especially happens in cases like + //url.resolveObject('mailto:local1@domain1', 'local2@domain2') + var authInHost = result.host && result.host.indexOf('@') > 0 ? + result.host.split('@') : false; + if (authInHost) { + result.auth = authInHost.shift(); + result.host = result.hostname = authInHost.shift(); + } + } + + mustEndAbs = mustEndAbs || (result.host && srcPath.length); + + if (mustEndAbs && !isAbsolute) { + srcPath.unshift(''); + } + + if (!srcPath.length) { + result.pathname = null; + result.path = null; + } else { + result.pathname = srcPath.join('/'); + } + + //to support request.http + if (!util.isNull(result.pathname) || !util.isNull(result.search)) { + result.path = (result.pathname ? result.pathname : '') + + (result.search ? result.search : ''); + } + result.auth = relative.auth || result.auth; + result.slashes = result.slashes || relative.slashes; + result.href = result.format(); + return result; +}; + +Url.prototype.parseHost = function() { + var host = this.host; + var port = portPattern.exec(host); + if (port) { + port = port[0]; + if (port !== ':') { + this.port = port.substr(1); + } + host = host.substr(0, host.length - port.length); + } + if (host) this.hostname = host; +}; + +},{"./util":49,"punycode":44,"querystring":47}],49:[function(require,module,exports){ +'use strict'; + +module.exports = { + isString: function(arg) { + return typeof(arg) === 'string'; + }, + isObject: function(arg) { + return typeof(arg) === 'object' && arg !== null; + }, + isNull: function(arg) { + return arg === null; + }, + isNullOrUndefined: function(arg) { + return arg == null; + } +}; + +},{}],"ajv":[function(require,module,exports){ +'use strict'; + +var compileSchema = require('./compile') + , resolve = require('./compile/resolve') + , Cache = require('./cache') + , SchemaObject = require('./compile/schema_obj') + , stableStringify = require('fast-json-stable-stringify') + , formats = require('./compile/formats') + , rules = require('./compile/rules') + , $dataMetaSchema = require('./$data') + , patternGroups = require('./patternGroups') + , util = require('./compile/util') + , co = require('co'); + +module.exports = Ajv; + +Ajv.prototype.validate = validate; +Ajv.prototype.compile = compile; +Ajv.prototype.addSchema = addSchema; +Ajv.prototype.addMetaSchema = addMetaSchema; +Ajv.prototype.validateSchema = validateSchema; +Ajv.prototype.getSchema = getSchema; +Ajv.prototype.removeSchema = removeSchema; +Ajv.prototype.addFormat = addFormat; +Ajv.prototype.errorsText = errorsText; + +Ajv.prototype._addSchema = _addSchema; +Ajv.prototype._compile = _compile; + +Ajv.prototype.compileAsync = require('./compile/async'); +var customKeyword = require('./keyword'); +Ajv.prototype.addKeyword = customKeyword.add; +Ajv.prototype.getKeyword = customKeyword.get; +Ajv.prototype.removeKeyword = customKeyword.remove; + +var errorClasses = require('./compile/error_classes'); +Ajv.ValidationError = errorClasses.Validation; +Ajv.MissingRefError = errorClasses.MissingRef; +Ajv.$dataMetaSchema = $dataMetaSchema; + +var META_SCHEMA_ID = 'http://json-schema.org/draft-06/schema'; + +var META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes' ]; +var META_SUPPORT_DATA = ['/properties']; + +/** + * Creates validator instance. + * Usage: `Ajv(opts)` + * @param {Object} opts optional options + * @return {Object} ajv instance + */ +function Ajv(opts) { + if (!(this instanceof Ajv)) return new Ajv(opts); + opts = this._opts = util.copy(opts) || {}; + setLogger(this); + this._schemas = {}; + this._refs = {}; + this._fragments = {}; + this._formats = formats(opts.format); + var schemaUriFormat = this._schemaUriFormat = this._formats['uri-reference']; + this._schemaUriFormatFunc = function (str) { return schemaUriFormat.test(str); }; + + this._cache = opts.cache || new Cache; + this._loadingSchemas = {}; + this._compilations = []; + this.RULES = rules(); + this._getId = chooseGetId(opts); + + opts.loopRequired = opts.loopRequired || Infinity; + if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true; + if (opts.serialize === undefined) opts.serialize = stableStringify; + this._metaOpts = getMetaSchemaOptions(this); + + if (opts.formats) addInitialFormats(this); + addDraft6MetaSchema(this); + if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta); + addInitialSchemas(this); + if (opts.patternGroups) patternGroups(this); +} + + + +/** + * Validate data using schema + * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize. + * @this Ajv + * @param {String|Object} schemaKeyRef key, ref or schema object + * @param {Any} data to be validated + * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`). + */ +function validate(schemaKeyRef, data) { + var v; + if (typeof schemaKeyRef == 'string') { + v = this.getSchema(schemaKeyRef); + if (!v) throw new Error('no schema with key or ref "' + schemaKeyRef + '"'); + } else { + var schemaObj = this._addSchema(schemaKeyRef); + v = schemaObj.validate || this._compile(schemaObj); + } + + var valid = v(data); + if (v.$async === true) + return this._opts.async == '*' ? co(valid) : valid; + this.errors = v.errors; + return valid; +} + + +/** + * Create validating function for passed schema. + * @this Ajv + * @param {Object} schema schema object + * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords. + * @return {Function} validating function + */ +function compile(schema, _meta) { + var schemaObj = this._addSchema(schema, undefined, _meta); + return schemaObj.validate || this._compile(schemaObj); +} + + +/** + * Adds schema to the instance. + * @this Ajv + * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored. + * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`. + * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead. + * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead. + * @return {Ajv} this for method chaining + */ +function addSchema(schema, key, _skipValidation, _meta) { + if (Array.isArray(schema)){ + for (var i=0; i} errors optional array of validation errors, if not passed errors from the instance are used. + * @param {Object} options optional options with properties `separator` and `dataVar`. + * @return {String} human readable string with all errors descriptions + */ +function errorsText(errors, options) { + errors = errors || this.errors; + if (!errors) return 'No errors'; + options = options || {}; + var separator = options.separator === undefined ? ', ' : options.separator; + var dataVar = options.dataVar === undefined ? 'data' : options.dataVar; + + var text = ''; + for (var i=0; i=1&&t<=12&&a>=1&&a<=h[t]}function o(e,r){var t=e.match(u);if(!t)return!1;return t[1]<=23&&t[2]<=59&&t[3]<=59&&(!r||t[5])}function i(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}var n=e("./util"),l=/^\d\d\d\d-(\d\d)-(\d\d)$/,h=[0,31,29,31,30,31,30,31,31,30,31,30,31],u=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i,c=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i,d=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,f=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,p=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,m=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,v=/^(?:\/(?:[^~/]|~0|~1)*)*$|^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,y=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;r.exports=a,a.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s][0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,uri:/^(?:[a-z][a-z0-9+-.]*)(?::|\/)\/?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/\/)?[^\s]*$/i,"uri-template":f,url:p,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:c,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:i,uuid:m,"json-pointer":v,"relative-json-pointer":y},a.full={date:s,time:o,"date-time":function(e){var r=e.split(g);return 2==r.length&&s(r[0])&&o(r[1],!0)},uri:function(e){return P.test(e)&&d.test(e)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":f,url:p,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&''*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:function(e){return e.length<=255&&c.test(e)},ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:i,uuid:m,"json-pointer":v,"relative-json-pointer":y};var g=/t|\s/i,P=/\/|:/,E=/[^\\]\\Z/},{"./util":12}],7:[function(e,r,t){"use strict";function a(e,r,t,P){function E(){var e=C.validate,r=e.apply(null,arguments);return E.errors=e.errors,r}function w(e,t,s,f){var P=!t||t&&t.schema==e;if(t.schema!=r.schema)return a.call($,e,t,s,f);var E=!0===e.$async,w=p({isTop:!0,schema:e,isRoot:P,baseId:f,root:t,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:d.MissingRef,RULES:U,validate:p,util:c,resolve:u,resolveRef:b,usePattern:_,useDefault:x,useCustomRule:F,opts:R,formats:Q,logger:$.logger,self:$});w=h(O,n)+h(I,o)+h(k,i)+h(L,l)+w,R.processCode&&(w=R.processCode(w));var S;try{S=new Function("self","RULES","formats","root","refVal","defaults","customRules","co","equal","ucs2length","ValidationError",w)($,U,Q,r,O,k,L,m,y,v,g),O[0]=S}catch(e){throw $.logger.error("Error compiling schema, function code:",w),e}return S.schema=e,S.errors=null,S.refs=D,S.refVal=O,S.root=P?S:t,E&&(S.$async=!0),!0===R.sourceCode&&(S.source={code:w,patterns:I,defaults:k}),S}function b(e,s,o){s=u.url(e,s);var i,n,l=D[s];if(void 0!==l)return i=O[l],n="refVal["+l+"]",j(i,n);if(!o&&r.refs){var h=r.refs[s];if(void 0!==h)return i=r.refVal[h],n=S(s,i),j(i,n)}n=S(s);var c=u.call($,w,r,s);if(void 0===c){var d=t&&t[s];d&&(c=u.inlineRef(d,R.inlineRefs)?d:a.call($,d,r,t,e))}if(void 0!==c)return function(e,r){O[D[e]]=r}(s,c),j(c,n);!function(e){delete D[e]}(s)}function S(e,r){var t=O.length;return O[t]=r,D[e]=t,"refVal"+t}function j(e,r){return"object"==typeof e||"boolean"==typeof e?{code:r,schema:e,inline:!0}:{code:r,$async:e&&e.$async}}function _(e){var r=A[e];return void 0===r&&(r=A[e]=I.length,I[r]=e),"pattern"+r}function x(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return c.toQuotedString(e);case"object":if(null===e)return"null";var r=f(e),t=q[r];return void 0===t&&(t=q[r]=k.length,k[t]=e),"default"+t}}function F(e,r,t,a){var s=e.definition.validateSchema;if(s&&!1!==$._opts.validateSchema){if(!s(r)){var o="keyword schema is invalid: "+$.errorsText(s.errors);if("log"!=$._opts.validateSchema)throw new Error(o);$.logger.error(o)}}var i,n=e.definition.compile,l=e.definition.inline,h=e.definition.macro;if(n)i=n.call($,r,t,a);else if(h)i=h.call($,r,t,a),!1!==R.validateSchema&&$.validateSchema(i,!0);else if(l)i=l.call($,a,e.keyword,r,t);else if(!(i=e.definition.validate))return;if(void 0===i)throw new Error('custom keyword "'+e.keyword+'"failed to compile');var u=L.length;return L[u]=i,{code:"customRule"+u,validate:i}}var $=this,R=this._opts,O=[void 0],D={},I=[],A={},k=[],q={},L=[],z=function(e,r,t){var a=s.call(this,e,r,t);return a>=0?{index:a,compiling:!0}:(a=this._compilations.length,this._compilations[a]={schema:e,root:r,baseId:t},{index:a,compiling:!1})}.call(this,e,r=r||{schema:e,refVal:O,refs:D},P),C=this._compilations[z.index];if(z.compiling)return C.callValidate=E;var Q=this._formats,U=this.RULES;try{var V=w(e,r,t,P);C.validate=V;var N=C.callValidate;return N&&(N.schema=V.schema,N.errors=null,N.refs=V.refs,N.refVal=V.refVal,N.root=V.root,N.$async=V.$async,R.sourceCode&&(N.source=V.source)),V}finally{(function(e,r,t){var a=s.call(this,e,r,t);a>=0&&this._compilations.splice(a,1)}).call(this,e,r,P)}}function s(e,r,t){for(var a=0;a=55296&&r<=56319&&s=r)throw new Error("Cannot access property/index "+a+" levels up, current level is "+r);return t[r-a]}if(a>r)throw new Error("Cannot access data "+a+" levels up, current level is "+r);if(i="data"+(r-a||""),!s)return i}for(var l=i,h=s.split("/"),c=0;c",y=f?">":"<",g=void 0;if(e.opts.$data&&m&&m.$data){var P=e.util.getData(m.$data,i,e.dataPathArr),E="exclusive"+o,w="exclType"+o,b="exclIsNumber"+o,S="' + "+(_="op"+o)+" + '";s+=" var schemaExcl"+o+" = "+P+"; ",s+=" var "+E+"; var "+w+" = typeof "+(P="schemaExcl"+o)+"; if ("+w+" != 'boolean' && "+w+" != 'undefined' && "+w+" != 'number') { ";g=p;(x=x||[]).push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(g||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: {} ",!1!==e.opts.messages&&(s+=" , message: '"+p+" should be boolean' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var j=s;s=x.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+j+"]); ":" validate.errors = ["+j+"]; return false; ":" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+w+" == 'number' ? ( ("+E+" = "+a+" === undefined || "+P+" "+v+"= "+a+") ? "+c+" "+y+"= "+P+" : "+c+" "+y+" "+a+" ) : ( ("+E+" = "+P+" === true) ? "+c+" "+y+"= "+a+" : "+c+" "+y+" "+a+" ) || "+c+" !== "+c+") { var op"+o+" = "+E+" ? '"+v+"' : '"+v+"=';"}else{S=v;if((b="number"==typeof m)&&d){var _="'"+S+"'";s+=" if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" ( "+a+" === undefined || "+m+" "+v+"= "+a+" ? "+c+" "+y+"= "+m+" : "+c+" "+y+" "+a+" ) || "+c+" !== "+c+") { "}else{b&&void 0===n?(E=!0,g=p,h=e.errSchemaPath+"/"+p,a=m,y+="="):(b&&(a=Math[f?"min":"max"](m,n)),m===(!b||a)?(E=!0,g=p,h=e.errSchemaPath+"/"+p,y+="="):(E=!1,S+="="));_="'"+S+"'";s+=" if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+c+" "+y+" "+a+" || "+c+" !== "+c+") { "}}g=g||r;var x;(x=x||[]).push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(g||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { comparison: "+_+", limit: "+a+", exclusive: "+E+" } ",!1!==e.opts.messages&&(s+=" , message: 'should be "+S+" ",s+=d?"' + "+a:a+"'"),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";j=s;return s=x.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+j+"]); ":" validate.errors = ["+j+"]; return false; ":" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { "),s}},{}],14:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),h=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,c="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+c+".length "+("maxItems"==r?">":"<")+" "+a+") { ";var f=r,p=p||[];p.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(f||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have ",s+="maxItems"==r?"more":"less",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" items' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],15:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),h=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,c="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=!1===e.opts.unicode?" "+c+".length ":" ucs2length("+c+") ",s+=" "+("maxLength"==r?">":"<")+" "+a+") { ";var f=r,p=p||[];p.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(f||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT be ",s+="maxLength"==r?"longer":"shorter",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" characters' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],16:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),h=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,c="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" Object.keys("+c+").length "+("maxProperties"==r?">":"<")+" "+a+") { ";var f=r,p=p||[];p.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(f||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have ",s+="maxProperties"==r?"more":"less",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" properties' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],17:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.schema[r],o=e.schemaPath+e.util.getProperty(r),i=e.errSchemaPath+"/"+r,n=!e.opts.allErrors,l=e.util.copy(e),h="";l.level++;var u="valid"+l.level,c=l.baseId,d=!0,f=s;if(f)for(var p,m=-1,v=f.length-1;m=0)return h&&(a+=" if (true) { "),a;throw new Error('unknown format "'+i+'" is used in schema at path "'+e.errSchemaPath+'"')}var v,y=(v="object"==typeof m&&!(m instanceof RegExp)&&m.validate)&&m.type||"string";if(v){var g=!0===m.async;m=m.validate}if(y!=t)return h&&(a+=" if (true) { "),a;if(g){if(!e.async)throw new Error("async format in sync schema");var P="formats"+e.util.getProperty(i)+".validate";a+=" if (!("+e.yieldAwait+" "+P+"("+u+"))) { "}else{a+=" if (! ";P="formats"+e.util.getProperty(i);v&&(P+=".validate"),a+="function"==typeof m?" "+P+"("+u+") ":" "+P+".test("+u+") ",a+=") { "}}var E=E||[];E.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",a+=d?""+c:""+e.util.toQuotedString(i),a+=" } ",!1!==e.opts.messages&&(a+=" , message: 'should match format \"",a+=d?"' + "+c+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=d?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var w=a;return a=E.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+w+"]); ":" validate.errors = ["+w+"]; return false; ":" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",h&&(a+=" else { "),a}},{}],25:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(o||""),c="valid"+s,d="errs__"+s,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level,v="i"+s,y=f.dataLevel=e.dataLevel+1,g="data"+y,P=e.baseId;if(a+="var "+d+" = errors;var "+c+";",Array.isArray(i)){var E=e.schema.additionalItems;if(!1===E){a+=" "+c+" = "+u+".length <= "+i.length+"; ";var w=l;l=e.errSchemaPath+"/additionalItems",a+=" if (!"+c+") { ";var b=b||[];b.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+i.length+" } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have more than "+i.length+" items' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var S=a;a=b.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",l=w,h&&(p+="}",a+=" else { ")}var j=i;if(j)for(var _,x=-1,F=j.length-1;x "+x+") { ";var $=u+"["+x+"]";f.schema=_,f.schemaPath=n+"["+x+"]",f.errSchemaPath=l+"/"+x,f.errorPath=e.util.getPathExpr(e.errorPath,x,e.opts.jsonPointers,!0),f.dataPathArr[y]=x;var R=e.validate(f);f.baseId=P,e.util.varOccurences(R,g)<2?a+=" "+e.util.varReplace(R,g,$)+" ":a+=" var "+g+" = "+$+"; "+R+" ",a+=" } ",h&&(a+=" if ("+m+") { ",p+="}")}if("object"==typeof E&&e.util.schemaHasRules(E,e.RULES.all)){f.schema=E,f.schemaPath=e.schemaPath+".additionalItems",f.errSchemaPath=e.errSchemaPath+"/additionalItems",a+=" "+m+" = true; if ("+u+".length > "+i.length+") { for (var "+v+" = "+i.length+"; "+v+" < "+u+".length; "+v+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0);$=u+"["+v+"]";f.dataPathArr[y]=v;R=e.validate(f);f.baseId=P,e.util.varOccurences(R,g)<2?a+=" "+e.util.varReplace(R,g,$)+" ":a+=" var "+g+" = "+$+"; "+R+" ",h&&(a+=" if (!"+m+") break; "),a+=" } } ",h&&(a+=" if ("+m+") { ",p+="}")}}else if(e.util.schemaHasRules(i,e.RULES.all)){f.schema=i,f.schemaPath=n,f.errSchemaPath=l,a+=" for (var "+v+" = 0; "+v+" < "+u+".length; "+v+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0);$=u+"["+v+"]";f.dataPathArr[y]=v;R=e.validate(f);f.baseId=P,e.util.varOccurences(R,g)<2?a+=" "+e.util.varReplace(R,g,$)+" ":a+=" var "+g+" = "+$+"; "+R+" ",h&&(a+=" if (!"+m+") break; "),a+=" }"}return h&&(a+=" "+p+" if ("+d+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],26:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),h=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,c="data"+(i||""),d=e.opts.$data&&n&&n.$data;d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,s+="var division"+o+";if (",d&&(s+=" "+a+" !== undefined && ( typeof "+a+" != 'number' || "),s+=" (division"+o+" = "+c+" / "+a+", ",s+=e.opts.multipleOfPrecision?" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+e.opts.multipleOfPrecision+" ":" division"+o+" !== parseInt(division"+o+") ",s+=" ) ",d&&(s+=" ) "),s+=" ) { ";var f=f||[];f.push(s),s="",!1!==e.createErrors?(s+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { multipleOf: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should be multiple of ",s+=d?"' + "+a:a+"'"),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var p=s;return s=f.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],27:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(o||""),c="errs__"+s,d=e.util.copy(e);d.level++;var f="valid"+d.level;if(e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=n,d.errSchemaPath=l,a+=" var "+c+" = errors; ";var p=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.createErrors=!1;var m;d.opts.allErrors&&(m=d.opts.allErrors,d.opts.allErrors=!1),a+=" "+e.validate(d)+" ",d.createErrors=!0,m&&(d.opts.allErrors=m),e.compositeRule=d.compositeRule=p,a+=" if ("+f+") { ";var v=v||[];v.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var y=a;a=v.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { errors = "+c+"; if (vErrors !== null) { if ("+c+") vErrors.length = "+c+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } ")}else a+=" var err = ",!1!==e.createErrors?(a+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(a+=" if (false) { ");return a}},{}],28:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(o||""),c="valid"+s,d="errs__"+s,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level;a+="var "+d+" = errors;var prevValid"+s+" = false;var "+c+" = false;";var v=f.baseId,y=e.compositeRule;e.compositeRule=f.compositeRule=!0;var g=i;if(g)for(var P,E=-1,w=g.length-1;E5)a+=" || validate.schema"+n+"["+v+"] ";else{var L=w;if(L)for(var z=-1,C=L.length-1;z= "+ve+"; ",l=e.errSchemaPath+"/patternGroups/minimum",a+=" if (!"+c+") { ";(we=we||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Pe+"', limit: "+ge+", pattern: '"+e.util.escapeQuotes(ce)+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have "+Ee+" than "+ge+' properties matching pattern "'+e.util.escapeQuotes(ce)+"\"' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";B=a;a=we.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+B+"]); ":" validate.errors = ["+B+"]; return false; ":" var err = "+B+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",void 0!==ye&&(a+=" else ")}if(void 0!==ye){ge=ye,Pe="maximum",Ee="more";a+=" "+c+" = pgPropCount"+s+" <= "+ye+"; ",l=e.errSchemaPath+"/patternGroups/maximum",a+=" if (!"+c+") { ";var we;(we=we||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+Pe+"', limit: "+ge+", pattern: '"+e.util.escapeQuotes(ce)+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have "+Ee+" than "+ge+' properties matching pattern "'+e.util.escapeQuotes(ce)+"\"' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";B=a;a=we.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+B+"]); ":" validate.errors = ["+B+"]; return false; ":" var err = "+B+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } "}l=K,h&&(a+=" if ("+c+") { ",p+="}")}}}}return h&&(a+=" "+p+" if ("+d+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],31:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(o||""),c="errs__"+s,d=e.util.copy(e);d.level++;var f="valid"+d.level;if(e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=n,d.errSchemaPath=l;var p="key"+s,m="idx"+s,v="i"+s,y="' + "+p+" + '",g="data"+(d.dataLevel=e.dataLevel+1),P="dataProperties"+s,E=e.opts.ownProperties,w=e.baseId;a+=" var "+c+" = errors; ",E&&(a+=" var "+P+" = undefined; "),a+=E?" "+P+" = "+P+" || Object.keys("+u+"); for (var "+m+"=0; "+m+"<"+P+".length; "+m+"++) { var "+p+" = "+P+"["+m+"]; ":" for (var "+p+" in "+u+") { ",a+=" var startErrs"+s+" = errors; ";var b=p,S=e.compositeRule;e.compositeRule=d.compositeRule=!0;var j=e.validate(d);d.baseId=w,e.util.varOccurences(j,g)<2?a+=" "+e.util.varReplace(j,g,b)+" ":a+=" var "+g+" = "+b+"; "+j+" ",e.compositeRule=d.compositeRule=S,a+=" if (!"+f+") { for (var "+v+"=startErrs"+s+"; "+v+"=e.opts.loopRequired,b=e.opts.ownProperties;if(h)if(a+=" var missing"+s+"; ",w){d||(a+=" var "+f+" = validate.schema"+n+"; ");var S="' + "+(R="schema"+s+"["+(x="i"+s)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,R,e.opts.jsonPointers)),a+=" var "+c+" = true; ",d&&(a+=" if (schema"+s+" === undefined) "+c+" = true; else if (!Array.isArray(schema"+s+")) "+c+" = false; else {"),a+=" for (var "+x+" = 0; "+x+" < "+f+".length; "+x+"++) { "+c+" = "+u+"["+f+"["+x+"]] !== undefined ",b&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", "+f+"["+x+"]) "),a+="; if (!"+c+") break; } ",d&&(a+=" } "),a+=" if (!"+c+") { ";($=$||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+S+"' } ",!1!==e.opts.messages&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+S+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var j=a;a=$.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+j+"]); ":" validate.errors = ["+j+"]; return false; ":" var err = "+j+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { "}else{a+=" if ( ";var _=p;if(_)for(var x=-1,F=_.length-1;x 1) { var i = "+c+".length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal("+c+"[i], "+c+"[j])) { "+d+" = false; break outer; } } } } ",f&&(s+=" } "),s+=" if (!"+d+") { ";var p=p||[];p.push(s),s="",!1!==e.createErrors?(s+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var m=s;s=p.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { ")}else u&&(s+=" if (true) { ");return s}},{}],35:[function(e,r,t){"use strict";r.exports=function(e,r,t){function a(e){for(var r=e.rules,t=0;t2&&(r=n.call(arguments,1)),t(r)})})}.call(this,e):Array.isArray(e)?function(e){return Promise.all(e.map(s,this))}.call(this,e):function(e){return Object==e.constructor}(e)?function(e){for(var r=new e.constructor,t=Object.keys(e),a=[],i=0;i1&&(a=t[0]+"@",e=t[1]);return a+o((e=e.replace(O,".")).split("."),r).join(".")}function n(e){for(var r,t,a=[],s=0,o=e.length;s=55296&&r<=56319&&s65535&&(r+=k((e-=65536)>>>10&1023|55296),e=56320|1023&e),r+=k(e)}).join("")}function h(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:E}function u(e,r){return e+22+75*(e<26)-((0!=r)<<5)}function c(e,r,t){var a=0;for(e=t?A(e/j):e>>1,e+=A(e/r);e>I*b>>1;a+=E)e=A(e/I);return A(a+(I+1)*e/(e+S))}function d(e){var r,t,a,o,i,n,u,d,f,p,m=[],v=e.length,y=0,g=x,S=_;for((t=e.lastIndexOf(F))<0&&(t=0),a=0;a=128&&s("not-basic"),m.push(e.charCodeAt(a));for(o=t>0?t+1:0;o=v&&s("invalid-input"),((d=h(e.charCodeAt(o++)))>=E||d>A((P-y)/n))&&s("overflow"),y+=d*n,f=u<=S?w:u>=S+b?b:u-S,!(dA(P/(p=E-f))&&s("overflow"),n*=p;S=c(y-i,r=m.length+1,0==i),A(y/r)>P-g&&s("overflow"),g+=A(y/r),y%=r,m.splice(y++,0,g)}return l(m)}function f(e){var r,t,a,o,i,l,h,d,f,p,m,v,y,g,S,j=[];for(v=(e=n(e)).length,r=x,t=0,i=_,l=0;l=r&&mA((P-t)/(y=a+1))&&s("overflow"),t+=(h-r)*y,r=h,l=0;lP&&s("overflow"),m==r){for(d=t,f=E;p=f<=i?w:f>=i+b?b:f-i,!(d= 0x80 (not a basic code point)","invalid-input":"Invalid input"},I=E-w,A=Math.floor,k=String.fromCharCode;if(y={version:"1.4.1",ucs2:{decode:n,encode:l},decode:d,encode:f,toASCII:function(e){return i(e,function(e){return R.test(e)?"xn--"+f(e):e})},toUnicode:function(e){return i(e,function(e){return $.test(e)?d(e.slice(4).toLowerCase()):e})}},p&&m)if(r.exports==p)m.exports=y;else for(g in y)y.hasOwnProperty(g)&&(p[g]=y[g]);else a.punycode=y}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],45:[function(e,r,t){"use strict";function a(e,r){return Object.prototype.hasOwnProperty.call(e,r)}r.exports=function(e,r,t,o){r=r||"&",t=t||"=";var i={};if("string"!=typeof e||0===e.length)return i;var n=/\+/g;e=e.split(r);var l=1e3;o&&"number"==typeof o.maxKeys&&(l=o.maxKeys);var h=e.length;l>0&&h>l&&(h=l);for(var u=0;u=0?(c=m.substr(0,v),d=m.substr(v+1)):(c=m,d=""),f=decodeURIComponent(c),p=decodeURIComponent(d),a(i,f)?s(i[f])?i[f].push(p):i[f]=[i[f],p]:i[f]=p}return i};var s=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],46:[function(e,r,t){"use strict";function a(e,r){if(e.map)return e.map(r);for(var t=[],a=0;a",'"',"`"," ","\r","\n","\t"]),c=["'"].concat(u),d=["%","/","?",";","#"].concat(c),f=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,m=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,v={javascript:!0,"javascript:":!0},y={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},P=e("querystring");a.prototype.parse=function(e,r,t){if(!i.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e.indexOf("?"),s=-1!==a&&a127?A+="x":A+=I[k];if(!A.match(p)){var L=O.slice(0,_),z=O.slice(_+1),C=I.match(m);C&&(L.push(C[1]),z.unshift(C[2])),z.length&&(u="/"+z.join(".")+u),this.hostname=L.join(".");break}}}this.hostname=this.hostname.length>255?"":this.hostname.toLowerCase(),R||(this.hostname=o.toASCII(this.hostname));var Q=this.port?":"+this.port:"";this.host=(this.hostname||"")+Q,this.href+=this.host,R&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==u[0]&&(u="/"+u))}if(!v[b])for(_=0,D=c.length;_0)&&t.host.split("@"))&&(t.auth=$.shift(),t.host=t.hostname=$.shift())}return t.search=e.search,t.query=e.query,i.isNull(t.pathname)&&i.isNull(t.search)||(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.href=t.format(),t}if(!w.length)return t.pathname=null,t.path=t.search?"/"+t.search:null,t.href=t.format(),t;for(var S=w.slice(-1)[0],j=(t.host||e.host||w.length>1)&&("."===S||".."===S)||""===S,_=0,x=w.length;x>=0;x--)"."===(S=w[x])?w.splice(x,1):".."===S?(w.splice(x,1),_++):_&&(w.splice(x,1),_--);if(!P&&!E)for(;_--;_)w.unshift("..");!P||""===w[0]||w[0]&&"/"===w[0].charAt(0)||w.unshift(""),j&&"/"!==w.join("/").substr(-1)&&w.push("");var F=""===w[0]||w[0]&&"/"===w[0].charAt(0);if(b){t.hostname=t.host=F?"":w.length?w.shift():"";var $;($=!!(t.host&&t.host.indexOf("@")>0)&&t.host.split("@"))&&(t.auth=$.shift(),t.host=t.hostname=$.shift())}return(P=P||t.host&&w.length)&&!F&&w.unshift(""),w.length?t.pathname=w.join("/"):(t.pathname=null,t.path=null),i.isNull(t.pathname)&&i.isNull(t.search)||(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.auth=e.auth||t.auth,t.slashes=t.slashes||e.slashes,t.href=t.format(),t},a.prototype.parseHost=function(){var e=this.host,r=l.exec(e);r&&(":"!==(r=r[0])&&(this.port=r.substr(1)),e=e.substr(0,e.length-r.length)),e&&(this.hostname=e)}},{"./util":49,punycode:44,querystring:47}],49:[function(e,r,t){"use strict";r.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},{}],ajv:[function(e,r,t){"use strict";function a(r){if(!(this instanceof a))return new a(r);r=this._opts=E.copy(r)||{},function(e){var r=e._opts.logger;if(!1===r)e.logger={log:u,warn:u,error:u};else{if(void 0===r&&(r=console),!("object"==typeof r&&r.log&&r.warn&&r.error))throw new Error("logger must implement log, warn and error methods");e.logger=r}}(this),this._schemas={},this._refs={},this._fragments={},this._formats=v(r.format);var t=this._schemaUriFormat=this._formats["uri-reference"];this._schemaUriFormatFunc=function(e){return t.test(e)},this._cache=r.cache||new f,this._loadingSchemas={},this._compilations=[],this.RULES=y(),this._getId=function(e){switch(e.schemaId){case"$id":return n;case"id":return i;default:return l}}(r),r.loopRequired=r.loopRequired||1/0,"property"==r.errorDataPath&&(r._errorDataPathProperty=!0),void 0===r.serialize&&(r.serialize=m),this._metaOpts=function(e){for(var r=E.copy(e._opts),t=0;t<_.length;t++)delete r[_[t]];return r}(this),r.formats&&function(e){for(var r in e._opts.formats){var t=e._opts.formats[r];e.addFormat(r,t)}}(this),function(r){var t;r._opts.$data&&(t=e("./refs/$data.json"),r.addMetaSchema(t,t.$id,!0));if(!1===r._opts.meta)return;var a=e("./refs/json-schema-draft-06.json");r._opts.$data&&(a=g(a,x));r.addMetaSchema(a,j,!0),r._refs["http://json-schema.org/schema"]=j}(this),"object"==typeof r.meta&&this.addMetaSchema(r.meta),function(e){var r=e._opts.schemas;if(!r)return;if(Array.isArray(r))e.addSchema(r);else for(var t in r)e.addSchema(r[t],t)}(this),r.patternGroups&&P(this)}function s(e,r){return r=d.normalizeId(r),e._schemas[r]||e._refs[r]||e._fragments[r]}function o(e,r,t){for(var a in r){var s=r[a];s.meta||t&&!t.test(a)||(e._cache.del(s.cacheKey),delete r[a])}}function i(e){return e.$id&&this.logger.warn("schema $id ignored",e.$id),e.id}function n(e){return e.id&&this.logger.warn("schema id ignored",e.id),e.$id}function l(e){if(e.$id&&e.id&&e.$id!=e.id)throw new Error("schema $id is different from id");return e.$id||e.id}function h(e,r){if(e._schemas[r]||e._refs[r])throw new Error('schema with key or id "'+r+'" already exists')}function u(){}var c=e("./compile"),d=e("./compile/resolve"),f=e("./cache"),p=e("./compile/schema_obj"),m=e("fast-json-stable-stringify"),v=e("./compile/formats"),y=e("./compile/rules"),g=e("./$data"),P=e("./patternGroups"),E=e("./compile/util"),w=e("co");r.exports=a,a.prototype.validate=function(e,r){var t;if("string"==typeof e){if(!(t=this.getSchema(e)))throw new Error('no schema with key or ref "'+e+'"')}else{var a=this._addSchema(e);t=a.validate||this._compile(a)}var s=t(r);return!0===t.$async?"*"==this._opts.async?w(s):s:(this.errors=t.errors,s)},a.prototype.compile=function(e,r){var t=this._addSchema(e,void 0,r);return t.validate||this._compile(t)},a.prototype.addSchema=function(e,r,t,a){if(Array.isArray(e)){for(var s=0;s=t}function i(e,t,n){var r=t.input.slice(t.start);return n&&(r=r.replace(l,"$1 $3")),e.test(r)}function s(e,t,n,r){var i=new e.constructor(e.options,e.input,t);if(n)for(var s in n)i[s]=n[s];var o=e,a=i;return["inFunction","inAsyncFunction","inAsync","inGenerator","inModule"].forEach(function(e){e in o&&(a[e]=o[e])}),r&&(i.options.preserveParens=!0),i.nextToken(),i}var o={},a=/^async[\t ]+(return|throw)/,u=/^async[\t ]+function/,c=/^\s*[():;]/,l=/([^\n])\/\*(\*(?!\/)|[^\n*])*\*\/([^\n])/g,p=/\s*(get|set)\s*\(/;t.exports=function(e,t){var n=function(){};e.extend("initialContext",function(r){return function(){return this.options.ecmaVersion<7&&(n=function(t){e.raise(t.start,"async/await keywords only available when ecmaVersion>=7")}),this.reservedWords=new RegExp(this.reservedWords.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")),this.reservedWordsStrict=new RegExp(this.reservedWordsStrict.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")),this.reservedWordsStrictBind=new RegExp(this.reservedWordsStrictBind.toString().replace(/await|async/g,"").replace("|/","/").replace("/|","/").replace("||","|")),this.inAsyncFunction=t.inAsyncFunction,t.awaitAnywhere&&t.inAsyncFunction&&e.raise(node.start,"The options awaitAnywhere and inAsyncFunction are mutually exclusive"),r.apply(this,arguments)}}),e.extend("shouldParseExportStatement",function(e){return function(){return!("name"!==this.type.label||"async"!==this.value||!i(u,this))||e.apply(this,arguments)}}),e.extend("parseStatement",function(e){return function(n,r){var s=this.start,o=this.startLoc;if("name"===this.type.label)if(i(u,this,!0)){var c=this.inAsyncFunction;try{return this.inAsyncFunction=!0,this.next(),(l=this.parseStatement(n,r)).async=!0,l.start=s,l.loc&&(l.loc.start=o),l.range&&(l.range[0]=s),l}finally{this.inAsyncFunction=c}}else if("object"==typeof t&&t.asyncExits&&i(a,this)){this.next();var l;return(l=this.parseStatement(n,r)).async=!0,l.start=s,l.loc&&(l.loc.start=o),l.range&&(l.range[0]=s),l}return e.apply(this,arguments)}}),e.extend("parseIdent",function(e){return function(t){var n=e.apply(this,arguments);return this.inAsyncFunction&&"await"===n.name&&0===arguments.length&&this.raise(n.start,"'await' is reserved within async functions"),n}}),e.extend("parseExprAtom",function(e){return function(i){var a,u=this.start,l=this.startLoc,p=e.apply(this,arguments);if("Identifier"===p.type)if("async"!==p.name||r(this,p.end)){if("await"===p.name){var h=this.startNodeAt(p.start,p.loc&&p.loc.start);if(this.inAsyncFunction)return a=this.parseExprSubscripts(),h.operator="await",h.argument=a,h=this.finishNodeAt(h,"AwaitExpression",a.end,a.loc&&a.loc.end),n(h),h;if(this.input.slice(p.end).match(c))return t.awaitAnywhere||"module"!==this.options.sourceType?p:this.raise(p.start,"'await' is reserved within modules");if("object"==typeof t&&t.awaitAnywhere&&(u=this.start,(a=s(this,u-4).parseExprSubscripts()).end<=u))return a=s(this,u).parseExprSubscripts(),h.operator="await",h.argument=a,h=this.finishNodeAt(h,"AwaitExpression",a.end,a.loc&&a.loc.end),this.pos=a.end,this.end=a.end,this.endLoc=a.endLoc,this.next(),n(h),h;if(!t.awaitAnywhere&&"module"===this.options.sourceType)return this.raise(p.start,"'await' is reserved within modules")}}else{var f=this.inAsyncFunction;try{this.inAsyncFunction=!0;var d=this,y=!1,m={parseFunctionBody:function(e,t){try{var n=y;return y=!0,d.parseFunctionBody.apply(this,arguments)}finally{y=n}},raise:function(){try{return d.raise.apply(this,arguments)}catch(e){throw y?e:o}}};if("SequenceExpression"===(a=s(this,this.start,m,!0).parseExpression()).type&&(a=a.expressions[0]),"CallExpression"===a.type&&(a=a.callee),"FunctionExpression"===a.type||"FunctionDeclaration"===a.type||"ArrowFunctionExpression"===a.type)return"SequenceExpression"===(a=s(this,this.start,m).parseExpression()).type&&(a=a.expressions[0]),"CallExpression"===a.type&&(a=a.callee),a.async=!0,a.start=u,a.loc&&(a.loc.start=l),a.range&&(a.range[0]=u),this.pos=a.end,this.end=a.end,this.endLoc=a.endLoc,this.next(),n(a),a}catch(e){if(e!==o)throw e}finally{this.inAsyncFunction=f}}return p}}),e.extend("finishNodeAt",function(e){return function(t,n,r,i){return t.__asyncValue&&(delete t.__asyncValue,t.value.async=!0),e.apply(this,arguments)}}),e.extend("finishNode",function(e){return function(t,n){return t.__asyncValue&&(delete t.__asyncValue,t.value.async=!0),e.apply(this,arguments)}}),e.extend("parsePropertyName",function(e){return function(t){t.key&&t.key.name;var i=e.apply(this,arguments);return"Identifier"!==i.type||"async"!==i.name||r(this,i.end)||this.input.slice(i.end).match(c)||(p.test(this.input.slice(i.end))?(i=e.apply(this,arguments),t.__asyncValue=!0):(n(t),"set"===t.kind&&this.raise(i.start,"'set (value)' cannot be be async"),"Identifier"===(i=e.apply(this,arguments)).type&&"set"===i.name&&this.raise(i.start,"'set (value)' cannot be be async"),t.__asyncValue=!0)),i}}),e.extend("parseClassMethod",function(e){return function(t,n,r){var i;n.__asyncValue&&("constructor"===n.kind&&this.raise(n.start,"class constructor() cannot be be async"),i=this.inAsyncFunction,this.inAsyncFunction=!0);var s=e.apply(this,arguments);return this.inAsyncFunction=i,s}}),e.extend("parseMethod",function(e){return function(t){var n;this.__currentProperty&&this.__currentProperty.__asyncValue&&(n=this.inAsyncFunction,this.inAsyncFunction=!0);var r=e.apply(this,arguments);return this.inAsyncFunction=n,r}}),e.extend("parsePropertyValue",function(e){return function(t,n,r,i,s,o){var a=this.__currentProperty;this.__currentProperty=t;var u;t.__asyncValue&&(u=this.inAsyncFunction,this.inAsyncFunction=!0);var c=e.apply(this,arguments);return this.inAsyncFunction=u,this.__currentProperty=a,c}})}},{}],3:[function(e,t,n){function r(e,t,n){var r=new e.constructor(e.options,e.input,t);if(n)for(var i in n)r[i]=n[i];var s=e,o=r;return["inFunction","inAsync","inGenerator","inModule"].forEach(function(e){e in s&&(o[e]=s[e])}),r.nextToken(),r}var i=/^async[\t ]+(return|throw)/,s=/^\s*[):;]/,o=/([^\n])\/\*(\*(?!\/)|[^\n*])*\*\/([^\n])/g;t.exports=function(e,t){t&&"object"==typeof t||(t={}),e.extend("parse",function(n){return function(){return this.inAsync=t.inAsyncFunction,t.awaitAnywhere&&t.inAsyncFunction&&e.raise(node.start,"The options awaitAnywhere and inAsyncFunction are mutually exclusive"),n.apply(this,arguments)}}),e.extend("parseStatement",function(e){return function(n,r){var s=this.start,a=this.startLoc;if("name"===this.type.label&&t.asyncExits&&function(e,t,n){var r=t.input.slice(t.start);return n&&(r=r.replace(o,"$1 $3")),e.test(r)}(i,this)){this.next();var u=this.parseStatement(n,r);return u.async=!0,u.start=s,u.loc&&(u.loc.start=a),u.range&&(u.range[0]=s),u}return e.apply(this,arguments)}}),e.extend("parseIdent",function(e){return function(n){return"module"===this.options.sourceType&&this.options.ecmaVersion>=8&&t.awaitAnywhere?e.call(this,!0):e.apply(this,arguments)}}),e.extend("parseExprAtom",function(e){var n={};return function(i){var s,o=this.start,a=(this.startLoc,e.apply(this,arguments));if("Identifier"===a.type&&"await"===a.name&&!this.inAsync&&t.awaitAnywhere){var u=this.startNodeAt(a.start,a.loc&&a.loc.start);o=this.start;var c={raise:function(){try{return pp.raise.apply(this,arguments)}catch(e){throw n}}};try{if((s=r(this,o-4,c).parseExprSubscripts()).end<=o)return s=r(this,o,c).parseExprSubscripts(),u.argument=s,u=this.finishNodeAt(u,"AwaitExpression",s.end,s.loc&&s.loc.end),this.pos=s.end,this.end=s.end,this.endLoc=s.endLoc,this.next(),u}catch(e){if(e===n)return a;throw e}}return a}});var n={undefined:!0,get:!0,set:!0,static:!0,async:!0,constructor:!0};e.extend("parsePropertyName",function(e){return function(t){var r=t.key&&t.key.name,i=e.apply(this,arguments);return"get"===this.value&&(t.__maybeStaticAsyncGetter=!0),n[this.value]?i:("Identifier"!==i.type||"async"!==i.name&&"async"!==r||function(e,t){return e.lineStart>=t}(this,i.end)||this.input.slice(i.end).match(s)?delete t.__maybeStaticAsyncGetter:"set"===t.kind||"set"===i.name?this.raise(i.start,"'set (value)' cannot be be async"):(this.__isAsyncProp=!0,"Identifier"===(i=e.apply(this,arguments)).type&&"set"===i.name&&this.raise(i.start,"'set (value)' cannot be be async")),i)}}),e.extend("parseClassMethod",function(e){return function(t,n,r){var i=e.apply(this,arguments);return n.__maybeStaticAsyncGetter&&(delete n.__maybeStaticAsyncGetter,"get"!==n.key.name&&(n.kind="get")),i}}),e.extend("parseFunctionBody",function(e){return function(t,n){var r=this.inAsync;this.__isAsyncProp&&(t.async=!0,this.inAsync=!0,delete this.__isAsyncProp);var i=e.apply(this,arguments);return this.inAsync=r,i}})}},{}],4:[function(e,t,n){!function(e,r){"object"==typeof n&&void 0!==t?r(n):"function"==typeof define&&define.amd?define(["exports"],r):r(e.acorn=e.acorn||{})}(this,function(e){"use strict";function t(e,t){for(var n=65536,r=0;re)return!1;if((n+=t[r+1])>=e)return!0}}function n(e,n){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&x.test(String.fromCharCode(e)):!1!==n&&t(e,E)))}function r(e,n){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&w.test(String.fromCharCode(e)):!1!==n&&(t(e,E)||t(e,S)))))}function i(e,t){return new k(e,{beforeExpr:!0,binop:t})}function s(e,t){return void 0===t&&(t={}),t.keyword=e,_[e]=new k(e,t)}function o(e){return 10===e||13===e||8232===e||8233===e}function a(e,t){return $.call(e,t)}function u(e,t){for(var n=1,r=0;;){T.lastIndex=r;var i=T.exec(e);if(!(i&&i.index=2015&&(t.ecmaVersion-=2009),null==t.allowReserved&&(t.allowReserved=t.ecmaVersion<5),R(t.onToken)){var r=t.onToken;t.onToken=function(e){return r.push(e)}}return R(t.onComment)&&(t.onComment=function(e,t){return function(n,r,i,s,o,a){var u={type:n?"Block":"Line",value:r,start:i,end:s};e.locations&&(u.loc=new j(this,o,a)),e.ranges&&(u.range=[i,s]),t.push(u)}}(t,t.onComment)),t}function l(e){return new RegExp("^(?:"+e.replace(/ /g,"|")+")$")}function p(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=-1}function h(e,t,n,r){return e.type=t,e.end=n,this.options.locations&&(e.loc.end=r),this.options.ranges&&(e.range[1]=n),e}function f(e,t,n,r){try{return new RegExp(e,t)}catch(e){if(void 0!==n)throw e instanceof SyntaxError&&r.raise(n,"Error parsing regular expression: "+e.message),e}}function d(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}var y={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},m="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",g={5:m,6:m+" const class extends export import super"},v="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿕ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞮꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",b="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఃా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ູົຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱꤀-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",x=new RegExp("["+v+"]"),w=new RegExp("["+v+b+"]");v=b=null;var E=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,785,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,25,391,63,32,0,449,56,264,8,2,36,18,0,50,29,881,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,65,0,32,6124,20,754,9486,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,10591,541],S=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,10,2,4,9,83,11,7,0,161,11,6,9,7,3,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,87,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,423,9,838,7,2,7,17,9,57,21,2,13,19882,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239],k=function(e,t){void 0===t&&(t={}),this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop||null,this.updateContext=null},A={beforeExpr:!0},C={startsExpr:!0},_={},L={num:new k("num",C),regexp:new k("regexp",C),string:new k("string",C),name:new k("name",C),eof:new k("eof"),bracketL:new k("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new k("]"),braceL:new k("{",{beforeExpr:!0,startsExpr:!0}),braceR:new k("}"),parenL:new k("(",{beforeExpr:!0,startsExpr:!0}),parenR:new k(")"),comma:new k(",",A),semi:new k(";",A),colon:new k(":",A),dot:new k("."),question:new k("?",A),arrow:new k("=>",A),template:new k("template"),invalidTemplate:new k("invalidTemplate"),ellipsis:new k("...",A),backQuote:new k("`",C),dollarBraceL:new k("${",{beforeExpr:!0,startsExpr:!0}),eq:new k("=",{beforeExpr:!0,isAssign:!0}),assign:new k("_=",{beforeExpr:!0,isAssign:!0}),incDec:new k("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new k("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:i("||",1),logicalAND:i("&&",2),bitwiseOR:i("|",3),bitwiseXOR:i("^",4),bitwiseAND:i("&",5),equality:i("==/!=/===/!==",6),relational:i("/<=/>=",7),bitShift:i("<>/>>>",8),plusMin:new k("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:i("%",10),star:i("*",10),slash:i("/",10),starstar:new k("**",{beforeExpr:!0}),_break:s("break"),_case:s("case",A),_catch:s("catch"),_continue:s("continue"),_debugger:s("debugger"),_default:s("default",A),_do:s("do",{isLoop:!0,beforeExpr:!0}),_else:s("else",A),_finally:s("finally"),_for:s("for",{isLoop:!0}),_function:s("function",C),_if:s("if"),_return:s("return",A),_switch:s("switch"),_throw:s("throw",A),_try:s("try"),_var:s("var"),_const:s("const"),_while:s("while",{isLoop:!0}),_with:s("with"),_new:s("new",{beforeExpr:!0,startsExpr:!0}),_this:s("this",C),_super:s("super",C),_class:s("class",C),_extends:s("extends",A),_export:s("export"),_import:s("import"),_null:s("null",C),_true:s("true",C),_false:s("false",C),_in:s("in",{beforeExpr:!0,binop:7}),_instanceof:s("instanceof",{beforeExpr:!0,binop:7}),_typeof:s("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:s("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:s("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},O=/\r\n?|\n|\u2028|\u2029/,T=new RegExp(O.source,"g"),N=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,P=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,F=Object.prototype,$=F.hasOwnProperty,B=F.toString,R=Array.isArray||function(e){return"[object Array]"===B.call(e)},I=function(e,t){this.line=e,this.column=t};I.prototype.offset=function(e){return new I(this.line,this.column+e)};var j=function(e,t,n){this.start=t,this.end=n,null!==e.sourceFile&&(this.source=e.sourceFile)},D={ecmaVersion:7,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowHashBang:!1,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1,plugins:{}},M={},V=function(e,t,n){this.options=e=c(e),this.sourceFile=e.sourceFile,this.keywords=l(g[e.ecmaVersion>=6?6:5]);var r="";if(!e.allowReserved){for(var i=e.ecmaVersion;!(r=y[i]);i--);"module"==e.sourceType&&(r+=" await")}this.reservedWords=l(r);var s=(r?r+" ":"")+y.strict;this.reservedWordsStrict=l(s),this.reservedWordsStrictBind=l(s+" "+y.strictBind),this.input=String(t),this.containsEsc=!1,this.loadPlugins(e.plugins),n?(this.pos=n,this.lineStart=this.input.lastIndexOf("\n",n-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(O).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=L.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===e.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.inFunction=this.inGenerator=this.inAsync=!1,this.yieldPos=this.awaitPos=0,this.labels=[],0===this.pos&&e.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterFunctionScope()};V.prototype.isKeyword=function(e){return this.keywords.test(e)},V.prototype.isReservedWord=function(e){return this.reservedWords.test(e)},V.prototype.extend=function(e,t){this[e]=t(this[e])},V.prototype.loadPlugins=function(e){for(var t in e){var n=M[t];if(!n)throw new Error("Plugin '"+t+"' not found");n(this,e[t])}},V.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)};var q=V.prototype,U=/^(?:'((?:\\.|[^'])*?)'|"((?:\\.|[^"])*?)"|;)/;q.strictDirective=function(e){for(;;){P.lastIndex=e,e+=P.exec(this.input)[0].length;var t=U.exec(this.input.slice(e));if(!t)return!1;if("use strict"==(t[1]||t[2]))return!0;e+=t[0].length}},q.eat=function(e){return this.type===e&&(this.next(),!0)},q.isContextual=function(e){return this.type===L.name&&this.value===e},q.eatContextual=function(e){return this.value===e&&this.eat(L.name)},q.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},q.canInsertSemicolon=function(){return this.type===L.eof||this.type===L.braceR||O.test(this.input.slice(this.lastTokEnd,this.start))},q.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},q.semicolon=function(){this.eat(L.semi)||this.insertSemicolon()||this.unexpected()},q.afterTrailingComma=function(e,t){if(this.type==e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},q.expect=function(e){this.eat(e)||this.unexpected()},q.unexpected=function(e){this.raise(null!=e?e:this.start,"Unexpected token")},q.checkPatternErrors=function(e,t){if(e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,"Comma is not permitted after the rest element");var n=t?e.parenthesizedAssign:e.parenthesizedBind;n>-1&&this.raiseRecoverable(n,"Parenthesized pattern")}},q.checkExpressionErrors=function(e,t){var n=e?e.shorthandAssign:-1;if(!t)return n>=0;n>-1&&this.raise(n,"Shorthand property assignments are valid only in destructuring patterns")},q.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos=6&&(e.sourceType=this.options.sourceType),this.finishNode(e,"Program")};var W={kind:"loop"},G={kind:"switch"};z.isLet=function(){if(this.type!==L.name||this.options.ecmaVersion<6||"let"!=this.value)return!1;P.lastIndex=this.pos;var e=P.exec(this.input),t=this.pos+e[0].length,i=this.input.charCodeAt(t);if(91===i||123==i)return!0;if(n(i,!0)){for(var s=t+1;r(this.input.charCodeAt(s),!0);)++s;var o=this.input.slice(t,s);if(!this.isKeyword(o))return!0}return!1},z.isAsyncFunction=function(){if(this.type!==L.name||this.options.ecmaVersion<8||"async"!=this.value)return!1;P.lastIndex=this.pos;var e=P.exec(this.input),t=this.pos+e[0].length;return!(O.test(this.input.slice(this.pos,t))||"function"!==this.input.slice(t,t+8)||t+8!=this.input.length&&r(this.input.charAt(t+8)))},z.parseStatement=function(e,t,n){var r,i=this.type,s=this.startNode();switch(this.isLet()&&(i=L._var,r="let"),i){case L._break:case L._continue:return this.parseBreakContinueStatement(s,i.keyword);case L._debugger:return this.parseDebuggerStatement(s);case L._do:return this.parseDoStatement(s);case L._for:return this.parseForStatement(s);case L._function:return!e&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(s,!1);case L._class:return e||this.unexpected(),this.parseClass(s,!0);case L._if:return this.parseIfStatement(s);case L._return:return this.parseReturnStatement(s);case L._switch:return this.parseSwitchStatement(s);case L._throw:return this.parseThrowStatement(s);case L._try:return this.parseTryStatement(s);case L._const:case L._var:return r=r||this.value,e||"var"==r||this.unexpected(),this.parseVarStatement(s,r);case L._while:return this.parseWhileStatement(s);case L._with:return this.parseWithStatement(s);case L.braceL:return this.parseBlock();case L.semi:return this.parseEmptyStatement(s);case L._export:case L._import:return this.options.allowImportExportEverywhere||(t||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),i===L._import?this.parseImport(s):this.parseExport(s,n);default:if(this.isAsyncFunction()&&e)return this.next(),this.parseFunctionStatement(s,!0);var o=this.value,a=this.parseExpression();return i===L.name&&"Identifier"===a.type&&this.eat(L.colon)?this.parseLabeledStatement(s,o,a):this.parseExpressionStatement(s,a)}},z.parseBreakContinueStatement=function(e,t){var n="break"==t;this.next(),this.eat(L.semi)||this.insertSemicolon()?e.label=null:this.type!==L.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var r=0;r=6?this.eat(L.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")},z.parseForStatement=function(e){if(this.next(),this.labels.push(W),this.enterLexicalScope(),this.expect(L.parenL),this.type===L.semi)return this.parseFor(e,null);var t=this.isLet();if(this.type===L._var||this.type===L._const||t){var n=this.startNode(),r=t?"let":this.value;return this.next(),this.parseVar(n,!0,r),this.finishNode(n,"VariableDeclaration"),!(this.type===L._in||this.options.ecmaVersion>=6&&this.isContextual("of"))||1!==n.declarations.length||"var"!==r&&n.declarations[0].init?this.parseFor(e,n):this.parseForIn(e,n)}var i=new p,s=this.parseExpression(!0,i);return this.type===L._in||this.options.ecmaVersion>=6&&this.isContextual("of")?(this.toAssignable(s),this.checkLVal(s),this.checkPatternErrors(i,!0),this.parseForIn(e,s)):(this.checkExpressionErrors(i,!0),this.parseFor(e,s))},z.parseFunctionStatement=function(e,t){return this.next(),this.parseFunction(e,!0,!1,t)},z.isFunction=function(){return this.type===L._function||this.isAsyncFunction()},z.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(!this.strict&&this.isFunction()),e.alternate=this.eat(L._else)?this.parseStatement(!this.strict&&this.isFunction()):null,this.finishNode(e,"IfStatement")},z.parseReturnStatement=function(e){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(L.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},z.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(L.braceL),this.labels.push(G),this.enterLexicalScope();for(var t,n=!1;this.type!=L.braceR;)if(this.type===L._case||this.type===L._default){var r=this.type===L._case;t&&this.finishNode(t,"SwitchCase"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),r?t.test=this.parseExpression():(n&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),n=!0,t.test=null),this.expect(L.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(!0));return this.exitLexicalScope(),t&&this.finishNode(t,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")},z.parseThrowStatement=function(e){return this.next(),O.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var J=[];z.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===L._catch){var t=this.startNode();this.next(),this.expect(L.parenL),t.param=this.parseBindingAtom(),this.enterLexicalScope(),this.checkLVal(t.param,"let"),this.expect(L.parenR),t.body=this.parseBlock(!1),this.exitLexicalScope(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(L._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},z.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},z.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(W),e.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(e,"WhileStatement")},z.parseWithStatement=function(e){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement(!1),this.finishNode(e,"WithStatement")},z.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},z.parseLabeledStatement=function(e,t,n){for(var r=0,i=this.labels;r=0;o--){var a=this.labels[o];if(a.statementStart!=e.start)break;a.statementStart=this.start,a.kind=s}return this.labels.push({name:t,kind:s,statementStart:this.start}),e.body=this.parseStatement(!0),("ClassDeclaration"==e.body.type||"VariableDeclaration"==e.body.type&&"var"!=e.body.kind||"FunctionDeclaration"==e.body.type&&(this.strict||e.body.generator))&&this.raiseRecoverable(e.body.start,"Invalid labeled declaration"),this.labels.pop(),e.label=n,this.finishNode(e,"LabeledStatement")},z.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},z.parseBlock=function(e){void 0===e&&(e=!0);var t=this.startNode();for(t.body=[],this.expect(L.braceL),e&&this.enterLexicalScope();!this.eat(L.braceR);){var n=this.parseStatement(!0);t.body.push(n)}return e&&this.exitLexicalScope(),this.finishNode(t,"BlockStatement")},z.parseFor=function(e,t){return e.init=t,this.expect(L.semi),e.test=this.type===L.semi?null:this.parseExpression(),this.expect(L.semi),e.update=this.type===L.parenR?null:this.parseExpression(),this.expect(L.parenR),this.exitLexicalScope(),e.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(e,"ForStatement")},z.parseForIn=function(e,t){var n=this.type===L._in?"ForInStatement":"ForOfStatement";return this.next(),e.left=t,e.right=this.parseExpression(),this.expect(L.parenR),this.exitLexicalScope(),e.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(e,n)},z.parseVar=function(e,t,n){for(e.declarations=[],e.kind=n;;){var r=this.startNode();if(this.parseVarId(r,n),this.eat(L.eq)?r.init=this.parseMaybeAssign(t):"const"!==n||this.type===L._in||this.options.ecmaVersion>=6&&this.isContextual("of")?"Identifier"==r.id.type||t&&(this.type===L._in||this.isContextual("of"))?r.init=null:this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),e.declarations.push(this.finishNode(r,"VariableDeclarator")),!this.eat(L.comma))break}return e},z.parseVarId=function(e,t){e.id=this.parseBindingAtom(t),this.checkLVal(e.id,t,!1)},z.parseFunction=function(e,t,n,r){this.initFunction(e),this.options.ecmaVersion>=6&&!r&&(e.generator=this.eat(L.star)),this.options.ecmaVersion>=8&&(e.async=!!r),t&&(e.id="nullableID"===t&&this.type!=L.name?null:this.parseIdent(),e.id&&this.checkLVal(e.id,"var"));var i=this.inGenerator,s=this.inAsync,o=this.yieldPos,a=this.awaitPos,u=this.inFunction;return this.inGenerator=e.generator,this.inAsync=e.async,this.yieldPos=0,this.awaitPos=0,this.inFunction=!0,this.enterFunctionScope(),t||(e.id=this.type==L.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,n),this.inGenerator=i,this.inAsync=s,this.yieldPos=o,this.awaitPos=a,this.inFunction=u,this.finishNode(e,t?"FunctionDeclaration":"FunctionExpression")},z.parseFunctionParams=function(e){this.expect(L.parenL),e.params=this.parseBindingList(L.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},z.parseClass=function(e,t){this.next(),this.parseClassId(e,t),this.parseClassSuper(e);var n=this.startNode(),r=!1;for(n.body=[],this.expect(L.braceL);!this.eat(L.braceR);)if(!this.eat(L.semi)){var i=this.startNode(),s=this.eat(L.star),o=!1,a=this.type===L.name&&"static"===this.value;this.parsePropertyName(i),i.static=a&&this.type!==L.parenL,i.static&&(s&&this.unexpected(),s=this.eat(L.star),this.parsePropertyName(i)),this.options.ecmaVersion>=8&&!s&&!i.computed&&"Identifier"===i.key.type&&"async"===i.key.name&&this.type!==L.parenL&&!this.canInsertSemicolon()&&(o=!0,this.parsePropertyName(i)),i.kind="method";var u=!1;if(!i.computed){var c=i.key;s||o||"Identifier"!==c.type||this.type===L.parenL||"get"!==c.name&&"set"!==c.name||(u=!0,i.kind=c.name,c=this.parsePropertyName(i)),!i.static&&("Identifier"===c.type&&"constructor"===c.name||"Literal"===c.type&&"constructor"===c.value)&&(r&&this.raise(c.start,"Duplicate constructor in the same class"),u&&this.raise(c.start,"Constructor can't have get/set modifier"),s&&this.raise(c.start,"Constructor can't be a generator"),o&&this.raise(c.start,"Constructor can't be an async method"),i.kind="constructor",r=!0)}if(this.parseClassMethod(n,i,s,o),u){var l="get"===i.kind?0:1;if(i.value.params.length!==l){var p=i.value.start;"get"===i.kind?this.raiseRecoverable(p,"getter should have no params"):this.raiseRecoverable(p,"setter should have exactly one param")}else"set"===i.kind&&"RestElement"===i.value.params[0].type&&this.raiseRecoverable(i.value.params[0].start,"Setter cannot use rest params")}}return e.body=this.finishNode(n,"ClassBody"),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},z.parseClassMethod=function(e,t,n,r){t.value=this.parseMethod(n,r),e.body.push(this.finishNode(t,"MethodDefinition"))},z.parseClassId=function(e,t){e.id=this.type===L.name?this.parseIdent():!0===t?this.unexpected():null},z.parseClassSuper=function(e){e.superClass=this.eat(L._extends)?this.parseExprSubscripts():null},z.parseExport=function(e,t){if(this.next(),this.eat(L.star))return this.expectContextual("from"),e.source=this.type===L.string?this.parseExprAtom():this.unexpected(),this.semicolon(),this.finishNode(e,"ExportAllDeclaration");if(this.eat(L._default)){this.checkExport(t,"default",this.lastTokStart);var n;if(this.type===L._function||(n=this.isAsyncFunction())){var r=this.startNode();this.next(),n&&this.next(),e.declaration=this.parseFunction(r,"nullableID",!1,n)}else if(this.type===L._class){var i=this.startNode();e.declaration=this.parseClass(i,"nullableID")}else e.declaration=this.parseMaybeAssign(),this.semicolon();return this.finishNode(e,"ExportDefaultDeclaration")}if(this.shouldParseExportStatement())e.declaration=this.parseStatement(!0),"VariableDeclaration"===e.declaration.type?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id.name,e.declaration.id.start),e.specifiers=[],e.source=null;else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual("from"))e.source=this.type===L.string?this.parseExprAtom():this.unexpected();else{for(var s=0,o=e.specifiers;s=6&&e)switch(e.type){case"Identifier":this.inAsync&&"await"===e.name&&this.raise(e.start,"Can not use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":break;case"ObjectExpression":e.type="ObjectPattern";for(var n=0,r=e.properties;n=6&&(e.computed||e.method||e.shorthand))){var n,r=e.key;switch(r.type){case"Identifier":n=r.name;break;case"Literal":n=String(r.value);break;default:return}var i=e.kind;if(this.options.ecmaVersion>=6)"__proto__"===n&&"init"===i&&(t.proto&&this.raiseRecoverable(r.start,"Redefinition of __proto__ property"),t.proto=!0);else{var s=t[n="$"+n];if(s){("init"===i?this.strict&&s.init||s.get||s.set:s.init||s[i])&&this.raiseRecoverable(r.start,"Redefinition of property")}else s=t[n]={init:!1,get:!1,set:!1};s[i]=!0}}},Y.parseExpression=function(e,t){var n=this.start,r=this.startLoc,i=this.parseMaybeAssign(e,t);if(this.type===L.comma){var s=this.startNodeAt(n,r);for(s.expressions=[i];this.eat(L.comma);)s.expressions.push(this.parseMaybeAssign(e,t));return this.finishNode(s,"SequenceExpression")}return i},Y.parseMaybeAssign=function(e,t,n){if(this.inGenerator&&this.isContextual("yield"))return this.parseYield();var r=!1,i=-1,s=-1;t?(i=t.parenthesizedAssign,s=t.trailingComma,t.parenthesizedAssign=t.trailingComma=-1):(t=new p,r=!0);var o=this.start,a=this.startLoc;this.type!=L.parenL&&this.type!=L.name||(this.potentialArrowAt=this.start);var u=this.parseMaybeConditional(e,t);if(n&&(u=n.call(this,u,o,a)),this.type.isAssign){this.checkPatternErrors(t,!0),r||p.call(t);var c=this.startNodeAt(o,a);return c.operator=this.value,c.left=this.type===L.eq?this.toAssignable(u):u,t.shorthandAssign=-1,this.checkLVal(u),this.next(),c.right=this.parseMaybeAssign(e),this.finishNode(c,"AssignmentExpression")}return r&&this.checkExpressionErrors(t,!0),i>-1&&(t.parenthesizedAssign=i),s>-1&&(t.trailingComma=s),u},Y.parseMaybeConditional=function(e,t){var n=this.start,r=this.startLoc,i=this.parseExprOps(e,t);if(this.checkExpressionErrors(t))return i;if(this.eat(L.question)){var s=this.startNodeAt(n,r);return s.test=i,s.consequent=this.parseMaybeAssign(),this.expect(L.colon),s.alternate=this.parseMaybeAssign(e),this.finishNode(s,"ConditionalExpression")}return i},Y.parseExprOps=function(e,t){var n=this.start,r=this.startLoc,i=this.parseMaybeUnary(t,!1);return this.checkExpressionErrors(t)?i:i.start==n&&"ArrowFunctionExpression"===i.type?i:this.parseExprOp(i,n,r,-1,e)},Y.parseExprOp=function(e,t,n,r,i){var s=this.type.binop;if(null!=s&&(!i||this.type!==L._in)&&s>r){var o=this.type===L.logicalOR||this.type===L.logicalAND,a=this.value;this.next();var u=this.start,c=this.startLoc,l=this.parseExprOp(this.parseMaybeUnary(null,!1),u,c,s,i),p=this.buildBinary(t,n,e,l,a,o);return this.parseExprOp(p,t,n,r,i)}return e},Y.buildBinary=function(e,t,n,r,i,s){var o=this.startNodeAt(e,t);return o.left=n,o.operator=i,o.right=r,this.finishNode(o,s?"LogicalExpression":"BinaryExpression")},Y.parseMaybeUnary=function(e,t){var n,r=this.start,i=this.startLoc;if(this.inAsync&&this.isContextual("await"))n=this.parseAwait(),t=!0;else if(this.type.prefix){var s=this.startNode(),o=this.type===L.incDec;s.operator=this.value,s.prefix=!0,this.next(),s.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(e,!0),o?this.checkLVal(s.argument):this.strict&&"delete"===s.operator&&"Identifier"===s.argument.type?this.raiseRecoverable(s.start,"Deleting local variable in strict mode"):t=!0,n=this.finishNode(s,o?"UpdateExpression":"UnaryExpression")}else{if(n=this.parseExprSubscripts(e),this.checkExpressionErrors(e))return n;for(;this.type.postfix&&!this.canInsertSemicolon();){var a=this.startNodeAt(r,i);a.operator=this.value,a.prefix=!1,a.argument=n,this.checkLVal(n),this.next(),n=this.finishNode(a,"UpdateExpression")}}return!t&&this.eat(L.starstar)?this.buildBinary(r,i,n,this.parseMaybeUnary(null,!1),"**",!1):n},Y.parseExprSubscripts=function(e){var t=this.start,n=this.startLoc,r=this.parseExprAtom(e),i="ArrowFunctionExpression"===r.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd);if(this.checkExpressionErrors(e)||i)return r;var s=this.parseSubscripts(r,t,n);return e&&"MemberExpression"===s.type&&(e.parenthesizedAssign>=s.start&&(e.parenthesizedAssign=-1),e.parenthesizedBind>=s.start&&(e.parenthesizedBind=-1)),s},Y.parseSubscripts=function(e,t,n,r){for(var i=this.options.ecmaVersion>=8&&"Identifier"===e.type&&"async"===e.name&&this.lastTokEnd==e.end&&!this.canInsertSemicolon(),s=void 0;;)if((s=this.eat(L.bracketL))||this.eat(L.dot)){var o=this.startNodeAt(t,n);o.object=e,o.property=s?this.parseExpression():this.parseIdent(!0),o.computed=!!s,s&&this.expect(L.bracketR),e=this.finishNode(o,"MemberExpression")}else if(!r&&this.eat(L.parenL)){var a=new p,u=this.yieldPos,c=this.awaitPos;this.yieldPos=0,this.awaitPos=0;var l=this.parseExprList(L.parenR,this.options.ecmaVersion>=8,!1,a);if(i&&!this.canInsertSemicolon()&&this.eat(L.arrow))return this.checkPatternErrors(a,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=u,this.awaitPos=c,this.parseArrowExpression(this.startNodeAt(t,n),l,!0);this.checkExpressionErrors(a,!0),this.yieldPos=u||this.yieldPos,this.awaitPos=c||this.awaitPos;var h=this.startNodeAt(t,n);h.callee=e,h.arguments=l,e=this.finishNode(h,"CallExpression")}else{if(this.type!==L.backQuote)return e;var f=this.startNodeAt(t,n);f.tag=e,f.quasi=this.parseTemplate({isTagged:!0}),e=this.finishNode(f,"TaggedTemplateExpression")}},Y.parseExprAtom=function(e){var t,n=this.potentialArrowAt==this.start;switch(this.type){case L._super:return this.inFunction||this.raise(this.start,"'super' outside of function or class"),t=this.startNode(),this.next(),this.type!==L.dot&&this.type!==L.bracketL&&this.type!==L.parenL&&this.unexpected(),this.finishNode(t,"Super");case L._this:return t=this.startNode(),this.next(),this.finishNode(t,"ThisExpression");case L.name:var r=this.start,i=this.startLoc,s=this.parseIdent(this.type!==L.name);if(this.options.ecmaVersion>=8&&"async"===s.name&&!this.canInsertSemicolon()&&this.eat(L._function))return this.parseFunction(this.startNodeAt(r,i),!1,!1,!0);if(n&&!this.canInsertSemicolon()){if(this.eat(L.arrow))return this.parseArrowExpression(this.startNodeAt(r,i),[s],!1);if(this.options.ecmaVersion>=8&&"async"===s.name&&this.type===L.name)return s=this.parseIdent(),!this.canInsertSemicolon()&&this.eat(L.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(r,i),[s],!0)}return s;case L.regexp:var o=this.value;return t=this.parseLiteral(o.value),t.regex={pattern:o.pattern,flags:o.flags},t;case L.num:case L.string:return this.parseLiteral(this.value);case L._null:case L._true:case L._false:return t=this.startNode(),t.value=this.type===L._null?null:this.type===L._true,t.raw=this.type.keyword,this.next(),this.finishNode(t,"Literal");case L.parenL:var a=this.start,u=this.parseParenAndDistinguishExpression(n);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(u)&&(e.parenthesizedAssign=a),e.parenthesizedBind<0&&(e.parenthesizedBind=a)),u;case L.bracketL:return t=this.startNode(),this.next(),t.elements=this.parseExprList(L.bracketR,!0,!0,e),this.finishNode(t,"ArrayExpression");case L.braceL:return this.parseObj(!1,e);case L._function:return t=this.startNode(),this.next(),this.parseFunction(t,!1);case L._class:return this.parseClass(this.startNode(),!1);case L._new:return this.parseNew();case L.backQuote:return this.parseTemplate();default:this.unexpected()}},Y.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),this.next(),this.finishNode(t,"Literal")},Y.parseParenExpression=function(){this.expect(L.parenL);var e=this.parseExpression();return this.expect(L.parenR),e},Y.parseParenAndDistinguishExpression=function(e){var t,n=this.start,r=this.startLoc,i=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var s,o,a=this.start,u=this.startLoc,c=[],l=!0,h=!1,f=new p,d=this.yieldPos,y=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==L.parenR;){if(l?l=!1:this.expect(L.comma),i&&this.afterTrailingComma(L.parenR,!0)){h=!0;break}if(this.type===L.ellipsis){s=this.start,c.push(this.parseParenItem(this.parseRestBinding())),this.type===L.comma&&this.raise(this.start,"Comma is not permitted after the rest element");break}this.type!==L.parenL||o||(o=this.start),c.push(this.parseMaybeAssign(!1,f,this.parseParenItem))}var m=this.start,g=this.startLoc;if(this.expect(L.parenR),e&&!this.canInsertSemicolon()&&this.eat(L.arrow))return this.checkPatternErrors(f,!1),this.checkYieldAwaitInDefaultParams(),o&&this.unexpected(o),this.yieldPos=d,this.awaitPos=y,this.parseParenArrowList(n,r,c);c.length&&!h||this.unexpected(this.lastTokStart),s&&this.unexpected(s),this.checkExpressionErrors(f,!0),this.yieldPos=d||this.yieldPos,this.awaitPos=y||this.awaitPos,c.length>1?((t=this.startNodeAt(a,u)).expressions=c,this.finishNodeAt(t,"SequenceExpression",m,g)):t=c[0]}else t=this.parseParenExpression();if(this.options.preserveParens){var v=this.startNodeAt(n,r);return v.expression=t,this.finishNode(v,"ParenthesizedExpression")}return t},Y.parseParenItem=function(e){return e},Y.parseParenArrowList=function(e,t,n){return this.parseArrowExpression(this.startNodeAt(e,t),n)};var Q=[];Y.parseNew=function(){var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(L.dot))return e.meta=t,e.property=this.parseIdent(!0),"target"!==e.property.name&&this.raiseRecoverable(e.property.start,"The only valid meta property for new is new.target"),this.inFunction||this.raiseRecoverable(e.start,"new.target can only be used in functions"),this.finishNode(e,"MetaProperty");var n=this.start,r=this.startLoc;return e.callee=this.parseSubscripts(this.parseExprAtom(),n,r,!0),this.eat(L.parenL)?e.arguments=this.parseExprList(L.parenR,this.options.ecmaVersion>=8,!1):e.arguments=Q,this.finishNode(e,"NewExpression")},Y.parseTemplateElement=function(e){var t=e.isTagged,n=this.startNode();return this.type===L.invalidTemplate?(t||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),n.value={raw:this.value,cooked:null}):n.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),n.tail=this.type===L.backQuote,this.finishNode(n,"TemplateElement")},Y.parseTemplate=function(e){void 0===e&&(e={});var t=e.isTagged;void 0===t&&(t=!1);var n=this.startNode();this.next(),n.expressions=[];var r=this.parseTemplateElement({isTagged:t});for(n.quasis=[r];!r.tail;)this.expect(L.dollarBraceL),n.expressions.push(this.parseExpression()),this.expect(L.braceR),n.quasis.push(r=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(n,"TemplateLiteral")},Y.isAsyncProp=function(e){return!e.computed&&"Identifier"===e.key.type&&"async"===e.key.name&&(this.type===L.name||this.type===L.num||this.type===L.string||this.type===L.bracketL||this.type.keyword)&&!O.test(this.input.slice(this.lastTokEnd,this.start))},Y.parseObj=function(e,t){var n=this.startNode(),r=!0,i={};for(n.properties=[],this.next();!this.eat(L.braceR);){if(r)r=!1;else if(this.expect(L.comma),this.afterTrailingComma(L.braceR))break;var s=this.parseProperty(e,t);this.checkPropClash(s,i),n.properties.push(s)}return this.finishNode(n,e?"ObjectPattern":"ObjectExpression")},Y.parseProperty=function(e,t){var n,r,i,s,o=this.startNode();return this.options.ecmaVersion>=6&&(o.method=!1,o.shorthand=!1,(e||t)&&(i=this.start,s=this.startLoc),e||(n=this.eat(L.star))),this.parsePropertyName(o),!e&&this.options.ecmaVersion>=8&&!n&&this.isAsyncProp(o)?(r=!0,this.parsePropertyName(o,t)):r=!1,this.parsePropertyValue(o,e,n,r,i,s,t),this.finishNode(o,"Property")},Y.parsePropertyValue=function(e,t,n,r,i,s,o){if((n||r)&&this.type===L.colon&&this.unexpected(),this.eat(L.colon))e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,o),e.kind="init";else if(this.options.ecmaVersion>=6&&this.type===L.parenL)t&&this.unexpected(),e.kind="init",e.method=!0,e.value=this.parseMethod(n,r);else if(t||!(this.options.ecmaVersion>=5)||e.computed||"Identifier"!==e.key.type||"get"!==e.key.name&&"set"!==e.key.name||this.type==L.comma||this.type==L.braceR)this.options.ecmaVersion>=6&&!e.computed&&"Identifier"===e.key.type?(this.checkUnreserved(e.key),e.kind="init",t?e.value=this.parseMaybeDefault(i,s,e.key):this.type===L.eq&&o?(o.shorthandAssign<0&&(o.shorthandAssign=this.start),e.value=this.parseMaybeDefault(i,s,e.key)):e.value=e.key,e.shorthand=!0):this.unexpected();else{(n||r)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),e.value=this.parseMethod(!1);var a="get"===e.kind?0:1;if(e.value.params.length!==a){var u=e.value.start;"get"===e.kind?this.raiseRecoverable(u,"getter should have no params"):this.raiseRecoverable(u,"setter should have exactly one param")}else"set"===e.kind&&"RestElement"===e.value.params[0].type&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params")}},Y.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(L.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(L.bracketR),e.key;e.computed=!1}return e.key=this.type===L.num||this.type===L.string?this.parseExprAtom():this.parseIdent(!0)},Y.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=!1,e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},Y.parseMethod=function(e,t){var n=this.startNode(),r=this.inGenerator,i=this.inAsync,s=this.yieldPos,o=this.awaitPos,a=this.inFunction;return this.initFunction(n),this.options.ecmaVersion>=6&&(n.generator=e),this.options.ecmaVersion>=8&&(n.async=!!t),this.inGenerator=n.generator,this.inAsync=n.async,this.yieldPos=0,this.awaitPos=0,this.inFunction=!0,this.enterFunctionScope(),this.expect(L.parenL),n.params=this.parseBindingList(L.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(n,!1),this.inGenerator=r,this.inAsync=i,this.yieldPos=s,this.awaitPos=o,this.inFunction=a,this.finishNode(n,"FunctionExpression")},Y.parseArrowExpression=function(e,t,n){var r=this.inGenerator,i=this.inAsync,s=this.yieldPos,o=this.awaitPos,a=this.inFunction;return this.enterFunctionScope(),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!n),this.inGenerator=!1,this.inAsync=e.async,this.yieldPos=0,this.awaitPos=0,this.inFunction=!0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0),this.inGenerator=r,this.inAsync=i,this.yieldPos=s,this.awaitPos=o,this.inFunction=a,this.finishNode(e,"ArrowFunctionExpression")},Y.parseFunctionBody=function(e,t){var n=t&&this.type!==L.braceL,r=this.strict,i=!1;if(n)e.body=this.parseMaybeAssign(),e.expression=!0,this.checkParams(e,!1);else{var s=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);r&&!s||(i=this.strictDirective(this.end))&&s&&this.raiseRecoverable(e.start,"Illegal 'use strict' directive in function with non-simple parameter list");var o=this.labels;this.labels=[],i&&(this.strict=!0),this.checkParams(e,!r&&!i&&!t&&this.isSimpleParamList(e.params)),e.body=this.parseBlock(!1),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=o}this.exitFunctionScope(),this.strict&&e.id&&this.checkLVal(e.id,"none"),this.strict=r},Y.isSimpleParamList=function(e){for(var t=0,n=e;t0;)t[n]=arguments[n+1];for(var r=0,i=t;r=1;e--){var t=this.context[e];if("function"===t.token)return t.generator}return!1},ie.updateContext=function(e){var t,n=this.type;n.keyword&&e==L.dot?this.exprAllowed=!1:(t=n.updateContext)?t.call(this,e):this.exprAllowed=n.beforeExpr},L.parenR.updateContext=L.braceR.updateContext=function(){if(1!=this.context.length){var e=this.context.pop();e===re.b_stat&&"function"===this.curContext().token&&(e=this.context.pop()),this.exprAllowed=!e.isExpr}else this.exprAllowed=!0},L.braceL.updateContext=function(e){this.context.push(this.braceIsBlock(e)?re.b_stat:re.b_expr),this.exprAllowed=!0},L.dollarBraceL.updateContext=function(){this.context.push(re.b_tmpl),this.exprAllowed=!0},L.parenL.updateContext=function(e){var t=e===L._if||e===L._for||e===L._with||e===L._while;this.context.push(t?re.p_stat:re.p_expr),this.exprAllowed=!0},L.incDec.updateContext=function(){},L._function.updateContext=L._class.updateContext=function(e){e.beforeExpr&&e!==L.semi&&e!==L._else&&(e!==L.colon&&e!==L.braceL||this.curContext()!==re.b_stat)?this.context.push(re.f_expr):this.context.push(re.f_stat),this.exprAllowed=!1},L.backQuote.updateContext=function(){this.curContext()===re.q_tmpl?this.context.pop():this.context.push(re.q_tmpl),this.exprAllowed=!1},L.star.updateContext=function(e){if(e==L._function){var t=this.context.length-1;this.context[t]===re.f_expr?this.context[t]=re.f_expr_gen:this.context[t]=re.f_gen}this.exprAllowed=!0},L.name.updateContext=function(e){var t=!1;this.options.ecmaVersion>=6&&("of"==this.value&&!this.exprAllowed||"yield"==this.value&&this.inGeneratorContext())&&(t=!0),this.exprAllowed=t};var se=function(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,e.options.locations&&(this.loc=new j(e,e.startLoc,e.endLoc)),e.options.ranges&&(this.range=[e.start,e.end])},oe=V.prototype,ae="object"==typeof Packages&&"[object JavaPackage]"==Object.prototype.toString.call(Packages);oe.next=function(){this.options.onToken&&this.options.onToken(new se(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},oe.getToken=function(){return this.next(),new se(this)},"undefined"!=typeof Symbol&&(oe[Symbol.iterator]=function(){var e=this;return{next:function(){var t=e.getToken();return{done:t.type===L.eof,value:t}}}}),oe.curContext=function(){return this.context[this.context.length-1]},oe.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.start=this.pos,this.options.locations&&(this.startLoc=this.curPosition()),this.pos>=this.input.length?this.finishToken(L.eof):e.override?e.override(this):void this.readToken(this.fullCharCodeAtPos())},oe.readToken=function(e){return n(e,this.options.ecmaVersion>=6)||92===e?this.readWord():this.getTokenFromCode(e)},oe.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);if(e<=55295||e>=57344)return e;return(e<<10)+this.input.charCodeAt(this.pos+1)-56613888},oe.skipBlockComment=function(){var e=this.options.onComment&&this.curPosition(),t=this.pos,n=this.input.indexOf("*/",this.pos+=2);if(-1===n&&this.raise(this.pos-2,"Unterminated comment"),this.pos=n+2,this.options.locations){T.lastIndex=t;for(var r;(r=T.exec(this.input))&&r.index8&&e<14||e>=5760&&N.test(String.fromCharCode(e))))break e;++this.pos}}},oe.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var n=this.type;this.type=e,this.value=t,this.updateContext(n)},oe.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===e&&46===t?(this.pos+=3,this.finishToken(L.ellipsis)):(++this.pos,this.finishToken(L.dot))},oe.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===e?this.finishOp(L.assign,2):this.finishOp(L.slash,1)},oe.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),n=1,r=42===e?L.star:L.modulo;return this.options.ecmaVersion>=7&&42==e&&42===t&&(++n,r=L.starstar,t=this.input.charCodeAt(this.pos+2)),61===t?this.finishOp(L.assign,n+1):this.finishOp(r,n)},oe.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?this.finishOp(124===e?L.logicalOR:L.logicalAND,2):61===t?this.finishOp(L.assign,2):this.finishOp(124===e?L.bitwiseOR:L.bitwiseAND,1)},oe.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(L.assign,2):this.finishOp(L.bitwiseXOR,1)},oe.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?45!=t||this.inModule||62!=this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!O.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(L.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===t?this.finishOp(L.assign,2):this.finishOp(L.plusMin,1)},oe.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),n=1;return t===e?(n=62===e&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+n)?this.finishOp(L.assign,n+1):this.finishOp(L.bitShift,n)):33!=t||60!=e||this.inModule||45!=this.input.charCodeAt(this.pos+2)||45!=this.input.charCodeAt(this.pos+3)?(61===t&&(n=2),this.finishOp(L.relational,n)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},oe.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return 61===t?this.finishOp(L.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===e&&62===t&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(L.arrow)):this.finishOp(61===e?L.eq:L.prefix,1)},oe.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(L.parenL);case 41:return++this.pos,this.finishToken(L.parenR);case 59:return++this.pos,this.finishToken(L.semi);case 44:return++this.pos,this.finishToken(L.comma);case 91:return++this.pos,this.finishToken(L.bracketL);case 93:return++this.pos,this.finishToken(L.bracketR);case 123:return++this.pos,this.finishToken(L.braceL);case 125:return++this.pos,this.finishToken(L.braceR);case 58:return++this.pos,this.finishToken(L.colon);case 63:return++this.pos,this.finishToken(L.question);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(L.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 126:return this.finishOp(L.prefix,1)}this.raise(this.pos,"Unexpected character '"+d(e)+"'")},oe.finishOp=function(e,t){var n=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,n)};var ue=!!f("￿","u");oe.readRegexp=function(){for(var e,t,n=this,r=this.pos;;){n.pos>=n.input.length&&n.raise(r,"Unterminated regular expression");var i=n.input.charAt(n.pos);if(O.test(i)&&n.raise(r,"Unterminated regular expression"),e)e=!1;else{if("["===i)t=!0;else if("]"===i&&t)t=!1;else if("/"===i&&!t)break;e="\\"===i}++n.pos}var s=this.input.slice(r,this.pos);++this.pos;var o=this.readWord1(),a=s,u="";if(o){var c=/^[gim]*$/;this.options.ecmaVersion>=6&&(c=/^[gimuy]*$/),c.test(o)||this.raise(r,"Invalid regular expression flag"),o.indexOf("u")>=0&&(ue?u="u":(a=(a=a.replace(/\\u\{([0-9a-fA-F]+)\}/g,function(e,t,i){return(t=Number("0x"+t))>1114111&&n.raise(r+i+3,"Code point out of bounds"),"x"})).replace(/\\u([a-fA-F0-9]{4})|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"x"),u=u.replace("u","")))}var l=null;return ae||(f(a,u,r,this),l=f(s,o)),this.finishToken(L.regexp,{pattern:s,flags:o,value:l})},oe.readInt=function(e,t){for(var n=this.pos,r=0,i=0,s=null==t?1/0:t;i=97?o-97+10:o>=65?o-65+10:o>=48&&o<=57?o-48:1/0)>=e)break;++this.pos,r=r*e+a}return this.pos===n||null!=t&&this.pos-n!==t?null:r},oe.readRadixNumber=function(e){this.pos+=2;var t=this.readInt(e);return null==t&&this.raise(this.start+2,"Expected number in radix "+e),n(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(L.num,t)},oe.readNumber=function(e){var t=this.pos,r=!1,i=48===this.input.charCodeAt(this.pos);e||null!==this.readInt(10)||this.raise(t,"Invalid number"),i&&this.pos==t+1&&(i=!1);var s=this.input.charCodeAt(this.pos);46!==s||i||(++this.pos,this.readInt(10),r=!0,s=this.input.charCodeAt(this.pos)),69!==s&&101!==s||i||(43!==(s=this.input.charCodeAt(++this.pos))&&45!==s||++this.pos,null===this.readInt(10)&&this.raise(t,"Invalid number"),r=!0),n(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var o,a=this.input.slice(t,this.pos);return r?o=parseFloat(a):i&&1!==a.length?this.strict?this.raise(t,"Invalid number"):o=/[89]/.test(a)?parseInt(a,10):parseInt(a,8):o=parseInt(a,10),this.finishToken(L.num,o)},oe.readCodePoint=function(){var e;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var t=++this.pos;e=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,e>1114111&&this.invalidStringToken(t,"Code point out of bounds")}else e=this.readHexChar(4);return e},oe.readString=function(e){for(var t="",n=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var r=this.input.charCodeAt(this.pos);if(r===e)break;92===r?(t+=this.input.slice(n,this.pos),t+=this.readEscapedChar(!1),n=this.pos):(o(r)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return t+=this.input.slice(n,this.pos++),this.finishToken(L.string,t)};var ce={};oe.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e!==ce)throw e;this.readInvalidTemplateToken()}this.inTemplateElement=!1},oe.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw ce;this.raise(e,t)},oe.readTmplToken=function(){for(var e="",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var n=this.input.charCodeAt(this.pos);if(96===n||36===n&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==L.template&&this.type!==L.invalidTemplate?(e+=this.input.slice(t,this.pos),this.finishToken(L.template,e)):36===n?(this.pos+=2,this.finishToken(L.dollarBraceL)):(++this.pos,this.finishToken(L.backQuote));if(92===n)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(o(n)){switch(e+=this.input.slice(t,this.pos),++this.pos,n){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(n)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}},oe.readInvalidTemplateToken=function(){for(;this.pos=48&&t<=55){var n=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],r=parseInt(n,8);return r>255&&(n=n.slice(0,-1),r=parseInt(n,8)),"0"!==n&&(this.strict||e)&&this.invalidStringToken(this.pos-2,"Octal literal in strict mode"),this.pos+=n.length-1,String.fromCharCode(r)}return String.fromCharCode(t)}},oe.readHexChar=function(e){var t=this.pos,n=this.readInt(16,e);return null===n&&this.invalidStringToken(t,"Bad character escape sequence"),n},oe.readWord1=function(){this.containsEsc=!1;for(var e="",t=!0,i=this.pos,s=this.options.ecmaVersion>=6;this.pos=s)&&a[c](t,n,e),(null==r||t.start==r)&&(null==s||t.end==s)&&o(c,t))throw new i(t,n)}(n,u)}catch(e){if(e instanceof i)return e;throw e}},e.findNodeAround=function(n,r,s,o,a){s=t(s),o||(o=e.base);try{!function e(t,n,a){var u=a||t.type;if(!(t.start>r||t.end=r&&s(u,t))throw new i(t,n);o[u](t,n,e)}}(n,a)}catch(e){if(e instanceof i)return e;throw e}},e.findNodeBefore=function(n,r,s,o,a){s=t(s),o||(o=e.base);var u;return function e(t,n,a){if(!(t.start>r)){var c=a||t.type;t.end<=r&&(!u||u.node.end0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function i(e){return o[e>>18&63]+o[e>>12&63]+o[e>>6&63]+o[63&e]}function s(e,t,n){for(var r,s=[],o=t;o0?c-4:c;var l=0;for(t=0;t>16&255,o[l++]=i>>8&255,o[l++]=255&i;return 2===s?(i=a[e.charCodeAt(t)]<<2|a[e.charCodeAt(t+1)]>>4,o[l++]=255&i):1===s&&(i=a[e.charCodeAt(t)]<<10|a[e.charCodeAt(t+1)]<<4|a[e.charCodeAt(t+2)]>>2,o[l++]=i>>8&255,o[l++]=255&i),o},n.fromByteArray=function(e){for(var t,n=e.length,r=n%3,i="",a=[],u=0,c=n-r;uc?c:u+16383));return 1===r?(t=e[n-1],i+=o[t>>2],i+=o[t<<4&63],i+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],i+=o[t>>10],i+=o[t>>4&63],i+=o[t<<2&63],i+="="),a.push(i),a.join("")};for(var o=[],a=[],u="undefined"!=typeof Uint8Array?Uint8Array:Array,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=0,p=c.length;lB)throw new RangeError("Invalid typed array length");var t=new Uint8Array(e);return t.__proto__=i.prototype,t}function i(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return a(e)}return s(e,t,n)}function s(e,t,n){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return T(e)?function(e,t,n){if(t<0||e.byteLength=B)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+B.toString(16)+" bytes");return 0|e}function l(e,t){if(i.isBuffer(e))return e.length;if(N(e)||T(e))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return _(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return L(e).length;default:if(r)return _(e).length;t=(""+t).toLowerCase(),r=!0}}function p(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if(n>>>=0,t>>>=0,n<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return function(e,t,n){var r=e.length;(!t||t<0)&&(t=0);(!n||n<0||n>r)&&(n=r);for(var i="",s=t;s2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,P(n)&&(n=s?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(s)return-1;n=e.length-1}else if(n<0){if(!s)return-1;n=0}if("string"==typeof t&&(t=i.from(t,r)),i.isBuffer(t))return 0===t.length?-1:d(e,t,n,r,s);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?s?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):d(e,[t],n,r,s);throw new TypeError("val must be string, number or Buffer")}function d(e,t,n,r,i){function s(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}var o=1,a=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,a/=2,u/=2,n/=2}var c;if(i){var l=-1;for(c=n;ca&&(n=a-u),c=n;c>=0;c--){for(var p=!0,h=0;hi&&(r=i):r=i;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");r>s/2&&(r=s/2);for(var o=0;o>8,i=n%256,s.push(i),s.push(r);return s}(t,e.length-n),e,n,r)}function w(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i239?4:s>223?3:s>191?2:1;if(i+a<=n){var u,c,l,p;switch(a){case 1:s<128&&(o=s);break;case 2:128==(192&(u=e[i+1]))&&(p=(31&s)<<6|63&u)>127&&(o=p);break;case 3:u=e[i+1],c=e[i+2],128==(192&u)&&128==(192&c)&&(p=(15&s)<<12|(63&u)<<6|63&c)>2047&&(p<55296||p>57343)&&(o=p);break;case 4:u=e[i+1],c=e[i+2],l=e[i+3],128==(192&u)&&128==(192&c)&&128==(192&l)&&(p=(15&s)<<18|(63&u)<<12|(63&c)<<6|63&l)>65535&&p<1114112&&(o=p)}}null===o?(o=65533,a=1):o>65535&&(o-=65536,r.push(o>>>10&1023|55296),o=56320|1023&o),r.push(o),i+=a}return function(e){var t=e.length;if(t<=R)return String.fromCharCode.apply(String,e);var n="",r=0;for(;rn)throw new RangeError("Trying to access beyond buffer length")}function S(e,t,n,r,s,o){if(!i.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>s||te.length)throw new RangeError("Index out of range")}function k(e,t,n,r,i,s){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function A(e,t,n,r,i){return t=+t,n>>>=0,i||k(e,0,n,4),$.write(e,t,n,r,23,4),n+4}function C(e,t,n,r,i){return t=+t,n>>>=0,i||k(e,0,n,8),$.write(e,t,n,r,52,8),n+8}function _(e,t){t=t||1/0;for(var n,r=e.length,i=null,s=[],o=0;o55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&s.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&s.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;s.push(n)}else if(n<2048){if((t-=2)<0)break;s.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;s.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return s}function L(e){return F.toByteArray(function(e){if((e=e.trim().replace(I,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function O(e,t,n,r){for(var i=0;i=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function T(e){return e instanceof ArrayBuffer||null!=e&&null!=e.constructor&&"ArrayBuffer"===e.constructor.name&&"number"==typeof e.byteLength}function N(e){return"function"==typeof ArrayBuffer.isView&&ArrayBuffer.isView(e)}function P(e){return e!=e}var F=e("base64-js"),$=e("ieee754");n.Buffer=i,n.SlowBuffer=function(e){return+e!=e&&(e=0),i.alloc(+e)},n.INSPECT_MAX_BYTES=50;var B=2147483647;n.kMaxLength=B,(i.TYPED_ARRAY_SUPPORT=function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()}catch(e){return!1}}())||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),"undefined"!=typeof Symbol&&Symbol.species&&i[Symbol.species]===i&&Object.defineProperty(i,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),i.poolSize=8192,i.from=function(e,t,n){return s(e,t,n)},i.prototype.__proto__=Uint8Array.prototype,i.__proto__=Uint8Array,i.alloc=function(e,t,n){return function(e,t,n){return o(e),e<=0?r(e):void 0!==t?"string"==typeof n?r(e).fill(t,n):r(e).fill(t):r(e)}(e,t,n)},i.allocUnsafe=function(e){return a(e)},i.allocUnsafeSlow=function(e){return a(e)},i.isBuffer=function(e){return null!=e&&!0===e._isBuffer},i.compare=function(e,t){if(!i.isBuffer(e)||!i.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,s=0,o=Math.min(n,r);s0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),""},i.prototype.compare=function(e,t,n,r,s){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===s&&(s=this.length),t<0||n>e.length||r<0||s>this.length)throw new RangeError("out of range index");if(r>=s&&t>=n)return 0;if(r>=s)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,s>>>=0,this===e)return 0;for(var o=s-r,a=n-t,u=Math.min(o,a),c=this.slice(r,s),l=e.slice(t,n),p=0;p>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var s=!1;;)switch(r){case"hex":return y(this,e,t,n);case"utf8":case"utf-8":return m(this,e,t,n);case"ascii":return g(this,e,t,n);case"latin1":case"binary":return v(this,e,t,n);case"base64":return b(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,e,t,n);default:if(s)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),s=!0}},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var R=4096;i.prototype.slice=function(e,t){var n=this.length;e=~~e,t=void 0===t?n:~~t,e<0?(e+=n)<0&&(e=0):e>n&&(e=n),t<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||E(e,t,this.length);for(var r=this[e],i=1,s=0;++s>>=0,t>>>=0,n||E(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},i.prototype.readUInt8=function(e,t){return e>>>=0,t||E(e,1,this.length),this[e]},i.prototype.readUInt16LE=function(e,t){return e>>>=0,t||E(e,2,this.length),this[e]|this[e+1]<<8},i.prototype.readUInt16BE=function(e,t){return e>>>=0,t||E(e,2,this.length),this[e]<<8|this[e+1]},i.prototype.readUInt32LE=function(e,t){return e>>>=0,t||E(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},i.prototype.readUInt32BE=function(e,t){return e>>>=0,t||E(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},i.prototype.readIntLE=function(e,t,n){e>>>=0,t>>>=0,n||E(e,t,this.length);for(var r=this[e],i=1,s=0;++s=i&&(r-=Math.pow(2,8*t)),r},i.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||E(e,t,this.length);for(var r=t,i=1,s=this[e+--r];r>0&&(i*=256);)s+=this[e+--r]*i;return i*=128,s>=i&&(s-=Math.pow(2,8*t)),s},i.prototype.readInt8=function(e,t){return e>>>=0,t||E(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},i.prototype.readInt16LE=function(e,t){e>>>=0,t||E(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},i.prototype.readInt16BE=function(e,t){e>>>=0,t||E(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},i.prototype.readInt32LE=function(e,t){return e>>>=0,t||E(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},i.prototype.readInt32BE=function(e,t){return e>>>=0,t||E(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},i.prototype.readFloatLE=function(e,t){return e>>>=0,t||E(e,4,this.length),$.read(this,e,!0,23,4)},i.prototype.readFloatBE=function(e,t){return e>>>=0,t||E(e,4,this.length),$.read(this,e,!1,23,4)},i.prototype.readDoubleLE=function(e,t){return e>>>=0,t||E(e,8,this.length),$.read(this,e,!0,52,8)},i.prototype.readDoubleBE=function(e,t){return e>>>=0,t||E(e,8,this.length),$.read(this,e,!1,52,8)},i.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){S(this,e,t,n,Math.pow(2,8*n)-1,0)}var i=1,s=0;for(this[t]=255&e;++s>>=0,n>>>=0,!r){S(this,e,t,n,Math.pow(2,8*n)-1,0)}var i=n-1,s=1;for(this[t+i]=255&e;--i>=0&&(s*=256);)this[t+i]=e/s&255;return t+n},i.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,1,255,0),this[t]=255&e,t+1},i.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},i.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},i.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},i.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},i.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){var i=Math.pow(2,8*n-1);S(this,e,t,n,i-1,-i)}var s=0,o=1,a=0;for(this[t]=255&e;++s>0)-a&255;return t+n},i.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){var i=Math.pow(2,8*n-1);S(this,e,t,n,i-1,-i)}var s=n-1,o=1,a=0;for(this[t+s]=255&e;--s>=0&&(o*=256);)e<0&&0===a&&0!==this[t+s+1]&&(a=1),this[t+s]=(e/o>>0)-a&255;return t+n},i.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},i.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},i.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},i.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},i.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||S(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},i.prototype.writeFloatLE=function(e,t,n){return A(this,e,t,!0,n)},i.prototype.writeFloatBE=function(e,t,n){return A(this,e,t,!1,n)},i.prototype.writeDoubleLE=function(e,t,n){return C(this,e,t,!0,n)},i.prototype.writeDoubleBE=function(e,t,n){return C(this,e,t,!1,n)},i.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--i)e[i+t]=this[i+n];else if(s<1e3)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var o;if("number"==typeof e)for(o=t;o>1,l=-7,p=n?i-1:0,h=n?-1:1,f=e[t+p];for(p+=h,s=f&(1<<-l)-1,f>>=-l,l+=a;l>0;s=256*s+e[t+p],p+=h,l-=8);for(o=s&(1<<-l)-1,s>>=-l,l+=r;l>0;o=256*o+e[t+p],p+=h,l-=8);if(0===s)s=1-c;else{if(s===u)return o?NaN:1/0*(f?-1:1);o+=Math.pow(2,r),s-=c}return(f?-1:1)*o*Math.pow(2,s-r)},n.write=function(e,t,n,r,i,s){var o,a,u,c=8*s-i-1,l=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:s-1,d=r?1:-1,y=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),(t+=o+p>=1?h/u:h*Math.pow(2,1-p))*u>=2&&(o++,u/=2),o+p>=l?(a=0,o=l):o+p>=1?(a=(t*u-1)*Math.pow(2,i),o+=p):(a=t*Math.pow(2,p-1)*Math.pow(2,i),o=0));i>=8;e[n+f]=255&a,f+=d,a/=256,i-=8);for(o=o<0;e[n+f]=255&o,f+=d,o/=256,c-=8);e[n+f-d]|=128*y}},{}],10:[function(e,t,n){(function(n){function r(){}function i(e){this.covers={},this._ident=i.prototype.version+"_"+Math.random(),this.setOptions(e||{})}var s=e("./lib/parser"),o=e("./lib/arboriculture"),a=e("./lib/output");i.prototype.smCache={},i.prototype.setOptions=function(e){return this.log=!1===e.log?r:e.log||this.log,this.options=function(e){var t={};return e.forEach(function(e){if(e&&"object"==typeof e)for(var n in e)t[n]=e[n]}),t}([this.options,e]),delete this.options.log,this},i.prototype.version=e("./package.json").version,i.prototype.isThenable=function(e){return e&&e instanceof Object&&"function"==typeof e.then},i.prototype.compile=function(e,t,n,s){"object"==typeof n&&void 0===s&&(s=n),s=s||{};for(var o in i.initialCodeGenOpts)o in s||(s[o]=i.initialCodeGenOpts[o]);var a=this.parse(e,t,null,s);return this.asynchronize(a,null,s,this.log||r),this.prettyPrint(a,s),a},i.prototype.parse=function(e,t,n,r){"object"==typeof n&&void 0===r&&(r=n);var i={origCode:e.toString(),filename:t};try{return i.ast=s.parse(i.origCode,r&&r.parser),r.babelTree&&s.treeWalker(i.ast,function(e,t,n){"Literal"===e.type?n[0].replace(o.babelLiteralNode(e.value)):"Property"===e.type&&("ClassBody"===n[0].parent.type?e.type="ClassProperty":e.type="ObjectProperty"),t()}),i}catch(e){if(e instanceof SyntaxError){var a=i.origCode.substr(e.pos-e.loc.column);a=a.split("\n")[0],e.message+=" "+t+" (nodent)\n"+a+"\n"+a.replace(/[\S ]/g,"-").substring(0,e.loc.column)+"^",e.stack=""}throw e}},i.prototype.asynchronize=o.asynchronize,i.prototype.printNode=o.printNode,i.prototype.prettyPrint=function(t,r){var i=t.filename?t.filename.split("/"):["anonymous"],s=i.pop(),o=a(t.ast,r&&r.sourcemap?{map:{startLine:r.mapStartLine||0,file:s+"(original)",sourceMapRoot:i.join("/"),sourceContent:t.origCode}}:null,t.origCode);if(r&&r.sourcemap)try{var u="",c=o.map.toJSON();if(c){var l=e("source-map").SourceMapConsumer;t.sourcemap=c,this.smCache[t.filename]={map:c,smc:new l(c)},u="\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,"+function(e){return(e instanceof n?e:new n(e.toString(),"binary")).toString("base64")}(JSON.stringify(c))+"\n"}t.code=o.code+u}catch(e){t.code=o}else t.code=o;return t},i.prototype.getDefaultCompileOptions=void 0,Object.defineProperty(i.prototype,"Promise",{get:function(){return initOpts.log("Warning: nodent.Promise is deprecated. Use nodent.Thenable instead"),Thenable},enumerable:!1,configurable:!1}),i.initialCodeGenOpts={noRuntime:!1,lazyThenables:!1,es6target:!1,noUseDirective:!1,wrapAwait:null,mapStartLine:0,sourcemap:!0,engine:!1,parser:{sourceType:"script"},$return:"$return",$error:"$error",$arguments:"$args",$asyncspawn:"$asyncspawn",$asyncbind:"$asyncbind",generatedSymbolPrefix:"$",$makeThenable:"$makeThenable"},t.exports=i}).call(this,e("buffer").Buffer)},{"./lib/arboriculture":11,"./lib/output":12,"./lib/parser":13,"./package.json":25,buffer:8,"source-map":24}],11:[function(e,t,n){"use strict";function r(e){if(!e)return"";if(Array.isArray(e))return e.map(r).join("|\n");try{return m(e)}catch(t){return t.message+": "+(e&&e.type)}}function i(e){if(Array.isArray(e))return e.map(function(e){return i(e)});var t={};return Object.keys(e).forEach(function(n){t[n]=e[n]}),t}function s(e,t){e!==t&&(e.__proto__=Object.getPrototypeOf(t),Object.keys(e).forEach(function(t){t in g||delete e[t]}),Object.keys(t).forEach(function(n){n in e||(e[n]=t[n])}))}function o(){}function a(e){return e?(b.node=e,b):{}}function u(e,t,n){if(!e)return null;if(t&&"object"==typeof t){var r=Object.keys(t);return u(e,function(e){return r.every(function(n){return e[n]==t[n]})})}var i,s={};if(Array.isArray(e)){for(var o=0;o0){if(!o)return t(e);delete e.async}return void(!o&&i?t():(e.type="ReturnStatement",e.$mapped=!0,e.argument={type:"CallExpression",callee:k(s,[n]).$error,arguments:[e.argument]}))}return"TryStatement"===e.type?(i++,t(e),void i--):a(e).isFunction?(r++,t(e),void r--):void t(e)}if(r>0){if(!a(e).isAsync)return t(e);delete e.async}return e.$mapped=!0,void(a(e.argument).isUnaryExpression&&"void"===e.argument.operator?e.argument=e.argument.argument:e.argument={type:"CallExpression",callee:k(s,[n]).$return,arguments:e.argument?[e.argument]:[]})},t)}function P(e,t){return Array.isArray(e)?e.map(function(e){return P(e,t)}):(y.treeWalker(e,function(e,t,n){if(t(),"ConditionalExpression"===e.type&&(c(e.alternate)||c(e.consequent))){h(E("condOp"));s(e,_(y.part("if ($0) return $1 ; return $2",[e.test,e.consequent,e.alternate]).body))}},t),e)}function F(e,t){return Array.isArray(e)?e.map(function(e){return F(e,t)}):(y.treeWalker(e,function(e,t,n){if(t(),"LogicalExpression"===e.type&&c(e.right)){var r,i=h(E("logical"+("&&"===e.operator?"And":"Or")));if("||"===e.operator)r="var $0; if (!($0 = $1)) {$0 = $2} return $0";else{if("&&"!==e.operator)throw new Error(v(e)+"Illegal logical operator: "+e.operator);r="var $0; if ($0 = $1) {$0 = $2} return $0"}s(e,_(y.part(r,[i,e.left,e.right]).body))}},t),e)}function $(e,t,n){if("SwitchCase"!==e.type&&a(e).isBlockStatement)for(var r=0;r { $$setMapped: while (q) { if (q.then) "+(1===i?" return void q.then($idTrampoline, $exit); ":" return q.then($idTrampoline, $exit); ")+" try { if (q.pop) if (q.length) return q.pop() ? $idContinuation.call(this) : q; else q = $idStep; else q = q.call(this) } catch (_exception) { return $exit(_exception); } } }))($idIter)":"($idTrampoline = (function (q) { $$setMapped: while (q) { if (q.then) "+(1===i?" return void q.then($idTrampoline, $exit); ":" return q.then($idTrampoline, $exit); ")+" try { if (q.pop) if (q.length) return q.pop() ? $idContinuation.call(this) : q; else q = $idStep; else q = q.call(this) } catch (_exception) { return $exit(_exception); } } }).bind(this))($idIter)",{setMapped:function(e){return e.$mapped=!0,e},idTrampoline:w,exit:P,idIter:E,idContinuation:A,idStep:S}).expr:y.part("(Function.$0.trampoline(this,$1,$2,$3,$5)($4))",[pe.asyncbind,A,S,P,E,b(1===i)]).expr,o.push({type:"ReturnStatement",argument:N}),o.push({$label:e.$label,type:"FunctionDeclaration",id:E,params:[],body:{type:"BlockStatement",body:d}}),f&&o.push({type:"FunctionDeclaration",id:S,params:[],body:{type:"BlockStatement",body:[f,L]}}),!l||"VariableDeclaration"!==l.type||"let"!==l.kind&&"const"!==l.kind?(o.push(v),t[0].replace(o.map(r))):("const"===l.kind&&(l.kind="let"),t[0].replace([{type:"BlockStatement",body:o.map(r)},r(v)]))}}function G(e){if(!a(e).isFunction)throw new Error("Cannot examine non-Function node types for async exits");return u(e.body,function(e){return"Identifier"===e.type&&(e.name===n.$return||e.name===n.$error)||I(e)&&a(e).isAsync},function(e){return!(a(e).isFunction&&(e.$wasAsync||a(e).isAsync))})}function J(t){return y.treeWalker(t,function(t,r,i){var s=x(t);if(r(),s&&a(s).isAsync){if("set"==t.kind){var o=new SyntaxError(v(s)+"method 'async set' cannot be invoked",e.filename,t.start);throw o.pos=t.start,o.loc=t.loc.start,o}s.async=!1;var u=w(s);G(s)||0!==s.body.body.length&&"ReturnStatement"===s.body.body[s.body.body.length-1].type||s.body.body.push({type:"ReturnStatement"});var c=m(S({type:"FunctionExpression",params:[pe.return,pe.error],body:J(N(s.body,i)),$wasAsync:!0},n),n.promises||n.generators||n.engine?null:b(!n.lazyThenables||0));n.promises?s.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:{type:"NewExpression",callee:h("Promise"),arguments:[c]}}]}:s.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:c}]},u&&D(s.body.body,[he])}})}function H(e){return y.treeWalker(e,function(e,t,r){if(t(),a(e).isAsync&&a(e).isFunction){var i;(i=x(r[0].parent))&&a(i).isAsync&&"get"===r[0].parent.kind&&X(r[0].parent.key),delete e.async;var s=w(e),o=S({type:"FunctionExpression",params:[pe.return,pe.error],$wasAsync:!0},n),u=[{self:o}].concat(r);return a(e.body).isBlockStatement?(G(e)||0!==e.body.body.length&&"ReturnStatement"===e.body.body[e.body.body.length-1].type||e.body.body.push({type:"ReturnStatement"}),o.body={type:"BlockStatement",body:e.body.body.map(function(e){return N(e,u)})}):(o.body={type:"BlockStatement",body:[N({type:"ReturnStatement",argument:e.body},u)]},e.expression=!1),o=m(o,n.promises||n.generators||n.engine?null:b(!n.lazyThenables||0)),n.promises&&(o={type:"NewExpression",callee:h("Promise"),arguments:[o]}),o={type:"BlockStatement",body:[{type:"ReturnStatement",loc:e.loc,argument:o}]},s&&D(o.body,[he]),void(e.body=o)}}),e}function Y(e){if(Array.isArray(e))return e.map(Y);var t=0;return y.treeWalker(e,function(e,n,r){if("ThrowStatement"!==e.type&&"ReturnStatement"!==e.type||e.$mapped){if(a(e).isFunction)return t++,n(e),void t--}else if(t>0&&a(e).isAsync)return delete e.async,e.argument={type:"CallExpression",callee:"ThrowStatement"===e.type?pe.error:pe.return,arguments:e.argument?[e.argument]:[]},void(e.type="ReturnStatement");n(e)})}function Q(e,t){if(n.noRuntime)throw new Error("Nodent: 'noRuntime' option only compatible with -promise and -engine modes");return y.part("{ return (function*($return,$error){ $:body }).$asyncspawn(Promise,this) }",{return:pe.return,error:pe.error,asyncspawn:pe.asyncspawn,body:Y(e).concat(t?[{type:"ReturnStatement",argument:pe.return}]:[])}).body[0]}function X(e){e.$asyncgetwarninig||(e.$asyncgetwarninig=!0,d(v(e)+"'async get "+r(e)+"(){...}' is non-standard. See https://github.com/MatAtBread/nodent#differences-from-the-es7-specification"))}function Z(e,t){function r(e,t){y.treeWalker(e,function(n,r,i){n!==e&&a(n).isFunction||(a(n).isAwait?t?(n.$hidden=!0,r()):(delete n.operator,n.delegate=!1,n.type="YieldExpression",r()):r())})}function o(e){var t=n.promises;n.promises=!0,A(e,!0),n.promises=t}function u(e){return"BlockStatement"!==e.body.type&&(e.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:e.body}]}),e}function c(e,n){n.$asyncexitwarninig||(n.$asyncexitwarninig=!0,d(v(e)+"'async "+{ReturnStatement:"return",ThrowStatement:"throw"}[e.type]+"' not possible in "+(t?"engine":"generator")+" mode. Using Promises for function at "+v(n)))}y.treeWalker(e,function(e,n,i){n();var l,p,h;if(a(e).isAsync&&a(e).isFunction){var f;(f=x(i[0].parent))&&a(f).isAsync&&"get"===i[0].parent.kind&&X(i[0].parent.key),(p=G(e))?(c(p,e.body),o(e)):t?"get"!==i[0].parent.kind&&r(e,!0):(delete(l=e).async,h=w(l),r(l,!1),(l=u(l)).body=Q(l.body.body,p),h&&D(l.body.body,[he]),l.id&&"ExpressionStatement"===i[0].parent.type?(l.type="FunctionDeclaration",i[1].replace(l)):i[0].replace(l))}else(l=x(e))&&a(l).isAsync&&((p=G(l))?(c(p,l),o(e)):t&&"get"!==e.kind||(t?o(e):(e.async=!1,h=w(l),r(l,!1),s(l,u(l)),l.body=Q(l.body.body,p)),h&&D(l.body.body,[he])))});var l=i(n);return n.engine=!1,n.generators=!1,ie(e),ne(e),j(e,l.engine),F(e),P(e),V(e,[M,W,B,R,$]),q(e,"warn"),n.engine=l.engine,n.generators=l.generators,e}function K(e,t,n){var r=[];return y.treeWalker(e,function(i,s,o){if(i===e)return s();t(i,o)?r.push([].concat(o)):n||a(i).isScope||s()}),r}function ee(e,t){var n=[],r={};if((e=e.filter(function(e){return"ExportNamedDeclaration"!==e[0].parent.type})).length){var s={};e.forEach(function(e){function t(e){e in s?r[e]=o.declarations[u]:s[e]=o.declarations[u]}for(var n=e[0],o=n.self,a=(o.kind,[]),u=0;u1?{type:"SequenceExpression",expressions:a}:a[0];"For"!==n.parent.type.slice(0,3)&&(p={type:"ExpressionStatement",expression:p}),n.replace(p)}});var o=Object.keys(s);o.length&&(o=o.map(function(e){return{type:"VariableDeclarator",id:h(e),loc:s[e].loc,start:s[e].start,end:s[e].end}}),n[0]&&"VariableDeclaration"===n[0].type?n[0].declarations=n[0].declarations.concat(o):n.unshift({type:"VariableDeclaration",kind:t,declarations:o}))}return{decls:n,duplicates:r}}function te(e){if(!e)return[];if(Array.isArray(e))return e.reduce(function(e,t){return e.concat(te(t.id))},[]);switch(e.type){case"Identifier":return[e.name];case"AssignmentPattern":return te(e.left);case"ArrayPattern":return e.elements.reduce(function(e,t){return e.concat(te(t))},[]);case"ObjectPattern":return e.properties.reduce(function(e,t){return e.concat(te(t))},[]);case"ObjectProperty":case"Property":return te(e.value);case"RestElement":case"RestProperty":return te(e.argument)}}function ne(e){function t(e){return u(e,function(e){return"AssignmentExpression"===e.type})}function n(e){return function(t,n){if("VariableDeclaration"===t.type&&(t.kind=t.kind||"var")&&e.indexOf(t.kind)>=0){var r=n[0];return("left"!=r.field||"ForInStatement"!==r.parent.type&&"ForOfStatement"!==r.parent.type)&&("init"!=r.field||"ForStatement"!==r.parent.type||"const"!==t.kind&&"let"!==t.kind)}}}function o(e,t){return!("FunctionDeclaration"!==e.type||!e.id)&&(a(e).isAsync||!e.$continuation)}var l={TemplateLiteral:function(e){return e.expressions},NewExpression:function(e){return e.arguments},CallExpression:function(e){return e.arguments},SequenceExpression:function(e){return e.expressions},ArrayExpression:function(e){return e.elements},ObjectExpression:function(e){return e.properties.map(function(e){return e.value})}};y.treeWalker(e,function(e,n,r){function o(e){h.length&&(e.argument={type:"SequenceExpression",expressions:h.map(function(e){var t=i(e);return s(e,e.left),t}).concat(e.argument)},h=[])}var u;if(n(),e.type in l&&!e.$hoisted){var p=l[e.type](e),h=[];for(u=0;u0;u--)if(e.declarations[u]&&e.declarations[u].init&&c(e.declarations[u].init)){var f={type:"VariableDeclaration",kind:e.kind,declarations:e.declarations.splice(u)},d=r[0];if(!("index"in d))throw new Error("VariableDeclaration not in a block");d.parent[d.field].splice(d.index+1,0,f)}}),function(e){function t(e){d(v(e)+"Possible assignment to 'const "+r(e)+"'")}function n(e){switch(e.type){case"Identifier":"const"===i[e.name]&&t(e);break;case"ArrayPattern":e.elements.forEach(function(e){"const"===i[e.name]&&t(e)});break;case"ObjectPattern":e.properties.forEach(function(e){"const"===i[e.key.name]&&t(e)})}}var i={};y.treeWalker(e,function(e,t,r){var s=a(e).isBlockStatement;if(s){i=Object.create(i);for(var o=0;o=0&&"ReturnStatement"===r[1].self.type){var s=e.$thisCallName,o=i(ce[s].def.body.body);ce[s].$inlined=!0,a(r[1].self).isJump||o.push({type:"ReturnStatement"}),r[1].replace(o)}});var n=Object.keys(ce).map(function(e){return ce[e].$inlined&&ce[e].def});y.treeWalker(e,function(e,t,r){t(),n.indexOf(e)>=0&&r[0].remove()})}if(!("Program"===e.type&&"module"===e.sourceType||u(e,function(e){return a(e).isES6},!0))){var r=oe(e);!function(e){y.treeWalker(e,function(e,t,n){if("Program"===e.type||"FunctionDeclaration"===e.type||"FunctionExpression"===e.type){var i=r;if(r=r||oe(e)){t();var s="Program"===e.type?e:e.body,o=K(s,function(e,t){if("FunctionDeclaration"===e.type)return t[0].parent!==s});o=o.map(function(e){return e[0].remove()}),[].push.apply(s.body,o)}else t();r=i}else t()})}(e)}return y.treeWalker(e,function(e,t,n){t(),Object.keys(e).filter(function(e){return"$"===e[0]}).forEach(function(t){delete e[t]})}),e}var ce={},le=1,pe={};Object.keys(n).filter(function(e){return"$"===e[0]}).forEach(function(e){pe[e.slice(1)]=h(n[e])});var he=y.part("var $0 = arguments",[pe.arguments]).body[0];return n.engine?(e.ast=re(e.ast,!0),e.ast=Z(e.ast,n.engine),e.ast=se(e.ast),ue(e.ast)):n.generators?(e.ast=re(e.ast),e.ast=Z(e.ast),e.ast=se(e.ast),ue(e.ast)):(e.ast=re(e.ast),A(e.ast)),n.babelTree&&y.treeWalker(e.ast,function(e,t,n){t(),"Literal"===e.type&&s(e,b(e.value))}),e}var y=e("./parser"),m=e("./output"),g={start:!0,end:!0,loc:!0,range:!0},v={getScope:function(){return"FunctionDeclaration"===this.node.type||"FunctionExpression"===this.node.type||"Function"===this.node.type||"ObjectMethod"===this.node.type||"ClassMethod"===this.node.type||"ArrowFunctionExpression"===this.node.type&&"BlockStatement"===this.node.body.type?this.node.body.body:"Program"===this.node.type?this.node.body:null},isScope:function(){return"FunctionDeclaration"===this.node.type||"FunctionExpression"===this.node.type||"Function"===this.node.type||"Program"===this.node.type||"ObjectMethod"===this.node.type||"ClassMethod"===this.node.type||"ArrowFunctionExpression"===this.node.type&&"BlockStatement"===this.node.body.type},isFunction:function(){return"FunctionDeclaration"===this.node.type||"FunctionExpression"===this.node.type||"Function"===this.node.type||"ObjectMethod"===this.node.type||"ClassMethod"===this.node.type||"ArrowFunctionExpression"===this.node.type},isClass:function(){return"ClassDeclaration"===this.node.type||"ClassExpression"===this.node.type},isBlockStatement:function(){return"ClassBody"===this.node.type||"Program"===this.node.type||"BlockStatement"===this.node.type?this.node.body:"SwitchCase"===this.node.type&&this.node.consequent},isExpressionStatement:function(){return"ExpressionStatement"===this.node.type},isLiteral:function(){return"Literal"===this.node.type||"BooleanLiteral"===this.node.type||"RegExpLiteral"===this.node.type||"NumericLiteral"===this.node.type||"StringLiteral"===this.node.type||"NullLiteral"===this.node.type},isDirective:function(){return"ExpressionStatement"===this.node.type&&("StringLiteral"===this.node.expression.type||"Literal"===this.node.expression.type&&"string"==typeof this.node.expression.value)},isUnaryExpression:function(){return"UnaryExpression"===this.node.type},isAwait:function(){return"AwaitExpression"===this.node.type&&!this.node.$hidden},isAsync:function(){return this.node.async},isStatement:function(){return null!==this.node.type.match(/[a-zA-Z]+Declaration/)||null!==this.node.type.match(/[a-zA-Z]+Statement/)},isExpression:function(){return null!==this.node.type.match(/[a-zA-Z]+Expression/)},isLoop:function(){return"ForStatement"===this.node.type||"WhileStatement"===this.node.type||"DoWhileStatement"===this.node.type},isJump:function(){return"ReturnStatement"===this.node.type||"ThrowStatement"===this.node.type||"BreakStatement"===this.node.type||"ContinueStatement"===this.node.type},isES6:function(){switch(this.node.type){case"ExportNamedDeclaration":case"ExportSpecifier":case"ExportDefaultDeclaration":case"ExportAllDeclaration":case"ImportDeclaration":case"ImportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ArrowFunctionExpression":case"ForOfStatement":case"YieldExpression":case"Super":case"RestElement":case"RestProperty":case"SpreadElement":case"TemplateLiteral":case"ClassDeclaration":case"ClassExpression":return!0;case"VariableDeclaration":return this.node.kind&&"var"!==this.node.kind;case"FunctionDeclaration":case"FunctionExpression":return!!this.node.generator}}},b={};Object.keys(v).forEach(function(e){Object.defineProperty(b,e,{get:v[e]})}),t.exports={printNode:r,babelLiteralNode:p,asynchronize:function(e,t,n,r){try{return d(e,0,n,r)}catch(t){if(t instanceof SyntaxError){var i=e.origCode.substr(t.pos-t.loc.column);i=i.split("\n")[0],t.message+=" (nodent)\n"+i+"\n"+i.replace(/[\S ]/g,"-").substring(0,t.loc.column)+"^",t.stack=""}throw t}}}},{"./output":12,"./parser":13}],12:[function(e,t,n){"use strict";function r(e){if("NewExpression"===e.type&&e.arguments&&e.arguments.length)return 19;var t=h[e.type]||h[e.type+e.operator]||h[e.type+e.operator+(e.prefix?"prefix":"")];return void 0!==t?t:20}var i,s,o,a,u,c,l=e("source-map").SourceMapGenerator;if("".repeat)c=function(e,t){return t&&e?e.repeat(t):""};else{var p={};c=function(e,t){if(!t||!e)return"";var n=""+e+t;if(!p[n]){for(var r=[];t--;)r.push(e);p[n]=r.join("")}return p[n]}}var h={ExpressionStatement:-1,Identifier:21,Literal:21,BooleanLiteral:21,RegExpLiteral:21,NumericLiteral:21,StringLiteral:21,NullLiteral:21,ThisExpression:21,SuperExpression:21,ObjectExpression:21,ClassExpression:21,MemberExpression:19,CallExpression:18,NewExpression:18,ArrayExpression:17.5,FunctionExpression:17.5,FunctionDeclaration:17.5,ArrowFunctionExpression:17.5,"UpdateExpression++":17,"UpdateExpression--":17,"UpdateExpression++prefix":16,"UpdateExpression--prefix":16,UnaryExpression:16,AwaitExpression:16,"BinaryExpression**":15,"BinaryExpression*":15,"BinaryExpression/":15,"BinaryExpression%":15,"BinaryExpression+":14,"BinaryExpression-":14,"BinaryExpression<<":13,"BinaryExpression>>":13,"BinaryExpression>>>":13,"BinaryExpression<":12,"BinaryExpression<=":12,"BinaryExpression>":12,"BinaryExpression>=":12,BinaryExpressionin:12,BinaryExpressioninstanceof:12,"BinaryExpression==":11,"BinaryExpression===":11,"BinaryExpression!=":11,"BinaryExpression!==":11,"BinaryExpression&":10,"BinaryExpression^":9,"BinaryExpression|":8,"LogicalExpression&&":7,"LogicalExpression||":6,ConditionalExpression:5,AssignmentPattern:4,AssignmentExpression:4,yield:3,YieldExpression:3,SpreadElement:2,"comma-separated-list":1.5,SequenceExpression:1},f={type:"comma-separated-list"},d={out:function(e,t,n){var r=this[n||e.type];r?r.call(this,e,t):t.write(e,"/*"+e.type+"?*/ "+t.sourceAt(e.start,e.end))},expr:function(e,t,n,i){2===i||r(n)0)for(var r=n.length,i=0;i0){this.out(e[0],t,e[0].type);for(var r=1,i=e.length;r0){t.write(null,s);for(var a=0,u=n.length;a0){this.out(n[0],t,"VariableDeclarator");for(var i=1;i0){for(var s=0;s0)for(var r=0;r ")):(this.formatParameters(e.params,t),t.write(e,"=> ")),"ObjectExpression"===e.body.type||"SequenceExpression"===e.body.type?(t.write(null,"("),this.out(e.body,t,e.body.type),t.write(null,")")):this.out(e.body,t,e.body.type)},ThisExpression:function(e,t){t.write(e,"this")},Super:function(e,t){t.write(e,"super")},RestElement:s=function(e,t){t.write(e,"..."),this.out(e.argument,t,e.argument.type)},SpreadElement:s,YieldExpression:function(e,t){t.write(e,e.delegate?"yield*":"yield"),e.argument&&(t.write(null," "),this.expr(t,e,e.argument))},AwaitExpression:function(e,t){t.write(e,"await "),this.expr(t,e,e.argument)},TemplateLiteral:function(e,t){var n,r=e.quasis,i=e.expressions;t.write(e,"`");for(var s=0,o=i.length;s0)for(var n=e.elements,r=n.length,i=0;;){var s=n[i];if(s&&this.expr(t,f,s),((i+=1)=r)break;t.lineLength()>t.wrapColumn&&t.write(null,t.lineEnd,c(t.indent,t.indentLevel+1))}t.write(null,"]")},ArrayPattern:a,ObjectExpression:function(e,t){var n,r=c(t.indent,t.indentLevel++),i=t.lineEnd,s=r+t.indent;if(t.write(e,"{"),e.properties.length>0){t.write(null,i);for(var o=e.properties,a=o.length,u=0;n=o[u],t.write(null,s),this.out(n,t,"Property"),++ut.wrapColumn&&t.write(null,t.lineEnd,c(t.indent,t.indentLevel+1));t.write(null,i,r,"}")}else t.write(null,"}");t.indentLevel--},Property:function(e,t){e.method||"get"===e.kind||"set"===e.kind?this.MethodDefinition(e,t):(e.shorthand||(e.computed?(t.write(null,"["),this.out(e.key,t,e.key.type),t.write(null,"]")):this.out(e.key,t,e.key.type),t.write(null,": ")),this.expr(t,f,e.value))},ObjectPattern:function(e,t){if(t.write(e,"{"),e.properties.length>0)for(var n=e.properties,r=n.length,i=0;this.out(n[i],t,"Property"),++i0)for(var i=r.length,s=0;s1&&t.write(e," "),this.expr(t,e,e.argument,!0)):(this.expr(t,e,e.argument),t.write(e,e.operator))},UpdateExpression:function(e,t){e.prefix?(t.write(e,e.operator),this.out(e.argument,t,e.argument.type)):(this.out(e.argument,t,e.argument.type),t.write(e,e.operator))},BinaryExpression:o=function(e,t){var n=e.operator;"in"===n&&t.inForInit&&t.write(null,"("),this.expr(t,e,e.left),t.write(e," ",n," "),this.expr(t,e,e.right,"ArrowFunctionExpression"===e.right.type?2:0),"in"===n&&t.inForInit&&t.write(null,")")},LogicalExpression:o,AssignmentExpression:function(e,t){"ObjectPattern"===e.left.type&&t.write(null,"("),this.BinaryExpression(e,t),"ObjectPattern"===e.left.type&&t.write(null,")")},AssignmentPattern:function(e,t){this.expr(t,e,e.left),t.write(e," = "),this.expr(t,e,e.right)},ConditionalExpression:function(e,t){this.expr(t,e,e.test,!0),t.write(e," ? "),this.expr(t,e,e.consequent),t.write(null," : "),this.expr(t,e,e.alternate)},NewExpression:function(e,t){t.write(e,"new "),this.expr(t,e,e.callee,"CallExpression"===e.callee.type||"ObjectExpression"===e.callee.type?2:0),this.argumentList(e,t)},CallExpression:function(e,t){this.expr(t,e,e.callee,"ObjectExpression"===e.callee.type?2:0),this.argumentList(e,t)},MemberExpression:function(e,t){!("ObjectExpression"===e.object.type||e.object.type.match(/Literal$/)&&e.object.raw&&e.object.raw.match(/^[0-9]/))&&("ArrayExpression"===e.object.type||"CallExpression"===e.object.type||"NewExpression"===e.object.type||r(e)<=r(e.object))?this.out(e.object,t,e.object.type):(t.write(null,"("),this.out(e.object,t,e.object.type),t.write(null,")")),e.computed?(t.write(e,"["),this.out(e.property,t,e.property.type),t.write(null,"]")):(t.write(e,"."),this.out(e.property,t,e.property.type))},Identifier:function(e,t){t.write(e,e.name)},Literal:function(e,t){t.write(e,e.raw)},NullLiteral:function(e,t){t.write(e,"null")},BooleanLiteral:function(e,t){t.write(e,JSON.stringify(e.value))},StringLiteral:function(e,t){t.write(e,JSON.stringify(e.value))},RegExpLiteral:function(e,t){t.write(e,e.extra.raw||"/"+e.pattern+"/"+e.flags)},NumericLiteral:function(e,t){t.write(e,JSON.stringify(e.value))}};t.exports=function(e,t,n){var r="",i=[],s=(t=t||{}).map&&new l(t.map);s&&t.map.sourceContent&&s.setSourceContent(t.map.file,t.map.sourceContent);var o="",a=[],u=[],p={inForInit:0,lineLength:function(){return r.length},sourceAt:function(e,t){return n?n.substring(e,t):"/* Omitted Non-standard node */"},write:function(e){o=arguments[arguments.length-1];for(var n=1;n=0&&r({self:i,parent:e,field:u[c],index:!0}):l instanceof Object&&i===l&&r({self:i,parent:e,field:u[c]})}})},n),e}function s(t,n){var r=[],s={ecmaVersion:8,allowHashBang:!0,allowReturnOutsideFunction:!0,allowImportExportEverywhere:!0,locations:!0,onComment:r};if((!n||!n.noNodentExtensions||parseInt(o.version)<4)&&(c||(parseInt(o.version)<4&&console.warn("Nodent: Warning - noNodentExtensions option requires acorn >=v4.x. Extensions installed."),e("acorn-es7-plugin")(o),c=!0),s.plugins=s.plugins||{},s.plugins.asyncawait={asyncExits:!0,awaitAnywhere:!0}),n)for(var a in n)"noNodentExtensions"!==a&&(s[a]=n[a]);var u=o.parse(t,s);return i(u,function(e,t,n){for(t();r.length&&e.loc&&e.loc.start.line>=r[0].loc.start.line&&e.loc.end.line>=r[0].loc.end.line;)e.$comments=e.$comments||[],e.$comments.push(r.shift())}),u}var o=e("acorn"),a=e("acorn/dist/walk").make({AwaitExpression:function(e,t,n){n(e.argument,t,"Expression")},SwitchStatement:function(e,t,n){n(e.discriminant,t,"Expression");for(var r=0;r=0)return t}else{var n=i.toSetString(e);if(s.call(this._set,n))return this._set[n]}throw new Error('"'+e+'" is not in the set.')},r.prototype.at=function(e){if(e>=0&&e>>=5)>0&&(t|=32),n+=r.encode(t)}while(i>0);return n},n.decode=function(e,t,n){var i,s,o=e.length,a=0,u=0;do{if(t>=o)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(s=r.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));i=!!(32&s),a+=(s&=31)<>1;return 1==(1&e)?-t:t}(a),n.rest=t}},{"./base64":16}],16:[function(e,t,n){var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");n.encode=function(e){if(0<=e&&e0?t-u>1?r(u,t,i,s,o,a):a==n.LEAST_UPPER_BOUND?t1?r(e,u,i,s,o,a):a==n.LEAST_UPPER_BOUND?u:e<0?-1:e}n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2,n.search=function(e,t,i,s){if(0===t.length)return-1;var o=r(-1,t.length,e,t,i,s||n.GREATEST_LOWER_BOUND);if(o<0)return-1;for(;o-1>=0&&0===i(t[o],t[o-1],!0);)--o;return o}},{}],18:[function(e,t,n){function r(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var i=e("./util");r.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},r.prototype.add=function(e){!function(e,t){var n=e.generatedLine,r=t.generatedLine,s=e.generatedColumn,o=t.generatedColumn;return r>n||r==n&&o>=s||i.compareByGeneratedPositionsInflated(e,t)<=0}(this._last,e)?(this._sorted=!1,this._array.push(e)):(this._last=e,this._array.push(e))},r.prototype.toArray=function(){return this._sorted||(this._array.sort(i.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},n.MappingList=r},{"./util":23}],19:[function(e,t,n){function r(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function i(e,t,n,s){if(n=0){var s=this._originalMappings[i];if(void 0===e.column)for(var o=s.originalLine;s&&s.originalLine===o;)r.push({line:a.getArg(s,"generatedLine",null),column:a.getArg(s,"generatedColumn",null),lastColumn:a.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i];else for(var c=s.originalColumn;s&&s.originalLine===t&&s.originalColumn==c;)r.push({line:a.getArg(s,"generatedLine",null),column:a.getArg(s,"generatedColumn",null),lastColumn:a.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i]}return r},n.SourceMapConsumer=r,(i.prototype=Object.create(r.prototype)).consumer=r,i.fromSourceMap=function(e){var t=Object.create(i.prototype),n=t._names=c.fromArray(e._names.toArray(),!0),r=t._sources=c.fromArray(e._sources.toArray(),!0);t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file;for(var o=e._mappings.toArray().slice(),u=t.__generatedMappings=[],l=t.__originalMappings=[],h=0,f=o.length;h1&&(n.source=y+i[1],y+=i[1],n.originalLine=f+i[2],f=n.originalLine,n.originalLine+=1,n.originalColumn=d+i[3],d=n.originalColumn,i.length>4&&(n.name=m+i[4],m+=i[4])),E.push(n),"number"==typeof n.originalLine&&w.push(n)}p(E,a.compareByGeneratedPositionsDeflated),this.__generatedMappings=E,p(w,a.compareByOriginalPositions),this.__originalMappings=w},i.prototype._findMapping=function(e,t,n,r,i,s){if(e[n]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[n]);if(e[r]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[r]);return u.search(e,t,i,s)},i.prototype.computeColumnSpans=function(){for(var e=0;e=0){var i=this._generatedMappings[n];if(i.generatedLine===t.generatedLine){var s=a.getArg(i,"source",null);null!==s&&(s=this._sources.at(s),null!=this.sourceRoot&&(s=a.join(this.sourceRoot,s)));var o=a.getArg(i,"name",null);return null!==o&&(o=this._names.at(o)),{source:s,line:a.getArg(i,"originalLine",null),column:a.getArg(i,"originalColumn",null),name:o}}}return{source:null,line:null,column:null,name:null}},i.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return null==e}))},i.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=a.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var n;if(null!=this.sourceRoot&&(n=a.urlParse(this.sourceRoot))){var r=e.replace(/^file:\/\//,"");if("file"==n.scheme&&this._sources.has(r))return this.sourcesContent[this._sources.indexOf(r)];if((!n.path||"/"==n.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},i.prototype.generatedPositionFor=function(e){var t=a.getArg(e,"source");if(null!=this.sourceRoot&&(t=a.relative(this.sourceRoot,t)),!this._sources.has(t))return{line:null,column:null,lastColumn:null};var n={source:t=this._sources.indexOf(t),originalLine:a.getArg(e,"line"),originalColumn:a.getArg(e,"column")},i=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",a.compareByOriginalPositions,a.getArg(e,"bias",r.GREATEST_LOWER_BOUND));if(i>=0){var s=this._originalMappings[i];if(s.source===n.source)return{line:a.getArg(s,"generatedLine",null),column:a.getArg(s,"generatedColumn",null),lastColumn:a.getArg(s,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},n.BasicSourceMapConsumer=i,(o.prototype=Object.create(r.prototype)).constructor=r,o.prototype._version=3,Object.defineProperty(o.prototype,"sources",{get:function(){for(var e=[],t=0;t0&&e.column>=0)||t||n||r)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:t,name:r}))},r.prototype._serializeMappings=function(){for(var e,t,n,r,o=0,a=1,u=0,c=0,l=0,p=0,h="",f=this._mappings.toArray(),d=0,y=f.length;d0){if(!s.compareByGeneratedPositionsInflated(t,f[d-1]))continue;e+=","}e+=i.encode(t.generatedColumn-o),o=t.generatedColumn,null!=t.source&&(r=this._sources.indexOf(t.source),e+=i.encode(r-p),p=r,e+=i.encode(t.originalLine-1-c),c=t.originalLine-1,e+=i.encode(t.originalColumn-u),u=t.originalColumn,null!=t.name&&(n=this._names.indexOf(t.name),e+=i.encode(n-l),l=n)),h+=e}return h},r.prototype._generateSourcesContent=function(e,t){return e.map(function(e){if(!this._sourcesContents)return null;null!=t&&(e=s.relative(t,e));var n=s.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null},this)},r.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},r.prototype.toString=function(){return JSON.stringify(this.toJSON())},n.SourceMapGenerator=r},{"./array-set":14,"./base64-vlq":15,"./mapping-list":18,"./util":23}],22:[function(e,t,n){function r(e,t,n,r,i){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==n?null:n,this.name=null==i?null:i,this[a]=!0,null!=r&&this.add(r)}var i=e("./source-map-generator").SourceMapGenerator,s=e("./util"),o=/(\r?\n)/,a="$$$isSourceNode$$$";r.fromStringWithSourceMap=function(e,t,n){function i(e,t){if(null===e||void 0===e.source)a.add(t);else{var i=n?s.join(n,e.source):e.source;a.add(new r(e.originalLine,e.originalColumn,i,t,e.name))}}var a=new r,u=e.split(o),c=0,l=function(){function e(){return c=0;t--)this.prepend(e[t]);else{if(!e[a]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},r.prototype.walk=function(e){for(var t,n=0,r=this.children.length;n0){for(t=[],n=0;n=0;l--)"."===(o=u[l])?u.splice(l,1):".."===o?c++:c>0&&(""===o?(u.splice(l+1,c),c=0):(u.splice(l,2),c--));return""===(t=u.join("/"))&&(t=a?"/":"."),s?(s.path=t,i(s)):t}function o(e){return e}function a(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var n=t-10;n>=0;n--)if(36!==e.charCodeAt(n))return!1;return!0}function u(e,t){return e===t?0:e>t?1:-1}n.getArg=function(e,t,n){if(t in e)return e[t];if(3===arguments.length)return n;throw new Error('"'+t+'" is a required argument.')};var c=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,l=/^data:.+\,.+$/;n.urlParse=r,n.urlGenerate=i,n.normalize=s,n.join=function(e,t){""===e&&(e="."),""===t&&(t=".");var n=r(t),o=r(e);if(o&&(e=o.path||"/"),n&&!n.scheme)return o&&(n.scheme=o.scheme),i(n);if(n||t.match(l))return t;if(o&&!o.host&&!o.path)return o.host=t,i(o);var a="/"===t.charAt(0)?t:s(e.replace(/\/+$/,"")+"/"+t);return o?(o.path=a,i(o)):a},n.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(c)},n.relative=function(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var n=0;0!==t.indexOf(e+"/");){var r=e.lastIndexOf("/");if(r<0)return t;if((e=e.slice(0,r)).match(/^([^\/]+:\/)?\/*$/))return t;++n}return Array(n+1).join("../")+t.substr(e.length+1)};var p=!("__proto__"in Object.create(null));n.toSetString=p?o:function(e){return a(e)?"$"+e:e},n.fromSetString=p?o:function(e){return a(e)?e.slice(1):e},n.compareByOriginalPositions=function(e,t,n){var r=e.source-t.source;return 0!==r?r:0!=(r=e.originalLine-t.originalLine)?r:0!=(r=e.originalColumn-t.originalColumn)||n?r:0!=(r=e.generatedColumn-t.generatedColumn)?r:0!=(r=e.generatedLine-t.generatedLine)?r:e.name-t.name},n.compareByGeneratedPositionsDeflated=function(e,t,n){var r=e.generatedLine-t.generatedLine;return 0!==r?r:0!=(r=e.generatedColumn-t.generatedColumn)||n?r:0!=(r=e.source-t.source)?r:0!=(r=e.originalLine-t.originalLine)?r:0!=(r=e.originalColumn-t.originalColumn)?r:e.name-t.name},n.compareByGeneratedPositionsInflated=function(e,t){var n=e.generatedLine-t.generatedLine;return 0!==n?n:0!=(n=e.generatedColumn-t.generatedColumn)?n:0!==(n=u(e.source,t.source))?n:0!=(n=e.originalLine-t.originalLine)?n:0!=(n=e.originalColumn-t.originalColumn)?n:u(e.name,t.name)}},{}],24:[function(e,t,n){n.SourceMapGenerator=e("./lib/source-map-generator").SourceMapGenerator,n.SourceMapConsumer=e("./lib/source-map-consumer").SourceMapConsumer,n.SourceNode=e("./lib/source-node").SourceNode},{"./lib/source-map-consumer":20,"./lib/source-map-generator":21,"./lib/source-node":22}],25:[function(e,t,n){t.exports={_args:[[{raw:"nodent-compiler@>=3.1.5",scope:null,escapedName:"nodent-compiler",name:"nodent-compiler",rawSpec:">=3.1.5",spec:">=3.1.5",type:"range"},"/Users/evgenypoberezkin/Documents/JSON/ajv/node_modules/nodent"]],_from:"nodent-compiler@>=3.1.5",_id:"nodent-compiler@3.1.5",_inCache:!0,_location:"/nodent-compiler",_nodeVersion:"8.9.1",_npmOperationalInternal:{host:"s3://npm-registry-packages",tmp:"tmp/nodent-compiler-3.1.5.tgz_1511792299537_0.15715787676163018"},_npmUser:{name:"matatbread",email:"npm@mailed.me.uk"},_npmVersion:"5.5.1",_phantomChildren:{},_requested:{raw:"nodent-compiler@>=3.1.5",scope:null,escapedName:"nodent-compiler",name:"nodent-compiler",rawSpec:">=3.1.5",spec:">=3.1.5",type:"range"},_requiredBy:["/nodent"],_resolved:"https://registry.npmjs.org/nodent-compiler/-/nodent-compiler-3.1.5.tgz",_shasum:"8c09289eacf7256bda89c2b88941681d5cccf80c",_shrinkwrap:null,_spec:"nodent-compiler@>=3.1.5",_where:"/Users/evgenypoberezkin/Documents/JSON/ajv/node_modules/nodent",author:{name:"Mat At Bread",email:"nodent@mailed.me.uk"},bugs:{url:"https://github.com/MatAtBread/nodent/issues"},dependencies:{acorn:">=2.5.2","acorn-es7-plugin":">=1.1.6","source-map":"^0.5.6"},description:"NoDent - Asynchronous Javascript language extensions",devDependencies:{},directories:{},dist:{integrity:"sha512-Istg796un2lALiy/eFNnLbAEMovQqrtpVqXVY8PKs6ycsyBbK480D55misJBQ1QxvstcJ7Hk9xbSVkV8lIi+tg==",shasum:"8c09289eacf7256bda89c2b88941681d5cccf80c",tarball:"https://registry.npmjs.org/nodent-compiler/-/nodent-compiler-3.1.5.tgz"},engines:"node >= 0.10.0",gitHead:"93054f019902e2b107e7be681836273f35a02614",homepage:"https://github.com/MatAtBread/nodent-compiler#readme",keywords:["Javascript","ES7","async","await","language","extensions","Node","callback","generator","Promise","asynchronous"],license:"BSD-2-Clause",main:"compiler.js",maintainers:[{name:"matatbread",email:"npm@mailed.me.uk"}],name:"nodent-compiler",optionalDependencies:{},readme:"ERROR: No README data found!",repository:{type:"git",url:"git+https://github.com/MatAtBread/nodent-compiler.git"},scripts:{test:"node tests/basic.js # Please install 'nodent' and test the compiler fully from there."},version:"3.1.5"}},{}],26:[function(e,t,n){"use strict";function r(e,t){if(Function.prototype.$asyncspawn||Object.defineProperty(Function.prototype,"$asyncspawn",{value:r,enumerable:!1,configurable:!0,writable:!0}),this instanceof Function){var n=this;return new e(function(e,r){function i(t,n){var o;try{if((o=t.call(s,n)).done){if(o.value!==e){if(o.value&&o.value===o.value.then)return o.value(e,r);e&&e(o.value),e=null}return}o.value.then?o.value.then(function(e){i(s.next,e)},function(e){i(s.throw,e)}):i(s.next,o.value)}catch(e){return r&&r(e),void(r=null)}}var s=n.call(t,e,r);i(s.next)})}}var i=function(e,t){for(var n=t.toString(),r="return "+n,i=n.match(/.*\(([^)]*)\)/)[1],s=/['"]!!!([^'"]*)['"]/g,o=[];;){var a=s.exec(r);if(!a)break;o.push(a)}return o.reverse().forEach(function(t){r=r.slice(0,t.index)+e[t[1]]+r.substr(t.index+t[0].length)}),r=r.replace(/\/\*[^*]*\*\//g," ").replace(/\s+/g," "),new Function(i,r)()}({zousan:e("./zousan").toString(),thenable:e("./thenableFactory").toString()},function e(t,n){function r(){return i.apply(t,arguments)}Function.prototype.$asyncbind||Object.defineProperty(Function.prototype,"$asyncbind",{value:e,enumerable:!1,configurable:!0,writable:!0}),e.trampoline||(e.trampoline=function(e,t,n,r,i){return function s(o){for(;o;){if(o.then)return o=o.then(s,r),i?void 0:o;try{if(o.pop){if(o.length)return o.pop()?t.call(e):o;o=n}else o=o.call(e)}catch(e){return r(e)}}}}),e.LazyThenable||(e.LazyThenable="!!!thenable"(),e.EagerThenable=e.Thenable=(e.EagerThenableFactory="!!!zousan")());var i=this;switch(n){case!0:return new e.Thenable(r);case 0:return new e.LazyThenable(r);case void 0:return r.then=r,r;default:return function(){try{return i.apply(t,arguments)}catch(e){return n(e)}}}});i(),r(),t.exports={$asyncbind:i,$asyncspawn:r}},{"./thenableFactory":27,"./zousan":28}],27:[function(e,t,n){t.exports=function(){function e(e){return e&&e instanceof Object&&"function"==typeof e.then}function t(n,r,i){try{var s=i?i(r):r;if(n===s)return n.reject(new TypeError("Promise resolution loop"));e(s)?s.then(function(e){t(n,e)},function(e){n.reject(e)}):n.resolve(s)}catch(e){n.reject(e)}}function n(){}function r(e){}function i(r,i){var s=new n;try{this._resolver(function(n){return e(n)?n.then(r,i):t(s,n,r)},function(e){t(s,e,i)})}catch(e){t(s,e,i)}return s}function s(e){this._resolver=e,this.then=i}return n.prototype={resolve:r,reject:r,then:function(e,t){this.resolve=e,this.reject=t}},s.resolve=function(e){return s.isThenable(e)?e:{then:function(t){return t(e)}}},s.isThenable=e,s}},{}],28:[function(e,t,n){(function(e){"use strict";t.exports=function(t){function n(e){if(e){var t=this;e(function(e){t.resolve(e)},function(e){t.reject(e)})}}function r(e,t){if("function"==typeof e.y)try{var n=e.y.call(void 0,t);e.p.resolve(n)}catch(t){e.p.reject(t)}else e.p.resolve(t)}function i(e,t){if("function"==typeof e.n)try{var n=e.n.call(void 0,t);e.p.resolve(n)}catch(t){e.p.reject(t)}else e.p.reject(t)}t=t||"object"==typeof e&&e.nextTick||"function"==typeof setImmediate&&setImmediate||function(e){setTimeout(e,0)};var s=function(){function e(){for(;n.length-r;){try{n[r]()}catch(e){}n[r++]=void 0,r===i&&(n.splice(0,i),r=0)}}var n=[],r=0,i=1024;return function(i){n.push(i),n.length-r==1&&t(e)}}();return n.prototype={resolve:function(e){if(void 0===this.state){if(e===this)return this.reject(new TypeError("Attempt to resolve promise with self"));var t=this;if(e&&("function"==typeof e||"object"==typeof e))try{var n=0,i=e.then;if("function"==typeof i)return void i.call(e,function(e){n++||t.resolve(e)},function(e){n++||t.reject(e)})}catch(e){return void(n||this.reject(e))}this.state=r,this.v=e,t.c&&s(function(){for(var n=0,i=t.c.length;n]*>)(.*)/i,/(.*)(<\/script>)(.*)/i],o=0,a=!0;t=t.split("\n");for(var u=0;u=0;r--){var i=e[r];"."===i?e.splice(r,1):".."===i?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r=-1&&!i;s--){var o=s>=0?arguments[s]:e.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");o&&(n=o+"/"+n,i="/"===o.charAt(0))}return n=t(r(n.split("/"),function(e){return!!e}),!i).join("/"),(i?"/":"")+n||"."},n.normalize=function(e){var i=n.isAbsolute(e),s="/"===o(e,-1);return(e=t(r(e.split("/"),function(e){return!!e}),!i).join("/"))||i||(e="."),e&&s&&(e+="/"),(i?"/":"")+e},n.isAbsolute=function(e){return"/"===e.charAt(0)},n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(r(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},n.relative=function(e,t){function r(e){for(var t=0;t=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=n.resolve(e).substr(1),t=n.resolve(t).substr(1);for(var i=r(e.split("/")),s=r(t.split("/")),o=Math.min(i.length,s.length),a=o,u=0;u1)for(var n=1;n= 8.8",https:!0,_http_server:">= 0.11",_linklist:"< 8",module:!0,net:!0,os:!0,path:!0,perf_hooks:">= 8.5",process:">= 1",punycode:!0,querystring:!0,readline:!0,repl:!0,stream:!0,string_decoder:!0,sys:!0,timers:!0,tls:!0,tty:!0,url:!0,util:!0,v8:">= 1",vm:!0,zlib:!0}},{}],37:[function(e,t,n){(function(n){function r(e){if(!0===e)return!0;for(var t=e.split(" "),n=t[0],r=t[1].split("."),s=0;s<3;++s){var o=Number(i[s]||0),a=Number(r[s]||0);if(o!==a)return"<"===n?o="===n&&o>=a}return!1}var i=n.versions&&n.versions.node&&n.versions.node.split(".")||[],s=e("./core.json"),o={};for(var a in s)Object.prototype.hasOwnProperty.call(s,a)&&(o[a]=r(s[a]));t.exports=o}).call(this,e("_process"))},{"./core.json":36,_process:32}],38:[function(e,t,n){var r=e("path"),i=e("fs"),s=r.parse||e("path-parse");t.exports=function(e,t){var n=t&&t.moduleDirectory?[].concat(t.moduleDirectory):["node_modules"],o=r.resolve(e);if(t&&!1===t.preserveSymlinks)try{o=i.realpathSync(o)}catch(e){if("ENOENT"!==e.code)throw e}var a="/";/^([A-Za-z]:)/.test(o)?a="":/^\\\\/.test(o)&&(a="\\\\");for(var u=[o],c=s(o);c.dir!==u[u.length-1];)u.push(c.dir),c=s(c.dir);var l=u.reduce(function(e,t){return e.concat(n.map(function(e){return r.join(a,t,e)}))},[]);return t&&t.paths?l.concat(t.paths):l}},{fs:7,path:30,"path-parse":31}],39:[function(e,t,n){var r=e("./core"),i=e("fs"),s=e("path"),o=e("./caller.js"),a=e("./node-modules-paths.js");t.exports=function(e,t){function n(e){if(l(e))return e;for(var t=0;t"))}return Object.keys(hostOptions).forEach(function(k){"host"===parseOpts[k]&&(parseOpts[k]=function(){try{return eval(hostOptions[k]),!0}catch(e){return!1}}())}),parseOpts.promises||parseOpts.es7||parseOpts.generators||parseOpts.engine?((parseOpts.promises||parseOpts.es7)&&parseOpts.generators&&(log("No valid 'use nodent' directive, assumed -es7 mode"),parseOpts=optionSets.es7),(parseOpts.generators||parseOpts.engine)&&(parseOpts.promises=!0),parseOpts.promises&&(parseOpts.es7=!0),parseOpts):null}function stripBOM(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),"#!"===e.substring(0,2)&&(e="//"+e),e}function compileNodentedFile(e,t){return t=t||e.log,function(n,r,i){var s=stripBOM(fs.readFileSync(r,"utf8")),o=e.parse(s,r,i);i=i||parseCompilerOptions(o.ast,t,r),e.asynchronize(o,void 0,i,t),e.prettyPrint(o,i),n._compile(o.code,o.filename)}}function asyncify(e){return e=e||Thenable,function(t,n,r){if(Array.isArray(n)){var i=n;n=function(e,t){return i.indexOf(e)>=0}}else n=n||function(e,t){return!(e.match(/Sync$/)&&e.replace(/Sync$/,"")in t)};r||(r="");var s=Object.create(t);for(var o in s)!function(){var i=o;try{"function"!=typeof t[i]||s[i+r]&&s[i+r].isAsync||!n(i,s)||(s[i+r]=function(){var n=Array.prototype.slice.call(arguments);return new e(function(e,r){var s=function(t,n){if(t)return r(t);switch(arguments.length){case 0:return e();case 2:return e(n);default:return e(Array.prototype.slice.call(arguments,1))}};n.length>t[i].length?n.push(s):n[t[i].length-1]=s;t[i].apply(t,n)})},s[i+r].isAsync=!0)}catch(e){}}();return s.super=t,s}}function generateRequestHandler(e,t,n){var r={},i=this;t||(t=/\.njs$/),n?n.compiler||(n.compiler={}):n={compiler:{}};var s=copyObj([NodentCompiler.initialCodeGenOpts,n.compiler]);return function(o,a,u){function c(e){a.statusCode=500,a.write(e.toString()),a.end()}if(r[o.url])return a.setHeader("Content-Type",r[o.url].contentType),n.setHeaders&&n.setHeaders(a),a.write(r[o.url].output),void a.end();if(!(o.url.match(t)||n.htmlScriptRegex&&o.url.match(n.htmlScriptRegex)))return u&&u();var l=e+o.url;if(n.extensions&&!fs.existsSync(l))for(var p=0;p=0?this.covers[n]=require(e):this.covers[n]=require(__dirname+"/covers/"+e)),this.covers[n](this,t)}function prepareMappedStackTrace(e,t){return e+t.map(function(e){var t=e.getFileName();if(t&&NodentCompiler.prototype.smCache[t]){var n=NodentCompiler.prototype.smCache[t].smc.originalPositionFor({line:e.getLineNumber(),column:e.getColumnNumber()});if(n&&n.line){var r=e.toString();return"\n at "+r.substring(0,r.length-1)+" => …"+n.source+":"+n.line+":"+n.column+(e.getFunctionName()?")":"")}}return"\n at "+e}).join("")}function setGlobalEnvironment(e){var t={};t[defaultCodeGenOpts.$asyncbind]={value:$asyncbind,writable:!0,enumerable:!1,configurable:!0},t[defaultCodeGenOpts.$asyncspawn]={value:$asyncspawn,writable:!0,enumerable:!1,configurable:!0};try{Object.defineProperties(Function.prototype,t)}catch(t){e.log("Function prototypes already assigned: ",t.messsage)}defaultCodeGenOpts[defaultCodeGenOpts.$error]in global||(global[defaultCodeGenOpts[defaultCodeGenOpts.$error]]=globalErrorHandler),e.augmentObject&&Object.defineProperties(Object.prototype,{asyncify:{value:function(e,t,n){return asyncify(e)(this,t,n)},writable:!0,configurable:!0},isThenable:{value:function(){return Thenable.isThenable(this)},writable:!0,configurable:!0}}),Object[defaultCodeGenOpts.$makeThenable]=Thenable.resolve}function initialize(e){function t(n,r){if(!r.match(/nodent\/nodent\.js$/)){if(r.match(/node_modules\/nodent\/.*\.js$/))return stdJSLoader(n,r);for(var o=0;ot[n])return 1}return 0}(u.version,NodentCompiler.prototype.version)<0&&(u.originalNodentLoader=n.exports,n.exports=function(){var t=require.extensions[".js"],n=u.originalNodentLoader.apply(this,arguments);return u.jsCompiler=require.extensions[".js"],require.extensions[".js"]=t,setGlobalEnvironment(e),n},Object.keys(u.originalNodentLoader).forEach(function(e){n.exports[e]=u.originalNodentLoader[e]}),i.push(u),i=i.sort(function(e,t){return t.path.length-e.path.length})))}function n(t){if(Array.isArray(t))return t.forEach(n);if(require.extensions[t]){Object.keys(e).filter(function(t){return compiler[t]!=e[t]}).length&&e.log("File extension "+t+" already configured for async/await compilation.")}require.extensions[t]=compileNodentedFile(compiler,e.log)}if(e){for(var r in e)if("use"!==r&&!config.hasOwnProperty(r))throw new Error("NoDent: unknown option: "+r+"="+JSON.stringify(e[r]))}else e={};compiler?compiler.setOptions(e):(Object.keys(config).forEach(function(t){t in e||(e[t]=config[t])}),compiler=new NodentCompiler(e)),e.dontMapStackTraces||(Error.prepareStackTrace=prepareMappedStackTrace),setGlobalEnvironment(e);var i=[];if(!e.dontInstallRequireHook){if(!stdJSLoader){stdJSLoader=require.extensions[".js"];var s=compileNodentedFile(compiler,e.log);require.extensions[".js"]=t}e.extension&&n(e.extension)}return e.use&&(Array.isArray(e.use)?(e.log("Warning: nodent({use:[...]}) is deprecated. Use nodent.require(module,options)\n"+(new Error).stack.split("\n")[2]),e.use.length&&e.use.forEach(function(e){compiler[e]=compiler.require(e)})):(e.log("Warning: nodent({use:{...}}) is deprecated. Use nodent.require(module,options)\n"+(new Error).stack.split("\n")[2]),Object.keys(e.use).forEach(function(t){compiler[t]=compiler.require(t,e.use[t])}))),compiler}function runFromCLI(){function e(e,n){try{var s,o;if(r.fromast){if(e=JSON.parse(e),s={origCode:"",filename:t,ast:e},!(o=parseCompilerOptions(e,i.log))){var a=r.use?'"use nodent-'+r.use+'";':'"use nodent";';o=parseCompilerOptions(a,i.log),console.warn("/* "+t+": No 'use nodent*' directive, assumed "+a+" */")}}else(o=parseCompilerOptions(r.use?'"use nodent-'+r.use+'";':e,i.log))||(o=parseCompilerOptions('"use nodent";',i.log),r.dest||console.warn("/* "+t+": 'use nodent*' directive missing/ignored, assumed 'use nodent;' */")),s=i.parse(e,t,o);if(r.parseast||r.pretty||i.asynchronize(s,void 0,o,i.log),i.prettyPrint(s,o),r.out||r.pretty||r.dest){if(r.dest&&!n)throw new Error("Can't write unknown file to "+r.dest);var u="";r.runtime&&(u+="Function.prototype.$asyncbind = "+Function.prototype.$asyncbind.toString()+";\n",u+="global.$error = global.$error || "+global.$error.toString()+";\n"),u+=s.code,n&&r.dest?(fs.writeFileSync(r.dest+n,u),console.log("Compiled",r.dest+n)):console.log(u)}(r.minast||r.parseast)&&console.log(JSON.stringify(s.ast,function(e,t){return"$"===e[0]||e.match(/^(start|end|loc)$/)?void 0:t},2,null)),r.ast&&console.log(JSON.stringify(s.ast,function(e,t){return"$"===e[0]?void 0:t},0)),r.exec&&new Function(s.code)()}catch(e){console.error(e)}}var t,n=require("path"),r=(process.env.NODENT_OPTS&&JSON.parse(process.env.NODENT_OPTS),function(e){for(var t=[],n=e||2;n0",engine:"(async ()=>0)",noRuntime:"Promise"};NodentCompiler.prototype.Thenable=Thenable,NodentCompiler.prototype.EagerThenable=$asyncbind.EagerThenableFactory,NodentCompiler.prototype.asyncify=asyncify,NodentCompiler.prototype.require=requireCover,NodentCompiler.prototype.generateRequestHandler=generateRequestHandler,NodentCompiler.prototype.$asyncspawn=$asyncspawn,NodentCompiler.prototype.$asyncbind=$asyncbind,NodentCompiler.prototype.parseCompilerOptions=parseCompilerOptions,$asyncbind.call($asyncbind);var compiler;initialize.setDefaultCompileOptions=function(e,t){return e&&Object.keys(e).forEach(function(t){if(!(t in defaultCodeGenOpts))throw new Error("NoDent: unknown compiler option: "+t);defaultCodeGenOpts[t]=e[t]}),t&&Object.keys(t).forEach(function(e){if(!(e in t))throw new Error("NoDent: unknown configuration option: "+e);config[e]=t[e]}),initialize},initialize.setCompileOptions=function(e,t){return optionSet[e]=optionSet[e]||copyObj([defaultCodeGenOpts]),t&&Object.keys(t).forEach(function(n){if(!(n in defaultCodeGenOpts))throw new Error("NoDent: unknown compiler option: "+n);optionSet[e][n]=t[n]}),initialize},initialize.asyncify=asyncify,initialize.Thenable=$asyncbind.Thenable,initialize.EagerThenable=$asyncbind.EagerThenableFactory,module.exports=initialize,require.main===module&&process.argv.length>=3&&runFromCLI()}).call(this,require("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},"/node_modules/nodent")},{"./htmlScriptParser":29,_process:32,fs:7,"nodent-compiler":10,"nodent-runtime":26,path:30,resolve:33}]},{},[]); \ No newline at end of file diff --git a/node_modules/ajv/dist/regenerator.min.js b/node_modules/ajv/dist/regenerator.min.js new file mode 100644 index 0000000..ef3b8be --- /dev/null +++ b/node_modules/ajv/dist/regenerator.min.js @@ -0,0 +1,2 @@ +/* regenerator 0.12.2: Source transformer enabling ECMAScript 6 generator functions (yield) in JavaScript-of-today (ES5) */ +require=function e(t,r,n){function i(a,o){if(!r[a]){if(!t[a]){var u="function"==typeof require&&require;if(!o&&u)return u(a,!0);if(s)return s(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var c=r[a]={exports:{}};t[a][0].call(c.exports,function(e){var r=t[a][1][e];return i(r||e)},c,c.exports,e,t,r,n)}return r[a].exports}for(var s="function"==typeof require&&require,a=0;a=0;o--)if(u[o]!==l[o])return!1;for(o=u.length-1;o>=0;o--)if(a=u[o],!h(e[a],t[a],r,n))return!1;return!0}(e,t,r,o))}return r?e===t:e==t}function f(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function d(e,t,r){h(e,t,!0)&&c(e,t,r,"notDeepStrictEqual",d)}function m(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function y(e,t,r,n){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=function(e){var t;try{e()}catch(e){t=e}return t}(t),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),e&&!i&&c(i,r,"Missing expected exception"+n);var s="string"==typeof n,a=!e&&g.isError(i),o=!e&&i&&!r;if((a&&s&&m(i,r)||o)&&c(i,r,"Got unwanted exception"+n),e&&i&&r&&!m(i,r)||!e&&i)throw i}var g=e("util/"),b=Object.prototype.hasOwnProperty,v=Array.prototype.slice,x="foo"===function(){}.name,E=t.exports=p,A=/\s*function\s+([^\(\s]*)\s*/;E.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return u(l(e.actual),128)+" "+e.operator+" "+u(l(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||c;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var r=new Error;if(r.stack){var n=r.stack,i=o(t),s=n.indexOf("\n"+i);if(s>=0){var a=n.indexOf("\n",s+1);n=n.substring(a+1)}this.stack=n}}},g.inherits(E.AssertionError,Error),E.fail=c,E.ok=p,E.equal=function(e,t,r){e!=t&&c(e,t,r,"==",E.equal)},E.notEqual=function(e,t,r){e==t&&c(e,t,r,"!=",E.notEqual)},E.deepEqual=function(e,t,r){h(e,t,!1)||c(e,t,r,"deepEqual",E.deepEqual)},E.deepStrictEqual=function(e,t,r){h(e,t,!0)||c(e,t,r,"deepStrictEqual",E.deepStrictEqual)},E.notDeepEqual=function(e,t,r){h(e,t,!1)&&c(e,t,r,"notDeepEqual",E.notDeepEqual)},E.notDeepStrictEqual=d,E.strictEqual=function(e,t,r){e!==t&&c(e,t,r,"===",E.strictEqual)},E.notStrictEqual=function(e,t,r){e===t&&c(e,t,r,"!==",E.notStrictEqual)},E.throws=function(e,t,r){y(!0,e,t,r)},E.doesNotThrow=function(e,t,r){y(!1,e,t,r)},E.ifError=function(e){if(e)throw e};var D=Object.keys||function(e){var t=[];for(var r in e)b.call(e,r)&&t.push(r);return t}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"util/":613}],2:[function(e,t,r){t.exports=function(t){t.use(e("./es7"));var r=t.use(e("../lib/types")),n=t.use(e("../lib/shared")).defaults,i=r.Type.def,s=r.Type.or;i("Noop").bases("Node").build(),i("DoExpression").bases("Expression").build("body").field("body",[i("Statement")]),i("Super").bases("Expression").build(),i("BindExpression").bases("Expression").build("object","callee").field("object",s(i("Expression"),null)).field("callee",i("Expression")),i("Decorator").bases("Node").build("expression").field("expression",i("Expression")),i("Property").field("decorators",s([i("Decorator")],null),n.null),i("MethodDefinition").field("decorators",s([i("Decorator")],null),n.null),i("MetaProperty").bases("Expression").build("meta","property").field("meta",i("Identifier")).field("property",i("Identifier")),i("ParenthesizedExpression").bases("Expression").build("expression").field("expression",i("Expression")),i("ImportSpecifier").bases("ModuleSpecifier").build("imported","local").field("imported",i("Identifier")),i("ImportDefaultSpecifier").bases("ModuleSpecifier").build("local"),i("ImportNamespaceSpecifier").bases("ModuleSpecifier").build("local"),i("ExportDefaultDeclaration").bases("Declaration").build("declaration").field("declaration",s(i("Declaration"),i("Expression"))),i("ExportNamedDeclaration").bases("Declaration").build("declaration","specifiers","source").field("declaration",s(i("Declaration"),null)).field("specifiers",[i("ExportSpecifier")],n.emptyArray).field("source",s(i("Literal"),null),n.null),i("ExportSpecifier").bases("ModuleSpecifier").build("local","exported").field("exported",i("Identifier")),i("ExportNamespaceSpecifier").bases("Specifier").build("exported").field("exported",i("Identifier")),i("ExportDefaultSpecifier").bases("Specifier").build("exported").field("exported",i("Identifier")),i("ExportAllDeclaration").bases("Declaration").build("exported","source").field("exported",s(i("Identifier"),null)).field("source",i("Literal")),i("CommentBlock").bases("Comment").build("value","leading","trailing"),i("CommentLine").bases("Comment").build("value","leading","trailing")}},{"../lib/shared":18,"../lib/types":19,"./es7":7}],3:[function(e,t,r){t.exports=function(t){t.use(e("./babel")),t.use(e("./flow"));var r=t.use(e("../lib/types")),n=t.use(e("../lib/shared")).defaults,i=r.Type.def,s=r.Type.or;i("Directive").bases("Node").build("value").field("value",i("DirectiveLiteral")),i("DirectiveLiteral").bases("Node","Expression").build("value").field("value",String,n["use strict"]),i("BlockStatement").bases("Statement").build("body").field("body",[i("Statement")]).field("directives",[i("Directive")],n.emptyArray),i("Program").bases("Node").build("body").field("body",[i("Statement")]).field("directives",[i("Directive")],n.emptyArray),i("StringLiteral").bases("Literal").build("value").field("value",String),i("NumericLiteral").bases("Literal").build("value").field("value",Number),i("NullLiteral").bases("Literal").build(),i("BooleanLiteral").bases("Literal").build("value").field("value",Boolean),i("RegExpLiteral").bases("Literal").build("pattern","flags").field("pattern",String).field("flags",String);var a=s(i("Property"),i("ObjectMethod"),i("ObjectProperty"),i("SpreadProperty"));i("ObjectExpression").bases("Expression").build("properties").field("properties",[a]),i("ObjectMethod").bases("Node","Function").build("kind","key","params","body","computed").field("kind",s("method","get","set")).field("key",s(i("Literal"),i("Identifier"),i("Expression"))).field("params",[i("Pattern")]).field("body",i("BlockStatement")).field("computed",Boolean,n.false).field("generator",Boolean,n.false).field("async",Boolean,n.false).field("decorators",s([i("Decorator")],null),n.null),i("ObjectProperty").bases("Node").build("key","value").field("key",s(i("Literal"),i("Identifier"),i("Expression"))).field("value",s(i("Expression"),i("Pattern"))).field("computed",Boolean,n.false);var o=s(i("MethodDefinition"),i("VariableDeclarator"),i("ClassPropertyDefinition"),i("ClassProperty"),i("ClassMethod"));i("ClassBody").bases("Declaration").build("body").field("body",[o]),i("ClassMethod").bases("Declaration","Function").build("kind","key","params","body","computed","static").field("kind",s("get","set","method","constructor")).field("key",s(i("Literal"),i("Identifier"),i("Expression"))).field("params",[i("Pattern")]).field("body",i("BlockStatement")).field("computed",Boolean,n.false).field("static",Boolean,n.false).field("generator",Boolean,n.false).field("async",Boolean,n.false).field("decorators",s([i("Decorator")],null),n.null);var u=s(i("Property"),i("PropertyPattern"),i("SpreadPropertyPattern"),i("SpreadProperty"),i("ObjectProperty"),i("RestProperty"));i("ObjectPattern").bases("Pattern").build("properties").field("properties",[u]).field("decorators",s([i("Decorator")],null),n.null),i("SpreadProperty").bases("Node").build("argument").field("argument",i("Expression")),i("RestProperty").bases("Node").build("argument").field("argument",i("Expression")),i("ForAwaitStatement").bases("Statement").build("left","right","body").field("left",s(i("VariableDeclaration"),i("Expression"))).field("right",i("Expression")).field("body",i("Statement")),i("Import").bases("Expression").build()}},{"../lib/shared":18,"../lib/types":19,"./babel":2,"./flow":9}],4:[function(e,t,r){t.exports=function(t){var r=t.use(e("../lib/types")).Type,n=r.def,i=r.or,s=t.use(e("../lib/shared")),a=s.defaults,o=s.geq;n("Printable").field("loc",i(n("SourceLocation"),null),a.null,!0),n("Node").bases("Printable").field("type",String).field("comments",i([n("Comment")],null),a.null,!0),n("SourceLocation").build("start","end","source").field("start",n("Position")).field("end",n("Position")).field("source",i(String,null),a.null),n("Position").build("line","column").field("line",o(1)).field("column",o(0)),n("File").bases("Node").build("program","name").field("program",n("Program")).field("name",i(String,null),a.null),n("Program").bases("Node").build("body").field("body",[n("Statement")]),n("Function").bases("Node").field("id",i(n("Identifier"),null),a.null).field("params",[n("Pattern")]).field("body",n("BlockStatement")),n("Statement").bases("Node"),n("EmptyStatement").bases("Statement").build(),n("BlockStatement").bases("Statement").build("body").field("body",[n("Statement")]),n("ExpressionStatement").bases("Statement").build("expression").field("expression",n("Expression")),n("IfStatement").bases("Statement").build("test","consequent","alternate").field("test",n("Expression")).field("consequent",n("Statement")).field("alternate",i(n("Statement"),null),a.null),n("LabeledStatement").bases("Statement").build("label","body").field("label",n("Identifier")).field("body",n("Statement")),n("BreakStatement").bases("Statement").build("label").field("label",i(n("Identifier"),null),a.null),n("ContinueStatement").bases("Statement").build("label").field("label",i(n("Identifier"),null),a.null),n("WithStatement").bases("Statement").build("object","body").field("object",n("Expression")).field("body",n("Statement")),n("SwitchStatement").bases("Statement").build("discriminant","cases","lexical").field("discriminant",n("Expression")).field("cases",[n("SwitchCase")]).field("lexical",Boolean,a.false),n("ReturnStatement").bases("Statement").build("argument").field("argument",i(n("Expression"),null)),n("ThrowStatement").bases("Statement").build("argument").field("argument",n("Expression")),n("TryStatement").bases("Statement").build("block","handler","finalizer").field("block",n("BlockStatement")).field("handler",i(n("CatchClause"),null),function(){return this.handlers&&this.handlers[0]||null}).field("handlers",[n("CatchClause")],function(){return this.handler?[this.handler]:[]},!0).field("guardedHandlers",[n("CatchClause")],a.emptyArray).field("finalizer",i(n("BlockStatement"),null),a.null),n("CatchClause").bases("Node").build("param","guard","body").field("param",n("Pattern")).field("guard",i(n("Expression"),null),a.null).field("body",n("BlockStatement")),n("WhileStatement").bases("Statement").build("test","body").field("test",n("Expression")).field("body",n("Statement")),n("DoWhileStatement").bases("Statement").build("body","test").field("body",n("Statement")).field("test",n("Expression")),n("ForStatement").bases("Statement").build("init","test","update","body").field("init",i(n("VariableDeclaration"),n("Expression"),null)).field("test",i(n("Expression"),null)).field("update",i(n("Expression"),null)).field("body",n("Statement")),n("ForInStatement").bases("Statement").build("left","right","body").field("left",i(n("VariableDeclaration"),n("Expression"))).field("right",n("Expression")).field("body",n("Statement")),n("DebuggerStatement").bases("Statement").build(),n("Declaration").bases("Statement"),n("FunctionDeclaration").bases("Function","Declaration").build("id","params","body").field("id",n("Identifier")),n("FunctionExpression").bases("Function","Expression").build("id","params","body"),n("VariableDeclaration").bases("Declaration").build("kind","declarations").field("kind",i("var","let","const")).field("declarations",[n("VariableDeclarator")]),n("VariableDeclarator").bases("Node").build("id","init").field("id",n("Pattern")).field("init",i(n("Expression"),null)),n("Expression").bases("Node","Pattern"),n("ThisExpression").bases("Expression").build(),n("ArrayExpression").bases("Expression").build("elements").field("elements",[i(n("Expression"),null)]),n("ObjectExpression").bases("Expression").build("properties").field("properties",[n("Property")]),n("Property").bases("Node").build("kind","key","value").field("kind",i("init","get","set")).field("key",i(n("Literal"),n("Identifier"))).field("value",n("Expression")),n("SequenceExpression").bases("Expression").build("expressions").field("expressions",[n("Expression")]);var u=i("-","+","!","~","typeof","void","delete");n("UnaryExpression").bases("Expression").build("operator","argument","prefix").field("operator",u).field("argument",n("Expression")).field("prefix",Boolean,a.true);var l=i("==","!=","===","!==","<","<=",">",">=","<<",">>",">>>","+","-","*","/","%","&","|","^","in","instanceof","..");n("BinaryExpression").bases("Expression").build("operator","left","right").field("operator",l).field("left",n("Expression")).field("right",n("Expression"));var c=i("=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","|=","^=","&=");n("AssignmentExpression").bases("Expression").build("operator","left","right").field("operator",c).field("left",n("Pattern")).field("right",n("Expression"));var p=i("++","--");n("UpdateExpression").bases("Expression").build("operator","argument","prefix").field("operator",p).field("argument",n("Expression")).field("prefix",Boolean);var h=i("||","&&");n("LogicalExpression").bases("Expression").build("operator","left","right").field("operator",h).field("left",n("Expression")).field("right",n("Expression")),n("ConditionalExpression").bases("Expression").build("test","consequent","alternate").field("test",n("Expression")).field("consequent",n("Expression")).field("alternate",n("Expression")),n("NewExpression").bases("Expression").build("callee","arguments").field("callee",n("Expression")).field("arguments",[n("Expression")]),n("CallExpression").bases("Expression").build("callee","arguments").field("callee",n("Expression")).field("arguments",[n("Expression")]),n("MemberExpression").bases("Expression").build("object","property","computed").field("object",n("Expression")).field("property",i(n("Identifier"),n("Expression"))).field("computed",Boolean,function(){var e=this.property.type;return"Literal"===e||"MemberExpression"===e||"BinaryExpression"===e}),n("Pattern").bases("Node"),n("SwitchCase").bases("Node").build("test","consequent").field("test",i(n("Expression"),null)).field("consequent",[n("Statement")]),n("Identifier").bases("Node","Expression","Pattern").build("name").field("name",String),n("Literal").bases("Node","Expression").build("value").field("value",i(String,Boolean,null,Number,RegExp)).field("regex",i({pattern:String,flags:String},null),function(){if(this.value instanceof RegExp){var e="";return this.value.ignoreCase&&(e+="i"),this.value.multiline&&(e+="m"),this.value.global&&(e+="g"),{pattern:this.value.source,flags:e}}return null}),n("Comment").bases("Printable").field("value",String).field("leading",Boolean,a.true).field("trailing",Boolean,a.false)}},{"../lib/shared":18,"../lib/types":19}],5:[function(e,t,r){t.exports=function(t){t.use(e("./core"));var r=t.use(e("../lib/types")),n=r.Type.def,i=r.Type.or;n("XMLDefaultDeclaration").bases("Declaration").field("namespace",n("Expression")),n("XMLAnyName").bases("Expression"),n("XMLQualifiedIdentifier").bases("Expression").field("left",i(n("Identifier"),n("XMLAnyName"))).field("right",i(n("Identifier"),n("Expression"))).field("computed",Boolean),n("XMLFunctionQualifiedIdentifier").bases("Expression").field("right",i(n("Identifier"),n("Expression"))).field("computed",Boolean),n("XMLAttributeSelector").bases("Expression").field("attribute",n("Expression")),n("XMLFilterExpression").bases("Expression").field("left",n("Expression")).field("right",n("Expression")),n("XMLElement").bases("XML","Expression").field("contents",[n("XML")]),n("XMLList").bases("XML","Expression").field("contents",[n("XML")]),n("XML").bases("Node"),n("XMLEscape").bases("XML").field("expression",n("Expression")),n("XMLText").bases("XML").field("text",String),n("XMLStartTag").bases("XML").field("contents",[n("XML")]),n("XMLEndTag").bases("XML").field("contents",[n("XML")]),n("XMLPointTag").bases("XML").field("contents",[n("XML")]),n("XMLName").bases("XML").field("contents",i(String,[n("XML")])),n("XMLAttribute").bases("XML").field("value",String),n("XMLCdata").bases("XML").field("contents",String),n("XMLComment").bases("XML").field("contents",String),n("XMLProcessingInstruction").bases("XML").field("target",String).field("contents",i(String,null))}},{"../lib/types":19,"./core":4}],6:[function(e,t,r){t.exports=function(t){t.use(e("./core"));var r=t.use(e("../lib/types")),n=r.Type.def,i=r.Type.or,s=t.use(e("../lib/shared")).defaults;n("Function").field("generator",Boolean,s.false).field("expression",Boolean,s.false).field("defaults",[i(n("Expression"),null)],s.emptyArray).field("rest",i(n("Identifier"),null),s.null),n("RestElement").bases("Pattern").build("argument").field("argument",n("Pattern")),n("SpreadElementPattern").bases("Pattern").build("argument").field("argument",n("Pattern")),n("FunctionDeclaration").build("id","params","body","generator","expression"),n("FunctionExpression").build("id","params","body","generator","expression"),n("ArrowFunctionExpression").bases("Function","Expression").build("params","body","expression").field("id",null,s.null).field("body",i(n("BlockStatement"),n("Expression"))).field("generator",!1,s.false),n("YieldExpression").bases("Expression").build("argument","delegate").field("argument",i(n("Expression"),null)).field("delegate",Boolean,s.false),n("GeneratorExpression").bases("Expression").build("body","blocks","filter").field("body",n("Expression")).field("blocks",[n("ComprehensionBlock")]).field("filter",i(n("Expression"),null)),n("ComprehensionExpression").bases("Expression").build("body","blocks","filter").field("body",n("Expression")).field("blocks",[n("ComprehensionBlock")]).field("filter",i(n("Expression"),null)),n("ComprehensionBlock").bases("Node").build("left","right","each").field("left",n("Pattern")).field("right",n("Expression")).field("each",Boolean),n("Property").field("key",i(n("Literal"),n("Identifier"),n("Expression"))).field("value",i(n("Expression"),n("Pattern"))).field("method",Boolean,s.false).field("shorthand",Boolean,s.false).field("computed",Boolean,s.false),n("PropertyPattern").bases("Pattern").build("key","pattern").field("key",i(n("Literal"),n("Identifier"),n("Expression"))).field("pattern",n("Pattern")).field("computed",Boolean,s.false),n("ObjectPattern").bases("Pattern").build("properties").field("properties",[i(n("PropertyPattern"),n("Property"))]),n("ArrayPattern").bases("Pattern").build("elements").field("elements",[i(n("Pattern"),null)]),n("MethodDefinition").bases("Declaration").build("kind","key","value","static").field("kind",i("constructor","method","get","set")).field("key",i(n("Literal"),n("Identifier"),n("Expression"))).field("value",n("Function")).field("computed",Boolean,s.false).field("static",Boolean,s.false),n("SpreadElement").bases("Node").build("argument").field("argument",n("Expression")),n("ArrayExpression").field("elements",[i(n("Expression"),n("SpreadElement"),n("RestElement"),null)]),n("NewExpression").field("arguments",[i(n("Expression"),n("SpreadElement"))]),n("CallExpression").field("arguments",[i(n("Expression"),n("SpreadElement"))]),n("AssignmentPattern").bases("Pattern").build("left","right").field("left",n("Pattern")).field("right",n("Expression"));var a=i(n("MethodDefinition"),n("VariableDeclarator"),n("ClassPropertyDefinition"),n("ClassProperty"));n("ClassProperty").bases("Declaration").build("key").field("key",i(n("Literal"),n("Identifier"),n("Expression"))).field("computed",Boolean,s.false),n("ClassPropertyDefinition").bases("Declaration").build("definition").field("definition",a),n("ClassBody").bases("Declaration").build("body").field("body",[a]),n("ClassDeclaration").bases("Declaration").build("id","body","superClass").field("id",i(n("Identifier"),null)).field("body",n("ClassBody")).field("superClass",i(n("Expression"),null),s.null),n("ClassExpression").bases("Expression").build("id","body","superClass").field("id",i(n("Identifier"),null),s.null).field("body",n("ClassBody")).field("superClass",i(n("Expression"),null),s.null).field("implements",[n("ClassImplements")],s.emptyArray),n("ClassImplements").bases("Node").build("id").field("id",n("Identifier")).field("superClass",i(n("Expression"),null),s.null),n("Specifier").bases("Node"),n("ModuleSpecifier").bases("Specifier").field("local",i(n("Identifier"),null),s.null).field("id",i(n("Identifier"),null),s.null).field("name",i(n("Identifier"),null),s.null),n("TaggedTemplateExpression").bases("Expression").build("tag","quasi").field("tag",n("Expression")).field("quasi",n("TemplateLiteral")),n("TemplateLiteral").bases("Expression").build("quasis","expressions").field("quasis",[n("TemplateElement")]).field("expressions",[n("Expression")]),n("TemplateElement").bases("Node").build("value","tail").field("value",{cooked:String,raw:String}).field("tail",Boolean)}},{"../lib/shared":18,"../lib/types":19,"./core":4}],7:[function(e,t,r){t.exports=function(t){t.use(e("./es6"));var r=t.use(e("../lib/types")),n=r.Type.def,i=r.Type.or,s=(r.builtInTypes,t.use(e("../lib/shared")).defaults);n("Function").field("async",Boolean,s.false),n("SpreadProperty").bases("Node").build("argument").field("argument",n("Expression")),n("ObjectExpression").field("properties",[i(n("Property"),n("SpreadProperty"))]),n("SpreadPropertyPattern").bases("Pattern").build("argument").field("argument",n("Pattern")),n("ObjectPattern").field("properties",[i(n("Property"),n("PropertyPattern"),n("SpreadPropertyPattern"))]),n("AwaitExpression").bases("Expression").build("argument","all").field("argument",i(n("Expression"),null)).field("all",Boolean,s.false)}},{"../lib/shared":18,"../lib/types":19,"./es6":6}],8:[function(e,t,r){t.exports=function(t){t.use(e("./es7"));var r=t.use(e("../lib/types")),n=t.use(e("../lib/shared")).defaults,i=r.Type.def,s=r.Type.or;i("VariableDeclaration").field("declarations",[s(i("VariableDeclarator"),i("Identifier"))]),i("Property").field("value",s(i("Expression"),i("Pattern"))),i("ArrayPattern").field("elements",[s(i("Pattern"),i("SpreadElement"),null)]),i("ObjectPattern").field("properties",[s(i("Property"),i("PropertyPattern"),i("SpreadPropertyPattern"),i("SpreadProperty"))]),i("ExportSpecifier").bases("ModuleSpecifier").build("id","name"),i("ExportBatchSpecifier").bases("Specifier").build(),i("ImportSpecifier").bases("ModuleSpecifier").build("id","name"),i("ImportNamespaceSpecifier").bases("ModuleSpecifier").build("id"),i("ImportDefaultSpecifier").bases("ModuleSpecifier").build("id"),i("ExportDeclaration").bases("Declaration").build("default","declaration","specifiers","source").field("default",Boolean).field("declaration",s(i("Declaration"),i("Expression"),null)).field("specifiers",[s(i("ExportSpecifier"),i("ExportBatchSpecifier"))],n.emptyArray).field("source",s(i("Literal"),null),n.null),i("ImportDeclaration").bases("Declaration").build("specifiers","source","importKind").field("specifiers",[s(i("ImportSpecifier"),i("ImportNamespaceSpecifier"),i("ImportDefaultSpecifier"))],n.emptyArray).field("source",i("Literal")).field("importKind",s("value","type"),function(){return"value"}),i("Block").bases("Comment").build("value","leading","trailing"),i("Line").bases("Comment").build("value","leading","trailing")}},{"../lib/shared":18,"../lib/types":19,"./es7":7}],9:[function(e,t,r){t.exports=function(t){t.use(e("./es7"));var r=t.use(e("../lib/types")),n=r.Type.def,i=r.Type.or,s=t.use(e("../lib/shared")).defaults;n("Type").bases("Node"),n("AnyTypeAnnotation").bases("Type").build(),n("EmptyTypeAnnotation").bases("Type").build(),n("MixedTypeAnnotation").bases("Type").build(),n("VoidTypeAnnotation").bases("Type").build(),n("NumberTypeAnnotation").bases("Type").build(),n("NumberLiteralTypeAnnotation").bases("Type").build("value","raw").field("value",Number).field("raw",String),n("NumericLiteralTypeAnnotation").bases("Type").build("value","raw").field("value",Number).field("raw",String),n("StringTypeAnnotation").bases("Type").build(),n("StringLiteralTypeAnnotation").bases("Type").build("value","raw").field("value",String).field("raw",String),n("BooleanTypeAnnotation").bases("Type").build(),n("BooleanLiteralTypeAnnotation").bases("Type").build("value","raw").field("value",Boolean).field("raw",String),n("TypeAnnotation").bases("Node").build("typeAnnotation").field("typeAnnotation",n("Type")),n("NullableTypeAnnotation").bases("Type").build("typeAnnotation").field("typeAnnotation",n("Type")),n("NullLiteralTypeAnnotation").bases("Type").build(),n("NullTypeAnnotation").bases("Type").build(),n("ThisTypeAnnotation").bases("Type").build(),n("ExistsTypeAnnotation").bases("Type").build(),n("ExistentialTypeParam").bases("Type").build(),n("FunctionTypeAnnotation").bases("Type").build("params","returnType","rest","typeParameters").field("params",[n("FunctionTypeParam")]).field("returnType",n("Type")).field("rest",i(n("FunctionTypeParam"),null)).field("typeParameters",i(n("TypeParameterDeclaration"),null)),n("FunctionTypeParam").bases("Node").build("name","typeAnnotation","optional").field("name",n("Identifier")).field("typeAnnotation",n("Type")).field("optional",Boolean),n("ArrayTypeAnnotation").bases("Type").build("elementType").field("elementType",n("Type")),n("ObjectTypeAnnotation").bases("Type").build("properties","indexers","callProperties").field("properties",[n("ObjectTypeProperty")]).field("indexers",[n("ObjectTypeIndexer")],s.emptyArray).field("callProperties",[n("ObjectTypeCallProperty")],s.emptyArray).field("exact",Boolean,s.false),n("ObjectTypeProperty").bases("Node").build("key","value","optional").field("key",i(n("Literal"),n("Identifier"))).field("value",n("Type")).field("optional",Boolean).field("variance",i("plus","minus",null),s.null),n("ObjectTypeIndexer").bases("Node").build("id","key","value").field("id",n("Identifier")).field("key",n("Type")).field("value",n("Type")).field("variance",i("plus","minus",null),s.null),n("ObjectTypeCallProperty").bases("Node").build("value").field("value",n("FunctionTypeAnnotation")).field("static",Boolean,s.false),n("QualifiedTypeIdentifier").bases("Node").build("qualification","id").field("qualification",i(n("Identifier"),n("QualifiedTypeIdentifier"))).field("id",n("Identifier")),n("GenericTypeAnnotation").bases("Type").build("id","typeParameters").field("id",i(n("Identifier"),n("QualifiedTypeIdentifier"))).field("typeParameters",i(n("TypeParameterInstantiation"),null)),n("MemberTypeAnnotation").bases("Type").build("object","property").field("object",n("Identifier")).field("property",i(n("MemberTypeAnnotation"),n("GenericTypeAnnotation"))),n("UnionTypeAnnotation").bases("Type").build("types").field("types",[n("Type")]),n("IntersectionTypeAnnotation").bases("Type").build("types").field("types",[n("Type")]),n("TypeofTypeAnnotation").bases("Type").build("argument").field("argument",n("Type")),n("Identifier").field("typeAnnotation",i(n("TypeAnnotation"),null),s.null),n("TypeParameterDeclaration").bases("Node").build("params").field("params",[n("TypeParameter")]),n("TypeParameterInstantiation").bases("Node").build("params").field("params",[n("Type")]),n("TypeParameter").bases("Type").build("name","variance","bound").field("name",String).field("variance",i("plus","minus",null),s.null).field("bound",i(n("TypeAnnotation"),null),s.null),n("Function").field("returnType",i(n("TypeAnnotation"),null),s.null).field("typeParameters",i(n("TypeParameterDeclaration"),null),s.null),n("ClassProperty").build("key","value","typeAnnotation","static").field("value",i(n("Expression"),null)).field("typeAnnotation",i(n("TypeAnnotation"),null)).field("static",Boolean,s.false).field("variance",i("plus","minus",null),s.null),n("ClassImplements").field("typeParameters",i(n("TypeParameterInstantiation"),null),s.null),n("InterfaceDeclaration").bases("Declaration").build("id","body","extends").field("id",n("Identifier")).field("typeParameters",i(n("TypeParameterDeclaration"),null),s.null).field("body",n("ObjectTypeAnnotation")).field("extends",[n("InterfaceExtends")]),n("DeclareInterface").bases("InterfaceDeclaration").build("id","body","extends"),n("InterfaceExtends").bases("Node").build("id").field("id",n("Identifier")).field("typeParameters",i(n("TypeParameterInstantiation"),null)),n("TypeAlias").bases("Declaration").build("id","typeParameters","right").field("id",n("Identifier")).field("typeParameters",i(n("TypeParameterDeclaration"),null)).field("right",n("Type")),n("DeclareTypeAlias").bases("TypeAlias").build("id","typeParameters","right"),n("TypeCastExpression").bases("Expression").build("expression","typeAnnotation").field("expression",n("Expression")).field("typeAnnotation",n("TypeAnnotation")),n("TupleTypeAnnotation").bases("Type").build("types").field("types",[n("Type")]),n("DeclareVariable").bases("Statement").build("id").field("id",n("Identifier")),n("DeclareFunction").bases("Statement").build("id").field("id",n("Identifier")),n("DeclareClass").bases("InterfaceDeclaration").build("id"),n("DeclareModule").bases("Statement").build("id","body").field("id",i(n("Identifier"),n("Literal"))).field("body",n("BlockStatement")),n("DeclareModuleExports").bases("Statement").build("typeAnnotation").field("typeAnnotation",n("Type")),n("DeclareExportDeclaration").bases("Declaration").build("default","declaration","specifiers","source").field("default",Boolean).field("declaration",i(n("DeclareVariable"),n("DeclareFunction"),n("DeclareClass"),n("Type"),null)).field("specifiers",[i(n("ExportSpecifier"),n("ExportBatchSpecifier"))],s.emptyArray).field("source",i(n("Literal"),null),s.null),n("DeclareExportAllDeclaration").bases("Declaration").build("source").field("source",i(n("Literal"),null),s.null)}},{"../lib/shared":18,"../lib/types":19,"./es7":7}],10:[function(e,t,r){t.exports=function(t){t.use(e("./es7"));var r=t.use(e("../lib/types")),n=r.Type.def,i=r.Type.or,s=t.use(e("../lib/shared")).defaults;n("JSXAttribute").bases("Node").build("name","value").field("name",i(n("JSXIdentifier"),n("JSXNamespacedName"))).field("value",i(n("Literal"),n("JSXExpressionContainer"),null),s.null),n("JSXIdentifier").bases("Identifier").build("name").field("name",String),n("JSXNamespacedName").bases("Node").build("namespace","name").field("namespace",n("JSXIdentifier")).field("name",n("JSXIdentifier")),n("JSXMemberExpression").bases("MemberExpression").build("object","property").field("object",i(n("JSXIdentifier"),n("JSXMemberExpression"))).field("property",n("JSXIdentifier")).field("computed",Boolean,s.false);var a=i(n("JSXIdentifier"),n("JSXNamespacedName"),n("JSXMemberExpression"));n("JSXSpreadAttribute").bases("Node").build("argument").field("argument",n("Expression"));var o=[i(n("JSXAttribute"),n("JSXSpreadAttribute"))];n("JSXExpressionContainer").bases("Expression").build("expression").field("expression",n("Expression")),n("JSXElement").bases("Expression").build("openingElement","closingElement","children").field("openingElement",n("JSXOpeningElement")).field("closingElement",i(n("JSXClosingElement"),null),s.null).field("children",[i(n("JSXElement"),n("JSXExpressionContainer"),n("JSXText"),n("Literal"))],s.emptyArray).field("name",a,function(){return this.openingElement.name},!0).field("selfClosing",Boolean,function(){return this.openingElement.selfClosing},!0).field("attributes",o,function(){return this.openingElement.attributes},!0),n("JSXOpeningElement").bases("Node").build("name","attributes","selfClosing").field("name",a).field("attributes",o,s.emptyArray).field("selfClosing",Boolean,s.false),n("JSXClosingElement").bases("Node").build("name").field("name",a),n("JSXText").bases("Literal").build("value").field("value",String),n("JSXEmptyExpression").bases("Expression").build()}},{"../lib/shared":18,"../lib/types":19,"./es7":7}],11:[function(e,t,r){t.exports=function(t){t.use(e("./core"));var r=t.use(e("../lib/types")),n=r.Type.def,i=r.Type.or,s=t.use(e("../lib/shared")),a=s.geq,o=s.defaults;n("Function").field("body",i(n("BlockStatement"),n("Expression"))),n("ForInStatement").build("left","right","body","each").field("each",Boolean,o.false),n("ForOfStatement").bases("Statement").build("left","right","body").field("left",i(n("VariableDeclaration"),n("Expression"))).field("right",n("Expression")).field("body",n("Statement")),n("LetStatement").bases("Statement").build("head","body").field("head",[n("VariableDeclarator")]).field("body",n("Statement")),n("LetExpression").bases("Expression").build("head","body").field("head",[n("VariableDeclarator")]).field("body",n("Expression")),n("GraphExpression").bases("Expression").build("index","expression").field("index",a(0)).field("expression",n("Literal")),n("GraphIndexExpression").bases("Expression").build("index").field("index",a(0))}},{"../lib/shared":18,"../lib/types":19,"./core":4}],12:[function(e,t,r){t.exports=function(t){function r(e){var t=n.indexOf(e);return-1===t&&(t=n.length,n.push(e),i[t]=e(s)),i[t]}var n=[],i=[],s={};s.use=r;var a=r(e("./lib/types"));t.forEach(r),a.finalize();var o={Type:a.Type,builtInTypes:a.builtInTypes,namedTypes:a.namedTypes,builders:a.builders,defineMethod:a.defineMethod,getFieldNames:a.getFieldNames,getFieldValue:a.getFieldValue,eachField:a.eachField,someField:a.someField,getSupertypeNames:a.getSupertypeNames,astNodesAreEquivalent:r(e("./lib/equiv")),finalize:a.finalize,Path:r(e("./lib/path")),NodePath:r(e("./lib/node-path")),PathVisitor:r(e("./lib/path-visitor")),use:r};return o.visit=o.PathVisitor.visit,o}},{"./lib/equiv":13,"./lib/node-path":14,"./lib/path":16,"./lib/path-visitor":15,"./lib/types":19}],13:[function(e,t,r){t.exports=function(t){function r(e,t,r){return u.check(r)?r.length=0:r=null,i(e,t,r)}function n(e){return/[_$a-z][_$a-z0-9]*/i.test(e)?"."+e:"["+JSON.stringify(e)+"]"}function i(e,t,r){return e===t||(u.check(e)?function(e,t,r){u.assert(e);var n=e.length;if(!u.check(t)||t.length!==n)return r&&r.push("length"),!1;for(var s=0;su)return!0;if(s===u&&"right"===this.name){if(r.right!==t)throw new Error("Nodes must be equal");return!0}default:return!1}case"SequenceExpression":switch(r.type){case"ForStatement":return!1;case"ExpressionStatement":return"expression"!==this.name;default:return!0}case"YieldExpression":switch(r.type){case"BinaryExpression":case"LogicalExpression":case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"CallExpression":case"MemberExpression":case"NewExpression":case"ConditionalExpression":case"YieldExpression":return!0;default:return!1}case"Literal":return"MemberExpression"===r.type&&l.check(t.value)&&"object"===this.name&&r.object===t;case"AssignmentExpression":case"ConditionalExpression":switch(r.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"BinaryExpression":case"LogicalExpression":return!0;case"CallExpression":return"callee"===this.name&&r.callee===t;case"ConditionalExpression":return"test"===this.name&&r.test===t;case"MemberExpression":return"object"===this.name&&r.object===t;default:return!1}default:if("NewExpression"===r.type&&"callee"===this.name&&r.callee===t)return i(t)}return!(!0===e||this.canBeFirstInStatement()||!this.firstInStatement())};var d={};return[["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"]].forEach(function(e,t){e.forEach(function(e){d[e]=t})}),f.canBeFirstInStatement=function(){var e=this.node;return!o.FunctionExpression.check(e)&&!o.ObjectExpression.check(e)},f.firstInStatement=function(){return function(e){for(var t,r;e.parent;e=e.parent){if(t=e.node,r=e.parent.node,o.BlockStatement.check(r)&&"body"===e.parent.name&&0===e.name){if(r.body[0]!==t)throw new Error("Nodes must be equal");return!0}if(o.ExpressionStatement.check(r)&&"expression"===e.name){if(r.expression!==t)throw new Error("Nodes must be equal");return!0}if(o.SequenceExpression.check(r)&&"expressions"===e.parent.name&&0===e.name){if(r.expressions[0]!==t)throw new Error("Nodes must be equal")}else if(o.CallExpression.check(r)&&"callee"===e.name){if(r.callee!==t)throw new Error("Nodes must be equal")}else if(o.MemberExpression.check(r)&&"object"===e.name){if(r.object!==t)throw new Error("Nodes must be equal")}else if(o.ConditionalExpression.check(r)&&"test"===e.name){if(r.test!==t)throw new Error("Nodes must be equal")}else if(n(r)&&"left"===e.name){if(r.left!==t)throw new Error("Nodes must be equal")}else{if(!o.UnaryExpression.check(r)||r.prefix||"argument"!==e.name)return!1;if(r.argument!==t)throw new Error("Nodes must be equal")}}return!0}(this)},r}},{"./path":16,"./scope":17,"./types":19}],15:[function(e,t,r){var n=Object.prototype.hasOwnProperty;t.exports=function(t){function r(){if(!(this instanceof r))throw new Error("PathVisitor constructor cannot be invoked without 'new'");this._reusableContextStack=[],this._methodNameTable=function(e){var t=Object.create(null);for(var r in e)/^visit[A-Z]/.test(r)&&(t[r.slice("visit".length)]=!0);for(var n=a.computeSupertypeLookupTable(t),i=Object.create(null),s=(t=Object.keys(n)).length,o=0;o=0&&(s[e.name=a]=e)}else i[e.name]=e.value,s[e.name]=e;if(i[e.name]!==e.value)throw new Error("");if(e.parentPath.get(e.name)!==e)throw new Error("")}(this),l.check(i)){for(var u=i.length,c=o(this.parentPath,a-1,this.name+1),p=[this.name,1],h=0;h=e},a+" >= "+e)},r.defaults={null:function(){return null},emptyArray:function(){return[]},false:function(){return!1},true:function(){return!0},undefined:function(){}};var o=i.or(s.string,s.number,s.boolean,s.null,s.undefined);return r.isPrimitive=new i(function(e){if(null===e)return!0;var t=typeof e;return!("object"===t||"function"===t)},o.toString()),r}},{"../lib/types":19}],19:[function(e,t,r){var n=Array.prototype,i=n.slice,s=(n.map,n.forEach,Object.prototype),a=s.toString,o=a.call(function(){}),u=a.call(""),l=s.hasOwnProperty;t.exports=function(){function e(t,r){var n=this;if(!(n instanceof e))throw new Error("Type constructor cannot be invoked without 'new'");if(a.call(t)!==o)throw new Error(t+" is not a function");var i=a.call(r);if(i!==o&&i!==u)throw new Error(r+" is neither a function nor a string");Object.defineProperties(n,{name:{value:r},check:{value:function(e,r){var i=t.call(n,e,r);return!i&&r&&a.call(r)===o&&r(n,e),i}}})}function t(e){return S.check(e)?"{"+Object.keys(e).map(function(t){return t+": "+e[t]}).join(", ")+"}":D.check(e)?"["+e.map(t).join(", ")+"]":JSON.stringify(e)}function r(t,r){var n=a.call(t),i=new e(function(e){return a.call(e)===n},r);return x[r]=i,t&&"function"==typeof t.constructor&&(b.push(t.constructor),v.push(i)),i}function n(t,r){if(t instanceof e)return t;if(t instanceof c)return t.type;if(D.check(t))return e.fromArray(t);if(S.check(t))return e.fromObject(t);if(A.check(t)){var n=b.indexOf(t);return n>=0?v[n]:new e(t,r)}return new e(function(e){return e===t},_.check(r)?function(){return t+""}:r)}function s(e,t,r,i){if(!(this instanceof s))throw new Error("Field constructor cannot be invoked without 'new'");E.assert(e);var a={name:{value:e},type:{value:t=n(t)},hidden:{value:!!i}};A.check(r)&&(a.defaultFn={value:r}),Object.defineProperties(this,a)}function c(t){var r=this;if(!(r instanceof c))throw new Error("Def constructor cannot be invoked without 'new'");Object.defineProperties(r,{typeName:{value:t},baseNames:{value:[]},ownFields:{value:Object.create(null)},allSupertypes:{value:Object.create(null)},supertypeList:{value:[]},allFields:{value:Object.create(null)},fieldNames:{value:[]},type:{value:new e(function(e,t){return r.check(e,t)},t)}})}function p(e){return e.replace(/^[A-Z]+/,function(e){var t=e.length;switch(t){case 0:return"";case 1:return e.toLowerCase();default:return e.slice(0,t-1).toLowerCase()+e.charAt(t-1)}})}function h(e){return(e=p(e)).replace(/(Expression)?$/,"Statement")}function f(e){var t=c.fromValue(e);if(t)return t.fieldNames.slice(0);if("type"in e)throw new Error("did not recognize object of type "+JSON.stringify(e.type));return Object.keys(e)}function d(e,t){var r=c.fromValue(e);if(r){var n=r.allFields[t];if(n)return n.getValue(e)}return e&&e[t]}function m(e,t){return Object.keys(t).forEach(function(r){e[r]=t[r]}),e}var y={},g=e.prototype;y.Type=e,g.assert=function(e,r){if(!this.check(e,r)){var n=t(e);throw new Error(n+" does not match type "+this)}return!0},g.toString=function(){var e=this.name;return E.check(e)?e:A.check(e)?e.call(this)+"":e+" type"};var b=[],v=[],x={};y.builtInTypes=x;var E=r("truthy","string"),A=r(function(){},"function"),D=r([],"array"),S=r({},"object"),C=(r(/./,"RegExp"),r(new Date,"Date"),r(3,"number")),_=(r(!0,"boolean"),r(null,"null"),r(void 0,"undefined"));e.or=function(){for(var t=[],r=arguments.length,i=0;i=0&&function(e){var t=h(e);if(!T[t]){var r=T[p(e)];r&&(T[t]=function(){return T.expressionStatement(r.apply(T,arguments))})}}(e.typeName)}},y.finalize=function(){Object.keys(k).forEach(function(e){k[e].finalize()})},y}},{}],20:[function(e,t,r){t.exports=e("./fork")([e("./def/core"),e("./def/es6"),e("./def/es7"),e("./def/mozilla"),e("./def/e4x"),e("./def/jsx"),e("./def/flow"),e("./def/esprima"),e("./def/babel"),e("./def/babel6")])},{"./def/babel":2,"./def/babel6":3,"./def/core":4,"./def/e4x":5,"./def/es6":6,"./def/es7":7,"./def/esprima":8,"./def/flow":9,"./def/jsx":10,"./def/mozilla":11,"./fork":12}],21:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){return t.replace(a.default,function(){for(var t=arguments.length,r=Array(t),n=0;n3&&void 0!==arguments[3]?arguments[3]:{};r=Math.max(r,0);var s=n.highlightCode&&u.default.supportsColor||n.forceColor,a=u.default;n.forceColor&&(a=new u.default.constructor({enabled:!0}));var o=function(e,t){return s?e(t):t},c=function(e){return{keyword:e.cyan,capitalized:e.yellow,jsx_tag:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.grey,invalid:e.white.bgRed.bold,gutter:e.grey,marker:e.red.bold}}(a);s&&(e=i(c,e));var p=n.linesAbove||2,h=n.linesBelow||3,f=e.split(l),d=Math.max(t-(p+1),0),m=Math.min(f.length,t+h);t||r||(d=0,m=f.length);var y=String(m).length,g=f.slice(d,m).map(function(e,n){var i=d+1+n,s=" "+(" "+i).slice(-y)+" | ";if(i===t){var a="";if(r){var u=e.slice(0,r-1).replace(/[^\t]/g," ");a=["\n ",o(c.gutter,s.replace(/\d/g," ")),u,o(c.marker,"^")].join("")}return[o(c.marker,">"),o(c.gutter,s),e,a].join("")}return" "+o(c.gutter,s)+e}).join("\n");return s?a.reset(g):g};var s=e("js-tokens"),a=n(s),o=n(e("esutils")),u=n(e("chalk")),l=/\r\n|[\n\r\u2028\u2029]/,c=/^[a-z][\w-]*$/i,p=/^[()\[\]{}]$/;t.exports=r.default},{chalk:24,esutils:28,"js-tokens":322}],22:[function(e,t,r){"use strict";t.exports=function(){return/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g}},{}],23:[function(e,t,r){"use strict";Object.defineProperty(t,"exports",{enumerable:!0,get:function(){var e={modifiers:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},colors:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39]},bgColors:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49]}};return e.colors.grey=e.colors.gray,Object.keys(e).forEach(function(t){var r=e[t];Object.keys(r).forEach(function(t){var n=r[t];e[t]=r[t]={open:"["+n[0]+"m",close:"["+n[1]+"m"}}),Object.defineProperty(e,t,{value:r,enumerable:!1})}),e}})},{}],24:[function(e,t,r){(function(r){"use strict";function n(e){this.enabled=e&&void 0!==e.enabled?e.enabled:l}function i(e){var t=function(){return function(){var e=arguments,t=e.length,r=0!==t&&String(arguments[0]);if(t>1)for(var n=1;n=97&&o<=122||o>=65&&o<=90||36===o||95===o;for(a=new Array(128),o=0;o<128;++o)a[o]=o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||36===o||95===o;t.exports={isDecimalDigit:function(e){return 48<=e&&e<=57},isHexDigit:function(e){return 48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70},isOctalDigit:function(e){return e>=48&&e<=55},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&i.indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStartES5:function(t){return t<128?s[t]:n.NonAsciiIdentifierStart.test(e(t))},isIdentifierPartES5:function(t){return t<128?a[t]:n.NonAsciiIdentifierPart.test(e(t))},isIdentifierStartES6:function(t){return t<128?s[t]:r.NonAsciiIdentifierStart.test(e(t))},isIdentifierPartES6:function(t){return t<128?a[t]:r.NonAsciiIdentifierPart.test(e(t))}}}()},{}],27:[function(e,t,r){!function(){"use strict";function r(e,t){return!(!t&&"yield"===e)&&n(e,t)}function n(e,t){if(t&&function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function i(e,t){return"null"===e||"true"===e||"false"===e||r(e,t)}function s(e,t){return"null"===e||"true"===e||"false"===e||n(e,t)}function a(e){var t,r,n;if(0===e.length)return!1;if(n=e.charCodeAt(0),!l.isIdentifierStartES5(n))return!1;for(t=1,r=e.length;t=r)return!1;if(!(56320<=(i=e.charCodeAt(t))&&i<=57343))return!1;n=o(n,i)}if(!s(n))return!1;s=l.isIdentifierPartES6}return!0}var l=e("./code");t.exports={isKeywordES5:r,isKeywordES6:n,isReservedWordES5:i,isReservedWordES6:s,isRestrictedWord:function(e){return"eval"===e||"arguments"===e},isIdentifierNameES5:a,isIdentifierNameES6:u,isIdentifierES5:function(e,t){return a(e)&&!i(e,t)},isIdentifierES6:function(e,t){return u(e)&&!s(e,t)}}}()},{"./code":26}],28:[function(e,t,r){!function(){"use strict";r.ast=e("./ast"),r.code=e("./code"),r.keyword=e("./keyword")}()},{"./ast":25,"./code":26,"./keyword":27}],29:[function(e,t,r){"use strict";var n=e("ansi-regex")();t.exports=function(e){return"string"==typeof e?e.replace(n,""):e}},{"ansi-regex":22}],30:[function(e,t,r){(function(e){"use strict";var r=e.argv,n=r.indexOf("--"),i=function(e){e="--"+e;var t=r.indexOf(e);return-1!==t&&(-1===n||t1&&void 0!==arguments[1]?arguments[1]:{};return t.filename=e,x(h.default.readFileSync(e,"utf8"),t)};var h=i(e("fs")),f=n(e("../util")),d=n(e("babel-messages")),m=n(e("babel-types")),y=i(e("babel-traverse")),g=i(e("../transformation/file/options/option-manager")),b=i(e("../transformation/pipeline"));r.util=f,r.messages=d,r.types=m,r.traverse=y.default,r.OptionManager=g.default,r.Pipeline=b.default;var v=new b.default,x=(r.analyse=v.analyse.bind(v),r.transform=v.transform.bind(v));r.transformFromAst=v.transformFromAst.bind(v)},{"../../package":73,"../helpers/resolve-plugin":38,"../helpers/resolve-preset":39,"../tools/build-external-helpers":42,"../transformation/file":43,"../transformation/file/options/config":47,"../transformation/file/options/option-manager":49,"../transformation/pipeline":54,"../util":57,"babel-messages":110,"babel-template":139,"babel-traverse":143,"babel-types":180,fs:193}],33:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e){return["babel-plugin-"+e,e]},t.exports=r.default},{}],34:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e){var t=["babel-preset-"+e,e],r=e.match(/^(@[^/]+)\/(.+)$/);if(r){var n=r[1],i=r[2];t.push(n+"/babel-preset-"+i)}return t},t.exports=r.default},{}],35:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/core-js/get-iterator"));r.default=function(e,t){if(e&&t)return(0,s.default)(e,t,function(e,t){if(t&&Array.isArray(e)){var r=t.slice(0),n=e,s=Array.isArray(n),a=0;for(n=s?n:(0,i.default)(n);;){var o;if(s){if(a>=n.length)break;o=n[a++]}else{if((a=n.next()).done)break;o=a.value}var u=o;r.indexOf(u)<0&&r.push(u)}return r}})};var s=n(e("lodash/mergeWith"));t.exports=r.default},{"babel-runtime/core-js/get-iterator":120,"lodash/mergeWith":527}],36:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e,t,r){if(e){if("Program"===e.type)return n.file(e,t||[],r||[]);if("File"===e.type)return e}throw new Error("Not a valid ast?")};var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"));t.exports=r.default},{"babel-types":180}],37:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e,t){return e.reduce(function(e,r){return e||(0,n.default)(r,t)},null)};var n=function(e){return e&&e.__esModule?e:{default:e}}(e("./resolve"));t.exports=r.default},{"./resolve":40}],38:[function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0,r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.cwd();return(0,s.default)((0,a.default)(e),t)};var s=i(e("./resolve-from-possible-names")),a=i(e("./get-possible-plugin-names"));t.exports=r.default}).call(this,e("_process"))},{"./get-possible-plugin-names":33,"./resolve-from-possible-names":37,_process:550}],39:[function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0,r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.cwd();return(0,s.default)((0,a.default)(e),t)};var s=i(e("./resolve-from-possible-names")),a=i(e("./get-possible-preset-names"));t.exports=r.default}).call(this,e("_process"))},{"./get-possible-preset-names":34,"./resolve-from-possible-names":37,_process:550}],40:[function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var s=i(e("babel-runtime/helpers/typeof"));r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.cwd();if("object"===(void 0===a.default?"undefined":(0,s.default)(a.default)))return null;var r=u[t];if(!r){r=new a.default;var i=o.default.join(t,".babelrc");r.id=i,r.filename=i,r.paths=a.default._nodeModulePaths(t),u[t]=r}try{return a.default._resolveFilename(e,r)}catch(e){return null}};var a=i(e("module")),o=i(e("path")),u={};t.exports=r.default}).call(this,e("_process"))},{_process:550,"babel-runtime/helpers/typeof":138,module:193,path:546}],41:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/core-js/map")),s=n(e("babel-runtime/helpers/classCallCheck")),a=n(e("babel-runtime/helpers/possibleConstructorReturn")),o=n(e("babel-runtime/helpers/inherits")),u=function(e){function t(){(0,s.default)(this,t);var r=(0,a.default)(this,e.call(this));return r.dynamicData={},r}return(0,o.default)(t,e),t.prototype.setDynamic=function(e,t){this.dynamicData[e]=t},t.prototype.get=function(t){if(this.has(t))return e.prototype.get.call(this,t);if(Object.prototype.hasOwnProperty.call(this.dynamicData,t)){var r=this.dynamicData[t]();return this.set(t,r),r}},t}(i.default);r.default=u,t.exports=r.default},{"babel-runtime/core-js/map":122,"babel-runtime/helpers/classCallCheck":134,"babel-runtime/helpers/inherits":135,"babel-runtime/helpers/possibleConstructorReturn":137}],42:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function s(e,t){var r=[],n=h.functionExpression(null,[h.identifier("global")],h.blockStatement(r)),i=h.program([h.expressionStatement(h.callExpression(n,[u.get("selfGlobal")]))]);return r.push(h.variableDeclaration("var",[h.variableDeclarator(e,h.assignmentExpression("=",h.memberExpression(h.identifier("global"),e),h.objectExpression([])))])),t(r),i}function a(e,t){var r=[];return r.push(h.variableDeclaration("var",[h.variableDeclarator(e,h.identifier("global"))])),t(r),h.program([f({FACTORY_PARAMETERS:h.identifier("global"),BROWSER_ARGUMENTS:h.assignmentExpression("=",h.memberExpression(h.identifier("root"),e),h.objectExpression([])),COMMON_ARGUMENTS:h.identifier("exports"),AMD_ARGUMENTS:h.arrayExpression([h.stringLiteral("exports")]),FACTORY_BODY:r,UMD_ROOT:h.identifier("this")})])}function o(e,t){var r=[];return r.push(h.variableDeclaration("var",[h.variableDeclarator(e,h.objectExpression([]))])),t(r),r.push(h.expressionStatement(e)),h.program(r)}r.__esModule=!0,r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"global",r=h.identifier("babelHelpers"),n=void 0,i={global:s,umd:a,var:o}[t];if(!i)throw new Error(c.get("unsupportedOutputType",t));return n=i(r,function(t){return function(e,t,r){u.list.forEach(function(n){if(!(r&&r.indexOf(n)<0)){var i=h.identifier(n);e.push(h.expressionStatement(h.assignmentExpression("=",h.memberExpression(t,i),u.get(n))))}})}(t,r,e)}),(0,l.default)(n).code};var u=i(e("babel-helpers")),l=n(e("babel-generator")),c=i(e("babel-messages")),p=n(e("babel-template")),h=i(e("babel-types")),f=(0,p.default)('\n (function (root, factory) {\n if (typeof define === "function" && define.amd) {\n define(AMD_ARGUMENTS, factory);\n } else if (typeof exports === "object") {\n factory(COMMON_ARGUMENTS);\n } else {\n factory(BROWSER_ARGUMENTS);\n }\n })(UMD_ROOT, function (FACTORY_PARAMETERS) {\n FACTORY_BODY\n });\n');t.exports=r.default},{"babel-generator":85,"babel-helpers":109,"babel-messages":110,"babel-template":139,"babel-types":180}],43:[function(e,t,r){(function(t){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0,r.File=void 0;var s=i(e("babel-runtime/core-js/get-iterator")),a=i(e("babel-runtime/core-js/object/create")),o=i(e("babel-runtime/core-js/object/assign")),u=i(e("babel-runtime/helpers/classCallCheck")),l=i(e("babel-runtime/helpers/possibleConstructorReturn")),c=i(e("babel-runtime/helpers/inherits")),p=i(e("babel-helpers")),h=n(e("./metadata")),f=i(e("convert-source-map")),d=i(e("./options/option-manager")),m=i(e("../plugin-pass")),y=e("babel-traverse"),g=i(y),b=i(e("source-map")),v=i(e("babel-generator")),x=i(e("babel-code-frame")),E=i(e("lodash/defaults")),A=i(e("./logger")),D=i(e("../../store")),S=e("babylon"),C=n(e("../../util")),_=i(e("path")),w=n(e("babel-types")),k=i(e("../../helpers/resolve")),F=i(e("../internal-plugins/block-hoist")),T=i(e("../internal-plugins/shadow-functions")),P=/^#!.*/,B=[[F.default],[T.default]],O={enter:function(e,t){var r=e.node.loc;r&&(t.loc=r,e.stop())}},N=function(r){function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];(0,u.default)(this,n);var i=(0,l.default)(this,r.call(this));return i.pipeline=t,i.log=new A.default(i,e.filename||"unknown"),i.opts=i.initOptions(e),i.parserOpts={sourceType:i.opts.sourceType,sourceFileName:i.opts.filename,plugins:[]},i.pluginVisitors=[],i.pluginPasses=[],i.buildPluginsForOptions(i.opts),i.opts.passPerPreset&&(i.perPresetOpts=[],i.opts.presets.forEach(function(e){var t=(0,o.default)((0,a.default)(i.opts),e);i.perPresetOpts.push(t),i.buildPluginsForOptions(t)})),i.metadata={usedHelpers:[],marked:[],modules:{imports:[],exports:{exported:[],specifiers:[]}}},i.dynamicImportTypes={},i.dynamicImportIds={},i.dynamicImports=[],i.declarations={},i.usedHelpers={},i.path=null,i.ast={},i.code="",i.shebang="",i.hub=new y.Hub(i),i}return(0,c.default)(n,r),n.prototype.getMetadata=function(){var e=!1,t=this.ast.program.body,r=Array.isArray(t),n=0;for(t=r?t:(0,s.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}var a=i;if(w.isModuleDeclaration(a)){e=!0;break}}e&&this.path.traverse(h,this)},n.prototype.initOptions=function(e){(e=new d.default(this.log,this.pipeline).init(e)).inputSourceMap&&(e.sourceMaps=!0),e.moduleId&&(e.moduleIds=!0),e.basename=_.default.basename(e.filename,_.default.extname(e.filename)),e.ignore=C.arrayify(e.ignore,C.regexify),e.only&&(e.only=C.arrayify(e.only,C.regexify)),(0,E.default)(e,{moduleRoot:e.sourceRoot}),(0,E.default)(e,{sourceRoot:e.moduleRoot}),(0,E.default)(e,{filenameRelative:e.filename});var t=_.default.basename(e.filenameRelative);return(0,E.default)(e,{sourceFileName:t,sourceMapTarget:t}),e},n.prototype.buildPluginsForOptions=function(e){if(Array.isArray(e.plugins)){var t=[],r=[],n=e.plugins.concat(B),i=Array.isArray(n),a=0;for(n=i?n:(0,s.default)(n);;){var o;if(i){if(a>=n.length)break;o=n[a++]}else{if((a=n.next()).done)break;o=a.value}var u=o,l=u[0],c=u[1];t.push(l.visitor),r.push(new m.default(this,l,c)),l.manipulateOptions&&l.manipulateOptions(e,this.parserOpts,this)}this.pluginVisitors.push(t),this.pluginPasses.push(r)}},n.prototype.getModuleName=function(){var e=this.opts;if(!e.moduleIds)return null;if(null!=e.moduleId&&!e.getModuleId)return e.moduleId;var t=e.filenameRelative,r="";if(null!=e.moduleRoot&&(r=e.moduleRoot+"/"),!e.filenameRelative)return r+e.filename.replace(/^\//,"");if(null!=e.sourceRoot){var n=new RegExp("^"+e.sourceRoot+"/?");t=t.replace(n,"")}return t=t.replace(/\.(\w*?)$/,""),r+=t,r=r.replace(/\\/g,"/"),e.getModuleId?e.getModuleId(r)||r:r},n.prototype.resolveModuleSource=function(e){var t=this.opts.resolveModuleSource;return t&&(e=t(e,this.opts.filename)),e},n.prototype.addImport=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,n=e+":"+t,i=this.dynamicImportIds[n];if(!i){e=this.resolveModuleSource(e),i=this.dynamicImportIds[n]=this.scope.generateUidIdentifier(r);var s=[];"*"===t?s.push(w.importNamespaceSpecifier(i)):"default"===t?s.push(w.importDefaultSpecifier(i)):s.push(w.importSpecifier(i,w.identifier(t)));var a=w.importDeclaration(s,w.stringLiteral(e));a._blockHoist=3,this.path.unshiftContainer("body",a)}return i},n.prototype.addHelper=function(e){var t=this.declarations[e];if(t)return t;this.usedHelpers[e]||(this.metadata.usedHelpers.push(e),this.usedHelpers[e]=!0);var r=this.get("helperGenerator"),n=this.get("helpersNamespace");if(r){var i=r(e);if(i)return i}else if(n)return w.memberExpression(n,w.identifier(e));var s=(0,p.default)(e),a=this.declarations[e]=this.scope.generateUidIdentifier(e);return w.isFunctionExpression(s)&&!s.id?(s.body._compact=!0,s._generated=!0,s.id=a,s.type="FunctionDeclaration",this.path.unshiftContainer("body",s)):(s._compact=!0,this.scope.push({id:a,init:s,unique:!0})),a},n.prototype.addTemplateObject=function(e,t,r){var n=r.elements.map(function(e){return e.value}),i=e+"_"+r.elements.length+"_"+n.join(","),s=this.declarations[i];if(s)return s;var a=this.declarations[i]=this.scope.generateUidIdentifier("templateObject"),o=this.addHelper(e),u=w.callExpression(o,[t,r]);return u._compact=!0,this.scope.push({id:a,init:u,_blockHoist:1.9}),a},n.prototype.buildCodeFrameError=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:SyntaxError,n=e&&(e.loc||e._loc),i=new r(t);return n?i.loc=n.start:((0,g.default)(e,O,this.scope,i),i.message+=" (This is an error on an internal node. Probably an internal error",i.loc&&(i.message+=". Location has been estimated."),i.message+=")"),i},n.prototype.mergeSourceMap=function(e){var t=this.opts.inputSourceMap;if(t){var r=new b.default.SourceMapConsumer(t),n=new b.default.SourceMapConsumer(e),i=new b.default.SourceMapGenerator({file:r.file,sourceRoot:r.sourceRoot}),s=n.sources[0];r.eachMapping(function(e){var t=n.generatedPositionFor({line:e.generatedLine,column:e.generatedColumn,source:s});null!=t.column&&i.addMapping({source:e.source,original:null==e.source?null:{line:e.originalLine,column:e.originalColumn},generated:t})});var a=i.toJSON();return t.mappings=a.mappings,t}return e},n.prototype.parse=function(r){var n=S.parse,i=this.opts.parserOpts;if(i&&(i=(0,o.default)({},this.parserOpts,i)).parser){if("string"==typeof i.parser){var s=_.default.dirname(this.opts.filename)||t.cwd(),a=(0,k.default)(i.parser,s);if(!a)throw new Error("Couldn't find parser "+i.parser+' with "parse" method relative to directory '+s);n=e(a).parse}else n=i.parser;i.parser={parse:function(e){return(0,S.parse)(e,i)}}}this.log.debug("Parse start");var u=n(r,i||this.parserOpts);return this.log.debug("Parse stop"),u},n.prototype._addAst=function(e){this.path=y.NodePath.get({hub:this.hub,parentPath:null,parent:e,container:e,key:"program"}).setContext(),this.scope=this.path.scope,this.ast=e,this.getMetadata()},n.prototype.addAst=function(e){this.log.debug("Start set AST"),this._addAst(e),this.log.debug("End set AST")},n.prototype.transform=function(){for(var e=0;e=r.length)break;a=r[i++]}else{if((i=r.next()).done)break;a=i.value}var o=a,u=o.plugin[e];u&&u.call(o,this)}},n.prototype.parseInputSourceMap=function(e){var t=this.opts;if(!1!==t.inputSourceMap){var r=f.default.fromSource(e);r&&(t.inputSourceMap=r.toObject(),e=f.default.removeComments(e))}return e},n.prototype.parseShebang=function(){var e=P.exec(this.code);e&&(this.shebang=e[0],this.code=this.code.replace(P,""))},n.prototype.makeResult=function(e){var t=e.code,r=e.map,n=e.ast,i=e.ignored,s={metadata:null,options:this.opts,ignored:!!i,code:null,ast:null,map:r||null};return this.opts.code&&(s.code=t),this.opts.ast&&(s.ast=n),this.opts.metadata&&(s.metadata=this.metadata),s},n.prototype.generate=function(){var r=this.opts,n=this.ast,i={ast:n};if(!r.code)return this.makeResult(i);var s=v.default;if(r.generatorOpts.generator&&"string"==typeof(s=r.generatorOpts.generator)){var a=_.default.dirname(this.opts.filename)||t.cwd(),u=(0,k.default)(s,a);if(!u)throw new Error("Couldn't find generator "+s+' with "print" method relative to directory '+a);s=e(u).print}this.log.debug("Generation start");var l=s(n,r.generatorOpts?(0,o.default)(r,r.generatorOpts):r,this.code);return i.code=l.code,i.map=l.map,this.log.debug("Generation end"),this.shebang&&(i.code=this.shebang+"\n"+i.code),i.map&&(i.map=this.mergeSourceMap(i.map)),"inline"!==r.sourceMaps&&"both"!==r.sourceMaps||(i.code+="\n"+f.default.fromObject(i.map).toComment()),"inline"===r.sourceMaps&&(i.map=null),this.makeResult(i)},n}(D.default);r.default=N,r.File=N}).call(this,e("_process"))},{"../../helpers/resolve":40,"../../store":41,"../../util":57,"../internal-plugins/block-hoist":52,"../internal-plugins/shadow-functions":53,"../plugin-pass":55,"./logger":44,"./metadata":45,"./options/option-manager":49,_process:550,"babel-code-frame":21,"babel-generator":85,"babel-helpers":109,"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/object/assign":124,"babel-runtime/core-js/object/create":125,"babel-runtime/helpers/classCallCheck":134,"babel-runtime/helpers/inherits":135,"babel-runtime/helpers/possibleConstructorReturn":137,"babel-traverse":143,"babel-types":180,babylon:188,"convert-source-map":58,"lodash/defaults":495,path:546,"source-map":72}],44:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/helpers/classCallCheck")),s=n(e("debug/node")),a=(0,s.default)("babel:verbose"),o=(0,s.default)("babel"),u=[],l=function(){function e(t,r){(0,i.default)(this,e),this.filename=r,this.file=t}return e.prototype._buildMessage=function(e){var t="[BABEL] "+this.filename;return e&&(t+=": "+e),t},e.prototype.warn=function(e){console.warn(this._buildMessage(e))},e.prototype.error=function(e){throw new(arguments.length>1&&void 0!==arguments[1]?arguments[1]:Error)(this._buildMessage(e))},e.prototype.deprecate=function(e){this.file.opts&&this.file.opts.suppressDeprecationMessages||(e=this._buildMessage(e),u.indexOf(e)>=0||(u.push(e),console.error(e)))},e.prototype.verbose=function(e){a.enabled&&a(this._buildMessage(e))},e.prototype.debug=function(e){o.enabled&&o(this._buildMessage(e))},e.prototype.deopt=function(e,t){this.debug(t)},e}();r.default=l,t.exports=r.default},{"babel-runtime/helpers/classCallCheck":134,"debug/node":59}],45:[function(e,t,r){"use strict";r.__esModule=!0,r.ImportDeclaration=r.ModuleDeclaration=void 0;var n=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/get-iterator"));r.ExportDeclaration=function(e,t){var r=e.node,s=r.source?r.source.value:null,a=t.metadata.modules.exports,o=e.get("declaration");if(o.isStatement()){var u=o.getBindingIdentifiers();for(var l in u)a.exported.push(l),a.specifiers.push({kind:"local",local:l,exported:e.isExportDefaultDeclaration()?"default":l})}if(e.isExportNamedDeclaration()&&r.specifiers){var c=r.specifiers,p=Array.isArray(c),h=0;for(c=p?c:(0,n.default)(c);;){var f;if(p){if(h>=c.length)break;f=c[h++]}else{if((h=c.next()).done)break;f=h.value}var d=f,m=d.exported.name;a.exported.push(m),i.isExportDefaultSpecifier(d)&&a.specifiers.push({kind:"external",local:m,exported:m,source:s}),i.isExportNamespaceSpecifier(d)&&a.specifiers.push({kind:"external-namespace",exported:m,source:s});var y=d.local;y&&(s&&a.specifiers.push({kind:"external",local:y.name,exported:m,source:s}),s||a.specifiers.push({kind:"local",local:y.name,exported:m}))}}e.isExportAllDeclaration()&&a.specifiers.push({kind:"external-all",source:s})},r.Scope=function(e){e.skip()};var i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"));r.ModuleDeclaration={enter:function(e,t){var r=e.node;r.source&&(r.source.value=t.resolveModuleSource(r.source.value))}},r.ImportDeclaration={exit:function(e,t){var r=e.node,i=[],s=[];t.metadata.modules.imports.push({source:r.source.value,imported:s,specifiers:i});var a=e.get("specifiers"),o=Array.isArray(a),u=0;for(a=o?a:(0,n.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if((u=a.next()).done)break;l=u.value}var c=l,p=c.node.local.name;if(c.isImportDefaultSpecifier()&&(s.push("default"),i.push({kind:"named",imported:"default",local:p})),c.isImportSpecifier()){var h=c.node.imported.name;s.push(h),i.push({kind:"named",imported:h,local:p})}c.isImportNamespaceSpecifier()&&(s.push("*"),i.push({kind:"namespace",local:p}))}}}},{"babel-runtime/core-js/get-iterator":120,"babel-types":180}],46:[function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e){var t=f[e];return null==t?f[e]=h.default.existsSync(e):t}r.__esModule=!0;var a=i(e("babel-runtime/core-js/object/assign")),o=i(e("babel-runtime/helpers/classCallCheck"));r.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1],r=e.filename,n=new m(t);return!1!==e.babelrc&&n.findConfigs(r),n.mergeConfig({options:e,alias:"base",dirname:r&&p.default.dirname(r)}),n.configs};var u=i(e("../../../helpers/resolve")),l=i(e("json5")),c=i(e("path-is-absolute")),p=i(e("path")),h=i(e("fs")),f={},d={},m=function(){function e(t){(0,o.default)(this,e),this.resolvedConfigs=[],this.configs=[],this.log=t}return e.prototype.findConfigs=function(e){if(e){(0,c.default)(e)||(e=p.default.join(n.cwd(),e));for(var t=!1,r=!1;e!==(e=p.default.dirname(e));){if(!t){var i=p.default.join(e,".babelrc");s(i)&&(this.addConfig(i),t=!0);var a=p.default.join(e,"package.json");!t&&s(a)&&(t=this.addConfig(a,"babel",JSON))}if(!r){var o=p.default.join(e,".babelignore");s(o)&&(this.addIgnoreConfig(o),r=!0)}if(r&&t)return}}},e.prototype.addIgnoreConfig=function(e){var t=h.default.readFileSync(e,"utf8").split("\n");(t=t.map(function(e){return e.replace(/#(.*?)$/,"").trim()}).filter(function(e){return!!e})).length&&this.mergeConfig({options:{ignore:t},alias:e,dirname:p.default.dirname(e)})},e.prototype.addConfig=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:l.default;if(this.resolvedConfigs.indexOf(e)>=0)return!1;this.resolvedConfigs.push(e);var n=h.default.readFileSync(e,"utf8"),i=void 0;try{i=d[n]=d[n]||r.parse(n),t&&(i=i[t])}catch(t){throw t.message=e+": Error while parsing JSON - "+t.message,t}return this.mergeConfig({options:i,alias:e,dirname:p.default.dirname(e)}),!!i},e.prototype.mergeConfig=function(e){var t=e.options,r=e.alias,i=e.loc,s=e.dirname;if(!t)return!1;if(t=(0,a.default)({},t),s=s||n.cwd(),i=i||r,t.extends){var o=(0,u.default)(t.extends,s);o?this.addConfig(o):this.log&&this.log.error("Couldn't resolve extends clause of "+t.extends+" in "+r),delete t.extends}this.configs.push({options:t,alias:r,loc:i,dirname:s});var l=void 0,c=n.env.BABEL_ENV||n.env.NODE_ENV||"development";t.env&&(l=t.env[c],delete t.env),this.mergeConfig({options:l,alias:r+".env."+c,dirname:s})},e}();t.exports=r.default}).call(this,e("_process"))},{"../../../helpers/resolve":40,_process:550,"babel-runtime/core-js/object/assign":124,"babel-runtime/helpers/classCallCheck":134,fs:193,json5:324,path:546,"path-is-absolute":547}],47:[function(e,t,r){"use strict";t.exports={filename:{type:"filename",description:"filename to use when reading from stdin - this will be used in source-maps, errors etc",default:"unknown",shorthand:"f"},filenameRelative:{hidden:!0,type:"string"},inputSourceMap:{hidden:!0},env:{hidden:!0,default:{}},mode:{description:"",hidden:!0},retainLines:{type:"boolean",default:!1,description:"retain line numbers - will result in really ugly code"},highlightCode:{description:"enable/disable ANSI syntax highlighting of code frames (on by default)",type:"boolean",default:!0},suppressDeprecationMessages:{type:"boolean",default:!1,hidden:!0},presets:{type:"list",description:"",default:[]},plugins:{type:"list",default:[],description:""},ignore:{type:"list",description:"list of glob paths to **not** compile",default:[]},only:{type:"list",description:"list of glob paths to **only** compile"},code:{hidden:!0,default:!0,type:"boolean"},metadata:{hidden:!0,default:!0,type:"boolean"},ast:{hidden:!0,default:!0,type:"boolean"},extends:{type:"string",hidden:!0},comments:{type:"boolean",default:!0,description:"write comments to generated output (true by default)"},shouldPrintComment:{hidden:!0,description:"optional callback to control whether a comment should be inserted, when this is used the comments option is ignored"},wrapPluginVisitorMethod:{hidden:!0,description:"optional callback to wrap all visitor methods"},compact:{type:"booleanString",default:"auto",description:"do not include superfluous whitespace characters and line terminators [true|false|auto]"},minified:{type:"boolean",default:!1,description:"save as much bytes when printing [true|false]"},sourceMap:{alias:"sourceMaps",hidden:!0},sourceMaps:{type:"booleanString",description:"[true|false|inline]",default:!1,shorthand:"s"},sourceMapTarget:{type:"string",description:"set `file` on returned source map"},sourceFileName:{type:"string",description:"set `sources[0]` on returned source map"},sourceRoot:{type:"filename",description:"the root from which all sources are relative"},babelrc:{description:"Whether or not to look up .babelrc and .babelignore files",type:"boolean",default:!0},sourceType:{description:"",default:"module"},auxiliaryCommentBefore:{type:"string",description:"print a comment before any injected non-user code"},auxiliaryCommentAfter:{type:"string",description:"print a comment after any injected non-user code"},resolveModuleSource:{hidden:!0},getModuleId:{hidden:!0},moduleRoot:{type:"filename",description:"optional prefix for the AMD module formatter that will be prepend to the filename on module definitions"},moduleIds:{type:"boolean",default:!1,shorthand:"M",description:"insert an explicit id for modules"},moduleId:{description:"specify a custom name for module ids",type:"string"},passPerPreset:{description:"Whether to spawn a traversal pass per a preset. By default all presets are merged.",type:"boolean",default:!1,hidden:!0},parserOpts:{description:"Options to pass into the parser, or to change parsers (parserOpts.parser)",default:!1},generatorOpts:{description:"Options to pass into the generator, or to change generators (generatorOpts.generator)",default:!1}}},{}],48:[function(e,t,r){"use strict";r.__esModule=!0,r.config=void 0,r.normaliseOptions=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var t in e){var r=e[t];if(null!=r){var s=i.default[t];if(s&&s.alias&&(s=i.default[s.alias]),s){var a=n[s.type];a&&(r=a(r)),e[t]=r}}}return e};var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("./parsers")),i=function(e){return e&&e.__esModule?e:{default:e}}(e("./config"));r.config=i.default},{"./config":47,"./parsers":50}],49:[function(e,t,r){(function(n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function s(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var a=s(e("babel-runtime/helpers/objectWithoutProperties")),o=s(e("babel-runtime/core-js/json/stringify")),u=s(e("babel-runtime/core-js/object/assign")),l=s(e("babel-runtime/core-js/get-iterator")),c=s(e("babel-runtime/helpers/typeof")),p=s(e("babel-runtime/helpers/classCallCheck")),h=i(e("../../../api/node")),f=s(e("../../plugin")),d=i(e("babel-messages")),m=e("./index"),y=s(e("../../../helpers/resolve-plugin")),g=s(e("../../../helpers/resolve-preset")),b=s(e("lodash/cloneDeepWith")),v=s(e("lodash/clone")),x=s(e("../../../helpers/merge")),E=s(e("./config")),A=s(e("./removed")),D=s(e("./build-config-chain")),S=s(e("path")),C=function(){function t(e){(0,p.default)(this,t),this.resolvedConfigs=[],this.options=t.createBareOptions(),this.log=e}return t.memoisePluginContainer=function(e,r,n,i){var s=t.memoisedPlugins,a=Array.isArray(s),o=0;for(s=a?s:(0,l.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if((o=s.next()).done)break;u=o.value}var p=u;if(p.container===e)return p.plugin}var m=void 0;if("object"===(void 0===(m="function"==typeof e?e(h):e)?"undefined":(0,c.default)(m))){var y=new f.default(m,i);return t.memoisedPlugins.push({container:e,plugin:y}),y}throw new TypeError(d.get("pluginNotObject",r,n,void 0===m?"undefined":(0,c.default)(m))+r+n)},t.createBareOptions=function(){var e={};for(var t in E.default){var r=E.default[t];e[t]=(0,v.default)(r.default)}return e},t.normalisePlugin=function(e,r,n,i){if(!((e=e.__esModule?e.default:e)instanceof f.default)){if("function"!=typeof e&&"object"!==(void 0===e?"undefined":(0,c.default)(e)))throw new TypeError(d.get("pluginNotFunction",r,n,void 0===e?"undefined":(0,c.default)(e)));e=t.memoisePluginContainer(e,r,n,i)}return e.init(r,n),e},t.normalisePlugins=function(r,n,i){return i.map(function(i,s){var a=void 0,o=void 0;if(!i)throw new TypeError("Falsy value found in plugins");Array.isArray(i)?(a=i[0],o=i[1]):a=i;var u="string"==typeof a?a:r+"$"+s;if("string"==typeof a){var l=(0,y.default)(a,n);if(!l)throw new ReferenceError(d.get("pluginUnknown",a,r,s,n));a=e(l)}return a=t.normalisePlugin(a,r,s,u),[a,o]})},t.prototype.mergeOptions=function(e){var r=this,i=e.options,s=e.extending,a=e.alias,o=e.loc,l=e.dirname;if(a=a||"foreign",i){("object"!==(void 0===i?"undefined":(0,c.default)(i))||Array.isArray(i))&&this.log.error("Invalid options type for "+a,TypeError);var p=(0,b.default)(i,function(e){if(e instanceof f.default)return e});l=l||n.cwd(),o=o||a;for(var h in p){if(!E.default[h]&&this.log)if(A.default[h])this.log.error("Using removed Babel 5 option: "+a+"."+h+" - "+A.default[h].message,ReferenceError);else{var d="Unknown option: "+a+"."+h+". Check out http://babeljs.io/docs/usage/options/ for more information about options.";this.log.error(d+"\n\nA common cause of this error is the presence of a configuration options object without the corresponding preset name. Example:\n\nInvalid:\n `{ presets: [{option: value}] }`\nValid:\n `{ presets: [['presetName', {option: value}]] }`\n\nFor more detailed information on preset configuration, please see http://babeljs.io/docs/plugins/#pluginpresets-options.",ReferenceError)}}(0,m.normaliseOptions)(p),p.plugins&&(p.plugins=t.normalisePlugins(o,l,p.plugins)),p.presets&&(p.passPerPreset?p.presets=this.resolvePresets(p.presets,l,function(e,t){r.mergeOptions({options:e,extending:e,alias:t,loc:t,dirname:l})}):(this.mergePresets(p.presets,l),delete p.presets)),i===s?(0,u.default)(s,p):(0,x.default)(s||this.options,p)}},t.prototype.mergePresets=function(e,t){var r=this;this.resolvePresets(e,t,function(e,t){r.mergeOptions({options:e,alias:t,loc:t,dirname:S.default.dirname(t||"")})})},t.prototype.resolvePresets=function(t,r,n){return t.map(function(t){var i=void 0;if(Array.isArray(t)){if(t.length>2)throw new Error("Unexpected extra options "+(0,o.default)(t.slice(2))+" passed to preset.");var s=t;t=s[0],i=s[1]}var u=void 0;try{if("string"==typeof t){if(!(u=(0,g.default)(t,r)))throw new Error("Couldn't find preset "+(0,o.default)(t)+" relative to directory "+(0,o.default)(r));t=e(u)}if("object"===(void 0===t?"undefined":(0,c.default)(t))&&t.__esModule)if(t.default)t=t.default;else{var l=t;l.__esModule;t=(0,a.default)(l,["__esModule"])}if("object"===(void 0===t?"undefined":(0,c.default)(t))&&t.buildPreset&&(t=t.buildPreset),"function"!=typeof t&&void 0!==i)throw new Error("Options "+(0,o.default)(i)+" passed to "+(u||"a preset")+" which does not accept options.");if("function"==typeof t&&(t=t(h,i,{dirname:r})),"object"!==(void 0===t?"undefined":(0,c.default)(t)))throw new Error("Unsupported preset format: "+t+".");n&&n(t,u)}catch(e){throw u&&(e.message+=" (While processing preset: "+(0,o.default)(u)+")"),e}return t})},t.prototype.normaliseOptions=function(){var e=this.options;for(var t in E.default){var r=E.default[t],n=e[t];!n&&r.optional||(r.alias?e[r.alias]=e[r.alias]||n:e[t]=n)}},t.prototype.init=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,D.default)(e,this.log),r=Array.isArray(t),n=0;for(t=r?t:(0,l.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}var s=i;this.mergeOptions(s)}return this.normaliseOptions(e),this.options},t}();r.default=C,C.memoisedPlugins=[],t.exports=r.default}).call(this,e("_process"))},{"../../../api/node":32,"../../../helpers/merge":35,"../../../helpers/resolve-plugin":38,"../../../helpers/resolve-preset":39,"../../plugin":56,"./build-config-chain":46,"./config":47,"./index":48,"./removed":51,_process:550,"babel-messages":110,"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/json/stringify":121,"babel-runtime/core-js/object/assign":124,"babel-runtime/helpers/classCallCheck":134,"babel-runtime/helpers/objectWithoutProperties":136,"babel-runtime/helpers/typeof":138,"lodash/clone":491,"lodash/cloneDeepWith":493,path:546}],50:[function(e,t,r){"use strict";r.__esModule=!0,r.filename=void 0,r.boolean=function(e){return!!e},r.booleanString=function(e){return i.booleanify(e)},r.list=function(e){return i.list(e)};var n=function(e){return e&&e.__esModule?e:{default:e}}(e("slash")),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("../../../util"));r.filename=n.default},{"../../../util":57,slash:603}],51:[function(e,t,r){"use strict";t.exports={auxiliaryComment:{message:"Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`"},blacklist:{message:"Put the specific transforms you want in the `plugins` option"},breakConfig:{message:"This is not a necessary option in Babel 6"},experimental:{message:"Put the specific transforms you want in the `plugins` option"},externalHelpers:{message:"Use the `external-helpers` plugin instead. Check out http://babeljs.io/docs/plugins/external-helpers/"},extra:{message:""},jsxPragma:{message:"use the `pragma` option in the `react-jsx` plugin . Check out http://babeljs.io/docs/plugins/transform-react-jsx/"},loose:{message:"Specify the `loose` option for the relevant plugin you are using or use a preset that sets the option."},metadataUsedHelpers:{message:"Not required anymore as this is enabled by default"},modules:{message:"Use the corresponding module transform plugin in the `plugins` option. Check out http://babeljs.io/docs/plugins/#modules"},nonStandard:{message:"Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. Also check out the react preset http://babeljs.io/docs/plugins/preset-react/"},optional:{message:"Put the specific transforms you want in the `plugins` option"},sourceMapName:{message:"Use the `sourceMapTarget` option"},stage:{message:"Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets"},whitelist:{message:"Put the specific transforms you want in the `plugins` option"}}},{}],52:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("../plugin")),s=n(e("lodash/sortBy"));r.default=new i.default({name:"internal.blockHoist",visitor:{Block:{exit:function(e){for(var t=e.node,r=!1,n=0;n1&&void 0!==arguments[1]?arguments[1]:{};return t.code=!1,t.mode="lint",this.transform(e,t)},e.prototype.pretransform=function(e,t){var r=new o.default(t,this);return r.wrap(e,function(){return r.addCode(e),r.parseCode(e),r})},e.prototype.transform=function(e,t){var r=new o.default(t,this);return r.wrap(e,function(){return r.addCode(e),r.parseCode(e),r.transform()})},e.prototype.analyse=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments[2];return t.code=!1,r&&(t.plugins=t.plugins||[],t.plugins.push(new a.default({visitor:r}))),this.transform(e,t).metadata},e.prototype.transformFromAst=function(e,t,r){e=(0,s.default)(e);var n=new o.default(r,this);return n.wrap(t,function(){return n.addCode(t),n.addAst(e),n.transform()})},e}();r.default=u,t.exports=r.default},{"../helpers/normalize-ast":36,"./file":43,"./plugin":56,"babel-runtime/helpers/classCallCheck":134}],55:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/helpers/classCallCheck")),s=n(e("babel-runtime/helpers/possibleConstructorReturn")),a=n(e("babel-runtime/helpers/inherits")),o=n(e("../store")),u=(n(e("./file")),function(e){function t(r,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,i.default)(this,t);var o=(0,s.default)(this,e.call(this));return o.plugin=n,o.key=n.key,o.file=r,o.opts=a,o}return(0,a.default)(t,e),t.prototype.addHelper=function(){var e;return(e=this.file).addHelper.apply(e,arguments)},t.prototype.addImport=function(){var e;return(e=this.file).addImport.apply(e,arguments)},t.prototype.getModuleName=function(){var e;return(e=this.file).getModuleName.apply(e,arguments)},t.prototype.buildCodeFrameError=function(){var e;return(e=this.file).buildCodeFrameError.apply(e,arguments)},t}(o.default));r.default=u,t.exports=r.default},{"../store":41,"./file":43,"babel-runtime/helpers/classCallCheck":134,"babel-runtime/helpers/inherits":135,"babel-runtime/helpers/possibleConstructorReturn":137}],56:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/core-js/get-iterator")),s=n(e("babel-runtime/helpers/classCallCheck")),a=n(e("babel-runtime/helpers/possibleConstructorReturn")),o=n(e("babel-runtime/helpers/inherits")),u=n(e("./file/options/option-manager")),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-messages")),c=n(e("../store")),p=n(e("babel-traverse")),h=n(e("lodash/assign")),f=n(e("lodash/clone")),d=["enter","exit"],m=function(e){function t(r,n){(0,s.default)(this,t);var i=(0,a.default)(this,e.call(this));return i.initialized=!1,i.raw=(0,h.default)({},r),i.key=i.take("name")||n,i.manipulateOptions=i.take("manipulateOptions"),i.post=i.take("post"),i.pre=i.take("pre"),i.visitor=i.normaliseVisitor((0,f.default)(i.take("visitor"))||{}),i}return(0,o.default)(t,e),t.prototype.take=function(e){var t=this.raw[e];return delete this.raw[e],t},t.prototype.chain=function(e,t){if(!e[t])return this[t];if(!this[t])return e[t];var r=[e[t],this[t]];return function(){for(var e=void 0,t=arguments.length,n=Array(t),s=0;s=a.length)break;l=a[u++]}else{if((u=a.next()).done)break;l=u.value}if(l){var c=l.apply(this,n);null!=c&&(e=c)}}return e}},t.prototype.maybeInherit=function(e){var t=this.take("inherits");t&&(t=u.default.normalisePlugin(t,e,"inherits"),this.manipulateOptions=this.chain(t,"manipulateOptions"),this.post=this.chain(t,"post"),this.pre=this.chain(t,"pre"),this.visitor=p.default.visitors.merge([t.visitor,this.visitor]))},t.prototype.init=function(e,t){if(!this.initialized){this.initialized=!0,this.maybeInherit(e);for(var r in this.raw)throw new Error(l.get("pluginInvalidProperty",e,t,r))}},t.prototype.normaliseVisitor=function(e){var t=d,r=Array.isArray(t),n=0;for(t=r?t:(0,i.default)(t);;){var s;if(r){if(n>=t.length)break;s=t[n++]}else{if((n=t.next()).done)break;s=n.value}if(e[s])throw new Error("Plugins aren't allowed to specify catch-all enter/exit handlers. Please target individual nodes.")}return p.default.explode(e),e},t}(c.default);r.default=m,t.exports=r.default},{"../store":41,"./file/options/option-manager":49,"babel-messages":110,"babel-runtime/core-js/get-iterator":120,"babel-runtime/helpers/classCallCheck":134,"babel-runtime/helpers/inherits":135,"babel-runtime/helpers/possibleConstructorReturn":137,"babel-traverse":143,"lodash/assign":488,"lodash/clone":491}],57:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var r=t||i.EXTENSIONS,n=m.default.extname(e);return(0,f.default)(r,n)}function s(e){return e?Array.isArray(e)?e:"string"==typeof e?e.split(","):[e]:[]}function a(e,t){return e?"boolean"==typeof e?a([e],t):"string"==typeof e?a(s(e),t):Array.isArray(e)?(t&&(e=e.map(t)),e):[e]:[]}function o(e,t){return"function"==typeof e?e(t):e.test(t)}r.__esModule=!0,r.inspect=r.inherits=void 0;var u=n(e("babel-runtime/core-js/get-iterator")),l=e("util");Object.defineProperty(r,"inherits",{enumerable:!0,get:function(){return l.inherits}}),Object.defineProperty(r,"inspect",{enumerable:!0,get:function(){return l.inspect}}),r.canCompile=i,r.list=s,r.regexify=function(e){if(!e)return new RegExp(/.^/);if(Array.isArray(e)&&(e=new RegExp(e.map(c.default).join("|"),"i")),"string"==typeof e){e=(0,y.default)(e),((0,p.default)(e,"./")||(0,p.default)(e,"*/"))&&(e=e.slice(2)),(0,p.default)(e,"**/")&&(e=e.slice(3));var t=h.default.makeRe(e,{nocase:!0});return new RegExp(t.source.slice(1,-1),"i")}if((0,d.default)(e))return e;throw new TypeError("illegal type for regexify")},r.arrayify=a,r.booleanify=function(e){return"true"===e||1==e||!("false"===e||0==e||!e)&&e},r.shouldIgnore=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments[2];if(e=e.replace(/\\/g,"/"),r){var n=r,i=Array.isArray(n),s=0;for(n=i?n:(0,u.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if((s=n.next()).done)break;a=s.value}if(o(a,e))return!1}return!0}if(t.length){var l=t,c=Array.isArray(l),p=0;for(l=c?l:(0,u.default)(l);;){var h;if(c){if(p>=l.length)break;h=l[p++]}else{if((p=l.next()).done)break;h=p.value}if(o(h,e))return!0}}return!1};var c=n(e("lodash/escapeRegExp")),p=n(e("lodash/startsWith")),h=n(e("minimatch")),f=n(e("lodash/includes")),d=n(e("lodash/isRegExp")),m=n(e("path")),y=n(e("slash"));i.EXTENSIONS=[".js",".jsx",".es6",".es"]},{"babel-runtime/core-js/get-iterator":120,"lodash/escapeRegExp":497,"lodash/includes":507,"lodash/isRegExp":519,"lodash/startsWith":532,minimatch:542,path:546,slash:603,util:613}],58:[function(e,t,r){(function(t){"use strict";function n(e,n){(n=n||{}).isFileComment&&(e=function(e,t){var n=r.mapFileCommentRegex.exec(e),a=n[1]||n[2],o=s.resolve(t,a);try{return i.readFileSync(o,"utf8")}catch(e){throw new Error("An error occurred while trying to read the map file at "+o+"\n"+e)}}(e,n.commentFileDir)),n.hasComment&&(e=function(e){return e.split(",").pop()}(e)),n.isEncoded&&(e=function(e){return new t(e,"base64").toString()}(e)),(n.isJSON||n.isEncoded)&&(e=JSON.parse(e)),this.sourcemap=e}var i=e("fs"),s=e("path");Object.defineProperty(r,"commentRegex",{get:function(){return/^\s*\/(?:\/|\*)[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+?;)?base64,(?:.*)$/gm}}),Object.defineProperty(r,"mapFileCommentRegex",{get:function(){return/(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"`]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^\*]+?)[ \t]*(?:\*\/){1}[ \t]*$)/gm}}),n.prototype.toJSON=function(e){return JSON.stringify(this.sourcemap,null,e)},n.prototype.toBase64=function(){var e=this.toJSON();return new t(e).toString("base64")},n.prototype.toComment=function(e){var t="sourceMappingURL=data:application/json;charset=utf-8;base64,"+this.toBase64();return e&&e.multiline?"/*# "+t+" */":"//# "+t},n.prototype.toObject=function(){return JSON.parse(this.toJSON())},n.prototype.addProperty=function(e,t){if(this.sourcemap.hasOwnProperty(e))throw new Error('property "'+e+'" already exists on the sourcemap, use set property instead');return this.setProperty(e,t)},n.prototype.setProperty=function(e,t){return this.sourcemap[e]=t,this},n.prototype.getProperty=function(e){return this.sourcemap[e]},r.fromObject=function(e){return new n(e)},r.fromJSON=function(e){return new n(e,{isJSON:!0})},r.fromBase64=function(e){return new n(e,{isEncoded:!0})},r.fromComment=function(e){return e=e.replace(/^\/\*/g,"//").replace(/\*\/$/g,""),new n(e,{isEncoded:!0,hasComment:!0})},r.fromMapFileComment=function(e,t){return new n(e,{commentFileDir:t,isFileComment:!0,isJSON:!0})},r.fromSource=function(e){var t=e.match(r.commentRegex);return t?r.fromComment(t.pop()):null},r.fromMapFileSource=function(e,t){var n=e.match(r.mapFileCommentRegex);return n?r.fromMapFileComment(n.pop(),t):null},r.removeComments=function(e){return e.replace(r.commentRegex,"")},r.removeMapFileComments=function(e){return e.replace(r.mapFileCommentRegex,"")},r.generateMapFileComment=function(e,t){var r="sourceMappingURL="+e;return t&&t.multiline?"/*# "+r+" */":"//# "+r}}).call(this,e("buffer").Buffer)},{buffer:194,fs:193,path:546}],59:[function(e,t,r){t.exports=e("./src/node")},{"./src/node":61}],60:[function(e,t,r){function n(e){function t(){if(t.enabled){var e=t,n=+new Date,s=n-(i||n);e.diff=s,e.prev=i,e.curr=n,i=n;for(var a=new Array(arguments.length),o=0;o=0)return t}else{var r=i.toSetString(e);if(s.call(this._set,r))return this._set[r]}throw new Error('"'+e+'" is not in the set.')},n.prototype.at=function(e){if(e>=0&&e>>=5)>0&&(t|=32),r+=n.encode(t)}while(i>0);return r},r.decode=function(e,t,r){var i,s,a=e.length,o=0,u=0;do{if(t>=a)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(s=n.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));i=!!(32&s),o+=(s&=31)<>1;return 1==(1&e)?-t:t}(o),r.rest=t}},{"./base64":64}],64:[function(e,t,r){var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");r.encode=function(e){if(0<=e&&e0?t-u>1?n(u,t,i,s,a,o):o==r.LEAST_UPPER_BOUND?t1?n(e,u,i,s,a,o):o==r.LEAST_UPPER_BOUND?u:e<0?-1:e}r.GREATEST_LOWER_BOUND=1,r.LEAST_UPPER_BOUND=2,r.search=function(e,t,i,s){if(0===t.length)return-1;var a=n(-1,t.length,e,t,i,s||r.GREATEST_LOWER_BOUND);if(a<0)return-1;for(;a-1>=0&&0===i(t[a],t[a-1],!0);)--a;return a}},{}],66:[function(e,t,r){function n(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var i=e("./util");n.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},n.prototype.add=function(e){!function(e,t){var r=e.generatedLine,n=t.generatedLine,s=e.generatedColumn,a=t.generatedColumn;return n>r||n==r&&a>=s||i.compareByGeneratedPositionsInflated(e,t)<=0}(this._last,e)?(this._sorted=!1,this._array.push(e)):(this._last=e,this._array.push(e))},n.prototype.toArray=function(){return this._sorted||(this._array.sort(i.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},r.MappingList=n},{"./util":71}],67:[function(e,t,r){function n(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function i(e,t,r,s){if(r=0){var s=this._originalMappings[i];if(void 0===e.column)for(var a=s.originalLine;s&&s.originalLine===a;)n.push({line:o.getArg(s,"generatedLine",null),column:o.getArg(s,"generatedColumn",null),lastColumn:o.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i];else for(var l=s.originalColumn;s&&s.originalLine===t&&s.originalColumn==l;)n.push({line:o.getArg(s,"generatedLine",null),column:o.getArg(s,"generatedColumn",null),lastColumn:o.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i]}return n},r.SourceMapConsumer=n,(i.prototype=Object.create(n.prototype)).consumer=n,i.fromSourceMap=function(e){var t=Object.create(i.prototype),r=t._names=l.fromArray(e._names.toArray(),!0),n=t._sources=l.fromArray(e._sources.toArray(),!0);t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file;for(var a=e._mappings.toArray().slice(),u=t.__generatedMappings=[],c=t.__originalMappings=[],h=0,f=a.length;h1&&(r.source=m+i[1],m+=i[1],r.originalLine=f+i[2],f=r.originalLine,r.originalLine+=1,r.originalColumn=d+i[3],d=r.originalColumn,i.length>4&&(r.name=y+i[4],y+=i[4])),A.push(r),"number"==typeof r.originalLine&&E.push(r)}p(A,o.compareByGeneratedPositionsDeflated),this.__generatedMappings=A,p(E,o.compareByOriginalPositions),this.__originalMappings=E},i.prototype._findMapping=function(e,t,r,n,i,s){if(e[r]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[r]);if(e[n]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[n]);return u.search(e,t,i,s)},i.prototype.computeColumnSpans=function(){for(var e=0;e=0){var i=this._generatedMappings[r];if(i.generatedLine===t.generatedLine){var s=o.getArg(i,"source",null);null!==s&&(s=this._sources.at(s),null!=this.sourceRoot&&(s=o.join(this.sourceRoot,s)));var a=o.getArg(i,"name",null);return null!==a&&(a=this._names.at(a)),{source:s,line:o.getArg(i,"originalLine",null),column:o.getArg(i,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}},i.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return null==e}))},i.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=o.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var r;if(null!=this.sourceRoot&&(r=o.urlParse(this.sourceRoot))){var n=e.replace(/^file:\/\//,"");if("file"==r.scheme&&this._sources.has(n))return this.sourcesContent[this._sources.indexOf(n)];if((!r.path||"/"==r.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},i.prototype.generatedPositionFor=function(e){var t=o.getArg(e,"source");if(null!=this.sourceRoot&&(t=o.relative(this.sourceRoot,t)),!this._sources.has(t))return{line:null,column:null,lastColumn:null};var r={source:t=this._sources.indexOf(t),originalLine:o.getArg(e,"line"),originalColumn:o.getArg(e,"column")},i=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,o.getArg(e,"bias",n.GREATEST_LOWER_BOUND));if(i>=0){var s=this._originalMappings[i];if(s.source===r.source)return{line:o.getArg(s,"generatedLine",null),column:o.getArg(s,"generatedColumn",null),lastColumn:o.getArg(s,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},r.BasicSourceMapConsumer=i,(a.prototype=Object.create(n.prototype)).constructor=n,a.prototype._version=3,Object.defineProperty(a.prototype,"sources",{get:function(){for(var e=[],t=0;t0&&e.column>=0)||t||r||n)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:n}))},n.prototype._serializeMappings=function(){for(var e,t,r,n,a=0,o=1,u=0,l=0,c=0,p=0,h="",f=this._mappings.toArray(),d=0,m=f.length;d0){if(!s.compareByGeneratedPositionsInflated(t,f[d-1]))continue;e+=","}e+=i.encode(t.generatedColumn-a),a=t.generatedColumn,null!=t.source&&(n=this._sources.indexOf(t.source),e+=i.encode(n-p),p=n,e+=i.encode(t.originalLine-1-l),l=t.originalLine-1,e+=i.encode(t.originalColumn-u),u=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=i.encode(r-c),c=r)),h+=e}return h},n.prototype._generateSourcesContent=function(e,t){return e.map(function(e){if(!this._sourcesContents)return null;null!=t&&(e=s.relative(t,e));var r=s.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null},this)},n.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},n.prototype.toString=function(){return JSON.stringify(this.toJSON())},r.SourceMapGenerator=n},{"./array-set":62,"./base64-vlq":63,"./mapping-list":66,"./util":71}],70:[function(e,t,r){function n(e,t,r,n,i){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==r?null:r,this.name=null==i?null:i,this[o]=!0,null!=n&&this.add(n)}var i=e("./source-map-generator").SourceMapGenerator,s=e("./util"),a=/(\r?\n)/,o="$$$isSourceNode$$$";n.fromStringWithSourceMap=function(e,t,r){function i(e,t){if(null===e||void 0===e.source)o.add(t);else{var i=r?s.join(r,e.source):e.source;o.add(new n(e.originalLine,e.originalColumn,i,t,e.name))}}var o=new n,u=e.split(a),l=0,c=function(){function e(){return l=0;t--)this.prepend(e[t]);else{if(!e[o]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},n.prototype.walk=function(e){for(var t,r=0,n=this.children.length;r0){for(t=[],r=0;r=0;c--)"."===(a=u[c])?u.splice(c,1):".."===a?l++:l>0&&(""===a?(u.splice(c+1,l),l=0):(u.splice(c,2),l--));return""===(t=u.join("/"))&&(t=o?"/":"."),s?(s.path=t,i(s)):t}function a(e){return e}function o(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function u(e,t){return e===t?0:e>t?1:-1}r.getArg=function(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')};var l=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,c=/^data:.+\,.+$/;r.urlParse=n,r.urlGenerate=i,r.normalize=s,r.join=function(e,t){""===e&&(e="."),""===t&&(t=".");var r=n(t),a=n(e);if(a&&(e=a.path||"/"),r&&!r.scheme)return a&&(r.scheme=a.scheme),i(r);if(r||t.match(c))return t;if(a&&!a.host&&!a.path)return a.host=t,i(a);var o="/"===t.charAt(0)?t:s(e.replace(/\/+$/,"")+"/"+t);return a?(a.path=o,i(a)):o},r.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(l)},r.relative=function(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var r=0;0!==t.indexOf(e+"/");){var n=e.lastIndexOf("/");if(n<0)return t;if((e=e.slice(0,n)).match(/^([^\/]+:\/)?\/*$/))return t;++r}return Array(r+1).join("../")+t.substr(e.length+1)};var p=!("__proto__"in Object.create(null));r.toSetString=p?a:function(e){return o(e)?"$"+e:e},r.fromSetString=p?a:function(e){return o(e)?e.slice(1):e},r.compareByOriginalPositions=function(e,t,r){var n=e.source-t.source;return 0!==n?n:0!=(n=e.originalLine-t.originalLine)?n:0!=(n=e.originalColumn-t.originalColumn)||r?n:0!=(n=e.generatedColumn-t.generatedColumn)?n:0!=(n=e.generatedLine-t.generatedLine)?n:e.name-t.name},r.compareByGeneratedPositionsDeflated=function(e,t,r){var n=e.generatedLine-t.generatedLine;return 0!==n?n:0!=(n=e.generatedColumn-t.generatedColumn)||r?n:0!=(n=e.source-t.source)?n:0!=(n=e.originalLine-t.originalLine)?n:0!=(n=e.originalColumn-t.originalColumn)?n:e.name-t.name},r.compareByGeneratedPositionsInflated=function(e,t){var r=e.generatedLine-t.generatedLine;return 0!==r?r:0!=(r=e.generatedColumn-t.generatedColumn)?r:0!==(r=u(e.source,t.source))?r:0!=(r=e.originalLine-t.originalLine)?r:0!=(r=e.originalColumn-t.originalColumn)?r:u(e.name,t.name)}},{}],72:[function(e,t,r){r.SourceMapGenerator=e("./lib/source-map-generator").SourceMapGenerator,r.SourceMapConsumer=e("./lib/source-map-consumer").SourceMapConsumer,r.SourceNode=e("./lib/source-node").SourceNode},{"./lib/source-map-consumer":68,"./lib/source-map-generator":69,"./lib/source-node":70}],73:[function(e,t,r){t.exports={_args:[[{raw:"babel-core@^6.18.2",scope:null,escapedName:"babel-core",name:"babel-core",rawSpec:"^6.18.2",spec:">=6.18.2 <7.0.0",type:"range"},"/Users/evgenypoberezkin/Documents/JSON/ajv/node_modules/regenerator"]],_from:"babel-core@>=6.18.2 <7.0.0",_id:"babel-core@6.26.0",_inCache:!0,_location:"/babel-core",_nodeVersion:"6.9.0",_npmOperationalInternal:{host:"s3://npm-registry-packages",tmp:"tmp/babel-core-6.26.0.tgz_1502898861183_0.43529116874560714"},_npmUser:{name:"hzoo",email:"hi@henryzoo.com"},_npmVersion:"4.6.1",_phantomChildren:{ms:"2.0.0"},_requested:{raw:"babel-core@^6.18.2",scope:null,escapedName:"babel-core",name:"babel-core",rawSpec:"^6.18.2",spec:">=6.18.2 <7.0.0",type:"range"},_requiredBy:["/babel-register","/regenerator"],_resolved:"https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz",_shasum:"af32f78b31a6fcef119c87b0fd8d9753f03a0bb8",_shrinkwrap:null,_spec:"babel-core@^6.18.2",_where:"/Users/evgenypoberezkin/Documents/JSON/ajv/node_modules/regenerator",author:{name:"Sebastian McKenzie",email:"sebmck@gmail.com"},dependencies:{"babel-code-frame":"^6.26.0","babel-generator":"^6.26.0","babel-helpers":"^6.24.1","babel-messages":"^6.23.0","babel-register":"^6.26.0","babel-runtime":"^6.26.0","babel-template":"^6.26.0","babel-traverse":"^6.26.0","babel-types":"^6.26.0",babylon:"^6.18.0","convert-source-map":"^1.5.0",debug:"^2.6.8",json5:"^0.5.1",lodash:"^4.17.4",minimatch:"^3.0.4","path-is-absolute":"^1.0.1",private:"^0.1.7",slash:"^1.0.0","source-map":"^0.5.6"},description:"Babel compiler core.",devDependencies:{"babel-helper-fixtures":"^6.26.0","babel-helper-transform-fixture-test-runner":"^6.26.0","babel-polyfill":"^6.26.0"},directories:{},dist:{shasum:"af32f78b31a6fcef119c87b0fd8d9753f03a0bb8",tarball:"https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz"},homepage:"https://babeljs.io/",keywords:["6to5","babel","classes","const","es6","harmony","let","modules","transpile","transpiler","var","babel-core","compiler"],license:"MIT",maintainers:[{name:"thejameskyle",email:"me@thejameskyle.com"},{name:"sebmck",email:"sebmck@gmail.com"},{name:"danez",email:"daniel@tschinder.de"},{name:"hzoo",email:"hi@henryzoo.com"},{name:"loganfsmyth",email:"loganfsmyth@gmail.com"}],name:"babel-core",optionalDependencies:{},readme:"ERROR: No README data found!",repository:{type:"git",url:"https://github.com/babel/babel/tree/master/packages/babel-core"},scripts:{bench:"make bench",test:"make test"},version:"6.26.0"}},{}],74:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/helpers/classCallCheck")),s=n(e("trim-right")),a=/^[ \t]+$/,o=function(){function e(t){(0,i.default)(this,e),this._map=null,this._buf=[],this._last="",this._queue=[],this._position={line:1,column:0},this._sourcePosition={identifierName:null,line:null,column:null,filename:null},this._map=t}return e.prototype.get=function(){this._flush();var e=this._map,t={code:(0,s.default)(this._buf.join("")),map:null,rawMappings:e&&e.getRawMappings()};return e&&Object.defineProperty(t,"map",{configurable:!0,enumerable:!0,get:function(){return this.map=e.get()},set:function(e){Object.defineProperty(this,"map",{value:e,writable:!0})}}),t},e.prototype.append=function(e){this._flush();var t=this._sourcePosition,r=t.line,n=t.column,i=t.filename,s=t.identifierName;this._append(e,r,n,s,i)},e.prototype.queue=function(e){if("\n"===e)for(;this._queue.length>0&&a.test(this._queue[0][0]);)this._queue.shift();var t=this._sourcePosition,r=t.line,n=t.column,i=t.filename,s=t.identifierName;this._queue.unshift([e,r,n,s,i])},e.prototype._flush=function(){for(var e=void 0;e=this._queue.pop();)this._append.apply(this,e)},e.prototype._append=function(e,t,r,n,i){this._map&&"\n"!==e[0]&&this._map.mark(this._position.line,this._position.column,t,r,n,i),this._buf.push(e),this._last=e[e.length-1];for(var s=0;s0&&"\n"===this._queue[0][0]&&this._queue.shift()},e.prototype.removeLastSemicolon=function(){this._queue.length>0&&";"===this._queue[0][0]&&this._queue.shift()},e.prototype.endsWith=function(e){if(1===e.length){var t=void 0;if(this._queue.length>0){var r=this._queue[0][0];t=r[r.length-1]}else t=this._last;return t===e}var n=this._last+this._queue.reduce(function(e,t){return t[0]+e},"");return e.length<=n.length&&n.slice(-e.length)===e},e.prototype.hasContent=function(){return this._queue.length>0||!!this._last},e.prototype.source=function(e,t){if(!e||t){var r=t?t[e]:null;this._sourcePosition.identifierName=t&&t.identifierName||null,this._sourcePosition.line=r?r.line:null,this._sourcePosition.column=r?r.column:null,this._sourcePosition.filename=t&&t.filename||null}},e.prototype.withSource=function(e,t,r){if(!this._map)return r();var n=this._sourcePosition.line,i=this._sourcePosition.column,s=this._sourcePosition.filename,a=this._sourcePosition.identifierName;this.source(e,t),r(),this._sourcePosition.line=n,this._sourcePosition.column=i,this._sourcePosition.filename=s,this._sourcePosition.identifierName=a},e.prototype.getCurrentColumn=function(){var e=this._queue.reduce(function(e,t){return t[0]+e},""),t=e.lastIndexOf("\n");return-1===t?this._position.column+e.length:e.length-1-t},e.prototype.getCurrentLine=function(){for(var e=this._queue.reduce(function(e,t){return t[0]+e},""),t=0,r=0;r")}function a(){this.space(),this.token("|"),this.space()}r.__esModule=!0,r.TypeParameterDeclaration=r.StringLiteralTypeAnnotation=r.NumericLiteralTypeAnnotation=r.GenericTypeAnnotation=r.ClassImplements=void 0,r.AnyTypeAnnotation=function(){this.word("any")},r.ArrayTypeAnnotation=function(e){this.print(e.elementType,e),this.token("["),this.token("]")},r.BooleanTypeAnnotation=function(){this.word("boolean")},r.BooleanLiteralTypeAnnotation=function(e){this.word(e.value?"true":"false")},r.NullLiteralTypeAnnotation=function(){this.word("null")},r.DeclareClass=function(e,t){u.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.word("class"),this.space(),this._interfaceish(e)},r.DeclareFunction=function(e,t){u.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.word("function"),this.space(),this.print(e.id,e),this.print(e.id.typeAnnotation.typeAnnotation,e),this.semicolon()},r.DeclareInterface=function(e){this.word("declare"),this.space(),this.InterfaceDeclaration(e)},r.DeclareModule=function(e){this.word("declare"),this.space(),this.word("module"),this.space(),this.print(e.id,e),this.space(),this.print(e.body,e)},r.DeclareModuleExports=function(e){this.word("declare"),this.space(),this.word("module"),this.token("."),this.word("exports"),this.print(e.typeAnnotation,e)},r.DeclareTypeAlias=function(e){this.word("declare"),this.space(),this.TypeAlias(e)},r.DeclareOpaqueType=function(e,t){u.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.OpaqueType(e)},r.DeclareVariable=function(e,t){u.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.word("var"),this.space(),this.print(e.id,e),this.print(e.id.typeAnnotation,e),this.semicolon()},r.DeclareExportDeclaration=function(e){this.word("declare"),this.space(),this.word("export"),this.space(),e.default&&(this.word("default"),this.space()),function(e){if(e.declaration){var t=e.declaration;this.print(t,e),u.isStatement(t)||this.semicolon()}else this.token("{"),e.specifiers.length&&(this.space(),this.printList(e.specifiers,e),this.space()),this.token("}"),e.source&&(this.space(),this.word("from"),this.space(),this.print(e.source,e)),this.semicolon()}.apply(this,arguments)},r.ExistentialTypeParam=function(){this.token("*")},r.FunctionTypeAnnotation=function(e,t){this.print(e.typeParameters,e),this.token("("),this.printList(e.params,e),e.rest&&(e.params.length&&(this.token(","),this.space()),this.token("..."),this.print(e.rest,e)),this.token(")"),"ObjectTypeCallProperty"===t.type||"DeclareFunction"===t.type?this.token(":"):(this.space(),this.token("=>")),this.space(),this.print(e.returnType,e)},r.FunctionTypeParam=function(e){this.print(e.name,e),e.optional&&this.token("?"),this.token(":"),this.space(),this.print(e.typeAnnotation,e)},r.InterfaceExtends=n,r._interfaceish=function(e){this.print(e.id,e),this.print(e.typeParameters,e),e.extends.length&&(this.space(),this.word("extends"),this.space(),this.printList(e.extends,e)),e.mixins&&e.mixins.length&&(this.space(),this.word("mixins"),this.space(),this.printList(e.mixins,e)),this.space(),this.print(e.body,e)},r._variance=function(e){"plus"===e.variance?this.token("+"):"minus"===e.variance&&this.token("-")},r.InterfaceDeclaration=function(e){this.word("interface"),this.space(),this._interfaceish(e)},r.IntersectionTypeAnnotation=function(e){this.printJoin(e.types,e,{separator:i})},r.MixedTypeAnnotation=function(){this.word("mixed")},r.EmptyTypeAnnotation=function(){this.word("empty")},r.NullableTypeAnnotation=function(e){this.token("?"),this.print(e.typeAnnotation,e)};var o=e("./types");Object.defineProperty(r,"NumericLiteralTypeAnnotation",{enumerable:!0,get:function(){return o.NumericLiteral}}),Object.defineProperty(r,"StringLiteralTypeAnnotation",{enumerable:!0,get:function(){return o.StringLiteral}}),r.NumberTypeAnnotation=function(){this.word("number")},r.StringTypeAnnotation=function(){this.word("string")},r.ThisTypeAnnotation=function(){this.word("this")},r.TupleTypeAnnotation=function(e){this.token("["),this.printList(e.types,e),this.token("]")},r.TypeofTypeAnnotation=function(e){this.word("typeof"),this.space(),this.print(e.argument,e)},r.TypeAlias=function(e){this.word("type"),this.space(),this.print(e.id,e),this.print(e.typeParameters,e),this.space(),this.token("="),this.space(),this.print(e.right,e),this.semicolon()},r.OpaqueType=function(e){this.word("opaque"),this.space(),this.word("type"),this.space(),this.print(e.id,e),this.print(e.typeParameters,e),e.supertype&&(this.token(":"),this.space(),this.print(e.supertype,e)),e.impltype&&(this.space(),this.token("="),this.space(),this.print(e.impltype,e)),this.semicolon()},r.TypeAnnotation=function(e){this.token(":"),this.space(),e.optional&&this.token("?"),this.print(e.typeAnnotation,e)},r.TypeParameter=function(e){this._variance(e),this.word(e.name),e.bound&&this.print(e.bound,e),e.default&&(this.space(),this.token("="),this.space(),this.print(e.default,e))},r.TypeParameterInstantiation=s,r.ObjectTypeAnnotation=function(e){var t=this;e.exact?this.token("{|"):this.token("{");var r=e.properties.concat(e.callProperties,e.indexers);r.length&&(this.space(),this.printJoin(r,e,{addNewlines:function(e){if(e&&!r[0])return 1},indent:!0,statement:!0,iterator:function(){1!==r.length&&(t.format.flowCommaSeparator?t.token(","):t.semicolon(),t.space())}}),this.space()),e.exact?this.token("|}"):this.token("}")},r.ObjectTypeCallProperty=function(e){e.static&&(this.word("static"),this.space()),this.print(e.value,e)},r.ObjectTypeIndexer=function(e){e.static&&(this.word("static"),this.space()),this._variance(e),this.token("["),this.print(e.id,e),this.token(":"),this.space(),this.print(e.key,e),this.token("]"),this.token(":"),this.space(),this.print(e.value,e)},r.ObjectTypeProperty=function(e){e.static&&(this.word("static"),this.space()),this._variance(e),this.print(e.key,e),e.optional&&this.token("?"),this.token(":"),this.space(),this.print(e.value,e)},r.ObjectTypeSpreadProperty=function(e){this.token("..."),this.print(e.argument,e)},r.QualifiedTypeIdentifier=function(e){this.print(e.qualification,e),this.token("."),this.print(e.id,e)},r.UnionTypeAnnotation=function(e){this.printJoin(e.types,e,{separator:a})},r.TypeCastExpression=function(e){this.token("("),this.print(e.expression,e),this.print(e.typeAnnotation,e),this.token(")")},r.VoidTypeAnnotation=function(){this.word("void")};var u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"));r.ClassImplements=n,r.GenericTypeAnnotation=n,r.TypeParameterDeclaration=s},{"./types":84,"babel-types":180}],79:[function(e,t,r){"use strict";function n(){this.space()}r.__esModule=!0;var i=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/get-iterator"));r.JSXAttribute=function(e){this.print(e.name,e),e.value&&(this.token("="),this.print(e.value,e))},r.JSXIdentifier=function(e){this.word(e.name)},r.JSXNamespacedName=function(e){this.print(e.namespace,e),this.token(":"),this.print(e.name,e)},r.JSXMemberExpression=function(e){this.print(e.object,e),this.token("."),this.print(e.property,e)},r.JSXSpreadAttribute=function(e){this.token("{"),this.token("..."),this.print(e.argument,e),this.token("}")},r.JSXExpressionContainer=function(e){this.token("{"),this.print(e.expression,e),this.token("}")},r.JSXSpreadChild=function(e){this.token("{"),this.token("..."),this.print(e.expression,e),this.token("}")},r.JSXText=function(e){this.token(e.value)},r.JSXElement=function(e){var t=e.openingElement;if(this.print(t,e),!t.selfClosing){this.indent();var r=e.children,n=Array.isArray(r),s=0;for(r=n?r:(0,i.default)(r);;){var a;if(n){if(s>=r.length)break;a=r[s++]}else{if((s=r.next()).done)break;a=s.value}var o=a;this.print(o,e)}this.dedent(),this.print(e.closingElement,e)}},r.JSXOpeningElement=function(e){this.token("<"),this.print(e.name,e),e.attributes.length>0&&(this.space(),this.printJoin(e.attributes,e,{separator:n})),e.selfClosing?(this.space(),this.token("/>")):this.token(">")},r.JSXClosingElement=function(e){this.token("")},r.JSXEmptyExpression=function(){}},{"babel-runtime/core-js/get-iterator":120}],80:[function(e,t,r){"use strict";function n(e){e.async&&(this.word("async"),this.space()),this.word("function"),e.generator&&this.token("*"),e.id?(this.space(),this.print(e.id,e)):this.space(),this._params(e),this.space(),this.print(e.body,e)}r.__esModule=!0,r.FunctionDeclaration=void 0,r._params=function(e){var t=this;this.print(e.typeParameters,e),this.token("("),this.printList(e.params,e,{iterator:function(e){e.optional&&t.token("?"),t.print(e.typeAnnotation,e)}}),this.token(")"),e.returnType&&this.print(e.returnType,e)},r._method=function(e){var t=e.kind,r=e.key;"method"!==t&&"init"!==t||e.generator&&this.token("*"),"get"!==t&&"set"!==t||(this.word(t),this.space()),e.async&&(this.word("async"),this.space()),e.computed?(this.token("["),this.print(r,e),this.token("]")):this.print(r,e),this._params(e),this.space(),this.print(e.body,e)},r.FunctionExpression=n,r.ArrowFunctionExpression=function(e){e.async&&(this.word("async"),this.space());var t=e.params[0];1===e.params.length&&i.isIdentifier(t)&&!function(e,t){return e.typeParameters||e.returnType||t.typeAnnotation||t.optional||t.trailingComments}(e,t)?this.print(t,e):this._params(e),this.space(),this.token("=>"),this.space(),this.print(e.body,e)};var i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"));r.FunctionDeclaration=n},{"babel-types":180}],81:[function(e,t,r){"use strict";function n(e){if(e.declaration){var t=e.declaration;this.print(t,e),i.isStatement(t)||this.semicolon()}else{"type"===e.exportKind&&(this.word("type"),this.space());for(var r=e.specifiers.slice(0),n=!1;;){var s=r[0];if(!i.isExportDefaultSpecifier(s)&&!i.isExportNamespaceSpecifier(s))break;n=!0,this.print(r.shift(),e),r.length&&(this.token(","),this.space())}(r.length||!r.length&&!n)&&(this.token("{"),r.length&&(this.space(),this.printList(r,e),this.space()),this.token("}")),e.source&&(this.space(),this.word("from"),this.space(),this.print(e.source,e)),this.semicolon()}}r.__esModule=!0,r.ImportSpecifier=function(e){"type"!==e.importKind&&"typeof"!==e.importKind||(this.word(e.importKind),this.space()),this.print(e.imported,e),e.local&&e.local.name!==e.imported.name&&(this.space(),this.word("as"),this.space(),this.print(e.local,e))},r.ImportDefaultSpecifier=function(e){this.print(e.local,e)},r.ExportDefaultSpecifier=function(e){this.print(e.exported,e)},r.ExportSpecifier=function(e){this.print(e.local,e),e.exported&&e.local.name!==e.exported.name&&(this.space(),this.word("as"),this.space(),this.print(e.exported,e))},r.ExportNamespaceSpecifier=function(e){this.token("*"),this.space(),this.word("as"),this.space(),this.print(e.exported,e)},r.ExportAllDeclaration=function(e){this.word("export"),this.space(),this.token("*"),this.space(),this.word("from"),this.space(),this.print(e.source,e),this.semicolon()},r.ExportNamedDeclaration=function(){this.word("export"),this.space(),n.apply(this,arguments)},r.ExportDefaultDeclaration=function(){this.word("export"),this.space(),this.word("default"),this.space(),n.apply(this,arguments)},r.ImportDeclaration=function(e){this.word("import"),this.space(),"type"!==e.importKind&&"typeof"!==e.importKind||(this.word(e.importKind),this.space());var t=e.specifiers.slice(0);if(t&&t.length){for(;;){var r=t[0];if(!i.isImportDefaultSpecifier(r)&&!i.isImportNamespaceSpecifier(r))break;this.print(t.shift(),e),t.length&&(this.token(","),this.space())}t.length&&(this.token("{"),this.space(),this.printList(t,e),this.space(),this.token("}")),this.space(),this.word("from"),this.space()}this.print(e.source,e),this.semicolon()},r.ImportNamespaceSpecifier=function(e){this.token("*"),this.space(),this.word("as"),this.space(),this.print(e.local,e)};var i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"))},{"babel-types":180}],82:[function(e,t,r){"use strict";function n(e){return u.isStatement(e.body)?n(e.body):e}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"label";return function(r){this.word(e);var n=r[t];if(n){this.space();var i=this.startTerminatorless();this.print(n,r),this.endTerminatorless(i)}this.semicolon()}}function s(){if(this.token(","),this.newline(),this.endsWith("\n"))for(var e=0;e<4;e++)this.space(!0)}function a(){if(this.token(","),this.newline(),this.endsWith("\n"))for(var e=0;e<6;e++)this.space(!0)}r.__esModule=!0,r.ThrowStatement=r.BreakStatement=r.ReturnStatement=r.ContinueStatement=r.ForAwaitStatement=r.ForOfStatement=r.ForInStatement=void 0;var o=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/get-iterator"));r.WithStatement=function(e){this.word("with"),this.space(),this.token("("),this.print(e.object,e),this.token(")"),this.printBlock(e)},r.IfStatement=function(e){this.word("if"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.space();var t=e.alternate&&u.isIfStatement(n(e.consequent));t&&(this.token("{"),this.newline(),this.indent()),this.printAndIndentOnComments(e.consequent,e),t&&(this.dedent(),this.newline(),this.token("}")),e.alternate&&(this.endsWith("}")&&this.space(),this.word("else"),this.space(),this.printAndIndentOnComments(e.alternate,e))},r.ForStatement=function(e){this.word("for"),this.space(),this.token("("),this.inForStatementInitCounter++,this.print(e.init,e),this.inForStatementInitCounter--,this.token(";"),e.test&&(this.space(),this.print(e.test,e)),this.token(";"),e.update&&(this.space(),this.print(e.update,e)),this.token(")"),this.printBlock(e)},r.WhileStatement=function(e){this.word("while"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.printBlock(e)},r.DoWhileStatement=function(e){this.word("do"),this.space(),this.print(e.body,e),this.space(),this.word("while"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.semicolon()},r.LabeledStatement=function(e){this.print(e.label,e),this.token(":"),this.space(),this.print(e.body,e)},r.TryStatement=function(e){this.word("try"),this.space(),this.print(e.block,e),this.space(),e.handlers?this.print(e.handlers[0],e):this.print(e.handler,e),e.finalizer&&(this.space(),this.word("finally"),this.space(),this.print(e.finalizer,e))},r.CatchClause=function(e){this.word("catch"),this.space(),this.token("("),this.print(e.param,e),this.token(")"),this.space(),this.print(e.body,e)},r.SwitchStatement=function(e){this.word("switch"),this.space(),this.token("("),this.print(e.discriminant,e),this.token(")"),this.space(),this.token("{"),this.printSequence(e.cases,e,{indent:!0,addNewlines:function(t,r){if(!t&&e.cases[e.cases.length-1]===r)return-1}}),this.token("}")},r.SwitchCase=function(e){e.test?(this.word("case"),this.space(),this.print(e.test,e),this.token(":")):(this.word("default"),this.token(":")),e.consequent.length&&(this.newline(),this.printSequence(e.consequent,e,{indent:!0}))},r.DebuggerStatement=function(){this.word("debugger"),this.semicolon()},r.VariableDeclaration=function(e,t){this.word(e.kind),this.space();var r=!1;if(!u.isFor(t)){var n=e.declarations,i=Array.isArray(n),l=0;for(n=i?n:(0,o.default)(n);;){var c;if(i){if(l>=n.length)break;c=n[l++]}else{if((l=n.next()).done)break;c=l.value}c.init&&(r=!0)}}var p=void 0;r&&(p="const"===e.kind?a:s),this.printList(e.declarations,e,{separator:p}),(!u.isFor(t)||t.left!==e&&t.init!==e)&&this.semicolon()},r.VariableDeclarator=function(e){this.print(e.id,e),this.print(e.id.typeAnnotation,e),e.init&&(this.space(),this.token("="),this.space(),this.print(e.init,e))};var u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types")),l=function(e){return function(t){this.word("for"),this.space(),"await"===e&&(this.word("await"),this.space()),this.token("("),this.print(t.left,t),this.space(),this.word("await"===e?"of":e),this.space(),this.print(t.right,t),this.token(")"),this.printBlock(t)}};r.ForInStatement=l("in"),r.ForOfStatement=l("of"),r.ForAwaitStatement=l("await"),r.ContinueStatement=i("continue"),r.ReturnStatement=i("return","argument"),r.BreakStatement=i("break"),r.ThrowStatement=i("throw","argument")},{"babel-runtime/core-js/get-iterator":120,"babel-types":180}],83:[function(e,t,r){"use strict";r.__esModule=!0,r.TaggedTemplateExpression=function(e){this.print(e.tag,e),this.print(e.quasi,e)},r.TemplateElement=function(e,t){var r=t.quasis[0]===e,n=t.quasis[t.quasis.length-1]===e,i=(r?"`":"}")+e.value.raw+(n?"`":"${");this.token(i)},r.TemplateLiteral=function(e){for(var t=e.quasis,r=0;r0&&this.space(),this.print(i,e),n1&&void 0!==arguments[1]?arguments[1]:{},a=arguments[2];(0,i.default)(this,t);var c=r.tokens||[],p=function(e,t,r){var n=" ";if(e&&"string"==typeof e){var i=(0,o.default)(e).indent;i&&" "!==i&&(n=i)}var s={auxiliaryCommentBefore:t.auxiliaryCommentBefore,auxiliaryCommentAfter:t.auxiliaryCommentAfter,shouldPrintComment:t.shouldPrintComment,retainLines:t.retainLines,retainFunctionParens:t.retainFunctionParens,comments:null==t.comments||t.comments,compact:t.compact,minified:t.minified,concise:t.concise,quotes:t.quotes||function(e,t){if(!e)return"double";for(var r={single:0,double:0},n=0,i=0;i=3)break}}return r.single>r.double?"single":"double"}(e,r),jsonCompatibleStrings:t.jsonCompatibleStrings,indent:{adjustMultilineComment:!0,style:n,base:0},flowCommaSeparator:t.flowCommaSeparator};return s.minified?(s.compact=!0,s.shouldPrintComment=s.shouldPrintComment||function(){return s.comments}):s.shouldPrintComment=s.shouldPrintComment||function(e){return s.comments||e.indexOf("@license")>=0||e.indexOf("@preserve")>=0},"auto"===s.compact&&(s.compact=e.length>5e5,s.compact&&console.error("[BABEL] "+l.get("codeGeneratorDeopt",t.filename,"500KB"))),s.compact&&(s.indent.adjustMultilineComment=!1),s}(a,n,c),h=n.sourceMaps?new u.default(n,a):null,f=(0,s.default)(this,e.call(this,p,h,c));return f.ast=r,f}return(0,a.default)(t,e),t.prototype.generate=function(){return e.prototype.generate.call(this,this.ast)},t}(n(e("./printer")).default);r.CodeGenerator=function(){function e(t,r,n){(0,i.default)(this,e),this._generator=new c(t,r,n)}return e.prototype.generate=function(){return this._generator.generate()},e}()},{"./printer":89,"./source-map":90,"babel-messages":110,"babel-runtime/helpers/classCallCheck":134,"babel-runtime/helpers/inherits":135,"babel-runtime/helpers/possibleConstructorReturn":137,"detect-indent":311}],86:[function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){function t(e,t){var n=r[e];r[e]=n?function(e,r,i){var s=n(e,r,i);return null==s?t(e,r,i):s}:t}var r={},n=(0,c.default)(e),i=Array.isArray(n),s=0;for(n=i?n:(0,l.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if((s=n.next()).done)break;a=s.value}var o=a,u=f.FLIPPED_ALIAS_KEYS[o];if(u){var p=u,h=Array.isArray(p),d=0;for(p=h?p:(0,l.default)(p);;){var m;if(h){if(d>=p.length)break;m=p[d++]}else{if((d=p.next()).done)break;m=d.value}t(m,e[o])}}else t(o,e[o])}return r}function a(e,t,r,n){var i=e[t.type];return i?i(t,r,n):null}function o(e){return!!f.isCallExpression(e)||!!f.isMemberExpression(e)&&(o(e.object)||!e.computed&&o(e.property))}function u(e,t,r){if(!e)return 0;f.isExpressionStatement(e)&&(e=e.expression);var n=a(m,e,t);if(!n){var i=a(y,e,t);if(i)for(var s=0;s1&&void 0!==arguments[1]?arguments[1]:{},r=t.considerArrow,n=void 0!==r&&r,i=t.considerDefaultExports,s=void 0!==i&&i,a=e.length-1,o=e[a],l=e[--a];a>0;){if(u.isExpressionStatement(l,{expression:o})||u.isTaggedTemplateExpression(l)||s&&u.isExportDefaultDeclaration(l,{declaration:o})||n&&u.isArrowFunctionExpression(l,{body:o}))return!0;if(!(u.isCallExpression(l,{callee:o})||u.isSequenceExpression(l)&&l.expressions[0]===o||u.isMemberExpression(l,{object:o})||u.isConditional(l,{test:o})||u.isBinary(l,{left:o})||u.isAssignmentExpression(l,{left:o})))return!1;o=l,l=e[--a]}return!1}r.__esModule=!0,r.AwaitExpression=r.FunctionTypeAnnotation=void 0,r.NullableTypeAnnotation=n,r.UpdateExpression=function(e,t){return u.isMemberExpression(t)&&t.object===e},r.ObjectExpression=function(e,t,r){return o(r,{considerArrow:!0})},r.DoExpression=function(e,t,r){return o(r)},r.Binary=function(e,t){if((u.isCallExpression(t)||u.isNewExpression(t))&&t.callee===e||u.isUnaryLike(t)||u.isMemberExpression(t)&&t.object===e||u.isAwaitExpression(t))return!0;if(u.isBinary(t)){var r=t.operator,n=l[r],i=e.operator,s=l[i];if(n===s&&t.right===e&&!u.isLogicalExpression(t)||n>s)return!0}return!1},r.BinaryExpression=function(e,t){return"in"===e.operator&&(u.isVariableDeclarator(t)||u.isFor(t))},r.SequenceExpression=function(e,t){return!(u.isForStatement(t)||u.isThrowStatement(t)||u.isReturnStatement(t)||u.isIfStatement(t)&&t.test===e||u.isWhileStatement(t)&&t.test===e||u.isForInStatement(t)&&t.right===e||u.isSwitchStatement(t)&&t.discriminant===e||u.isExpressionStatement(t)&&t.expression===e)},r.YieldExpression=i,r.ClassExpression=function(e,t,r){return o(r,{considerDefaultExports:!0})},r.UnaryLike=s,r.FunctionExpression=function(e,t,r){return o(r,{considerDefaultExports:!0})},r.ArrowFunctionExpression=function(e,t){return!!(u.isExportDeclaration(t)||u.isBinaryExpression(t)||u.isLogicalExpression(t)||u.isUnaryExpression(t)||u.isTaggedTemplateExpression(t))||s(e,t)},r.ConditionalExpression=a,r.AssignmentExpression=function(e){return!!u.isObjectPattern(e.left)||a.apply(void 0,arguments)};var u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types")),l={"||":0,"&&":1,"|":2,"^":3,"&":4,"==":5,"===":5,"!=":5,"!==":5,"<":6,">":6,"<=":6,">=":6,in:6,instanceof:6,">>":7,"<<":7,">>>":7,"+":8,"-":8,"*":9,"/":9,"%":9,"**":10};r.FunctionTypeAnnotation=n,r.AwaitExpression=i},{"babel-types":180}],88:[function(e,t,r){"use strict";function n(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return o.isMemberExpression(e)?(n(e.object,t),e.computed&&n(e.property,t)):o.isBinary(e)||o.isAssignmentExpression(e)?(n(e.left,t),n(e.right,t)):o.isCallExpression(e)?(t.hasCall=!0,n(e.callee,t)):o.isFunction(e)?t.hasFunction=!0:o.isIdentifier(e)&&(t.hasHelper=t.hasHelper||i(e.callee)),t}function i(e){return o.isMemberExpression(e)?i(e.object)||i(e.property):o.isIdentifier(e)?"require"===e.name||"_"===e.name[0]:o.isCallExpression(e)?i(e.callee):!(!o.isBinary(e)&&!o.isAssignmentExpression(e))&&(o.isIdentifier(e.left)&&i(e.left)||i(e.right))}function s(e){return o.isLiteral(e)||o.isObjectExpression(e)||o.isArrayExpression(e)||o.isIdentifier(e)||o.isMemberExpression(e)}var a=function(e){return e&&e.__esModule?e:{default:e}}(e("lodash/map")),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"));r.nodes={AssignmentExpression:function(e){var t=n(e.right);if(t.hasCall&&t.hasHelper||t.hasFunction)return{before:t.hasFunction,after:!0}},SwitchCase:function(e,t){return{before:e.consequent.length||t.cases[0]===e}},LogicalExpression:function(e){if(o.isFunction(e.left)||o.isFunction(e.right))return{after:!0}},Literal:function(e){if("use strict"===e.value)return{after:!0}},CallExpression:function(e){if(o.isFunction(e.callee)||i(e))return{before:!0,after:!0}},VariableDeclaration:function(e){for(var t=0;t0?new g.default(n):null}return e.prototype.generate=function(e){return this.print(e),this._maybeAddAuxComment(),this._buf.get()},e.prototype.indent=function(){this.format.compact||this.format.concise||this._indent++},e.prototype.dedent=function(){this.format.compact||this.format.concise||this._indent--},e.prototype.semicolon=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._maybeAddAuxComment(),this._append(";",!e)},e.prototype.rightBrace=function(){this.format.minified&&this._buf.removeLastSemicolon(),this.token("}")},e.prototype.space=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.format.compact||(this._buf.hasContent()&&!this.endsWith(" ")&&!this.endsWith("\n")||e)&&this._space()},e.prototype.word=function(e){this._endsWithWord&&this._space(),this._maybeAddAuxComment(),this._append(e),this._endsWithWord=!0},e.prototype.number=function(e){this.word(e),this._endsWithInteger=(0,f.default)(+e)&&!E.test(e)&&!v.test(e)&&!x.test(e)&&"."!==e[e.length-1]},e.prototype.token=function(e){("--"===e&&this.endsWith("!")||"+"===e[0]&&this.endsWith("+")||"-"===e[0]&&this.endsWith("-")||"."===e[0]&&this._endsWithInteger)&&this._space(),this._maybeAddAuxComment(),this._append(e)},e.prototype.newline=function(e){if(!this.format.retainLines&&!this.format.compact)if(this.format.concise)this.space();else if(!(this.endsWith("\n\n")||("number"!=typeof e&&(e=1),e=Math.min(2,e),(this.endsWith("{\n")||this.endsWith(":\n"))&&e--,e<=0)))for(var t=0;t1&&void 0!==arguments[1]&&arguments[1];this._maybeAddParen(e),this._maybeIndent(e),t?this._buf.queue(e):this._buf.append(e),this._endsWithWord=!1,this._endsWithInteger=!1},e.prototype._maybeIndent=function(e){this._indent&&this.endsWith("\n")&&"\n"!==e[0]&&this._buf.queue(this._getIndent())},e.prototype._maybeAddParen=function(e){var t=this._parenPushNewlineState;if(t){this._parenPushNewlineState=null;var r=void 0;for(r=0;r2&&void 0!==arguments[2]?arguments[2]:{};if(e&&e.length){r.indent&&this.indent();for(var n={addNewlines:r.addNewlines},i=0;i1&&void 0!==arguments[1])||arguments[1];e.innerComments&&(t&&this.indent(),this._printComments(e.innerComments),t&&this.dedent())},e.prototype.printSequence=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.statement=!0,this.printJoin(e,t,r)},e.prototype.printList=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return null==r.separator&&(r.separator=s),this.printJoin(e,t,r)},e.prototype._printNewline=function(e,t,r,n){var i=this;if(!this.format.retainLines&&!this.format.compact)if(this.format.concise)this.space();else{var s=0;if(null!=t.start&&!t._ignoreUserWhitespace&&this._whitespace)if(e){var a=t.leadingComments,o=a&&(0,p.default)(a,function(e){return!!e.loc&&i.format.shouldPrintComment(e.value)});s=this._whitespace.getNewlinesBefore(o||t)}else{var u=t.trailingComments,l=u&&(0,h.default)(u,function(e){return!!e.loc&&i.format.shouldPrintComment(e.value)});s=this._whitespace.getNewlinesAfter(l||t)}else{e||s++,n.addNewlines&&(s+=n.addNewlines(e,t)||0);var c=y.needsWhitespaceAfter;e&&(c=y.needsWhitespaceBefore),c(t,r)&&s++,this._buf.hasContent()||(s=0)}this.newline(s)}},e.prototype._getComments=function(e,t){return t&&(e?t.leadingComments:t.trailingComments)||[]},e.prototype._printComment=function(e){var t=this;if(this.format.shouldPrintComment(e.value)&&!e.ignore&&!this._printedComments.has(e)){if(this._printedComments.add(e),null!=e.start){if(this._printedCommentStarts[e.start])return;this._printedCommentStarts[e.start]=!0}this.newline(this._whitespace?this._whitespace.getNewlinesBefore(e):0),this.endsWith("[")||this.endsWith("{")||this.space();var r="CommentLine"===e.type?"//"+e.value+"\n":"/*"+e.value+"*/";if("CommentBlock"===e.type&&this.format.indent.adjustMultilineComment){var n=e.loc&&e.loc.start.column;if(n){var i=new RegExp("\\n\\s{1,"+n+"}","g");r=r.replace(i,"\n")}var s=Math.max(this._getIndent().length,this._buf.getCurrentColumn());r=r.replace(/\n(?!$)/g,"\n"+(0,d.default)(" ",s))}this.withSource("start",e.loc,function(){t._append(r)}),this.newline((this._whitespace?this._whitespace.getNewlinesAfter(e):0)+("CommentLine"===e.type?-1:0))}},e.prototype._printComments=function(e){if(e&&e.length){var t=e,r=Array.isArray(t),n=0;for(t=r?t:(0,o.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}var s=i;this._printComment(s)}}},e}();r.default=A;for(var D=[e("./generators/template-literals"),e("./generators/expressions"),e("./generators/statements"),e("./generators/classes"),e("./generators/methods"),e("./generators/modules"),e("./generators/types"),e("./generators/flow"),e("./generators/base"),e("./generators/jsx")],S=0;S=0){for(;i&&e.start===n[i-1].start;)--i;t=n[i-1],r=n[i]}return this._getNewlinesBetween(t,r)},e.prototype.getNewlinesAfter=function(e){var t=void 0,r=void 0,n=this.tokens,i=this._findToken(function(t){return t.end-e.end},0,n.length);if(i>=0){for(;i&&e.end===n[i-1].end;)--i;t=n[i],","===(r=n[i+1]).type.label&&(r=n[i+2])}return r&&"eof"===r.type.label?1:this._getNewlinesBetween(t,r)},e.prototype._getNewlinesBetween=function(e,t){if(!t||!t.loc)return 0;for(var r=e?e.loc.end.line:1,n=t.loc.start.line,i=0,s=r;s=r)return-1;var n=t+r>>>1,i=e(this.tokens[n]);return i<0?this._findToken(e,n+1,r):i>0?this._findToken(e,t,n):0===i?n:-1},e}();r.default=i,t.exports=r.default},{"babel-runtime/helpers/classCallCheck":134}],92:[function(e,t,r){arguments[4][62][0].apply(r,arguments)},{"./util":101,dup:62}],93:[function(e,t,r){arguments[4][63][0].apply(r,arguments)},{"./base64":94,dup:63}],94:[function(e,t,r){arguments[4][64][0].apply(r,arguments)},{dup:64}],95:[function(e,t,r){arguments[4][65][0].apply(r,arguments)},{dup:65}],96:[function(e,t,r){arguments[4][66][0].apply(r,arguments)},{"./util":101,dup:66}],97:[function(e,t,r){arguments[4][67][0].apply(r,arguments)},{dup:67}],98:[function(e,t,r){arguments[4][68][0].apply(r,arguments)},{"./array-set":92,"./base64-vlq":93,"./binary-search":95,"./quick-sort":97,"./util":101,dup:68}],99:[function(e,t,r){arguments[4][69][0].apply(r,arguments)},{"./array-set":92,"./base64-vlq":93,"./mapping-list":96,"./util":101,dup:69}],100:[function(e,t,r){arguments[4][70][0].apply(r,arguments)},{"./source-map-generator":99,"./util":101,dup:70}],101:[function(e,t,r){arguments[4][71][0].apply(r,arguments)},{dup:71}],102:[function(e,t,r){arguments[4][72][0].apply(r,arguments)},{"./lib/source-map-consumer":98,"./lib/source-map-generator":99,"./lib/source-node":100,dup:72}],103:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=u.objectExpression([]);return(0,s.default)(e).forEach(function(r){var n=e[r],i=u.objectExpression([]),a=u.objectProperty(n._key,i,n._computed);(0,s.default)(n).forEach(function(e){var t=n[e];if("_"!==e[0]){var r=t;(u.isClassMethod(t)||u.isClassProperty(t))&&(t=t.value);var s=u.objectProperty(u.identifier(e),t);u.inheritsComments(s,r),u.removeComments(r),i.properties.push(s)}}),t.properties.push(a)}),t}r.__esModule=!0;var s=n(e("babel-runtime/core-js/object/keys"));r.push=function(e,t,r,n,i){var s=u.toKeyAlias(t),l={};if((0,o.default)(e,s)&&(l=e[s]),e[s]=l,l._inherits=l._inherits||[],l._inherits.push(t),l._key=t.key,t.computed&&(l._computed=!0),t.decorators){var c=l.decorators=l.decorators||u.arrayExpression([]);c.elements=c.elements.concat(t.decorators.map(function(e){return e.expression}).reverse())}if(l.value||l.initializer)throw n.buildCodeFrameError(t,"Key conflict with sibling node");var p=void 0,h=void 0;(u.isObjectProperty(t)||u.isObjectMethod(t)||u.isClassMethod(t))&&(p=u.toComputedKey(t,t.key)),u.isObjectProperty(t)||u.isClassProperty(t)?h=t.value:(u.isObjectMethod(t)||u.isClassMethod(t))&&((h=u.functionExpression(null,t.params,t.body,t.generator,t.async)).returnType=t.returnType);var f=function(e){return!u.isClassMethod(e)&&!u.isObjectMethod(e)||"get"!==e.kind&&"set"!==e.kind?"value":e.kind}(t);return r&&"value"===f||(r=f),i&&u.isStringLiteral(p)&&("value"===r||"initializer"===r)&&u.isFunctionExpression(h)&&(h=(0,a.default)({id:p,node:h,scope:i})),h&&(u.inheritsComments(h,t),l[r]=h),l},r.hasComputed=function(e){for(var t in e)if(e[t]._computed)return!0;return!1},r.toComputedObjectFromClass=function(e){for(var t=u.arrayExpression([]),r=0;r1&&void 0!==arguments[1]&&arguments[1];(0,o.default)(this,e),this.forceSuperMemoisation=t.forceSuperMemoisation,this.methodPath=t.methodPath,this.methodNode=t.methodNode,this.superRef=t.superRef,this.isStatic=t.isStatic,this.hasSuper=!1,this.inClass=r,this.isLoose=t.isLoose,this.scope=this.methodPath.scope,this.file=t.file,this.opts=t,this.bareSupers=[],this.returns=[],this.thises=[]}return e.prototype.getObjectRef=function(){return this.opts.objectRef||this.opts.getObjectRef()},e.prototype.setSuperProperty=function(e,t,r){return p.callExpression(this.file.addHelper("set"),[a(this.getObjectRef(),this.isStatic),r?e:p.stringLiteral(e.name),t,p.thisExpression()])},e.prototype.getSuperProperty=function(e,t){return p.callExpression(this.file.addHelper("get"),[a(this.getObjectRef(),this.isStatic),t?e:p.stringLiteral(e.name),p.thisExpression()])},e.prototype.replace=function(){this.methodPath.traverse(f,this)},e.prototype.getLooseSuperProperty=function(e,t){var r=this.methodNode,n=this.superRef||p.identifier("Function");return t.property===e?void 0:p.isCallExpression(t,{callee:e})?void 0:p.isMemberExpression(t)&&!r.static?p.memberExpression(n,p.identifier("prototype")):n},e.prototype.looseHandle=function(e){var t=e.node;if(e.isSuper())return this.getLooseSuperProperty(t,e.parent);if(e.isCallExpression()){var r=t.callee;if(!p.isMemberExpression(r))return;if(!p.isSuper(r.object))return;return p.appendToMemberExpression(r,p.identifier("call")),t.arguments.unshift(p.thisExpression()),!0}},e.prototype.specHandleAssignmentExpression=function(e,t,r){return"="===r.operator?this.setSuperProperty(r.left.property,r.right,r.left.computed):(e=e||t.scope.generateUidIdentifier("ref"),[p.variableDeclaration("var",[p.variableDeclarator(e,r.left)]),p.expressionStatement(p.assignmentExpression("=",r.left,p.binaryExpression(r.operator[0],e,r.right)))])},e.prototype.specHandle=function(e){var t=void 0,r=void 0,n=void 0,i=e.parent,a=e.node;if(function(e,t){return!!p.isSuper(e)&&!p.isMemberExpression(t,{computed:!1})&&!p.isCallExpression(t,{callee:e})}(a,i))throw e.buildCodeFrameError(c.get("classesIllegalBareSuper"));if(p.isCallExpression(a)){var o=a.callee;if(p.isSuper(o))return;s(o)&&(t=o.property,r=o.computed,n=a.arguments)}else if(p.isMemberExpression(a)&&p.isSuper(a.object))t=a.property,r=a.computed;else{if(p.isUpdateExpression(a)&&s(a.argument)){var u=p.binaryExpression(a.operator[0],a.argument,p.numericLiteral(1));if(a.prefix)return this.specHandleAssignmentExpression(null,e,u);var l=e.scope.generateUidIdentifier("ref");return this.specHandleAssignmentExpression(l,e,u).concat(p.expressionStatement(l))}if(p.isAssignmentExpression(a)&&s(a.left))return this.specHandleAssignmentExpression(null,e,a)}if(t){var h=this.getSuperProperty(t,r);return n?this.optimiseCall(h,n):h}},e.prototype.optimiseCall=function(e,t){var r=p.thisExpression();return r[h]=!0,(0,l.default)(e,r,t)},e}();r.default=d,t.exports=r.default},{"babel-helper-optimise-call-expression":106,"babel-messages":110,"babel-runtime/core-js/symbol":129,"babel-runtime/helpers/classCallCheck":134,"babel-types":180}],108:[function(e,t,r){"use strict";r.__esModule=!0;var n=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-template")),i={};r.default=i,i.typeof=(0,n.default)('\n (typeof Symbol === "function" && typeof Symbol.iterator === "symbol")\n ? function (obj) { return typeof obj; }\n : function (obj) {\n return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype\n ? "symbol"\n : typeof obj;\n };\n'),i.jsx=(0,n.default)('\n (function () {\n var REACT_ELEMENT_TYPE = (typeof Symbol === "function" && Symbol.for && Symbol.for("react.element")) || 0xeac7;\n\n return function createRawReactElement (type, props, key, children) {\n var defaultProps = type && type.defaultProps;\n var childrenLength = arguments.length - 3;\n\n if (!props && childrenLength !== 0) {\n // If we\'re going to assign props.children, we create a new object now\n // to avoid mutating defaultProps.\n props = {};\n }\n if (props && defaultProps) {\n for (var propName in defaultProps) {\n if (props[propName] === void 0) {\n props[propName] = defaultProps[propName];\n }\n }\n } else if (!props) {\n props = defaultProps || {};\n }\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 3];\n }\n props.children = childArray;\n }\n\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key === undefined ? null : \'\' + key,\n ref: null,\n props: props,\n _owner: null,\n };\n };\n\n })()\n'),i.asyncIterator=(0,n.default)('\n (function (iterable) {\n if (typeof Symbol === "function") {\n if (Symbol.asyncIterator) {\n var method = iterable[Symbol.asyncIterator];\n if (method != null) return method.call(iterable);\n }\n if (Symbol.iterator) {\n return iterable[Symbol.iterator]();\n }\n }\n throw new TypeError("Object is not async iterable");\n })\n'),i.asyncGenerator=(0,n.default)('\n (function () {\n function AwaitValue(value) {\n this.value = value;\n }\n\n function AsyncGenerator(gen) {\n var front, back;\n\n function send(key, arg) {\n return new Promise(function (resolve, reject) {\n var request = {\n key: key,\n arg: arg,\n resolve: resolve,\n reject: reject,\n next: null\n };\n\n if (back) {\n back = back.next = request;\n } else {\n front = back = request;\n resume(key, arg);\n }\n });\n }\n\n function resume(key, arg) {\n try {\n var result = gen[key](arg)\n var value = result.value;\n if (value instanceof AwaitValue) {\n Promise.resolve(value.value).then(\n function (arg) { resume("next", arg); },\n function (arg) { resume("throw", arg); });\n } else {\n settle(result.done ? "return" : "normal", result.value);\n }\n } catch (err) {\n settle("throw", err);\n }\n }\n\n function settle(type, value) {\n switch (type) {\n case "return":\n front.resolve({ value: value, done: true });\n break;\n case "throw":\n front.reject(value);\n break;\n default:\n front.resolve({ value: value, done: false });\n break;\n }\n\n front = front.next;\n if (front) {\n resume(front.key, front.arg);\n } else {\n back = null;\n }\n }\n\n this._invoke = send;\n\n // Hide "return" method if generator return is not supported\n if (typeof gen.return !== "function") {\n this.return = undefined;\n }\n }\n\n if (typeof Symbol === "function" && Symbol.asyncIterator) {\n AsyncGenerator.prototype[Symbol.asyncIterator] = function () { return this; };\n }\n\n AsyncGenerator.prototype.next = function (arg) { return this._invoke("next", arg); };\n AsyncGenerator.prototype.throw = function (arg) { return this._invoke("throw", arg); };\n AsyncGenerator.prototype.return = function (arg) { return this._invoke("return", arg); };\n\n return {\n wrap: function (fn) {\n return function () {\n return new AsyncGenerator(fn.apply(this, arguments));\n };\n },\n await: function (value) {\n return new AwaitValue(value);\n }\n };\n\n })()\n'),i.asyncGeneratorDelegate=(0,n.default)('\n (function (inner, awaitWrap) {\n var iter = {}, waiting = false;\n\n function pump(key, value) {\n waiting = true;\n value = new Promise(function (resolve) { resolve(inner[key](value)); });\n return { done: false, value: awaitWrap(value) };\n };\n\n if (typeof Symbol === "function" && Symbol.iterator) {\n iter[Symbol.iterator] = function () { return this; };\n }\n\n iter.next = function (value) {\n if (waiting) {\n waiting = false;\n return value;\n }\n return pump("next", value);\n };\n\n if (typeof inner.throw === "function") {\n iter.throw = function (value) {\n if (waiting) {\n waiting = false;\n throw value;\n }\n return pump("throw", value);\n };\n }\n\n if (typeof inner.return === "function") {\n iter.return = function (value) {\n return pump("return", value);\n };\n }\n\n return iter;\n })\n'),i.asyncToGenerator=(0,n.default)('\n (function (fn) {\n return function () {\n var gen = fn.apply(this, arguments);\n return new Promise(function (resolve, reject) {\n function step(key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n return Promise.resolve(value).then(function (value) {\n step("next", value);\n }, function (err) {\n step("throw", err);\n });\n }\n }\n\n return step("next");\n });\n };\n })\n'),i.classCallCheck=(0,n.default)('\n (function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError("Cannot call a class as a function");\n }\n });\n'),i.createClass=(0,n.default)('\n (function() {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i ++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ("value" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n })()\n'),i.defineEnumerableProperties=(0,n.default)('\n (function (obj, descs) {\n for (var key in descs) {\n var desc = descs[key];\n desc.configurable = desc.enumerable = true;\n if ("value" in desc) desc.writable = true;\n Object.defineProperty(obj, key, desc);\n }\n return obj;\n })\n'),i.defaults=(0,n.default)("\n (function (obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n return obj;\n })\n"),i.defineProperty=(0,n.default)("\n (function (obj, key, value) {\n // Shortcircuit the slow defineProperty path when possible.\n // We are trying to avoid issues where setters defined on the\n // prototype cause side effects under the fast path of simple\n // assignment. By checking for existence of the property with\n // the in operator, we can optimize most of this overhead away.\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n });\n"),i.extends=(0,n.default)("\n Object.assign || (function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n })\n"),i.get=(0,n.default)('\n (function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if ("value" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n });\n'),i.inherits=(0,n.default)('\n (function (subClass, superClass) {\n if (typeof superClass !== "function" && superClass !== null) {\n throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n })\n'),i.instanceof=(0,n.default)('\n (function (left, right) {\n if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {\n return right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n });\n'),i.interopRequireDefault=(0,n.default)("\n (function (obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n })\n"),i.interopRequireWildcard=(0,n.default)("\n (function (obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n newObj.default = obj;\n return newObj;\n }\n })\n"),i.newArrowCheck=(0,n.default)('\n (function (innerThis, boundThis) {\n if (innerThis !== boundThis) {\n throw new TypeError("Cannot instantiate an arrow function");\n }\n });\n'),i.objectDestructuringEmpty=(0,n.default)('\n (function (obj) {\n if (obj == null) throw new TypeError("Cannot destructure undefined");\n });\n'),i.objectWithoutProperties=(0,n.default)("\n (function (obj, keys) {\n var target = {};\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n return target;\n })\n"),i.possibleConstructorReturn=(0,n.default)('\n (function (self, call) {\n if (!self) {\n throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called");\n }\n return call && (typeof call === "object" || typeof call === "function") ? call : self;\n });\n'),i.selfGlobal=(0,n.default)('\n typeof global === "undefined" ? self : global\n'),i.set=(0,n.default)('\n (function set(object, property, value, receiver) {\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent !== null) {\n set(parent, property, value, receiver);\n }\n } else if ("value" in desc && desc.writable) {\n desc.value = value;\n } else {\n var setter = desc.set;\n\n if (setter !== undefined) {\n setter.call(receiver, value);\n }\n }\n\n return value;\n });\n'),i.slicedToArray=(0,n.default)('\n (function () {\n // Broken out into a separate function to avoid deoptimizations due to the try/catch for the\n // array iterator case.\n function sliceIterator(arr, i) {\n // this is an expanded form of `for...of` that properly supports abrupt completions of\n // iterators etc. variable names have been minimised to reduce the size of this massive\n // helper. sometimes spec compliancy is annoying :(\n //\n // _n = _iteratorNormalCompletion\n // _d = _didIteratorError\n // _e = _iteratorError\n // _i = _iterator\n // _s = _step\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i["return"]) _i["return"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError("Invalid attempt to destructure non-iterable instance");\n }\n };\n })();\n'),i.slicedToArrayLoose=(0,n.default)('\n (function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n var _arr = [];\n for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) {\n _arr.push(_step.value);\n if (i && _arr.length === i) break;\n }\n return _arr;\n } else {\n throw new TypeError("Invalid attempt to destructure non-iterable instance");\n }\n });\n'),i.taggedTemplateLiteral=(0,n.default)("\n (function (strings, raw) {\n return Object.freeze(Object.defineProperties(strings, {\n raw: { value: Object.freeze(raw) }\n }));\n });\n"),i.taggedTemplateLiteralLoose=(0,n.default)("\n (function (strings, raw) {\n strings.raw = raw;\n return strings;\n });\n"),i.temporalRef=(0,n.default)('\n (function (val, name, undef) {\n if (val === undef) {\n throw new ReferenceError(name + " is not defined - temporal dead zone");\n } else {\n return val;\n }\n })\n'),i.temporalUndefined=(0,n.default)("\n ({})\n"),i.toArray=(0,n.default)("\n (function (arr) {\n return Array.isArray(arr) ? arr : Array.from(arr);\n });\n"),i.toConsumableArray=(0,n.default)("\n (function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n return arr2;\n } else {\n return Array.from(arr);\n }\n });\n"),t.exports=r.default},{"babel-template":139}],109:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=a.default[e];if(!t)throw new ReferenceError("Unknown helper "+e);return t().expression}r.__esModule=!0,r.list=void 0;var s=n(e("babel-runtime/core-js/object/keys"));r.get=i;var a=n(e("./helpers"));r.list=(0,s.default)(a.default).map(function(e){return e.replace(/^_/,"")}).filter(function(e){return"__esModule"!==e});r.default=i},{"./helpers":108,"babel-runtime/core-js/object/keys":127}],110:[function(e,t,r){"use strict";function n(e){return e.map(function(e){if(null!=e&&e.inspect)return e.inspect();try{return(0,i.default)(e)||e+""}catch(t){return s.inspect(e)}})}r.__esModule=!0,r.MESSAGES=void 0;var i=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/json/stringify"));r.get=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),s=1;s4&&void 0!==arguments[4]&&arguments[4];if(t||(t=e.node),!h.isFor(r))for(var s=0;s0&&e.traverse(g,t),e.skip()}},p.visitor]),g=c.default.visitors.merge([{ReferencedIdentifier:function(e,t){var r=t.letReferences[e.node.name];if(r){var n=e.scope.getBindingIdentifier(e.node.name);n&&n!==r||(t.closurify=!0)}}},p.visitor]),b={enter:function(e,t){var r=e.node;e.parent;if(e.isForStatement()){if(a(r.init)){var n=t.pushDeclar(r.init);1===n.length?r.init=n[0]:r.init=h.sequenceExpression(n)}}else if(e.isFor())a(r.left)&&(t.pushDeclar(r.left),r.left=r.left.declarations[0].id);else if(a(r))e.replaceWithMultiple(t.pushDeclar(r).map(function(e){return h.expressionStatement(e)}));else if(e.isFunction())return e.skip()}},v={LabeledStatement:function(e,t){var r=e.node;t.innerLabels.push(r.label.name)}},x={enter:function(e,t){if(e.isAssignmentExpression()||e.isUpdateExpression()){var r=e.getBindingIdentifiers();for(var n in r)t.outsideReferences[n]===e.scope.getBindingIdentifier(n)&&(t.reassignments[n]=!0)}}},E={Loop:function(e,t){var r=t.ignoreLabeless;t.ignoreLabeless=!0,e.traverse(E,t),t.ignoreLabeless=r,e.skip()},Function:function(e){e.skip()},SwitchCase:function(e,t){var r=t.inSwitchCase;t.inSwitchCase=!0,e.traverse(E,t),t.inSwitchCase=r,e.skip()},"BreakStatement|ContinueStatement|ReturnStatement":function(e,t){var r=e.node,n=e.parent,i=e.scope;if(!r[this.LOOP_IGNORE]){var s=void 0,a=function(e){return h.isBreakStatement(e)?"break":h.isContinueStatement(e)?"continue":void 0}(r);if(a){if(r.label){if(t.innerLabels.indexOf(r.label.name)>=0)return;a=a+"|"+r.label.name}else{if(t.ignoreLabeless)return;if(t.inSwitchCase)return;if(h.isBreakStatement(r)&&h.isSwitchCase(n))return}t.hasBreakContinue=!0,t.map[a]=r,s=h.stringLiteral(a)}e.isReturnStatement()&&(t.hasReturn=!0,s=h.objectExpression([h.objectProperty(h.identifier("v"),r.argument||i.buildUndefinedNode())])),s&&((s=h.returnStatement(s))[this.LOOP_IGNORE]=!0,e.skip(),e.replaceWith(h.inherits(s,r)))}}},A=function(){function e(t,r,n,i,s){(0,l.default)(this,e),this.parent=n,this.scope=i,this.file=s,this.blockPath=r,this.block=r.node,this.outsideLetReferences=(0,u.default)(null),this.hasLetReferences=!1,this.letReferences=(0,u.default)(null),this.body=[],t&&(this.loopParent=t.parent,this.loopLabel=h.isLabeledStatement(this.loopParent)&&this.loopParent.label,this.loopPath=t,this.loop=t.node)}return e.prototype.run=function(){var e=this.block;if(!e._letDone){e._letDone=!0;var t=this.getLetReferences();if(h.isFunction(this.parent)||h.isProgram(this.block))this.updateScopeInfo();else if(this.hasLetReferences)return t?this.wrapClosure():this.remap(),this.updateScopeInfo(t),this.loopLabel&&!h.isLabeledStatement(this.loopParent)?h.labeledStatement(this.loopLabel,this.loop):void 0}},e.prototype.updateScopeInfo=function(e){var t=this.scope,r=t.getFunctionParent(),n=this.letReferences;for(var i in n){var s=n[i],a=t.getBinding(s.name);a&&("let"!==a.kind&&"const"!==a.kind||(a.kind="var",e?t.removeBinding(s.name):t.moveBindingTo(s.name,r)))}},e.prototype.remap=function(){var e=this.letReferences,t=this.scope;for(var r in e){var n=e[r];(t.parentHasBinding(r)||t.hasGlobal(r))&&(t.hasOwnBinding(r)&&t.rename(n.name),this.blockPath.scope.hasOwnBinding(r)&&this.blockPath.scope.rename(n.name))}},e.prototype.wrapClosure=function(){if(this.file.opts.throwIfClosureRequired)throw this.blockPath.buildCodeFrameError("Compiling let/const in this block would add a closure (throwIfClosureRequired).");var e=this.block,t=this.outsideLetReferences;if(this.loop)for(var r in t){var n=t[r];(this.scope.hasGlobal(n.name)||this.scope.parentHasBinding(n.name))&&(delete t[n.name],delete this.letReferences[n.name],this.scope.rename(n.name),this.letReferences[n.name]=n,t[n.name]=n)}this.has=this.checkLoop(),this.hoistVarDeclarations();var i=(0,f.default)(t),s=(0,f.default)(t),a=this.blockPath.isSwitchStatement(),o=h.functionExpression(null,i,h.blockStatement(a?[e]:e.body));o.shadow=!0,this.addContinuations(o);var u=o;this.loop&&(u=this.scope.generateUidIdentifier("loop"),this.loopPath.insertBefore(h.variableDeclaration("var",[h.variableDeclarator(u,o)])));var l=h.callExpression(u,s),p=this.scope.generateUidIdentifier("ret");c.default.hasType(o.body,this.scope,"YieldExpression",h.FUNCTION_TYPES)&&(o.generator=!0,l=h.yieldExpression(l,!0));c.default.hasType(o.body,this.scope,"AwaitExpression",h.FUNCTION_TYPES)&&(o.async=!0,l=h.awaitExpression(l)),this.buildClosure(p,l),a?this.blockPath.replaceWithMultiple(this.body):e.body=this.body},e.prototype.buildClosure=function(e,t){var r=this.has;r.hasReturn||r.hasBreakContinue?this.buildHas(e,t):this.body.push(h.expressionStatement(t))},e.prototype.addContinuations=function(e){var t={reassignments:{},outsideReferences:this.outsideLetReferences};this.scope.traverse(e,x,t);for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:"value",n=arguments[3],i=void 0;e.static?(this.hasStaticDescriptors=!0,i=this.staticMutatorMap):(this.hasInstanceDescriptors=!0,i=this.instanceMutatorMap);var s=c.push(i,e,r,this.file,n);return t&&(s.enumerable=h.booleanLiteral(!0)),s},e.prototype.constructorMeMaybe=function(){var e=!1,t=this.path.get("body.body"),r=Array.isArray(t),n=0;for(t=r?t:(0,s.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}if(e=i.equals("kind","constructor"))break}if(!e){var a=void 0,o=void 0;if(this.isDerived){var u=f().expression;a=u.params,o=u.body}else a=[],o=h.blockStatement([]);this.path.get("body").unshiftContainer("body",h.classMethod("constructor",h.identifier("constructor"),a,o))}},e.prototype.buildBody=function(){if(this.constructorMeMaybe(),this.pushBody(),this.verifyConstructor(),this.userConstructor){var e=this.constructorBody;e.body=e.body.concat(this.userConstructor.body.body),h.inherits(this.constructor,this.userConstructor),h.inherits(e,this.userConstructor.body)}this.pushDescriptors()},e.prototype.pushBody=function(){var e=this.path.get("body.body"),t=Array.isArray(e),r=0;for(e=t?e:(0,s.default)(e);;){var n;if(t){if(r>=e.length)break;n=e[r++]}else{if((r=e.next()).done)break;n=r.value}var i=n,a=i.node;if(i.isClassProperty())throw i.buildCodeFrameError("Missing class properties transform.");if(a.decorators)throw i.buildCodeFrameError("Method has decorators, put the decorator plugin before the classes one.");if(h.isClassMethod(a)){var o="constructor"===a.kind;if(o&&(i.traverse(m,this),!this.hasBareSuper&&this.isDerived))throw i.buildCodeFrameError("missing super() call in constructor");var l=new u.default({forceSuperMemoisation:o,methodPath:i,methodNode:a,objectRef:this.classRef,superRef:this.superName,isStatic:a.static,isLoose:this.isLoose,scope:this.scope,file:this.file},!0);l.replace(),o?this.pushConstructor(l,a,i):this.pushMethod(a,i)}}},e.prototype.clearDescriptors=function(){this.hasInstanceDescriptors=!1,this.hasStaticDescriptors=!1,this.instanceMutatorMap={},this.staticMutatorMap={}},e.prototype.pushDescriptors=function(){this.pushInherits();var e=this.body,t=void 0,r=void 0;if(this.hasInstanceDescriptors&&(t=c.toClassObject(this.instanceMutatorMap)),this.hasStaticDescriptors&&(r=c.toClassObject(this.staticMutatorMap)),t||r){t&&(t=c.toComputedObjectFromClass(t)),r&&(r=c.toComputedObjectFromClass(r));var n=h.nullLiteral(),i=[this.classRef,n,n,n,n];t&&(i[1]=t),r&&(i[2]=r),this.instanceInitializersId&&(i[3]=this.instanceInitializersId,e.unshift(this.buildObjectAssignment(this.instanceInitializersId))),this.staticInitializersId&&(i[4]=this.staticInitializersId,e.unshift(this.buildObjectAssignment(this.staticInitializersId)));for(var s=0,a=0;a=o.length)break;c=o[l++]}else{if((l=o.next()).done)break;c=l.value}var p=c;this.wrapSuperCall(p,i,a,r),n&&p.find(function(e){return e===t||(e.isLoop()||e.isConditional()?(n=!1,!0):void 0)})}var f=this.superThises,d=Array.isArray(f),m=0;for(f=d?f:(0,s.default)(f);;){var g;if(d){if(m>=f.length)break;g=f[m++]}else{if((m=f.next()).done)break;g=m.value}g.replaceWith(a)}var b=function(t){return h.callExpression(e.file.addHelper("possibleConstructorReturn"),[a].concat(t||[]))},v=r.get("body");v.length&&!v.pop().isReturnStatement()&&r.pushContainer("body",h.returnStatement(n?a:b()));var x=this.superReturns,E=Array.isArray(x),A=0;for(x=E?x:(0,s.default)(x);;){var D;if(E){if(A>=x.length)break;D=x[A++]}else{if((A=x.next()).done)break;D=A.value}var S=D;if(S.node.argument){var C=S.scope.generateDeclaredUidIdentifier("ret");S.get("argument").replaceWithMultiple([h.assignmentExpression("=",C,S.node.argument),b(C)])}else S.get("argument").replaceWith(b())}}},e.prototype.pushMethod=function(e,t){var r=t?t.scope:this.scope;"method"===e.kind&&this._processMethod(e,r)||this.pushToMap(e,!1,null,r)},e.prototype._processMethod=function(){return!1},e.prototype.pushConstructor=function(e,t,r){this.bareSupers=e.bareSupers,this.superReturns=e.returns,r.scope.hasOwnBinding(this.classRef.name)&&r.scope.rename(this.classRef.name);var n=this.constructor;this.userConstructorPath=r,this.userConstructor=t,this.hasConstructor=!0,h.inheritsComments(n,t),n._ignoreUserWhitespace=!0,n.params=t.params,h.inherits(n.body,t.body),n.body.directives=t.body.directives,this._pushConstructor()},e.prototype._pushConstructor=function(){this.pushedConstructor||(this.pushedConstructor=!0,(this.hasInstanceDescriptors||this.hasStaticDescriptors)&&this.pushDescriptors(),this.body.push(this.constructor),this.pushInherits())},e.prototype.pushInherits=function(){this.isDerived&&!this.pushedInherits&&(this.pushedInherits=!0,this.body.unshift(h.expressionStatement(h.callExpression(this.file.addHelper("inherits"),[this.classRef,this.superName]))))},e}();r.default=g,t.exports=r.default},{"babel-helper-define-map":103,"babel-helper-optimise-call-expression":106,"babel-helper-replace-supers":107,"babel-runtime/core-js/get-iterator":120,"babel-runtime/helpers/classCallCheck":134,"babel-template":139,"babel-traverse":143,"babel-types":180}],119:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e){function t(e){var t=e.node,r=e.scope,n=[],i=t.right;if(!a.isIdentifier(i)||!r.hasBinding(i.name)){var s=r.generateUidIdentifier("arr");n.push(a.variableDeclaration("var",[a.variableDeclarator(s,i)])),i=s}var u=r.generateUidIdentifier("i"),l=o({BODY:t.body,KEY:u,ARR:i});a.inherits(l,t),a.ensureBlock(l);var c=a.memberExpression(i,u,!0),p=t.left;return a.isVariableDeclaration(p)?(p.declarations[0].init=c,l.body.body.unshift(p)):l.body.body.unshift(a.expressionStatement(a.assignmentExpression("=",p,c))),e.parentPath.isLabeledStatement()&&(l=a.labeledStatement(e.parentPath.node.label,l)),n.push(l),n}function r(e,t){var r=e.node,n=e.scope,s=e.parent,o=r.left,l=void 0,c=void 0;if(a.isIdentifier(o)||a.isPattern(o)||a.isMemberExpression(o))c=o;else{if(!a.isVariableDeclaration(o))throw t.buildCodeFrameError(o,i.get("unknownForHead",o.type));c=n.generateUidIdentifier("ref"),l=a.variableDeclaration(o.kind,[a.variableDeclarator(o.declarations[0].id,c)])}var p=n.generateUidIdentifier("iterator"),h=n.generateUidIdentifier("isArray"),f=u({LOOP_OBJECT:p,IS_ARRAY:h,OBJECT:r.right,INDEX:n.generateUidIdentifier("i"),ID:c});l||f.body.body.shift();var d=a.isLabeledStatement(s),m=void 0;return d&&(m=a.labeledStatement(s.label,f)),{replaceParent:d,declar:l,node:m||f,loop:f}}function n(e,t){var r=e.node,n=e.scope,s=e.parent,o=r.left,u=void 0,c=n.generateUidIdentifier("step"),p=a.memberExpression(c,a.identifier("value"));if(a.isIdentifier(o)||a.isPattern(o)||a.isMemberExpression(o))u=a.expressionStatement(a.assignmentExpression("=",o,p));else{if(!a.isVariableDeclaration(o))throw t.buildCodeFrameError(o,i.get("unknownForHead",o.type));u=a.variableDeclaration(o.kind,[a.variableDeclarator(o.declarations[0].id,p)])}var h=n.generateUidIdentifier("iterator"),f=l({ITERATOR_HAD_ERROR_KEY:n.generateUidIdentifier("didIteratorError"),ITERATOR_COMPLETION:n.generateUidIdentifier("iteratorNormalCompletion"),ITERATOR_ERROR_KEY:n.generateUidIdentifier("iteratorError"),ITERATOR_KEY:h,STEP_KEY:c,OBJECT:r.right,BODY:null}),d=a.isLabeledStatement(s),m=f[3].block.body,y=m[0];return d&&(m[0]=a.labeledStatement(s.label,y)),{replaceParent:d,declar:u,loop:y,node:f}}var i=e.messages,s=e.template,a=e.types,o=s("\n for (var KEY = 0; KEY < ARR.length; KEY++) BODY;\n "),u=s("\n for (var LOOP_OBJECT = OBJECT,\n IS_ARRAY = Array.isArray(LOOP_OBJECT),\n INDEX = 0,\n LOOP_OBJECT = IS_ARRAY ? LOOP_OBJECT : LOOP_OBJECT[Symbol.iterator]();;) {\n var ID;\n if (IS_ARRAY) {\n if (INDEX >= LOOP_OBJECT.length) break;\n ID = LOOP_OBJECT[INDEX++];\n } else {\n INDEX = LOOP_OBJECT.next();\n if (INDEX.done) break;\n ID = INDEX.value;\n }\n }\n "),l=s("\n var ITERATOR_COMPLETION = true;\n var ITERATOR_HAD_ERROR_KEY = false;\n var ITERATOR_ERROR_KEY = undefined;\n try {\n for (var ITERATOR_KEY = OBJECT[Symbol.iterator](), STEP_KEY; !(ITERATOR_COMPLETION = (STEP_KEY = ITERATOR_KEY.next()).done); ITERATOR_COMPLETION = true) {\n }\n } catch (err) {\n ITERATOR_HAD_ERROR_KEY = true;\n ITERATOR_ERROR_KEY = err;\n } finally {\n try {\n if (!ITERATOR_COMPLETION && ITERATOR_KEY.return) {\n ITERATOR_KEY.return();\n }\n } finally {\n if (ITERATOR_HAD_ERROR_KEY) {\n throw ITERATOR_ERROR_KEY;\n }\n }\n }\n ");return{visitor:{ForOfStatement:function(e,i){if(e.get("right").isArrayExpression())return e.parentPath.isLabeledStatement()?e.parentPath.replaceWithMultiple(t(e)):e.replaceWithMultiple(t(e));var s=n;i.opts.loose&&(s=r);var o=e.node,u=s(e,i),l=u.declar,c=u.loop,p=c.body;e.ensureBlock(),l&&p.body.push(l),p.body=p.body.concat(o.body.body),a.inherits(c,o),a.inherits(c.body,o.body),u.replaceParent?(e.parentPath.replaceWithMultiple(u.node),e.remove()):e.replaceWithMultiple(u.node)}}}},t.exports=r.default},{}],120:[function(e,t,r){t.exports={default:e("core-js/library/fn/get-iterator"),__esModule:!0}},{"core-js/library/fn/get-iterator":196}],121:[function(e,t,r){t.exports={default:e("core-js/library/fn/json/stringify"),__esModule:!0}},{"core-js/library/fn/json/stringify":197}],122:[function(e,t,r){t.exports={default:e("core-js/library/fn/map"),__esModule:!0}},{"core-js/library/fn/map":198}],123:[function(e,t,r){t.exports={default:e("core-js/library/fn/number/max-safe-integer"),__esModule:!0}},{"core-js/library/fn/number/max-safe-integer":199}],124:[function(e,t,r){t.exports={default:e("core-js/library/fn/object/assign"),__esModule:!0}},{"core-js/library/fn/object/assign":200}],125:[function(e,t,r){t.exports={default:e("core-js/library/fn/object/create"),__esModule:!0}},{"core-js/library/fn/object/create":201}],126:[function(e,t,r){t.exports={default:e("core-js/library/fn/object/get-own-property-symbols"),__esModule:!0}},{"core-js/library/fn/object/get-own-property-symbols":202}],127:[function(e,t,r){t.exports={default:e("core-js/library/fn/object/keys"),__esModule:!0}},{"core-js/library/fn/object/keys":203}],128:[function(e,t,r){t.exports={default:e("core-js/library/fn/object/set-prototype-of"),__esModule:!0}},{"core-js/library/fn/object/set-prototype-of":204}],129:[function(e,t,r){t.exports={default:e("core-js/library/fn/symbol"),__esModule:!0}},{"core-js/library/fn/symbol":206}],130:[function(e,t,r){t.exports={default:e("core-js/library/fn/symbol/for"),__esModule:!0}},{"core-js/library/fn/symbol/for":205}],131:[function(e,t,r){t.exports={default:e("core-js/library/fn/symbol/iterator"),__esModule:!0}},{"core-js/library/fn/symbol/iterator":207}],132:[function(e,t,r){t.exports={default:e("core-js/library/fn/weak-map"),__esModule:!0}},{"core-js/library/fn/weak-map":208}],133:[function(e,t,r){t.exports={default:e("core-js/library/fn/weak-set"),__esModule:!0}},{"core-js/library/fn/weak-set":209}],134:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},{}],135:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("../core-js/object/set-prototype-of")),s=n(e("../core-js/object/create")),a=n(e("../helpers/typeof"));r.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":(0,a.default)(t)));e.prototype=(0,s.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(i.default?(0,i.default)(e,t):e.__proto__=t)}},{"../core-js/object/create":125,"../core-js/object/set-prototype-of":128,"../helpers/typeof":138}],136:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}},{}],137:[function(e,t,r){"use strict";r.__esModule=!0;var n=function(e){return e&&e.__esModule?e:{default:e}}(e("../helpers/typeof"));r.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":(0,n.default)(t))&&"function"!=typeof t?e:t}},{"../helpers/typeof":138}],138:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("../core-js/symbol/iterator")),s=n(e("../core-js/symbol")),a="function"==typeof s.default&&"symbol"==typeof i.default?function(e){return typeof e}:function(e){return e&&"function"==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?"symbol":typeof e};r.default="function"==typeof s.default&&"symbol"===a(i.default)?function(e){return void 0===e?"undefined":a(e)}:function(e){return e&&"function"==typeof s.default&&e.constructor===s.default&&e!==s.default.prototype?"symbol":void 0===e?"undefined":a(e)}},{"../core-js/symbol":129,"../core-js/symbol/iterator":131}],139:[function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var s=i(e("babel-runtime/core-js/symbol"));r.default=function(e,t){var r=void 0;try{throw new Error}catch(e){e.stack&&(r=e.stack.split("\n").slice(1).join("\n"))}t=(0,o.default)({allowReturnOutsideFunction:!0,allowSuperOutsideMethod:!0,preserveComments:!1},t);var n=function(){var i=void 0;try{i=c.parse(e,t),i=l.default.removeProperties(i,{preserveComments:t.preserveComments}),l.default.cheap(i,function(e){e[h]=!0})}catch(e){throw e.stack=e.stack+"from\n"+r,e}return n=function(){return i},i};return function(){for(var e=arguments.length,t=Array(e),r=0;r1?r.body:r.body[0]}(n(),t)}};var a=i(e("lodash/cloneDeep")),o=i(e("lodash/assign")),u=i(e("lodash/has")),l=i(e("babel-traverse")),c=n(e("babylon")),p=n(e("babel-types")),h="_fromTemplate",f=(0,s.default)(),d={noScope:!0,enter:function(e,t){var r=e.node;if(r[f])return e.skip();p.isExpressionStatement(r)&&(r=r.expression);var n=void 0;if(p.isIdentifier(r)&&r[h])if((0,u.default)(t[0],r.name))n=t[0][r.name];else if("$"===r.name[0]){var i=+r.name.slice(1);t[i]&&(n=t[i])}null===n&&e.remove(),n&&(n[f]=!0,e.replaceInline(n))},exit:function(e){var t=e.node;t.loc||l.default.clearNode(t)}};t.exports=r.default},{"babel-runtime/core-js/symbol":129,"babel-traverse":143,"babel-types":180,babylon:188,"lodash/assign":488,"lodash/cloneDeep":492,"lodash/has":504}],140:[function(e,t,r){"use strict";function n(){r.path=new s.default}function i(){r.scope=new s.default}r.__esModule=!0,r.scope=r.path=void 0;var s=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/weak-map"));r.clear=function(){n(),i()},r.clearPath=n,r.clearScope=i;r.path=new s.default,r.scope=new s.default},{"babel-runtime/core-js/weak-map":132}],141:[function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var s=i(e("babel-runtime/core-js/get-iterator")),a=i(e("babel-runtime/helpers/classCallCheck")),o=i(e("./path")),u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types")),l="test"===n.env.NODE_ENV,c=function(){function e(t,r,n,i){(0,a.default)(this,e),this.queue=null,this.parentPath=i,this.scope=t,this.state=n,this.opts=r}return e.prototype.shouldVisit=function(e){var t=this.opts;if(t.enter||t.exit)return!0;if(t[e.type])return!0;var r=u.VISITOR_KEYS[e.type];if(!r||!r.length)return!1;var n=r,i=Array.isArray(n),a=0;for(n=i?n:(0,s.default)(n);;){var o;if(i){if(a>=n.length)break;o=n[a++]}else{if((a=n.next()).done)break;o=a.value}if(e[o])return!0}return!1},e.prototype.create=function(e,t,r,n){return o.default.get({parentPath:this.parentPath,parent:e,container:t,key:r,listKey:n})},e.prototype.maybeQueue=function(e,t){if(this.trap)throw new Error("Infinite cycle detected");this.queue&&(t?this.queue.push(e):this.priorityQueue.push(e))},e.prototype.visitMultiple=function(e,t,r){if(0===e.length)return!1;for(var n=[],i=0;i=n.length)break;o=n[a++]}else{if((a=n.next()).done)break;o=a.value}var u=o;if(u.resync(),0!==u.contexts.length&&u.contexts[u.contexts.length-1]===this||u.pushContext(this),null!==u.key&&(l&&e.length>=1e4&&(this.trap=!0),!(t.indexOf(u.node)>=0))){if(t.push(u.node),u.visit()){r=!0;break}if(this.priorityQueue.length&&(r=this.visitQueue(this.priorityQueue),this.priorityQueue=[],this.queue=e,r))break}}var c=e,p=Array.isArray(c),h=0;for(c=p?c:(0,s.default)(c);;){var f;if(p){if(h>=c.length)break;f=c[h++]}else{if((h=c.next()).done)break;f=h.value}f.popContext()}return this.queue=null,r},e.prototype.visit=function(e,t){var r=e[t];return!!r&&(Array.isArray(r)?this.visitMultiple(r,e,t):this.visitSingle(e,t))},e}();r.default=c,t.exports=r.default}).call(this,e("_process"))},{"./path":150,_process:550,"babel-runtime/core-js/get-iterator":120,"babel-runtime/helpers/classCallCheck":134,"babel-types":180}],142:[function(e,t,r){"use strict";r.__esModule=!0;var n=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/helpers/classCallCheck"));r.default=function e(t,r){(0,n.default)(this,e),this.file=t,this.options=r},t.exports=r.default},{"babel-runtime/helpers/classCallCheck":134}],143:[function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t,r,n,i){if(e){if(t||(t={}),!t.noScope&&!r&&"Program"!==e.type&&"File"!==e.type)throw new Error(f.get("traverseNeedsParent",e.type));h.explode(t),s.node(e,t,r,n,i)}}function a(e,t){e.node.type===t.type&&(t.has=!0,e.stop())}r.__esModule=!0,r.visitors=r.Hub=r.Scope=r.NodePath=void 0;var o=i(e("babel-runtime/core-js/get-iterator")),u=e("./path");Object.defineProperty(r,"NodePath",{enumerable:!0,get:function(){return i(u).default}});var l=e("./scope");Object.defineProperty(r,"Scope",{enumerable:!0,get:function(){return i(l).default}});var c=e("./hub");Object.defineProperty(r,"Hub",{enumerable:!0,get:function(){return i(c).default}}),r.default=s;var p=i(e("./context")),h=n(e("./visitors")),f=n(e("babel-messages")),d=i(e("lodash/includes")),m=n(e("babel-types")),y=n(e("./cache"));r.visitors=h,s.visitors=h,s.verify=h.verify,s.explode=h.explode,s.NodePath=e("./path"),s.Scope=e("./scope"),s.Hub=e("./hub"),s.cheap=function(e,t){return m.traverseFast(e,t)},s.node=function(e,t,r,n,i,s){var a=m.VISITOR_KEYS[e.type];if(a){var u=new p.default(r,t,n,i),l=a,c=Array.isArray(l),h=0;for(l=c?l:(0,o.default)(l);;){var f;if(c){if(h>=l.length)break;f=l[h++]}else{if((h=l.next()).done)break;f=h.value}var d=f;if((!s||!s[d])&&u.visit(e,d))return}}},s.clearNode=function(e,t){m.removeProperties(e,t),y.path.delete(e)},s.removeProperties=function(e,t){return m.traverseFast(e,s.clearNode,t),e},s.hasType=function(e,t,r,n){if((0,d.default)(n,e.type))return!1;if(e.type===r)return!0;var i={has:!1,type:r};return s(e,{blacklist:n,enter:a},t,i),i.has},(s.clearCache=function(){y.clear()}).clearPath=y.clearPath,s.clearCache.clearScope=y.clearScope,s.copyCache=function(e,t){y.path.has(e)&&y.path.set(t,y.path.get(e))}},{"./cache":140,"./context":141,"./hub":142,"./path":150,"./scope":162,"./visitors":164,"babel-messages":110,"babel-runtime/core-js/get-iterator":120,"babel-types":180,"lodash/includes":507}],144:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/core-js/get-iterator"));r.findParent=function(e){for(var t=this;t=t.parentPath;)if(e(t))return t;return null},r.find=function(e){var t=this;do{if(e(t))return t}while(t=t.parentPath);return null},r.getFunctionParent=function(){return this.findParent(function(e){return e.isFunction()||e.isProgram()})},r.getStatementParent=function(){var e=this;do{if(Array.isArray(e.container))return e}while(e=e.parentPath)},r.getEarliestCommonAncestorFrom=function(e){return this.getDeepestCommonAncestorFrom(e,function(e,t,r){var n=void 0,a=s.VISITOR_KEYS[e.type],o=r,u=Array.isArray(o),l=0;for(o=u?o:(0,i.default)(o);;){var c;if(u){if(l>=o.length)break;c=o[l++]}else{if((l=o.next()).done)break;c=l.value}var p=c[t+1];n?p.listKey&&n.listKey===p.listKey&&p.keya.indexOf(p.parentKey)&&(n=p):n=p}return n})},r.getDeepestCommonAncestorFrom=function(e,t){var r=this;if(!e.length)return this;if(1===e.length)return e[0];var n=1/0,s=void 0,a=void 0,o=e.map(function(e){var t=[];do{t.unshift(e)}while((e=e.parentPath)&&e!==r);return t.length=p.length)break;d=p[f++]}else{if((f=p.next()).done)break;d=f.value}if(d[l]!==c)break e}s=l,a=c}if(a)return t?t(a,s,o):a;throw new Error("Couldn't find intersection")},r.getAncestry=function(){var e=this,t=[];do{t.push(e)}while(e=e.parentPath);return t},r.isAncestor=function(e){return e.isDescendant(this)},r.isDescendant=function(e){return!!this.findParent(function(t){return t===e})},r.inType=function(){for(var e=this;e;){var t=arguments,r=Array.isArray(t),n=0;for(t=r?t:(0,i.default)(t);;){var s;if(r){if(n>=t.length)break;s=t[n++]}else{if((n=t.next()).done)break;s=n.value}var a=s;if(e.node.type===a)return!0}e=e.parentPath}return!1},r.inShadow=function(e){var t=this.isFunction()?this:this.findParent(function(e){return e.isFunction()});if(t){if(t.isFunctionExpression()||t.isFunctionDeclaration()){var r=t.node.shadow;if(r&&(!e||!1!==r[e]))return t}else if(t.isArrowFunctionExpression())return t;return null}};var s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"));n(e("./index"))},{"./index":150,"babel-runtime/core-js/get-iterator":120,"babel-types":180}],145:[function(e,t,r){"use strict";r.__esModule=!0,r.shareCommentsWithSiblings=function(){if("string"!=typeof this.key){var e=this.node;if(e){var t=e.trailingComments,r=e.leadingComments;if(t||r){var n=this.getSibling(this.key-1),i=this.getSibling(this.key+1);n.node||(n=i),i.node||(i=n),n.addComments("trailing",r),i.addComments("leading",t)}}}},r.addComment=function(e,t,r){this.addComments(e,[{type:r?"CommentLine":"CommentBlock",value:t}])},r.addComments=function(e,t){if(t){var r=this.node;if(r){var n=e+"Comments";r[n]?r[n]=r[n].concat(t):r[n]=t}}}},{}],146:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/core-js/get-iterator"));r.call=function(e){var t=this.opts;return this.debug(function(){return e}),!(!this.node||!this._call(t[e]))||!!this.node&&this._call(t[this.node.type]&&t[this.node.type][e])},r._call=function(e){if(!e)return!1;var t=e,r=Array.isArray(t),n=0;for(t=r?t:(0,i.default)(t);;){var s;if(r){if(n>=t.length)break;s=t[n++]}else{if((n=t.next()).done)break;s=n.value}var a=s;if(a){var o=this.node;if(!o)return!0;if(a.call(this.state,this,this.state))throw new Error("Unexpected return value from visitor method "+a);if(this.node!==o)return!0;if(this.shouldStop||this.shouldSkip||this.removed)return!0}}return!1},r.isBlacklisted=function(){var e=this.opts.blacklist;return e&&e.indexOf(this.node.type)>-1},r.visit=function(){return!!this.node&&!this.isBlacklisted()&&(!this.opts.shouldSkip||!this.opts.shouldSkip(this))&&(this.call("enter")||this.shouldSkip?(this.debug(function(){return"Skip..."}),this.shouldStop):(this.debug(function(){return"Recursing into..."}),s.default.node(this.node,this.opts,this.scope,this.state,this,this.skipKeys),this.call("exit"),this.shouldStop))},r.skip=function(){this.shouldSkip=!0},r.skipKey=function(e){this.skipKeys[e]=!0},r.stop=function(){this.shouldStop=!0,this.shouldSkip=!0},r.setScope=function(){if(!this.opts||!this.opts.noScope){var e=this.context&&this.context.scope;if(!e)for(var t=this.parentPath;t&&!e;){if(t.opts&&t.opts.noScope)return;e=t.scope,t=t.parentPath}this.scope=this.getScope(e),this.scope&&this.scope.init()}},r.setContext=function(e){return this.shouldSkip=!1,this.shouldStop=!1,this.removed=!1,this.skipKeys={},e&&(this.context=e,this.state=e.state,this.opts=e.opts),this.setScope(),this},r.resync=function(){this.removed||(this._resyncParent(),this._resyncList(),this._resyncKey())},r._resyncParent=function(){this.parentPath&&(this.parent=this.parentPath.node)},r._resyncKey=function(){if(this.container&&this.node!==this.container[this.key]){if(Array.isArray(this.container)){for(var e=0;e0&&void 0!==arguments[0]?arguments[0]:this;if(!e.removed){var t=this.contexts,r=Array.isArray(t),n=0;for(t=r?t:(0,i.default)(t);;){var s;if(r){if(n>=t.length)break;s=t[n++]}else{if((n=t.next()).done)break;s=n.value}s.maybeQueue(e)}}},r._getQueueContexts=function(){for(var e=this,t=this.contexts;!t.length;)t=(e=e.parentPath).contexts;return t};var s=n(e("../index"))},{"../index":143,"babel-runtime/core-js/get-iterator":120}],147:[function(e,t,r){"use strict";r.__esModule=!0,r.toComputedKey=function(){var e=this.node,t=void 0;if(this.isMemberExpression())t=e.property;else{if(!this.isProperty()&&!this.isMethod())throw new ReferenceError("todo");t=e.key}return e.computed||n.isIdentifier(t)&&(t=n.stringLiteral(t.name)),t},r.ensureBlock=function(){return n.ensureBlock(this.node)},r.arrowFunctionToShadowed=function(){if(this.isArrowFunctionExpression()){this.ensureBlock();var e=this.node;e.expression=!1,e.type="FunctionExpression",e.shadow=e.shadow||!0}};var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"))},{"babel-types":180}],148:[function(e,t,r){(function(t){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/helpers/typeof")),s=n(e("babel-runtime/core-js/get-iterator")),a=n(e("babel-runtime/core-js/map"));r.evaluateTruthy=function(){var e=this.evaluate();if(e.confident)return!!e.value},r.evaluate=function(){function e(e){n&&(l=e,n=!1)}function r(a){var l=a.node;if(c.has(l)){var p=c.get(l);return p.resolved?p.value:void e(a)}var h={resolved:!1};c.set(l,h);var f=function(a){if(n){var l=a.node;if(a.isSequenceExpression()){var c=a.get("expressions");return r(c[c.length-1])}if(a.isStringLiteral()||a.isNumericLiteral()||a.isBooleanLiteral())return l.value;if(a.isNullLiteral())return null;if(a.isTemplateLiteral()){for(var p="",h=0,f=a.get("expressions"),d=l.quasis,m=Array.isArray(d),y=0,d=m?d:(0,s.default)(d);;){var g;if(m){if(y>=d.length)break;g=d[y++]}else{if((y=d.next()).done)break;g=y.value}var b=g;if(!n)break;p+=b.value.cooked;var v=f[h++];v&&(p+=String(r(v)))}if(!n)return;return p}if(a.isConditionalExpression()){var x=r(a.get("test"));if(!n)return;return r(x?a.get("consequent"):a.get("alternate"))}if(a.isExpressionWrapper())return r(a.get("expression"));if(a.isMemberExpression()&&!a.parentPath.isCallExpression({callee:l})){var E=a.get("property"),A=a.get("object");if(A.isLiteral()&&E.isIdentifier()){var D=A.node.value,S=void 0===D?"undefined":(0,i.default)(D);if("number"===S||"string"===S)return D[E.node.name]}}if(a.isReferencedIdentifier()){var C=a.scope.getBinding(l.name);if(C&&C.constantViolations.length>0)return e(C.path);if(C&&a.node.start=P.length)break;N=P[O++]}else{if((O=P.next()).done)break;N=O.value}var j=N;if(!(j=j.evaluate()).confident)return e(j);F.push(j.value)}return F}if(a.isObjectExpression()){for(var I={},L=a.get("properties"),M=L,R=Array.isArray(M),V=0,M=R?M:(0,s.default)(M);;){var U;if(R){if(V>=M.length)break;U=M[V++]}else{if((V=M.next()).done)break;U=V.value}var q=U;if(q.isObjectMethod()||q.isSpreadProperty())return e(q);var G=q.get("key"),X=G;if(q.node.computed){if(!(X=X.evaluate()).confident)return e(G);X=X.value}else X=X.isIdentifier()?X.node.name:X.node.value;var J=q.get("value"),W=J.evaluate();if(!W.confident)return e(J);W=W.value,I[X]=W}return I}if(a.isLogicalExpression()){var K=n,z=r(a.get("left")),Y=n;n=K;var H=r(a.get("right")),$=n;switch(n=Y&&$,l.operator){case"||":if(z&&Y)return n=!0,z;if(!n)return;return z||H;case"&&":if((!z&&Y||!H&&$)&&(n=!0),!n)return;return z&&H}}if(a.isBinaryExpression()){var Q=r(a.get("left"));if(!n)return;var Z=r(a.get("right"));if(!n)return;switch(l.operator){case"-":return Q-Z;case"+":return Q+Z;case"/":return Q/Z;case"*":return Q*Z;case"%":return Q%Z;case"**":return Math.pow(Q,Z);case"<":return Q":return Q>Z;case"<=":return Q<=Z;case">=":return Q>=Z;case"==":return Q==Z;case"!=":return Q!=Z;case"===":return Q===Z;case"!==":return Q!==Z;case"|":return Q|Z;case"&":return Q&Z;case"^":return Q^Z;case"<<":return Q<>":return Q>>Z;case">>>":return Q>>>Z}}if(a.isCallExpression()){var ee=a.get("callee"),te=void 0,re=void 0;if(ee.isIdentifier()&&!a.scope.getBinding(ee.node.name,!0)&&o.indexOf(ee.node.name)>=0&&(re=t[l.callee.name]),ee.isMemberExpression()){var ne=ee.get("object"),ie=ee.get("property");if(ne.isIdentifier()&&ie.isIdentifier()&&o.indexOf(ne.node.name)>=0&&u.indexOf(ie.node.name)<0&&(te=t[ne.node.name],re=te[ie.node.name]),ne.isLiteral()&&ie.isIdentifier()){var se=(0,i.default)(ne.node.value);"string"!==se&&"number"!==se||(te=ne.node.value,re=te[ie.node.name])}}if(re){var ae=a.get("arguments").map(r);if(!n)return;return re.apply(te,ae)}}e(a)}}(a);return n&&(h.resolved=!0,h.value=f),f}var n=!0,l=void 0,c=new a.default,p=r(this);return n||(p=void 0),{confident:n,deopt:l,value:p}};var o=["String","Number","Math"],u=["random"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/map":122,"babel-runtime/helpers/typeof":138}],149:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/core-js/object/create")),s=n(e("babel-runtime/core-js/get-iterator"));r.getStatementParent=function(){var e=this;do{if(!e.parentPath||Array.isArray(e.container)&&e.isStatement())break;e=e.parentPath}while(e);if(e&&(e.isProgram()||e.isFile()))throw new Error("File/Program node, we can't possibly find a statement parent to this");return e},r.getOpposite=function(){return"left"===this.key?this.getSibling("right"):"right"===this.key?this.getSibling("left"):void 0},r.getCompletionRecords=function(){var e=[],t=function(t){t&&(e=e.concat(t.getCompletionRecords()))};if(this.isIfStatement())t(this.get("consequent")),t(this.get("alternate"));else if(this.isDoExpression()||this.isFor()||this.isWhile())t(this.get("body"));else if(this.isProgram()||this.isBlockStatement())t(this.get("body").pop());else{if(this.isFunction())return this.get("body").getCompletionRecords();this.isTryStatement()?(t(this.get("block")),t(this.get("handler")),t(this.get("finalizer"))):e.push(this)}return e},r.getSibling=function(e){return a.default.get({parentPath:this.parentPath,parent:this.parent,container:this.container,listKey:this.listKey,key:e})},r.getPrevSibling=function(){return this.getSibling(this.key-1)},r.getNextSibling=function(){return this.getSibling(this.key+1)},r.getAllNextSiblings=function(){for(var e=this.key,t=this.getSibling(++e),r=[];t.node;)r.push(t),t=this.getSibling(++e);return r},r.getAllPrevSiblings=function(){for(var e=this.key,t=this.getSibling(--e),r=[];t.node;)r.push(t),t=this.getSibling(--e);return r},r.get=function(e,t){!0===t&&(t=this.context);var r=e.split(".");return 1===r.length?this._getKey(e,t):this._getPattern(r,t)},r._getKey=function(e,t){var r=this,n=this.node,i=n[e];return Array.isArray(i)?i.map(function(s,o){return a.default.get({listKey:e,parentPath:r,parent:n,container:i,key:o}).setContext(t)}):a.default.get({parentPath:this,parent:n,container:n,key:e}).setContext(t)},r._getPattern=function(e,t){var r=this,n=e,i=Array.isArray(n),a=0;for(n=i?n:(0,s.default)(n);;){var o;if(i){if(a>=n.length)break;o=n[a++]}else{if((a=n.next()).done)break;o=a.value}var u=o;r="."===u?r.parentPath:Array.isArray(r)?r[u]:r.get(u,t)}return r},r.getBindingIdentifiers=function(e){return o.getBindingIdentifiers(this.node,e)},r.getOuterBindingIdentifiers=function(e){return o.getOuterBindingIdentifiers(this.node,e)},r.getBindingIdentifierPaths=function(){for(var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=[].concat(this),n=(0,i.default)(null);r.length;){var s=r.shift();if(s&&s.node){var a=o.getBindingIdentifiers.keys[s.node.type];if(s.isIdentifier())e?(n[s.node.name]=n[s.node.name]||[]).push(s):n[s.node.name]=s;else if(s.isExportDeclaration()){var u=s.get("declaration");u.isDeclaration()&&r.push(u)}else{if(t){if(s.isFunctionDeclaration()){r.push(s.get("id"));continue}if(s.isFunctionExpression())continue}if(a)for(var l=0;l1&&void 0!==arguments[1]?arguments[1]:SyntaxError;return this.hub.file.buildCodeFrameError(this.node,e,t)},e.prototype.traverse=function(e,t){(0,c.default)(this.node,e,this.scope,t,this)},e.prototype.mark=function(e,t){this.hub.file.metadata.marked.push({type:e,message:t,loc:this.node.loc})},e.prototype.set=function(e,t){f.validate(this.node,e,t),this.node[e]=t},e.prototype.getPathLocation=function(){var e=[],t=this;do{var r=t.key;t.inList&&(r=t.listKey+"["+r+"]"),e.unshift(r)}while(t=t.parentPath);return e.join(".")},e.prototype.debug=function(e){m.enabled&&m(this.getPathLocation()+" "+this.type+": "+e())},e}();r.default=y,(0,p.default)(y.prototype,e("./ancestry")),(0,p.default)(y.prototype,e("./inference")),(0,p.default)(y.prototype,e("./replacement")),(0,p.default)(y.prototype,e("./evaluation")),(0,p.default)(y.prototype,e("./conversion")),(0,p.default)(y.prototype,e("./introspection")),(0,p.default)(y.prototype,e("./context")),(0,p.default)(y.prototype,e("./removal")),(0,p.default)(y.prototype,e("./modification")),(0,p.default)(y.prototype,e("./family")),(0,p.default)(y.prototype,e("./comments"));var g=function(){if(v){if(x>=b.length)return"break";E=b[x++]}else{if((x=b.next()).done)return"break";E=x.value}var e=E,t="is"+e;y.prototype[t]=function(e){return f[t](this.node,e)},y.prototype["assert"+e]=function(r){if(!this[t](r))throw new TypeError("Expected node path of type "+e)}},b=f.TYPES,v=Array.isArray(b),x=0;for(b=v?b:(0,s.default)(b);;){var E;if("break"===g())break}var A=function(e){if("_"===e[0])return"continue";f.TYPES.indexOf(e)<0&&f.TYPES.push(e);var t=o[e];y.prototype["is"+e]=function(e){return t.checkPath(this,e)}};for(var D in o){A(D)}t.exports=r.default},{"../cache":140,"../index":143,"../scope":162,"./ancestry":144,"./comments":145,"./context":146,"./conversion":147,"./evaluation":148,"./family":149,"./inference":151,"./introspection":154,"./lib/virtual-types":157,"./modification":158,"./removal":159,"./replacement":160,"babel-runtime/core-js/get-iterator":120,"babel-runtime/helpers/classCallCheck":134,"babel-types":180,debug:165,invariant:318,"lodash/assign":488}],151:[function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e,t,r){if("string"===e)return o.isStringTypeAnnotation(t);if("number"===e)return o.isNumberTypeAnnotation(t);if("boolean"===e)return o.isBooleanTypeAnnotation(t);if("any"===e)return o.isAnyTypeAnnotation(t);if("mixed"===e)return o.isMixedTypeAnnotation(t);if("empty"===e)return o.isEmptyTypeAnnotation(t);if("void"===e)return o.isVoidTypeAnnotation(t);if(r)return!1;throw new Error("Unknown base type "+e)}r.__esModule=!0;var s=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/get-iterator"));r.getTypeAnnotation=function(){if(this.typeAnnotation)return this.typeAnnotation;var e=this._getTypeAnnotation()||o.anyTypeAnnotation();return o.isTypeAnnotation(e)&&(e=e.typeAnnotation),this.typeAnnotation=e},r._getTypeAnnotation=function(){var e=this.node;if(e){if(e.typeAnnotation)return e.typeAnnotation;var t=a[e.type];return t?t.call(this,e):(t=a[this.parentPath.type])&&t.validParent?this.parentPath.getTypeAnnotation():void 0}if("init"===this.key&&this.parentPath.isVariableDeclarator()){var r=this.parentPath.parentPath,n=r.parentPath;return"left"===r.key&&n.isForInStatement()?o.stringTypeAnnotation():"left"===r.key&&n.isForOfStatement()?o.anyTypeAnnotation():o.voidTypeAnnotation()}},r.isBaseType=function(e,t){return i(e,this.getTypeAnnotation(),t)},r.couldBeBaseType=function(e){var t=this.getTypeAnnotation();if(o.isAnyTypeAnnotation(t))return!0;if(o.isUnionTypeAnnotation(t)){var r=t.types,n=Array.isArray(r),a=0;for(r=n?r:(0,s.default)(r);;){var u;if(n){if(a>=r.length)break;u=r[a++]}else{if((a=r.next()).done)break;u=a.value}var l=u;if(o.isAnyTypeAnnotation(l)||i(e,l,!0))return!0}return!1}return i(e,t,!0)},r.baseTypeStrictlyMatches=function(e){var t=this.getTypeAnnotation();if(e=e.getTypeAnnotation(),!o.isAnyTypeAnnotation(t)&&o.isFlowBaseAnnotation(t))return e.type===t.type},r.isGenericType=function(e){var t=this.getTypeAnnotation();return o.isGenericTypeAnnotation(t)&&o.isIdentifier(t.id,{name:e})};var a=n(e("./inferers")),o=n(e("babel-types"))},{"./inferers":153,"babel-runtime/core-js/get-iterator":120,"babel-types":180}],152:[function(e,t,r){"use strict";function n(e,t,r){var n=e.constantViolations.slice();return n.unshift(e.path),n.filter(function(e){var n=(e=e.resolve())._guessExecutionStatusRelativeTo(t);return r&&"function"===n&&r.push(e),"before"===n})}function i(e,t){var r=t.node.operator,n=t.get("right").resolve(),i=t.get("left").resolve(),s=void 0;if(i.isIdentifier({name:e})?s=n:n.isIdentifier({name:e})&&(s=i),s)return"==="===r?s.getTypeAnnotation():o.BOOLEAN_NUMBER_BINARY_OPERATORS.indexOf(r)>=0?o.numberTypeAnnotation():void 0;if("==="===r){var a=void 0,u=void 0;if(i.isUnaryExpression({operator:"typeof"})?(a=i,u=n):n.isUnaryExpression({operator:"typeof"})&&(a=n,u=i),(u||a)&&(u=u.resolve()).isLiteral()){if("string"==typeof u.node.value&&a.get("argument").isIdentifier({name:e}))return o.createTypeAnnotationBasedOnTypeof(u.node.value)}}}function s(e,t){var r=function(e){for(var t=void 0;t=e.parentPath;){if(t.isIfStatement()||t.isConditionalExpression())return"test"===e.key?void 0:t;e=t}}(e);if(r){var n=[r.get("test")],a=[];do{var u=n.shift().resolve();if(u.isLogicalExpression()&&(n.push(u.get("left")),n.push(u.get("right"))),u.isBinaryExpression()){var l=i(t,u);l&&a.push(l)}}while(n.length);return a.length?{typeAnnotation:o.createUnionTypeAnnotation(a),ifStatement:r}:s(r,t)}}r.__esModule=!0;var a=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/get-iterator"));r.default=function(e){if(this.isReferenced()){var t=this.scope.getBinding(e.name);return t?t.identifier.typeAnnotation?t.identifier.typeAnnotation:function(e,t){var r=e.scope.getBinding(t),i=[];e.typeAnnotation=o.unionTypeAnnotation(i);var u=[],l=n(r,e,u),c=s(e,t);if(c){var p=n(r,c.ifStatement);l=l.filter(function(e){return p.indexOf(e)<0}),i.push(c.typeAnnotation)}if(l.length){var h=l=l.concat(u),f=Array.isArray(h),d=0;for(h=f?h:(0,a.default)(h);;){var m;if(f){if(d>=h.length)break;m=h[d++]}else{if((d=h.next()).done)break;m=d.value}var y=m;i.push(y.getTypeAnnotation())}}if(i.length)return o.createUnionTypeAnnotation(i)}(this,e.name):"undefined"===e.name?o.voidTypeAnnotation():"NaN"===e.name||"Infinity"===e.name?o.numberTypeAnnotation():void e.name}};var o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"));t.exports=r.default},{"babel-runtime/core-js/get-iterator":120,"babel-types":180}],153:[function(e,t,r){"use strict";function n(e){return e.typeAnnotation}function i(){return l.genericTypeAnnotation(l.identifier("Array"))}function s(){return i()}function a(){return l.genericTypeAnnotation(l.identifier("Function"))}function o(e){if((e=e.resolve()).isFunction()){if(e.is("async"))return e.is("generator")?l.genericTypeAnnotation(l.identifier("AsyncIterator")):l.genericTypeAnnotation(l.identifier("Promise"));if(e.node.returnType)return e.node.returnType}}r.__esModule=!0,r.ClassDeclaration=r.ClassExpression=r.FunctionDeclaration=r.ArrowFunctionExpression=r.FunctionExpression=r.Identifier=void 0;var u=e("./inferer-reference");Object.defineProperty(r,"Identifier",{enumerable:!0,get:function(){return function(e){return e&&e.__esModule?e:{default:e}}(u).default}}),r.VariableDeclarator=function(){return this.get("id").isIdentifier()?this.get("init").getTypeAnnotation():void 0},r.TypeCastExpression=n,r.NewExpression=function(e){if(this.get("callee").isIdentifier())return l.genericTypeAnnotation(e.callee)},r.TemplateLiteral=function(){return l.stringTypeAnnotation()},r.UnaryExpression=function(e){var t=e.operator;return"void"===t?l.voidTypeAnnotation():l.NUMBER_UNARY_OPERATORS.indexOf(t)>=0?l.numberTypeAnnotation():l.STRING_UNARY_OPERATORS.indexOf(t)>=0?l.stringTypeAnnotation():l.BOOLEAN_UNARY_OPERATORS.indexOf(t)>=0?l.booleanTypeAnnotation():void 0},r.BinaryExpression=function(e){var t=e.operator;if(l.NUMBER_BINARY_OPERATORS.indexOf(t)>=0)return l.numberTypeAnnotation();if(l.BOOLEAN_BINARY_OPERATORS.indexOf(t)>=0)return l.booleanTypeAnnotation();if("+"===t){var r=this.get("right"),n=this.get("left");return n.isBaseType("number")&&r.isBaseType("number")?l.numberTypeAnnotation():n.isBaseType("string")||r.isBaseType("string")?l.stringTypeAnnotation():l.unionTypeAnnotation([l.stringTypeAnnotation(),l.numberTypeAnnotation()])}},r.LogicalExpression=function(){return l.createUnionTypeAnnotation([this.get("left").getTypeAnnotation(),this.get("right").getTypeAnnotation()])},r.ConditionalExpression=function(){return l.createUnionTypeAnnotation([this.get("consequent").getTypeAnnotation(),this.get("alternate").getTypeAnnotation()])},r.SequenceExpression=function(){return this.get("expressions").pop().getTypeAnnotation()},r.AssignmentExpression=function(){return this.get("right").getTypeAnnotation()},r.UpdateExpression=function(e){var t=e.operator;if("++"===t||"--"===t)return l.numberTypeAnnotation()},r.StringLiteral=function(){return l.stringTypeAnnotation()},r.NumericLiteral=function(){return l.numberTypeAnnotation()},r.BooleanLiteral=function(){return l.booleanTypeAnnotation()},r.NullLiteral=function(){return l.nullLiteralTypeAnnotation()},r.RegExpLiteral=function(){return l.genericTypeAnnotation(l.identifier("RegExp"))},r.ObjectExpression=function(){return l.genericTypeAnnotation(l.identifier("Object"))},r.ArrayExpression=i,r.RestElement=s,r.CallExpression=function(){return o(this.get("callee"))},r.TaggedTemplateExpression=function(){return o(this.get("tag"))};var l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"));n.validParent=!0,s.validParent=!0,r.FunctionExpression=a,r.ArrowFunctionExpression=a,r.FunctionDeclaration=a,r.ClassExpression=a,r.ClassDeclaration=a},{"./inferer-reference":152,"babel-types":180}],154:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=this.node&&this.node[e];return t&&Array.isArray(t)?!!t.length:!!t}r.__esModule=!0,r.is=void 0;var s=n(e("babel-runtime/core-js/get-iterator"));r.matchesPattern=function(e,t){function r(e){var t=n[s];return"*"===t||e===t}if(!this.isMemberExpression())return!1;for(var n=e.split("."),i=[this.node],s=0;i.length;){var a=i.shift();if(t&&s===n.length)return!0;if(o.isIdentifier(a)){if(!r(a.name))return!1}else if(o.isLiteral(a)){if(!r(a.value))return!1}else{if(o.isMemberExpression(a)){if(a.computed&&!o.isLiteral(a.property))return!1;i.unshift(a.property),i.unshift(a.object);continue}if(!o.isThisExpression(a))return!1;if(!r("this"))return!1}if(++s>n.length)return!1}return s===n.length},r.has=i,r.isStatic=function(){return this.scope.isStatic(this.node)},r.isnt=function(e){return!this.has(e)},r.equals=function(e,t){return this.node[e]===t},r.isNodeType=function(e){return o.isType(this.type,e)},r.canHaveVariableDeclarationOrExpression=function(){return("init"===this.key||"left"===this.key)&&this.parentPath.isFor()},r.canSwapBetweenExpressionAndStatement=function(e){return!("body"!==this.key||!this.parentPath.isArrowFunctionExpression())&&(this.isExpression()?o.isBlockStatement(e):!!this.isBlockStatement()&&o.isExpression(e))},r.isCompletionRecord=function(e){var t=this,r=!0;do{var n=t.container;if(t.isFunction()&&!r)return!!e;if(r=!1,Array.isArray(n)&&t.key!==n.length-1)return!1}while((t=t.parentPath)&&!t.isProgram());return!0},r.isStatementOrBlock=function(){return!this.parentPath.isLabeledStatement()&&!o.isBlockStatement(this.container)&&(0,a.default)(o.STATEMENT_OR_BLOCK_KEYS,this.key)},r.referencesImport=function(e,t){if(!this.isReferencedIdentifier())return!1;var r=this.scope.getBinding(this.node.name);if(!r||"module"!==r.kind)return!1;var n=r.path,i=n.parentPath;return!(!i.isImportDeclaration()||i.node.source.value!==e||t&&(!n.isImportDefaultSpecifier()||"default"!==t)&&(!n.isImportNamespaceSpecifier()||"*"!==t)&&(!n.isImportSpecifier()||n.node.imported.name!==t))},r.getSource=function(){var e=this.node;return e.end?this.hub.file.code.slice(e.start,e.end):""},r.willIMaybeExecuteBefore=function(e){return"after"!==this._guessExecutionStatusRelativeTo(e)},r._guessExecutionStatusRelativeTo=function(e){var t=e.scope.getFunctionParent(),r=this.scope.getFunctionParent();if(t.node!==r.node){var n=this._guessExecutionStatusRelativeToDifferentFunctions(t);if(n)return n;e=t.path}var i=e.getAncestry();if(i.indexOf(this)>=0)return"after";var s=this.getAncestry(),a=void 0,u=void 0,l=void 0;for(l=0;l=0){a=c;break}}if(!a)return"before";var p=i[u-1],h=s[l-1];return p&&h?p.listKey&&p.container===h.container?p.key>h.key?"before":"after":o.VISITOR_KEYS[p.type].indexOf(p.key)>o.VISITOR_KEYS[h.type].indexOf(h.key)?"before":"after":"before"},r._guessExecutionStatusRelativeToDifferentFunctions=function(e){var t=e.path;if(t.isFunctionDeclaration()){var r=t.scope.getBinding(t.node.id.name);if(!r.references)return"before";var n=r.referencePaths,i=n,a=Array.isArray(i),o=0;for(i=a?i:(0,s.default)(i);;){var u;if(a){if(o>=i.length)break;u=i[o++]}else{if((o=i.next()).done)break;u=o.value}var l=u;if("callee"!==l.key||!l.parentPath.isCallExpression())return}var c=void 0,p=n,h=Array.isArray(p),f=0;for(p=h?p:(0,s.default)(p);;){var d;if(h){if(f>=p.length)break;d=p[f++]}else{if((f=p.next()).done)break;d=f.value}var m=d;if(!m.find(function(e){return e.node===t.node})){var y=this._guessExecutionStatusRelativeTo(m);if(c){if(c!==y)return}else c=y}}return c}},r.resolve=function(e,t){return this._resolve(e,t)||this},r._resolve=function(e,t){if(!(t&&t.indexOf(this)>=0))if((t=t||[]).push(this),this.isVariableDeclarator()){if(this.get("id").isIdentifier())return this.get("init").resolve(e,t)}else if(this.isReferencedIdentifier()){var r=this.scope.getBinding(this.node.name);if(!r)return;if(!r.constant)return;if("module"===r.kind)return;if(r.path!==this){var n=r.path.resolve(e,t);if(this.find(function(e){return e.node===n.node}))return;return n}}else{if(this.isTypeCastExpression())return this.get("expression").resolve(e,t);if(e&&this.isMemberExpression()){var i=this.toComputedKey();if(!o.isLiteral(i))return;var a=i.value,u=this.get("object").resolve(e,t);if(u.isObjectExpression()){var l=u.get("properties"),c=Array.isArray(l),p=0;for(l=c?l:(0,s.default)(l);;){var h;if(c){if(p>=l.length)break;h=l[p++]}else{if((p=l.next()).done)break;h=p.value}var f=h;if(f.isProperty()){var d=f.get("key"),m=f.isnt("computed")&&d.isIdentifier({name:a});if(m=m||d.isLiteral({value:a}))return f.get("value").resolve(e,t)}}}else if(u.isArrayExpression()&&!isNaN(+a)){var y=u.get("elements")[a];if(y)return y.resolve(e,t)}}}};var a=n(e("lodash/includes")),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"));r.is=i},{"babel-runtime/core-js/get-iterator":120,"babel-types":180,"lodash/includes":507}],155:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/core-js/get-iterator")),s=n(e("babel-runtime/helpers/classCallCheck")),a=e("babel-types"),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a),u={ReferencedIdentifier:function(e,t){if(!e.isJSXIdentifier()||!a.react.isCompatTag(e.node.name)||e.parentPath.isJSXMemberExpression()){if("this"===e.node.name){var r=e.scope;do{if(r.path.isFunction()&&!r.path.isArrowFunctionExpression())break}while(r=r.parent);r&&t.breakOnScopePaths.push(r.path)}var n=e.scope.getBinding(e.node.name);n&&n===t.scope.getBinding(e.node.name)&&(t.bindings[e.node.name]=n)}}},l=function(){function e(t,r){(0,s.default)(this,e),this.breakOnScopePaths=[],this.bindings={},this.scopes=[],this.scope=r,this.path=t,this.attachAfter=!1}return e.prototype.isCompatibleScope=function(e){for(var t in this.bindings){var r=this.bindings[t];if(!e.bindingIdentifierEquals(t,r.identifier))return!1}return!0},e.prototype.getCompatibleScopes=function(){var e=this.path.scope;do{if(!this.isCompatibleScope(e))break;if(this.scopes.push(e),this.breakOnScopePaths.indexOf(e.path)>=0)break}while(e=e.parent)},e.prototype.getAttachmentPath=function(){var e=this._getAttachmentPath();if(e){var t=e.scope;if(t.path===e&&(t=e.scope.parent),t.path.isProgram()||t.path.isFunction())for(var r in this.bindings)if(t.hasOwnBinding(r)){var n=this.bindings[r];if("param"!==n.kind&&this.getAttachmentParentForPath(n.path).key>e.key){this.attachAfter=!0,e=n.path;var s=n.constantViolations,a=Array.isArray(s),o=0;for(s=a?s:(0,i.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if((o=s.next()).done)break;u=o.value}var l=u;this.getAttachmentParentForPath(l).key>e.key&&(e=l)}}}return e.parentPath.isExportDeclaration()&&(e=e.parentPath),e}},e.prototype._getAttachmentPath=function(){var e=this.scopes.pop();if(e){if(e.path.isFunction()){if(this.hasOwnParamBindings(e)){if(this.scope===e)return;return e.path.get("body").get("body")[0]}return this.getNextScopeAttachmentParent()}return e.path.isProgram()?this.getNextScopeAttachmentParent():void 0}},e.prototype.getNextScopeAttachmentParent=function(){var e=this.scopes.pop();if(e)return this.getAttachmentParentForPath(e.path)},e.prototype.getAttachmentParentForPath=function(e){do{if(!e.parentPath||Array.isArray(e.container)&&e.isStatement()||e.isVariableDeclarator()&&null!==e.parentPath.node&&e.parentPath.node.declarations.length>1)return e}while(e=e.parentPath)},e.prototype.hasOwnParamBindings=function(e){for(var t in this.bindings)if(e.hasOwnBinding(t)){var r=this.bindings[t];if("param"===r.kind&&r.constant)return!0}return!1},e.prototype.run=function(){var e=this.path.node;if(!e._hoisted){e._hoisted=!0,this.path.traverse(u,this),this.getCompatibleScopes();var t=this.getAttachmentPath();if(t&&t.getFunctionParent()!==this.path.getFunctionParent()){var r=t.scope.generateUidIdentifier("ref"),n=o.variableDeclarator(r,this.path.node);t[this.attachAfter?"insertAfter":"insertBefore"]([t.isVariableDeclarator()?n:o.variableDeclaration("var",[n])]);var i=this.path.parentPath;i.isJSXElement()&&this.path.container===i.node.children&&(r=o.JSXExpressionContainer(r)),this.path.replaceWith(r)}}},e}();r.default=l,t.exports=r.default},{"babel-runtime/core-js/get-iterator":120,"babel-runtime/helpers/classCallCheck":134,"babel-types":180}],156:[function(e,t,r){"use strict";r.__esModule=!0;r.hooks=[function(e,t){if("test"===e.key&&(t.isWhile()||t.isSwitchCase())||"declaration"===e.key&&t.isExportDeclaration()||"body"===e.key&&t.isLabeledStatement()||"declarations"===e.listKey&&t.isVariableDeclaration()&&1===t.node.declarations.length||"expression"===e.key&&t.isExpressionStatement())return t.remove(),!0},function(e,t){if(t.isSequenceExpression()&&1===t.node.expressions.length)return t.replaceWith(t.node.expressions[0]),!0},function(e,t){if(t.isBinary())return"left"===e.key?t.replaceWith(t.node.right):t.replaceWith(t.node.left),!0},function(e,t){if(t.isIfStatement()&&("consequent"===e.key||"alternate"===e.key)||"body"===e.key&&(t.isLoop()||t.isArrowFunctionExpression()))return e.replaceWith({type:"BlockStatement",body:[]}),!0}]},{}],157:[function(e,t,r){"use strict";r.__esModule=!0,r.Flow=r.Pure=r.Generated=r.User=r.Var=r.BlockScoped=r.Referenced=r.Scope=r.Expression=r.Statement=r.BindingIdentifier=r.ReferencedMemberExpression=r.ReferencedIdentifier=void 0;var n=e("babel-types"),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);r.ReferencedIdentifier={types:["Identifier","JSXIdentifier"],checkPath:function(e,t){var r=e.node,s=e.parent;if(!i.isIdentifier(r,t)&&!i.isJSXMemberExpression(s,t)){if(!i.isJSXIdentifier(r,t))return!1;if(n.react.isCompatTag(r.name))return!1}return i.isReferenced(r,s)}},r.ReferencedMemberExpression={types:["MemberExpression"],checkPath:function(e){var t=e.node,r=e.parent;return i.isMemberExpression(t)&&i.isReferenced(t,r)}},r.BindingIdentifier={types:["Identifier"],checkPath:function(e){var t=e.node,r=e.parent;return i.isIdentifier(t)&&i.isBinding(t,r)}},r.Statement={types:["Statement"],checkPath:function(e){var t=e.node,r=e.parent;if(i.isStatement(t)){if(i.isVariableDeclaration(t)){if(i.isForXStatement(r,{left:t}))return!1;if(i.isForStatement(r,{init:t}))return!1}return!0}return!1}},r.Expression={types:["Expression"],checkPath:function(e){return e.isIdentifier()?e.isReferencedIdentifier():i.isExpression(e.node)}},r.Scope={types:["Scopable"],checkPath:function(e){return i.isScope(e.node,e.parent)}},r.Referenced={checkPath:function(e){return i.isReferenced(e.node,e.parent)}},r.BlockScoped={checkPath:function(e){return i.isBlockScoped(e.node)}},r.Var={types:["VariableDeclaration"],checkPath:function(e){return i.isVar(e.node)}},r.User={checkPath:function(e){return e.node&&!!e.node.loc}},r.Generated={checkPath:function(e){return!e.isUser()}},r.Pure={checkPath:function(e,t){return e.scope.isPure(e.node,t)}},r.Flow={types:["Flow","ImportDeclaration","ExportDeclaration","ImportSpecifier"],checkPath:function(e){var t=e.node;return!!i.isFlow(t)||(i.isImportDeclaration(t)?"type"===t.importKind||"typeof"===t.importKind:i.isExportDeclaration(t)?"type"===t.exportKind:!!i.isImportSpecifier(t)&&("type"===t.importKind||"typeof"===t.importKind))}}},{"babel-types":180}],158:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/helpers/typeof")),s=n(e("babel-runtime/core-js/get-iterator"));r.insertBefore=function(e){if(this._assertUnremoved(),e=this._verifyNodeList(e),this.parentPath.isExpressionStatement()||this.parentPath.isLabeledStatement())return this.parentPath.insertBefore(e);if(this.isNodeType("Expression")||this.parentPath.isForStatement()&&"init"===this.key)this.node&&e.push(this.node),this.replaceExpressionWithStatements(e);else{if(this._maybePopFromStatements(e),Array.isArray(this.container))return this._containerInsertBefore(e);if(!this.isStatementOrBlock())throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?");this.node&&e.push(this.node),this._replaceWith(l.blockStatement(e))}return[this]},r._containerInsert=function(e,t){this.updateSiblingKeys(e,t.length);for(var r=[],n=0;n=c.length)break;f=c[h++]}else{if((h=c.next()).done)break;f=h.value}var d=f;d.setScope(),d.debug(function(){return"Inserted."});var m=l,y=Array.isArray(m),g=0;for(m=y?m:(0,s.default)(m);;){var b;if(y){if(g>=m.length)break;b=m[g++]}else{if((g=m.next()).done)break;b=g.value}b.maybeQueue(d,!0)}}return r},r._containerInsertBefore=function(e){return this._containerInsert(this.key,e)},r._containerInsertAfter=function(e){return this._containerInsert(this.key+1,e)},r._maybePopFromStatements=function(e){var t=e[e.length-1];(l.isIdentifier(t)||l.isExpressionStatement(t)&&l.isIdentifier(t.expression))&&!this.isCompletionRecord()&&e.pop()},r.insertAfter=function(e){if(this._assertUnremoved(),e=this._verifyNodeList(e),this.parentPath.isExpressionStatement()||this.parentPath.isLabeledStatement())return this.parentPath.insertAfter(e);if(this.isNodeType("Expression")||this.parentPath.isForStatement()&&"init"===this.key){if(this.node){var t=this.scope.generateDeclaredUidIdentifier();e.unshift(l.expressionStatement(l.assignmentExpression("=",t,this.node))),e.push(l.expressionStatement(t))}this.replaceExpressionWithStatements(e)}else{if(this._maybePopFromStatements(e),Array.isArray(this.container))return this._containerInsertAfter(e);if(!this.isStatementOrBlock())throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?");this.node&&e.unshift(this.node),this._replaceWith(l.blockStatement(e))}return[this]},r.updateSiblingKeys=function(e,t){if(this.parent)for(var r=a.path.get(this.parent),n=0;n=e&&(i.key+=t)}},r._verifyNodeList=function(e){if(!e)return[];e.constructor!==Array&&(e=[e]);for(var t=0;t0&&void 0!==arguments[0]?arguments[0]:this.scope;return new o.default(this,e).run()};var a=e("../cache"),o=n(e("./lib/hoister")),u=n(e("./index")),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"))},{"../cache":140,"./index":150,"./lib/hoister":155,"babel-runtime/core-js/get-iterator":120,"babel-runtime/helpers/typeof":138,"babel-types":180}],159:[function(e,t,r){"use strict";r.__esModule=!0;var n=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/get-iterator"));r.remove=function(){this._assertUnremoved(),this.resync(),this._callRemovalHooks()?this._markRemoved():(this.shareCommentsWithSiblings(),this._remove(),this._markRemoved())},r._callRemovalHooks=function(){var e=i.hooks,t=Array.isArray(e),r=0;for(e=t?e:(0,n.default)(e);;){var s;if(t){if(r>=e.length)break;s=e[r++]}else{if((r=e.next()).done)break;s=r.value}if(s(this,this.parentPath))return!0}},r._remove=function(){Array.isArray(this.container)?(this.container.splice(this.key,1),this.updateSiblingKeys(this.key,-1)):this._replaceWith(null)},r._markRemoved=function(){this.shouldSkip=!0,this.removed=!0,this.node=null},r._assertUnremoved=function(){if(this.removed)throw this.buildCodeFrameError("NodePath has been removed so is read-only.")};var i=e("./lib/removal-hooks")},{"./lib/removal-hooks":156,"babel-runtime/core-js/get-iterator":120}],160:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/core-js/get-iterator"));r.replaceWithMultiple=function(e){this.resync(),e=this._verifyNodeList(e),l.inheritLeadingComments(e[0],this.node),l.inheritTrailingComments(e[e.length-1],this.node),this.node=this.container[this.key]=null,this.insertAfter(e),this.node?this.requeue():this.remove()},r.replaceWithSourceString=function(e){this.resync();try{e="("+e+")",e=(0,u.parse)(e)}catch(r){var t=r.loc;throw t&&(r.message+=" - make sure this is an expression.",r.message+="\n"+(0,s.default)(e,t.line,t.column+1)),r}return e=e.program.body[0].expression,a.default.removeProperties(e),this.replaceWith(e)},r.replaceWith=function(e){if(this.resync(),this.removed)throw new Error("You can't replace this node, we've already removed it");if(e instanceof o.default&&(e=e.node),!e)throw new Error("You passed `path.replaceWith()` a falsy node, use `path.remove()` instead");if(this.node!==e){if(this.isProgram()&&!l.isProgram(e))throw new Error("You can only replace a Program root node with another Program node");if(Array.isArray(e))throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`");if("string"==typeof e)throw new Error("Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`");if(this.isNodeType("Statement")&&l.isExpression(e)&&(this.canHaveVariableDeclarationOrExpression()||this.canSwapBetweenExpressionAndStatement(e)||this.parentPath.isExportDefaultDeclaration()||(e=l.expressionStatement(e))),this.isNodeType("Expression")&&l.isStatement(e)&&!this.canHaveVariableDeclarationOrExpression()&&!this.canSwapBetweenExpressionAndStatement(e))return this.replaceExpressionWithStatements([e]);var t=this.node;t&&(l.inheritsComments(e,t),l.removeComments(t)),this._replaceWith(e),this.type=e.type,this.setScope(),this.requeue()}},r._replaceWith=function(e){if(!this.container)throw new ReferenceError("Container is falsy");this.inList?l.validate(this.parent,this.key,[e]):l.validate(this.parent,this.key,e),this.debug(function(){return"Replace with "+(e&&e.type)}),this.node=this.container[this.key]=e},r.replaceExpressionWithStatements=function(e){this.resync();var t=l.toSequenceExpression(e,this.scope);if(l.isSequenceExpression(t)){var r=t.expressions;r.length>=2&&this.parentPath.isExpressionStatement()&&this._maybePopFromStatements(r),1===r.length?this.replaceWith(r[0]):this.replaceWith(t)}else{if(!t){var n=l.functionExpression(null,[],l.blockStatement(e));n.shadow=!0,this.replaceWith(l.callExpression(n,[])),this.traverse(c);var s=this.get("callee").getCompletionRecords(),a=Array.isArray(s),o=0;for(s=a?s:(0,i.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if((o=s.next()).done)break;u=o.value}var p=u;if(p.isExpressionStatement()){var h=p.findParent(function(e){return e.isLoop()});if(h){var f=h.getData("expressionReplacementReturnUid");if(f)f=l.identifier(f.name);else{var d=this.get("callee");f=d.scope.generateDeclaredUidIdentifier("ret"),d.get("body").pushContainer("body",l.returnStatement(f)),h.setData("expressionReplacementReturnUid",f)}p.get("expression").replaceWith(l.assignmentExpression("=",f,p.node.expression))}else p.replaceWith(l.returnStatement(p.node.expression))}}return this.node}this.replaceWith(t)}},r.replaceInline=function(e){return this.resync(),Array.isArray(e)?Array.isArray(this.container)?(e=this._verifyNodeList(e),this._containerInsertAfter(e),this.remove()):this.replaceWithMultiple(e):this.replaceWith(e)};var s=n(e("babel-code-frame")),a=n(e("../index")),o=n(e("./index")),u=e("babylon"),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types")),c={Function:function(e){e.skip()},VariableDeclaration:function(e){if("var"===e.node.kind){var t=e.getBindingIdentifiers();for(var r in t)e.scope.push({id:t[r]});var n=[],s=e.node.declarations,a=Array.isArray(s),o=0;for(s=a?s:(0,i.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if((o=s.next()).done)break;u=o.value}var c=u;c.init&&n.push(l.expressionStatement(l.assignmentExpression("=",c.id,c.init)))}e.replaceWithMultiple(n)}}}},{"../index":143,"./index":150,"babel-code-frame":21,"babel-runtime/core-js/get-iterator":120,"babel-types":180,babylon:188}],161:[function(e,t,r){"use strict";r.__esModule=!0;var n=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/helpers/classCallCheck")),i=function(){function e(t){var r=t.existing,i=t.identifier,s=t.scope,a=t.path,o=t.kind;(0,n.default)(this,e),this.identifier=i,this.scope=s,this.path=a,this.kind=o,this.constantViolations=[],this.constant=!0,this.referencePaths=[],this.referenced=!1,this.references=0,this.clearValue(),r&&(this.constantViolations=[].concat(r.path,r.constantViolations,this.constantViolations))}return e.prototype.deoptValue=function(){this.clearValue(),this.hasDeoptedValue=!0},e.prototype.setValue=function(e){this.hasDeoptedValue||(this.hasValue=!0,this.value=e)},e.prototype.clearValue=function(){this.hasDeoptedValue=!1,this.hasValue=!1,this.value=null},e.prototype.reassign=function(e){this.constant=!1,-1===this.constantViolations.indexOf(e)&&this.constantViolations.push(e)},e.prototype.reference=function(e){-1===this.referencePaths.indexOf(e)&&(this.referenced=!0,this.references++,this.referencePaths.push(e))},e.prototype.dereference=function(){this.references--,this.referenced=!!this.references},e}();r.default=i,t.exports=r.default},{"babel-runtime/helpers/classCallCheck":134}],162:[function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(v.isModuleDeclaration(e))if(e.source)s(e.source,t);else if(e.specifiers&&e.specifiers.length){var r=e.specifiers,n=Array.isArray(r),i=0;for(r=n?r:(0,c.default)(r);;){var a;if(n){if(i>=r.length)break;a=r[i++]}else{if((i=r.next()).done)break;a=i.value}s(a,t)}}else e.declaration&&s(e.declaration,t);else if(v.isModuleSpecifier(e))s(e.local,t);else if(v.isMemberExpression(e))s(e.object,t),s(e.property,t);else if(v.isIdentifier(e))t.push(e.name);else if(v.isLiteral(e))t.push(e.value);else if(v.isCallExpression(e))s(e.callee,t);else if(v.isObjectExpression(e)||v.isObjectPattern(e)){var o=e.properties,u=Array.isArray(o),l=0;for(o=u?o:(0,c.default)(o);;){var p;if(u){if(l>=o.length)break;p=o[l++]}else{if((l=o.next()).done)break;p=l.value}var h=p;s(h.key||h.argument,t)}}}r.__esModule=!0;var a=i(e("babel-runtime/core-js/object/keys")),o=i(e("babel-runtime/core-js/object/create")),u=i(e("babel-runtime/core-js/map")),l=i(e("babel-runtime/helpers/classCallCheck")),c=i(e("babel-runtime/core-js/get-iterator")),p=i(e("lodash/includes")),h=i(e("lodash/repeat")),f=i(e("./lib/renamer")),d=i(e("../index")),m=i(e("lodash/defaults")),y=n(e("babel-messages")),g=i(e("./binding")),b=i(e("globals")),v=n(e("babel-types")),x=e("../cache"),E=0,A={For:function(e){var t=v.FOR_INIT_KEYS,r=Array.isArray(t),n=0;for(t=r?t:(0,c.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}var s=i,a=e.get(s);a.isVar()&&e.scope.getFunctionParent().registerBinding("var",a)}},Declaration:function(e){e.isBlockScoped()||e.isExportDeclaration()&&e.get("declaration").isDeclaration()||e.scope.getFunctionParent().registerDeclaration(e)},ReferencedIdentifier:function(e,t){t.references.push(e)},ForXStatement:function(e,t){var r=e.get("left");(r.isPattern()||r.isIdentifier())&&t.constantViolations.push(r)},ExportDeclaration:{exit:function(e){var t=e.node,r=e.scope,n=t.declaration;if(v.isClassDeclaration(n)||v.isFunctionDeclaration(n)){var i=n.id;if(!i)return;var s=r.getBinding(i.name);s&&s.reference(e)}else if(v.isVariableDeclaration(n)){var a=n.declarations,o=Array.isArray(a),u=0;for(a=o?a:(0,c.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if((u=a.next()).done)break;l=u.value}var p=l,h=v.getBindingIdentifiers(p);for(var f in h){var d=r.getBinding(f);d&&d.reference(e)}}}}},LabeledStatement:function(e){e.scope.getProgramParent().addGlobal(e.node),e.scope.getBlockParent().registerDeclaration(e)},AssignmentExpression:function(e,t){t.assignments.push(e)},UpdateExpression:function(e,t){t.constantViolations.push(e.get("argument"))},UnaryExpression:function(e,t){"delete"===e.node.operator&&t.constantViolations.push(e.get("argument"))},BlockScoped:function(e){var t=e.scope;t.path===e&&(t=t.parent),t.getBlockParent().registerDeclaration(e)},ClassDeclaration:function(e){var t=e.node.id;if(t){var r=t.name;e.scope.bindings[r]=e.scope.getBinding(r)}},Block:function(e){var t=e.get("body"),r=Array.isArray(t),n=0;for(t=r?t:(0,c.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}var s=i;s.isFunctionDeclaration()&&e.scope.getBlockParent().registerDeclaration(s)}}},D=0,S=function(){function e(t,r){if((0,l.default)(this,e),r&&r.block===t.node)return r;var n=function(e,t,r){var n=x.scope.get(e.node)||[],i=n,s=Array.isArray(i),a=0;for(i=s?i:(0,c.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if((a=i.next()).done)break;o=a.value}var u=o;if(u.parent===t&&u.path===e)return u}n.push(r),x.scope.has(e.node)||x.scope.set(e.node,n)}(t,r,this);if(n)return n;this.uid=D++,this.parent=r,this.hub=t.hub,this.parentBlock=t.parent,this.block=t.node,this.path=t,this.labels=new u.default}return e.prototype.traverse=function(e,t,r){(0,d.default)(e,t,this,r,this.path)},e.prototype.generateDeclaredUidIdentifier=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp",t=this.generateUidIdentifier(e);return this.push({id:t}),t},e.prototype.generateUidIdentifier=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp";return v.identifier(this.generateUid(e))},e.prototype.generateUid=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp";e=v.toIdentifier(e).replace(/^_+/,"").replace(/[0-9]+$/g,"");var t=void 0,r=0;do{t=this._generateUid(e,r),r++}while(this.hasLabel(t)||this.hasBinding(t)||this.hasGlobal(t)||this.hasReference(t));var n=this.getProgramParent();return n.references[t]=!0,n.uids[t]=!0,t},e.prototype._generateUid=function(e,t){var r=e;return t>1&&(r+=t),"_"+r},e.prototype.generateUidIdentifierBasedOnNode=function(e,t){var r=e;v.isAssignmentExpression(e)?r=e.left:v.isVariableDeclarator(e)?r=e.id:(v.isObjectProperty(r)||v.isObjectMethod(r))&&(r=r.key);var n=[];s(r,n);var i=n.join("$");return i=i.replace(/^_/,"")||t||"ref",this.generateUidIdentifier(i.slice(0,20))},e.prototype.isStatic=function(e){if(v.isThisExpression(e)||v.isSuper(e))return!0;if(v.isIdentifier(e)){var t=this.getBinding(e.name);return t?t.constant:this.hasBinding(e.name)}return!1},e.prototype.maybeGenerateMemoised=function(e,t){if(this.isStatic(e))return null;var r=this.generateUidIdentifierBasedOnNode(e);return t||this.push({id:r}),r},e.prototype.checkBlockScopedCollisions=function(e,t,r,n){if("param"!==t&&("hoisted"!==t||"let"!==e.kind)){if("let"===t||"let"===e.kind||"const"===e.kind||"module"===e.kind||"param"===e.kind&&("let"===t||"const"===t))throw this.hub.file.buildCodeFrameError(n,y.get("scopeDuplicateDeclaration",r),TypeError)}},e.prototype.rename=function(e,t,r){var n=this.getBinding(e);if(n)return t=t||this.generateUidIdentifier(e).name,new f.default(n,e,t).rename(r)},e.prototype._renameFromMap=function(e,t,r,n){e[t]&&(e[r]=n,e[t]=null)},e.prototype.dump=function(){var e=(0,h.default)("-",60);console.log(e);var t=this;do{console.log("#",t.block.type);for(var r in t.bindings){var n=t.bindings[r];console.log(" -",r,{constant:n.constant,references:n.references,violations:n.constantViolations.length,kind:n.kind})}}while(t=t.parent);console.log(e)},e.prototype.toArray=function(e,t){var r=this.hub.file;if(v.isIdentifier(e)){var n=this.getBinding(e.name);if(n&&n.constant&&n.path.isGenericType("Array"))return e}if(v.isArrayExpression(e))return e;if(v.isIdentifier(e,{name:"arguments"}))return v.callExpression(v.memberExpression(v.memberExpression(v.memberExpression(v.identifier("Array"),v.identifier("prototype")),v.identifier("slice")),v.identifier("call")),[e]);var i="toArray",s=[e];return!0===t?i="toConsumableArray":t&&(s.push(v.numericLiteral(t)),i="slicedToArray"),v.callExpression(r.addHelper(i),s)},e.prototype.hasLabel=function(e){return!!this.getLabel(e)},e.prototype.getLabel=function(e){return this.labels.get(e)},e.prototype.registerLabel=function(e){this.labels.set(e.node.label.name,e)},e.prototype.registerDeclaration=function(e){if(e.isLabeledStatement())this.registerLabel(e);else if(e.isFunctionDeclaration())this.registerBinding("hoisted",e.get("id"),e);else if(e.isVariableDeclaration()){var t=e.get("declarations"),r=Array.isArray(t),n=0;for(t=r?t:(0,c.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}var s=i;this.registerBinding(e.node.kind,s)}}else if(e.isClassDeclaration())this.registerBinding("let",e);else if(e.isImportDeclaration()){var a=e.get("specifiers"),o=Array.isArray(a),u=0;for(a=o?a:(0,c.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if((u=a.next()).done)break;l=u.value}var p=l;this.registerBinding("module",p)}}else if(e.isExportDeclaration()){var h=e.get("declaration");(h.isClassDeclaration()||h.isFunctionDeclaration()||h.isVariableDeclaration())&&this.registerDeclaration(h)}else this.registerBinding("unknown",e)},e.prototype.buildUndefinedNode=function(){return this.hasBinding("undefined")?v.unaryExpression("void",v.numericLiteral(0),!0):v.identifier("undefined")},e.prototype.registerConstantViolation=function(e){var t=e.getBindingIdentifiers();for(var r in t){var n=this.getBinding(r);n&&n.reassign(e)}},e.prototype.registerBinding=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;if(!e)throw new ReferenceError("no `kind`");if(t.isVariableDeclaration()){var n=t.get("declarations"),i=Array.isArray(n),s=0;for(n=i?n:(0,c.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if((s=n.next()).done)break;a=s.value}var o=a;this.registerBinding(e,o)}}else{var u=this.getProgramParent(),l=t.getBindingIdentifiers(!0);for(var p in l){var h=l[p],f=Array.isArray(h),d=0;for(h=f?h:(0,c.default)(h);;){var m;if(f){if(d>=h.length)break;m=h[d++]}else{if((d=h.next()).done)break;m=d.value}var y=m,b=this.getOwnBinding(p);if(b){if(b.identifier===y)continue;this.checkBlockScopedCollisions(b,e,p,y)}b&&b.path.isFlow()&&(b=null),u.references[p]=!0,this.bindings[p]=new g.default({identifier:y,existing:b,scope:this,path:r,kind:e})}}}},e.prototype.addGlobal=function(e){this.globals[e.name]=e},e.prototype.hasUid=function(e){var t=this;do{if(t.uids[e])return!0}while(t=t.parent);return!1},e.prototype.hasGlobal=function(e){var t=this;do{if(t.globals[e])return!0}while(t=t.parent);return!1},e.prototype.hasReference=function(e){var t=this;do{if(t.references[e])return!0}while(t=t.parent);return!1},e.prototype.isPure=function(e,t){if(v.isIdentifier(e)){var r=this.getBinding(e.name);return!!r&&(!t||r.constant)}if(v.isClass(e))return!(e.superClass&&!this.isPure(e.superClass,t))&&this.isPure(e.body,t);if(v.isClassBody(e)){var n=e.body,i=Array.isArray(n),s=0;for(n=i?n:(0,c.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if((s=n.next()).done)break;a=s.value}var o=a;if(!this.isPure(o,t))return!1}return!0}if(v.isBinary(e))return this.isPure(e.left,t)&&this.isPure(e.right,t);if(v.isArrayExpression(e)){var u=e.elements,l=Array.isArray(u),p=0;for(u=l?u:(0,c.default)(u);;){var h;if(l){if(p>=u.length)break;h=u[p++]}else{if((p=u.next()).done)break;h=p.value}var f=h;if(!this.isPure(f,t))return!1}return!0}if(v.isObjectExpression(e)){var d=e.properties,m=Array.isArray(d),y=0;for(d=m?d:(0,c.default)(d);;){var g;if(m){if(y>=d.length)break;g=d[y++]}else{if((y=d.next()).done)break;g=y.value}var b=g;if(!this.isPure(b,t))return!1}return!0}return v.isClassMethod(e)?!(e.computed&&!this.isPure(e.key,t))&&("get"!==e.kind&&"set"!==e.kind):v.isClassProperty(e)||v.isObjectProperty(e)?!(e.computed&&!this.isPure(e.key,t))&&this.isPure(e.value,t):v.isUnaryExpression(e)?this.isPure(e.argument,t):v.isPureish(e)},e.prototype.setData=function(e,t){return this.data[e]=t},e.prototype.getData=function(e){var t=this;do{var r=t.data[e];if(null!=r)return r}while(t=t.parent)},e.prototype.removeData=function(e){var t=this;do{null!=t.data[e]&&(t.data[e]=null)}while(t=t.parent)},e.prototype.init=function(){this.references||this.crawl()},e.prototype.crawl=function(){E++,this._crawl(),E--},e.prototype._crawl=function(){var e=this.path;if(this.references=(0,o.default)(null),this.bindings=(0,o.default)(null),this.globals=(0,o.default)(null),this.uids=(0,o.default)(null),this.data=(0,o.default)(null),e.isLoop()){var t=v.FOR_INIT_KEYS,r=Array.isArray(t),n=0;for(t=r?t:(0,c.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}var s=i,a=e.get(s);a.isBlockScoped()&&this.registerBinding(a.node.kind,a)}}if(e.isFunctionExpression()&&e.has("id")&&(e.get("id").node[v.NOT_LOCAL_BINDING]||this.registerBinding("local",e.get("id"),e)),e.isClassExpression()&&e.has("id")&&(e.get("id").node[v.NOT_LOCAL_BINDING]||this.registerBinding("local",e)),e.isFunction()){var u=e.get("params"),l=Array.isArray(u),p=0;for(u=l?u:(0,c.default)(u);;){var h;if(l){if(p>=u.length)break;h=u[p++]}else{if((p=u.next()).done)break;h=p.value}var f=h;this.registerBinding("param",f)}}e.isCatchClause()&&this.registerBinding("let",e);if(!this.getProgramParent().crawling){var d={references:[],constantViolations:[],assignments:[]};this.crawling=!0,e.traverse(A,d),this.crawling=!1;var m=d.assignments,y=Array.isArray(m),g=0;for(m=y?m:(0,c.default)(m);;){var b;if(y){if(g>=m.length)break;b=m[g++]}else{if((g=m.next()).done)break;b=g.value}var x=b,E=x.getBindingIdentifiers(),D=void 0;for(var S in E)x.scope.getBinding(S)||(D=D||x.scope.getProgramParent()).addGlobal(E[S]);x.scope.registerConstantViolation(x)}var C=d.references,_=Array.isArray(C),w=0;for(C=_?C:(0,c.default)(C);;){var k;if(_){if(w>=C.length)break;k=C[w++]}else{if((w=C.next()).done)break;k=w.value}var F=k,T=F.scope.getBinding(F.node.name);T?T.reference(F):F.scope.getProgramParent().addGlobal(F.node)}var P=d.constantViolations,B=Array.isArray(P),O=0;for(P=B?P:(0,c.default)(P);;){var N;if(B){if(O>=P.length)break;N=P[O++]}else{if((O=P.next()).done)break;N=O.value}var j=N;j.scope.registerConstantViolation(j)}}},e.prototype.push=function(e){var t=this.path;t.isBlockStatement()||t.isProgram()||(t=this.getBlockParent().path),t.isSwitchStatement()&&(t=this.getFunctionParent().path),(t.isLoop()||t.isCatchClause()||t.isFunction())&&(v.ensureBlock(t.node),t=t.get("body"));var r=e.unique,n=e.kind||"var",i=null==e._blockHoist?2:e._blockHoist,s="declaration:"+n+":"+i,a=!r&&t.getData(s);if(!a){var o=v.variableDeclaration(n,[]);o._generated=!0,o._blockHoist=i;a=t.unshiftContainer("body",[o])[0],r||t.setData(s,a)}var u=v.variableDeclarator(e.id,e.init);a.node.declarations.push(u),this.registerBinding(n,a.get("declarations").pop())},e.prototype.getProgramParent=function(){var e=this;do{if(e.path.isProgram())return e}while(e=e.parent);throw new Error("We couldn't find a Function or Program...")},e.prototype.getFunctionParent=function(){var e=this;do{if(e.path.isFunctionParent())return e}while(e=e.parent);throw new Error("We couldn't find a Function or Program...")},e.prototype.getBlockParent=function(){var e=this;do{if(e.path.isBlockParent())return e}while(e=e.parent);throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...")},e.prototype.getAllBindings=function(){var e=(0,o.default)(null),t=this;do{(0,m.default)(e,t.bindings),t=t.parent}while(t);return e},e.prototype.getAllBindingsOfKind=function(){var e=(0,o.default)(null),t=arguments,r=Array.isArray(t),n=0;for(t=r?t:(0,c.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}var s=i,a=this;do{for(var u in a.bindings){var l=a.bindings[u];l.kind===s&&(e[u]=l)}a=a.parent}while(a)}return e},e.prototype.bindingIdentifierEquals=function(e,t){return this.getBindingIdentifier(e)===t},e.prototype.warnOnFlowBinding=function(e){return 0===E&&e&&e.path.isFlow()&&console.warn("\n You or one of the Babel plugins you are using are using Flow declarations as bindings.\n Support for this will be removed in version 7. To find out the caller, grep for this\n message and change it to a `console.trace()`.\n "),e},e.prototype.getBinding=function(e){var t=this;do{var r=t.getOwnBinding(e);if(r)return this.warnOnFlowBinding(r)}while(t=t.parent)},e.prototype.getOwnBinding=function(e){return this.warnOnFlowBinding(this.bindings[e])},e.prototype.getBindingIdentifier=function(e){var t=this.getBinding(e);return t&&t.identifier},e.prototype.getOwnBindingIdentifier=function(e){var t=this.bindings[e];return t&&t.identifier},e.prototype.hasOwnBinding=function(e){return!!this.getOwnBinding(e)},e.prototype.hasBinding=function(t,r){return!!t&&(!!this.hasOwnBinding(t)||(!!this.parentHasBinding(t,r)||(!!this.hasUid(t)||(!(r||!(0,p.default)(e.globals,t))||!(r||!(0,p.default)(e.contextVariables,t))))))},e.prototype.parentHasBinding=function(e,t){return this.parent&&this.parent.hasBinding(e,t)},e.prototype.moveBindingTo=function(e,t){var r=this.getBinding(e);r&&(r.scope.removeOwnBinding(e),r.scope=t,t.bindings[e]=r)},e.prototype.removeOwnBinding=function(e){delete this.bindings[e]},e.prototype.removeBinding=function(e){var t=this.getBinding(e);t&&t.scope.removeOwnBinding(e);var r=this;do{r.uids[e]&&(r.uids[e]=!1)}while(r=r.parent)},e}();S.globals=(0,a.default)(b.default.builtin),S.contextVariables=["arguments","undefined","Infinity","NaN"],r.default=S,t.exports=r.default},{"../cache":140,"../index":143,"./binding":161,"./lib/renamer":163,"babel-messages":110,"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/map":122,"babel-runtime/core-js/object/create":125,"babel-runtime/core-js/object/keys":127,"babel-runtime/helpers/classCallCheck":134,"babel-types":180,globals:168,"lodash/defaults":495,"lodash/includes":507,"lodash/repeat":530}],163:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0;var i=n(e("babel-runtime/helpers/classCallCheck")),s=(n(e("../binding")),function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("babel-types"))),a={ReferencedIdentifier:function(e,t){var r=e.node;r.name===t.oldName&&(r.name=t.newName)},Scope:function(e,t){e.scope.bindingIdentifierEquals(t.oldName,t.binding.identifier)||e.skip()},"AssignmentExpression|Declaration":function(e,t){var r=e.getOuterBindingIdentifiers();for(var n in r)n===t.oldName&&(r[n].name=t.newName)}},o=function(){function e(t,r,n){(0,i.default)(this,e),this.newName=n,this.oldName=r,this.binding=t}return e.prototype.maybeConvertFromExportDeclaration=function(e){var t=e.parentPath.isExportDeclaration()&&e.parentPath;if(t){var r=t.isExportDefaultDeclaration();r&&(e.isFunctionDeclaration()||e.isClassDeclaration())&&!e.node.id&&(e.node.id=e.scope.generateUidIdentifier("default"));var n=e.getOuterBindingIdentifiers(),i=[];for(var a in n){var o=a===this.oldName?this.newName:a,u=r?"default":a;i.push(s.exportSpecifier(s.identifier(o),s.identifier(u)))}if(i.length){var l=s.exportNamedDeclaration(null,i);e.isFunctionDeclaration()&&(l._blockHoist=3),t.insertAfter(l),t.replaceWith(e.node)}}},e.prototype.rename=function(e){var t=this.binding,r=this.oldName,n=this.newName,i=t.scope,s=t.path.find(function(e){return e.isDeclaration()||e.isFunctionExpression()});s&&this.maybeConvertFromExportDeclaration(s),i.traverse(e||i.block,a,this),e||(i.removeOwnBinding(r),i.bindings[n]=t,this.binding.identifier.name=n),t.type},e}();r.default=o,t.exports=r.default},{"../binding":161,"babel-runtime/helpers/classCallCheck":134,"babel-types":180}],164:[function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){if(e._exploded)return e;e._exploded=!0;for(var t in e)if(!l(t)){var r=t.split("|");if(1!==r.length){var n=e[t];delete e[t];var i=r,s=Array.isArray(i),o=0;for(i=s?i:(0,f.default)(i);;){var p;if(s){if(o>=i.length)break;p=i[o++]}else{if((o=i.next()).done)break;p=o.value}e[p]=n}}}a(e),delete e.__esModule,function(e){for(var t in e)if(!l(t)){var r=e[t];"function"==typeof r&&(e[t]={enter:r})}}(e),u(e);var m=(0,h.default)(e),b=Array.isArray(m),v=0;for(m=b?m:(0,f.default)(m);;){var x;if(b){if(v>=m.length)break;x=m[v++]}else{if((v=m.next()).done)break;x=v.value}var E=x;if(!l(E)){var A=d[E];if(A){var D=e[E];for(var S in D)D[S]=function(e,t){var r=function(r){if(e.checkPath(r))return t.apply(this,arguments)};return r.toString=function(){return t.toString()},r}(A,D[S]);if(delete e[E],A.types){var C=A.types,_=Array.isArray(C),w=0;for(C=_?C:(0,f.default)(C);;){var k;if(_){if(w>=C.length)break;k=C[w++]}else{if((w=C.next()).done)break;k=w.value}var F=k;e[F]?c(e[F],D):e[F]=D}}else c(e,D)}}}for(var T in e)if(!l(T)){var P=e[T],B=y.FLIPPED_ALIAS_KEYS[T],O=y.DEPRECATED_KEYS[T];if(O&&(console.trace("Visitor defined for "+T+" but it has been renamed to "+O),B=[O]),B){delete e[T];var N=B,j=Array.isArray(N),I=0;for(N=j?N:(0,f.default)(N);;){var L;if(j){if(I>=N.length)break;L=N[I++]}else{if((I=N.next()).done)break;L=I.value}var M=L,R=e[M];R?c(R,P):e[M]=(0,g.default)(P)}}}for(var V in e)l(V)||u(e[V]);return e}function a(e){if(!e._verified){if("function"==typeof e)throw new Error(m.get("traverseVerifyRootFunction"));for(var t in e)if("enter"!==t&&"exit"!==t||o(t,e[t]),!l(t)){if(y.TYPES.indexOf(t)<0)throw new Error(m.get("traverseVerifyNodeType",t));var r=e[t];if("object"===(void 0===r?"undefined":(0,p.default)(r)))for(var n in r){if("enter"!==n&&"exit"!==n)throw new Error(m.get("traverseVerifyVisitorProperty",t,n));o(t+"."+n,r[n])}}e._verified=!0}}function o(e,t){var r=[].concat(t),n=Array.isArray(r),i=0;for(r=n?r:(0,f.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if((i=r.next()).done)break;s=i.value}var a=s;if("function"!=typeof a)throw new TypeError("Non-function found defined in "+e+" with type "+(void 0===a?"undefined":(0,p.default)(a)))}}function u(e){e.enter&&!Array.isArray(e.enter)&&(e.enter=[e.enter]),e.exit&&!Array.isArray(e.exit)&&(e.exit=[e.exit])}function l(e){return"_"===e[0]||("enter"===e||"exit"===e||"shouldSkip"===e||("blacklist"===e||"noScope"===e||"skipKeys"===e))}function c(e,t){for(var r in t)e[r]=[].concat(e[r]||[],t[r])}r.__esModule=!0;var p=i(e("babel-runtime/helpers/typeof")),h=i(e("babel-runtime/core-js/object/keys")),f=i(e("babel-runtime/core-js/get-iterator"));r.explode=s,r.verify=a,r.merge=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments[2],n={},i=0;i=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},r.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),r.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],r.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},r.enable(i())}).call(this,e("_process"))},{"./debug":166,_process:550}],166:[function(e,t,r){arguments[4][60][0].apply(r,arguments)},{dup:60,ms:543}],167:[function(e,t,r){t.exports={builtin:{Array:!1,ArrayBuffer:!1,Boolean:!1,constructor:!1,DataView:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Float32Array:!1,Float64Array:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,Promise:!1,propertyIsEnumerable:!1,Proxy:!1,RangeError:!1,ReferenceError:!1,Reflect:!1,RegExp:!1,Set:!1,String:!1,Symbol:!1,SyntaxError:!1,System:!1,toLocaleString:!1,toString:!1,TypeError:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1,WeakMap:!1,WeakSet:!1},es5:{Array:!1,Boolean:!1,constructor:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,propertyIsEnumerable:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,toLocaleString:!1,toString:!1,TypeError:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1},es6:{Array:!1,ArrayBuffer:!1,Boolean:!1,constructor:!1,DataView:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Float32Array:!1,Float64Array:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,Promise:!1,propertyIsEnumerable:!1,Proxy:!1,RangeError:!1,ReferenceError:!1,Reflect:!1,RegExp:!1,Set:!1,String:!1,Symbol:!1,SyntaxError:!1,System:!1,toLocaleString:!1,toString:!1,TypeError:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1,WeakMap:!1,WeakSet:!1},browser:{addEventListener:!1,alert:!1,AnalyserNode:!1,Animation:!1,AnimationEffectReadOnly:!1,AnimationEffectTiming:!1,AnimationEffectTimingReadOnly:!1,AnimationEvent:!1,AnimationPlaybackEvent:!1,AnimationTimeline:!1,applicationCache:!1,ApplicationCache:!1,ApplicationCacheErrorEvent:!1,atob:!1,Attr:!1,Audio:!1,AudioBuffer:!1,AudioBufferSourceNode:!1,AudioContext:!1,AudioDestinationNode:!1,AudioListener:!1,AudioNode:!1,AudioParam:!1,AudioProcessingEvent:!1,AutocompleteErrorEvent:!1,BarProp:!1,BatteryManager:!1,BeforeUnloadEvent:!1,BiquadFilterNode:!1,Blob:!1,blur:!1,btoa:!1,Cache:!1,caches:!1,CacheStorage:!1,cancelAnimationFrame:!1,cancelIdleCallback:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,CDATASection:!1,ChannelMergerNode:!1,ChannelSplitterNode:!1,CharacterData:!1,clearInterval:!1,clearTimeout:!1,clientInformation:!1,ClientRect:!1,ClientRectList:!1,ClipboardEvent:!1,close:!1,closed:!1,CloseEvent:!1,Comment:!1,CompositionEvent:!1,confirm:!1,console:!1,ConvolverNode:!1,createImageBitmap:!1,Credential:!1,CredentialsContainer:!1,crypto:!1,Crypto:!1,CryptoKey:!1,CSS:!1,CSSAnimation:!1,CSSFontFaceRule:!1,CSSImportRule:!1,CSSKeyframeRule:!1,CSSKeyframesRule:!1,CSSMediaRule:!1,CSSPageRule:!1,CSSRule:!1,CSSRuleList:!1,CSSStyleDeclaration:!1,CSSStyleRule:!1,CSSStyleSheet:!1,CSSSupportsRule:!1,CSSTransition:!1,CSSUnknownRule:!1,CSSViewportRule:!1,customElements:!1,CustomEvent:!1,DataTransfer:!1,DataTransferItem:!1,DataTransferItemList:!1,Debug:!1,defaultStatus:!1,defaultstatus:!1,DelayNode:!1,DeviceMotionEvent:!1,DeviceOrientationEvent:!1,devicePixelRatio:!1,dispatchEvent:!1,document:!1,Document:!1,DocumentFragment:!1,DocumentTimeline:!1,DocumentType:!1,DOMError:!1,DOMException:!1,DOMImplementation:!1,DOMParser:!1,DOMSettableTokenList:!1,DOMStringList:!1,DOMStringMap:!1,DOMTokenList:!1,DragEvent:!1,DynamicsCompressorNode:!1,Element:!1,ElementTimeControl:!1,ErrorEvent:!1,event:!1,Event:!1,EventSource:!1,EventTarget:!1,external:!1,FederatedCredential:!1,fetch:!1,File:!1,FileError:!1,FileList:!1,FileReader:!1,find:!1,focus:!1,FocusEvent:!1,FontFace:!1,FormData:!1,frameElement:!1,frames:!1,GainNode:!1,Gamepad:!1,GamepadButton:!1,GamepadEvent:!1,getComputedStyle:!1,getSelection:!1,HashChangeEvent:!1,Headers:!1,history:!1,History:!1,HTMLAllCollection:!1,HTMLAnchorElement:!1,HTMLAppletElement:!1,HTMLAreaElement:!1,HTMLAudioElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLCollection:!1,HTMLContentElement:!1,HTMLDataListElement:!1,HTMLDetailsElement:!1,HTMLDialogElement:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLDocument:!1,HTMLElement:!1,HTMLEmbedElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormControlsCollection:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLKeygenElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMarqueeElement:!1,HTMLMediaElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLMeterElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLOptionsCollection:!1,HTMLOutputElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPictureElement:!1,HTMLPreElement:!1,HTMLProgressElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLShadowElement:!1,HTMLSourceElement:!1,HTMLSpanElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTemplateElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLTrackElement:!1,HTMLUListElement:!1,HTMLUnknownElement:!1,HTMLVideoElement:!1,IDBCursor:!1,IDBCursorWithValue:!1,IDBDatabase:!1,IDBEnvironment:!1,IDBFactory:!1,IDBIndex:!1,IDBKeyRange:!1,IDBObjectStore:!1,IDBOpenDBRequest:!1,IDBRequest:!1,IDBTransaction:!1,IDBVersionChangeEvent:!1,Image:!1,ImageBitmap:!1,ImageData:!1,indexedDB:!1,innerHeight:!1,innerWidth:!1,InputEvent:!1,InputMethodContext:!1,IntersectionObserver:!1,IntersectionObserverEntry:!1,Intl:!1,KeyboardEvent:!1,KeyframeEffect:!1,KeyframeEffectReadOnly:!1,length:!1,localStorage:!1,location:!1,Location:!1,locationbar:!1,matchMedia:!1,MediaElementAudioSourceNode:!1,MediaEncryptedEvent:!1,MediaError:!1,MediaKeyError:!1,MediaKeyEvent:!1,MediaKeyMessageEvent:!1,MediaKeys:!1,MediaKeySession:!1,MediaKeyStatusMap:!1,MediaKeySystemAccess:!1,MediaList:!1,MediaQueryList:!1,MediaQueryListEvent:!1,MediaSource:!1,MediaRecorder:!1,MediaStream:!1,MediaStreamAudioDestinationNode:!1,MediaStreamAudioSourceNode:!1,MediaStreamEvent:!1,MediaStreamTrack:!1,menubar:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MIDIAccess:!1,MIDIConnectionEvent:!1,MIDIInput:!1,MIDIInputMap:!1,MIDIMessageEvent:!1,MIDIOutput:!1,MIDIOutputMap:!1,MIDIPort:!1,MimeType:!1,MimeTypeArray:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationEvent:!1,MutationObserver:!1,MutationRecord:!1,name:!1,NamedNodeMap:!1,navigator:!1,Navigator:!1,Node:!1,NodeFilter:!1,NodeIterator:!1,NodeList:!1,Notification:!1,OfflineAudioCompletionEvent:!1,OfflineAudioContext:!1,offscreenBuffering:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,opera:!1,Option:!1,OscillatorNode:!1,outerHeight:!1,outerWidth:!1,PageTransitionEvent:!1,pageXOffset:!1,pageYOffset:!1,parent:!1,PasswordCredential:!1,Path2D:!1,performance:!1,Performance:!1,PerformanceEntry:!1,PerformanceMark:!1,PerformanceMeasure:!1,PerformanceNavigation:!1,PerformanceResourceTiming:!1,PerformanceTiming:!1,PeriodicWave:!1,Permissions:!1,PermissionStatus:!1,personalbar:!1,Plugin:!1,PluginArray:!1,PopStateEvent:!1,postMessage:!1,print:!1,ProcessingInstruction:!1,ProgressEvent:!1,PromiseRejectionEvent:!1,prompt:!1,PushManager:!1,PushSubscription:!1,RadioNodeList:!1,Range:!1,ReadableByteStream:!1,ReadableStream:!1,removeEventListener:!1,Request:!1,requestAnimationFrame:!1,requestIdleCallback:!1,resizeBy:!1,resizeTo:!1,Response:!1,RTCIceCandidate:!1,RTCSessionDescription:!1,RTCPeerConnection:!1,screen:!1,Screen:!1,screenLeft:!1,ScreenOrientation:!1,screenTop:!1,screenX:!1,screenY:!1,ScriptProcessorNode:!1,scroll:!1,scrollbars:!1,scrollBy:!1,scrollTo:!1,scrollX:!1,scrollY:!1,SecurityPolicyViolationEvent:!1,Selection:!1,self:!1,ServiceWorker:!1,ServiceWorkerContainer:!1,ServiceWorkerRegistration:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,ShadowRoot:!1,SharedKeyframeList:!1,SharedWorker:!1,showModalDialog:!1,SiteBoundCredential:!1,speechSynthesis:!1,SpeechSynthesisEvent:!1,SpeechSynthesisUtterance:!1,status:!1,statusbar:!1,stop:!1,Storage:!1,StorageEvent:!1,styleMedia:!1,StyleSheet:!1,StyleSheetList:!1,SubtleCrypto:!1,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPathData:!1,SVGAnimatedPoints:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimationElement:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGColorProfileElement:!1,SVGColorProfileRule:!1,SVGComponentTransferFunctionElement:!1,SVGCSSRule:!1,SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDiscardElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGEvent:!1,SVGExternalResourcesRequired:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEDropShadowElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFilterPrimitiveStandardAttributes:!1,SVGFitToViewBox:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGeometryElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,SVGGraphicsElement:!1,SVGHKernElement:!1,SVGICCColor:!1,SVGImageElement:!1,SVGLangSpace:!1,SVGLength:!1,SVGLengthList:!1,SVGLinearGradientElement:!1,SVGLineElement:!1,SVGLocatable:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGMPathElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGRenderingIntent:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStylable:!1,SVGStyleElement:!1,SVGSVGElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTests:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformable:!1,SVGTransformList:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGUnitTypes:!1,SVGURIReference:!1,SVGUseElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGVKernElement:!1,SVGZoomAndPan:!1,SVGZoomEvent:!1,Text:!1,TextDecoder:!1,TextEncoder:!1,TextEvent:!1,TextMetrics:!1,TextTrack:!1,TextTrackCue:!1,TextTrackCueList:!1,TextTrackList:!1,TimeEvent:!1,TimeRanges:!1,toolbar:!1,top:!1,Touch:!1,TouchEvent:!1,TouchList:!1,TrackEvent:!1,TransitionEvent:!1,TreeWalker:!1,UIEvent:!1,URL:!1,URLSearchParams:!1,ValidityState:!1,VTTCue:!1,WaveShaperNode:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLTexture:!1,WebGLUniformLocation:!1,WebSocket:!1,WheelEvent:!1,window:!1,Window:!1,Worker:!1,XDomainRequest:!1,XMLDocument:!1,XMLHttpRequest:!1,XMLHttpRequestEventTarget:!1,XMLHttpRequestProgressEvent:!1,XMLHttpRequestUpload:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1,XSLTProcessor:!1},worker:{applicationCache:!1,atob:!1,Blob:!1,BroadcastChannel:!1,btoa:!1,Cache:!1,caches:!1,clearInterval:!1,clearTimeout:!1,close:!0,console:!1,fetch:!1,FileReaderSync:!1,FormData:!1,Headers:!1,IDBCursor:!1,IDBCursorWithValue:!1,IDBDatabase:!1,IDBFactory:!1,IDBIndex:!1,IDBKeyRange:!1,IDBObjectStore:!1,IDBOpenDBRequest:!1,IDBRequest:!1,IDBTransaction:!1,IDBVersionChangeEvent:!1,ImageData:!1,importScripts:!0,indexedDB:!1,location:!1,MessageChannel:!1,MessagePort:!1,name:!1,navigator:!1,Notification:!1,onclose:!0,onconnect:!0,onerror:!0,onlanguagechange:!0,onmessage:!0,onoffline:!0,ononline:!0,onrejectionhandled:!0,onunhandledrejection:!0,performance:!1,Performance:!1,PerformanceEntry:!1,PerformanceMark:!1,PerformanceMeasure:!1,PerformanceNavigation:!1,PerformanceResourceTiming:!1,PerformanceTiming:!1,postMessage:!0,Promise:!1,Request:!1,Response:!1,self:!0,ServiceWorkerRegistration:!1,setInterval:!1,setTimeout:!1,TextDecoder:!1,TextEncoder:!1,URL:!1,URLSearchParams:!1,WebSocket:!1,Worker:!1,XMLHttpRequest:!1},node:{__dirname:!1,__filename:!1,arguments:!1,Buffer:!1,clearImmediate:!1,clearInterval:!1,clearTimeout:!1,console:!1,exports:!0,GLOBAL:!1,global:!1,Intl:!1,module:!1,process:!1,require:!1,root:!1,setImmediate:!1,setInterval:!1,setTimeout:!1},commonjs:{exports:!0,module:!1,require:!1,global:!1},amd:{define:!1,require:!1},mocha:{after:!1,afterEach:!1,before:!1,beforeEach:!1,context:!1,describe:!1,it:!1,mocha:!1,run:!1,setup:!1,specify:!1,suite:!1,suiteSetup:!1,suiteTeardown:!1,teardown:!1,test:!1,xcontext:!1,xdescribe:!1,xit:!1,xspecify:!1},jasmine:{afterAll:!1,afterEach:!1,beforeAll:!1,beforeEach:!1,describe:!1,expect:!1,fail:!1,fdescribe:!1,fit:!1,it:!1,jasmine:!1,pending:!1,runs:!1,spyOn:!1,spyOnProperty:!1,waits:!1,waitsFor:!1,xdescribe:!1,xit:!1},jest:{afterAll:!1,afterEach:!1,beforeAll:!1,beforeEach:!1,check:!1,describe:!1,expect:!1,gen:!1,it:!1,fdescribe:!1,fit:!1,jest:!1,pit:!1,require:!1,test:!1,xdescribe:!1,xit:!1,xtest:!1},qunit:{asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notOk:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,throws:!1},phantomjs:{console:!0,exports:!0,phantom:!0,require:!0,WebPage:!0},couch:{emit:!1,exports:!1,getRow:!1,log:!1,module:!1,provides:!1,require:!1,respond:!1,send:!1,start:!1,sum:!1},rhino:{defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},nashorn:{__DIR__:!1,__FILE__:!1,__LINE__:!1,com:!1,edu:!1,exit:!1,Java:!1,java:!1,javafx:!1,JavaImporter:!1,javax:!1,JSAdapter:!1,load:!1,loadWithNewGlobal:!1,org:!1,Packages:!1,print:!1,quit:!1},wsh:{ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WScript:!0,WSH:!0,XDomainRequest:!0},jquery:{$:!1,jQuery:!1},yui:{Y:!1,YUI:!1,YUI_config:!1},shelljs:{cat:!1,cd:!1,chmod:!1,config:!1,cp:!1,dirs:!1,echo:!1,env:!1,error:!1,exec:!1,exit:!1,find:!1,grep:!1,ls:!1,ln:!1,mkdir:!1,mv:!1,popd:!1,pushd:!1,pwd:!1,rm:!1,sed:!1,set:!1,target:!1,tempdir:!1,test:!1,touch:!1,which:!1},prototypejs:{$:!1,$$:!1,$A:!1,$break:!1,$continue:!1,$F:!1,$H:!1,$R:!1,$w:!1,Abstract:!1,Ajax:!1,Autocompleter:!1,Builder:!1,Class:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Element:!1,Enumerable:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Scriptaculous:!1,Selector:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Template:!1,Toggle:!1,Try:!1},meteor:{$:!1,_:!1,Accounts:!1,AccountsClient:!1,AccountsServer:!1,AccountsCommon:!1,App:!1,Assets:!1,Blaze:!1,check:!1,Cordova:!1,DDP:!1,DDPServer:!1,DDPRateLimiter:!1,Deps:!1,EJSON:!1,Email:!1,HTTP:!1,Log:!1,Match:!1,Meteor:!1,Mongo:!1,MongoInternals:!1,Npm:!1,Package:!1,Plugin:!1,process:!1,Random:!1,ReactiveDict:!1,ReactiveVar:!1,Router:!1,ServiceConfiguration:!1,Session:!1,share:!1,Spacebars:!1,Template:!1,Tinytest:!1,Tracker:!1,UI:!1,Utils:!1,WebApp:!1,WebAppInternals:!1},mongo:{_isWindows:!1,_rand:!1,BulkWriteResult:!1,cat:!1,cd:!1,connect:!1,db:!1,getHostName:!1,getMemInfo:!1,hostname:!1,ISODate:!1,listFiles:!1,load:!1,ls:!1,md5sumFile:!1,mkdir:!1,Mongo:!1,NumberInt:!1,NumberLong:!1,ObjectId:!1,PlanCache:!1,print:!1,printjson:!1,pwd:!1,quit:!1,removeFile:!1,rs:!1,sh:!1,UUID:!1,version:!1,WriteResult:!1},applescript:{$:!1,Application:!1,Automation:!1,console:!1,delay:!1,Library:!1,ObjC:!1,ObjectSpecifier:!1,Path:!1,Progress:!1,Ref:!1},serviceworker:{caches:!1,Cache:!1,CacheStorage:!1,Client:!1,clients:!1,Clients:!1,ExtendableEvent:!1,ExtendableMessageEvent:!1,FetchEvent:!1,importScripts:!1,registration:!1,self:!1,ServiceWorker:!1,ServiceWorkerContainer:!1,ServiceWorkerGlobalScope:!1,ServiceWorkerMessageEvent:!1,ServiceWorkerRegistration:!1,skipWaiting:!1,WindowClient:!1},atomtest:{advanceClock:!1,fakeClearInterval:!1,fakeClearTimeout:!1,fakeSetInterval:!1,fakeSetTimeout:!1,resetTimeouts:!1,waitsForPromise:!1},embertest:{andThen:!1,click:!1,currentPath:!1,currentRouteName:!1,currentURL:!1,fillIn:!1,find:!1,findWithAssert:!1,keyEvent:!1,pauseTest:!1,resumeTest:!1,triggerEvent:!1,visit:!1},protractor:{$:!1,$$:!1,browser:!1,By:!1,by:!1,DartObject:!1,element:!1,protractor:!1},"shared-node-browser":{clearInterval:!1,clearTimeout:!1,console:!1,setInterval:!1,setTimeout:!1},webextensions:{browser:!1,chrome:!1,opr:!1},greasemonkey:{GM_addStyle:!1,GM_deleteValue:!1,GM_getResourceText:!1,GM_getResourceURL:!1,GM_getValue:!1,GM_info:!1,GM_listValues:!1,GM_log:!1,GM_openInTab:!1,GM_registerMenuCommand:!1,GM_setClipboard:!1,GM_setValue:!1,GM_xmlhttpRequest:!1,unsafeWindow:!1}}},{}],168:[function(e,t,r){t.exports=e("./globals.json")},{"./globals.json":167}],169:[function(e,t,r){"use strict";r.__esModule=!0,r.NOT_LOCAL_BINDING=r.BLOCK_SCOPED_SYMBOL=r.INHERIT_KEYS=r.UNARY_OPERATORS=r.STRING_UNARY_OPERATORS=r.NUMBER_UNARY_OPERATORS=r.BOOLEAN_UNARY_OPERATORS=r.BINARY_OPERATORS=r.NUMBER_BINARY_OPERATORS=r.BOOLEAN_BINARY_OPERATORS=r.COMPARISON_BINARY_OPERATORS=r.EQUALITY_BINARY_OPERATORS=r.BOOLEAN_NUMBER_BINARY_OPERATORS=r.UPDATE_OPERATORS=r.LOGICAL_OPERATORS=r.COMMENT_KEYS=r.FOR_INIT_KEYS=r.FLATTENABLE_KEYS=r.STATEMENT_OR_BLOCK_KEYS=void 0;var n=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/symbol/for")),i=(r.STATEMENT_OR_BLOCK_KEYS=["consequent","body","alternate"],r.FLATTENABLE_KEYS=["body","expressions"],r.FOR_INIT_KEYS=["left","init"],r.COMMENT_KEYS=["leadingComments","trailingComments","innerComments"],r.LOGICAL_OPERATORS=["||","&&"],r.UPDATE_OPERATORS=["++","--"],r.BOOLEAN_NUMBER_BINARY_OPERATORS=[">","<",">=","<="]),s=r.EQUALITY_BINARY_OPERATORS=["==","===","!=","!=="],a=r.COMPARISON_BINARY_OPERATORS=[].concat(s,["in","instanceof"]),o=r.BOOLEAN_BINARY_OPERATORS=[].concat(a,i),u=r.NUMBER_BINARY_OPERATORS=["-","/","%","*","**","&","|",">>",">>>","<<","^"],l=(r.BINARY_OPERATORS=["+"].concat(u,o),r.BOOLEAN_UNARY_OPERATORS=["delete","!"]),c=r.NUMBER_UNARY_OPERATORS=["+","-","++","--","~"],p=r.STRING_UNARY_OPERATORS=["typeof"];r.UNARY_OPERATORS=["void"].concat(l,c,p),r.INHERIT_KEYS={optional:["typeAnnotation","typeParameters","returnType"],force:["start","loc","end"]},r.BLOCK_SCOPED_SYMBOL=(0,n.default)("var used to be block scoped"),r.NOT_LOCAL_BINDING=(0,n.default)("should not be considered a local binding")},{"babel-runtime/core-js/symbol/for":130}],170:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t,r){var n=[],s=!0,a=e,o=Array.isArray(a),u=0;for(a=o?a:(0,l.default)(a);;){var c;if(o){if(u>=a.length)break;c=a[u++]}else{if((u=a.next()).done)break;c=u.value}var p=c;if(s=!1,h.isExpression(p))n.push(p);else if(h.isExpressionStatement(p))n.push(p.expression);else if(h.isVariableDeclaration(p)){if("var"!==p.kind)return;var f=p.declarations,d=Array.isArray(f),m=0;for(f=d?f:(0,l.default)(f);;){var y;if(d){if(m>=f.length)break;y=f[m++]}else{if((m=f.next()).done)break;y=m.value}var g=y,b=h.getBindingIdentifiers(g);for(var v in b)r.push({kind:p.kind,id:b[v]});g.init&&n.push(h.assignmentExpression("=",g.id,g.init))}s=!0}else if(h.isIfStatement(p)){var x=p.consequent?i([p.consequent],t,r):t.buildUndefinedNode(),E=p.alternate?i([p.alternate],t,r):t.buildUndefinedNode();if(!x||!E)return;n.push(h.conditionalExpression(p.test,x,E))}else if(h.isBlockStatement(p)){var A=i(p.body,t,r);if(!A)return;n.push(A)}else{if(!h.isEmptyStatement(p))return;s=!0}}return s&&n.push(t.buildUndefinedNode()),1===n.length?n[0]:h.sequenceExpression(n)}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.key,r=void 0;return"method"===e.kind?s.increment()+"":(r=h.isIdentifier(t)?t.name:h.isStringLiteral(t)?(0,u.default)(t.value):(0,u.default)(h.removePropertiesDeep(h.cloneDeep(t))),e.computed&&(r="["+r+"]"),e.static&&(r="static:"+r),r)}function a(e){return e+="",e=e.replace(/[^a-zA-Z0-9$_]/g,"-"),e=e.replace(/^[-0-9]+/,""),e=e.replace(/[-\s]+(.)?/g,function(e,t){return t?t.toUpperCase():""}),h.isValidIdentifier(e)||(e="_"+e),e||"_"}r.__esModule=!0;var o=n(e("babel-runtime/core-js/number/max-safe-integer")),u=n(e("babel-runtime/core-js/json/stringify")),l=n(e("babel-runtime/core-js/get-iterator"));r.toComputedKey=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.key||e.property;return e.computed||h.isIdentifier(t)&&(t=h.stringLiteral(t.name)),t},r.toSequenceExpression=function(e,t){if(e&&e.length){var r=[],n=i(e,t,r);if(n){var s=r,a=Array.isArray(s),o=0;for(s=a?s:(0,l.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if((o=s.next()).done)break;u=o.value}var c=u;t.push(c)}return n}}},r.toKeyAlias=s,r.toIdentifier=a,r.toBindingIdentifierName=function(e){return"eval"!==(e=a(e))&&"arguments"!==e||(e="_"+e),e},r.toStatement=function(e,t){if(h.isStatement(e))return e;var r=!1,n=void 0;if(h.isClass(e))r=!0,n="ClassDeclaration";else if(h.isFunction(e))r=!0,n="FunctionDeclaration";else if(h.isAssignmentExpression(e))return h.expressionStatement(e);if(r&&!e.id&&(n=!1),!n){if(t)return!1;throw new Error("cannot turn "+e.type+" to a statement")}return e.type=n,e},r.toExpression=function(e){if(h.isExpressionStatement(e)&&(e=e.expression),h.isExpression(e))return e;if(h.isClass(e)?e.type="ClassExpression":h.isFunction(e)&&(e.type="FunctionExpression"),!h.isExpression(e))throw new Error("cannot turn "+e.type+" to an expression");return e},r.toBlock=function(e,t){return h.isBlockStatement(e)?e:(h.isEmptyStatement(e)&&(e=[]),Array.isArray(e)||(h.isStatement(e)||(e=h.isFunction(t)?h.returnStatement(e):h.expressionStatement(e)),e=[e]),h.blockStatement(e))},r.valueToNode=function(e){if(void 0===e)return h.identifier("undefined");if(!0===e||!1===e)return h.booleanLiteral(e);if(null===e)return h.nullLiteral();if("string"==typeof e)return h.stringLiteral(e);if("number"==typeof e)return h.numericLiteral(e);if((0,p.default)(e)){var t=e.source,r=e.toString().match(/\/([a-z]+|)$/)[1];return h.regExpLiteral(t,r)}if(Array.isArray(e))return h.arrayExpression(e.map(h.valueToNode));if((0,c.default)(e)){var n=[];for(var i in e){var s=void 0;s=h.isValidIdentifier(i)?h.identifier(i):h.stringLiteral(i),n.push(h.objectProperty(s,h.valueToNode(e[i])))}return h.objectExpression(n)}throw new Error("don't know how to turn this value into a node")};var c=n(e("lodash/isPlainObject")),p=n(e("lodash/isRegExp")),h=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("./index"));s.uid=0,s.increment=function(){return s.uid>=o.default?s.uid=0:s.uid++}},{"./index":180,"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/json/stringify":121,"babel-runtime/core-js/number/max-safe-integer":123,"lodash/isPlainObject":518,"lodash/isRegExp":519}],171:[function(e,t,r){"use strict";var n=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("../index")),i=e("../constants"),s=e("./index"),a=function(e){return e&&e.__esModule?e:{default:e}}(s);(0,a.default)("ArrayExpression",{fields:{elements:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeOrValueType)("null","Expression","SpreadElement"))),default:[]}},visitor:["elements"],aliases:["Expression"]}),(0,a.default)("AssignmentExpression",{fields:{operator:{validate:(0,s.assertValueType)("string")},left:{validate:(0,s.assertNodeType)("LVal")},right:{validate:(0,s.assertNodeType)("Expression")}},builder:["operator","left","right"],visitor:["left","right"],aliases:["Expression"]}),(0,a.default)("BinaryExpression",{builder:["operator","left","right"],fields:{operator:{validate:s.assertOneOf.apply(void 0,i.BINARY_OPERATORS)},left:{validate:(0,s.assertNodeType)("Expression")},right:{validate:(0,s.assertNodeType)("Expression")}},visitor:["left","right"],aliases:["Binary","Expression"]}),(0,a.default)("Directive",{visitor:["value"],fields:{value:{validate:(0,s.assertNodeType)("DirectiveLiteral")}}}),(0,a.default)("DirectiveLiteral",{builder:["value"],fields:{value:{validate:(0,s.assertValueType)("string")}}}),(0,a.default)("BlockStatement",{builder:["body","directives"],visitor:["directives","body"],fields:{directives:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Directive"))),default:[]},body:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Statement")))}},aliases:["Scopable","BlockParent","Block","Statement"]}),(0,a.default)("BreakStatement",{visitor:["label"],fields:{label:{validate:(0,s.assertNodeType)("Identifier"),optional:!0}},aliases:["Statement","Terminatorless","CompletionStatement"]}),(0,a.default)("CallExpression",{visitor:["callee","arguments"],fields:{callee:{validate:(0,s.assertNodeType)("Expression")},arguments:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Expression","SpreadElement")))}},aliases:["Expression"]}),(0,a.default)("CatchClause",{visitor:["param","body"],fields:{param:{validate:(0,s.assertNodeType)("Identifier")},body:{validate:(0,s.assertNodeType)("BlockStatement")}},aliases:["Scopable"]}),(0,a.default)("ConditionalExpression",{visitor:["test","consequent","alternate"],fields:{test:{validate:(0,s.assertNodeType)("Expression")},consequent:{validate:(0,s.assertNodeType)("Expression")},alternate:{validate:(0,s.assertNodeType)("Expression")}},aliases:["Expression","Conditional"]}),(0,a.default)("ContinueStatement",{visitor:["label"],fields:{label:{validate:(0,s.assertNodeType)("Identifier"),optional:!0}},aliases:["Statement","Terminatorless","CompletionStatement"]}),(0,a.default)("DebuggerStatement",{aliases:["Statement"]}),(0,a.default)("DoWhileStatement",{visitor:["test","body"],fields:{test:{validate:(0,s.assertNodeType)("Expression")},body:{validate:(0,s.assertNodeType)("Statement")}},aliases:["Statement","BlockParent","Loop","While","Scopable"]}),(0,a.default)("EmptyStatement",{aliases:["Statement"]}),(0,a.default)("ExpressionStatement",{visitor:["expression"],fields:{expression:{validate:(0,s.assertNodeType)("Expression")}},aliases:["Statement","ExpressionWrapper"]}),(0,a.default)("File",{builder:["program","comments","tokens"],visitor:["program"],fields:{program:{validate:(0,s.assertNodeType)("Program")}}}),(0,a.default)("ForInStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:(0,s.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,s.assertNodeType)("Expression")},body:{validate:(0,s.assertNodeType)("Statement")}}}),(0,a.default)("ForStatement",{visitor:["init","test","update","body"],aliases:["Scopable","Statement","For","BlockParent","Loop"],fields:{init:{validate:(0,s.assertNodeType)("VariableDeclaration","Expression"),optional:!0},test:{validate:(0,s.assertNodeType)("Expression"),optional:!0},update:{validate:(0,s.assertNodeType)("Expression"),optional:!0},body:{validate:(0,s.assertNodeType)("Statement")}}}),(0,a.default)("FunctionDeclaration",{builder:["id","params","body","generator","async"],visitor:["id","params","body","returnType","typeParameters"],fields:{id:{validate:(0,s.assertNodeType)("Identifier")},params:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("LVal")))},body:{validate:(0,s.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,s.assertValueType)("boolean")},async:{default:!1,validate:(0,s.assertValueType)("boolean")}},aliases:["Scopable","Function","BlockParent","FunctionParent","Statement","Pureish","Declaration"]}),(0,a.default)("FunctionExpression",{inherits:"FunctionDeclaration",aliases:["Scopable","Function","BlockParent","FunctionParent","Expression","Pureish"],fields:{id:{validate:(0,s.assertNodeType)("Identifier"),optional:!0},params:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("LVal")))},body:{validate:(0,s.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,s.assertValueType)("boolean")},async:{default:!1,validate:(0,s.assertValueType)("boolean")}}}),(0,a.default)("Identifier",{builder:["name"],visitor:["typeAnnotation"],aliases:["Expression","LVal"],fields:{name:{validate:function(e,t,r){n.isValidIdentifier(r)}},decorators:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Decorator")))}}}),(0,a.default)("IfStatement",{visitor:["test","consequent","alternate"],aliases:["Statement","Conditional"],fields:{test:{validate:(0,s.assertNodeType)("Expression")},consequent:{validate:(0,s.assertNodeType)("Statement")},alternate:{optional:!0,validate:(0,s.assertNodeType)("Statement")}}}),(0,a.default)("LabeledStatement",{visitor:["label","body"],aliases:["Statement"],fields:{label:{validate:(0,s.assertNodeType)("Identifier")},body:{validate:(0,s.assertNodeType)("Statement")}}}),(0,a.default)("StringLiteral",{builder:["value"],fields:{value:{validate:(0,s.assertValueType)("string")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,a.default)("NumericLiteral",{builder:["value"],deprecatedAlias:"NumberLiteral",fields:{value:{validate:(0,s.assertValueType)("number")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,a.default)("NullLiteral",{aliases:["Expression","Pureish","Literal","Immutable"]}),(0,a.default)("BooleanLiteral",{builder:["value"],fields:{value:{validate:(0,s.assertValueType)("boolean")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,a.default)("RegExpLiteral",{builder:["pattern","flags"],deprecatedAlias:"RegexLiteral",aliases:["Expression","Literal"],fields:{pattern:{validate:(0,s.assertValueType)("string")},flags:{validate:(0,s.assertValueType)("string"),default:""}}}),(0,a.default)("LogicalExpression",{builder:["operator","left","right"],visitor:["left","right"],aliases:["Binary","Expression"],fields:{operator:{validate:s.assertOneOf.apply(void 0,i.LOGICAL_OPERATORS)},left:{validate:(0,s.assertNodeType)("Expression")},right:{validate:(0,s.assertNodeType)("Expression")}}}),(0,a.default)("MemberExpression",{builder:["object","property","computed"],visitor:["object","property"],aliases:["Expression","LVal"],fields:{object:{validate:(0,s.assertNodeType)("Expression")},property:{validate:function(e,t,r){var n=e.computed?"Expression":"Identifier";(0,s.assertNodeType)(n)(e,t,r)}},computed:{default:!1}}}),(0,a.default)("NewExpression",{visitor:["callee","arguments"],aliases:["Expression"],fields:{callee:{validate:(0,s.assertNodeType)("Expression")},arguments:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Expression","SpreadElement")))}}}),(0,a.default)("Program",{visitor:["directives","body"],builder:["body","directives"],fields:{directives:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Directive"))),default:[]},body:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Statement")))}},aliases:["Scopable","BlockParent","Block","FunctionParent"]}),(0,a.default)("ObjectExpression",{visitor:["properties"],aliases:["Expression"],fields:{properties:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("ObjectMethod","ObjectProperty","SpreadProperty")))}}}),(0,a.default)("ObjectMethod",{builder:["kind","key","params","body","computed"],fields:{kind:{validate:(0,s.chain)((0,s.assertValueType)("string"),(0,s.assertOneOf)("method","get","set")),default:"method"},computed:{validate:(0,s.assertValueType)("boolean"),default:!1},key:{validate:function(e,t,r){var n=e.computed?["Expression"]:["Identifier","StringLiteral","NumericLiteral"];s.assertNodeType.apply(void 0,n)(e,t,r)}},decorators:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Decorator")))},body:{validate:(0,s.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,s.assertValueType)("boolean")},async:{default:!1,validate:(0,s.assertValueType)("boolean")}},visitor:["key","params","body","decorators","returnType","typeParameters"],aliases:["UserWhitespacable","Function","Scopable","BlockParent","FunctionParent","Method","ObjectMember"]}),(0,a.default)("ObjectProperty",{builder:["key","value","computed","shorthand","decorators"],fields:{computed:{validate:(0,s.assertValueType)("boolean"),default:!1},key:{validate:function(e,t,r){var n=e.computed?["Expression"]:["Identifier","StringLiteral","NumericLiteral"];s.assertNodeType.apply(void 0,n)(e,t,r)}},value:{validate:(0,s.assertNodeType)("Expression","Pattern","RestElement")},shorthand:{validate:(0,s.assertValueType)("boolean"),default:!1},decorators:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Decorator"))),optional:!0}},visitor:["key","value","decorators"],aliases:["UserWhitespacable","Property","ObjectMember"]}),(0,a.default)("RestElement",{visitor:["argument","typeAnnotation"],aliases:["LVal"],fields:{argument:{validate:(0,s.assertNodeType)("LVal")},decorators:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Decorator")))}}}),(0,a.default)("ReturnStatement",{visitor:["argument"],aliases:["Statement","Terminatorless","CompletionStatement"],fields:{argument:{validate:(0,s.assertNodeType)("Expression"),optional:!0}}}),(0,a.default)("SequenceExpression",{visitor:["expressions"],fields:{expressions:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Expression")))}},aliases:["Expression"]}),(0,a.default)("SwitchCase",{visitor:["test","consequent"],fields:{test:{validate:(0,s.assertNodeType)("Expression"),optional:!0},consequent:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("Statement")))}}}),(0,a.default)("SwitchStatement",{visitor:["discriminant","cases"],aliases:["Statement","BlockParent","Scopable"],fields:{discriminant:{validate:(0,s.assertNodeType)("Expression")},cases:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("SwitchCase")))}}}),(0,a.default)("ThisExpression",{aliases:["Expression"]}),(0,a.default)("ThrowStatement",{visitor:["argument"],aliases:["Statement","Terminatorless","CompletionStatement"],fields:{argument:{validate:(0,s.assertNodeType)("Expression")}}}),(0,a.default)("TryStatement",{visitor:["block","handler","finalizer"],aliases:["Statement"],fields:{body:{validate:(0,s.assertNodeType)("BlockStatement")},handler:{optional:!0,handler:(0,s.assertNodeType)("BlockStatement")},finalizer:{optional:!0,validate:(0,s.assertNodeType)("BlockStatement")}}}),(0,a.default)("UnaryExpression",{builder:["operator","argument","prefix"],fields:{prefix:{default:!0},argument:{validate:(0,s.assertNodeType)("Expression")},operator:{validate:s.assertOneOf.apply(void 0,i.UNARY_OPERATORS)}},visitor:["argument"],aliases:["UnaryLike","Expression"]}),(0,a.default)("UpdateExpression",{builder:["operator","argument","prefix"],fields:{prefix:{default:!1},argument:{validate:(0,s.assertNodeType)("Expression")},operator:{validate:s.assertOneOf.apply(void 0,i.UPDATE_OPERATORS)}},visitor:["argument"],aliases:["Expression"]}),(0,a.default)("VariableDeclaration",{builder:["kind","declarations"],visitor:["declarations"],aliases:["Statement","Declaration"],fields:{kind:{validate:(0,s.chain)((0,s.assertValueType)("string"),(0,s.assertOneOf)("var","let","const"))},declarations:{validate:(0,s.chain)((0,s.assertValueType)("array"),(0,s.assertEach)((0,s.assertNodeType)("VariableDeclarator")))}}}),(0,a.default)("VariableDeclarator",{visitor:["id","init"],fields:{id:{validate:(0,s.assertNodeType)("LVal")},init:{optional:!0,validate:(0,s.assertNodeType)("Expression")}}}),(0,a.default)("WhileStatement",{visitor:["test","body"],aliases:["Statement","BlockParent","Loop","While","Scopable"],fields:{test:{validate:(0,s.assertNodeType)("Expression")},body:{validate:(0,s.assertNodeType)("BlockStatement","Statement")}}}),(0,a.default)("WithStatement",{visitor:["object","body"],aliases:["Statement"],fields:{object:{object:(0,s.assertNodeType)("Expression")},body:{validate:(0,s.assertNodeType)("BlockStatement","Statement")}}})},{"../constants":169,"../index":180,"./index":175}],172:[function(e,t,r){"use strict";var n=e("./index"),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("AssignmentPattern",{visitor:["left","right"],aliases:["Pattern","LVal"],fields:{left:{validate:(0,n.assertNodeType)("Identifier")},right:{validate:(0,n.assertNodeType)("Expression")},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ArrayPattern",{visitor:["elements","typeAnnotation"],aliases:["Pattern","LVal"],fields:{elements:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Identifier","Pattern","RestElement")))},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ArrowFunctionExpression",{builder:["params","body","async"],visitor:["params","body","returnType","typeParameters"],aliases:["Scopable","Function","BlockParent","FunctionParent","Expression","Pureish"],fields:{params:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("LVal")))},body:{validate:(0,n.assertNodeType)("BlockStatement","Expression")},async:{validate:(0,n.assertValueType)("boolean"),default:!1}}}),(0,i.default)("ClassBody",{visitor:["body"],fields:{body:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("ClassMethod","ClassProperty")))}}}),(0,i.default)("ClassDeclaration",{builder:["id","superClass","body","decorators"],visitor:["id","body","superClass","mixins","typeParameters","superTypeParameters","implements","decorators"],aliases:["Scopable","Class","Statement","Declaration","Pureish"],fields:{id:{validate:(0,n.assertNodeType)("Identifier")},body:{validate:(0,n.assertNodeType)("ClassBody")},superClass:{optional:!0,validate:(0,n.assertNodeType)("Expression")},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ClassExpression",{inherits:"ClassDeclaration",aliases:["Scopable","Class","Expression","Pureish"],fields:{id:{optional:!0,validate:(0,n.assertNodeType)("Identifier")},body:{validate:(0,n.assertNodeType)("ClassBody")},superClass:{optional:!0,validate:(0,n.assertNodeType)("Expression")},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ExportAllDeclaration",{visitor:["source"],aliases:["Statement","Declaration","ModuleDeclaration","ExportDeclaration"],fields:{source:{validate:(0,n.assertNodeType)("StringLiteral")}}}),(0,i.default)("ExportDefaultDeclaration",{visitor:["declaration"],aliases:["Statement","Declaration","ModuleDeclaration","ExportDeclaration"],fields:{declaration:{validate:(0,n.assertNodeType)("FunctionDeclaration","ClassDeclaration","Expression")}}}),(0,i.default)("ExportNamedDeclaration",{visitor:["declaration","specifiers","source"],aliases:["Statement","Declaration","ModuleDeclaration","ExportDeclaration"],fields:{declaration:{validate:(0,n.assertNodeType)("Declaration"),optional:!0},specifiers:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("ExportSpecifier")))},source:{validate:(0,n.assertNodeType)("StringLiteral"),optional:!0}}}),(0,i.default)("ExportSpecifier",{visitor:["local","exported"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")},exported:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ForOfStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:(0,n.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,n.assertNodeType)("Expression")},body:{validate:(0,n.assertNodeType)("Statement")}}}),(0,i.default)("ImportDeclaration",{visitor:["specifiers","source"],aliases:["Statement","Declaration","ModuleDeclaration"],fields:{specifiers:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("ImportSpecifier","ImportDefaultSpecifier","ImportNamespaceSpecifier")))},source:{validate:(0,n.assertNodeType)("StringLiteral")}}}),(0,i.default)("ImportDefaultSpecifier",{visitor:["local"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ImportNamespaceSpecifier",{visitor:["local"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ImportSpecifier",{visitor:["local","imported"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")},imported:{validate:(0,n.assertNodeType)("Identifier")},importKind:{validate:(0,n.assertOneOf)(null,"type","typeof")}}}),(0,i.default)("MetaProperty",{visitor:["meta","property"],aliases:["Expression"],fields:{meta:{validate:(0,n.assertValueType)("string")},property:{validate:(0,n.assertValueType)("string")}}}),(0,i.default)("ClassMethod",{aliases:["Function","Scopable","BlockParent","FunctionParent","Method"],builder:["kind","key","params","body","computed","static"],visitor:["key","params","body","decorators","returnType","typeParameters"],fields:{kind:{validate:(0,n.chain)((0,n.assertValueType)("string"),(0,n.assertOneOf)("get","set","method","constructor")),default:"method"},computed:{default:!1,validate:(0,n.assertValueType)("boolean")},static:{default:!1,validate:(0,n.assertValueType)("boolean")},key:{validate:function(e,t,r){var i=e.computed?["Expression"]:["Identifier","StringLiteral","NumericLiteral"];n.assertNodeType.apply(void 0,i)(e,t,r)}},params:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("LVal")))},body:{validate:(0,n.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,n.assertValueType)("boolean")},async:{default:!1,validate:(0,n.assertValueType)("boolean")}}}),(0,i.default)("ObjectPattern",{visitor:["properties","typeAnnotation"],aliases:["Pattern","LVal"],fields:{properties:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("RestProperty","Property")))},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("SpreadElement",{visitor:["argument"],aliases:["UnaryLike"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("Super",{aliases:["Expression"]}),(0,i.default)("TaggedTemplateExpression",{visitor:["tag","quasi"],aliases:["Expression"],fields:{tag:{validate:(0,n.assertNodeType)("Expression")},quasi:{validate:(0,n.assertNodeType)("TemplateLiteral")}}}),(0,i.default)("TemplateElement",{builder:["value","tail"],fields:{value:{},tail:{validate:(0,n.assertValueType)("boolean"),default:!1}}}),(0,i.default)("TemplateLiteral",{visitor:["quasis","expressions"],aliases:["Expression","Literal"],fields:{quasis:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("TemplateElement")))},expressions:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Expression")))}}}),(0,i.default)("YieldExpression",{builder:["argument","delegate"],visitor:["argument"],aliases:["Expression","Terminatorless"],fields:{delegate:{validate:(0,n.assertValueType)("boolean"),default:!1},argument:{optional:!0,validate:(0,n.assertNodeType)("Expression")}}})},{"./index":175}],173:[function(e,t,r){"use strict";var n=e("./index"),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("AwaitExpression",{builder:["argument"],visitor:["argument"],aliases:["Expression","Terminatorless"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("ForAwaitStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:(0,n.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,n.assertNodeType)("Expression")},body:{validate:(0,n.assertNodeType)("Statement")}}}),(0,i.default)("BindExpression",{visitor:["object","callee"],aliases:["Expression"],fields:{}}),(0,i.default)("Import",{aliases:["Expression"]}),(0,i.default)("Decorator",{visitor:["expression"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("DoExpression",{visitor:["body"],aliases:["Expression"],fields:{body:{validate:(0,n.assertNodeType)("BlockStatement")}}}),(0,i.default)("ExportDefaultSpecifier",{visitor:["exported"],aliases:["ModuleSpecifier"],fields:{exported:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ExportNamespaceSpecifier",{visitor:["exported"],aliases:["ModuleSpecifier"],fields:{exported:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("RestProperty",{visitor:["argument"],aliases:["UnaryLike"],fields:{argument:{validate:(0,n.assertNodeType)("LVal")}}}),(0,i.default)("SpreadProperty",{visitor:["argument"],aliases:["UnaryLike"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}})},{"./index":175}],174:[function(e,t,r){"use strict";var n=e("./index"),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("AnyTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("ArrayTypeAnnotation",{visitor:["elementType"],aliases:["Flow"],fields:{}}),(0,i.default)("BooleanTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("BooleanLiteralTypeAnnotation",{aliases:["Flow"],fields:{}}),(0,i.default)("NullLiteralTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("ClassImplements",{visitor:["id","typeParameters"],aliases:["Flow"],fields:{}}),(0,i.default)("ClassProperty",{visitor:["key","value","typeAnnotation","decorators"],builder:["key","value","typeAnnotation","decorators","computed"],aliases:["Property"],fields:{computed:{validate:(0,n.assertValueType)("boolean"),default:!1}}}),(0,i.default)("DeclareClass",{visitor:["id","typeParameters","extends","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareFunction",{visitor:["id"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareInterface",{visitor:["id","typeParameters","extends","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareModule",{visitor:["id","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareModuleExports",{visitor:["typeAnnotation"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareTypeAlias",{visitor:["id","typeParameters","right"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareOpaqueType",{visitor:["id","typeParameters","supertype"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareVariable",{visitor:["id"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareExportDeclaration",{visitor:["declaration","specifiers","source"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("ExistentialTypeParam",{aliases:["Flow"]}),(0,i.default)("FunctionTypeAnnotation",{visitor:["typeParameters","params","rest","returnType"],aliases:["Flow"],fields:{}}),(0,i.default)("FunctionTypeParam",{visitor:["name","typeAnnotation"],aliases:["Flow"],fields:{}}),(0,i.default)("GenericTypeAnnotation",{visitor:["id","typeParameters"],aliases:["Flow"],fields:{}}),(0,i.default)("InterfaceExtends",{visitor:["id","typeParameters"],aliases:["Flow"],fields:{}}),(0,i.default)("InterfaceDeclaration",{visitor:["id","typeParameters","extends","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("IntersectionTypeAnnotation",{visitor:["types"],aliases:["Flow"],fields:{}}),(0,i.default)("MixedTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"]}),(0,i.default)("EmptyTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"]}),(0,i.default)("NullableTypeAnnotation",{visitor:["typeAnnotation"],aliases:["Flow"],fields:{}}),(0,i.default)("NumericLiteralTypeAnnotation",{aliases:["Flow"],fields:{}}),(0,i.default)("NumberTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("StringLiteralTypeAnnotation",{aliases:["Flow"],fields:{}}),(0,i.default)("StringTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("ThisTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("TupleTypeAnnotation",{visitor:["types"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeofTypeAnnotation",{visitor:["argument"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeAlias",{visitor:["id","typeParameters","right"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("OpaqueType",{visitor:["id","typeParameters","impltype","supertype"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("TypeAnnotation",{visitor:["typeAnnotation"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeCastExpression",{visitor:["expression","typeAnnotation"],aliases:["Flow","ExpressionWrapper","Expression"],fields:{}}),(0,i.default)("TypeParameter",{visitor:["bound"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeParameterDeclaration",{visitor:["params"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeParameterInstantiation",{visitor:["params"],aliases:["Flow"],fields:{}}),(0,i.default)("ObjectTypeAnnotation",{visitor:["properties","indexers","callProperties"],aliases:["Flow"],fields:{}}),(0,i.default)("ObjectTypeCallProperty",{visitor:["value"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("ObjectTypeIndexer",{visitor:["id","key","value"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("ObjectTypeProperty",{visitor:["key","value"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("ObjectTypeSpreadProperty",{visitor:["argument"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("QualifiedTypeIdentifier",{visitor:["id","qualification"],aliases:["Flow"],fields:{}}),(0,i.default)("UnionTypeAnnotation",{visitor:["types"],aliases:["Flow"],fields:{}}),(0,i.default)("VoidTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}})},{"./index":175}],175:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return Array.isArray(e)?"array":null===e?"null":void 0===e?"undefined":void 0===e?"undefined":(0,u.default)(e)}function s(e){function t(t,r,n){if(!(i(n)===e))throw new TypeError("Property "+r+" expected type of "+e+" but got "+i(n))}return t.type=e,t}r.__esModule=!0,r.DEPRECATED_KEYS=r.BUILDER_KEYS=r.NODE_FIELDS=r.ALIAS_KEYS=r.VISITOR_KEYS=void 0;var a=n(e("babel-runtime/core-js/get-iterator")),o=n(e("babel-runtime/core-js/json/stringify")),u=n(e("babel-runtime/helpers/typeof"));r.assertEach=function(e){function t(t,r,n){if(Array.isArray(n))for(var i=0;i=s.length)break;p=s[c++]}else{if((c=s.next()).done)break;p=c.value}var h=p;if(l.is(h,n)){i=!0;break}}if(!i)throw new TypeError("Property "+t+" of "+e.type+" expected node to be of a type "+(0,o.default)(r)+" but instead got "+(0,o.default)(n&&n.type))}for(var t=arguments.length,r=Array(t),n=0;n=u.length)break;h=u[p++]}else{if((p=u.next()).done)break;h=p.value}var f=h;if(i(n)===f||l.is(f,n)){s=!0;break}}if(!s)throw new TypeError("Property "+t+" of "+e.type+" expected node to be of a type "+(0,o.default)(r)+" but instead got "+(0,o.default)(n&&n.type))}for(var t=arguments.length,r=Array(t),n=0;n=e.length)break;i=e[n++]}else{if((n=e.next()).done)break;i=n.value}i.apply(void 0,arguments)}}for(var t=arguments.length,r=Array(t),n=0;n1&&void 0!==arguments[1]?arguments[1]:{},r=t.inherits&&m[t.inherits]||{};t.fields=t.fields||r.fields||{},t.visitor=t.visitor||r.visitor||[],t.aliases=t.aliases||r.aliases||[],t.builder=t.builder||r.builder||t.visitor||[],t.deprecatedAlias&&(d[t.deprecatedAlias]=e);var n=t.visitor.concat(t.builder),o=Array.isArray(n),u=0;for(n=o?n:(0,a.default)(n);;){var l;if(o){if(u>=n.length)break;l=n[u++]}else{if((u=n.next()).done)break;l=u.value}var y=l;t.fields[y]=t.fields[y]||{}}for(var g in t.fields){var b=t.fields[g];-1===t.builder.indexOf(g)&&(b.optional=!0),void 0===b.default?b.default=null:b.validate||(b.validate=s(i(b.default)))}c[e]=t.visitor,f[e]=t.builder,h[e]=t.fields,p[e]=t.aliases,m[e]=t};var l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("../index")),c=r.VISITOR_KEYS={},p=r.ALIAS_KEYS={},h=r.NODE_FIELDS={},f=r.BUILDER_KEYS={},d=r.DEPRECATED_KEYS={},m={}},{"../index":180,"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/json/stringify":121,"babel-runtime/helpers/typeof":138}],176:[function(e,t,r){"use strict";e("./index"),e("./core"),e("./es2015"),e("./flow"),e("./jsx"),e("./misc"),e("./experimental")},{"./core":171,"./es2015":172,"./experimental":173,"./flow":174,"./index":175,"./jsx":177,"./misc":178}],177:[function(e,t,r){"use strict";var n=e("./index"),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("JSXAttribute",{visitor:["name","value"],aliases:["JSX","Immutable"],fields:{name:{validate:(0,n.assertNodeType)("JSXIdentifier","JSXNamespacedName")},value:{optional:!0,validate:(0,n.assertNodeType)("JSXElement","StringLiteral","JSXExpressionContainer")}}}),(0,i.default)("JSXClosingElement",{visitor:["name"],aliases:["JSX","Immutable"],fields:{name:{validate:(0,n.assertNodeType)("JSXIdentifier","JSXMemberExpression")}}}),(0,i.default)("JSXElement",{builder:["openingElement","closingElement","children","selfClosing"],visitor:["openingElement","children","closingElement"],aliases:["JSX","Immutable","Expression"],fields:{openingElement:{validate:(0,n.assertNodeType)("JSXOpeningElement")},closingElement:{optional:!0,validate:(0,n.assertNodeType)("JSXClosingElement")},children:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("JSXText","JSXExpressionContainer","JSXSpreadChild","JSXElement")))}}}),(0,i.default)("JSXEmptyExpression",{aliases:["JSX","Expression"]}),(0,i.default)("JSXExpressionContainer",{visitor:["expression"],aliases:["JSX","Immutable"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("JSXSpreadChild",{visitor:["expression"],aliases:["JSX","Immutable"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("JSXIdentifier",{builder:["name"],aliases:["JSX","Expression"],fields:{name:{validate:(0,n.assertValueType)("string")}}}),(0,i.default)("JSXMemberExpression",{visitor:["object","property"],aliases:["JSX","Expression"],fields:{object:{validate:(0,n.assertNodeType)("JSXMemberExpression","JSXIdentifier")},property:{validate:(0,n.assertNodeType)("JSXIdentifier")}}}),(0,i.default)("JSXNamespacedName",{visitor:["namespace","name"],aliases:["JSX"],fields:{namespace:{validate:(0,n.assertNodeType)("JSXIdentifier")},name:{validate:(0,n.assertNodeType)("JSXIdentifier")}}}),(0,i.default)("JSXOpeningElement",{builder:["name","attributes","selfClosing"],visitor:["name","attributes"],aliases:["JSX","Immutable"],fields:{name:{validate:(0,n.assertNodeType)("JSXIdentifier","JSXMemberExpression")},selfClosing:{default:!1,validate:(0,n.assertValueType)("boolean")},attributes:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("JSXAttribute","JSXSpreadAttribute")))}}}),(0,i.default)("JSXSpreadAttribute",{visitor:["argument"],aliases:["JSX"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("JSXText",{aliases:["JSX","Immutable"],builder:["value"],fields:{value:{validate:(0,n.assertValueType)("string")}}})},{"./index":175}],178:[function(e,t,r){"use strict";var n=e("./index"),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("Noop",{visitor:[]}),(0,i.default)("ParenthesizedExpression",{visitor:["expression"],aliases:["Expression","ExpressionWrapper"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}})},{"./index":175}],179:[function(e,t,r){"use strict";function n(e){for(var t={},r={},s=[],a=[],o=0;o=0)){if(i.isAnyTypeAnnotation(u))return[u];if(i.isFlowBaseAnnotation(u))r[u.type]=u;else if(i.isUnionTypeAnnotation(u))s.indexOf(u.types)<0&&(e=e.concat(u.types),s.push(u.types));else if(i.isGenericTypeAnnotation(u)){var l=u.id.name;if(t[l]){var c=t[l];c.typeParameters?u.typeParameters&&(c.typeParameters.params=n(c.typeParameters.params.concat(u.typeParameters.params))):c=u.typeParameters}else t[l]=u}else a.push(u)}}for(var p in r)a.push(r[p]);for(var h in t)a.push(t[h]);return a}r.__esModule=!0,r.createUnionTypeAnnotation=function(e){var t=n(e);return 1===t.length?t[0]:i.unionTypeAnnotation(t)},r.removeTypeDuplicates=n,r.createTypeAnnotationBasedOnTypeof=function(e){if("string"===e)return i.stringTypeAnnotation();if("number"===e)return i.numberTypeAnnotation();if("undefined"===e)return i.voidTypeAnnotation();if("boolean"===e)return i.booleanTypeAnnotation();if("function"===e)return i.genericTypeAnnotation(i.identifier("Function"));if("object"===e)return i.genericTypeAnnotation(i.identifier("Object"));if("symbol"===e)return i.genericTypeAnnotation(i.identifier("Symbol"));throw new Error("Invalid typeof value")};var i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("./index"))},{"./index":180}],180:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=F["is"+e];t||(t=F["is"+e]=function(t,r){return F.is(e,t,r)}),F["assert"+e]=function(r,n){if(n=n||{},!t(r,n))throw new Error("Expected type "+(0,b.default)(e)+" with option "+(0,b.default)(n))}}function s(e,t){if(e===t)return!0;if(F.ALIAS_KEYS[t])return!1;var r=F.FLIPPED_ALIAS_KEYS[t];if(r){if(r[0]===e)return!0;var n=r,i=Array.isArray(n),s=0;for(n=i?n:(0,y.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if((s=n.next()).done)break;a=s.value}if(e===a)return!0}}return!1}function a(e,t,r){if(e){var n=F.NODE_FIELDS[e.type];if(n){var i=n[t];i&&i.validate&&(i.optional&&null==r||i.validate(e,t,r))}}}function o(e){if(!e)return e;var t={};for(var r in e)"_"!==r[0]&&(t[r]=e[r]);return t}function u(e,t){p("trailingComments",e,t)}function l(e,t){p("leadingComments",e,t)}function c(e,t){p("innerComments",e,t)}function p(e,t,r){t&&r&&(t[e]=(0,_.default)([].concat(t[e],r[e]).filter(Boolean)))}function h(e){return!(!e||!w.VISITOR_KEYS[e.type])}function f(e,t,r){if(e){var n=F.VISITOR_KEYS[e.type];if(n){t(e,r=r||{});var i=n,s=Array.isArray(i),a=0;for(i=s?i:(0,y.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if((a=i.next()).done)break;o=a.value}var u=e[o];if(Array.isArray(u)){var l=u,c=Array.isArray(l),p=0;for(l=c?l:(0,y.default)(l);;){var h;if(c){if(p>=l.length)break;h=l[p++]}else{if((p=l.next()).done)break;h=p.value}f(h,t,r)}}else f(u,t,r)}}}}function d(e,t){var r=(t=t||{}).preserveComments?O:N,n=Array.isArray(r),i=0;for(r=n?r:(0,y.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if((i=r.next()).done)break;s=i.value}var a=s;null!=e[a]&&(e[a]=void 0)}for(var o in e)"_"===o[0]&&null!=e[o]&&(e[o]=void 0);var u=(0,m.default)(e),l=Array.isArray(u),c=0;for(u=l?u:(0,y.default)(u);;){var p;if(l){if(c>=u.length)break;p=u[c++]}else{if((c=u.next()).done)break;p=c.value}e[p]=null}}r.__esModule=!0,r.createTypeAnnotationBasedOnTypeof=r.removeTypeDuplicates=r.createUnionTypeAnnotation=r.valueToNode=r.toBlock=r.toExpression=r.toStatement=r.toBindingIdentifierName=r.toIdentifier=r.toKeyAlias=r.toSequenceExpression=r.toComputedKey=r.isNodesEquivalent=r.isImmutable=r.isScope=r.isSpecifierDefault=r.isVar=r.isBlockScoped=r.isLet=r.isValidIdentifier=r.isReferenced=r.isBinding=r.getOuterBindingIdentifiers=r.getBindingIdentifiers=r.TYPES=r.react=r.DEPRECATED_KEYS=r.BUILDER_KEYS=r.NODE_FIELDS=r.ALIAS_KEYS=r.VISITOR_KEYS=r.NOT_LOCAL_BINDING=r.BLOCK_SCOPED_SYMBOL=r.INHERIT_KEYS=r.UNARY_OPERATORS=r.STRING_UNARY_OPERATORS=r.NUMBER_UNARY_OPERATORS=r.BOOLEAN_UNARY_OPERATORS=r.BINARY_OPERATORS=r.NUMBER_BINARY_OPERATORS=r.BOOLEAN_BINARY_OPERATORS=r.COMPARISON_BINARY_OPERATORS=r.EQUALITY_BINARY_OPERATORS=r.BOOLEAN_NUMBER_BINARY_OPERATORS=r.UPDATE_OPERATORS=r.LOGICAL_OPERATORS=r.COMMENT_KEYS=r.FOR_INIT_KEYS=r.FLATTENABLE_KEYS=r.STATEMENT_OR_BLOCK_KEYS=void 0;var m=n(e("babel-runtime/core-js/object/get-own-property-symbols")),y=n(e("babel-runtime/core-js/get-iterator")),g=n(e("babel-runtime/core-js/object/keys")),b=n(e("babel-runtime/core-js/json/stringify")),v=e("./constants");Object.defineProperty(r,"STATEMENT_OR_BLOCK_KEYS",{enumerable:!0,get:function(){return v.STATEMENT_OR_BLOCK_KEYS}}),Object.defineProperty(r,"FLATTENABLE_KEYS",{enumerable:!0,get:function(){return v.FLATTENABLE_KEYS}}),Object.defineProperty(r,"FOR_INIT_KEYS",{enumerable:!0,get:function(){return v.FOR_INIT_KEYS}}),Object.defineProperty(r,"COMMENT_KEYS",{enumerable:!0,get:function(){return v.COMMENT_KEYS}}),Object.defineProperty(r,"LOGICAL_OPERATORS",{enumerable:!0,get:function(){return v.LOGICAL_OPERATORS}}),Object.defineProperty(r,"UPDATE_OPERATORS",{enumerable:!0,get:function(){return v.UPDATE_OPERATORS}}),Object.defineProperty(r,"BOOLEAN_NUMBER_BINARY_OPERATORS",{enumerable:!0,get:function(){return v.BOOLEAN_NUMBER_BINARY_OPERATORS}}),Object.defineProperty(r,"EQUALITY_BINARY_OPERATORS",{enumerable:!0,get:function(){return v.EQUALITY_BINARY_OPERATORS}}),Object.defineProperty(r,"COMPARISON_BINARY_OPERATORS",{enumerable:!0,get:function(){return v.COMPARISON_BINARY_OPERATORS}}),Object.defineProperty(r,"BOOLEAN_BINARY_OPERATORS",{enumerable:!0,get:function(){return v.BOOLEAN_BINARY_OPERATORS}}),Object.defineProperty(r,"NUMBER_BINARY_OPERATORS",{enumerable:!0,get:function(){return v.NUMBER_BINARY_OPERATORS}}),Object.defineProperty(r,"BINARY_OPERATORS",{enumerable:!0,get:function(){return v.BINARY_OPERATORS}}),Object.defineProperty(r,"BOOLEAN_UNARY_OPERATORS",{enumerable:!0,get:function(){return v.BOOLEAN_UNARY_OPERATORS}}),Object.defineProperty(r,"NUMBER_UNARY_OPERATORS",{enumerable:!0,get:function(){return v.NUMBER_UNARY_OPERATORS}}),Object.defineProperty(r,"STRING_UNARY_OPERATORS",{enumerable:!0,get:function(){return v.STRING_UNARY_OPERATORS}}),Object.defineProperty(r,"UNARY_OPERATORS",{enumerable:!0,get:function(){return v.UNARY_OPERATORS}}),Object.defineProperty(r,"INHERIT_KEYS",{enumerable:!0,get:function(){return v.INHERIT_KEYS}}),Object.defineProperty(r,"BLOCK_SCOPED_SYMBOL",{enumerable:!0,get:function(){return v.BLOCK_SCOPED_SYMBOL}}),Object.defineProperty(r,"NOT_LOCAL_BINDING",{enumerable:!0,get:function(){return v.NOT_LOCAL_BINDING}}),r.is=function(e,t,r){return!!t&&!!s(t.type,e)&&(void 0===r||F.shallowEqual(t,r))},r.isType=s,r.validate=a,r.shallowEqual=function(e,t){var r=(0,g.default)(t),n=Array.isArray(r),i=0;for(r=n?r:(0,y.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if((i=r.next()).done)break;s=i.value}var a=s;if(e[a]!==t[a])return!1}return!0},r.appendToMemberExpression=function(e,t,r){return e.object=F.memberExpression(e.object,e.property,e.computed),e.property=t,e.computed=!!r,e},r.prependToMemberExpression=function(e,t){return e.object=F.memberExpression(t,e.object),e},r.ensureBlock=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"body";return e[t]=F.toBlock(e[t],e)},r.clone=o,r.cloneWithoutLoc=function(e){var t=o(e);return delete t.loc,t},r.cloneDeep=function(e){if(!e)return e;var t={};for(var r in e)if("_"!==r[0]){var n=e[r];n&&(n.type?n=F.cloneDeep(n):Array.isArray(n)&&(n=n.map(F.cloneDeep))),t[r]=n}return t},r.buildMatchMemberExpression=function(e,t){var r=e.split(".");return function(e){if(!F.isMemberExpression(e))return!1;for(var n=[e],i=0;n.length;){var s=n.shift();if(t&&i===r.length)return!0;if(F.isIdentifier(s)){if(r[i]!==s.name)return!1}else{if(!F.isStringLiteral(s)){if(F.isMemberExpression(s)){if(s.computed&&!F.isStringLiteral(s.property))return!1;n.push(s.object),n.push(s.property);continue}return!1}if(r[i]!==s.value)return!1}if(++i>r.length)return!1}return!0}},r.removeComments=function(e){var t=F.COMMENT_KEYS,r=Array.isArray(t),n=0;for(t=r?t:(0,y.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}delete e[i]}return e},r.inheritsComments=function(e,t){return u(e,t),l(e,t),c(e,t),e},r.inheritTrailingComments=u,r.inheritLeadingComments=l,r.inheritInnerComments=c,r.inherits=function(e,t){if(!e||!t)return e;var r=F.INHERIT_KEYS.optional,n=Array.isArray(r),i=0;for(r=n?r:(0,y.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if((i=r.next()).done)break;s=i.value}var a=s;null==e[a]&&(e[a]=t[a])}for(var o in t)"_"===o[0]&&(e[o]=t[o]);var u=F.INHERIT_KEYS.force,l=Array.isArray(u),c=0;for(u=l?u:(0,y.default)(u);;){var p;if(l){if(c>=u.length)break;p=u[c++]}else{if((c=u.next()).done)break;p=c.value}var h=p;e[h]=t[h]}return F.inheritsComments(e,t),e},r.assertNode=function(e){if(!h(e))throw new TypeError("Not a valid node "+(e&&e.type))},r.isNode=h,r.traverseFast=f,r.removeProperties=d,r.removePropertiesDeep=function(e,t){return f(e,d,t),e};var x=e("./retrievers");Object.defineProperty(r,"getBindingIdentifiers",{enumerable:!0,get:function(){return x.getBindingIdentifiers}}),Object.defineProperty(r,"getOuterBindingIdentifiers",{enumerable:!0,get:function(){return x.getOuterBindingIdentifiers}});var E=e("./validators");Object.defineProperty(r,"isBinding",{enumerable:!0,get:function(){return E.isBinding}}),Object.defineProperty(r,"isReferenced",{enumerable:!0,get:function(){return E.isReferenced}}),Object.defineProperty(r,"isValidIdentifier",{enumerable:!0,get:function(){return E.isValidIdentifier}}),Object.defineProperty(r,"isLet",{enumerable:!0,get:function(){return E.isLet}}),Object.defineProperty(r,"isBlockScoped",{enumerable:!0,get:function(){return E.isBlockScoped}}),Object.defineProperty(r,"isVar",{enumerable:!0,get:function(){return E.isVar}}),Object.defineProperty(r,"isSpecifierDefault",{enumerable:!0,get:function(){return E.isSpecifierDefault}}),Object.defineProperty(r,"isScope",{enumerable:!0,get:function(){return E.isScope}}),Object.defineProperty(r,"isImmutable",{enumerable:!0,get:function(){return E.isImmutable}}),Object.defineProperty(r,"isNodesEquivalent",{enumerable:!0,get:function(){return E.isNodesEquivalent}});var A=e("./converters");Object.defineProperty(r,"toComputedKey",{enumerable:!0,get:function(){return A.toComputedKey}}),Object.defineProperty(r,"toSequenceExpression",{enumerable:!0,get:function(){return A.toSequenceExpression}}),Object.defineProperty(r,"toKeyAlias",{enumerable:!0,get:function(){return A.toKeyAlias}}),Object.defineProperty(r,"toIdentifier",{enumerable:!0,get:function(){return A.toIdentifier}}),Object.defineProperty(r,"toBindingIdentifierName",{enumerable:!0,get:function(){return A.toBindingIdentifierName}}),Object.defineProperty(r,"toStatement",{enumerable:!0,get:function(){return A.toStatement}}),Object.defineProperty(r,"toExpression",{enumerable:!0,get:function(){return A.toExpression}}),Object.defineProperty(r,"toBlock",{enumerable:!0,get:function(){return A.toBlock}}),Object.defineProperty(r,"valueToNode",{enumerable:!0,get:function(){return A.valueToNode}});var D=e("./flow");Object.defineProperty(r,"createUnionTypeAnnotation",{enumerable:!0,get:function(){return D.createUnionTypeAnnotation}}),Object.defineProperty(r,"removeTypeDuplicates",{enumerable:!0,get:function(){return D.removeTypeDuplicates}}),Object.defineProperty(r,"createTypeAnnotationBasedOnTypeof",{enumerable:!0,get:function(){return D.createTypeAnnotationBasedOnTypeof}});var S=n(e("to-fast-properties")),C=n(e("lodash/clone")),_=n(e("lodash/uniq"));e("./definitions/init");var w=e("./definitions"),k=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("./react")),F=r;r.VISITOR_KEYS=w.VISITOR_KEYS,r.ALIAS_KEYS=w.ALIAS_KEYS,r.NODE_FIELDS=w.NODE_FIELDS,r.BUILDER_KEYS=w.BUILDER_KEYS,r.DEPRECATED_KEYS=w.DEPRECATED_KEYS,r.react=k;for(var T in F.VISITOR_KEYS)i(T);F.FLIPPED_ALIAS_KEYS={},(0,g.default)(F.ALIAS_KEYS).forEach(function(e){F.ALIAS_KEYS[e].forEach(function(t){(F.FLIPPED_ALIAS_KEYS[t]=F.FLIPPED_ALIAS_KEYS[t]||[]).push(e)})}),(0,g.default)(F.FLIPPED_ALIAS_KEYS).forEach(function(e){F[e.toUpperCase()+"_TYPES"]=F.FLIPPED_ALIAS_KEYS[e],i(e)});r.TYPES=(0,g.default)(F.VISITOR_KEYS).concat((0,g.default)(F.FLIPPED_ALIAS_KEYS)).concat((0,g.default)(F.DEPRECATED_KEYS));(0,g.default)(F.BUILDER_KEYS).forEach(function(e){function t(){if(arguments.length>r.length)throw new Error("t."+e+": Too many arguments passed. Received "+arguments.length+" but can receive no more than "+r.length);var t={};t.type=e;var n=0,i=r,s=Array.isArray(i),o=0;for(i=s?i:(0,y.default)(i);;){var u;if(s){if(o>=i.length)break;u=i[o++]}else{if((o=i.next()).done)break;u=o.value}var l=u,c=F.NODE_FIELDS[e][l],p=arguments[n++];void 0===p&&(p=(0,C.default)(c.default)),t[l]=p}for(var h in t)a(t,h,t[h]);return t}var r=F.BUILDER_KEYS[e];F[e]=t,F[e[0].toLowerCase()+e.slice(1)]=t});var P=function(e){function t(t){return function(){return console.trace("The node type "+e+" has been renamed to "+r),t.apply(this,arguments)}}var r=F.DEPRECATED_KEYS[e];F[e]=F[e[0].toLowerCase()+e.slice(1)]=t(F[r]),F["is"+e]=t(F["is"+r]),F["assert"+e]=t(F["assert"+r])};for(var B in F.DEPRECATED_KEYS)P(B);(0,S.default)(F),(0,S.default)(F.VISITOR_KEYS);var O=["tokens","start","end","loc","raw","rawValue"],N=F.COMMENT_KEYS.concat(["comments"]).concat(O)},{"./constants":169,"./converters":170,"./definitions":175,"./definitions/init":176,"./flow":179,"./react":181,"./retrievers":182,"./validators":183,"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/json/stringify":121,"babel-runtime/core-js/object/get-own-property-symbols":126,"babel-runtime/core-js/object/keys":127,"lodash/clone":491,"lodash/uniq":540,"to-fast-properties":607}],181:[function(e,t,r){"use strict";function n(e,t){for(var r=e.value.split(/\r\n|\n|\r/),n=0,s=0;s=r.length)break;l=r[u++]}else{if((u=r.next()).done)break;l=u.value}var p=l;if((0,a.default)(e[p])!==(0,a.default)(t[p]))return!1;if(Array.isArray(e[p])){if(!Array.isArray(t[p]))return!1;if(e[p].length!==t[p].length)return!1;for(var h=0;h=0)return!0}else if(i===e)return!0}return!1},r.isReferenced=function(e,t){switch(t.type){case"BindExpression":return t.object===e||t.callee===e;case"MemberExpression":case"JSXMemberExpression":return!(t.property!==e||!t.computed)||t.object===e;case"MetaProperty":return!1;case"ObjectProperty":if(t.key===e)return t.computed;case"VariableDeclarator":return t.id!==e;case"ArrowFunctionExpression":case"FunctionDeclaration":case"FunctionExpression":var r=t.params,n=Array.isArray(r),i=0;for(r=n?r:(0,o.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if((i=r.next()).done)break;s=i.value}if(s===e)return!1}return t.id!==e;case"ExportSpecifier":return!t.source&&t.local===e;case"ExportNamespaceSpecifier":case"ExportDefaultSpecifier":return!1;case"JSXAttribute":return t.name!==e;case"ClassProperty":return t.key===e?t.computed:t.value===e;case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ImportSpecifier":return!1;case"ClassDeclaration":case"ClassExpression":return t.id!==e;case"ClassMethod":case"ObjectMethod":return t.key===e&&t.computed;case"LabeledStatement":return!1;case"CatchClause":return t.param!==e;case"RestElement":return!1;case"AssignmentExpression":case"AssignmentPattern":return t.right===e;case"ObjectPattern":case"ArrayPattern":return!1}return!0},r.isValidIdentifier=function(e){return"string"==typeof e&&!l.default.keyword.isReservedWordES6(e,!0)&&"await"!==e&&l.default.keyword.isIdentifierNameES6(e)},r.isLet=function(e){return c.isVariableDeclaration(e)&&("var"!==e.kind||e[p.BLOCK_SCOPED_SYMBOL])},r.isBlockScoped=function(e){return c.isFunctionDeclaration(e)||c.isClassDeclaration(e)||c.isLet(e)},r.isVar=function(e){return c.isVariableDeclaration(e,{kind:"var"})&&!e[p.BLOCK_SCOPED_SYMBOL]},r.isSpecifierDefault=function(e){return c.isImportDefaultSpecifier(e)||c.isIdentifier(e.imported||e.exported,{name:"default"})},r.isScope=function(e,t){return(!c.isBlockStatement(e)||!c.isFunction(t,{body:e}))&&c.isScopable(e)},r.isImmutable=function(e){return!!c.isType(e.type,"Immutable")||!!c.isIdentifier(e)&&"undefined"===e.name},r.isNodesEquivalent=i;var u=e("./retrievers"),l=n(e("esutils")),c=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(e("./index")),p=e("./constants")},{"./constants":169,"./index":180,"./retrievers":182,"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/object/keys":127,"babel-runtime/helpers/typeof":138,esutils:187}],184:[function(e,t,r){arguments[4][25][0].apply(r,arguments)},{dup:25}],185:[function(e,t,r){arguments[4][26][0].apply(r,arguments)},{dup:26}],186:[function(e,t,r){arguments[4][27][0].apply(r,arguments)},{"./code":185,dup:27}],187:[function(e,t,r){arguments[4][28][0].apply(r,arguments)},{"./ast":184,"./code":185,"./keyword":186,dup:28}],188:[function(e,t,r){"use strict";function n(e){return e=e.split(" "),function(t){return e.indexOf(t)>=0}}function i(e,t){for(var r=65536,n=0;ne)return!1;if((r+=t[n+1])>=e)return!0}}function s(e){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&g.test(String.fromCharCode(e)):i(e,v)))}function a(e){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&b.test(String.fromCharCode(e)):i(e,v)||i(e,x))))}function o(e){return 10===e||13===e||8232===e||8233===e}function u(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}function l(e,t,r,n){return e.type=t,e.end=r,e.loc.end=n,this.processComment(e),e}function c(e){return e[e.length-1]}function p(e){return e&&"Property"===e.type&&"init"===e.kind&&!1===e.method}function h(e){return"JSXIdentifier"===e.type?e.name:"JSXNamespacedName"===e.type?e.namespace.name+":"+e.name.name:"JSXMemberExpression"===e.type?h(e.object)+"."+h(e.property):void 0}Object.defineProperty(r,"__esModule",{value:!0});var f={6:n("enum await"),strict:n("implements interface let package private protected public static yield"),strictBind:n("eval arguments")},d=n("break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this let const class extends export import yield super"),m="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿕ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞮꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",y="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఃా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ູົຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱꤀-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",g=new RegExp("["+m+"]"),b=new RegExp("["+m+y+"]");m=y=null;var v=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,785,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,25,391,63,32,0,449,56,264,8,2,36,18,0,50,29,881,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,65,0,32,6124,20,754,9486,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,10591,541],x=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,10,2,4,9,83,11,7,0,161,11,6,9,7,3,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,87,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,423,9,838,7,2,7,17,9,57,21,2,13,19882,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239],E={sourceType:"script",sourceFilename:void 0,startLine:1,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,plugins:[],strictMode:null},A="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},D=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},S=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},C=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},_=!0,w=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};D(this,e),this.label=t,this.keyword=r.keyword,this.beforeExpr=!!r.beforeExpr,this.startsExpr=!!r.startsExpr,this.rightAssociative=!!r.rightAssociative,this.isLoop=!!r.isLoop,this.isAssign=!!r.isAssign,this.prefix=!!r.prefix,this.postfix=!!r.postfix,this.binop=r.binop||null,this.updateContext=null},k=function(e){function t(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return D(this,t),n.keyword=r,C(this,e.call(this,r,n))}return S(t,e),t}(w),F=function(e){function t(r,n){return D(this,t),C(this,e.call(this,r,{beforeExpr:_,binop:n}))}return S(t,e),t}(w),T={num:new w("num",{startsExpr:!0}),regexp:new w("regexp",{startsExpr:!0}),string:new w("string",{startsExpr:!0}),name:new w("name",{startsExpr:!0}),eof:new w("eof"),bracketL:new w("[",{beforeExpr:_,startsExpr:!0}),bracketR:new w("]"),braceL:new w("{",{beforeExpr:_,startsExpr:!0}),braceBarL:new w("{|",{beforeExpr:_,startsExpr:!0}),braceR:new w("}"),braceBarR:new w("|}"),parenL:new w("(",{beforeExpr:_,startsExpr:!0}),parenR:new w(")"),comma:new w(",",{beforeExpr:_}),semi:new w(";",{beforeExpr:_}),colon:new w(":",{beforeExpr:_}),doubleColon:new w("::",{beforeExpr:_}),dot:new w("."),question:new w("?",{beforeExpr:_}),arrow:new w("=>",{beforeExpr:_}),template:new w("template"),ellipsis:new w("...",{beforeExpr:_}),backQuote:new w("`",{startsExpr:!0}),dollarBraceL:new w("${",{beforeExpr:_,startsExpr:!0}),at:new w("@"),eq:new w("=",{beforeExpr:_,isAssign:!0}),assign:new w("_=",{beforeExpr:_,isAssign:!0}),incDec:new w("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new w("prefix",{beforeExpr:_,prefix:!0,startsExpr:!0}),logicalOR:new F("||",1),logicalAND:new F("&&",2),bitwiseOR:new F("|",3),bitwiseXOR:new F("^",4),bitwiseAND:new F("&",5),equality:new F("==/!=",6),relational:new F("",7),bitShift:new F("<>",8),plusMin:new w("+/-",{beforeExpr:_,binop:9,prefix:!0,startsExpr:!0}),modulo:new F("%",10),star:new F("*",10),slash:new F("/",10),exponent:new w("**",{beforeExpr:_,binop:11,rightAssociative:!0})},P={break:new k("break"),case:new k("case",{beforeExpr:_}),catch:new k("catch"),continue:new k("continue"),debugger:new k("debugger"),default:new k("default",{beforeExpr:_}),do:new k("do",{isLoop:!0,beforeExpr:_}),else:new k("else",{beforeExpr:_}),finally:new k("finally"),for:new k("for",{isLoop:!0}),function:new k("function",{startsExpr:!0}),if:new k("if"),return:new k("return",{beforeExpr:_}),switch:new k("switch"),throw:new k("throw",{beforeExpr:_}),try:new k("try"),var:new k("var"),let:new k("let"),const:new k("const"),while:new k("while",{isLoop:!0}),with:new k("with"),new:new k("new",{beforeExpr:_,startsExpr:!0}),this:new k("this",{startsExpr:!0}),super:new k("super",{startsExpr:!0}),class:new k("class"),extends:new k("extends",{beforeExpr:_}),export:new k("export"),import:new k("import",{startsExpr:!0}),yield:new k("yield",{beforeExpr:_,startsExpr:!0}),null:new k("null",{startsExpr:!0}),true:new k("true",{startsExpr:!0}),false:new k("false",{startsExpr:!0}),in:new k("in",{beforeExpr:_,binop:7}),instanceof:new k("instanceof",{beforeExpr:_,binop:7}),typeof:new k("typeof",{beforeExpr:_,prefix:!0,startsExpr:!0}),void:new k("void",{beforeExpr:_,prefix:!0,startsExpr:!0}),delete:new k("delete",{beforeExpr:_,prefix:!0,startsExpr:!0})};Object.keys(P).forEach(function(e){T["_"+e]=P[e]});var B=/\r\n?|\n|\u2028|\u2029/,O=new RegExp(B.source,"g"),N=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,j=function e(t,r,n,i){D(this,e),this.token=t,this.isExpr=!!r,this.preserveSpace=!!n,this.override=i},I={braceStatement:new j("{",!1),braceExpression:new j("{",!0),templateQuasi:new j("${",!0),parenStatement:new j("(",!1),parenExpression:new j("(",!0),template:new j("`",!0,!0,function(e){return e.readTmplToken()}),functionExpression:new j("function",!0)};T.parenR.updateContext=T.braceR.updateContext=function(){if(1!==this.state.context.length){var e=this.state.context.pop();e===I.braceStatement&&this.curContext()===I.functionExpression?(this.state.context.pop(),this.state.exprAllowed=!1):e===I.templateQuasi?this.state.exprAllowed=!0:this.state.exprAllowed=!e.isExpr}else this.state.exprAllowed=!0},T.name.updateContext=function(e){this.state.exprAllowed=!1,e!==T._let&&e!==T._const&&e!==T._var||B.test(this.input.slice(this.state.end))&&(this.state.exprAllowed=!0)},T.braceL.updateContext=function(e){this.state.context.push(this.braceIsBlock(e)?I.braceStatement:I.braceExpression),this.state.exprAllowed=!0},T.dollarBraceL.updateContext=function(){this.state.context.push(I.templateQuasi),this.state.exprAllowed=!0},T.parenL.updateContext=function(e){var t=e===T._if||e===T._for||e===T._with||e===T._while;this.state.context.push(t?I.parenStatement:I.parenExpression),this.state.exprAllowed=!0},T.incDec.updateContext=function(){},T._function.updateContext=function(){this.curContext()!==I.braceStatement&&this.state.context.push(I.functionExpression),this.state.exprAllowed=!1},T.backQuote.updateContext=function(){this.curContext()===I.template?this.state.context.pop():this.state.context.push(I.template),this.state.exprAllowed=!1};var L=function e(t,r){D(this,e),this.line=t,this.column=r},M=function e(t,r){D(this,e),this.start=t,this.end=r},R=function(){function e(){D(this,e)}return e.prototype.init=function(e,t){return this.strict=!1!==e.strictMode&&"module"===e.sourceType,this.input=t,this.potentialArrowAt=-1,this.inMethod=this.inFunction=this.inGenerator=this.inAsync=this.inPropertyName=this.inType=this.inClassProperty=this.noAnonFunctionType=!1,this.labels=[],this.decorators=[],this.tokens=[],this.comments=[],this.trailingComments=[],this.leadingComments=[],this.commentStack=[],this.pos=this.lineStart=0,this.curLine=e.startLine,this.type=T.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=[I.braceStatement],this.exprAllowed=!0,this.containsEsc=this.containsOctal=!1,this.octalPosition=null,this.invalidTemplateEscapePosition=null,this.exportedIdentifiers=[],this},e.prototype.curPosition=function(){return new L(this.curLine,this.pos-this.lineStart)},e.prototype.clone=function(t){var r=new e;for(var n in this){var i=this[n];t&&"context"!==n||!Array.isArray(i)||(i=i.slice()),r[n]=i}return r},e}(),V={},U=["jsx","doExpressions","objectRestSpread","decorators","classProperties","exportExtensions","asyncGenerators","functionBind","functionSent","dynamicImport","flow"],q=function(e){function t(r,n){D(this,t),r=function(e){var t={};for(var r in E)t[r]=e&&r in e?e[r]:E[r];return t}(r);var i=C(this,e.call(this,r,n));return i.options=r,i.inModule="module"===i.options.sourceType,i.input=n,i.plugins=i.loadPlugins(i.options.plugins),i.filename=r.sourceFilename,0===i.state.pos&&"#"===i.input[0]&&"!"===i.input[1]&&i.skipLineComment(2),i}return S(t,e),t.prototype.isReservedWord=function(e){return"await"===e?this.inModule:f[6](e)},t.prototype.hasPlugin=function(e){return!!(this.plugins["*"]&&U.indexOf(e)>-1)||!!this.plugins[e]},t.prototype.extend=function(e,t){this[e]=t(this[e])},t.prototype.loadAllPlugins=function(){var e=this,t=Object.keys(V).filter(function(e){return"flow"!==e&&"estree"!==e});t.push("flow"),t.forEach(function(t){var r=V[t];r&&r(e)})},t.prototype.loadPlugins=function(e){if(e.indexOf("*")>=0)return this.loadAllPlugins(),{"*":!0};var t={};e.indexOf("flow")>=0&&(e=e.filter(function(e){return"flow"!==e})).push("flow"),e.indexOf("estree")>=0&&(e=e.filter(function(e){return"estree"!==e})).unshift("estree");var r=e,n=Array.isArray(r),i=0;for(r=n?r:r[Symbol.iterator]();;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if((i=r.next()).done)break;s=i.value}var a=s;if(!t[a]){t[a]=!0;var o=V[a];o&&o(this)}}return t},t.prototype.parse=function(){var e=this.startNode(),t=this.startNode();return this.nextToken(),this.parseTopLevel(e,t)},t}(function(){function e(t,r){D(this,e),this.state=new R,this.state.init(t,r)}return e.prototype.next=function(){this.isLookahead||this.state.tokens.push(new function e(t){D(this,e),this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,this.loc=new M(t.startLoc,t.endLoc)}(this.state)),this.state.lastTokEnd=this.state.end,this.state.lastTokStart=this.state.start,this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()},e.prototype.eat=function(e){return!!this.match(e)&&(this.next(),!0)},e.prototype.match=function(e){return this.state.type===e},e.prototype.isKeyword=function(e){return d(e)},e.prototype.lookahead=function(){var e=this.state;this.state=e.clone(!0),this.isLookahead=!0,this.next(),this.isLookahead=!1;var t=this.state.clone(!0);return this.state=e,t},e.prototype.setStrict=function(e){if(this.state.strict=e,this.match(T.num)||this.match(T.string)){for(this.state.pos=this.state.start;this.state.pos=this.input.length?this.finishToken(T.eof):e.override?e.override(this):this.readToken(this.fullCharCodeAtPos())},e.prototype.readToken=function(e){return s(e)||92===e?this.readWord():this.getTokenFromCode(e)},e.prototype.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.state.pos);if(e<=55295||e>=57344)return e;return(e<<10)+this.input.charCodeAt(this.state.pos+1)-56613888},e.prototype.pushComment=function(e,t,r,n,i,s){var a={type:e?"CommentBlock":"CommentLine",value:t,start:r,end:n,loc:new M(i,s)};this.isLookahead||(this.state.tokens.push(a),this.state.comments.push(a),this.addComment(a))},e.prototype.skipBlockComment=function(){var e=this.state.curPosition(),t=this.state.pos,r=this.input.indexOf("*/",this.state.pos+=2);-1===r&&this.raise(this.state.pos-2,"Unterminated comment"),this.state.pos=r+2,O.lastIndex=t;for(var n=void 0;(n=O.exec(this.input))&&n.index8&&e<14||e>=5760&&N.test(String.fromCharCode(e))))break e;++this.state.pos}}},e.prototype.finishToken=function(e,t){this.state.end=this.state.pos,this.state.endLoc=this.state.curPosition();var r=this.state.type;this.state.type=e,this.state.value=t,this.updateContext(r)},e.prototype.readToken_dot=function(){var e=this.input.charCodeAt(this.state.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.state.pos+2);return 46===e&&46===t?(this.state.pos+=3,this.finishToken(T.ellipsis)):(++this.state.pos,this.finishToken(T.dot))},e.prototype.readToken_slash=function(){if(this.state.exprAllowed)return++this.state.pos,this.readRegexp();return 61===this.input.charCodeAt(this.state.pos+1)?this.finishOp(T.assign,2):this.finishOp(T.slash,1)},e.prototype.readToken_mult_modulo=function(e){var t=42===e?T.star:T.modulo,r=1,n=this.input.charCodeAt(this.state.pos+1);return 42===n&&(r++,n=this.input.charCodeAt(this.state.pos+2),t=T.exponent),61===n&&(r++,t=T.assign),this.finishOp(t,r)},e.prototype.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.state.pos+1);return t===e?this.finishOp(124===e?T.logicalOR:T.logicalAND,2):61===t?this.finishOp(T.assign,2):124===e&&125===t&&this.hasPlugin("flow")?this.finishOp(T.braceBarR,2):this.finishOp(124===e?T.bitwiseOR:T.bitwiseAND,1)},e.prototype.readToken_caret=function(){return 61===this.input.charCodeAt(this.state.pos+1)?this.finishOp(T.assign,2):this.finishOp(T.bitwiseXOR,1)},e.prototype.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.state.pos+1);return t===e?45===t&&62===this.input.charCodeAt(this.state.pos+2)&&B.test(this.input.slice(this.state.lastTokEnd,this.state.pos))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(T.incDec,2):61===t?this.finishOp(T.assign,2):this.finishOp(T.plusMin,1)},e.prototype.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.state.pos+1),r=1;return t===e?(r=62===e&&62===this.input.charCodeAt(this.state.pos+2)?3:2,61===this.input.charCodeAt(this.state.pos+r)?this.finishOp(T.assign,r+1):this.finishOp(T.bitShift,r)):33===t&&60===e&&45===this.input.charCodeAt(this.state.pos+2)&&45===this.input.charCodeAt(this.state.pos+3)?(this.inModule&&this.unexpected(),this.skipLineComment(4),this.skipSpace(),this.nextToken()):(61===t&&(r=2),this.finishOp(T.relational,r))},e.prototype.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.state.pos+1);return 61===t?this.finishOp(T.equality,61===this.input.charCodeAt(this.state.pos+2)?3:2):61===e&&62===t?(this.state.pos+=2,this.finishToken(T.arrow)):this.finishOp(61===e?T.eq:T.prefix,1)},e.prototype.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.state.pos,this.finishToken(T.parenL);case 41:return++this.state.pos,this.finishToken(T.parenR);case 59:return++this.state.pos,this.finishToken(T.semi);case 44:return++this.state.pos,this.finishToken(T.comma);case 91:return++this.state.pos,this.finishToken(T.bracketL);case 93:return++this.state.pos,this.finishToken(T.bracketR);case 123:return this.hasPlugin("flow")&&124===this.input.charCodeAt(this.state.pos+1)?this.finishOp(T.braceBarL,2):(++this.state.pos,this.finishToken(T.braceL));case 125:return++this.state.pos,this.finishToken(T.braceR);case 58:return this.hasPlugin("functionBind")&&58===this.input.charCodeAt(this.state.pos+1)?this.finishOp(T.doubleColon,2):(++this.state.pos,this.finishToken(T.colon));case 63:return++this.state.pos,this.finishToken(T.question);case 64:return++this.state.pos,this.finishToken(T.at);case 96:return++this.state.pos,this.finishToken(T.backQuote);case 48:var t=this.input.charCodeAt(this.state.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2);case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 126:return this.finishOp(T.prefix,1)}this.raise(this.state.pos,"Unexpected character '"+u(e)+"'")},e.prototype.finishOp=function(e,t){var r=this.input.slice(this.state.pos,this.state.pos+t);return this.state.pos+=t,this.finishToken(e,r)},e.prototype.readRegexp=function(){for(var e=this.state.pos,t=void 0,r=void 0;;){this.state.pos>=this.input.length&&this.raise(e,"Unterminated regular expression");var n=this.input.charAt(this.state.pos);if(B.test(n)&&this.raise(e,"Unterminated regular expression"),t)t=!1;else{if("["===n)r=!0;else if("]"===n&&r)r=!1;else if("/"===n&&!r)break;t="\\"===n}++this.state.pos}var i=this.input.slice(e,this.state.pos);++this.state.pos;var s=this.readWord1();if(s){/^[gmsiyu]*$/.test(s)||this.raise(e,"Invalid regular expression flag")}return this.finishToken(T.regexp,{pattern:i,flags:s})},e.prototype.readInt=function(e,t){for(var r=this.state.pos,n=0,i=0,s=null==t?1/0:t;i=97?a-97+10:a>=65?a-65+10:a>=48&&a<=57?a-48:1/0)>=e)break;++this.state.pos,n=n*e+o}return this.state.pos===r||null!=t&&this.state.pos-r!==t?null:n},e.prototype.readRadixNumber=function(e){this.state.pos+=2;var t=this.readInt(e);return null==t&&this.raise(this.state.start+2,"Expected number in radix "+e),s(this.fullCharCodeAtPos())&&this.raise(this.state.pos,"Identifier directly after number"),this.finishToken(T.num,t)},e.prototype.readNumber=function(e){var t=this.state.pos,r=48===this.input.charCodeAt(t),n=!1;e||null!==this.readInt(10)||this.raise(t,"Invalid number"),r&&this.state.pos==t+1&&(r=!1);var i=this.input.charCodeAt(this.state.pos);46!==i||r||(++this.state.pos,this.readInt(10),n=!0,i=this.input.charCodeAt(this.state.pos)),69!==i&&101!==i||r||(43!==(i=this.input.charCodeAt(++this.state.pos))&&45!==i||++this.state.pos,null===this.readInt(10)&&this.raise(t,"Invalid number"),n=!0),s(this.fullCharCodeAtPos())&&this.raise(this.state.pos,"Identifier directly after number");var a=this.input.slice(t,this.state.pos),o=void 0;return n?o=parseFloat(a):r&&1!==a.length?this.state.strict?this.raise(t,"Invalid number"):o=/[89]/.test(a)?parseInt(a,10):parseInt(a,8):o=parseInt(a,10),this.finishToken(T.num,o)},e.prototype.readCodePoint=function(e){var t=void 0;if(123===this.input.charCodeAt(this.state.pos)){var r=++this.state.pos;if(t=this.readHexChar(this.input.indexOf("}",this.state.pos)-this.state.pos,e),++this.state.pos,null===t)--this.state.invalidTemplateEscapePosition;else if(t>1114111){if(!e)return this.state.invalidTemplateEscapePosition=r-2,null;this.raise(r,"Code point out of bounds")}}else t=this.readHexChar(4,e);return t},e.prototype.readString=function(e){for(var t="",r=++this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated string constant");var n=this.input.charCodeAt(this.state.pos);if(n===e)break;92===n?(t+=this.input.slice(r,this.state.pos),t+=this.readEscapedChar(!1),r=this.state.pos):(o(n)&&this.raise(this.state.start,"Unterminated string constant"),++this.state.pos)}return t+=this.input.slice(r,this.state.pos++),this.finishToken(T.string,t)},e.prototype.readTmplToken=function(){for(var e="",t=this.state.pos,r=!1;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated template");var n=this.input.charCodeAt(this.state.pos);if(96===n||36===n&&123===this.input.charCodeAt(this.state.pos+1))return this.state.pos===this.state.start&&this.match(T.template)?36===n?(this.state.pos+=2,this.finishToken(T.dollarBraceL)):(++this.state.pos,this.finishToken(T.backQuote)):(e+=this.input.slice(t,this.state.pos),this.finishToken(T.template,r?null:e));if(92===n){e+=this.input.slice(t,this.state.pos);var i=this.readEscapedChar(!0);null===i?r=!0:e+=i,t=this.state.pos}else if(o(n)){switch(e+=this.input.slice(t,this.state.pos),++this.state.pos,n){case 13:10===this.input.charCodeAt(this.state.pos)&&++this.state.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(n)}++this.state.curLine,this.state.lineStart=this.state.pos,t=this.state.pos}else++this.state.pos}},e.prototype.readEscapedChar=function(e){var t=!e,r=this.input.charCodeAt(++this.state.pos);switch(++this.state.pos,r){case 110:return"\n";case 114:return"\r";case 120:var n=this.readHexChar(2,t);return null===n?null:String.fromCharCode(n);case 117:var i=this.readCodePoint(t);return null===i?null:u(i);case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.state.pos)&&++this.state.pos;case 10:return this.state.lineStart=this.state.pos,++this.state.curLine,"";default:if(r>=48&&r<=55){var s=this.state.pos-1,a=this.input.substr(this.state.pos-1,3).match(/^[0-7]+/)[0],o=parseInt(a,8);if(o>255&&(a=a.slice(0,-1),o=parseInt(a,8)),o>0){if(e)return this.state.invalidTemplateEscapePosition=s,null;this.state.strict?this.raise(s,"Octal literal in strict mode"):this.state.containsOctal||(this.state.containsOctal=!0,this.state.octalPosition=s)}return this.state.pos+=a.length-1,String.fromCharCode(o)}return String.fromCharCode(r)}},e.prototype.readHexChar=function(e,t){var r=this.state.pos,n=this.readInt(16,e);return null===n&&(t?this.raise(r,"Bad character escape sequence"):(this.state.pos=r-1,this.state.invalidTemplateEscapePosition=r-1)),n},e.prototype.readWord1=function(){this.state.containsEsc=!1;for(var e="",t=!0,r=this.state.pos;this.state.pos1&&void 0!==arguments[1]?arguments[1]:"Unexpected token";t&&"object"===(void 0===t?"undefined":A(t))&&t.label&&(t="Unexpected token, expected "+t.label),this.raise(null!=e?e:this.state.start,t)};var X=q.prototype;X.parseTopLevel=function(e,t){return t.sourceType=this.options.sourceType,this.parseBlockBody(t,!0,!0,T.eof),e.program=this.finishNode(t,"Program"),e.comments=this.state.comments,e.tokens=this.state.tokens,this.finishNode(e,"File")};var J={kind:"loop"},W={kind:"switch"};X.stmtToDirective=function(e){var t=e.expression,r=this.startNodeAt(t.start,t.loc.start),n=this.startNodeAt(e.start,e.loc.start),i=this.input.slice(t.start,t.end),s=r.value=i.slice(1,-1);return this.addExtra(r,"raw",i),this.addExtra(r,"rawValue",s),n.value=this.finishNodeAt(r,"DirectiveLiteral",t.end,t.loc.end),this.finishNodeAt(n,"Directive",e.end,e.loc.end)},X.parseStatement=function(e,t){this.match(T.at)&&this.parseDecorators(!0);var r=this.state.type,n=this.startNode();switch(r){case T._break:case T._continue:return this.parseBreakContinueStatement(n,r.keyword);case T._debugger:return this.parseDebuggerStatement(n);case T._do:return this.parseDoStatement(n);case T._for:return this.parseForStatement(n);case T._function:return e||this.unexpected(),this.parseFunctionStatement(n);case T._class:return e||this.unexpected(),this.parseClass(n,!0);case T._if:return this.parseIfStatement(n);case T._return:return this.parseReturnStatement(n);case T._switch:return this.parseSwitchStatement(n);case T._throw:return this.parseThrowStatement(n);case T._try:return this.parseTryStatement(n);case T._let:case T._const:e||this.unexpected();case T._var:return this.parseVarStatement(n,r);case T._while:return this.parseWhileStatement(n);case T._with:return this.parseWithStatement(n);case T.braceL:return this.parseBlock();case T.semi:return this.parseEmptyStatement(n);case T._export:case T._import:if(this.hasPlugin("dynamicImport")&&this.lookahead().type===T.parenL)break;return this.options.allowImportExportEverywhere||(t||this.raise(this.state.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.state.start,"'import' and 'export' may appear only with 'sourceType: \"module\"'")),r===T._import?this.parseImport(n):this.parseExport(n);case T.name:if("async"===this.state.value){var i=this.state.clone();if(this.next(),this.match(T._function)&&!this.canInsertSemicolon())return this.expect(T._function),this.parseFunction(n,!0,!1,!0);this.state=i}}var s=this.state.value,a=this.parseExpression();return r===T.name&&"Identifier"===a.type&&this.eat(T.colon)?this.parseLabeledStatement(n,s,a):this.parseExpressionStatement(n,a)},X.takeDecorators=function(e){this.state.decorators.length&&(e.decorators=this.state.decorators,this.state.decorators=[])},X.parseDecorators=function(e){for(;this.match(T.at);){var t=this.parseDecorator();this.state.decorators.push(t)}e&&this.match(T._export)||this.match(T._class)||this.raise(this.state.start,"Leading decorators must be attached to a class declaration")},X.parseDecorator=function(){this.hasPlugin("decorators")||this.unexpected();var e=this.startNode();return this.next(),e.expression=this.parseMaybeAssign(),this.finishNode(e,"Decorator")},X.parseBreakContinueStatement=function(e,t){var r="break"===t;this.next(),this.isLineTerminator()?e.label=null:this.match(T.name)?(e.label=this.parseIdentifier(),this.semicolon()):this.unexpected();var n=void 0;for(n=0;n=n.length)break;a=n[s++]}else{if((s=n.next()).done)break;a=s.value}a.name===t&&this.raise(r.start,"Label '"+t+"' is already declared")}for(var o=this.state.type.isLoop?"loop":this.match(T._switch)?"switch":null,u=this.state.labels.length-1;u>=0;u--){var l=this.state.labels[u];if(l.statementStart!==e.start)break;l.statementStart=this.state.start,l.kind=o}return this.state.labels.push({name:t,kind:o,statementStart:this.state.start}),e.body=this.parseStatement(!0),this.state.labels.pop(),e.label=r,this.finishNode(e,"LabeledStatement")},X.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},X.parseBlock=function(e){var t=this.startNode();return this.expect(T.braceL),this.parseBlockBody(t,e,!1,T.braceR),this.finishNode(t,"BlockStatement")},X.isValidDirective=function(e){return"ExpressionStatement"===e.type&&"StringLiteral"===e.expression.type&&!e.expression.extra.parenthesized},X.parseBlockBody=function(e,t,r,n){e.body=[],e.directives=[];for(var i=!1,s=void 0,a=void 0;!this.eat(n);){i||!this.state.containsOctal||a||(a=this.state.octalPosition);var o=this.parseStatement(!0,r);if(t&&!i&&this.isValidDirective(o)){var u=this.stmtToDirective(o);e.directives.push(u),void 0===s&&"use strict"===u.value.value&&(s=this.state.strict,this.setStrict(!0),a&&this.raise(a,"Octal literal in strict mode"))}else i=!0,e.body.push(o)}!1===s&&this.setStrict(!1)},X.parseFor=function(e,t){return e.init=t,this.expect(T.semi),e.test=this.match(T.semi)?null:this.parseExpression(),this.expect(T.semi),e.update=this.match(T.parenR)?null:this.parseExpression(),this.expect(T.parenR),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,"ForStatement")},X.parseForIn=function(e,t,r){var n=void 0;return r?(this.eatContextual("of"),n="ForAwaitStatement"):(n=this.match(T._in)?"ForInStatement":"ForOfStatement",this.next()),e.left=t,e.right=this.parseExpression(),this.expect(T.parenR),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,n)},X.parseVar=function(e,t,r){for(e.declarations=[],e.kind=r.keyword;;){var n=this.startNode();if(this.parseVarHead(n),this.eat(T.eq)?n.init=this.parseMaybeAssign(t):r!==T._const||this.match(T._in)||this.isContextual("of")?"Identifier"===n.id.type||t&&(this.match(T._in)||this.isContextual("of"))?n.init=null:this.raise(this.state.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),e.declarations.push(this.finishNode(n,"VariableDeclarator")),!this.eat(T.comma))break}return e},X.parseVarHead=function(e){e.id=this.parseBindingAtom(),this.checkLVal(e.id,!0,void 0,"variable declaration")},X.parseFunction=function(e,t,r,n,i){var s=this.state.inMethod;return this.state.inMethod=!1,this.initFunction(e,n),this.match(T.star)&&(e.async&&!this.hasPlugin("asyncGenerators")?this.unexpected():(e.generator=!0,this.next())),!t||i||this.match(T.name)||this.match(T._yield)||this.unexpected(),(this.match(T.name)||this.match(T._yield))&&(e.id=this.parseBindingIdentifier()),this.parseFunctionParams(e),this.parseFunctionBody(e,r),this.state.inMethod=s,this.finishNode(e,t?"FunctionDeclaration":"FunctionExpression")},X.parseFunctionParams=function(e){this.expect(T.parenL),e.params=this.parseBindingList(T.parenR)},X.parseClass=function(e,t,r){return this.next(),this.takeDecorators(e),this.parseClassId(e,t,r),this.parseClassSuper(e),this.parseClassBody(e),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},X.isClassProperty=function(){return this.match(T.eq)||this.match(T.semi)||this.match(T.braceR)},X.isClassMethod=function(){return this.match(T.parenL)},X.isNonstaticConstructor=function(e){return!(e.computed||e.static||"constructor"!==e.key.name&&"constructor"!==e.key.value)},X.parseClassBody=function(e){var t=this.state.strict;this.state.strict=!0;var r=!1,n=!1,i=[],s=this.startNode();for(s.body=[],this.expect(T.braceL);!this.eat(T.braceR);)if(this.eat(T.semi))i.length>0&&this.raise(this.state.lastTokEnd,"Decorators must not be followed by a semicolon");else if(this.match(T.at))i.push(this.parseDecorator());else{var a=this.startNode();if(i.length&&(a.decorators=i,i=[]),a.static=!1,this.match(T.name)&&"static"===this.state.value){var o=this.parseIdentifier(!0);if(this.isClassMethod()){a.kind="method",a.computed=!1,a.key=o,this.parseClassMethod(s,a,!1,!1);continue}if(this.isClassProperty()){a.computed=!1,a.key=o,s.body.push(this.parseClassProperty(a));continue}a.static=!0}if(this.eat(T.star))a.kind="method",this.parsePropertyName(a),this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Constructor can't be a generator"),a.computed||!a.static||"prototype"!==a.key.name&&"prototype"!==a.key.value||this.raise(a.key.start,"Classes may not have static property named prototype"),this.parseClassMethod(s,a,!0,!1);else{var u=this.match(T.name),l=this.parsePropertyName(a);if(a.computed||!a.static||"prototype"!==a.key.name&&"prototype"!==a.key.value||this.raise(a.key.start,"Classes may not have static property named prototype"),this.isClassMethod())this.isNonstaticConstructor(a)?(n?this.raise(l.start,"Duplicate constructor in the same class"):a.decorators&&this.raise(a.start,"You can't attach decorators to a class constructor"),n=!0,a.kind="constructor"):a.kind="method",this.parseClassMethod(s,a,!1,!1);else if(this.isClassProperty())this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Classes may not have a non-static field named 'constructor'"),s.body.push(this.parseClassProperty(a));else if(u&&"async"===l.name&&!this.isLineTerminator()){var c=this.hasPlugin("asyncGenerators")&&this.eat(T.star);a.kind="method",this.parsePropertyName(a),this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Constructor can't be an async function"),this.parseClassMethod(s,a,c,!0)}else!u||"get"!==l.name&&"set"!==l.name||this.isLineTerminator()&&this.match(T.star)?this.hasPlugin("classConstructorCall")&&u&&"call"===l.name&&this.match(T.name)&&"constructor"===this.state.value?(r?this.raise(a.start,"Duplicate constructor call in the same class"):a.decorators&&this.raise(a.start,"You can't attach decorators to a class constructor"),r=!0,a.kind="constructorCall",this.parsePropertyName(a),this.parseClassMethod(s,a,!1,!1)):this.isLineTerminator()?(this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Classes may not have a non-static field named 'constructor'"),s.body.push(this.parseClassProperty(a))):this.unexpected():(a.kind=l.name,this.parsePropertyName(a),this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Constructor can't have get/set modifier"),this.parseClassMethod(s,a,!1,!1),this.checkGetterSetterParamCount(a))}}i.length&&this.raise(this.state.start,"You have trailing decorators with no method"),e.body=this.finishNode(s,"ClassBody"),this.state.strict=t},X.parseClassProperty=function(e){return this.state.inClassProperty=!0,this.match(T.eq)?(this.hasPlugin("classProperties")||this.unexpected(),this.next(),e.value=this.parseMaybeAssign()):e.value=null,this.semicolon(),this.state.inClassProperty=!1,this.finishNode(e,"ClassProperty")},X.parseClassMethod=function(e,t,r,n){this.parseMethod(t,r,n),e.body.push(this.finishNode(t,"ClassMethod"))},X.parseClassId=function(e,t,r){this.match(T.name)?e.id=this.parseIdentifier():r||!t?e.id=null:this.unexpected()},X.parseClassSuper=function(e){e.superClass=this.eat(T._extends)?this.parseExprSubscripts():null},X.parseExport=function(e){if(this.next(),this.match(T.star)){var t=this.startNode();if(this.next(),!this.hasPlugin("exportExtensions")||!this.eatContextual("as"))return this.parseExportFrom(e,!0),this.finishNode(e,"ExportAllDeclaration");t.exported=this.parseIdentifier(),e.specifiers=[this.finishNode(t,"ExportNamespaceSpecifier")],this.parseExportSpecifiersMaybe(e),this.parseExportFrom(e,!0)}else if(this.hasPlugin("exportExtensions")&&this.isExportDefaultSpecifier()){var r=this.startNode();if(r.exported=this.parseIdentifier(!0),e.specifiers=[this.finishNode(r,"ExportDefaultSpecifier")],this.match(T.comma)&&this.lookahead().type===T.star){this.expect(T.comma);var n=this.startNode();this.expect(T.star),this.expectContextual("as"),n.exported=this.parseIdentifier(),e.specifiers.push(this.finishNode(n,"ExportNamespaceSpecifier"))}else this.parseExportSpecifiersMaybe(e);this.parseExportFrom(e,!0)}else{if(this.eat(T._default)){var i=this.startNode(),s=!1;return this.eat(T._function)?i=this.parseFunction(i,!0,!1,!1,!0):this.match(T._class)?i=this.parseClass(i,!0,!0):(s=!0,i=this.parseMaybeAssign()),e.declaration=i,s&&this.semicolon(),this.checkExport(e,!0,!0),this.finishNode(e,"ExportDefaultDeclaration")}this.shouldParseExportDeclaration()?(e.specifiers=[],e.source=null,e.declaration=this.parseExportDeclaration(e)):(e.declaration=null,e.specifiers=this.parseExportSpecifiers(),this.parseExportFrom(e))}return this.checkExport(e,!0),this.finishNode(e,"ExportNamedDeclaration")},X.parseExportDeclaration=function(){return this.parseStatement(!0)},X.isExportDefaultSpecifier=function(){if(this.match(T.name))return"async"!==this.state.value;if(!this.match(T._default))return!1;var e=this.lookahead();return e.type===T.comma||e.type===T.name&&"from"===e.value},X.parseExportSpecifiersMaybe=function(e){this.eat(T.comma)&&(e.specifiers=e.specifiers.concat(this.parseExportSpecifiers()))},X.parseExportFrom=function(e,t){this.eatContextual("from")?(e.source=this.match(T.string)?this.parseExprAtom():this.unexpected(),this.checkExport(e)):t?this.unexpected():e.source=null,this.semicolon()},X.shouldParseExportDeclaration=function(){return"var"===this.state.type.keyword||"const"===this.state.type.keyword||"let"===this.state.type.keyword||"function"===this.state.type.keyword||"class"===this.state.type.keyword||this.isContextual("async")},X.checkExport=function(e,t,r){if(t)if(r)this.checkDuplicateExports(e,"default");else if(e.specifiers&&e.specifiers.length){var n=e.specifiers,i=Array.isArray(n),s=0;for(n=i?n:n[Symbol.iterator]();;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if((s=n.next()).done)break;a=s.value}var o=a;this.checkDuplicateExports(o,o.exported.name)}}else if(e.declaration)if("FunctionDeclaration"===e.declaration.type||"ClassDeclaration"===e.declaration.type)this.checkDuplicateExports(e,e.declaration.id.name);else if("VariableDeclaration"===e.declaration.type){var u=e.declaration.declarations,l=Array.isArray(u),c=0;for(u=l?u:u[Symbol.iterator]();;){var p;if(l){if(c>=u.length)break;p=u[c++]}else{if((c=u.next()).done)break;p=c.value}var h=p;this.checkDeclaration(h.id)}}if(this.state.decorators.length){var f=e.declaration&&("ClassDeclaration"===e.declaration.type||"ClassExpression"===e.declaration.type);e.declaration&&f||this.raise(e.start,"You can only use decorators on an export when exporting a class"),this.takeDecorators(e.declaration)}},X.checkDeclaration=function(e){if("ObjectPattern"===e.type){var t=e.properties,r=Array.isArray(t),n=0;for(t=r?t:t[Symbol.iterator]();;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if((n=t.next()).done)break;i=n.value}var s=i;this.checkDeclaration(s)}}else if("ArrayPattern"===e.type){var a=e.elements,o=Array.isArray(a),u=0;for(a=o?a:a[Symbol.iterator]();;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if((u=a.next()).done)break;l=u.value}var c=l;c&&this.checkDeclaration(c)}}else"ObjectProperty"===e.type?this.checkDeclaration(e.value):"RestElement"===e.type||"RestProperty"===e.type?this.checkDeclaration(e.argument):"Identifier"===e.type&&this.checkDuplicateExports(e,e.name)},X.checkDuplicateExports=function(e,t){this.state.exportedIdentifiers.indexOf(t)>-1&&this.raiseDuplicateExportError(e,t),this.state.exportedIdentifiers.push(t)},X.raiseDuplicateExportError=function(e,t){this.raise(e.start,"default"===t?"Only one default export allowed per module.":"`"+t+"` has already been exported. Exported identifiers must be unique.")},X.parseExportSpecifiers=function(){var e=[],t=!0,r=void 0;for(this.expect(T.braceL);!this.eat(T.braceR);){if(t)t=!1;else if(this.expect(T.comma),this.eat(T.braceR))break;var n=this.match(T._default);n&&!r&&(r=!0);var i=this.startNode();i.local=this.parseIdentifier(n),i.exported=this.eatContextual("as")?this.parseIdentifier(!0):i.local.__clone(),e.push(this.finishNode(i,"ExportSpecifier"))}return r&&!this.isContextual("from")&&this.unexpected(),e},X.parseImport=function(e){return this.eat(T._import),this.match(T.string)?(e.specifiers=[],e.source=this.parseExprAtom()):(e.specifiers=[],this.parseImportSpecifiers(e),this.expectContextual("from"),e.source=this.match(T.string)?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(e,"ImportDeclaration")},X.parseImportSpecifiers=function(e){var t=!0;if(this.match(T.name)){var r=this.state.start,n=this.state.startLoc;if(e.specifiers.push(this.parseImportSpecifierDefault(this.parseIdentifier(),r,n)),!this.eat(T.comma))return}if(this.match(T.star)){var i=this.startNode();return this.next(),this.expectContextual("as"),i.local=this.parseIdentifier(),this.checkLVal(i.local,!0,void 0,"import namespace specifier"),void e.specifiers.push(this.finishNode(i,"ImportNamespaceSpecifier"))}for(this.expect(T.braceL);!this.eat(T.braceR);){if(t)t=!1;else if(this.eat(T.colon)&&this.unexpected(null,"ES2015 named imports do not destructure. Use another statement for destructuring after the import."),this.expect(T.comma),this.eat(T.braceR))break;this.parseImportSpecifier(e)}},X.parseImportSpecifier=function(e){var t=this.startNode();t.imported=this.parseIdentifier(!0),this.eatContextual("as")?t.local=this.parseIdentifier():(this.checkReservedWord(t.imported.name,t.start,!0,!0),t.local=t.imported.__clone()),this.checkLVal(t.local,!0,void 0,"import specifier"),e.specifiers.push(this.finishNode(t,"ImportSpecifier"))},X.parseImportSpecifierDefault=function(e,t,r){var n=this.startNodeAt(t,r);return n.local=e,this.checkLVal(n.local,!0,void 0,"default import specifier"),this.finishNode(n,"ImportDefaultSpecifier")};var z=q.prototype;z.toAssignable=function(e,t,r){if(e)switch(e.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":break;case"ObjectExpression":e.type="ObjectPattern";var n=e.properties,i=Array.isArray(n),s=0;for(n=i?n:n[Symbol.iterator]();;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if((s=n.next()).done)break;a=s.value}var o=a;"ObjectMethod"===o.type?"get"===o.kind||"set"===o.kind?this.raise(o.key.start,"Object pattern can't contain getter or setter"):this.raise(o.key.start,"Object pattern can't contain methods"):this.toAssignable(o,t,"object destructuring pattern")}break;case"ObjectProperty":this.toAssignable(e.value,t,r);break;case"SpreadProperty":e.type="RestProperty";var u=e.argument;this.toAssignable(u,t,r);break;case"ArrayExpression":e.type="ArrayPattern",this.toAssignableList(e.elements,t,r);break;case"AssignmentExpression":"="===e.operator?(e.type="AssignmentPattern",delete e.operator):this.raise(e.left.end,"Only '=' operator can be used for specifying default value.");break;case"MemberExpression":if(!t)break;default:var l="Invalid left-hand side"+(r?" in "+r:"expression");this.raise(e.start,l)}return e},z.toAssignableList=function(e,t,r){var n=e.length;if(n){var i=e[n-1];if(i&&"RestElement"===i.type)--n;else if(i&&"SpreadElement"===i.type){i.type="RestElement";var s=i.argument;this.toAssignable(s,t,r),"Identifier"!==s.type&&"MemberExpression"!==s.type&&"ArrayPattern"!==s.type&&this.unexpected(s.start),--n}}for(var a=0;a=s.length)break;u=s[o++]}else{if((o=s.next()).done)break;u=o.value}var l=u;"ObjectProperty"===l.type&&(l=l.value),this.checkLVal(l,t,r,"object destructuring pattern")}break;case"ArrayPattern":var c=e.elements,p=Array.isArray(c),h=0;for(c=p?c:c[Symbol.iterator]();;){var f;if(p){if(h>=c.length)break;f=c[h++]}else{if((h=c.next()).done)break;f=h.value}var d=f;d&&this.checkLVal(d,t,r,"array destructuring pattern")}break;case"AssignmentPattern":this.checkLVal(e.left,t,r,"assignment pattern");break;case"RestProperty":this.checkLVal(e.argument,t,r,"rest property");break;case"RestElement":this.checkLVal(e.argument,t,r,"rest element");break;default:var m=(t?"Binding invalid":"Invalid")+" left-hand side"+(n?" in "+n:"expression");this.raise(e.start,m)}};var Y=q.prototype;Y.checkPropClash=function(e,t){if(!e.computed&&!e.kind){var r=e.key;"__proto__"===("Identifier"===r.type?r.name:String(r.value))&&(t.proto&&this.raise(r.start,"Redefinition of __proto__ property"),t.proto=!0)}},Y.getExpression=function(){this.nextToken();var e=this.parseExpression();return this.match(T.eof)||this.unexpected(),e},Y.parseExpression=function(e,t){var r=this.state.start,n=this.state.startLoc,i=this.parseMaybeAssign(e,t);if(this.match(T.comma)){var s=this.startNodeAt(r,n);for(s.expressions=[i];this.eat(T.comma);)s.expressions.push(this.parseMaybeAssign(e,t));return this.toReferencedList(s.expressions),this.finishNode(s,"SequenceExpression")}return i},Y.parseMaybeAssign=function(e,t,r,n){var i=this.state.start,s=this.state.startLoc;if(this.match(T._yield)&&this.state.inGenerator){var a=this.parseYield();return r&&(a=r.call(this,a,i,s)),a}var o=void 0;t?o=!1:(t={start:0},o=!0),(this.match(T.parenL)||this.match(T.name))&&(this.state.potentialArrowAt=this.state.start);var u=this.parseMaybeConditional(e,t,n);if(r&&(u=r.call(this,u,i,s)),this.state.type.isAssign){var l=this.startNodeAt(i,s);if(l.operator=this.state.value,l.left=this.match(T.eq)?this.toAssignable(u,void 0,"assignment expression"):u,t.start=0,this.checkLVal(u,void 0,void 0,"assignment expression"),u.extra&&u.extra.parenthesized){var c=void 0;"ObjectPattern"===u.type?c="`({a}) = 0` use `({a} = 0)`":"ArrayPattern"===u.type&&(c="`([a]) = 0` use `([a] = 0)`"),c&&this.raise(u.start,"You're trying to assign to a parenthesized expression, eg. instead of "+c)}return this.next(),l.right=this.parseMaybeAssign(e),this.finishNode(l,"AssignmentExpression")}return o&&t.start&&this.unexpected(t.start),u},Y.parseMaybeConditional=function(e,t,r){var n=this.state.start,i=this.state.startLoc,s=this.parseExprOps(e,t);return t&&t.start?s:this.parseConditional(s,e,n,i,r)},Y.parseConditional=function(e,t,r,n){if(this.eat(T.question)){var i=this.startNodeAt(r,n);return i.test=e,i.consequent=this.parseMaybeAssign(),this.expect(T.colon),i.alternate=this.parseMaybeAssign(t),this.finishNode(i,"ConditionalExpression")}return e},Y.parseExprOps=function(e,t){var r=this.state.start,n=this.state.startLoc,i=this.parseMaybeUnary(t);return t&&t.start?i:this.parseExprOp(i,r,n,-1,e)},Y.parseExprOp=function(e,t,r,n,i){var s=this.state.type.binop;if(!(null==s||i&&this.match(T._in))&&s>n){var a=this.startNodeAt(t,r);a.left=e,a.operator=this.state.value,"**"!==a.operator||"UnaryExpression"!==e.type||!e.extra||e.extra.parenthesizedArgument||e.extra.parenthesized||this.raise(e.argument.start,"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.");var o=this.state.type;this.next();var u=this.state.start,l=this.state.startLoc;return a.right=this.parseExprOp(this.parseMaybeUnary(),u,l,o.rightAssociative?s-1:s,i),this.finishNode(a,o===T.logicalOR||o===T.logicalAND?"LogicalExpression":"BinaryExpression"),this.parseExprOp(a,t,r,n,i)}return e},Y.parseMaybeUnary=function(e){if(this.state.type.prefix){var t=this.startNode(),r=this.match(T.incDec);t.operator=this.state.value,t.prefix=!0,this.next();var n=this.state.type;return t.argument=this.parseMaybeUnary(),this.addExtra(t,"parenthesizedArgument",!(n!==T.parenL||t.argument.extra&&t.argument.extra.parenthesized)),e&&e.start&&this.unexpected(e.start),r?this.checkLVal(t.argument,void 0,void 0,"prefix operation"):this.state.strict&&"delete"===t.operator&&"Identifier"===t.argument.type&&this.raise(t.start,"Deleting local variable in strict mode"),this.finishNode(t,r?"UpdateExpression":"UnaryExpression")}var i=this.state.start,s=this.state.startLoc,a=this.parseExprSubscripts(e);if(e&&e.start)return a;for(;this.state.type.postfix&&!this.canInsertSemicolon();){var o=this.startNodeAt(i,s);o.operator=this.state.value,o.prefix=!1,o.argument=a,this.checkLVal(a,void 0,void 0,"postfix operation"),this.next(),a=this.finishNode(o,"UpdateExpression")}return a},Y.parseExprSubscripts=function(e){var t=this.state.start,r=this.state.startLoc,n=this.state.potentialArrowAt,i=this.parseExprAtom(e);return"ArrowFunctionExpression"===i.type&&i.start===n?i:e&&e.start?i:this.parseSubscripts(i,t,r)},Y.parseSubscripts=function(e,t,r,n){for(;;){if(!n&&this.eat(T.doubleColon)){var i=this.startNodeAt(t,r);return i.object=e,i.callee=this.parseNoCallExpr(),this.parseSubscripts(this.finishNode(i,"BindExpression"),t,r,n)}if(this.eat(T.dot)){var s=this.startNodeAt(t,r);s.object=e,s.property=this.parseIdentifier(!0),s.computed=!1,e=this.finishNode(s,"MemberExpression")}else if(this.eat(T.bracketL)){var a=this.startNodeAt(t,r);a.object=e,a.property=this.parseExpression(),a.computed=!0,this.expect(T.bracketR),e=this.finishNode(a,"MemberExpression")}else if(!n&&this.match(T.parenL)){var o=this.state.potentialArrowAt===e.start&&"Identifier"===e.type&&"async"===e.name&&!this.canInsertSemicolon();this.next();var u=this.startNodeAt(t,r);if(u.callee=e,u.arguments=this.parseCallExpressionArguments(T.parenR,o),"Import"===u.callee.type&&1!==u.arguments.length&&this.raise(u.start,"import() requires exactly one argument"),e=this.finishNode(u,"CallExpression"),o&&this.shouldParseAsyncArrow())return this.parseAsyncArrowFromCallExpression(this.startNodeAt(t,r),u);this.toReferencedList(u.arguments)}else{if(!this.match(T.backQuote))return e;var l=this.startNodeAt(t,r);l.tag=e,l.quasi=this.parseTemplate(!0),e=this.finishNode(l,"TaggedTemplateExpression")}}},Y.parseCallExpressionArguments=function(e,t){for(var r=[],n=void 0,i=!0;!this.eat(e);){if(i)i=!1;else if(this.expect(T.comma),this.eat(e))break;this.match(T.parenL)&&!n&&(n=this.state.start),r.push(this.parseExprListItem(!1,t?{start:0}:void 0,t?{start:0}:void 0))}return t&&n&&this.shouldParseAsyncArrow()&&this.unexpected(),r},Y.shouldParseAsyncArrow=function(){return this.match(T.arrow)},Y.parseAsyncArrowFromCallExpression=function(e,t){return this.expect(T.arrow),this.parseArrowExpression(e,t.arguments,!0)},Y.parseNoCallExpr=function(){var e=this.state.start,t=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),e,t,!0)},Y.parseExprAtom=function(e){var t=this.state.potentialArrowAt===this.state.start,r=void 0;switch(this.state.type){case T._super:return this.state.inMethod||this.state.inClassProperty||this.options.allowSuperOutsideMethod||this.raise(this.state.start,"'super' outside of function or class"),r=this.startNode(),this.next(),this.match(T.parenL)||this.match(T.bracketL)||this.match(T.dot)||this.unexpected(),this.match(T.parenL)&&"constructor"!==this.state.inMethod&&!this.options.allowSuperOutsideMethod&&this.raise(r.start,"super() outside of class constructor"),this.finishNode(r,"Super");case T._import:return this.hasPlugin("dynamicImport")||this.unexpected(),r=this.startNode(),this.next(),this.match(T.parenL)||this.unexpected(null,T.parenL),this.finishNode(r,"Import");case T._this:return r=this.startNode(),this.next(),this.finishNode(r,"ThisExpression");case T._yield:this.state.inGenerator&&this.unexpected();case T.name:r=this.startNode();var n="await"===this.state.value&&this.state.inAsync,i=this.shouldAllowYieldIdentifier(),s=this.parseIdentifier(n||i);if("await"===s.name){if(this.state.inAsync||this.inModule)return this.parseAwait(r)}else{if("async"===s.name&&this.match(T._function)&&!this.canInsertSemicolon())return this.next(),this.parseFunction(r,!1,!1,!0);if(t&&"async"===s.name&&this.match(T.name)){var a=[this.parseIdentifier()];return this.expect(T.arrow),this.parseArrowExpression(r,a,!0)}}return t&&!this.canInsertSemicolon()&&this.eat(T.arrow)?this.parseArrowExpression(r,[s]):s;case T._do:if(this.hasPlugin("doExpressions")){var o=this.startNode();this.next();var u=this.state.inFunction,l=this.state.labels;return this.state.labels=[],this.state.inFunction=!1,o.body=this.parseBlock(!1,!0),this.state.inFunction=u,this.state.labels=l,this.finishNode(o,"DoExpression")}case T.regexp:var c=this.state.value;return r=this.parseLiteral(c.value,"RegExpLiteral"),r.pattern=c.pattern,r.flags=c.flags,r;case T.num:return this.parseLiteral(this.state.value,"NumericLiteral");case T.string:return this.parseLiteral(this.state.value,"StringLiteral");case T._null:return r=this.startNode(),this.next(),this.finishNode(r,"NullLiteral");case T._true:case T._false:return r=this.startNode(),r.value=this.match(T._true),this.next(),this.finishNode(r,"BooleanLiteral");case T.parenL:return this.parseParenAndDistinguishExpression(null,null,t);case T.bracketL:return r=this.startNode(),this.next(),r.elements=this.parseExprList(T.bracketR,!0,e),this.toReferencedList(r.elements),this.finishNode(r,"ArrayExpression");case T.braceL:return this.parseObj(!1,e);case T._function:return this.parseFunctionExpression();case T.at:this.parseDecorators();case T._class:return r=this.startNode(),this.takeDecorators(r),this.parseClass(r,!1);case T._new:return this.parseNew();case T.backQuote:return this.parseTemplate(!1);case T.doubleColon:r=this.startNode(),this.next(),r.object=null;var p=r.callee=this.parseNoCallExpr();if("MemberExpression"===p.type)return this.finishNode(r,"BindExpression");this.raise(p.start,"Binding should be performed on object property.");default:this.unexpected()}},Y.parseFunctionExpression=function(){var e=this.startNode(),t=this.parseIdentifier(!0);return this.state.inGenerator&&this.eat(T.dot)&&this.hasPlugin("functionSent")?this.parseMetaProperty(e,t,"sent"):this.parseFunction(e,!1)},Y.parseMetaProperty=function(e,t,r){return e.meta=t,e.property=this.parseIdentifier(!0),e.property.name!==r&&this.raise(e.property.start,"The only valid meta property for new is "+t.name+"."+r),this.finishNode(e,"MetaProperty")},Y.parseLiteral=function(e,t,r,n){r=r||this.state.start,n=n||this.state.startLoc;var i=this.startNodeAt(r,n);return this.addExtra(i,"rawValue",e),this.addExtra(i,"raw",this.input.slice(r,this.state.end)),i.value=e,this.next(),this.finishNode(i,t)},Y.parseParenExpression=function(){this.expect(T.parenL);var e=this.parseExpression();return this.expect(T.parenR),e},Y.parseParenAndDistinguishExpression=function(e,t,r){e=e||this.state.start,t=t||this.state.startLoc;var n=void 0;this.expect(T.parenL);for(var i=this.state.start,s=this.state.startLoc,a=[],o={start:0},u={start:0},l=!0,c=void 0,p=void 0;!this.match(T.parenR);){if(l)l=!1;else if(this.expect(T.comma,u.start||null),this.match(T.parenR)){p=this.state.start;break}if(this.match(T.ellipsis)){var h=this.state.start,f=this.state.startLoc;c=this.state.start,a.push(this.parseParenItem(this.parseRest(),h,f));break}a.push(this.parseMaybeAssign(!1,o,this.parseParenItem,u))}var d=this.state.start,m=this.state.startLoc;this.expect(T.parenR);var y=this.startNodeAt(e,t);if(r&&this.shouldParseArrow()&&(y=this.parseArrow(y))){var g=a,b=Array.isArray(g),v=0;for(g=b?g:g[Symbol.iterator]();;){var x;if(b){if(v>=g.length)break;x=g[v++]}else{if((v=g.next()).done)break;x=v.value}var E=x;E.extra&&E.extra.parenthesized&&this.unexpected(E.extra.parenStart)}return this.parseArrowExpression(y,a)}return a.length||this.unexpected(this.state.lastTokStart),p&&this.unexpected(p),c&&this.unexpected(c),o.start&&this.unexpected(o.start),u.start&&this.unexpected(u.start),a.length>1?((n=this.startNodeAt(i,s)).expressions=a,this.toReferencedList(n.expressions),this.finishNodeAt(n,"SequenceExpression",d,m)):n=a[0],this.addExtra(n,"parenthesized",!0),this.addExtra(n,"parenStart",e),n},Y.shouldParseArrow=function(){return!this.canInsertSemicolon()},Y.parseArrow=function(e){if(this.eat(T.arrow))return e},Y.parseParenItem=function(e){return e},Y.parseNew=function(){var e=this.startNode(),t=this.parseIdentifier(!0);if(this.eat(T.dot)){var r=this.parseMetaProperty(e,t,"target");return this.state.inFunction||this.raise(r.property.start,"new.target can only be used in functions"),r}return e.callee=this.parseNoCallExpr(),this.eat(T.parenL)?(e.arguments=this.parseExprList(T.parenR),this.toReferencedList(e.arguments)):e.arguments=[],this.finishNode(e,"NewExpression")},Y.parseTemplateElement=function(e){var t=this.startNode();return null===this.state.value&&(e&&this.hasPlugin("templateInvalidEscapes")?this.state.invalidTemplateEscapePosition=null:this.raise(this.state.invalidTemplateEscapePosition,"Invalid escape sequence in template")),t.value={raw:this.input.slice(this.state.start,this.state.end).replace(/\r\n?/g,"\n"),cooked:this.state.value},this.next(),t.tail=this.match(T.backQuote),this.finishNode(t,"TemplateElement")},Y.parseTemplate=function(e){var t=this.startNode();this.next(),t.expressions=[];var r=this.parseTemplateElement(e);for(t.quasis=[r];!r.tail;)this.expect(T.dollarBraceL),t.expressions.push(this.parseExpression()),this.expect(T.braceR),t.quasis.push(r=this.parseTemplateElement(e));return this.next(),this.finishNode(t,"TemplateLiteral")},Y.parseObj=function(e,t){var r=[],n=Object.create(null),i=!0,s=this.startNode();s.properties=[],this.next();for(var a=null;!this.eat(T.braceR);){if(i)i=!1;else if(this.expect(T.comma),this.eat(T.braceR))break;for(;this.match(T.at);)r.push(this.parseDecorator());var o=this.startNode(),u=!1,l=!1,c=void 0,p=void 0;if(r.length&&(o.decorators=r,r=[]),this.hasPlugin("objectRestSpread")&&this.match(T.ellipsis)){if(o=this.parseSpread(e?{start:0}:void 0),o.type=e?"RestProperty":"SpreadProperty",e&&this.toAssignable(o.argument,!0,"object pattern"),s.properties.push(o),!e)continue;var h=this.state.start;if(null===a){if(this.eat(T.braceR))break;if(this.match(T.comma)&&this.lookahead().type===T.braceR)continue;a=h;continue}this.unexpected(a,"Cannot have multiple rest elements when destructuring")}if(o.method=!1,o.shorthand=!1,(e||t)&&(c=this.state.start,p=this.state.startLoc),e||(u=this.eat(T.star)),!e&&this.isContextual("async")){u&&this.unexpected();var f=this.parseIdentifier();this.match(T.colon)||this.match(T.parenL)||this.match(T.braceR)||this.match(T.eq)||this.match(T.comma)?(o.key=f,o.computed=!1):(l=!0,this.hasPlugin("asyncGenerators")&&(u=this.eat(T.star)),this.parsePropertyName(o))}else this.parsePropertyName(o);this.parseObjPropValue(o,c,p,u,l,e,t),this.checkPropClash(o,n),o.shorthand&&this.addExtra(o,"shorthand",!0),s.properties.push(o)}return null!==a&&this.unexpected(a,"The rest element has to be the last element when destructuring"),r.length&&this.raise(this.state.start,"You have trailing decorators with no property"),this.finishNode(s,e?"ObjectPattern":"ObjectExpression")},Y.isGetterOrSetterMethod=function(e,t){return!t&&!e.computed&&"Identifier"===e.key.type&&("get"===e.key.name||"set"===e.key.name)&&(this.match(T.string)||this.match(T.num)||this.match(T.bracketL)||this.match(T.name)||this.state.type.keyword)},Y.checkGetterSetterParamCount=function(e){var t="get"===e.kind?0:1;if(e.params.length!==t){var r=e.start;"get"===e.kind?this.raise(r,"getter should have no params"):this.raise(r,"setter should have exactly one param")}},Y.parseObjectMethod=function(e,t,r,n){return r||t||this.match(T.parenL)?(n&&this.unexpected(),e.kind="method",e.method=!0,this.parseMethod(e,t,r),this.finishNode(e,"ObjectMethod")):this.isGetterOrSetterMethod(e,n)?((t||r)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),this.parseMethod(e),this.checkGetterSetterParamCount(e),this.finishNode(e,"ObjectMethod")):void 0},Y.parseObjectProperty=function(e,t,r,n,i){return this.eat(T.colon)?(e.value=n?this.parseMaybeDefault(this.state.start,this.state.startLoc):this.parseMaybeAssign(!1,i),this.finishNode(e,"ObjectProperty")):e.computed||"Identifier"!==e.key.type?void 0:(this.checkReservedWord(e.key.name,e.key.start,!0,!0),n?e.value=this.parseMaybeDefault(t,r,e.key.__clone()):this.match(T.eq)&&i?(i.start||(i.start=this.state.start),e.value=this.parseMaybeDefault(t,r,e.key.__clone())):e.value=e.key.__clone(),e.shorthand=!0,this.finishNode(e,"ObjectProperty"))},Y.parseObjPropValue=function(e,t,r,n,i,s,a){var o=this.parseObjectMethod(e,n,i,s)||this.parseObjectProperty(e,t,r,s,a);return o||this.unexpected(),o},Y.parsePropertyName=function(e){if(this.eat(T.bracketL))e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(T.bracketR);else{e.computed=!1;var t=this.state.inPropertyName;this.state.inPropertyName=!0,e.key=this.match(T.num)||this.match(T.string)?this.parseExprAtom():this.parseIdentifier(!0),this.state.inPropertyName=t}return e.key},Y.initFunction=function(e,t){e.id=null,e.generator=!1,e.expression=!1,e.async=!!t},Y.parseMethod=function(e,t,r){var n=this.state.inMethod;return this.state.inMethod=e.kind||!0,this.initFunction(e,r),this.expect(T.parenL),e.params=this.parseBindingList(T.parenR),e.generator=!!t,this.parseFunctionBody(e),this.state.inMethod=n,e},Y.parseArrowExpression=function(e,t,r){return this.initFunction(e,r),e.params=this.toAssignableList(t,!0,"arrow function parameters"),this.parseFunctionBody(e,!0),this.finishNode(e,"ArrowFunctionExpression")},Y.isStrictBody=function(e,t){if(!t&&e.body.directives.length){var r=e.body.directives,n=Array.isArray(r),i=0;for(r=n?r:r[Symbol.iterator]();;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if((i=r.next()).done)break;s=i.value}if("use strict"===s.value.value)return!0}}return!1},Y.parseFunctionBody=function(e,t){var r=t&&!this.match(T.braceL),n=this.state.inAsync;if(this.state.inAsync=e.async,r)e.body=this.parseMaybeAssign(),e.expression=!0;else{var i=this.state.inFunction,s=this.state.inGenerator,a=this.state.labels;this.state.inFunction=!0,this.state.inGenerator=e.generator,this.state.labels=[],e.body=this.parseBlock(!0),e.expression=!1,this.state.inFunction=i,this.state.inGenerator=s,this.state.labels=a}this.state.inAsync=n;var o=this.isStrictBody(e,r),u=this.state.strict||t||o;if(o&&e.id&&"Identifier"===e.id.type&&"yield"===e.id.name&&this.raise(e.id.start,"Binding yield in strict mode"),u){var l=Object.create(null),c=this.state.strict;o&&(this.state.strict=!0),e.id&&this.checkLVal(e.id,!0,void 0,"function name");var p=e.params,h=Array.isArray(p),f=0;for(p=h?p:p[Symbol.iterator]();;){var d;if(h){if(f>=p.length)break;d=p[f++]}else{if((f=p.next()).done)break;d=f.value}var m=d;o&&"Identifier"!==m.type&&this.raise(m.start,"Non-simple parameter in strict mode"),this.checkLVal(m,!0,l,"function parameter list")}this.state.strict=c}},Y.parseExprList=function(e,t,r){for(var n=[],i=!0;!this.eat(e);){if(i)i=!1;else if(this.expect(T.comma),this.eat(e))break;n.push(this.parseExprListItem(t,r))}return n},Y.parseExprListItem=function(e,t,r){return e&&this.match(T.comma)?null:this.match(T.ellipsis)?this.parseSpread(t):this.parseMaybeAssign(!1,t,this.parseParenItem,r)},Y.parseIdentifier=function(e){var t=this.startNode();return e||this.checkReservedWord(this.state.value,this.state.start,!!this.state.type.keyword,!1),this.match(T.name)?t.name=this.state.value:this.state.type.keyword?t.name=this.state.type.keyword:this.unexpected(),!e&&"await"===t.name&&this.state.inAsync&&this.raise(t.start,"invalid use of await inside of an async function"),t.loc.identifierName=t.name,this.next(),this.finishNode(t,"Identifier")},Y.checkReservedWord=function(e,t,r,n){(this.isReservedWord(e)||r&&this.isKeyword(e))&&this.raise(t,e+" is a reserved word"),this.state.strict&&(f.strict(e)||n&&f.strictBind(e))&&this.raise(t,e+" is a reserved word in strict mode")},Y.parseAwait=function(e){return this.state.inAsync||this.unexpected(),this.match(T.star)&&this.raise(e.start,"await* has been removed from the async functions proposal. Use Promise.all() instead."),e.argument=this.parseMaybeUnary(),this.finishNode(e,"AwaitExpression")},Y.parseYield=function(){var e=this.startNode();return this.next(),this.match(T.semi)||this.canInsertSemicolon()||!this.match(T.star)&&!this.state.type.startsExpr?(e.delegate=!1,e.argument=null):(e.delegate=this.eat(T.star),e.argument=this.parseMaybeAssign()),this.finishNode(e,"YieldExpression")};var H=q.prototype,$=["leadingComments","trailingComments","innerComments"],Q=function(){function e(t,r,n){D(this,e),this.type="",this.start=t,this.end=0,this.loc=new M(r),n&&(this.loc.filename=n)}return e.prototype.__clone=function(){var t=new e;for(var r in this)$.indexOf(r)<0&&(t[r]=this[r]);return t},e}();H.startNode=function(){return new Q(this.state.start,this.state.startLoc,this.filename)},H.startNodeAt=function(e,t){return new Q(e,t,this.filename)},H.finishNode=function(e,t){return l.call(this,e,t,this.state.lastTokEnd,this.state.lastTokEndLoc)},H.finishNodeAt=function(e,t,r,n){return l.call(this,e,t,r,n)};q.prototype.raise=function(e,t){var r=function(e,t){for(var r=1,n=0;;){O.lastIndex=n;var i=O.exec(e);if(!(i&&i.index0)){var t=this.state.commentStack,r=void 0,n=void 0,i=void 0,s=void 0,a=void 0;if(this.state.trailingComments.length>0)this.state.trailingComments[0].start>=e.end?(i=this.state.trailingComments,this.state.trailingComments=[]):this.state.trailingComments.length=0;else{var o=c(t);t.length>0&&o.trailingComments&&o.trailingComments[0].start>=e.end&&(i=o.trailingComments,o.trailingComments=null)}for(t.length>0&&c(t).start>=e.start&&(r=t.pop());t.length>0&&c(t).start>=e.start;)n=t.pop();if(!n&&r&&(n=r),r&&this.state.leadingComments.length>0){var u=c(this.state.leadingComments);if("ObjectProperty"===r.type){if(u.start>=e.start&&this.state.commentPreviousNode){for(a=0;a0&&(r.trailingComments=this.state.leadingComments,this.state.leadingComments=[])}}else if("CallExpression"===e.type&&e.arguments&&e.arguments.length){var l=c(e.arguments);l&&u.start>=l.start&&u.end<=e.end&&this.state.commentPreviousNode&&this.state.leadingComments.length>0&&(l.trailingComments=this.state.leadingComments,this.state.leadingComments=[])}}if(n){if(n.leadingComments)if(n!==e&&c(n.leadingComments).end<=e.start)e.leadingComments=n.leadingComments,n.leadingComments=null;else for(s=n.leadingComments.length-2;s>=0;--s)if(n.leadingComments[s].end<=e.start){e.leadingComments=n.leadingComments.splice(0,s+1);break}}else if(this.state.leadingComments.length>0)if(c(this.state.leadingComments).end<=e.start){if(this.state.commentPreviousNode)for(a=0;a0&&(e.leadingComments=this.state.leadingComments,this.state.leadingComments=[])}else{for(s=0;se.start);s++);e.leadingComments=this.state.leadingComments.slice(0,s),0===e.leadingComments.length&&(e.leadingComments=null),0===(i=this.state.leadingComments.slice(s)).length&&(i=null)}this.state.commentPreviousNode=e,i&&(i.length&&i[0].start>=e.start&&c(i).end<=e.end?e.innerComments=i:e.trailingComments=i),t.push(e)}};var ee=q.prototype;ee.estreeParseRegExpLiteral=function(e){var t=e.pattern,r=e.flags,n=null;try{n=new RegExp(t,r)}catch(e){}var i=this.estreeParseLiteral(n);return i.regex={pattern:t,flags:r},i},ee.estreeParseLiteral=function(e){return this.parseLiteral(e,"Literal")},ee.directiveToStmt=function(e){var t=e.value,r=this.startNodeAt(e.start,e.loc.start),n=this.startNodeAt(t.start,t.loc.start);return n.value=t.value,n.raw=t.extra.raw,r.expression=this.finishNodeAt(n,"Literal",t.end,t.loc.end),r.directive=t.extra.raw.slice(1,-1),this.finishNodeAt(r,"ExpressionStatement",e.end,e.loc.end)};var te=["any","mixed","empty","bool","boolean","number","string","void","null"],re=q.prototype;re.flowParseTypeInitialiser=function(e){var t=this.state.inType;this.state.inType=!0,this.expect(e||T.colon);var r=this.flowParseType();return this.state.inType=t,r},re.flowParsePredicate=function(){var e=this.startNode(),t=this.state.startLoc,r=this.state.start;this.expect(T.modulo);var n=this.state.startLoc;return this.expectContextual("checks"),t.line===n.line&&t.column===n.column-1||this.raise(r,"Spaces between ´%´ and ´checks´ are not allowed here."),this.eat(T.parenL)?(e.expression=this.parseExpression(),this.expect(T.parenR),this.finishNode(e,"DeclaredPredicate")):this.finishNode(e,"InferredPredicate")},re.flowParseTypeAndPredicateInitialiser=function(){var e=this.state.inType;this.state.inType=!0,this.expect(T.colon);var t=null,r=null;return this.match(T.modulo)?(this.state.inType=e,r=this.flowParsePredicate()):(t=this.flowParseType(),this.state.inType=e,this.match(T.modulo)&&(r=this.flowParsePredicate())),[t,r]},re.flowParseDeclareClass=function(e){return this.next(),this.flowParseInterfaceish(e,!0),this.finishNode(e,"DeclareClass")},re.flowParseDeclareFunction=function(e){this.next();var t=e.id=this.parseIdentifier(),r=this.startNode(),n=this.startNode();this.isRelational("<")?r.typeParameters=this.flowParseTypeParameterDeclaration():r.typeParameters=null,this.expect(T.parenL);var i=this.flowParseFunctionTypeParams();r.params=i.params,r.rest=i.rest,this.expect(T.parenR);var s=null,a=this.flowParseTypeAndPredicateInitialiser();return r.returnType=a[0],s=a[1],n.typeAnnotation=this.finishNode(r,"FunctionTypeAnnotation"),n.predicate=s,t.typeAnnotation=this.finishNode(n,"TypeAnnotation"),this.finishNode(t,t.type),this.semicolon(),this.finishNode(e,"DeclareFunction")},re.flowParseDeclare=function(e){return this.match(T._class)?this.flowParseDeclareClass(e):this.match(T._function)?this.flowParseDeclareFunction(e):this.match(T._var)?this.flowParseDeclareVariable(e):this.isContextual("module")?this.lookahead().type===T.dot?this.flowParseDeclareModuleExports(e):this.flowParseDeclareModule(e):this.isContextual("type")?this.flowParseDeclareTypeAlias(e):this.isContextual("opaque")?this.flowParseDeclareOpaqueType(e):this.isContextual("interface")?this.flowParseDeclareInterface(e):this.match(T._export)?this.flowParseDeclareExportDeclaration(e):void this.unexpected()},re.flowParseDeclareExportDeclaration=function(e){if(this.expect(T._export),this.isContextual("opaque"))return e.declaration=this.flowParseDeclare(this.startNode()),e.default=!1,this.finishNode(e,"DeclareExportDeclaration");throw this.unexpected()},re.flowParseDeclareVariable=function(e){return this.next(),e.id=this.flowParseTypeAnnotatableIdentifier(),this.semicolon(),this.finishNode(e,"DeclareVariable")},re.flowParseDeclareModule=function(e){this.next(),this.match(T.string)?e.id=this.parseExprAtom():e.id=this.parseIdentifier();var t=e.body=this.startNode(),r=t.body=[];for(this.expect(T.braceL);!this.match(T.braceR);){var n=this.startNode();if(this.match(T._import)){var i=this.lookahead();"type"!==i.value&&"typeof"!==i.value&&this.unexpected(null,"Imports within a `declare module` body must always be `import type` or `import typeof`"),this.parseImport(n)}else this.expectContextual("declare","Only declares and type imports are allowed inside declare module"),n=this.flowParseDeclare(n,!0);r.push(n)}return this.expect(T.braceR),this.finishNode(t,"BlockStatement"),this.finishNode(e,"DeclareModule")},re.flowParseDeclareModuleExports=function(e){return this.expectContextual("module"),this.expect(T.dot),this.expectContextual("exports"),e.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(e,"DeclareModuleExports")},re.flowParseDeclareTypeAlias=function(e){return this.next(),this.flowParseTypeAlias(e),this.finishNode(e,"DeclareTypeAlias")},re.flowParseDeclareOpaqueType=function(e){return this.next(),this.flowParseOpaqueType(e,!0),this.finishNode(e,"DeclareOpaqueType")},re.flowParseDeclareInterface=function(e){return this.next(),this.flowParseInterfaceish(e),this.finishNode(e,"DeclareInterface")},re.flowParseInterfaceish=function(e){if(e.id=this.parseIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.extends=[],e.mixins=[],this.eat(T._extends))do{e.extends.push(this.flowParseInterfaceExtends())}while(this.eat(T.comma));if(this.isContextual("mixins")){this.next();do{e.mixins.push(this.flowParseInterfaceExtends())}while(this.eat(T.comma))}e.body=this.flowParseObjectType(!0,!1,!1)},re.flowParseInterfaceExtends=function(){var e=this.startNode();return e.id=this.flowParseQualifiedTypeIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterInstantiation():e.typeParameters=null,this.finishNode(e,"InterfaceExtends")},re.flowParseInterface=function(e){return this.flowParseInterfaceish(e,!1),this.finishNode(e,"InterfaceDeclaration")},re.flowParseRestrictedIdentifier=function(e){return te.indexOf(this.state.value)>-1&&this.raise(this.state.start,"Cannot overwrite primitive type "+this.state.value),this.parseIdentifier(e)},re.flowParseTypeAlias=function(e){return e.id=this.flowParseRestrictedIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.right=this.flowParseTypeInitialiser(T.eq),this.semicolon(),this.finishNode(e,"TypeAlias")},re.flowParseOpaqueType=function(e,t){return this.expectContextual("type"),e.id=this.flowParseRestrictedIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.supertype=null,this.match(T.colon)&&(e.supertype=this.flowParseTypeInitialiser(T.colon)),e.impltype=null,t||(e.impltype=this.flowParseTypeInitialiser(T.eq)),this.semicolon(),this.finishNode(e,"OpaqueType")},re.flowParseTypeParameter=function(){var e=this.startNode(),t=this.flowParseVariance(),r=this.flowParseTypeAnnotatableIdentifier();return e.name=r.name,e.variance=t,e.bound=r.typeAnnotation,this.match(T.eq)&&(this.eat(T.eq),e.default=this.flowParseType()),this.finishNode(e,"TypeParameter")},re.flowParseTypeParameterDeclaration=function(){var e=this.state.inType,t=this.startNode();t.params=[],this.state.inType=!0,this.isRelational("<")||this.match(T.jsxTagStart)?this.next():this.unexpected();do{t.params.push(this.flowParseTypeParameter()),this.isRelational(">")||this.expect(T.comma)}while(!this.isRelational(">"));return this.expectRelational(">"),this.state.inType=e,this.finishNode(t,"TypeParameterDeclaration")},re.flowParseTypeParameterInstantiation=function(){var e=this.startNode(),t=this.state.inType;for(e.params=[],this.state.inType=!0,this.expectRelational("<");!this.isRelational(">");)e.params.push(this.flowParseType()),this.isRelational(">")||this.expect(T.comma);return this.expectRelational(">"),this.state.inType=t,this.finishNode(e,"TypeParameterInstantiation")},re.flowParseObjectPropertyKey=function(){return this.match(T.num)||this.match(T.string)?this.parseExprAtom():this.parseIdentifier(!0)},re.flowParseObjectTypeIndexer=function(e,t,r){return e.static=t,this.expect(T.bracketL),this.lookahead().type===T.colon?(e.id=this.flowParseObjectPropertyKey(),e.key=this.flowParseTypeInitialiser()):(e.id=null,e.key=this.flowParseType()),this.expect(T.bracketR),e.value=this.flowParseTypeInitialiser(),e.variance=r,this.flowObjectTypeSemicolon(),this.finishNode(e,"ObjectTypeIndexer")},re.flowParseObjectTypeMethodish=function(e){for(e.params=[],e.rest=null,e.typeParameters=null,this.isRelational("<")&&(e.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(T.parenL);!this.match(T.parenR)&&!this.match(T.ellipsis);)e.params.push(this.flowParseFunctionTypeParam()),this.match(T.parenR)||this.expect(T.comma);return this.eat(T.ellipsis)&&(e.rest=this.flowParseFunctionTypeParam()),this.expect(T.parenR),e.returnType=this.flowParseTypeInitialiser(),this.finishNode(e,"FunctionTypeAnnotation")},re.flowParseObjectTypeMethod=function(e,t,r,n){var i=this.startNodeAt(e,t);return i.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e,t)),i.static=r,i.key=n,i.optional=!1,this.flowObjectTypeSemicolon(),this.finishNode(i,"ObjectTypeProperty")},re.flowParseObjectTypeCallProperty=function(e,t){var r=this.startNode();return e.static=t,e.value=this.flowParseObjectTypeMethodish(r),this.flowObjectTypeSemicolon(),this.finishNode(e,"ObjectTypeCallProperty")},re.flowParseObjectType=function(e,t,r){var n=this.state.inType;this.state.inType=!0;var i=this.startNode(),s=void 0,a=void 0,o=!1;i.callProperties=[],i.properties=[],i.indexers=[];var u=void 0,l=void 0;for(t&&this.match(T.braceBarL)?(this.expect(T.braceBarL),u=T.braceBarR,l=!0):(this.expect(T.braceL),u=T.braceR,l=!1),i.exact=l;!this.match(u);){var c=!1,p=this.state.start,h=this.state.startLoc;s=this.startNode(),e&&this.isContextual("static")&&this.lookahead().type!==T.colon&&(this.next(),o=!0);var f=this.state.start,d=this.flowParseVariance();this.match(T.bracketL)?i.indexers.push(this.flowParseObjectTypeIndexer(s,o,d)):this.match(T.parenL)||this.isRelational("<")?(d&&this.unexpected(f),i.callProperties.push(this.flowParseObjectTypeCallProperty(s,o))):this.match(T.ellipsis)?(r||this.unexpected(null,"Spread operator cannot appear in class or interface definitions"),d&&this.unexpected(d.start,"Spread properties cannot have variance"),this.expect(T.ellipsis),s.argument=this.flowParseType(),this.flowObjectTypeSemicolon(),i.properties.push(this.finishNode(s,"ObjectTypeSpreadProperty"))):(a=this.flowParseObjectPropertyKey(),this.isRelational("<")||this.match(T.parenL)?(d&&this.unexpected(d.start),i.properties.push(this.flowParseObjectTypeMethod(p,h,o,a))):(this.eat(T.question)&&(c=!0),s.key=a,s.value=this.flowParseTypeInitialiser(),s.optional=c,s.static=o,s.variance=d,this.flowObjectTypeSemicolon(),i.properties.push(this.finishNode(s,"ObjectTypeProperty")))),o=!1}this.expect(u);var m=this.finishNode(i,"ObjectTypeAnnotation");return this.state.inType=n,m},re.flowObjectTypeSemicolon=function(){this.eat(T.semi)||this.eat(T.comma)||this.match(T.braceR)||this.match(T.braceBarR)||this.unexpected()},re.flowParseQualifiedTypeIdentifier=function(e,t,r){e=e||this.state.start,t=t||this.state.startLoc;for(var n=r||this.parseIdentifier();this.eat(T.dot);){var i=this.startNodeAt(e,t);i.qualification=n,i.id=this.parseIdentifier(),n=this.finishNode(i,"QualifiedTypeIdentifier")}return n},re.flowParseGenericType=function(e,t,r){var n=this.startNodeAt(e,t);return n.typeParameters=null,n.id=this.flowParseQualifiedTypeIdentifier(e,t,r),this.isRelational("<")&&(n.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(n,"GenericTypeAnnotation")},re.flowParseTypeofType=function(){var e=this.startNode();return this.expect(T._typeof),e.argument=this.flowParsePrimaryType(),this.finishNode(e,"TypeofTypeAnnotation")},re.flowParseTupleType=function(){var e=this.startNode();for(e.types=[],this.expect(T.bracketL);this.state.pos0&&void 0!==arguments[0]?arguments[0]:[],rest:null};!this.match(T.parenR)&&!this.match(T.ellipsis);)e.params.push(this.flowParseFunctionTypeParam()),this.match(T.parenR)||this.expect(T.comma);return this.eat(T.ellipsis)&&(e.rest=this.flowParseFunctionTypeParam()),e},re.flowIdentToTypeAnnotation=function(e,t,r,n){switch(n.name){case"any":return this.finishNode(r,"AnyTypeAnnotation");case"void":return this.finishNode(r,"VoidTypeAnnotation");case"bool":case"boolean":return this.finishNode(r,"BooleanTypeAnnotation");case"mixed":return this.finishNode(r,"MixedTypeAnnotation");case"empty":return this.finishNode(r,"EmptyTypeAnnotation");case"number":return this.finishNode(r,"NumberTypeAnnotation");case"string":return this.finishNode(r,"StringTypeAnnotation");default:return this.flowParseGenericType(e,t,n)}},re.flowParsePrimaryType=function(){var e=this.state.start,t=this.state.startLoc,r=this.startNode(),n=void 0,i=void 0,s=!1,a=this.state.noAnonFunctionType;switch(this.state.type){case T.name:return this.flowIdentToTypeAnnotation(e,t,r,this.parseIdentifier());case T.braceL:return this.flowParseObjectType(!1,!1,!0);case T.braceBarL:return this.flowParseObjectType(!1,!0,!0);case T.bracketL:return this.flowParseTupleType();case T.relational:if("<"===this.state.value)return r.typeParameters=this.flowParseTypeParameterDeclaration(),this.expect(T.parenL),n=this.flowParseFunctionTypeParams(),r.params=n.params,r.rest=n.rest,this.expect(T.parenR),this.expect(T.arrow),r.returnType=this.flowParseType(),this.finishNode(r,"FunctionTypeAnnotation");break;case T.parenL:if(this.next(),!this.match(T.parenR)&&!this.match(T.ellipsis))if(this.match(T.name)){var o=this.lookahead().type;s=o!==T.question&&o!==T.colon}else s=!0;if(s){if(this.state.noAnonFunctionType=!1,i=this.flowParseType(),this.state.noAnonFunctionType=a,this.state.noAnonFunctionType||!(this.match(T.comma)||this.match(T.parenR)&&this.lookahead().type===T.arrow))return this.expect(T.parenR),i;this.eat(T.comma)}return n=i?this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(i)]):this.flowParseFunctionTypeParams(),r.params=n.params,r.rest=n.rest,this.expect(T.parenR),this.expect(T.arrow),r.returnType=this.flowParseType(),r.typeParameters=null,this.finishNode(r,"FunctionTypeAnnotation");case T.string:return this.parseLiteral(this.state.value,"StringLiteralTypeAnnotation");case T._true:case T._false:return r.value=this.match(T._true),this.next(),this.finishNode(r,"BooleanLiteralTypeAnnotation");case T.plusMin:if("-"===this.state.value)return this.next(),this.match(T.num)||this.unexpected(null,"Unexpected token, expected number"),this.parseLiteral(-this.state.value,"NumericLiteralTypeAnnotation",r.start,r.loc.start);this.unexpected();case T.num:return this.parseLiteral(this.state.value,"NumericLiteralTypeAnnotation");case T._null:return r.value=this.match(T._null),this.next(),this.finishNode(r,"NullLiteralTypeAnnotation");case T._this:return r.value=this.match(T._this),this.next(),this.finishNode(r,"ThisTypeAnnotation");case T.star:return this.next(),this.finishNode(r,"ExistentialTypeParam");default:if("typeof"===this.state.type.keyword)return this.flowParseTypeofType()}this.unexpected()},re.flowParsePostfixType=function(){for(var e=this.state.start,t=this.state.startLoc,r=this.flowParsePrimaryType();!this.canInsertSemicolon()&&this.match(T.bracketL);){var n=this.startNodeAt(e,t);n.elementType=r,this.expect(T.bracketL),this.expect(T.bracketR),r=this.finishNode(n,"ArrayTypeAnnotation")}return r},re.flowParsePrefixType=function(){var e=this.startNode();return this.eat(T.question)?(e.typeAnnotation=this.flowParsePrefixType(),this.finishNode(e,"NullableTypeAnnotation")):this.flowParsePostfixType()},re.flowParseAnonFunctionWithoutParens=function(){var e=this.flowParsePrefixType();if(!this.state.noAnonFunctionType&&this.eat(T.arrow)){var t=this.startNodeAt(e.start,e.loc.start);return t.params=[this.reinterpretTypeAsFunctionTypeParam(e)],t.rest=null,t.returnType=this.flowParseType(),t.typeParameters=null,this.finishNode(t,"FunctionTypeAnnotation")}return e},re.flowParseIntersectionType=function(){var e=this.startNode();this.eat(T.bitwiseAND);var t=this.flowParseAnonFunctionWithoutParens();for(e.types=[t];this.eat(T.bitwiseAND);)e.types.push(this.flowParseAnonFunctionWithoutParens());return 1===e.types.length?t:this.finishNode(e,"IntersectionTypeAnnotation")},re.flowParseUnionType=function(){var e=this.startNode();this.eat(T.bitwiseOR);var t=this.flowParseIntersectionType();for(e.types=[t];this.eat(T.bitwiseOR);)e.types.push(this.flowParseIntersectionType());return 1===e.types.length?t:this.finishNode(e,"UnionTypeAnnotation")},re.flowParseType=function(){var e=this.state.inType;this.state.inType=!0;var t=this.flowParseUnionType();return this.state.inType=e,t},re.flowParseTypeAnnotation=function(){var e=this.startNode();return e.typeAnnotation=this.flowParseTypeInitialiser(),this.finishNode(e,"TypeAnnotation")},re.flowParseTypeAndPredicateAnnotation=function(){var e=this.startNode(),t=this.flowParseTypeAndPredicateInitialiser();return e.typeAnnotation=t[0],e.predicate=t[1],this.finishNode(e,"TypeAnnotation")},re.flowParseTypeAnnotatableIdentifier=function(){var e=this.flowParseRestrictedIdentifier();return this.match(T.colon)&&(e.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(e,e.type)),e},re.typeCastToParameter=function(e){return e.expression.typeAnnotation=e.typeAnnotation,this.finishNodeAt(e.expression,e.expression.type,e.typeAnnotation.end,e.typeAnnotation.loc.end)},re.flowParseVariance=function(){var e=null;return this.match(T.plusMin)&&("+"===this.state.value?e="plus":"-"===this.state.value&&(e="minus"),this.next()),e};var ne=String.fromCodePoint;if(!ne){var ie=String.fromCharCode,se=Math.floor;ne=function(){var e=[],t=void 0,r=void 0,n=-1,i=arguments.length;if(!i)return"";for(var s="";++n1114111||se(a)!=a)throw RangeError("Invalid code point: "+a);a<=65535?e.push(a):(t=55296+((a-=65536)>>10),r=a%1024+56320,e.push(t,r)),(n+1==i||e.length>16384)&&(s+=ie.apply(null,e),e.length=0)}return s}}var ae=ne,oe={quot:'"',amp:"&",apos:"'",lt:"<",gt:">",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:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",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:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",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:"ϖ",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:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",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:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"},ue=/^[\da-fA-F]+$/,le=/^\d+$/;I.j_oTag=new j("...",!0,!0),T.jsxName=new w("jsxName"),T.jsxText=new w("jsxText",{beforeExpr:!0}),T.jsxTagStart=new w("jsxTagStart",{startsExpr:!0}),T.jsxTagEnd=new w("jsxTagEnd"),T.jsxTagStart.updateContext=function(){this.state.context.push(I.j_expr),this.state.context.push(I.j_oTag),this.state.exprAllowed=!1},T.jsxTagEnd.updateContext=function(e){var t=this.state.context.pop();t===I.j_oTag&&e===T.slash||t===I.j_cTag?(this.state.context.pop(),this.state.exprAllowed=this.curContext()===I.j_expr):this.state.exprAllowed=!0};var ce=q.prototype;ce.jsxReadToken=function(){for(var e="",t=this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated JSX contents");var r=this.input.charCodeAt(this.state.pos);switch(r){case 60:case 123:return this.state.pos===this.state.start?60===r&&this.state.exprAllowed?(++this.state.pos,this.finishToken(T.jsxTagStart)):this.getTokenFromCode(r):(e+=this.input.slice(t,this.state.pos),this.finishToken(T.jsxText,e));case 38:e+=this.input.slice(t,this.state.pos),e+=this.jsxReadEntity(),t=this.state.pos;break;default:o(r)?(e+=this.input.slice(t,this.state.pos),e+=this.jsxReadNewLine(!0),t=this.state.pos):++this.state.pos}}},ce.jsxReadNewLine=function(e){var t=this.input.charCodeAt(this.state.pos),r=void 0;return++this.state.pos,13===t&&10===this.input.charCodeAt(this.state.pos)?(++this.state.pos,r=e?"\n":"\r\n"):r=String.fromCharCode(t),++this.state.curLine,this.state.lineStart=this.state.pos,r},ce.jsxReadString=function(e){for(var t="",r=++this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated string constant");var n=this.input.charCodeAt(this.state.pos);if(n===e)break;38===n?(t+=this.input.slice(r,this.state.pos),t+=this.jsxReadEntity(),r=this.state.pos):o(n)?(t+=this.input.slice(r,this.state.pos),t+=this.jsxReadNewLine(!1),r=this.state.pos):++this.state.pos}return t+=this.input.slice(r,this.state.pos++),this.finishToken(T.string,t)},ce.jsxReadEntity=function(){for(var e="",t=0,r=void 0,n=this.input[this.state.pos],i=++this.state.pos;this.state.pos")}return r.openingElement=i,r.closingElement=s,r.children=n,this.match(T.relational)&&"<"===this.state.value&&this.raise(this.state.start,"Adjacent JSX elements must be wrapped in an enclosing tag"),this.finishNode(r,"JSXElement")},ce.jsxParseElement=function(){var e=this.state.start,t=this.state.startLoc;return this.next(),this.jsxParseElementAt(e,t)};V.estree=function(e){e.extend("checkDeclaration",function(e){return function(t){p(t)?this.checkDeclaration(t.value):e.call(this,t)}}),e.extend("checkGetterSetterParamCount",function(){return function(e){var t="get"===e.kind?0:1;if(e.value.params.length!==t){var r=e.start;"get"===e.kind?this.raise(r,"getter should have no params"):this.raise(r,"setter should have exactly one param")}}}),e.extend("checkLVal",function(e){return function(t,r,n){var i=this;switch(t.type){case"ObjectPattern":t.properties.forEach(function(e){i.checkLVal("Property"===e.type?e.value:e,r,n,"object destructuring pattern")});break;default:for(var s=arguments.length,a=Array(s>3?s-3:0),o=3;o0){var r=e.body.body,n=Array.isArray(r),i=0;for(r=n?r:r[Symbol.iterator]();;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if((i=r.next()).done)break;s=i.value}var a=s;if("ExpressionStatement"!==a.type||"Literal"!==a.expression.type)break;if("use strict"===a.expression.value)return!0}}return!1}}),e.extend("isValidDirective",function(){return function(e){return!("ExpressionStatement"!==e.type||"Literal"!==e.expression.type||"string"!=typeof e.expression.value||e.expression.extra&&e.expression.extra.parenthesized)}}),e.extend("stmtToDirective",function(e){return function(t){var r=e.call(this,t),n=t.expression.value;return r.value.value=n,r}}),e.extend("parseBlockBody",function(e){return function(t){for(var r=this,n=arguments.length,i=Array(n>1?n-1:0),s=1;s1?n-1:0),s=1;s2?n-2:0),s=2;s=a.length)break;l=a[u++]}else{if((u=a.next()).done)break;l=u.value}var c=l;"get"===c.kind||"set"===c.kind?this.raise(c.key.start,"Object pattern can't contain getter or setter"):c.method?this.raise(c.key.start,"Object pattern can't contain methods"):this.toAssignable(c,r,"object destructuring pattern")}return t}return e.call.apply(e,[this,t,r].concat(i))}})},V.flow=function(e){e.extend("parseFunctionBody",function(e){return function(t,r){return this.match(T.colon)&&!r&&(t.returnType=this.flowParseTypeAndPredicateAnnotation()),e.call(this,t,r)}}),e.extend("parseStatement",function(e){return function(t,r){if(this.state.strict&&this.match(T.name)&&"interface"===this.state.value){var n=this.startNode();return this.next(),this.flowParseInterface(n)}return e.call(this,t,r)}}),e.extend("parseExpressionStatement",function(e){return function(t,r){if("Identifier"===r.type)if("declare"===r.name){if(this.match(T._class)||this.match(T.name)||this.match(T._function)||this.match(T._var)||this.match(T._export))return this.flowParseDeclare(t)}else if(this.match(T.name)){if("interface"===r.name)return this.flowParseInterface(t);if("type"===r.name)return this.flowParseTypeAlias(t);if("opaque"===r.name)return this.flowParseOpaqueType(t,!1)}return e.call(this,t,r)}}),e.extend("shouldParseExportDeclaration",function(e){return function(){return this.isContextual("type")||this.isContextual("interface")||this.isContextual("opaque")||e.call(this)}}),e.extend("isExportDefaultSpecifier",function(e){return function(){return(!this.match(T.name)||"type"!==this.state.value&&"interface"!==this.state.value&&"opaque"!==this.state.value)&&e.call(this)}}),e.extend("parseConditional",function(e){return function(t,r,n,i,s){if(s&&this.match(T.question)){var a=this.state.clone();try{return e.call(this,t,r,n,i)}catch(e){if(e instanceof SyntaxError)return this.state=a,s.start=e.pos||this.state.start,t;throw e}}return e.call(this,t,r,n,i)}}),e.extend("parseParenItem",function(e){return function(t,r,n){if(t=e.call(this,t,r,n),this.eat(T.question)&&(t.optional=!0),this.match(T.colon)){var i=this.startNodeAt(r,n);return i.expression=t,i.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(i,"TypeCastExpression")}return t}}),e.extend("parseExport",function(e){return function(t){return"ExportNamedDeclaration"===(t=e.call(this,t)).type&&(t.exportKind=t.exportKind||"value"),t}}),e.extend("parseExportDeclaration",function(e){return function(t){if(this.isContextual("type")){t.exportKind="type";var r=this.startNode();return this.next(),this.match(T.braceL)?(t.specifiers=this.parseExportSpecifiers(),this.parseExportFrom(t),null):this.flowParseTypeAlias(r)}if(this.isContextual("opaque")){t.exportKind="type";var n=this.startNode();return this.next(),this.flowParseOpaqueType(n,!1)}if(this.isContextual("interface")){t.exportKind="type";var i=this.startNode();return this.next(),this.flowParseInterface(i)}return e.call(this,t)}}),e.extend("parseClassId",function(e){return function(t){e.apply(this,arguments),this.isRelational("<")&&(t.typeParameters=this.flowParseTypeParameterDeclaration())}}),e.extend("isKeyword",function(e){return function(t){return(!this.state.inType||"void"!==t)&&e.call(this,t)}}),e.extend("readToken",function(e){return function(t){return!this.state.inType||62!==t&&60!==t?e.call(this,t):this.finishOp(T.relational,1)}}),e.extend("jsx_readToken",function(e){return function(){if(!this.state.inType)return e.call(this)}}),e.extend("toAssignable",function(e){return function(t,r,n){return"TypeCastExpression"===t.type?e.call(this,this.typeCastToParameter(t),r,n):e.call(this,t,r,n)}}),e.extend("toAssignableList",function(e){return function(t,r,n){for(var i=0;i2?n-2:0),s=2;s=0&&l>0){for(n=[],s=r.length;c>=0&&!o;)c==u?(n.push(c),u=r.indexOf(e,c+1)):1==n.length?o=[n.pop(),l]:((i=n.pop())=0?u:l;n.length&&(o=[s,a])}return o}t.exports=n,n.range=s},{}],190:[function(e,t,r){"use strict";function n(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function i(e){return a[e>>18&63]+a[e>>12&63]+a[e>>6&63]+a[63&e]}function s(e,t,r){for(var n,s=[],a=t;a0?l-4:l;var c=0;for(t=0;t>16&255,a[c++]=i>>8&255,a[c++]=255&i;return 2===s?(i=o[e.charCodeAt(t)]<<2|o[e.charCodeAt(t+1)]>>4,a[c++]=255&i):1===s&&(i=o[e.charCodeAt(t)]<<10|o[e.charCodeAt(t+1)]<<4|o[e.charCodeAt(t+2)]>>2,a[c++]=i>>8&255,a[c++]=255&i),a},r.fromByteArray=function(e){for(var t,r=e.length,n=r%3,i="",o=[],u=0,l=r-n;ul?l:u+16383));return 1===n?(t=e[r-1],i+=a[t>>2],i+=a[t<<4&63],i+="=="):2===n&&(t=(e[r-2]<<8)+e[r-1],i+=a[t>>10],i+=a[t>>4&63],i+=a[t<<2&63],i+="="),o.push(i),o.join("")};for(var a=[],o=[],u="undefined"!=typeof Uint8Array?Uint8Array:Array,l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=0,p=l.length;c=t}function c(e,t){var r=[],i=h("{","}",e);if(!i||/\$$/.test(i.pre))return[e];var f=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),d=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),y=f||d,g=i.body.indexOf(",")>=0;if(!y&&!g)return i.post.match(/,.*\}/)?(e=i.pre+"{"+i.body+m+i.post,c(e)):[e];var b;if(y)b=i.body.split(/\.\./);else if(1===(b=s(i.body)).length&&1===(b=c(b[0],!1).map(a)).length){return(E=i.post.length?c(i.post,!1):[""]).map(function(e){return i.pre+b[0]+e})}var v,x=i.pre,E=i.post.length?c(i.post,!1):[""];if(y){var A=n(b[0]),D=n(b[1]),S=Math.max(b[0].length,b[1].length),C=3==b.length?Math.abs(n(b[2])):1,_=u;D0){var P=new Array(T+1).join("0");F=k<0?"-"+P+F.slice(1):P+F}}v.push(F)}}else v=p(b,function(e){return c(e,!1)});for(var B=0;Bj)throw new RangeError("Invalid typed array length");var t=new Uint8Array(e);return t.__proto__=i.prototype,t}function i(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return o(e)}return s(e,t,r)}function s(e,t,r){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return T(e)?function(e,t,r){if(t<0||e.byteLength=j)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+j.toString(16)+" bytes");return 0|e}function c(e,t){if(i.isBuffer(e))return e.length;if(P(e)||T(e))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return w(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return k(e).length;default:if(n)return w(e).length;t=(""+t).toLowerCase(),n=!0}}function p(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,t>>>=0,r<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return function(e,t,r){var n=e.length;(!t||t<0)&&(t=0);(!r||r<0||r>n)&&(r=n);for(var i="",s=t;s2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,B(r)&&(r=s?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(s)return-1;r=e.length-1}else if(r<0){if(!s)return-1;r=0}if("string"==typeof t&&(t=i.from(t,n)),i.isBuffer(t))return 0===t.length?-1:d(e,t,r,n,s);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?s?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):d(e,[t],r,n,s);throw new TypeError("val must be string, number or Buffer")}function d(e,t,r,n,i){function s(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}var a=1,o=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,o/=2,u/=2,r/=2}var l;if(i){var c=-1;for(l=r;lo&&(r=o-u),l=r;l>=0;l--){for(var p=!0,h=0;hi&&(n=i):n=i;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");n>s/2&&(n=s/2);for(var a=0;a>8,i=r%256,s.push(i),s.push(n);return s}(t,e.length-r),e,r,n)}function E(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i239?4:s>223?3:s>191?2:1;if(i+o<=r){var u,l,c,p;switch(o){case 1:s<128&&(a=s);break;case 2:128==(192&(u=e[i+1]))&&(p=(31&s)<<6|63&u)>127&&(a=p);break;case 3:u=e[i+1],l=e[i+2],128==(192&u)&&128==(192&l)&&(p=(15&s)<<12|(63&u)<<6|63&l)>2047&&(p<55296||p>57343)&&(a=p);break;case 4:u=e[i+1],l=e[i+2],c=e[i+3],128==(192&u)&&128==(192&l)&&128==(192&c)&&(p=(15&s)<<18|(63&u)<<12|(63&l)<<6|63&c)>65535&&p<1114112&&(a=p)}}null===a?(a=65533,o=1):a>65535&&(a-=65536,n.push(a>>>10&1023|55296),a=56320|1023&a),n.push(a),i+=o}return function(e){var t=e.length;if(t<=I)return String.fromCharCode.apply(String,e);var r="",n=0;for(;nr)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,r,n,s,a){if(!i.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>s||te.length)throw new RangeError("Index out of range")}function S(e,t,r,n,i,s){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function C(e,t,r,n,i){return t=+t,r>>>=0,i||S(e,0,r,4),N.write(e,t,r,n,23,4),r+4}function _(e,t,r,n,i){return t=+t,r>>>=0,i||S(e,0,r,8),N.write(e,t,r,n,52,8),r+8}function w(e,t){t=t||1/0;for(var r,n=e.length,i=null,s=[],a=0;a55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&s.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function k(e){return O.toByteArray(function(e){if((e=e.trim().replace(L,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function F(e,t,r,n){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function T(e){return e instanceof ArrayBuffer||null!=e&&null!=e.constructor&&"ArrayBuffer"===e.constructor.name&&"number"==typeof e.byteLength}function P(e){return"function"==typeof ArrayBuffer.isView&&ArrayBuffer.isView(e)}function B(e){return e!=e}var O=e("base64-js"),N=e("ieee754");r.Buffer=i,r.SlowBuffer=function(e){return+e!=e&&(e=0),i.alloc(+e)},r.INSPECT_MAX_BYTES=50;var j=2147483647;r.kMaxLength=j,(i.TYPED_ARRAY_SUPPORT=function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()}catch(e){return!1}}())||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),"undefined"!=typeof Symbol&&Symbol.species&&i[Symbol.species]===i&&Object.defineProperty(i,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),i.poolSize=8192,i.from=function(e,t,r){return s(e,t,r)},i.prototype.__proto__=Uint8Array.prototype,i.__proto__=Uint8Array,i.alloc=function(e,t,r){return function(e,t,r){return a(e),e<=0?n(e):void 0!==t?"string"==typeof r?n(e).fill(t,r):n(e).fill(t):n(e)}(e,t,r)},i.allocUnsafe=function(e){return o(e)},i.allocUnsafeSlow=function(e){return o(e)},i.isBuffer=function(e){return null!=e&&!0===e._isBuffer},i.compare=function(e,t){if(!i.isBuffer(e)||!i.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,s=0,a=Math.min(r,n);s0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),""},i.prototype.compare=function(e,t,r,n,s){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===s&&(s=this.length),t<0||r>e.length||n<0||s>this.length)throw new RangeError("out of range index");if(n>=s&&t>=r)return 0;if(n>=s)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,s>>>=0,this===e)return 0;for(var a=s-n,o=r-t,u=Math.min(a,o),l=this.slice(n,s),c=e.slice(t,r),p=0;p>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var s=!1;;)switch(n){case"hex":return m(this,e,t,r);case"utf8":case"utf-8":return y(this,e,t,r);case"ascii":return g(this,e,t,r);case"latin1":case"binary":return b(this,e,t,r);case"base64":return v(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,e,t,r);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var I=4096;i.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||A(e,t,this.length);for(var n=this[e],i=1,s=0;++s>>=0,t>>>=0,r||A(e,t,this.length);for(var n=this[e+--t],i=1;t>0&&(i*=256);)n+=this[e+--t]*i;return n},i.prototype.readUInt8=function(e,t){return e>>>=0,t||A(e,1,this.length),this[e]},i.prototype.readUInt16LE=function(e,t){return e>>>=0,t||A(e,2,this.length),this[e]|this[e+1]<<8},i.prototype.readUInt16BE=function(e,t){return e>>>=0,t||A(e,2,this.length),this[e]<<8|this[e+1]},i.prototype.readUInt32LE=function(e,t){return e>>>=0,t||A(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},i.prototype.readUInt32BE=function(e,t){return e>>>=0,t||A(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},i.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||A(e,t,this.length);for(var n=this[e],i=1,s=0;++s=i&&(n-=Math.pow(2,8*t)),n},i.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||A(e,t,this.length);for(var n=t,i=1,s=this[e+--n];n>0&&(i*=256);)s+=this[e+--n]*i;return i*=128,s>=i&&(s-=Math.pow(2,8*t)),s},i.prototype.readInt8=function(e,t){return e>>>=0,t||A(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},i.prototype.readInt16LE=function(e,t){e>>>=0,t||A(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},i.prototype.readInt16BE=function(e,t){e>>>=0,t||A(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},i.prototype.readInt32LE=function(e,t){return e>>>=0,t||A(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},i.prototype.readInt32BE=function(e,t){return e>>>=0,t||A(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},i.prototype.readFloatLE=function(e,t){return e>>>=0,t||A(e,4,this.length),N.read(this,e,!0,23,4)},i.prototype.readFloatBE=function(e,t){return e>>>=0,t||A(e,4,this.length),N.read(this,e,!1,23,4)},i.prototype.readDoubleLE=function(e,t){return e>>>=0,t||A(e,8,this.length),N.read(this,e,!0,52,8)},i.prototype.readDoubleBE=function(e,t){return e>>>=0,t||A(e,8,this.length),N.read(this,e,!1,52,8)},i.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t>>>=0,r>>>=0,!n){D(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=1,s=0;for(this[t]=255&e;++s>>=0,r>>>=0,!n){D(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=r-1,s=1;for(this[t+i]=255&e;--i>=0&&(s*=256);)this[t+i]=e/s&255;return t+r},i.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,1,255,0),this[t]=255&e,t+1},i.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},i.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},i.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},i.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},i.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var i=Math.pow(2,8*r-1);D(this,e,t,r,i-1,-i)}var s=0,a=1,o=0;for(this[t]=255&e;++s>0)-o&255;return t+r},i.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var i=Math.pow(2,8*r-1);D(this,e,t,r,i-1,-i)}var s=r-1,a=1,o=0;for(this[t+s]=255&e;--s>=0&&(a*=256);)e<0&&0===o&&0!==this[t+s+1]&&(o=1),this[t+s]=(e/a>>0)-o&255;return t+r},i.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},i.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},i.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},i.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},i.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},i.prototype.writeFloatLE=function(e,t,r){return C(this,e,t,!0,r)},i.prototype.writeFloatBE=function(e,t,r){return C(this,e,t,!1,r)},i.prototype.writeDoubleLE=function(e,t,r){return _(this,e,t,!0,r)},i.prototype.writeDoubleBE=function(e,t,r){return _(this,e,t,!1,r)},i.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(s<1e3)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var a;if("number"==typeof e)for(a=t;ac;)if((o=u[c++])!=o)return!0}else for(;l>c;c++)if((e||c in u)&&u[c]===r)return e||c||0;return!e&&-1}}},{"./_to-absolute-index":275,"./_to-iobject":277,"./_to-length":278}],216:[function(e,t,r){var n=e("./_ctx"),i=e("./_iobject"),s=e("./_to-object"),a=e("./_to-length"),o=e("./_array-species-create");t.exports=function(e,t){var r=1==e,u=2==e,l=3==e,c=4==e,p=6==e,h=5==e||p,f=t||o;return function(t,o,d){for(var m,y,g=s(t),b=i(g),v=n(o,d,3),x=a(b.length),E=0,A=r?f(t,x):u?f(t,0):void 0;x>E;E++)if((h||E in b)&&(m=b[E],y=v(m,E,g),e))if(r)A[E]=y;else if(y)switch(e){case 3:return!0;case 5:return m;case 6:return E;case 2:A.push(m)}else if(c)return!1;return p?-1:l||c?c:A}}},{"./_array-species-create":218,"./_ctx":226,"./_iobject":240,"./_to-length":278,"./_to-object":279}],217:[function(e,t,r){var n=e("./_is-object"),i=e("./_is-array"),s=e("./_wks")("species");t.exports=function(e){var t;return i(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!i(t.prototype)||(t=void 0),n(t)&&null===(t=t[s])&&(t=void 0)),void 0===t?Array:t}},{"./_is-array":242,"./_is-object":243,"./_wks":285}],218:[function(e,t,r){var n=e("./_array-species-constructor");t.exports=function(e,t){return new(n(e))(t)}},{"./_array-species-constructor":217}],219:[function(e,t,r){var n=e("./_cof"),i=e("./_wks")("toStringTag"),s="Arguments"==n(function(){return arguments}());t.exports=function(e){var t,r,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),i))?r:s?n(t):"Object"==(a=n(t))&&"function"==typeof t.callee?"Arguments":a}},{"./_cof":220,"./_wks":285}],220:[function(e,t,r){var n={}.toString;t.exports=function(e){return n.call(e).slice(8,-1)}},{}],221:[function(e,t,r){"use strict";var n=e("./_object-dp").f,i=e("./_object-create"),s=e("./_redefine-all"),a=e("./_ctx"),o=e("./_an-instance"),u=e("./_for-of"),l=e("./_iter-define"),c=e("./_iter-step"),p=e("./_set-species"),h=e("./_descriptors"),f=e("./_meta").fastKey,d=e("./_validate-collection"),m=h?"_s":"size",y=function(e,t){var r,n=f(t);if("F"!==n)return e._i[n];for(r=e._f;r;r=r.n)if(r.k==t)return r};t.exports={getConstructor:function(e,t,r,l){var c=e(function(e,n){o(e,c,t,"_i"),e._t=t,e._i=i(null),e._f=void 0,e._l=void 0,e[m]=0,void 0!=n&&u(n,r,e[l],e)});return s(c.prototype,{clear:function(){for(var e=d(this,t),r=e._i,n=e._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete r[n.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var r=d(this,t),n=y(r,e);if(n){var i=n.n,s=n.p;delete r._i[n.i],n.r=!0,s&&(s.n=i),i&&(i.p=s),r._f==n&&(r._f=i),r._l==n&&(r._l=s),r[m]--}return!!n},forEach:function(e){d(this,t);for(var r,n=a(e,arguments.length>1?arguments[1]:void 0,3);r=r?r.n:this._f;)for(n(r.v,r.k,this);r&&r.r;)r=r.p},has:function(e){return!!y(d(this,t),e)}}),h&&n(c.prototype,"size",{get:function(){return d(this,t)[m]}}),c},def:function(e,t,r){var n,i,s=y(e,t);return s?s.v=r:(e._l=s={i:i=f(t,!0),k:t,v:r,p:n=e._l,n:void 0,r:!1},e._f||(e._f=s),n&&(n.n=s),e[m]++,"F"!==i&&(e._i[i]=s)),e},getEntry:y,setStrong:function(e,t,r){l(e,t,function(e,r){this._t=d(e,t),this._k=r,this._l=void 0},function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p;return this._t&&(this._l=t=t?t.n:this._t._f)?c(0,"keys"==e?t.k:"values"==e?t.v:[t.k,t.v]):(this._t=void 0,c(1))},r?"entries":"values",!r,!0),p(t)}}},{"./_an-instance":212,"./_ctx":226,"./_descriptors":228,"./_for-of":234,"./_iter-define":246,"./_iter-step":247,"./_meta":250,"./_object-create":252,"./_object-dp":253,"./_redefine-all":265,"./_set-species":270,"./_validate-collection":282}],222:[function(e,t,r){var n=e("./_classof"),i=e("./_array-from-iterable");t.exports=function(e){return function(){if(n(this)!=e)throw TypeError(e+"#toJSON isn't generic");return i(this)}}},{"./_array-from-iterable":214,"./_classof":219}],223:[function(e,t,r){"use strict";var n=e("./_redefine-all"),i=e("./_meta").getWeak,s=e("./_an-object"),a=e("./_is-object"),o=e("./_an-instance"),u=e("./_for-of"),l=e("./_array-methods"),c=e("./_has"),p=e("./_validate-collection"),h=l(5),f=l(6),d=0,m=function(e){return e._l||(e._l=new y)},y=function(){this.a=[]},g=function(e,t){return h(e.a,function(e){return e[0]===t})};y.prototype={get:function(e){var t=g(this,e);if(t)return t[1]},has:function(e){return!!g(this,e)},set:function(e,t){var r=g(this,e);r?r[1]=t:this.a.push([e,t])},delete:function(e){var t=f(this.a,function(t){return t[0]===e});return~t&&this.a.splice(t,1),!!~t}},t.exports={getConstructor:function(e,t,r,s){var l=e(function(e,n){o(e,l,t,"_i"),e._t=t,e._i=d++,e._l=void 0,void 0!=n&&u(n,r,e[s],e)});return n(l.prototype,{delete:function(e){if(!a(e))return!1;var r=i(e);return!0===r?m(p(this,t)).delete(e):r&&c(r,this._i)&&delete r[this._i]},has:function(e){if(!a(e))return!1;var r=i(e);return!0===r?m(p(this,t)).has(e):r&&c(r,this._i)}}),l},def:function(e,t,r){var n=i(s(t),!0);return!0===n?m(e).set(t,r):n[e._i]=r,e},ufstore:m}},{"./_an-instance":212,"./_an-object":213,"./_array-methods":216,"./_for-of":234,"./_has":236,"./_is-object":243,"./_meta":250,"./_redefine-all":265,"./_validate-collection":282}],224:[function(e,t,r){"use strict";var n=e("./_global"),i=e("./_export"),s=e("./_meta"),a=e("./_fails"),o=e("./_hide"),u=e("./_redefine-all"),l=e("./_for-of"),c=e("./_an-instance"),p=e("./_is-object"),h=e("./_set-to-string-tag"),f=e("./_object-dp").f,d=e("./_array-methods")(0),m=e("./_descriptors");t.exports=function(e,t,r,y,g,b){var v=n[e],x=v,E=g?"set":"add",A=x&&x.prototype,D={};return m&&"function"==typeof x&&(b||A.forEach&&!a(function(){(new x).entries().next()}))?(x=t(function(t,r){c(t,x,e,"_c"),t._c=new v,void 0!=r&&l(r,g,t[E],t)}),d("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(e){var t="add"==e||"set"==e;e in A&&(!b||"clear"!=e)&&o(x.prototype,e,function(r,n){if(c(this,x,e),!t&&b&&!p(r))return"get"==e&&void 0;var i=this._c[e](0===r?0:r,n);return t?this:i})}),b||f(x.prototype,"size",{get:function(){return this._c.size}})):(x=y.getConstructor(t,e,g,E),u(x.prototype,r),s.NEED=!0),h(x,e),D[e]=x,i(i.G+i.W+i.F,D),b||y.setStrong(x,e,g),x}},{"./_an-instance":212,"./_array-methods":216,"./_descriptors":228,"./_export":232,"./_fails":233,"./_for-of":234,"./_global":235,"./_hide":237,"./_is-object":243,"./_meta":250,"./_object-dp":253,"./_redefine-all":265,"./_set-to-string-tag":271}],225:[function(e,t,r){var n=t.exports={version:"2.5.3"};"number"==typeof __e&&(__e=n)},{}],226:[function(e,t,r){var n=e("./_a-function");t.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,i){return e.call(t,r,n,i)}}return function(){return e.apply(t,arguments)}}},{"./_a-function":210}],227:[function(e,t,r){t.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},{}],228:[function(e,t,r){t.exports=!e("./_fails")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{"./_fails":233}],229:[function(e,t,r){var n=e("./_is-object"),i=e("./_global").document,s=n(i)&&n(i.createElement);t.exports=function(e){return s?i.createElement(e):{}}},{"./_global":235,"./_is-object":243}],230:[function(e,t,r){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},{}],231:[function(e,t,r){var n=e("./_object-keys"),i=e("./_object-gops"),s=e("./_object-pie");t.exports=function(e){var t=n(e),r=i.f;if(r)for(var a,o=r(e),u=s.f,l=0;o.length>l;)u.call(e,a=o[l++])&&t.push(a);return t}},{"./_object-gops":258,"./_object-keys":261,"./_object-pie":262}],232:[function(e,t,r){var n=e("./_global"),i=e("./_core"),s=e("./_ctx"),a=e("./_hide"),o="prototype",u=function(e,t,r){var l,c,p,h=e&u.F,f=e&u.G,d=e&u.S,m=e&u.P,y=e&u.B,g=e&u.W,b=f?i:i[t]||(i[t]={}),v=b[o],x=f?n:d?n[t]:(n[t]||{})[o];f&&(r=t);for(l in r)(c=!h&&x&&void 0!==x[l])&&l in b||(p=c?x[l]:r[l],b[l]=f&&"function"!=typeof x[l]?r[l]:y&&c?s(p,n):g&&x[l]==p?function(e){var t=function(t,r,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,r)}return new e(t,r,n)}return e.apply(this,arguments)};return t[o]=e[o],t}(p):m&&"function"==typeof p?s(Function.call,p):p,m&&((b.virtual||(b.virtual={}))[l]=p,e&u.R&&v&&!v[l]&&a(v,l,p)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},{"./_core":225,"./_ctx":226,"./_global":235,"./_hide":237}],233:[function(e,t,r){t.exports=function(e){try{return!!e()}catch(e){return!0}}},{}],234:[function(e,t,r){var n=e("./_ctx"),i=e("./_iter-call"),s=e("./_is-array-iter"),a=e("./_an-object"),o=e("./_to-length"),u=e("./core.get-iterator-method"),l={},c={};(r=t.exports=function(e,t,r,p,h){var f,d,m,y,g=h?function(){return e}:u(e),b=n(r,p,t?2:1),v=0;if("function"!=typeof g)throw TypeError(e+" is not iterable!");if(s(g)){for(f=o(e.length);f>v;v++)if((y=t?b(a(d=e[v])[0],d[1]):b(e[v]))===l||y===c)return y}else for(m=g.call(e);!(d=m.next()).done;)if((y=i(m,b,d.value,t))===l||y===c)return y}).BREAK=l,r.RETURN=c},{"./_an-object":213,"./_ctx":226,"./_is-array-iter":241,"./_iter-call":244,"./_to-length":278,"./core.get-iterator-method":286}],235:[function(e,t,r){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},{}],236:[function(e,t,r){var n={}.hasOwnProperty;t.exports=function(e,t){return n.call(e,t)}},{}],237:[function(e,t,r){var n=e("./_object-dp"),i=e("./_property-desc");t.exports=e("./_descriptors")?function(e,t,r){return n.f(e,t,i(1,r))}:function(e,t,r){return e[t]=r,e}},{"./_descriptors":228,"./_object-dp":253,"./_property-desc":264}],238:[function(e,t,r){var n=e("./_global").document;t.exports=n&&n.documentElement},{"./_global":235}],239:[function(e,t,r){t.exports=!e("./_descriptors")&&!e("./_fails")(function(){return 7!=Object.defineProperty(e("./_dom-create")("div"),"a",{get:function(){return 7}}).a})},{"./_descriptors":228,"./_dom-create":229,"./_fails":233}],240:[function(e,t,r){var n=e("./_cof");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},{"./_cof":220}],241:[function(e,t,r){var n=e("./_iterators"),i=e("./_wks")("iterator"),s=Array.prototype;t.exports=function(e){return void 0!==e&&(n.Array===e||s[i]===e)}},{"./_iterators":248,"./_wks":285}],242:[function(e,t,r){var n=e("./_cof");t.exports=Array.isArray||function(e){return"Array"==n(e)}},{"./_cof":220}],243:[function(e,t,r){t.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},{}],244:[function(e,t,r){var n=e("./_an-object");t.exports=function(e,t,r,i){try{return i?t(n(r)[0],r[1]):t(r)}catch(t){var s=e.return;throw void 0!==s&&n(s.call(e)),t}}},{"./_an-object":213}],245:[function(e,t,r){"use strict";var n=e("./_object-create"),i=e("./_property-desc"),s=e("./_set-to-string-tag"),a={};e("./_hide")(a,e("./_wks")("iterator"),function(){return this}),t.exports=function(e,t,r){e.prototype=n(a,{next:i(1,r)}),s(e,t+" Iterator")}},{"./_hide":237,"./_object-create":252,"./_property-desc":264,"./_set-to-string-tag":271,"./_wks":285}],246:[function(e,t,r){"use strict";var n=e("./_library"),i=e("./_export"),s=e("./_redefine"),a=e("./_hide"),o=e("./_has"),u=e("./_iterators"),l=e("./_iter-create"),c=e("./_set-to-string-tag"),p=e("./_object-gpo"),h=e("./_wks")("iterator"),f=!([].keys&&"next"in[].keys()),d=function(){return this};t.exports=function(e,t,r,m,y,g,b){l(r,t,m);var v,x,E,A=function(e){if(!f&&e in _)return _[e];switch(e){case"keys":case"values":return function(){return new r(this,e)}}return function(){return new r(this,e)}},D=t+" Iterator",S="values"==y,C=!1,_=e.prototype,w=_[h]||_["@@iterator"]||y&&_[y],k=!f&&w||A(y),F=y?S?A("entries"):k:void 0,T="Array"==t?_.entries||w:w;if(T&&(E=p(T.call(new e)))!==Object.prototype&&E.next&&(c(E,D,!0),n||o(E,h)||a(E,h,d)),S&&w&&"values"!==w.name&&(C=!0,k=function(){return w.call(this)}),n&&!b||!f&&!C&&_[h]||a(_,h,k),u[t]=k,u[D]=d,y)if(v={values:S?k:A("values"),keys:g?k:A("keys"),entries:F},b)for(x in v)x in _||s(_,x,v[x]);else i(i.P+i.F*(f||C),t,v);return v}},{"./_export":232,"./_has":236,"./_hide":237,"./_iter-create":245,"./_iterators":248,"./_library":249,"./_object-gpo":259,"./_redefine":266,"./_set-to-string-tag":271,"./_wks":285}],247:[function(e,t,r){t.exports=function(e,t){return{value:t,done:!!e}}},{}],248:[function(e,t,r){t.exports={}},{}],249:[function(e,t,r){t.exports=!0},{}],250:[function(e,t,r){var n=e("./_uid")("meta"),i=e("./_is-object"),s=e("./_has"),a=e("./_object-dp").f,o=0,u=Object.isExtensible||function(){return!0},l=!e("./_fails")(function(){return u(Object.preventExtensions({}))}),c=function(e){a(e,n,{value:{i:"O"+ ++o,w:{}}})},p=t.exports={KEY:n,NEED:!1,fastKey:function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!s(e,n)){if(!u(e))return"F";if(!t)return"E";c(e)}return e[n].i},getWeak:function(e,t){if(!s(e,n)){if(!u(e))return!0;if(!t)return!1;c(e)}return e[n].w},onFreeze:function(e){return l&&p.NEED&&u(e)&&!s(e,n)&&c(e),e}}},{"./_fails":233,"./_has":236,"./_is-object":243,"./_object-dp":253,"./_uid":281}],251:[function(e,t,r){"use strict";var n=e("./_object-keys"),i=e("./_object-gops"),s=e("./_object-pie"),a=e("./_to-object"),o=e("./_iobject"),u=Object.assign;t.exports=!u||e("./_fails")(function(){var e={},t={},r=Symbol(),n="abcdefghijklmnopqrst";return e[r]=7,n.split("").forEach(function(e){t[e]=e}),7!=u({},e)[r]||Object.keys(u({},t)).join("")!=n})?function(e,t){for(var r=a(e),u=arguments.length,l=1,c=i.f,p=s.f;u>l;)for(var h,f=o(arguments[l++]),d=c?n(f).concat(c(f)):n(f),m=d.length,y=0;m>y;)p.call(f,h=d[y++])&&(r[h]=f[h]);return r}:u},{"./_fails":233,"./_iobject":240,"./_object-gops":258,"./_object-keys":261,"./_object-pie":262,"./_to-object":279}],252:[function(e,t,r){var n=e("./_an-object"),i=e("./_object-dps"),s=e("./_enum-bug-keys"),a=e("./_shared-key")("IE_PROTO"),o=function(){},u=function(){var t,r=e("./_dom-create")("iframe"),n=s.length;for(r.style.display="none",e("./_html").appendChild(r),r.src="javascript:",(t=r.contentWindow.document).open(),t.write(" + + +``` + +A simple example of how to use BSON in `Node.js`: + +```js +// Get BSON parser class +var BSON = require('bson') +// Get the Long type +var Long = BSON.Long; +// Create a bson parser instance +var bson = new BSON(); + +// Serialize document +var doc = { long: Long.fromNumber(100) } + +// Serialize a document +var data = bson.serialize(doc) +console.log('data:', data) + +// Deserialize the resulting Buffer +var doc_2 = bson.deserialize(data) +console.log('doc_2:', doc_2) +``` + +## Installation + +`npm install bson` + +## API + +### BSON types + +For all BSON types documentation, please refer to the following sources: + * [MongoDB BSON Type Reference](https://docs.mongodb.com/manual/reference/bson-types/) + * [BSON Spec](https://bsonspec.org/) + +### BSON serialization and deserialiation + +**`new BSON()`** - Creates a new BSON serializer/deserializer you can use to serialize and deserialize BSON. + +#### BSON.serialize + +The BSON `serialize` method takes a JavaScript object and an optional options object and returns a Node.js Buffer. + + * `BSON.serialize(object, options)` + * @param {Object} object the JavaScript object to serialize. + * @param {Boolean} [options.checkKeys=false] the serializer will check if keys are valid. + * @param {Boolean} [options.serializeFunctions=false] serialize the JavaScript functions. + * @param {Boolean} [options.ignoreUndefined=true] + * @return {Buffer} returns a Buffer instance. + +#### BSON.serializeWithBufferAndIndex + +The BSON `serializeWithBufferAndIndex` method takes an object, a target buffer instance and an optional options object and returns the end serialization index in the final buffer. + + * `BSON.serializeWithBufferAndIndex(object, buffer, options)` + * @param {Object} object the JavaScript object to serialize. + * @param {Buffer} buffer the Buffer you pre-allocated to store the serialized BSON object. + * @param {Boolean} [options.checkKeys=false] the serializer will check if keys are valid. + * @param {Boolean} [options.serializeFunctions=false] serialize the JavaScript functions. + * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields. + * @param {Number} [options.index=0] the index in the buffer where we wish to start serializing into. + * @return {Number} returns the index pointing to the last written byte in the buffer. + +#### BSON.calculateObjectSize + +The BSON `calculateObjectSize` method takes a JavaScript object and an optional options object and returns the size of the BSON object. + + * `BSON.calculateObjectSize(object, options)` + * @param {Object} object the JavaScript object to serialize. + * @param {Boolean} [options.serializeFunctions=false] serialize the JavaScript functions. + * @param {Boolean} [options.ignoreUndefined=true] + * @return {Buffer} returns a Buffer instance. + +#### BSON.deserialize + +The BSON `deserialize` method takes a Node.js Buffer and an optional options object and returns a deserialized JavaScript object. + + * `BSON.deserialize(buffer, options)` + * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized. + * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse. + * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function. + * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits + * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a Node.js Buffer instance. + * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types. + * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer. + * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances. + * @return {Object} returns the deserialized Javascript Object. + +#### BSON.deserializeStream + +The BSON `deserializeStream` method takes a Node.js Buffer, `startIndex` and allow more control over deserialization of a Buffer containing concatenated BSON documents. + + * `BSON.deserializeStream(buffer, startIndex, numberOfDocuments, documents, docStartIndex, options)` + * @param {Buffer} buffer the buffer containing the serialized set of BSON documents. + * @param {Number} startIndex the start index in the data Buffer where the deserialization is to start. + * @param {Number} numberOfDocuments number of documents to deserialize. + * @param {Array} documents an array where to store the deserialized documents. + * @param {Number} docStartIndex the index in the documents array from where to start inserting documents. + * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized. + * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse. + * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function. + * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits + * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a Node.js Buffer instance. + * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types. + * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer. + * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances. + * @return {Number} returns the next index in the buffer after deserialization **x** numbers of documents. + +## FAQ + +#### Why does `undefined` get converted to `null`? + +The `undefined` BSON type has been [deprecated for many years](http://bsonspec.org/spec.html), so this library has dropped support for it. Use the `ignoreUndefined` option (for example, from the [driver](http://mongodb.github.io/node-mongodb-native/2.2/api/MongoClient.html#connect) ) to instead remove `undefined` keys. + +#### How do I add custom serialization logic? + +This library looks for `toBSON()` functions on every path, and calls the `toBSON()` function to get the value to serialize. + +```javascript +var bson = new BSON(); + +class CustomSerialize { + toBSON() { + return 42; + } +} + +const obj = { answer: new CustomSerialize() }; +// "{ answer: 42 }" +console.log(bson.deserialize(bson.serialize(obj))); +``` diff --git a/node_modules/bson/bower.json b/node_modules/bson/bower.json new file mode 100644 index 0000000..b32140e --- /dev/null +++ b/node_modules/bson/bower.json @@ -0,0 +1,25 @@ +{ + "name": "bson", + "description": "A bson parser for node.js and the browser", + "keywords": [ + "mongodb", + "bson", + "parser" + ], + "author": "Christian Amor Kvalheim ", + "main": "./browser_build/bson.js", + "license": "Apache-2.0", + "moduleType": [ + "globals", + "node" + ], + "ignore": [ + "**/.*", + "alternate_parsers", + "benchmarks", + "bower_components", + "node_modules", + "test", + "tools" + ] +} diff --git a/node_modules/bson/browser_build/bson.js b/node_modules/bson/browser_build/bson.js new file mode 100644 index 0000000..a02bf14 --- /dev/null +++ b/node_modules/bson/browser_build/bson.js @@ -0,0 +1,17748 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else { + var a = factory(); + for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; + } +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = "/"; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(1); + module.exports = __webpack_require__(327); + + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {"use strict"; + + __webpack_require__(2); + + __webpack_require__(323); + + __webpack_require__(324); + + if (global._babelPolyfill) { + throw new Error("only one instance of babel-polyfill is allowed"); + } + global._babelPolyfill = true; + + var DEFINE_PROPERTY = "defineProperty"; + function define(O, key, value) { + O[key] || Object[DEFINE_PROPERTY](O, key, { + writable: true, + configurable: true, + value: value + }); + } + + define(String.prototype, "padLeft", "".padStart); + define(String.prototype, "padRight", "".padEnd); + + "pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill".split(",").forEach(function (key) { + [][key] && define(Array, key, Function.call.bind([][key])); + }); + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(3); + __webpack_require__(51); + __webpack_require__(52); + __webpack_require__(53); + __webpack_require__(54); + __webpack_require__(56); + __webpack_require__(59); + __webpack_require__(60); + __webpack_require__(61); + __webpack_require__(62); + __webpack_require__(63); + __webpack_require__(64); + __webpack_require__(65); + __webpack_require__(66); + __webpack_require__(67); + __webpack_require__(69); + __webpack_require__(71); + __webpack_require__(73); + __webpack_require__(75); + __webpack_require__(78); + __webpack_require__(79); + __webpack_require__(80); + __webpack_require__(84); + __webpack_require__(86); + __webpack_require__(88); + __webpack_require__(91); + __webpack_require__(92); + __webpack_require__(93); + __webpack_require__(94); + __webpack_require__(96); + __webpack_require__(97); + __webpack_require__(98); + __webpack_require__(99); + __webpack_require__(100); + __webpack_require__(101); + __webpack_require__(102); + __webpack_require__(104); + __webpack_require__(105); + __webpack_require__(106); + __webpack_require__(108); + __webpack_require__(109); + __webpack_require__(110); + __webpack_require__(112); + __webpack_require__(114); + __webpack_require__(115); + __webpack_require__(116); + __webpack_require__(117); + __webpack_require__(118); + __webpack_require__(119); + __webpack_require__(120); + __webpack_require__(121); + __webpack_require__(122); + __webpack_require__(123); + __webpack_require__(124); + __webpack_require__(125); + __webpack_require__(126); + __webpack_require__(131); + __webpack_require__(132); + __webpack_require__(136); + __webpack_require__(137); + __webpack_require__(138); + __webpack_require__(139); + __webpack_require__(141); + __webpack_require__(142); + __webpack_require__(143); + __webpack_require__(144); + __webpack_require__(145); + __webpack_require__(146); + __webpack_require__(147); + __webpack_require__(148); + __webpack_require__(149); + __webpack_require__(150); + __webpack_require__(151); + __webpack_require__(152); + __webpack_require__(153); + __webpack_require__(154); + __webpack_require__(155); + __webpack_require__(157); + __webpack_require__(158); + __webpack_require__(160); + __webpack_require__(161); + __webpack_require__(167); + __webpack_require__(168); + __webpack_require__(170); + __webpack_require__(171); + __webpack_require__(172); + __webpack_require__(176); + __webpack_require__(177); + __webpack_require__(178); + __webpack_require__(179); + __webpack_require__(180); + __webpack_require__(182); + __webpack_require__(183); + __webpack_require__(184); + __webpack_require__(185); + __webpack_require__(188); + __webpack_require__(190); + __webpack_require__(191); + __webpack_require__(192); + __webpack_require__(194); + __webpack_require__(196); + __webpack_require__(198); + __webpack_require__(199); + __webpack_require__(200); + __webpack_require__(202); + __webpack_require__(203); + __webpack_require__(204); + __webpack_require__(205); + __webpack_require__(216); + __webpack_require__(220); + __webpack_require__(221); + __webpack_require__(223); + __webpack_require__(224); + __webpack_require__(228); + __webpack_require__(229); + __webpack_require__(231); + __webpack_require__(232); + __webpack_require__(233); + __webpack_require__(234); + __webpack_require__(235); + __webpack_require__(236); + __webpack_require__(237); + __webpack_require__(238); + __webpack_require__(239); + __webpack_require__(240); + __webpack_require__(241); + __webpack_require__(242); + __webpack_require__(243); + __webpack_require__(244); + __webpack_require__(245); + __webpack_require__(246); + __webpack_require__(247); + __webpack_require__(248); + __webpack_require__(249); + __webpack_require__(251); + __webpack_require__(252); + __webpack_require__(253); + __webpack_require__(254); + __webpack_require__(255); + __webpack_require__(257); + __webpack_require__(258); + __webpack_require__(259); + __webpack_require__(261); + __webpack_require__(262); + __webpack_require__(263); + __webpack_require__(264); + __webpack_require__(265); + __webpack_require__(266); + __webpack_require__(267); + __webpack_require__(268); + __webpack_require__(270); + __webpack_require__(271); + __webpack_require__(273); + __webpack_require__(274); + __webpack_require__(275); + __webpack_require__(276); + __webpack_require__(279); + __webpack_require__(280); + __webpack_require__(282); + __webpack_require__(283); + __webpack_require__(284); + __webpack_require__(285); + __webpack_require__(287); + __webpack_require__(288); + __webpack_require__(289); + __webpack_require__(290); + __webpack_require__(291); + __webpack_require__(292); + __webpack_require__(293); + __webpack_require__(294); + __webpack_require__(295); + __webpack_require__(296); + __webpack_require__(298); + __webpack_require__(299); + __webpack_require__(300); + __webpack_require__(301); + __webpack_require__(302); + __webpack_require__(303); + __webpack_require__(304); + __webpack_require__(305); + __webpack_require__(306); + __webpack_require__(307); + __webpack_require__(308); + __webpack_require__(310); + __webpack_require__(311); + __webpack_require__(312); + __webpack_require__(313); + __webpack_require__(314); + __webpack_require__(315); + __webpack_require__(316); + __webpack_require__(317); + __webpack_require__(318); + __webpack_require__(319); + __webpack_require__(320); + __webpack_require__(321); + __webpack_require__(322); + module.exports = __webpack_require__(9); + + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // ECMAScript 6 symbols shim + var global = __webpack_require__(4); + var has = __webpack_require__(5); + var DESCRIPTORS = __webpack_require__(6); + var $export = __webpack_require__(8); + var redefine = __webpack_require__(18); + var META = __webpack_require__(22).KEY; + var $fails = __webpack_require__(7); + var shared = __webpack_require__(23); + var setToStringTag = __webpack_require__(25); + var uid = __webpack_require__(19); + var wks = __webpack_require__(26); + var wksExt = __webpack_require__(27); + var wksDefine = __webpack_require__(28); + var enumKeys = __webpack_require__(29); + var isArray = __webpack_require__(44); + var anObject = __webpack_require__(12); + var isObject = __webpack_require__(13); + var toIObject = __webpack_require__(32); + var toPrimitive = __webpack_require__(16); + var createDesc = __webpack_require__(17); + var _create = __webpack_require__(45); + var gOPNExt = __webpack_require__(48); + var $GOPD = __webpack_require__(50); + var $DP = __webpack_require__(11); + var $keys = __webpack_require__(30); + var gOPD = $GOPD.f; + var dP = $DP.f; + var gOPN = gOPNExt.f; + var $Symbol = global.Symbol; + var $JSON = global.JSON; + var _stringify = $JSON && $JSON.stringify; + var PROTOTYPE = 'prototype'; + var HIDDEN = wks('_hidden'); + var TO_PRIMITIVE = wks('toPrimitive'); + var isEnum = {}.propertyIsEnumerable; + var SymbolRegistry = shared('symbol-registry'); + var AllSymbols = shared('symbols'); + var OPSymbols = shared('op-symbols'); + var ObjectProto = Object[PROTOTYPE]; + var USE_NATIVE = typeof $Symbol == 'function'; + var QObject = global.QObject; + // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 + var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; + + // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 + var setSymbolDesc = DESCRIPTORS && $fails(function () { + return _create(dP({}, 'a', { + get: function () { return dP(this, 'a', { value: 7 }).a; } + })).a != 7; + }) ? function (it, key, D) { + var protoDesc = gOPD(ObjectProto, key); + if (protoDesc) delete ObjectProto[key]; + dP(it, key, D); + if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); + } : dP; + + var wrap = function (tag) { + var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); + sym._k = tag; + return sym; + }; + + var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { + return typeof it == 'symbol'; + } : function (it) { + return it instanceof $Symbol; + }; + + var $defineProperty = function defineProperty(it, key, D) { + if (it === ObjectProto) $defineProperty(OPSymbols, key, D); + anObject(it); + key = toPrimitive(key, true); + anObject(D); + if (has(AllSymbols, key)) { + if (!D.enumerable) { + if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); + it[HIDDEN][key] = true; + } else { + if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; + D = _create(D, { enumerable: createDesc(0, false) }); + } return setSymbolDesc(it, key, D); + } return dP(it, key, D); + }; + var $defineProperties = function defineProperties(it, P) { + anObject(it); + var keys = enumKeys(P = toIObject(P)); + var i = 0; + var l = keys.length; + var key; + while (l > i) $defineProperty(it, key = keys[i++], P[key]); + return it; + }; + var $create = function create(it, P) { + return P === undefined ? _create(it) : $defineProperties(_create(it), P); + }; + var $propertyIsEnumerable = function propertyIsEnumerable(key) { + var E = isEnum.call(this, key = toPrimitive(key, true)); + if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; + return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; + }; + var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { + it = toIObject(it); + key = toPrimitive(key, true); + if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; + var D = gOPD(it, key); + if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; + return D; + }; + var $getOwnPropertyNames = function getOwnPropertyNames(it) { + var names = gOPN(toIObject(it)); + var result = []; + var i = 0; + var key; + while (names.length > i) { + if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); + } return result; + }; + var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { + var IS_OP = it === ObjectProto; + var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); + var result = []; + var i = 0; + var key; + while (names.length > i) { + if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); + } return result; + }; + + // 19.4.1.1 Symbol([description]) + if (!USE_NATIVE) { + $Symbol = function Symbol() { + if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); + var tag = uid(arguments.length > 0 ? arguments[0] : undefined); + var $set = function (value) { + if (this === ObjectProto) $set.call(OPSymbols, value); + if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; + setSymbolDesc(this, tag, createDesc(1, value)); + }; + if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); + return wrap(tag); + }; + redefine($Symbol[PROTOTYPE], 'toString', function toString() { + return this._k; + }); + + $GOPD.f = $getOwnPropertyDescriptor; + $DP.f = $defineProperty; + __webpack_require__(49).f = gOPNExt.f = $getOwnPropertyNames; + __webpack_require__(43).f = $propertyIsEnumerable; + __webpack_require__(42).f = $getOwnPropertySymbols; + + if (DESCRIPTORS && !__webpack_require__(24)) { + redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); + } + + wksExt.f = function (name) { + return wrap(wks(name)); + }; + } + + $export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); + + for (var es6Symbols = ( + // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 + 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' + ).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); + + for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); + + $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { + // 19.4.2.1 Symbol.for(key) + 'for': function (key) { + return has(SymbolRegistry, key += '') + ? SymbolRegistry[key] + : SymbolRegistry[key] = $Symbol(key); + }, + // 19.4.2.5 Symbol.keyFor(sym) + keyFor: function keyFor(sym) { + if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); + for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; + }, + useSetter: function () { setter = true; }, + useSimple: function () { setter = false; } + }); + + $export($export.S + $export.F * !USE_NATIVE, 'Object', { + // 19.1.2.2 Object.create(O [, Properties]) + create: $create, + // 19.1.2.4 Object.defineProperty(O, P, Attributes) + defineProperty: $defineProperty, + // 19.1.2.3 Object.defineProperties(O, Properties) + defineProperties: $defineProperties, + // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) + getOwnPropertyDescriptor: $getOwnPropertyDescriptor, + // 19.1.2.7 Object.getOwnPropertyNames(O) + getOwnPropertyNames: $getOwnPropertyNames, + // 19.1.2.8 Object.getOwnPropertySymbols(O) + getOwnPropertySymbols: $getOwnPropertySymbols + }); + + // 24.3.2 JSON.stringify(value [, replacer [, space]]) + $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { + var S = $Symbol(); + // MS Edge converts symbol values to JSON as {} + // WebKit converts symbol values to JSON as null + // V8 throws on boxed symbols + return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; + })), 'JSON', { + stringify: function stringify(it) { + var args = [it]; + var i = 1; + var replacer, $replacer; + while (arguments.length > i) args.push(arguments[i++]); + $replacer = replacer = args[1]; + if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined + if (!isArray(replacer)) replacer = function (key, value) { + if (typeof $replacer == 'function') value = $replacer.call(this, key, value); + if (!isSymbol(value)) return value; + }; + args[1] = replacer; + return _stringify.apply($JSON, args); + } + }); + + // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) + $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); + // 19.4.3.5 Symbol.prototype[@@toStringTag] + setToStringTag($Symbol, 'Symbol'); + // 20.2.1.9 Math[@@toStringTag] + setToStringTag(Math, 'Math', true); + // 24.3.3 JSON[@@toStringTag] + setToStringTag(global.JSON, 'JSON', true); + + +/***/ }), +/* 4 */ +/***/ (function(module, exports) { + + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global = module.exports = typeof window != 'undefined' && window.Math == Math + ? window : typeof self != 'undefined' && self.Math == Math ? self + // eslint-disable-next-line no-new-func + : Function('return this')(); + if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef + + +/***/ }), +/* 5 */ +/***/ (function(module, exports) { + + var hasOwnProperty = {}.hasOwnProperty; + module.exports = function (it, key) { + return hasOwnProperty.call(it, key); + }; + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + + // Thank's IE8 for his funny defineProperty + module.exports = !__webpack_require__(7)(function () { + return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; + }); + + +/***/ }), +/* 7 */ +/***/ (function(module, exports) { + + module.exports = function (exec) { + try { + return !!exec(); + } catch (e) { + return true; + } + }; + + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(4); + var core = __webpack_require__(9); + var hide = __webpack_require__(10); + var redefine = __webpack_require__(18); + var ctx = __webpack_require__(20); + var PROTOTYPE = 'prototype'; + + var $export = function (type, name, source) { + var IS_FORCED = type & $export.F; + var IS_GLOBAL = type & $export.G; + var IS_STATIC = type & $export.S; + var IS_PROTO = type & $export.P; + var IS_BIND = type & $export.B; + var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; + var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); + var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); + var key, own, out, exp; + if (IS_GLOBAL) source = name; + for (key in source) { + // contains in native + own = !IS_FORCED && target && target[key] !== undefined; + // export native or passed + out = (own ? target : source)[key]; + // bind timers to global for call from export context + exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; + // extend global + if (target) redefine(target, key, out, type & $export.U); + // export + if (exports[key] != out) hide(exports, key, exp); + if (IS_PROTO && expProto[key] != out) expProto[key] = out; + } + }; + global.core = core; + // type bitmap + $export.F = 1; // forced + $export.G = 2; // global + $export.S = 4; // static + $export.P = 8; // proto + $export.B = 16; // bind + $export.W = 32; // wrap + $export.U = 64; // safe + $export.R = 128; // real proto method for `library` + module.exports = $export; + + +/***/ }), +/* 9 */ +/***/ (function(module, exports) { + + var core = module.exports = { version: '2.5.7' }; + if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef + + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + + var dP = __webpack_require__(11); + var createDesc = __webpack_require__(17); + module.exports = __webpack_require__(6) ? function (object, key, value) { + return dP.f(object, key, createDesc(1, value)); + } : function (object, key, value) { + object[key] = value; + return object; + }; + + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + + var anObject = __webpack_require__(12); + var IE8_DOM_DEFINE = __webpack_require__(14); + var toPrimitive = __webpack_require__(16); + var dP = Object.defineProperty; + + exports.f = __webpack_require__(6) ? Object.defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return dP(O, P, Attributes); + } catch (e) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; + }; + + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(13); + module.exports = function (it) { + if (!isObject(it)) throw TypeError(it + ' is not an object!'); + return it; + }; + + +/***/ }), +/* 13 */ +/***/ (function(module, exports) { + + module.exports = function (it) { + return typeof it === 'object' ? it !== null : typeof it === 'function'; + }; + + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + + module.exports = !__webpack_require__(6) && !__webpack_require__(7)(function () { + return Object.defineProperty(__webpack_require__(15)('div'), 'a', { get: function () { return 7; } }).a != 7; + }); + + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(13); + var document = __webpack_require__(4).document; + // typeof document.createElement is 'object' in old IE + var is = isObject(document) && isObject(document.createElement); + module.exports = function (it) { + return is ? document.createElement(it) : {}; + }; + + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.1.1 ToPrimitive(input [, PreferredType]) + var isObject = __webpack_require__(13); + // instead of the ES6 spec version, we didn't implement @@toPrimitive case + // and the second argument - flag - preferred type is a string + module.exports = function (it, S) { + if (!isObject(it)) return it; + var fn, val; + if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; + if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; + if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; + throw TypeError("Can't convert object to primitive value"); + }; + + +/***/ }), +/* 17 */ +/***/ (function(module, exports) { + + module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; + }; + + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(4); + var hide = __webpack_require__(10); + var has = __webpack_require__(5); + var SRC = __webpack_require__(19)('src'); + var TO_STRING = 'toString'; + var $toString = Function[TO_STRING]; + var TPL = ('' + $toString).split(TO_STRING); + + __webpack_require__(9).inspectSource = function (it) { + return $toString.call(it); + }; + + (module.exports = function (O, key, val, safe) { + var isFunction = typeof val == 'function'; + if (isFunction) has(val, 'name') || hide(val, 'name', key); + if (O[key] === val) return; + if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); + if (O === global) { + O[key] = val; + } else if (!safe) { + delete O[key]; + hide(O, key, val); + } else if (O[key]) { + O[key] = val; + } else { + hide(O, key, val); + } + // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative + })(Function.prototype, TO_STRING, function toString() { + return typeof this == 'function' && this[SRC] || $toString.call(this); + }); + + +/***/ }), +/* 19 */ +/***/ (function(module, exports) { + + var id = 0; + var px = Math.random(); + module.exports = function (key) { + return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); + }; + + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + + // optional / simple context binding + var aFunction = __webpack_require__(21); + module.exports = function (fn, that, length) { + aFunction(fn); + if (that === undefined) return fn; + switch (length) { + case 1: return function (a) { + return fn.call(that, a); + }; + case 2: return function (a, b) { + return fn.call(that, a, b); + }; + case 3: return function (a, b, c) { + return fn.call(that, a, b, c); + }; + } + return function (/* ...args */) { + return fn.apply(that, arguments); + }; + }; + + +/***/ }), +/* 21 */ +/***/ (function(module, exports) { + + module.exports = function (it) { + if (typeof it != 'function') throw TypeError(it + ' is not a function!'); + return it; + }; + + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + + var META = __webpack_require__(19)('meta'); + var isObject = __webpack_require__(13); + var has = __webpack_require__(5); + var setDesc = __webpack_require__(11).f; + var id = 0; + var isExtensible = Object.isExtensible || function () { + return true; + }; + var FREEZE = !__webpack_require__(7)(function () { + return isExtensible(Object.preventExtensions({})); + }); + var setMeta = function (it) { + setDesc(it, META, { value: { + i: 'O' + ++id, // object ID + w: {} // weak collections IDs + } }); + }; + var fastKey = function (it, create) { + // return primitive with prefix + if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!has(it, META)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; + // not necessary to add metadata + if (!create) return 'E'; + // add missing metadata + setMeta(it); + // return object ID + } return it[META].i; + }; + var getWeak = function (it, create) { + if (!has(it, META)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; + // not necessary to add metadata + if (!create) return false; + // add missing metadata + setMeta(it); + // return hash weak collections IDs + } return it[META].w; + }; + // add metadata on freeze-family methods calling + var onFreeze = function (it) { + if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); + return it; + }; + var meta = module.exports = { + KEY: META, + NEED: false, + fastKey: fastKey, + getWeak: getWeak, + onFreeze: onFreeze + }; + + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + + var core = __webpack_require__(9); + var global = __webpack_require__(4); + var SHARED = '__core-js_shared__'; + var store = global[SHARED] || (global[SHARED] = {}); + + (module.exports = function (key, value) { + return store[key] || (store[key] = value !== undefined ? value : {}); + })('versions', []).push({ + version: core.version, + mode: __webpack_require__(24) ? 'pure' : 'global', + copyright: '© 2018 Denis Pushkarev (zloirock.ru)' + }); + + +/***/ }), +/* 24 */ +/***/ (function(module, exports) { + + module.exports = false; + + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + + var def = __webpack_require__(11).f; + var has = __webpack_require__(5); + var TAG = __webpack_require__(26)('toStringTag'); + + module.exports = function (it, tag, stat) { + if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); + }; + + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { + + var store = __webpack_require__(23)('wks'); + var uid = __webpack_require__(19); + var Symbol = __webpack_require__(4).Symbol; + var USE_SYMBOL = typeof Symbol == 'function'; + + var $exports = module.exports = function (name) { + return store[name] || (store[name] = + USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); + }; + + $exports.store = store; + + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + + exports.f = __webpack_require__(26); + + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(4); + var core = __webpack_require__(9); + var LIBRARY = __webpack_require__(24); + var wksExt = __webpack_require__(27); + var defineProperty = __webpack_require__(11).f; + module.exports = function (name) { + var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); + if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); + }; + + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __webpack_require__) { + + // all enumerable object keys, includes symbols + var getKeys = __webpack_require__(30); + var gOPS = __webpack_require__(42); + var pIE = __webpack_require__(43); + module.exports = function (it) { + var result = getKeys(it); + var getSymbols = gOPS.f; + if (getSymbols) { + var symbols = getSymbols(it); + var isEnum = pIE.f; + var i = 0; + var key; + while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); + } return result; + }; + + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.14 / 15.2.3.14 Object.keys(O) + var $keys = __webpack_require__(31); + var enumBugKeys = __webpack_require__(41); + + module.exports = Object.keys || function keys(O) { + return $keys(O, enumBugKeys); + }; + + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __webpack_require__) { + + var has = __webpack_require__(5); + var toIObject = __webpack_require__(32); + var arrayIndexOf = __webpack_require__(36)(false); + var IE_PROTO = __webpack_require__(40)('IE_PROTO'); + + module.exports = function (object, names) { + var O = toIObject(object); + var i = 0; + var result = []; + var key; + for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); + // Don't enum bug & hidden keys + while (names.length > i) if (has(O, key = names[i++])) { + ~arrayIndexOf(result, key) || result.push(key); + } + return result; + }; + + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + + // to indexed object, toObject with fallback for non-array-like ES3 strings + var IObject = __webpack_require__(33); + var defined = __webpack_require__(35); + module.exports = function (it) { + return IObject(defined(it)); + }; + + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var cof = __webpack_require__(34); + // eslint-disable-next-line no-prototype-builtins + module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { + return cof(it) == 'String' ? it.split('') : Object(it); + }; + + +/***/ }), +/* 34 */ +/***/ (function(module, exports) { + + var toString = {}.toString; + + module.exports = function (it) { + return toString.call(it).slice(8, -1); + }; + + +/***/ }), +/* 35 */ +/***/ (function(module, exports) { + + // 7.2.1 RequireObjectCoercible(argument) + module.exports = function (it) { + if (it == undefined) throw TypeError("Can't call method on " + it); + return it; + }; + + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + + // false -> Array#indexOf + // true -> Array#includes + var toIObject = __webpack_require__(32); + var toLength = __webpack_require__(37); + var toAbsoluteIndex = __webpack_require__(39); + module.exports = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIObject($this); + var length = toLength(O.length); + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) if (IS_INCLUDES || index in O) { + if (O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; + }; + + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.1.15 ToLength + var toInteger = __webpack_require__(38); + var min = Math.min; + module.exports = function (it) { + return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 + }; + + +/***/ }), +/* 38 */ +/***/ (function(module, exports) { + + // 7.1.4 ToInteger + var ceil = Math.ceil; + var floor = Math.floor; + module.exports = function (it) { + return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); + }; + + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { + + var toInteger = __webpack_require__(38); + var max = Math.max; + var min = Math.min; + module.exports = function (index, length) { + index = toInteger(index); + return index < 0 ? max(index + length, 0) : min(index, length); + }; + + +/***/ }), +/* 40 */ +/***/ (function(module, exports, __webpack_require__) { + + var shared = __webpack_require__(23)('keys'); + var uid = __webpack_require__(19); + module.exports = function (key) { + return shared[key] || (shared[key] = uid(key)); + }; + + +/***/ }), +/* 41 */ +/***/ (function(module, exports) { + + // IE 8- don't enum bug keys + module.exports = ( + 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' + ).split(','); + + +/***/ }), +/* 42 */ +/***/ (function(module, exports) { + + exports.f = Object.getOwnPropertySymbols; + + +/***/ }), +/* 43 */ +/***/ (function(module, exports) { + + exports.f = {}.propertyIsEnumerable; + + +/***/ }), +/* 44 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.2.2 IsArray(argument) + var cof = __webpack_require__(34); + module.exports = Array.isArray || function isArray(arg) { + return cof(arg) == 'Array'; + }; + + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) + var anObject = __webpack_require__(12); + var dPs = __webpack_require__(46); + var enumBugKeys = __webpack_require__(41); + var IE_PROTO = __webpack_require__(40)('IE_PROTO'); + var Empty = function () { /* empty */ }; + var PROTOTYPE = 'prototype'; + + // Create object with fake `null` prototype: use iframe Object with cleared prototype + var createDict = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = __webpack_require__(15)('iframe'); + var i = enumBugKeys.length; + var lt = '<'; + var gt = '>'; + var iframeDocument; + iframe.style.display = 'none'; + __webpack_require__(47).appendChild(iframe); + iframe.src = 'javascript:'; // eslint-disable-line no-script-url + // createDict = iframe.contentWindow.Object; + // html.removeChild(iframe); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); + iframeDocument.close(); + createDict = iframeDocument.F; + while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; + return createDict(); + }; + + module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + Empty[PROTOTYPE] = anObject(O); + result = new Empty(); + Empty[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = createDict(); + return Properties === undefined ? result : dPs(result, Properties); + }; + + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { + + var dP = __webpack_require__(11); + var anObject = __webpack_require__(12); + var getKeys = __webpack_require__(30); + + module.exports = __webpack_require__(6) ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var keys = getKeys(Properties); + var length = keys.length; + var i = 0; + var P; + while (length > i) dP.f(O, P = keys[i++], Properties[P]); + return O; + }; + + +/***/ }), +/* 47 */ +/***/ (function(module, exports, __webpack_require__) { + + var document = __webpack_require__(4).document; + module.exports = document && document.documentElement; + + +/***/ }), +/* 48 */ +/***/ (function(module, exports, __webpack_require__) { + + // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window + var toIObject = __webpack_require__(32); + var gOPN = __webpack_require__(49).f; + var toString = {}.toString; + + var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; + + var getWindowNames = function (it) { + try { + return gOPN(it); + } catch (e) { + return windowNames.slice(); + } + }; + + module.exports.f = function getOwnPropertyNames(it) { + return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); + }; + + +/***/ }), +/* 49 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) + var $keys = __webpack_require__(31); + var hiddenKeys = __webpack_require__(41).concat('length', 'prototype'); + + exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return $keys(O, hiddenKeys); + }; + + +/***/ }), +/* 50 */ +/***/ (function(module, exports, __webpack_require__) { + + var pIE = __webpack_require__(43); + var createDesc = __webpack_require__(17); + var toIObject = __webpack_require__(32); + var toPrimitive = __webpack_require__(16); + var has = __webpack_require__(5); + var IE8_DOM_DEFINE = __webpack_require__(14); + var gOPD = Object.getOwnPropertyDescriptor; + + exports.f = __webpack_require__(6) ? gOPD : function getOwnPropertyDescriptor(O, P) { + O = toIObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) try { + return gOPD(O, P); + } catch (e) { /* empty */ } + if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); + }; + + +/***/ }), +/* 51 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) + $export($export.S, 'Object', { create: __webpack_require__(45) }); + + +/***/ }), +/* 52 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) + $export($export.S + $export.F * !__webpack_require__(6), 'Object', { defineProperty: __webpack_require__(11).f }); + + +/***/ }), +/* 53 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties) + $export($export.S + $export.F * !__webpack_require__(6), 'Object', { defineProperties: __webpack_require__(46) }); + + +/***/ }), +/* 54 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) + var toIObject = __webpack_require__(32); + var $getOwnPropertyDescriptor = __webpack_require__(50).f; + + __webpack_require__(55)('getOwnPropertyDescriptor', function () { + return function getOwnPropertyDescriptor(it, key) { + return $getOwnPropertyDescriptor(toIObject(it), key); + }; + }); + + +/***/ }), +/* 55 */ +/***/ (function(module, exports, __webpack_require__) { + + // most Object methods by ES6 should accept primitives + var $export = __webpack_require__(8); + var core = __webpack_require__(9); + var fails = __webpack_require__(7); + module.exports = function (KEY, exec) { + var fn = (core.Object || {})[KEY] || Object[KEY]; + var exp = {}; + exp[KEY] = exec(fn); + $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp); + }; + + +/***/ }), +/* 56 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.9 Object.getPrototypeOf(O) + var toObject = __webpack_require__(57); + var $getPrototypeOf = __webpack_require__(58); + + __webpack_require__(55)('getPrototypeOf', function () { + return function getPrototypeOf(it) { + return $getPrototypeOf(toObject(it)); + }; + }); + + +/***/ }), +/* 57 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.1.13 ToObject(argument) + var defined = __webpack_require__(35); + module.exports = function (it) { + return Object(defined(it)); + }; + + +/***/ }), +/* 58 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) + var has = __webpack_require__(5); + var toObject = __webpack_require__(57); + var IE_PROTO = __webpack_require__(40)('IE_PROTO'); + var ObjectProto = Object.prototype; + + module.exports = Object.getPrototypeOf || function (O) { + O = toObject(O); + if (has(O, IE_PROTO)) return O[IE_PROTO]; + if (typeof O.constructor == 'function' && O instanceof O.constructor) { + return O.constructor.prototype; + } return O instanceof Object ? ObjectProto : null; + }; + + +/***/ }), +/* 59 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.14 Object.keys(O) + var toObject = __webpack_require__(57); + var $keys = __webpack_require__(30); + + __webpack_require__(55)('keys', function () { + return function keys(it) { + return $keys(toObject(it)); + }; + }); + + +/***/ }), +/* 60 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.7 Object.getOwnPropertyNames(O) + __webpack_require__(55)('getOwnPropertyNames', function () { + return __webpack_require__(48).f; + }); + + +/***/ }), +/* 61 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.5 Object.freeze(O) + var isObject = __webpack_require__(13); + var meta = __webpack_require__(22).onFreeze; + + __webpack_require__(55)('freeze', function ($freeze) { + return function freeze(it) { + return $freeze && isObject(it) ? $freeze(meta(it)) : it; + }; + }); + + +/***/ }), +/* 62 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.17 Object.seal(O) + var isObject = __webpack_require__(13); + var meta = __webpack_require__(22).onFreeze; + + __webpack_require__(55)('seal', function ($seal) { + return function seal(it) { + return $seal && isObject(it) ? $seal(meta(it)) : it; + }; + }); + + +/***/ }), +/* 63 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.15 Object.preventExtensions(O) + var isObject = __webpack_require__(13); + var meta = __webpack_require__(22).onFreeze; + + __webpack_require__(55)('preventExtensions', function ($preventExtensions) { + return function preventExtensions(it) { + return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it; + }; + }); + + +/***/ }), +/* 64 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.12 Object.isFrozen(O) + var isObject = __webpack_require__(13); + + __webpack_require__(55)('isFrozen', function ($isFrozen) { + return function isFrozen(it) { + return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true; + }; + }); + + +/***/ }), +/* 65 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.13 Object.isSealed(O) + var isObject = __webpack_require__(13); + + __webpack_require__(55)('isSealed', function ($isSealed) { + return function isSealed(it) { + return isObject(it) ? $isSealed ? $isSealed(it) : false : true; + }; + }); + + +/***/ }), +/* 66 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.2.11 Object.isExtensible(O) + var isObject = __webpack_require__(13); + + __webpack_require__(55)('isExtensible', function ($isExtensible) { + return function isExtensible(it) { + return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false; + }; + }); + + +/***/ }), +/* 67 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.3.1 Object.assign(target, source) + var $export = __webpack_require__(8); + + $export($export.S + $export.F, 'Object', { assign: __webpack_require__(68) }); + + +/***/ }), +/* 68 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 19.1.2.1 Object.assign(target, source, ...) + var getKeys = __webpack_require__(30); + var gOPS = __webpack_require__(42); + var pIE = __webpack_require__(43); + var toObject = __webpack_require__(57); + var IObject = __webpack_require__(33); + var $assign = Object.assign; + + // should work with symbols and should have deterministic property order (V8 bug) + module.exports = !$assign || __webpack_require__(7)(function () { + var A = {}; + var B = {}; + // eslint-disable-next-line no-undef + var S = Symbol(); + var K = 'abcdefghijklmnopqrst'; + A[S] = 7; + K.split('').forEach(function (k) { B[k] = k; }); + return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; + }) ? function assign(target, source) { // eslint-disable-line no-unused-vars + var T = toObject(target); + var aLen = arguments.length; + var index = 1; + var getSymbols = gOPS.f; + var isEnum = pIE.f; + while (aLen > index) { + var S = IObject(arguments[index++]); + var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; + } return T; + } : $assign; + + +/***/ }), +/* 69 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.3.10 Object.is(value1, value2) + var $export = __webpack_require__(8); + $export($export.S, 'Object', { is: __webpack_require__(70) }); + + +/***/ }), +/* 70 */ +/***/ (function(module, exports) { + + // 7.2.9 SameValue(x, y) + module.exports = Object.is || function is(x, y) { + // eslint-disable-next-line no-self-compare + return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; + }; + + +/***/ }), +/* 71 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.1.3.19 Object.setPrototypeOf(O, proto) + var $export = __webpack_require__(8); + $export($export.S, 'Object', { setPrototypeOf: __webpack_require__(72).set }); + + +/***/ }), +/* 72 */ +/***/ (function(module, exports, __webpack_require__) { + + // Works with __proto__ only. Old v8 can't work with null proto objects. + /* eslint-disable no-proto */ + var isObject = __webpack_require__(13); + var anObject = __webpack_require__(12); + var check = function (O, proto) { + anObject(O); + if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); + }; + module.exports = { + set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line + function (test, buggy, set) { + try { + set = __webpack_require__(20)(Function.call, __webpack_require__(50).f(Object.prototype, '__proto__').set, 2); + set(test, []); + buggy = !(test instanceof Array); + } catch (e) { buggy = true; } + return function setPrototypeOf(O, proto) { + check(O, proto); + if (buggy) O.__proto__ = proto; + else set(O, proto); + return O; + }; + }({}, false) : undefined), + check: check + }; + + +/***/ }), +/* 73 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 19.1.3.6 Object.prototype.toString() + var classof = __webpack_require__(74); + var test = {}; + test[__webpack_require__(26)('toStringTag')] = 'z'; + if (test + '' != '[object z]') { + __webpack_require__(18)(Object.prototype, 'toString', function toString() { + return '[object ' + classof(this) + ']'; + }, true); + } + + +/***/ }), +/* 74 */ +/***/ (function(module, exports, __webpack_require__) { + + // getting tag from 19.1.3.6 Object.prototype.toString() + var cof = __webpack_require__(34); + var TAG = __webpack_require__(26)('toStringTag'); + // ES3 wrong here + var ARG = cof(function () { return arguments; }()) == 'Arguments'; + + // fallback for IE11 Script Access Denied error + var tryGet = function (it, key) { + try { + return it[key]; + } catch (e) { /* empty */ } + }; + + module.exports = function (it) { + var O, T, B; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T + // builtinTag case + : ARG ? cof(O) + // ES3 arguments fallback + : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; + }; + + +/***/ }), +/* 75 */ +/***/ (function(module, exports, __webpack_require__) { + + // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...) + var $export = __webpack_require__(8); + + $export($export.P, 'Function', { bind: __webpack_require__(76) }); + + +/***/ }), +/* 76 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var aFunction = __webpack_require__(21); + var isObject = __webpack_require__(13); + var invoke = __webpack_require__(77); + var arraySlice = [].slice; + var factories = {}; + + var construct = function (F, len, args) { + if (!(len in factories)) { + for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']'; + // eslint-disable-next-line no-new-func + factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')'); + } return factories[len](F, args); + }; + + module.exports = Function.bind || function bind(that /* , ...args */) { + var fn = aFunction(this); + var partArgs = arraySlice.call(arguments, 1); + var bound = function (/* args... */) { + var args = partArgs.concat(arraySlice.call(arguments)); + return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that); + }; + if (isObject(fn.prototype)) bound.prototype = fn.prototype; + return bound; + }; + + +/***/ }), +/* 77 */ +/***/ (function(module, exports) { + + // fast apply, http://jsperf.lnkit.com/fast-apply/5 + module.exports = function (fn, args, that) { + var un = that === undefined; + switch (args.length) { + case 0: return un ? fn() + : fn.call(that); + case 1: return un ? fn(args[0]) + : fn.call(that, args[0]); + case 2: return un ? fn(args[0], args[1]) + : fn.call(that, args[0], args[1]); + case 3: return un ? fn(args[0], args[1], args[2]) + : fn.call(that, args[0], args[1], args[2]); + case 4: return un ? fn(args[0], args[1], args[2], args[3]) + : fn.call(that, args[0], args[1], args[2], args[3]); + } return fn.apply(that, args); + }; + + +/***/ }), +/* 78 */ +/***/ (function(module, exports, __webpack_require__) { + + var dP = __webpack_require__(11).f; + var FProto = Function.prototype; + var nameRE = /^\s*function ([^ (]*)/; + var NAME = 'name'; + + // 19.2.4.2 name + NAME in FProto || __webpack_require__(6) && dP(FProto, NAME, { + configurable: true, + get: function () { + try { + return ('' + this).match(nameRE)[1]; + } catch (e) { + return ''; + } + } + }); + + +/***/ }), +/* 79 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var isObject = __webpack_require__(13); + var getPrototypeOf = __webpack_require__(58); + var HAS_INSTANCE = __webpack_require__(26)('hasInstance'); + var FunctionProto = Function.prototype; + // 19.2.3.6 Function.prototype[@@hasInstance](V) + if (!(HAS_INSTANCE in FunctionProto)) __webpack_require__(11).f(FunctionProto, HAS_INSTANCE, { value: function (O) { + if (typeof this != 'function' || !isObject(O)) return false; + if (!isObject(this.prototype)) return O instanceof this; + // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this: + while (O = getPrototypeOf(O)) if (this.prototype === O) return true; + return false; + } }); + + +/***/ }), +/* 80 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + var $parseInt = __webpack_require__(81); + // 18.2.5 parseInt(string, radix) + $export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt }); + + +/***/ }), +/* 81 */ +/***/ (function(module, exports, __webpack_require__) { + + var $parseInt = __webpack_require__(4).parseInt; + var $trim = __webpack_require__(82).trim; + var ws = __webpack_require__(83); + var hex = /^[-+]?0[xX]/; + + module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) { + var string = $trim(String(str), 3); + return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10)); + } : $parseInt; + + +/***/ }), +/* 82 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + var defined = __webpack_require__(35); + var fails = __webpack_require__(7); + var spaces = __webpack_require__(83); + var space = '[' + spaces + ']'; + var non = '\u200b\u0085'; + var ltrim = RegExp('^' + space + space + '*'); + var rtrim = RegExp(space + space + '*$'); + + var exporter = function (KEY, exec, ALIAS) { + var exp = {}; + var FORCE = fails(function () { + return !!spaces[KEY]() || non[KEY]() != non; + }); + var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY]; + if (ALIAS) exp[ALIAS] = fn; + $export($export.P + $export.F * FORCE, 'String', exp); + }; + + // 1 -> String#trimLeft + // 2 -> String#trimRight + // 3 -> String#trim + var trim = exporter.trim = function (string, TYPE) { + string = String(defined(string)); + if (TYPE & 1) string = string.replace(ltrim, ''); + if (TYPE & 2) string = string.replace(rtrim, ''); + return string; + }; + + module.exports = exporter; + + +/***/ }), +/* 83 */ +/***/ (function(module, exports) { + + module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' + + '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + + +/***/ }), +/* 84 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + var $parseFloat = __webpack_require__(85); + // 18.2.4 parseFloat(string) + $export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat }); + + +/***/ }), +/* 85 */ +/***/ (function(module, exports, __webpack_require__) { + + var $parseFloat = __webpack_require__(4).parseFloat; + var $trim = __webpack_require__(82).trim; + + module.exports = 1 / $parseFloat(__webpack_require__(83) + '-0') !== -Infinity ? function parseFloat(str) { + var string = $trim(String(str), 3); + var result = $parseFloat(string); + return result === 0 && string.charAt(0) == '-' ? -0 : result; + } : $parseFloat; + + +/***/ }), +/* 86 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var global = __webpack_require__(4); + var has = __webpack_require__(5); + var cof = __webpack_require__(34); + var inheritIfRequired = __webpack_require__(87); + var toPrimitive = __webpack_require__(16); + var fails = __webpack_require__(7); + var gOPN = __webpack_require__(49).f; + var gOPD = __webpack_require__(50).f; + var dP = __webpack_require__(11).f; + var $trim = __webpack_require__(82).trim; + var NUMBER = 'Number'; + var $Number = global[NUMBER]; + var Base = $Number; + var proto = $Number.prototype; + // Opera ~12 has broken Object#toString + var BROKEN_COF = cof(__webpack_require__(45)(proto)) == NUMBER; + var TRIM = 'trim' in String.prototype; + + // 7.1.3 ToNumber(argument) + var toNumber = function (argument) { + var it = toPrimitive(argument, false); + if (typeof it == 'string' && it.length > 2) { + it = TRIM ? it.trim() : $trim(it, 3); + var first = it.charCodeAt(0); + var third, radix, maxCode; + if (first === 43 || first === 45) { + third = it.charCodeAt(2); + if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix + } else if (first === 48) { + switch (it.charCodeAt(1)) { + case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i + case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i + default: return +it; + } + for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) { + code = digits.charCodeAt(i); + // parseInt parses a string to a first unavailable symbol + // but ToNumber should return NaN if a string contains unavailable symbols + if (code < 48 || code > maxCode) return NaN; + } return parseInt(digits, radix); + } + } return +it; + }; + + if (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) { + $Number = function Number(value) { + var it = arguments.length < 1 ? 0 : value; + var that = this; + return that instanceof $Number + // check on 1..constructor(foo) case + && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER) + ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it); + }; + for (var keys = __webpack_require__(6) ? gOPN(Base) : ( + // ES3: + 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + + // ES6 (in case, if modules with ES6 Number statics required before): + 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' + + 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger' + ).split(','), j = 0, key; keys.length > j; j++) { + if (has(Base, key = keys[j]) && !has($Number, key)) { + dP($Number, key, gOPD(Base, key)); + } + } + $Number.prototype = proto; + proto.constructor = $Number; + __webpack_require__(18)(global, NUMBER, $Number); + } + + +/***/ }), +/* 87 */ +/***/ (function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(13); + var setPrototypeOf = __webpack_require__(72).set; + module.exports = function (that, target, C) { + var S = target.constructor; + var P; + if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { + setPrototypeOf(that, P); + } return that; + }; + + +/***/ }), +/* 88 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var toInteger = __webpack_require__(38); + var aNumberValue = __webpack_require__(89); + var repeat = __webpack_require__(90); + var $toFixed = 1.0.toFixed; + var floor = Math.floor; + var data = [0, 0, 0, 0, 0, 0]; + var ERROR = 'Number.toFixed: incorrect invocation!'; + var ZERO = '0'; + + var multiply = function (n, c) { + var i = -1; + var c2 = c; + while (++i < 6) { + c2 += n * data[i]; + data[i] = c2 % 1e7; + c2 = floor(c2 / 1e7); + } + }; + var divide = function (n) { + var i = 6; + var c = 0; + while (--i >= 0) { + c += data[i]; + data[i] = floor(c / n); + c = (c % n) * 1e7; + } + }; + var numToString = function () { + var i = 6; + var s = ''; + while (--i >= 0) { + if (s !== '' || i === 0 || data[i] !== 0) { + var t = String(data[i]); + s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t; + } + } return s; + }; + var pow = function (x, n, acc) { + return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); + }; + var log = function (x) { + var n = 0; + var x2 = x; + while (x2 >= 4096) { + n += 12; + x2 /= 4096; + } + while (x2 >= 2) { + n += 1; + x2 /= 2; + } return n; + }; + + $export($export.P + $export.F * (!!$toFixed && ( + 0.00008.toFixed(3) !== '0.000' || + 0.9.toFixed(0) !== '1' || + 1.255.toFixed(2) !== '1.25' || + 1000000000000000128.0.toFixed(0) !== '1000000000000000128' + ) || !__webpack_require__(7)(function () { + // V8 ~ Android 4.3- + $toFixed.call({}); + })), 'Number', { + toFixed: function toFixed(fractionDigits) { + var x = aNumberValue(this, ERROR); + var f = toInteger(fractionDigits); + var s = ''; + var m = ZERO; + var e, z, j, k; + if (f < 0 || f > 20) throw RangeError(ERROR); + // eslint-disable-next-line no-self-compare + if (x != x) return 'NaN'; + if (x <= -1e21 || x >= 1e21) return String(x); + if (x < 0) { + s = '-'; + x = -x; + } + if (x > 1e-21) { + e = log(x * pow(2, 69, 1)) - 69; + z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1); + z *= 0x10000000000000; + e = 52 - e; + if (e > 0) { + multiply(0, z); + j = f; + while (j >= 7) { + multiply(1e7, 0); + j -= 7; + } + multiply(pow(10, j, 1), 0); + j = e - 1; + while (j >= 23) { + divide(1 << 23); + j -= 23; + } + divide(1 << j); + multiply(1, 1); + divide(2); + m = numToString(); + } else { + multiply(0, z); + multiply(1 << -e, 0); + m = numToString() + repeat.call(ZERO, f); + } + } + if (f > 0) { + k = m.length; + m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f)); + } else { + m = s + m; + } return m; + } + }); + + +/***/ }), +/* 89 */ +/***/ (function(module, exports, __webpack_require__) { + + var cof = __webpack_require__(34); + module.exports = function (it, msg) { + if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg); + return +it; + }; + + +/***/ }), +/* 90 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var toInteger = __webpack_require__(38); + var defined = __webpack_require__(35); + + module.exports = function repeat(count) { + var str = String(defined(this)); + var res = ''; + var n = toInteger(count); + if (n < 0 || n == Infinity) throw RangeError("Count can't be negative"); + for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str; + return res; + }; + + +/***/ }), +/* 91 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $fails = __webpack_require__(7); + var aNumberValue = __webpack_require__(89); + var $toPrecision = 1.0.toPrecision; + + $export($export.P + $export.F * ($fails(function () { + // IE7- + return $toPrecision.call(1, undefined) !== '1'; + }) || !$fails(function () { + // V8 ~ Android 4.3- + $toPrecision.call({}); + })), 'Number', { + toPrecision: function toPrecision(precision) { + var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!'); + return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision); + } + }); + + +/***/ }), +/* 92 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.1.2.1 Number.EPSILON + var $export = __webpack_require__(8); + + $export($export.S, 'Number', { EPSILON: Math.pow(2, -52) }); + + +/***/ }), +/* 93 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.1.2.2 Number.isFinite(number) + var $export = __webpack_require__(8); + var _isFinite = __webpack_require__(4).isFinite; + + $export($export.S, 'Number', { + isFinite: function isFinite(it) { + return typeof it == 'number' && _isFinite(it); + } + }); + + +/***/ }), +/* 94 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.1.2.3 Number.isInteger(number) + var $export = __webpack_require__(8); + + $export($export.S, 'Number', { isInteger: __webpack_require__(95) }); + + +/***/ }), +/* 95 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.1.2.3 Number.isInteger(number) + var isObject = __webpack_require__(13); + var floor = Math.floor; + module.exports = function isInteger(it) { + return !isObject(it) && isFinite(it) && floor(it) === it; + }; + + +/***/ }), +/* 96 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.1.2.4 Number.isNaN(number) + var $export = __webpack_require__(8); + + $export($export.S, 'Number', { + isNaN: function isNaN(number) { + // eslint-disable-next-line no-self-compare + return number != number; + } + }); + + +/***/ }), +/* 97 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.1.2.5 Number.isSafeInteger(number) + var $export = __webpack_require__(8); + var isInteger = __webpack_require__(95); + var abs = Math.abs; + + $export($export.S, 'Number', { + isSafeInteger: function isSafeInteger(number) { + return isInteger(number) && abs(number) <= 0x1fffffffffffff; + } + }); + + +/***/ }), +/* 98 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.1.2.6 Number.MAX_SAFE_INTEGER + var $export = __webpack_require__(8); + + $export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff }); + + +/***/ }), +/* 99 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.1.2.10 Number.MIN_SAFE_INTEGER + var $export = __webpack_require__(8); + + $export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff }); + + +/***/ }), +/* 100 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + var $parseFloat = __webpack_require__(85); + // 20.1.2.12 Number.parseFloat(string) + $export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat }); + + +/***/ }), +/* 101 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + var $parseInt = __webpack_require__(81); + // 20.1.2.13 Number.parseInt(string, radix) + $export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt }); + + +/***/ }), +/* 102 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.3 Math.acosh(x) + var $export = __webpack_require__(8); + var log1p = __webpack_require__(103); + var sqrt = Math.sqrt; + var $acosh = Math.acosh; + + $export($export.S + $export.F * !($acosh + // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 + && Math.floor($acosh(Number.MAX_VALUE)) == 710 + // Tor Browser bug: Math.acosh(Infinity) -> NaN + && $acosh(Infinity) == Infinity + ), 'Math', { + acosh: function acosh(x) { + return (x = +x) < 1 ? NaN : x > 94906265.62425156 + ? Math.log(x) + Math.LN2 + : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1)); + } + }); + + +/***/ }), +/* 103 */ +/***/ (function(module, exports) { + + // 20.2.2.20 Math.log1p(x) + module.exports = Math.log1p || function log1p(x) { + return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x); + }; + + +/***/ }), +/* 104 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.5 Math.asinh(x) + var $export = __webpack_require__(8); + var $asinh = Math.asinh; + + function asinh(x) { + return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1)); + } + + // Tor Browser bug: Math.asinh(0) -> -0 + $export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh }); + + +/***/ }), +/* 105 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.7 Math.atanh(x) + var $export = __webpack_require__(8); + var $atanh = Math.atanh; + + // Tor Browser bug: Math.atanh(-0) -> 0 + $export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', { + atanh: function atanh(x) { + return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2; + } + }); + + +/***/ }), +/* 106 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.9 Math.cbrt(x) + var $export = __webpack_require__(8); + var sign = __webpack_require__(107); + + $export($export.S, 'Math', { + cbrt: function cbrt(x) { + return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3); + } + }); + + +/***/ }), +/* 107 */ +/***/ (function(module, exports) { + + // 20.2.2.28 Math.sign(x) + module.exports = Math.sign || function sign(x) { + // eslint-disable-next-line no-self-compare + return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1; + }; + + +/***/ }), +/* 108 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.11 Math.clz32(x) + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { + clz32: function clz32(x) { + return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32; + } + }); + + +/***/ }), +/* 109 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.12 Math.cosh(x) + var $export = __webpack_require__(8); + var exp = Math.exp; + + $export($export.S, 'Math', { + cosh: function cosh(x) { + return (exp(x = +x) + exp(-x)) / 2; + } + }); + + +/***/ }), +/* 110 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.14 Math.expm1(x) + var $export = __webpack_require__(8); + var $expm1 = __webpack_require__(111); + + $export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 }); + + +/***/ }), +/* 111 */ +/***/ (function(module, exports) { + + // 20.2.2.14 Math.expm1(x) + var $expm1 = Math.expm1; + module.exports = (!$expm1 + // Old FF bug + || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 + // Tor Browser bug + || $expm1(-2e-17) != -2e-17 + ) ? function expm1(x) { + return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1; + } : $expm1; + + +/***/ }), +/* 112 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.16 Math.fround(x) + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { fround: __webpack_require__(113) }); + + +/***/ }), +/* 113 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.16 Math.fround(x) + var sign = __webpack_require__(107); + var pow = Math.pow; + var EPSILON = pow(2, -52); + var EPSILON32 = pow(2, -23); + var MAX32 = pow(2, 127) * (2 - EPSILON32); + var MIN32 = pow(2, -126); + + var roundTiesToEven = function (n) { + return n + 1 / EPSILON - 1 / EPSILON; + }; + + module.exports = Math.fround || function fround(x) { + var $abs = Math.abs(x); + var $sign = sign(x); + var a, result; + if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32; + a = (1 + EPSILON32 / EPSILON) * $abs; + result = a - (a - $abs); + // eslint-disable-next-line no-self-compare + if (result > MAX32 || result != result) return $sign * Infinity; + return $sign * result; + }; + + +/***/ }), +/* 114 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.17 Math.hypot([value1[, value2[, … ]]]) + var $export = __webpack_require__(8); + var abs = Math.abs; + + $export($export.S, 'Math', { + hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars + var sum = 0; + var i = 0; + var aLen = arguments.length; + var larg = 0; + var arg, div; + while (i < aLen) { + arg = abs(arguments[i++]); + if (larg < arg) { + div = larg / arg; + sum = sum * div * div + 1; + larg = arg; + } else if (arg > 0) { + div = arg / larg; + sum += div * div; + } else sum += arg; + } + return larg === Infinity ? Infinity : larg * Math.sqrt(sum); + } + }); + + +/***/ }), +/* 115 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.18 Math.imul(x, y) + var $export = __webpack_require__(8); + var $imul = Math.imul; + + // some WebKit versions fails with big numbers, some has wrong arity + $export($export.S + $export.F * __webpack_require__(7)(function () { + return $imul(0xffffffff, 5) != -5 || $imul.length != 2; + }), 'Math', { + imul: function imul(x, y) { + var UINT16 = 0xffff; + var xn = +x; + var yn = +y; + var xl = UINT16 & xn; + var yl = UINT16 & yn; + return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); + } + }); + + +/***/ }), +/* 116 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.21 Math.log10(x) + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { + log10: function log10(x) { + return Math.log(x) * Math.LOG10E; + } + }); + + +/***/ }), +/* 117 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.20 Math.log1p(x) + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { log1p: __webpack_require__(103) }); + + +/***/ }), +/* 118 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.22 Math.log2(x) + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { + log2: function log2(x) { + return Math.log(x) / Math.LN2; + } + }); + + +/***/ }), +/* 119 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.28 Math.sign(x) + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { sign: __webpack_require__(107) }); + + +/***/ }), +/* 120 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.30 Math.sinh(x) + var $export = __webpack_require__(8); + var expm1 = __webpack_require__(111); + var exp = Math.exp; + + // V8 near Chromium 38 has a problem with very small numbers + $export($export.S + $export.F * __webpack_require__(7)(function () { + return !Math.sinh(-2e-17) != -2e-17; + }), 'Math', { + sinh: function sinh(x) { + return Math.abs(x = +x) < 1 + ? (expm1(x) - expm1(-x)) / 2 + : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2); + } + }); + + +/***/ }), +/* 121 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.33 Math.tanh(x) + var $export = __webpack_require__(8); + var expm1 = __webpack_require__(111); + var exp = Math.exp; + + $export($export.S, 'Math', { + tanh: function tanh(x) { + var a = expm1(x = +x); + var b = expm1(-x); + return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x)); + } + }); + + +/***/ }), +/* 122 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.2.2.34 Math.trunc(x) + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { + trunc: function trunc(it) { + return (it > 0 ? Math.floor : Math.ceil)(it); + } + }); + + +/***/ }), +/* 123 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + var toAbsoluteIndex = __webpack_require__(39); + var fromCharCode = String.fromCharCode; + var $fromCodePoint = String.fromCodePoint; + + // length should be 1, old FF problem + $export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { + // 21.1.2.2 String.fromCodePoint(...codePoints) + fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars + var res = []; + var aLen = arguments.length; + var i = 0; + var code; + while (aLen > i) { + code = +arguments[i++]; + if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); + res.push(code < 0x10000 + ? fromCharCode(code) + : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00) + ); + } return res.join(''); + } + }); + + +/***/ }), +/* 124 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + var toIObject = __webpack_require__(32); + var toLength = __webpack_require__(37); + + $export($export.S, 'String', { + // 21.1.2.4 String.raw(callSite, ...substitutions) + raw: function raw(callSite) { + var tpl = toIObject(callSite.raw); + var len = toLength(tpl.length); + var aLen = arguments.length; + var res = []; + var i = 0; + while (len > i) { + res.push(String(tpl[i++])); + if (i < aLen) res.push(String(arguments[i])); + } return res.join(''); + } + }); + + +/***/ }), +/* 125 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 21.1.3.25 String.prototype.trim() + __webpack_require__(82)('trim', function ($trim) { + return function trim() { + return $trim(this, 3); + }; + }); + + +/***/ }), +/* 126 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $at = __webpack_require__(127)(true); + + // 21.1.3.27 String.prototype[@@iterator]() + __webpack_require__(128)(String, 'String', function (iterated) { + this._t = String(iterated); // target + this._i = 0; // next index + // 21.1.5.2.1 %StringIteratorPrototype%.next() + }, function () { + var O = this._t; + var index = this._i; + var point; + if (index >= O.length) return { value: undefined, done: true }; + point = $at(O, index); + this._i += point.length; + return { value: point, done: false }; + }); + + +/***/ }), +/* 127 */ +/***/ (function(module, exports, __webpack_require__) { + + var toInteger = __webpack_require__(38); + var defined = __webpack_require__(35); + // true -> String#at + // false -> String#codePointAt + module.exports = function (TO_STRING) { + return function (that, pos) { + var s = String(defined(that)); + var i = toInteger(pos); + var l = s.length; + var a, b; + if (i < 0 || i >= l) return TO_STRING ? '' : undefined; + a = s.charCodeAt(i); + return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff + ? TO_STRING ? s.charAt(i) : a + : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; + }; + }; + + +/***/ }), +/* 128 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var LIBRARY = __webpack_require__(24); + var $export = __webpack_require__(8); + var redefine = __webpack_require__(18); + var hide = __webpack_require__(10); + var Iterators = __webpack_require__(129); + var $iterCreate = __webpack_require__(130); + var setToStringTag = __webpack_require__(25); + var getPrototypeOf = __webpack_require__(58); + var ITERATOR = __webpack_require__(26)('iterator'); + var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` + var FF_ITERATOR = '@@iterator'; + var KEYS = 'keys'; + var VALUES = 'values'; + + var returnThis = function () { return this; }; + + module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { + $iterCreate(Constructor, NAME, next); + var getMethod = function (kind) { + if (!BUGGY && kind in proto) return proto[kind]; + switch (kind) { + case KEYS: return function keys() { return new Constructor(this, kind); }; + case VALUES: return function values() { return new Constructor(this, kind); }; + } return function entries() { return new Constructor(this, kind); }; + }; + var TAG = NAME + ' Iterator'; + var DEF_VALUES = DEFAULT == VALUES; + var VALUES_BUG = false; + var proto = Base.prototype; + var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; + var $default = $native || getMethod(DEFAULT); + var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; + var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; + var methods, key, IteratorPrototype; + // Fix native + if ($anyNative) { + IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); + if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { + // Set @@toStringTag to native iterators + setToStringTag(IteratorPrototype, TAG, true); + // fix for some old engines + if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); + } + } + // fix Array#{values, @@iterator}.name in V8 / FF + if (DEF_VALUES && $native && $native.name !== VALUES) { + VALUES_BUG = true; + $default = function values() { return $native.call(this); }; + } + // Define iterator + if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { + hide(proto, ITERATOR, $default); + } + // Plug for library + Iterators[NAME] = $default; + Iterators[TAG] = returnThis; + if (DEFAULT) { + methods = { + values: DEF_VALUES ? $default : getMethod(VALUES), + keys: IS_SET ? $default : getMethod(KEYS), + entries: $entries + }; + if (FORCED) for (key in methods) { + if (!(key in proto)) redefine(proto, key, methods[key]); + } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); + } + return methods; + }; + + +/***/ }), +/* 129 */ +/***/ (function(module, exports) { + + module.exports = {}; + + +/***/ }), +/* 130 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var create = __webpack_require__(45); + var descriptor = __webpack_require__(17); + var setToStringTag = __webpack_require__(25); + var IteratorPrototype = {}; + + // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() + __webpack_require__(10)(IteratorPrototype, __webpack_require__(26)('iterator'), function () { return this; }); + + module.exports = function (Constructor, NAME, next) { + Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); + setToStringTag(Constructor, NAME + ' Iterator'); + }; + + +/***/ }), +/* 131 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $at = __webpack_require__(127)(false); + $export($export.P, 'String', { + // 21.1.3.3 String.prototype.codePointAt(pos) + codePointAt: function codePointAt(pos) { + return $at(this, pos); + } + }); + + +/***/ }), +/* 132 */ +/***/ (function(module, exports, __webpack_require__) { + + // 21.1.3.6 String.prototype.endsWith(searchString [, endPosition]) + 'use strict'; + var $export = __webpack_require__(8); + var toLength = __webpack_require__(37); + var context = __webpack_require__(133); + var ENDS_WITH = 'endsWith'; + var $endsWith = ''[ENDS_WITH]; + + $export($export.P + $export.F * __webpack_require__(135)(ENDS_WITH), 'String', { + endsWith: function endsWith(searchString /* , endPosition = @length */) { + var that = context(this, searchString, ENDS_WITH); + var endPosition = arguments.length > 1 ? arguments[1] : undefined; + var len = toLength(that.length); + var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len); + var search = String(searchString); + return $endsWith + ? $endsWith.call(that, search, end) + : that.slice(end - search.length, end) === search; + } + }); + + +/***/ }), +/* 133 */ +/***/ (function(module, exports, __webpack_require__) { + + // helper for String#{startsWith, endsWith, includes} + var isRegExp = __webpack_require__(134); + var defined = __webpack_require__(35); + + module.exports = function (that, searchString, NAME) { + if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); + return String(defined(that)); + }; + + +/***/ }), +/* 134 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.2.8 IsRegExp(argument) + var isObject = __webpack_require__(13); + var cof = __webpack_require__(34); + var MATCH = __webpack_require__(26)('match'); + module.exports = function (it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); + }; + + +/***/ }), +/* 135 */ +/***/ (function(module, exports, __webpack_require__) { + + var MATCH = __webpack_require__(26)('match'); + module.exports = function (KEY) { + var re = /./; + try { + '/./'[KEY](re); + } catch (e) { + try { + re[MATCH] = false; + return !'/./'[KEY](re); + } catch (f) { /* empty */ } + } return true; + }; + + +/***/ }), +/* 136 */ +/***/ (function(module, exports, __webpack_require__) { + + // 21.1.3.7 String.prototype.includes(searchString, position = 0) + 'use strict'; + var $export = __webpack_require__(8); + var context = __webpack_require__(133); + var INCLUDES = 'includes'; + + $export($export.P + $export.F * __webpack_require__(135)(INCLUDES), 'String', { + includes: function includes(searchString /* , position = 0 */) { + return !!~context(this, searchString, INCLUDES) + .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + +/***/ }), +/* 137 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + + $export($export.P, 'String', { + // 21.1.3.13 String.prototype.repeat(count) + repeat: __webpack_require__(90) + }); + + +/***/ }), +/* 138 */ +/***/ (function(module, exports, __webpack_require__) { + + // 21.1.3.18 String.prototype.startsWith(searchString [, position ]) + 'use strict'; + var $export = __webpack_require__(8); + var toLength = __webpack_require__(37); + var context = __webpack_require__(133); + var STARTS_WITH = 'startsWith'; + var $startsWith = ''[STARTS_WITH]; + + $export($export.P + $export.F * __webpack_require__(135)(STARTS_WITH), 'String', { + startsWith: function startsWith(searchString /* , position = 0 */) { + var that = context(this, searchString, STARTS_WITH); + var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = String(searchString); + return $startsWith + ? $startsWith.call(that, search, index) + : that.slice(index, index + search.length) === search; + } + }); + + +/***/ }), +/* 139 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.2 String.prototype.anchor(name) + __webpack_require__(140)('anchor', function (createHTML) { + return function anchor(name) { + return createHTML(this, 'a', 'name', name); + }; + }); + + +/***/ }), +/* 140 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + var fails = __webpack_require__(7); + var defined = __webpack_require__(35); + var quot = /"/g; + // B.2.3.2.1 CreateHTML(string, tag, attribute, value) + var createHTML = function (string, tag, attribute, value) { + var S = String(defined(string)); + var p1 = '<' + tag; + if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '"') + '"'; + return p1 + '>' + S + ''; + }; + module.exports = function (NAME, exec) { + var O = {}; + O[NAME] = exec(createHTML); + $export($export.P + $export.F * fails(function () { + var test = ''[NAME]('"'); + return test !== test.toLowerCase() || test.split('"').length > 3; + }), 'String', O); + }; + + +/***/ }), +/* 141 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.3 String.prototype.big() + __webpack_require__(140)('big', function (createHTML) { + return function big() { + return createHTML(this, 'big', '', ''); + }; + }); + + +/***/ }), +/* 142 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.4 String.prototype.blink() + __webpack_require__(140)('blink', function (createHTML) { + return function blink() { + return createHTML(this, 'blink', '', ''); + }; + }); + + +/***/ }), +/* 143 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.5 String.prototype.bold() + __webpack_require__(140)('bold', function (createHTML) { + return function bold() { + return createHTML(this, 'b', '', ''); + }; + }); + + +/***/ }), +/* 144 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.6 String.prototype.fixed() + __webpack_require__(140)('fixed', function (createHTML) { + return function fixed() { + return createHTML(this, 'tt', '', ''); + }; + }); + + +/***/ }), +/* 145 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.7 String.prototype.fontcolor(color) + __webpack_require__(140)('fontcolor', function (createHTML) { + return function fontcolor(color) { + return createHTML(this, 'font', 'color', color); + }; + }); + + +/***/ }), +/* 146 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.8 String.prototype.fontsize(size) + __webpack_require__(140)('fontsize', function (createHTML) { + return function fontsize(size) { + return createHTML(this, 'font', 'size', size); + }; + }); + + +/***/ }), +/* 147 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.9 String.prototype.italics() + __webpack_require__(140)('italics', function (createHTML) { + return function italics() { + return createHTML(this, 'i', '', ''); + }; + }); + + +/***/ }), +/* 148 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.10 String.prototype.link(url) + __webpack_require__(140)('link', function (createHTML) { + return function link(url) { + return createHTML(this, 'a', 'href', url); + }; + }); + + +/***/ }), +/* 149 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.11 String.prototype.small() + __webpack_require__(140)('small', function (createHTML) { + return function small() { + return createHTML(this, 'small', '', ''); + }; + }); + + +/***/ }), +/* 150 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.12 String.prototype.strike() + __webpack_require__(140)('strike', function (createHTML) { + return function strike() { + return createHTML(this, 'strike', '', ''); + }; + }); + + +/***/ }), +/* 151 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.13 String.prototype.sub() + __webpack_require__(140)('sub', function (createHTML) { + return function sub() { + return createHTML(this, 'sub', '', ''); + }; + }); + + +/***/ }), +/* 152 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // B.2.3.14 String.prototype.sup() + __webpack_require__(140)('sup', function (createHTML) { + return function sup() { + return createHTML(this, 'sup', '', ''); + }; + }); + + +/***/ }), +/* 153 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.3.3.1 / 15.9.4.4 Date.now() + var $export = __webpack_require__(8); + + $export($export.S, 'Date', { now: function () { return new Date().getTime(); } }); + + +/***/ }), +/* 154 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var toObject = __webpack_require__(57); + var toPrimitive = __webpack_require__(16); + + $export($export.P + $export.F * __webpack_require__(7)(function () { + return new Date(NaN).toJSON() !== null + || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1; + }), 'Date', { + // eslint-disable-next-line no-unused-vars + toJSON: function toJSON(key) { + var O = toObject(this); + var pv = toPrimitive(O); + return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); + } + }); + + +/***/ }), +/* 155 */ +/***/ (function(module, exports, __webpack_require__) { + + // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() + var $export = __webpack_require__(8); + var toISOString = __webpack_require__(156); + + // PhantomJS / old WebKit has a broken implementations + $export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', { + toISOString: toISOString + }); + + +/***/ }), +/* 156 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() + var fails = __webpack_require__(7); + var getTime = Date.prototype.getTime; + var $toISOString = Date.prototype.toISOString; + + var lz = function (num) { + return num > 9 ? num : '0' + num; + }; + + // PhantomJS / old WebKit has a broken implementations + module.exports = (fails(function () { + return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z'; + }) || !fails(function () { + $toISOString.call(new Date(NaN)); + })) ? function toISOString() { + if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value'); + var d = this; + var y = d.getUTCFullYear(); + var m = d.getUTCMilliseconds(); + var s = y < 0 ? '-' : y > 9999 ? '+' : ''; + return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) + + '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) + + 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) + + ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z'; + } : $toISOString; + + +/***/ }), +/* 157 */ +/***/ (function(module, exports, __webpack_require__) { + + var DateProto = Date.prototype; + var INVALID_DATE = 'Invalid Date'; + var TO_STRING = 'toString'; + var $toString = DateProto[TO_STRING]; + var getTime = DateProto.getTime; + if (new Date(NaN) + '' != INVALID_DATE) { + __webpack_require__(18)(DateProto, TO_STRING, function toString() { + var value = getTime.call(this); + // eslint-disable-next-line no-self-compare + return value === value ? $toString.call(this) : INVALID_DATE; + }); + } + + +/***/ }), +/* 158 */ +/***/ (function(module, exports, __webpack_require__) { + + var TO_PRIMITIVE = __webpack_require__(26)('toPrimitive'); + var proto = Date.prototype; + + if (!(TO_PRIMITIVE in proto)) __webpack_require__(10)(proto, TO_PRIMITIVE, __webpack_require__(159)); + + +/***/ }), +/* 159 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var anObject = __webpack_require__(12); + var toPrimitive = __webpack_require__(16); + var NUMBER = 'number'; + + module.exports = function (hint) { + if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint'); + return toPrimitive(anObject(this), hint != NUMBER); + }; + + +/***/ }), +/* 160 */ +/***/ (function(module, exports, __webpack_require__) { + + // 22.1.2.2 / 15.4.3.2 Array.isArray(arg) + var $export = __webpack_require__(8); + + $export($export.S, 'Array', { isArray: __webpack_require__(44) }); + + +/***/ }), +/* 161 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var ctx = __webpack_require__(20); + var $export = __webpack_require__(8); + var toObject = __webpack_require__(57); + var call = __webpack_require__(162); + var isArrayIter = __webpack_require__(163); + var toLength = __webpack_require__(37); + var createProperty = __webpack_require__(164); + var getIterFn = __webpack_require__(165); + + $export($export.S + $export.F * !__webpack_require__(166)(function (iter) { Array.from(iter); }), 'Array', { + // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined) + from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { + var O = toObject(arrayLike); + var C = typeof this == 'function' ? this : Array; + var aLen = arguments.length; + var mapfn = aLen > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var index = 0; + var iterFn = getIterFn(O); + var length, result, step, iterator; + if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); + // if object isn't iterable or it's array with default iterator - use simple case + if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { + for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { + createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); + } + } else { + length = toLength(O.length); + for (result = new C(length); length > index; index++) { + createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); + } + } + result.length = index; + return result; + } + }); + + +/***/ }), +/* 162 */ +/***/ (function(module, exports, __webpack_require__) { + + // call something on iterator step with safe closing on error + var anObject = __webpack_require__(12); + module.exports = function (iterator, fn, value, entries) { + try { + return entries ? fn(anObject(value)[0], value[1]) : fn(value); + // 7.4.6 IteratorClose(iterator, completion) + } catch (e) { + var ret = iterator['return']; + if (ret !== undefined) anObject(ret.call(iterator)); + throw e; + } + }; + + +/***/ }), +/* 163 */ +/***/ (function(module, exports, __webpack_require__) { + + // check on default Array iterator + var Iterators = __webpack_require__(129); + var ITERATOR = __webpack_require__(26)('iterator'); + var ArrayProto = Array.prototype; + + module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); + }; + + +/***/ }), +/* 164 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $defineProperty = __webpack_require__(11); + var createDesc = __webpack_require__(17); + + module.exports = function (object, index, value) { + if (index in object) $defineProperty.f(object, index, createDesc(0, value)); + else object[index] = value; + }; + + +/***/ }), +/* 165 */ +/***/ (function(module, exports, __webpack_require__) { + + var classof = __webpack_require__(74); + var ITERATOR = __webpack_require__(26)('iterator'); + var Iterators = __webpack_require__(129); + module.exports = __webpack_require__(9).getIteratorMethod = function (it) { + if (it != undefined) return it[ITERATOR] + || it['@@iterator'] + || Iterators[classof(it)]; + }; + + +/***/ }), +/* 166 */ +/***/ (function(module, exports, __webpack_require__) { + + var ITERATOR = __webpack_require__(26)('iterator'); + var SAFE_CLOSING = false; + + try { + var riter = [7][ITERATOR](); + riter['return'] = function () { SAFE_CLOSING = true; }; + // eslint-disable-next-line no-throw-literal + Array.from(riter, function () { throw 2; }); + } catch (e) { /* empty */ } + + module.exports = function (exec, skipClosing) { + if (!skipClosing && !SAFE_CLOSING) return false; + var safe = false; + try { + var arr = [7]; + var iter = arr[ITERATOR](); + iter.next = function () { return { done: safe = true }; }; + arr[ITERATOR] = function () { return iter; }; + exec(arr); + } catch (e) { /* empty */ } + return safe; + }; + + +/***/ }), +/* 167 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var createProperty = __webpack_require__(164); + + // WebKit Array.of isn't generic + $export($export.S + $export.F * __webpack_require__(7)(function () { + function F() { /* empty */ } + return !(Array.of.call(F) instanceof F); + }), 'Array', { + // 22.1.2.3 Array.of( ...items) + of: function of(/* ...args */) { + var index = 0; + var aLen = arguments.length; + var result = new (typeof this == 'function' ? this : Array)(aLen); + while (aLen > index) createProperty(result, index, arguments[index++]); + result.length = aLen; + return result; + } + }); + + +/***/ }), +/* 168 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 22.1.3.13 Array.prototype.join(separator) + var $export = __webpack_require__(8); + var toIObject = __webpack_require__(32); + var arrayJoin = [].join; + + // fallback for not array-like strings + $export($export.P + $export.F * (__webpack_require__(33) != Object || !__webpack_require__(169)(arrayJoin)), 'Array', { + join: function join(separator) { + return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator); + } + }); + + +/***/ }), +/* 169 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var fails = __webpack_require__(7); + + module.exports = function (method, arg) { + return !!method && fails(function () { + // eslint-disable-next-line no-useless-call + arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null); + }); + }; + + +/***/ }), +/* 170 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var html = __webpack_require__(47); + var cof = __webpack_require__(34); + var toAbsoluteIndex = __webpack_require__(39); + var toLength = __webpack_require__(37); + var arraySlice = [].slice; + + // fallback for not array-like ES3 strings and DOM objects + $export($export.P + $export.F * __webpack_require__(7)(function () { + if (html) arraySlice.call(html); + }), 'Array', { + slice: function slice(begin, end) { + var len = toLength(this.length); + var klass = cof(this); + end = end === undefined ? len : end; + if (klass == 'Array') return arraySlice.call(this, begin, end); + var start = toAbsoluteIndex(begin, len); + var upTo = toAbsoluteIndex(end, len); + var size = toLength(upTo - start); + var cloned = new Array(size); + var i = 0; + for (; i < size; i++) cloned[i] = klass == 'String' + ? this.charAt(start + i) + : this[start + i]; + return cloned; + } + }); + + +/***/ }), +/* 171 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var aFunction = __webpack_require__(21); + var toObject = __webpack_require__(57); + var fails = __webpack_require__(7); + var $sort = [].sort; + var test = [1, 2, 3]; + + $export($export.P + $export.F * (fails(function () { + // IE8- + test.sort(undefined); + }) || !fails(function () { + // V8 bug + test.sort(null); + // Old WebKit + }) || !__webpack_require__(169)($sort)), 'Array', { + // 22.1.3.25 Array.prototype.sort(comparefn) + sort: function sort(comparefn) { + return comparefn === undefined + ? $sort.call(toObject(this)) + : $sort.call(toObject(this), aFunction(comparefn)); + } + }); + + +/***/ }), +/* 172 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $forEach = __webpack_require__(173)(0); + var STRICT = __webpack_require__(169)([].forEach, true); + + $export($export.P + $export.F * !STRICT, 'Array', { + // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg]) + forEach: function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments[1]); + } + }); + + +/***/ }), +/* 173 */ +/***/ (function(module, exports, __webpack_require__) { + + // 0 -> Array#forEach + // 1 -> Array#map + // 2 -> Array#filter + // 3 -> Array#some + // 4 -> Array#every + // 5 -> Array#find + // 6 -> Array#findIndex + var ctx = __webpack_require__(20); + var IObject = __webpack_require__(33); + var toObject = __webpack_require__(57); + var toLength = __webpack_require__(37); + var asc = __webpack_require__(174); + module.exports = function (TYPE, $create) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + var create = $create || asc; + return function ($this, callbackfn, that) { + var O = toObject($this); + var self = IObject(O); + var f = ctx(callbackfn, that, 3); + var length = toLength(self.length); + var index = 0; + var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; + var val, res; + for (;length > index; index++) if (NO_HOLES || index in self) { + val = self[index]; + res = f(val, index, O); + if (TYPE) { + if (IS_MAP) result[index] = res; // map + else if (res) switch (TYPE) { + case 3: return true; // some + case 5: return val; // find + case 6: return index; // findIndex + case 2: result.push(val); // filter + } else if (IS_EVERY) return false; // every + } + } + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; + }; + }; + + +/***/ }), +/* 174 */ +/***/ (function(module, exports, __webpack_require__) { + + // 9.4.2.3 ArraySpeciesCreate(originalArray, length) + var speciesConstructor = __webpack_require__(175); + + module.exports = function (original, length) { + return new (speciesConstructor(original))(length); + }; + + +/***/ }), +/* 175 */ +/***/ (function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(13); + var isArray = __webpack_require__(44); + var SPECIES = __webpack_require__(26)('species'); + + module.exports = function (original) { + var C; + if (isArray(original)) { + C = original.constructor; + // cross-realm fallback + if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; + if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } return C === undefined ? Array : C; + }; + + +/***/ }), +/* 176 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $map = __webpack_require__(173)(1); + + $export($export.P + $export.F * !__webpack_require__(169)([].map, true), 'Array', { + // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg]) + map: function map(callbackfn /* , thisArg */) { + return $map(this, callbackfn, arguments[1]); + } + }); + + +/***/ }), +/* 177 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $filter = __webpack_require__(173)(2); + + $export($export.P + $export.F * !__webpack_require__(169)([].filter, true), 'Array', { + // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg]) + filter: function filter(callbackfn /* , thisArg */) { + return $filter(this, callbackfn, arguments[1]); + } + }); + + +/***/ }), +/* 178 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $some = __webpack_require__(173)(3); + + $export($export.P + $export.F * !__webpack_require__(169)([].some, true), 'Array', { + // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg]) + some: function some(callbackfn /* , thisArg */) { + return $some(this, callbackfn, arguments[1]); + } + }); + + +/***/ }), +/* 179 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $every = __webpack_require__(173)(4); + + $export($export.P + $export.F * !__webpack_require__(169)([].every, true), 'Array', { + // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg]) + every: function every(callbackfn /* , thisArg */) { + return $every(this, callbackfn, arguments[1]); + } + }); + + +/***/ }), +/* 180 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $reduce = __webpack_require__(181); + + $export($export.P + $export.F * !__webpack_require__(169)([].reduce, true), 'Array', { + // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue]) + reduce: function reduce(callbackfn /* , initialValue */) { + return $reduce(this, callbackfn, arguments.length, arguments[1], false); + } + }); + + +/***/ }), +/* 181 */ +/***/ (function(module, exports, __webpack_require__) { + + var aFunction = __webpack_require__(21); + var toObject = __webpack_require__(57); + var IObject = __webpack_require__(33); + var toLength = __webpack_require__(37); + + module.exports = function (that, callbackfn, aLen, memo, isRight) { + aFunction(callbackfn); + var O = toObject(that); + var self = IObject(O); + var length = toLength(O.length); + var index = isRight ? length - 1 : 0; + var i = isRight ? -1 : 1; + if (aLen < 2) for (;;) { + if (index in self) { + memo = self[index]; + index += i; + break; + } + index += i; + if (isRight ? index < 0 : length <= index) { + throw TypeError('Reduce of empty array with no initial value'); + } + } + for (;isRight ? index >= 0 : length > index; index += i) if (index in self) { + memo = callbackfn(memo, self[index], index, O); + } + return memo; + }; + + +/***/ }), +/* 182 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $reduce = __webpack_require__(181); + + $export($export.P + $export.F * !__webpack_require__(169)([].reduceRight, true), 'Array', { + // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue]) + reduceRight: function reduceRight(callbackfn /* , initialValue */) { + return $reduce(this, callbackfn, arguments.length, arguments[1], true); + } + }); + + +/***/ }), +/* 183 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $indexOf = __webpack_require__(36)(false); + var $native = [].indexOf; + var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0; + + $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(169)($native)), 'Array', { + // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex]) + indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { + return NEGATIVE_ZERO + // convert -0 to +0 + ? $native.apply(this, arguments) || 0 + : $indexOf(this, searchElement, arguments[1]); + } + }); + + +/***/ }), +/* 184 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var toIObject = __webpack_require__(32); + var toInteger = __webpack_require__(38); + var toLength = __webpack_require__(37); + var $native = [].lastIndexOf; + var NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0; + + $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(169)($native)), 'Array', { + // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex]) + lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { + // convert -0 to +0 + if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0; + var O = toIObject(this); + var length = toLength(O.length); + var index = length - 1; + if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1])); + if (index < 0) index = length + index; + for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0; + return -1; + } + }); + + +/***/ }), +/* 185 */ +/***/ (function(module, exports, __webpack_require__) { + + // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) + var $export = __webpack_require__(8); + + $export($export.P, 'Array', { copyWithin: __webpack_require__(186) }); + + __webpack_require__(187)('copyWithin'); + + +/***/ }), +/* 186 */ +/***/ (function(module, exports, __webpack_require__) { + + // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) + 'use strict'; + var toObject = __webpack_require__(57); + var toAbsoluteIndex = __webpack_require__(39); + var toLength = __webpack_require__(37); + + module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { + var O = toObject(this); + var len = toLength(O.length); + var to = toAbsoluteIndex(target, len); + var from = toAbsoluteIndex(start, len); + var end = arguments.length > 2 ? arguments[2] : undefined; + var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); + var inc = 1; + if (from < to && to < from + count) { + inc = -1; + from += count - 1; + to += count - 1; + } + while (count-- > 0) { + if (from in O) O[to] = O[from]; + else delete O[to]; + to += inc; + from += inc; + } return O; + }; + + +/***/ }), +/* 187 */ +/***/ (function(module, exports, __webpack_require__) { + + // 22.1.3.31 Array.prototype[@@unscopables] + var UNSCOPABLES = __webpack_require__(26)('unscopables'); + var ArrayProto = Array.prototype; + if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(10)(ArrayProto, UNSCOPABLES, {}); + module.exports = function (key) { + ArrayProto[UNSCOPABLES][key] = true; + }; + + +/***/ }), +/* 188 */ +/***/ (function(module, exports, __webpack_require__) { + + // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) + var $export = __webpack_require__(8); + + $export($export.P, 'Array', { fill: __webpack_require__(189) }); + + __webpack_require__(187)('fill'); + + +/***/ }), +/* 189 */ +/***/ (function(module, exports, __webpack_require__) { + + // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) + 'use strict'; + var toObject = __webpack_require__(57); + var toAbsoluteIndex = __webpack_require__(39); + var toLength = __webpack_require__(37); + module.exports = function fill(value /* , start = 0, end = @length */) { + var O = toObject(this); + var length = toLength(O.length); + var aLen = arguments.length; + var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length); + var end = aLen > 2 ? arguments[2] : undefined; + var endPos = end === undefined ? length : toAbsoluteIndex(end, length); + while (endPos > index) O[index++] = value; + return O; + }; + + +/***/ }), +/* 190 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined) + var $export = __webpack_require__(8); + var $find = __webpack_require__(173)(5); + var KEY = 'find'; + var forced = true; + // Shouldn't skip holes + if (KEY in []) Array(1)[KEY](function () { forced = false; }); + $export($export.P + $export.F * forced, 'Array', { + find: function find(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + __webpack_require__(187)(KEY); + + +/***/ }), +/* 191 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined) + var $export = __webpack_require__(8); + var $find = __webpack_require__(173)(6); + var KEY = 'findIndex'; + var forced = true; + // Shouldn't skip holes + if (KEY in []) Array(1)[KEY](function () { forced = false; }); + $export($export.P + $export.F * forced, 'Array', { + findIndex: function findIndex(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } + }); + __webpack_require__(187)(KEY); + + +/***/ }), +/* 192 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(193)('Array'); + + +/***/ }), +/* 193 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var global = __webpack_require__(4); + var dP = __webpack_require__(11); + var DESCRIPTORS = __webpack_require__(6); + var SPECIES = __webpack_require__(26)('species'); + + module.exports = function (KEY) { + var C = global[KEY]; + if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { + configurable: true, + get: function () { return this; } + }); + }; + + +/***/ }), +/* 194 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var addToUnscopables = __webpack_require__(187); + var step = __webpack_require__(195); + var Iterators = __webpack_require__(129); + var toIObject = __webpack_require__(32); + + // 22.1.3.4 Array.prototype.entries() + // 22.1.3.13 Array.prototype.keys() + // 22.1.3.29 Array.prototype.values() + // 22.1.3.30 Array.prototype[@@iterator]() + module.exports = __webpack_require__(128)(Array, 'Array', function (iterated, kind) { + this._t = toIObject(iterated); // target + this._i = 0; // next index + this._k = kind; // kind + // 22.1.5.2.1 %ArrayIteratorPrototype%.next() + }, function () { + var O = this._t; + var kind = this._k; + var index = this._i++; + if (!O || index >= O.length) { + this._t = undefined; + return step(1); + } + if (kind == 'keys') return step(0, index); + if (kind == 'values') return step(0, O[index]); + return step(0, [index, O[index]]); + }, 'values'); + + // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) + Iterators.Arguments = Iterators.Array; + + addToUnscopables('keys'); + addToUnscopables('values'); + addToUnscopables('entries'); + + +/***/ }), +/* 195 */ +/***/ (function(module, exports) { + + module.exports = function (done, value) { + return { value: value, done: !!done }; + }; + + +/***/ }), +/* 196 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(4); + var inheritIfRequired = __webpack_require__(87); + var dP = __webpack_require__(11).f; + var gOPN = __webpack_require__(49).f; + var isRegExp = __webpack_require__(134); + var $flags = __webpack_require__(197); + var $RegExp = global.RegExp; + var Base = $RegExp; + var proto = $RegExp.prototype; + var re1 = /a/g; + var re2 = /a/g; + // "new" creates a new object, old webkit buggy here + var CORRECT_NEW = new $RegExp(re1) !== re1; + + if (__webpack_require__(6) && (!CORRECT_NEW || __webpack_require__(7)(function () { + re2[__webpack_require__(26)('match')] = false; + // RegExp constructor can alter flags and IsRegExp works correct with @@match + return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i'; + }))) { + $RegExp = function RegExp(p, f) { + var tiRE = this instanceof $RegExp; + var piRE = isRegExp(p); + var fiU = f === undefined; + return !tiRE && piRE && p.constructor === $RegExp && fiU ? p + : inheritIfRequired(CORRECT_NEW + ? new Base(piRE && !fiU ? p.source : p, f) + : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f) + , tiRE ? this : proto, $RegExp); + }; + var proxy = function (key) { + key in $RegExp || dP($RegExp, key, { + configurable: true, + get: function () { return Base[key]; }, + set: function (it) { Base[key] = it; } + }); + }; + for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]); + proto.constructor = $RegExp; + $RegExp.prototype = proto; + __webpack_require__(18)(global, 'RegExp', $RegExp); + } + + __webpack_require__(193)('RegExp'); + + +/***/ }), +/* 197 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 21.2.5.3 get RegExp.prototype.flags + var anObject = __webpack_require__(12); + module.exports = function () { + var that = anObject(this); + var result = ''; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.unicode) result += 'u'; + if (that.sticky) result += 'y'; + return result; + }; + + +/***/ }), +/* 198 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + __webpack_require__(199); + var anObject = __webpack_require__(12); + var $flags = __webpack_require__(197); + var DESCRIPTORS = __webpack_require__(6); + var TO_STRING = 'toString'; + var $toString = /./[TO_STRING]; + + var define = function (fn) { + __webpack_require__(18)(RegExp.prototype, TO_STRING, fn, true); + }; + + // 21.2.5.14 RegExp.prototype.toString() + if (__webpack_require__(7)(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) { + define(function toString() { + var R = anObject(this); + return '/'.concat(R.source, '/', + 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined); + }); + // FF44- RegExp#toString has a wrong name + } else if ($toString.name != TO_STRING) { + define(function toString() { + return $toString.call(this); + }); + } + + +/***/ }), +/* 199 */ +/***/ (function(module, exports, __webpack_require__) { + + // 21.2.5.3 get RegExp.prototype.flags() + if (__webpack_require__(6) && /./g.flags != 'g') __webpack_require__(11).f(RegExp.prototype, 'flags', { + configurable: true, + get: __webpack_require__(197) + }); + + +/***/ }), +/* 200 */ +/***/ (function(module, exports, __webpack_require__) { + + // @@match logic + __webpack_require__(201)('match', 1, function (defined, MATCH, $match) { + // 21.1.3.11 String.prototype.match(regexp) + return [function match(regexp) { + 'use strict'; + var O = defined(this); + var fn = regexp == undefined ? undefined : regexp[MATCH]; + return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); + }, $match]; + }); + + +/***/ }), +/* 201 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var hide = __webpack_require__(10); + var redefine = __webpack_require__(18); + var fails = __webpack_require__(7); + var defined = __webpack_require__(35); + var wks = __webpack_require__(26); + + module.exports = function (KEY, length, exec) { + var SYMBOL = wks(KEY); + var fns = exec(defined, SYMBOL, ''[KEY]); + var strfn = fns[0]; + var rxfn = fns[1]; + if (fails(function () { + var O = {}; + O[SYMBOL] = function () { return 7; }; + return ''[KEY](O) != 7; + })) { + redefine(String.prototype, KEY, strfn); + hide(RegExp.prototype, SYMBOL, length == 2 + // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) + // 21.2.5.11 RegExp.prototype[@@split](string, limit) + ? function (string, arg) { return rxfn.call(string, this, arg); } + // 21.2.5.6 RegExp.prototype[@@match](string) + // 21.2.5.9 RegExp.prototype[@@search](string) + : function (string) { return rxfn.call(string, this); } + ); + } + }; + + +/***/ }), +/* 202 */ +/***/ (function(module, exports, __webpack_require__) { + + // @@replace logic + __webpack_require__(201)('replace', 2, function (defined, REPLACE, $replace) { + // 21.1.3.14 String.prototype.replace(searchValue, replaceValue) + return [function replace(searchValue, replaceValue) { + 'use strict'; + var O = defined(this); + var fn = searchValue == undefined ? undefined : searchValue[REPLACE]; + return fn !== undefined + ? fn.call(searchValue, O, replaceValue) + : $replace.call(String(O), searchValue, replaceValue); + }, $replace]; + }); + + +/***/ }), +/* 203 */ +/***/ (function(module, exports, __webpack_require__) { + + // @@search logic + __webpack_require__(201)('search', 1, function (defined, SEARCH, $search) { + // 21.1.3.15 String.prototype.search(regexp) + return [function search(regexp) { + 'use strict'; + var O = defined(this); + var fn = regexp == undefined ? undefined : regexp[SEARCH]; + return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O)); + }, $search]; + }); + + +/***/ }), +/* 204 */ +/***/ (function(module, exports, __webpack_require__) { + + // @@split logic + __webpack_require__(201)('split', 2, function (defined, SPLIT, $split) { + 'use strict'; + var isRegExp = __webpack_require__(134); + var _split = $split; + var $push = [].push; + var $SPLIT = 'split'; + var LENGTH = 'length'; + var LAST_INDEX = 'lastIndex'; + if ( + 'abbc'[$SPLIT](/(b)*/)[1] == 'c' || + 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 || + 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 || + '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 || + '.'[$SPLIT](/()()/)[LENGTH] > 1 || + ''[$SPLIT](/.?/)[LENGTH] + ) { + var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group + // based on es5-shim implementation, need to rework it + $split = function (separator, limit) { + var string = String(this); + if (separator === undefined && limit === 0) return []; + // If `separator` is not a regex, use native split + if (!isRegExp(separator)) return _split.call(string, separator, limit); + var output = []; + var flags = (separator.ignoreCase ? 'i' : '') + + (separator.multiline ? 'm' : '') + + (separator.unicode ? 'u' : '') + + (separator.sticky ? 'y' : ''); + var lastLastIndex = 0; + var splitLimit = limit === undefined ? 4294967295 : limit >>> 0; + // Make `global` and avoid `lastIndex` issues by working with a copy + var separatorCopy = new RegExp(separator.source, flags + 'g'); + var separator2, match, lastIndex, lastLength, i; + // Doesn't need flags gy, but they don't hurt + if (!NPCG) separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\s)', flags); + while (match = separatorCopy.exec(string)) { + // `separatorCopy.lastIndex` is not reliable cross-browser + lastIndex = match.index + match[0][LENGTH]; + if (lastIndex > lastLastIndex) { + output.push(string.slice(lastLastIndex, match.index)); + // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG + // eslint-disable-next-line no-loop-func + if (!NPCG && match[LENGTH] > 1) match[0].replace(separator2, function () { + for (i = 1; i < arguments[LENGTH] - 2; i++) if (arguments[i] === undefined) match[i] = undefined; + }); + if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1)); + lastLength = match[0][LENGTH]; + lastLastIndex = lastIndex; + if (output[LENGTH] >= splitLimit) break; + } + if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop + } + if (lastLastIndex === string[LENGTH]) { + if (lastLength || !separatorCopy.test('')) output.push(''); + } else output.push(string.slice(lastLastIndex)); + return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output; + }; + // Chakra, V8 + } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) { + $split = function (separator, limit) { + return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit); + }; + } + // 21.1.3.17 String.prototype.split(separator, limit) + return [function split(separator, limit) { + var O = defined(this); + var fn = separator == undefined ? undefined : separator[SPLIT]; + return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit); + }, $split]; + }); + + +/***/ }), +/* 205 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var LIBRARY = __webpack_require__(24); + var global = __webpack_require__(4); + var ctx = __webpack_require__(20); + var classof = __webpack_require__(74); + var $export = __webpack_require__(8); + var isObject = __webpack_require__(13); + var aFunction = __webpack_require__(21); + var anInstance = __webpack_require__(206); + var forOf = __webpack_require__(207); + var speciesConstructor = __webpack_require__(208); + var task = __webpack_require__(209).set; + var microtask = __webpack_require__(210)(); + var newPromiseCapabilityModule = __webpack_require__(211); + var perform = __webpack_require__(212); + var userAgent = __webpack_require__(213); + var promiseResolve = __webpack_require__(214); + var PROMISE = 'Promise'; + var TypeError = global.TypeError; + var process = global.process; + var versions = process && process.versions; + var v8 = versions && versions.v8 || ''; + var $Promise = global[PROMISE]; + var isNode = classof(process) == 'process'; + var empty = function () { /* empty */ }; + var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; + var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; + + var USE_NATIVE = !!function () { + try { + // correct subclassing with @@species support + var promise = $Promise.resolve(1); + var FakePromise = (promise.constructor = {})[__webpack_require__(26)('species')] = function (exec) { + exec(empty, empty); + }; + // unhandled rejections tracking support, NodeJS Promise without it fails @@species test + return (isNode || typeof PromiseRejectionEvent == 'function') + && promise.then(empty) instanceof FakePromise + // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // we can't detect it synchronously, so just check versions + && v8.indexOf('6.6') !== 0 + && userAgent.indexOf('Chrome/66') === -1; + } catch (e) { /* empty */ } + }(); + + // helpers + var isThenable = function (it) { + var then; + return isObject(it) && typeof (then = it.then) == 'function' ? then : false; + }; + var notify = function (promise, isReject) { + if (promise._n) return; + promise._n = true; + var chain = promise._c; + microtask(function () { + var value = promise._v; + var ok = promise._s == 1; + var i = 0; + var run = function (reaction) { + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (promise._h == 2) onHandleUnhandled(promise); + promise._h = 1; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // may throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(TypeError('Promise-chain cycle')); + } else if (then = isThenable(result)) { + then.call(result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (e) { + if (domain && !exited) domain.exit(); + reject(e); + } + }; + while (chain.length > i) run(chain[i++]); // variable length - can't use forEach + promise._c = []; + promise._n = false; + if (isReject && !promise._h) onUnhandled(promise); + }); + }; + var onUnhandled = function (promise) { + task.call(global, function () { + var value = promise._v; + var unhandled = isUnhandled(promise); + var result, handler, console; + if (unhandled) { + result = perform(function () { + if (isNode) { + process.emit('unhandledRejection', value, promise); + } else if (handler = global.onunhandledrejection) { + handler({ promise: promise, reason: value }); + } else if ((console = global.console) && console.error) { + console.error('Unhandled promise rejection', value); + } + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + promise._h = isNode || isUnhandled(promise) ? 2 : 1; + } promise._a = undefined; + if (unhandled && result.e) throw result.v; + }); + }; + var isUnhandled = function (promise) { + return promise._h !== 1 && (promise._a || promise._c).length === 0; + }; + var onHandleUnhandled = function (promise) { + task.call(global, function () { + var handler; + if (isNode) { + process.emit('rejectionHandled', promise); + } else if (handler = global.onrejectionhandled) { + handler({ promise: promise, reason: promise._v }); + } + }); + }; + var $reject = function (value) { + var promise = this; + if (promise._d) return; + promise._d = true; + promise = promise._w || promise; // unwrap + promise._v = value; + promise._s = 2; + if (!promise._a) promise._a = promise._c.slice(); + notify(promise, true); + }; + var $resolve = function (value) { + var promise = this; + var then; + if (promise._d) return; + promise._d = true; + promise = promise._w || promise; // unwrap + try { + if (promise === value) throw TypeError("Promise can't be resolved itself"); + if (then = isThenable(value)) { + microtask(function () { + var wrapper = { _w: promise, _d: false }; // wrap + try { + then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); + } catch (e) { + $reject.call(wrapper, e); + } + }); + } else { + promise._v = value; + promise._s = 1; + notify(promise, false); + } + } catch (e) { + $reject.call({ _w: promise, _d: false }, e); // wrap + } + }; + + // constructor polyfill + if (!USE_NATIVE) { + // 25.4.3.1 Promise(executor) + $Promise = function Promise(executor) { + anInstance(this, $Promise, PROMISE, '_h'); + aFunction(executor); + Internal.call(this); + try { + executor(ctx($resolve, this, 1), ctx($reject, this, 1)); + } catch (err) { + $reject.call(this, err); + } + }; + // eslint-disable-next-line no-unused-vars + Internal = function Promise(executor) { + this._c = []; // <- awaiting reactions + this._a = undefined; // <- checked in isUnhandled reactions + this._s = 0; // <- state + this._d = false; // <- done + this._v = undefined; // <- value + this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled + this._n = false; // <- notify + }; + Internal.prototype = __webpack_require__(215)($Promise.prototype, { + // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected) + then: function then(onFulfilled, onRejected) { + var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); + reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; + reaction.fail = typeof onRejected == 'function' && onRejected; + reaction.domain = isNode ? process.domain : undefined; + this._c.push(reaction); + if (this._a) this._a.push(reaction); + if (this._s) notify(this, false); + return reaction.promise; + }, + // 25.4.5.1 Promise.prototype.catch(onRejected) + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } + }); + OwnPromiseCapability = function () { + var promise = new Internal(); + this.promise = promise; + this.resolve = ctx($resolve, promise, 1); + this.reject = ctx($reject, promise, 1); + }; + newPromiseCapabilityModule.f = newPromiseCapability = function (C) { + return C === $Promise || C === Wrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + } + + $export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise }); + __webpack_require__(25)($Promise, PROMISE); + __webpack_require__(193)(PROMISE); + Wrapper = __webpack_require__(9)[PROMISE]; + + // statics + $export($export.S + $export.F * !USE_NATIVE, PROMISE, { + // 25.4.4.5 Promise.reject(r) + reject: function reject(r) { + var capability = newPromiseCapability(this); + var $$reject = capability.reject; + $$reject(r); + return capability.promise; + } + }); + $export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { + // 25.4.4.6 Promise.resolve(x) + resolve: function resolve(x) { + return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); + } + }); + $export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(166)(function (iter) { + $Promise.all(iter)['catch'](empty); + })), PROMISE, { + // 25.4.4.1 Promise.all(iterable) + all: function all(iterable) { + var C = this; + var capability = newPromiseCapability(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var values = []; + var index = 0; + var remaining = 1; + forOf(iterable, false, function (promise) { + var $index = index++; + var alreadyCalled = false; + values.push(undefined); + remaining++; + C.resolve(promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[$index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.e) reject(result.v); + return capability.promise; + }, + // 25.4.4.4 Promise.race(iterable) + race: function race(iterable) { + var C = this; + var capability = newPromiseCapability(C); + var reject = capability.reject; + var result = perform(function () { + forOf(iterable, false, function (promise) { + C.resolve(promise).then(capability.resolve, reject); + }); + }); + if (result.e) reject(result.v); + return capability.promise; + } + }); + + +/***/ }), +/* 206 */ +/***/ (function(module, exports) { + + module.exports = function (it, Constructor, name, forbiddenField) { + if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) { + throw TypeError(name + ': incorrect invocation!'); + } return it; + }; + + +/***/ }), +/* 207 */ +/***/ (function(module, exports, __webpack_require__) { + + var ctx = __webpack_require__(20); + var call = __webpack_require__(162); + var isArrayIter = __webpack_require__(163); + var anObject = __webpack_require__(12); + var toLength = __webpack_require__(37); + var getIterFn = __webpack_require__(165); + var BREAK = {}; + var RETURN = {}; + var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { + var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable); + var f = ctx(fn, that, entries ? 2 : 1); + var index = 0; + var length, step, iterator, result; + if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); + // fast case for arrays with default iterator + if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { + result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); + if (result === BREAK || result === RETURN) return result; + } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { + result = call(iterator, f, step.value, entries); + if (result === BREAK || result === RETURN) return result; + } + }; + exports.BREAK = BREAK; + exports.RETURN = RETURN; + + +/***/ }), +/* 208 */ +/***/ (function(module, exports, __webpack_require__) { + + // 7.3.20 SpeciesConstructor(O, defaultConstructor) + var anObject = __webpack_require__(12); + var aFunction = __webpack_require__(21); + var SPECIES = __webpack_require__(26)('species'); + module.exports = function (O, D) { + var C = anObject(O).constructor; + var S; + return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); + }; + + +/***/ }), +/* 209 */ +/***/ (function(module, exports, __webpack_require__) { + + var ctx = __webpack_require__(20); + var invoke = __webpack_require__(77); + var html = __webpack_require__(47); + var cel = __webpack_require__(15); + var global = __webpack_require__(4); + var process = global.process; + var setTask = global.setImmediate; + var clearTask = global.clearImmediate; + var MessageChannel = global.MessageChannel; + var Dispatch = global.Dispatch; + var counter = 0; + var queue = {}; + var ONREADYSTATECHANGE = 'onreadystatechange'; + var defer, channel, port; + var run = function () { + var id = +this; + // eslint-disable-next-line no-prototype-builtins + if (queue.hasOwnProperty(id)) { + var fn = queue[id]; + delete queue[id]; + fn(); + } + }; + var listener = function (event) { + run.call(event.data); + }; + // Node.js 0.9+ & IE10+ has setImmediate, otherwise: + if (!setTask || !clearTask) { + setTask = function setImmediate(fn) { + var args = []; + var i = 1; + while (arguments.length > i) args.push(arguments[i++]); + queue[++counter] = function () { + // eslint-disable-next-line no-new-func + invoke(typeof fn == 'function' ? fn : Function(fn), args); + }; + defer(counter); + return counter; + }; + clearTask = function clearImmediate(id) { + delete queue[id]; + }; + // Node.js 0.8- + if (__webpack_require__(34)(process) == 'process') { + defer = function (id) { + process.nextTick(ctx(run, id, 1)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(ctx(run, id, 1)); + }; + // Browsers with MessageChannel, includes WebWorkers + } else if (MessageChannel) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = listener; + defer = ctx(port.postMessage, port, 1); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { + defer = function (id) { + global.postMessage(id + '', '*'); + }; + global.addEventListener('message', listener, false); + // IE8- + } else if (ONREADYSTATECHANGE in cel('script')) { + defer = function (id) { + html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { + html.removeChild(this); + run.call(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(ctx(run, id, 1), 0); + }; + } + } + module.exports = { + set: setTask, + clear: clearTask + }; + + +/***/ }), +/* 210 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(4); + var macrotask = __webpack_require__(209).set; + var Observer = global.MutationObserver || global.WebKitMutationObserver; + var process = global.process; + var Promise = global.Promise; + var isNode = __webpack_require__(34)(process) == 'process'; + + module.exports = function () { + var head, last, notify; + + var flush = function () { + var parent, fn; + if (isNode && (parent = process.domain)) parent.exit(); + while (head) { + fn = head.fn; + head = head.next; + try { + fn(); + } catch (e) { + if (head) notify(); + else last = undefined; + throw e; + } + } last = undefined; + if (parent) parent.enter(); + }; + + // Node.js + if (isNode) { + notify = function () { + process.nextTick(flush); + }; + // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339 + } else if (Observer && !(global.navigator && global.navigator.standalone)) { + var toggle = true; + var node = document.createTextNode(''); + new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new + notify = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (Promise && Promise.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + var promise = Promise.resolve(undefined); + notify = function () { + promise.then(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessag + // - onreadystatechange + // - setTimeout + } else { + notify = function () { + // strange IE + webpack dev server bug - use .call(global) + macrotask.call(global, flush); + }; + } + + return function (fn) { + var task = { fn: fn, next: undefined }; + if (last) last.next = task; + if (!head) { + head = task; + notify(); + } last = task; + }; + }; + + +/***/ }), +/* 211 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 25.4.1.5 NewPromiseCapability(C) + var aFunction = __webpack_require__(21); + + function PromiseCapability(C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aFunction(resolve); + this.reject = aFunction(reject); + } + + module.exports.f = function (C) { + return new PromiseCapability(C); + }; + + +/***/ }), +/* 212 */ +/***/ (function(module, exports) { + + module.exports = function (exec) { + try { + return { e: false, v: exec() }; + } catch (e) { + return { e: true, v: e }; + } + }; + + +/***/ }), +/* 213 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(4); + var navigator = global.navigator; + + module.exports = navigator && navigator.userAgent || ''; + + +/***/ }), +/* 214 */ +/***/ (function(module, exports, __webpack_require__) { + + var anObject = __webpack_require__(12); + var isObject = __webpack_require__(13); + var newPromiseCapability = __webpack_require__(211); + + module.exports = function (C, x) { + anObject(C); + if (isObject(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; + }; + + +/***/ }), +/* 215 */ +/***/ (function(module, exports, __webpack_require__) { + + var redefine = __webpack_require__(18); + module.exports = function (target, src, safe) { + for (var key in src) redefine(target, key, src[key], safe); + return target; + }; + + +/***/ }), +/* 216 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var strong = __webpack_require__(217); + var validate = __webpack_require__(218); + var MAP = 'Map'; + + // 23.1 Map Objects + module.exports = __webpack_require__(219)(MAP, function (get) { + return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; + }, { + // 23.1.3.6 Map.prototype.get(key) + get: function get(key) { + var entry = strong.getEntry(validate(this, MAP), key); + return entry && entry.v; + }, + // 23.1.3.9 Map.prototype.set(key, value) + set: function set(key, value) { + return strong.def(validate(this, MAP), key === 0 ? 0 : key, value); + } + }, strong, true); + + +/***/ }), +/* 217 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var dP = __webpack_require__(11).f; + var create = __webpack_require__(45); + var redefineAll = __webpack_require__(215); + var ctx = __webpack_require__(20); + var anInstance = __webpack_require__(206); + var forOf = __webpack_require__(207); + var $iterDefine = __webpack_require__(128); + var step = __webpack_require__(195); + var setSpecies = __webpack_require__(193); + var DESCRIPTORS = __webpack_require__(6); + var fastKey = __webpack_require__(22).fastKey; + var validate = __webpack_require__(218); + var SIZE = DESCRIPTORS ? '_s' : 'size'; + + var getEntry = function (that, key) { + // fast case + var index = fastKey(key); + var entry; + if (index !== 'F') return that._i[index]; + // frozen object case + for (entry = that._f; entry; entry = entry.n) { + if (entry.k == key) return entry; + } + }; + + module.exports = { + getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { + var C = wrapper(function (that, iterable) { + anInstance(that, C, NAME, '_i'); + that._t = NAME; // collection type + that._i = create(null); // index + that._f = undefined; // first entry + that._l = undefined; // last entry + that[SIZE] = 0; // size + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + }); + redefineAll(C.prototype, { + // 23.1.3.1 Map.prototype.clear() + // 23.2.3.2 Set.prototype.clear() + clear: function clear() { + for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) { + entry.r = true; + if (entry.p) entry.p = entry.p.n = undefined; + delete data[entry.i]; + } + that._f = that._l = undefined; + that[SIZE] = 0; + }, + // 23.1.3.3 Map.prototype.delete(key) + // 23.2.3.4 Set.prototype.delete(value) + 'delete': function (key) { + var that = validate(this, NAME); + var entry = getEntry(that, key); + if (entry) { + var next = entry.n; + var prev = entry.p; + delete that._i[entry.i]; + entry.r = true; + if (prev) prev.n = next; + if (next) next.p = prev; + if (that._f == entry) that._f = next; + if (that._l == entry) that._l = prev; + that[SIZE]--; + } return !!entry; + }, + // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) + // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) + forEach: function forEach(callbackfn /* , that = undefined */) { + validate(this, NAME); + var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var entry; + while (entry = entry ? entry.n : this._f) { + f(entry.v, entry.k, this); + // revert to the last existing entry + while (entry && entry.r) entry = entry.p; + } + }, + // 23.1.3.7 Map.prototype.has(key) + // 23.2.3.7 Set.prototype.has(value) + has: function has(key) { + return !!getEntry(validate(this, NAME), key); + } + }); + if (DESCRIPTORS) dP(C.prototype, 'size', { + get: function () { + return validate(this, NAME)[SIZE]; + } + }); + return C; + }, + def: function (that, key, value) { + var entry = getEntry(that, key); + var prev, index; + // change existing entry + if (entry) { + entry.v = value; + // create new entry + } else { + that._l = entry = { + i: index = fastKey(key, true), // <- index + k: key, // <- key + v: value, // <- value + p: prev = that._l, // <- previous entry + n: undefined, // <- next entry + r: false // <- removed + }; + if (!that._f) that._f = entry; + if (prev) prev.n = entry; + that[SIZE]++; + // add to index + if (index !== 'F') that._i[index] = entry; + } return that; + }, + getEntry: getEntry, + setStrong: function (C, NAME, IS_MAP) { + // add .keys, .values, .entries, [@@iterator] + // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 + $iterDefine(C, NAME, function (iterated, kind) { + this._t = validate(iterated, NAME); // target + this._k = kind; // kind + this._l = undefined; // previous + }, function () { + var that = this; + var kind = that._k; + var entry = that._l; + // revert to the last existing entry + while (entry && entry.r) entry = entry.p; + // get next entry + if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) { + // or finish the iteration + that._t = undefined; + return step(1); + } + // return step by kind + if (kind == 'keys') return step(0, entry.k); + if (kind == 'values') return step(0, entry.v); + return step(0, [entry.k, entry.v]); + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); + + // add [@@species], 23.1.2.2, 23.2.2.2 + setSpecies(NAME); + } + }; + + +/***/ }), +/* 218 */ +/***/ (function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(13); + module.exports = function (it, TYPE) { + if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); + return it; + }; + + +/***/ }), +/* 219 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var global = __webpack_require__(4); + var $export = __webpack_require__(8); + var redefine = __webpack_require__(18); + var redefineAll = __webpack_require__(215); + var meta = __webpack_require__(22); + var forOf = __webpack_require__(207); + var anInstance = __webpack_require__(206); + var isObject = __webpack_require__(13); + var fails = __webpack_require__(7); + var $iterDetect = __webpack_require__(166); + var setToStringTag = __webpack_require__(25); + var inheritIfRequired = __webpack_require__(87); + + module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { + var Base = global[NAME]; + var C = Base; + var ADDER = IS_MAP ? 'set' : 'add'; + var proto = C && C.prototype; + var O = {}; + var fixMethod = function (KEY) { + var fn = proto[KEY]; + redefine(proto, KEY, + KEY == 'delete' ? function (a) { + return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'has' ? function has(a) { + return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'get' ? function get(a) { + return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; } + : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; } + ); + }; + if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { + new C().entries().next(); + }))) { + // create collection constructor + C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); + redefineAll(C.prototype, methods); + meta.NEED = true; + } else { + var instance = new C(); + // early implementations not supports chaining + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; + // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); + // most early implementations doesn't supports iterables, most modern - not close it correctly + var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new + // for early implementations -0 and +0 not the same + var BUGGY_ZERO = !IS_WEAK && fails(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new C(); + var index = 5; + while (index--) $instance[ADDER](index, index); + return !$instance.has(-0); + }); + if (!ACCEPT_ITERABLES) { + C = wrapper(function (target, iterable) { + anInstance(target, C, NAME); + var that = inheritIfRequired(new Base(), target, C); + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + return that; + }); + C.prototype = proto; + proto.constructor = C; + } + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); + // weak collections should not contains .clear method + if (IS_WEAK && proto.clear) delete proto.clear; + } + + setToStringTag(C, NAME); + + O[NAME] = C; + $export($export.G + $export.W + $export.F * (C != Base), O); + + if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); + + return C; + }; + + +/***/ }), +/* 220 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var strong = __webpack_require__(217); + var validate = __webpack_require__(218); + var SET = 'Set'; + + // 23.2 Set Objects + module.exports = __webpack_require__(219)(SET, function (get) { + return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; + }, { + // 23.2.3.1 Set.prototype.add(value) + add: function add(value) { + return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value); + } + }, strong); + + +/***/ }), +/* 221 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var each = __webpack_require__(173)(0); + var redefine = __webpack_require__(18); + var meta = __webpack_require__(22); + var assign = __webpack_require__(68); + var weak = __webpack_require__(222); + var isObject = __webpack_require__(13); + var fails = __webpack_require__(7); + var validate = __webpack_require__(218); + var WEAK_MAP = 'WeakMap'; + var getWeak = meta.getWeak; + var isExtensible = Object.isExtensible; + var uncaughtFrozenStore = weak.ufstore; + var tmp = {}; + var InternalMap; + + var wrapper = function (get) { + return function WeakMap() { + return get(this, arguments.length > 0 ? arguments[0] : undefined); + }; + }; + + var methods = { + // 23.3.3.3 WeakMap.prototype.get(key) + get: function get(key) { + if (isObject(key)) { + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); + return data ? data[this._i] : undefined; + } + }, + // 23.3.3.5 WeakMap.prototype.set(key, value) + set: function set(key, value) { + return weak.def(validate(this, WEAK_MAP), key, value); + } + }; + + // 23.3 WeakMap Objects + var $WeakMap = module.exports = __webpack_require__(219)(WEAK_MAP, wrapper, methods, weak, true, true); + + // IE11 WeakMap frozen keys fix + if (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) { + InternalMap = weak.getConstructor(wrapper, WEAK_MAP); + assign(InternalMap.prototype, methods); + meta.NEED = true; + each(['delete', 'has', 'get', 'set'], function (key) { + var proto = $WeakMap.prototype; + var method = proto[key]; + redefine(proto, key, function (a, b) { + // store frozen objects on internal weakmap shim + if (isObject(a) && !isExtensible(a)) { + if (!this._f) this._f = new InternalMap(); + var result = this._f[key](a, b); + return key == 'set' ? this : result; + // store all the rest on native weakmap + } return method.call(this, a, b); + }); + }); + } + + +/***/ }), +/* 222 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var redefineAll = __webpack_require__(215); + var getWeak = __webpack_require__(22).getWeak; + var anObject = __webpack_require__(12); + var isObject = __webpack_require__(13); + var anInstance = __webpack_require__(206); + var forOf = __webpack_require__(207); + var createArrayMethod = __webpack_require__(173); + var $has = __webpack_require__(5); + var validate = __webpack_require__(218); + var arrayFind = createArrayMethod(5); + var arrayFindIndex = createArrayMethod(6); + var id = 0; + + // fallback for uncaught frozen keys + var uncaughtFrozenStore = function (that) { + return that._l || (that._l = new UncaughtFrozenStore()); + }; + var UncaughtFrozenStore = function () { + this.a = []; + }; + var findUncaughtFrozen = function (store, key) { + return arrayFind(store.a, function (it) { + return it[0] === key; + }); + }; + UncaughtFrozenStore.prototype = { + get: function (key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function (key) { + return !!findUncaughtFrozen(this, key); + }, + set: function (key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value; + else this.a.push([key, value]); + }, + 'delete': function (key) { + var index = arrayFindIndex(this.a, function (it) { + return it[0] === key; + }); + if (~index) this.a.splice(index, 1); + return !!~index; + } + }; + + module.exports = { + getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { + var C = wrapper(function (that, iterable) { + anInstance(that, C, NAME, '_i'); + that._t = NAME; // collection type + that._i = id++; // collection id + that._l = undefined; // leak store for uncaught frozen objects + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + }); + redefineAll(C.prototype, { + // 23.3.3.2 WeakMap.prototype.delete(key) + // 23.4.3.3 WeakSet.prototype.delete(value) + 'delete': function (key) { + if (!isObject(key)) return false; + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); + return data && $has(data, this._i) && delete data[this._i]; + }, + // 23.3.3.4 WeakMap.prototype.has(key) + // 23.4.3.4 WeakSet.prototype.has(value) + has: function has(key) { + if (!isObject(key)) return false; + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); + return data && $has(data, this._i); + } + }); + return C; + }, + def: function (that, key, value) { + var data = getWeak(anObject(key), true); + if (data === true) uncaughtFrozenStore(that).set(key, value); + else data[that._i] = value; + return that; + }, + ufstore: uncaughtFrozenStore + }; + + +/***/ }), +/* 223 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var weak = __webpack_require__(222); + var validate = __webpack_require__(218); + var WEAK_SET = 'WeakSet'; + + // 23.4 WeakSet Objects + __webpack_require__(219)(WEAK_SET, function (get) { + return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; + }, { + // 23.4.3.1 WeakSet.prototype.add(value) + add: function add(value) { + return weak.def(validate(this, WEAK_SET), value, true); + } + }, weak, false, true); + + +/***/ }), +/* 224 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var $typed = __webpack_require__(225); + var buffer = __webpack_require__(226); + var anObject = __webpack_require__(12); + var toAbsoluteIndex = __webpack_require__(39); + var toLength = __webpack_require__(37); + var isObject = __webpack_require__(13); + var ArrayBuffer = __webpack_require__(4).ArrayBuffer; + var speciesConstructor = __webpack_require__(208); + var $ArrayBuffer = buffer.ArrayBuffer; + var $DataView = buffer.DataView; + var $isView = $typed.ABV && ArrayBuffer.isView; + var $slice = $ArrayBuffer.prototype.slice; + var VIEW = $typed.VIEW; + var ARRAY_BUFFER = 'ArrayBuffer'; + + $export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer }); + + $export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, { + // 24.1.3.1 ArrayBuffer.isView(arg) + isView: function isView(it) { + return $isView && $isView(it) || isObject(it) && VIEW in it; + } + }); + + $export($export.P + $export.U + $export.F * __webpack_require__(7)(function () { + return !new $ArrayBuffer(2).slice(1, undefined).byteLength; + }), ARRAY_BUFFER, { + // 24.1.4.3 ArrayBuffer.prototype.slice(start, end) + slice: function slice(start, end) { + if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix + var len = anObject(this).byteLength; + var first = toAbsoluteIndex(start, len); + var fin = toAbsoluteIndex(end === undefined ? len : end, len); + var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first)); + var viewS = new $DataView(this); + var viewT = new $DataView(result); + var index = 0; + while (first < fin) { + viewT.setUint8(index++, viewS.getUint8(first++)); + } return result; + } + }); + + __webpack_require__(193)(ARRAY_BUFFER); + + +/***/ }), +/* 225 */ +/***/ (function(module, exports, __webpack_require__) { + + var global = __webpack_require__(4); + var hide = __webpack_require__(10); + var uid = __webpack_require__(19); + var TYPED = uid('typed_array'); + var VIEW = uid('view'); + var ABV = !!(global.ArrayBuffer && global.DataView); + var CONSTR = ABV; + var i = 0; + var l = 9; + var Typed; + + var TypedArrayConstructors = ( + 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array' + ).split(','); + + while (i < l) { + if (Typed = global[TypedArrayConstructors[i++]]) { + hide(Typed.prototype, TYPED, true); + hide(Typed.prototype, VIEW, true); + } else CONSTR = false; + } + + module.exports = { + ABV: ABV, + CONSTR: CONSTR, + TYPED: TYPED, + VIEW: VIEW + }; + + +/***/ }), +/* 226 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var global = __webpack_require__(4); + var DESCRIPTORS = __webpack_require__(6); + var LIBRARY = __webpack_require__(24); + var $typed = __webpack_require__(225); + var hide = __webpack_require__(10); + var redefineAll = __webpack_require__(215); + var fails = __webpack_require__(7); + var anInstance = __webpack_require__(206); + var toInteger = __webpack_require__(38); + var toLength = __webpack_require__(37); + var toIndex = __webpack_require__(227); + var gOPN = __webpack_require__(49).f; + var dP = __webpack_require__(11).f; + var arrayFill = __webpack_require__(189); + var setToStringTag = __webpack_require__(25); + var ARRAY_BUFFER = 'ArrayBuffer'; + var DATA_VIEW = 'DataView'; + var PROTOTYPE = 'prototype'; + var WRONG_LENGTH = 'Wrong length!'; + var WRONG_INDEX = 'Wrong index!'; + var $ArrayBuffer = global[ARRAY_BUFFER]; + var $DataView = global[DATA_VIEW]; + var Math = global.Math; + var RangeError = global.RangeError; + // eslint-disable-next-line no-shadow-restricted-names + var Infinity = global.Infinity; + var BaseBuffer = $ArrayBuffer; + var abs = Math.abs; + var pow = Math.pow; + var floor = Math.floor; + var log = Math.log; + var LN2 = Math.LN2; + var BUFFER = 'buffer'; + var BYTE_LENGTH = 'byteLength'; + var BYTE_OFFSET = 'byteOffset'; + var $BUFFER = DESCRIPTORS ? '_b' : BUFFER; + var $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH; + var $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET; + + // IEEE754 conversions based on https://github.com/feross/ieee754 + function packIEEE754(value, mLen, nBytes) { + var buffer = new Array(nBytes); + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0; + var i = 0; + var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; + var e, m, c; + value = abs(value); + // eslint-disable-next-line no-self-compare + if (value != value || value === Infinity) { + // eslint-disable-next-line no-self-compare + m = value != value ? 1 : 0; + e = eMax; + } else { + e = floor(log(value) / LN2); + if (value * (c = pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * pow(2, mLen); + e = e + eBias; + } else { + m = value * pow(2, eBias - 1) * pow(2, mLen); + e = 0; + } + } + for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8); + e = e << mLen | m; + eLen += mLen; + for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8); + buffer[--i] |= s * 128; + return buffer; + } + function unpackIEEE754(buffer, mLen, nBytes) { + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var nBits = eLen - 7; + var i = nBytes - 1; + var s = buffer[i--]; + var e = s & 127; + var m; + s >>= 7; + for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8); + m = e & (1 << -nBits) - 1; + e >>= -nBits; + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8); + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : s ? -Infinity : Infinity; + } else { + m = m + pow(2, mLen); + e = e - eBias; + } return (s ? -1 : 1) * m * pow(2, e - mLen); + } + + function unpackI32(bytes) { + return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0]; + } + function packI8(it) { + return [it & 0xff]; + } + function packI16(it) { + return [it & 0xff, it >> 8 & 0xff]; + } + function packI32(it) { + return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff]; + } + function packF64(it) { + return packIEEE754(it, 52, 8); + } + function packF32(it) { + return packIEEE754(it, 23, 4); + } + + function addGetter(C, key, internal) { + dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } }); + } + + function get(view, bytes, index, isLittleEndian) { + var numIndex = +index; + var intIndex = toIndex(numIndex); + if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX); + var store = view[$BUFFER]._b; + var start = intIndex + view[$OFFSET]; + var pack = store.slice(start, start + bytes); + return isLittleEndian ? pack : pack.reverse(); + } + function set(view, bytes, index, conversion, value, isLittleEndian) { + var numIndex = +index; + var intIndex = toIndex(numIndex); + if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX); + var store = view[$BUFFER]._b; + var start = intIndex + view[$OFFSET]; + var pack = conversion(+value); + for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1]; + } + + if (!$typed.ABV) { + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, $ArrayBuffer, ARRAY_BUFFER); + var byteLength = toIndex(length); + this._b = arrayFill.call(new Array(byteLength), 0); + this[$LENGTH] = byteLength; + }; + + $DataView = function DataView(buffer, byteOffset, byteLength) { + anInstance(this, $DataView, DATA_VIEW); + anInstance(buffer, $ArrayBuffer, DATA_VIEW); + var bufferLength = buffer[$LENGTH]; + var offset = toInteger(byteOffset); + if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!'); + byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); + if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH); + this[$BUFFER] = buffer; + this[$OFFSET] = offset; + this[$LENGTH] = byteLength; + }; + + if (DESCRIPTORS) { + addGetter($ArrayBuffer, BYTE_LENGTH, '_l'); + addGetter($DataView, BUFFER, '_b'); + addGetter($DataView, BYTE_LENGTH, '_l'); + addGetter($DataView, BYTE_OFFSET, '_o'); + } + + redefineAll($DataView[PROTOTYPE], { + getInt8: function getInt8(byteOffset) { + return get(this, 1, byteOffset)[0] << 24 >> 24; + }, + getUint8: function getUint8(byteOffset) { + return get(this, 1, byteOffset)[0]; + }, + getInt16: function getInt16(byteOffset /* , littleEndian */) { + var bytes = get(this, 2, byteOffset, arguments[1]); + return (bytes[1] << 8 | bytes[0]) << 16 >> 16; + }, + getUint16: function getUint16(byteOffset /* , littleEndian */) { + var bytes = get(this, 2, byteOffset, arguments[1]); + return bytes[1] << 8 | bytes[0]; + }, + getInt32: function getInt32(byteOffset /* , littleEndian */) { + return unpackI32(get(this, 4, byteOffset, arguments[1])); + }, + getUint32: function getUint32(byteOffset /* , littleEndian */) { + return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0; + }, + getFloat32: function getFloat32(byteOffset /* , littleEndian */) { + return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4); + }, + getFloat64: function getFloat64(byteOffset /* , littleEndian */) { + return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8); + }, + setInt8: function setInt8(byteOffset, value) { + set(this, 1, byteOffset, packI8, value); + }, + setUint8: function setUint8(byteOffset, value) { + set(this, 1, byteOffset, packI8, value); + }, + setInt16: function setInt16(byteOffset, value /* , littleEndian */) { + set(this, 2, byteOffset, packI16, value, arguments[2]); + }, + setUint16: function setUint16(byteOffset, value /* , littleEndian */) { + set(this, 2, byteOffset, packI16, value, arguments[2]); + }, + setInt32: function setInt32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packI32, value, arguments[2]); + }, + setUint32: function setUint32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packI32, value, arguments[2]); + }, + setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) { + set(this, 4, byteOffset, packF32, value, arguments[2]); + }, + setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) { + set(this, 8, byteOffset, packF64, value, arguments[2]); + } + }); + } else { + if (!fails(function () { + $ArrayBuffer(1); + }) || !fails(function () { + new $ArrayBuffer(-1); // eslint-disable-line no-new + }) || fails(function () { + new $ArrayBuffer(); // eslint-disable-line no-new + new $ArrayBuffer(1.5); // eslint-disable-line no-new + new $ArrayBuffer(NaN); // eslint-disable-line no-new + return $ArrayBuffer.name != ARRAY_BUFFER; + })) { + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, $ArrayBuffer); + return new BaseBuffer(toIndex(length)); + }; + var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE]; + for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) { + if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]); + } + if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer; + } + // iOS Safari 7.x bug + var view = new $DataView(new $ArrayBuffer(2)); + var $setInt8 = $DataView[PROTOTYPE].setInt8; + view.setInt8(0, 2147483648); + view.setInt8(1, 2147483649); + if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], { + setInt8: function setInt8(byteOffset, value) { + $setInt8.call(this, byteOffset, value << 24 >> 24); + }, + setUint8: function setUint8(byteOffset, value) { + $setInt8.call(this, byteOffset, value << 24 >> 24); + } + }, true); + } + setToStringTag($ArrayBuffer, ARRAY_BUFFER); + setToStringTag($DataView, DATA_VIEW); + hide($DataView[PROTOTYPE], $typed.VIEW, true); + exports[ARRAY_BUFFER] = $ArrayBuffer; + exports[DATA_VIEW] = $DataView; + + +/***/ }), +/* 227 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://tc39.github.io/ecma262/#sec-toindex + var toInteger = __webpack_require__(38); + var toLength = __webpack_require__(37); + module.exports = function (it) { + if (it === undefined) return 0; + var number = toInteger(it); + var length = toLength(number); + if (number !== length) throw RangeError('Wrong length!'); + return length; + }; + + +/***/ }), +/* 228 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + $export($export.G + $export.W + $export.F * !__webpack_require__(225).ABV, { + DataView: __webpack_require__(226).DataView + }); + + +/***/ }), +/* 229 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(230)('Int8', 1, function (init) { + return function Int8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + +/***/ }), +/* 230 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + if (__webpack_require__(6)) { + var LIBRARY = __webpack_require__(24); + var global = __webpack_require__(4); + var fails = __webpack_require__(7); + var $export = __webpack_require__(8); + var $typed = __webpack_require__(225); + var $buffer = __webpack_require__(226); + var ctx = __webpack_require__(20); + var anInstance = __webpack_require__(206); + var propertyDesc = __webpack_require__(17); + var hide = __webpack_require__(10); + var redefineAll = __webpack_require__(215); + var toInteger = __webpack_require__(38); + var toLength = __webpack_require__(37); + var toIndex = __webpack_require__(227); + var toAbsoluteIndex = __webpack_require__(39); + var toPrimitive = __webpack_require__(16); + var has = __webpack_require__(5); + var classof = __webpack_require__(74); + var isObject = __webpack_require__(13); + var toObject = __webpack_require__(57); + var isArrayIter = __webpack_require__(163); + var create = __webpack_require__(45); + var getPrototypeOf = __webpack_require__(58); + var gOPN = __webpack_require__(49).f; + var getIterFn = __webpack_require__(165); + var uid = __webpack_require__(19); + var wks = __webpack_require__(26); + var createArrayMethod = __webpack_require__(173); + var createArrayIncludes = __webpack_require__(36); + var speciesConstructor = __webpack_require__(208); + var ArrayIterators = __webpack_require__(194); + var Iterators = __webpack_require__(129); + var $iterDetect = __webpack_require__(166); + var setSpecies = __webpack_require__(193); + var arrayFill = __webpack_require__(189); + var arrayCopyWithin = __webpack_require__(186); + var $DP = __webpack_require__(11); + var $GOPD = __webpack_require__(50); + var dP = $DP.f; + var gOPD = $GOPD.f; + var RangeError = global.RangeError; + var TypeError = global.TypeError; + var Uint8Array = global.Uint8Array; + var ARRAY_BUFFER = 'ArrayBuffer'; + var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER; + var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; + var PROTOTYPE = 'prototype'; + var ArrayProto = Array[PROTOTYPE]; + var $ArrayBuffer = $buffer.ArrayBuffer; + var $DataView = $buffer.DataView; + var arrayForEach = createArrayMethod(0); + var arrayFilter = createArrayMethod(2); + var arraySome = createArrayMethod(3); + var arrayEvery = createArrayMethod(4); + var arrayFind = createArrayMethod(5); + var arrayFindIndex = createArrayMethod(6); + var arrayIncludes = createArrayIncludes(true); + var arrayIndexOf = createArrayIncludes(false); + var arrayValues = ArrayIterators.values; + var arrayKeys = ArrayIterators.keys; + var arrayEntries = ArrayIterators.entries; + var arrayLastIndexOf = ArrayProto.lastIndexOf; + var arrayReduce = ArrayProto.reduce; + var arrayReduceRight = ArrayProto.reduceRight; + var arrayJoin = ArrayProto.join; + var arraySort = ArrayProto.sort; + var arraySlice = ArrayProto.slice; + var arrayToString = ArrayProto.toString; + var arrayToLocaleString = ArrayProto.toLocaleString; + var ITERATOR = wks('iterator'); + var TAG = wks('toStringTag'); + var TYPED_CONSTRUCTOR = uid('typed_constructor'); + var DEF_CONSTRUCTOR = uid('def_constructor'); + var ALL_CONSTRUCTORS = $typed.CONSTR; + var TYPED_ARRAY = $typed.TYPED; + var VIEW = $typed.VIEW; + var WRONG_LENGTH = 'Wrong length!'; + + var $map = createArrayMethod(1, function (O, length) { + return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length); + }); + + var LITTLE_ENDIAN = fails(function () { + // eslint-disable-next-line no-undef + return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1; + }); + + var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () { + new Uint8Array(1).set({}); + }); + + var toOffset = function (it, BYTES) { + var offset = toInteger(it); + if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!'); + return offset; + }; + + var validate = function (it) { + if (isObject(it) && TYPED_ARRAY in it) return it; + throw TypeError(it + ' is not a typed array!'); + }; + + var allocate = function (C, length) { + if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) { + throw TypeError('It is not a typed array constructor!'); + } return new C(length); + }; + + var speciesFromList = function (O, list) { + return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list); + }; + + var fromList = function (C, list) { + var index = 0; + var length = list.length; + var result = allocate(C, length); + while (length > index) result[index] = list[index++]; + return result; + }; + + var addGetter = function (it, key, internal) { + dP(it, key, { get: function () { return this._d[internal]; } }); + }; + + var $from = function from(source /* , mapfn, thisArg */) { + var O = toObject(source); + var aLen = arguments.length; + var mapfn = aLen > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var iterFn = getIterFn(O); + var i, length, values, result, step, iterator; + if (iterFn != undefined && !isArrayIter(iterFn)) { + for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) { + values.push(step.value); + } O = values; + } + if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2); + for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) { + result[i] = mapping ? mapfn(O[i], i) : O[i]; + } + return result; + }; + + var $of = function of(/* ...items */) { + var index = 0; + var length = arguments.length; + var result = allocate(this, length); + while (length > index) result[index] = arguments[index++]; + return result; + }; + + // iOS Safari 6.x fails here + var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); }); + + var $toLocaleString = function toLocaleString() { + return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments); + }; + + var proto = { + copyWithin: function copyWithin(target, start /* , end */) { + return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined); + }, + every: function every(callbackfn /* , thisArg */) { + return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + }, + fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars + return arrayFill.apply(validate(this), arguments); + }, + filter: function filter(callbackfn /* , thisArg */) { + return speciesFromList(this, arrayFilter(validate(this), callbackfn, + arguments.length > 1 ? arguments[1] : undefined)); + }, + find: function find(predicate /* , thisArg */) { + return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined); + }, + findIndex: function findIndex(predicate /* , thisArg */) { + return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined); + }, + forEach: function forEach(callbackfn /* , thisArg */) { + arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + }, + indexOf: function indexOf(searchElement /* , fromIndex */) { + return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); + }, + includes: function includes(searchElement /* , fromIndex */) { + return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); + }, + join: function join(separator) { // eslint-disable-line no-unused-vars + return arrayJoin.apply(validate(this), arguments); + }, + lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars + return arrayLastIndexOf.apply(validate(this), arguments); + }, + map: function map(mapfn /* , thisArg */) { + return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined); + }, + reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars + return arrayReduce.apply(validate(this), arguments); + }, + reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars + return arrayReduceRight.apply(validate(this), arguments); + }, + reverse: function reverse() { + var that = this; + var length = validate(that).length; + var middle = Math.floor(length / 2); + var index = 0; + var value; + while (index < middle) { + value = that[index]; + that[index++] = that[--length]; + that[length] = value; + } return that; + }, + some: function some(callbackfn /* , thisArg */) { + return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + }, + sort: function sort(comparefn) { + return arraySort.call(validate(this), comparefn); + }, + subarray: function subarray(begin, end) { + var O = validate(this); + var length = O.length; + var $begin = toAbsoluteIndex(begin, length); + return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))( + O.buffer, + O.byteOffset + $begin * O.BYTES_PER_ELEMENT, + toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin) + ); + } + }; + + var $slice = function slice(start, end) { + return speciesFromList(this, arraySlice.call(validate(this), start, end)); + }; + + var $set = function set(arrayLike /* , offset */) { + validate(this); + var offset = toOffset(arguments[1], 1); + var length = this.length; + var src = toObject(arrayLike); + var len = toLength(src.length); + var index = 0; + if (len + offset > length) throw RangeError(WRONG_LENGTH); + while (index < len) this[offset + index] = src[index++]; + }; + + var $iterators = { + entries: function entries() { + return arrayEntries.call(validate(this)); + }, + keys: function keys() { + return arrayKeys.call(validate(this)); + }, + values: function values() { + return arrayValues.call(validate(this)); + } + }; + + var isTAIndex = function (target, key) { + return isObject(target) + && target[TYPED_ARRAY] + && typeof key != 'symbol' + && key in target + && String(+key) == String(key); + }; + var $getDesc = function getOwnPropertyDescriptor(target, key) { + return isTAIndex(target, key = toPrimitive(key, true)) + ? propertyDesc(2, target[key]) + : gOPD(target, key); + }; + var $setDesc = function defineProperty(target, key, desc) { + if (isTAIndex(target, key = toPrimitive(key, true)) + && isObject(desc) + && has(desc, 'value') + && !has(desc, 'get') + && !has(desc, 'set') + // TODO: add validation descriptor w/o calling accessors + && !desc.configurable + && (!has(desc, 'writable') || desc.writable) + && (!has(desc, 'enumerable') || desc.enumerable) + ) { + target[key] = desc.value; + return target; + } return dP(target, key, desc); + }; + + if (!ALL_CONSTRUCTORS) { + $GOPD.f = $getDesc; + $DP.f = $setDesc; + } + + $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', { + getOwnPropertyDescriptor: $getDesc, + defineProperty: $setDesc + }); + + if (fails(function () { arrayToString.call({}); })) { + arrayToString = arrayToLocaleString = function toString() { + return arrayJoin.call(this); + }; + } + + var $TypedArrayPrototype$ = redefineAll({}, proto); + redefineAll($TypedArrayPrototype$, $iterators); + hide($TypedArrayPrototype$, ITERATOR, $iterators.values); + redefineAll($TypedArrayPrototype$, { + slice: $slice, + set: $set, + constructor: function () { /* noop */ }, + toString: arrayToString, + toLocaleString: $toLocaleString + }); + addGetter($TypedArrayPrototype$, 'buffer', 'b'); + addGetter($TypedArrayPrototype$, 'byteOffset', 'o'); + addGetter($TypedArrayPrototype$, 'byteLength', 'l'); + addGetter($TypedArrayPrototype$, 'length', 'e'); + dP($TypedArrayPrototype$, TAG, { + get: function () { return this[TYPED_ARRAY]; } + }); + + // eslint-disable-next-line max-statements + module.exports = function (KEY, BYTES, wrapper, CLAMPED) { + CLAMPED = !!CLAMPED; + var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'; + var GETTER = 'get' + KEY; + var SETTER = 'set' + KEY; + var TypedArray = global[NAME]; + var Base = TypedArray || {}; + var TAC = TypedArray && getPrototypeOf(TypedArray); + var FORCED = !TypedArray || !$typed.ABV; + var O = {}; + var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE]; + var getter = function (that, index) { + var data = that._d; + return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN); + }; + var setter = function (that, index, value) { + var data = that._d; + if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff; + data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN); + }; + var addElement = function (that, index) { + dP(that, index, { + get: function () { + return getter(this, index); + }, + set: function (value) { + return setter(this, index, value); + }, + enumerable: true + }); + }; + if (FORCED) { + TypedArray = wrapper(function (that, data, $offset, $length) { + anInstance(that, TypedArray, NAME, '_d'); + var index = 0; + var offset = 0; + var buffer, byteLength, length, klass; + if (!isObject(data)) { + length = toIndex(data); + byteLength = length * BYTES; + buffer = new $ArrayBuffer(byteLength); + } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) { + buffer = data; + offset = toOffset($offset, BYTES); + var $len = data.byteLength; + if ($length === undefined) { + if ($len % BYTES) throw RangeError(WRONG_LENGTH); + byteLength = $len - offset; + if (byteLength < 0) throw RangeError(WRONG_LENGTH); + } else { + byteLength = toLength($length) * BYTES; + if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH); + } + length = byteLength / BYTES; + } else if (TYPED_ARRAY in data) { + return fromList(TypedArray, data); + } else { + return $from.call(TypedArray, data); + } + hide(that, '_d', { + b: buffer, + o: offset, + l: byteLength, + e: length, + v: new $DataView(buffer) + }); + while (index < length) addElement(that, index++); + }); + TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$); + hide(TypedArrayPrototype, 'constructor', TypedArray); + } else if (!fails(function () { + TypedArray(1); + }) || !fails(function () { + new TypedArray(-1); // eslint-disable-line no-new + }) || !$iterDetect(function (iter) { + new TypedArray(); // eslint-disable-line no-new + new TypedArray(null); // eslint-disable-line no-new + new TypedArray(1.5); // eslint-disable-line no-new + new TypedArray(iter); // eslint-disable-line no-new + }, true)) { + TypedArray = wrapper(function (that, data, $offset, $length) { + anInstance(that, TypedArray, NAME); + var klass; + // `ws` module bug, temporarily remove validation length for Uint8Array + // https://github.com/websockets/ws/pull/645 + if (!isObject(data)) return new Base(toIndex(data)); + if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) { + return $length !== undefined + ? new Base(data, toOffset($offset, BYTES), $length) + : $offset !== undefined + ? new Base(data, toOffset($offset, BYTES)) + : new Base(data); + } + if (TYPED_ARRAY in data) return fromList(TypedArray, data); + return $from.call(TypedArray, data); + }); + arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) { + if (!(key in TypedArray)) hide(TypedArray, key, Base[key]); + }); + TypedArray[PROTOTYPE] = TypedArrayPrototype; + if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray; + } + var $nativeIterator = TypedArrayPrototype[ITERATOR]; + var CORRECT_ITER_NAME = !!$nativeIterator + && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined); + var $iterator = $iterators.values; + hide(TypedArray, TYPED_CONSTRUCTOR, true); + hide(TypedArrayPrototype, TYPED_ARRAY, NAME); + hide(TypedArrayPrototype, VIEW, true); + hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray); + + if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) { + dP(TypedArrayPrototype, TAG, { + get: function () { return NAME; } + }); + } + + O[NAME] = TypedArray; + + $export($export.G + $export.W + $export.F * (TypedArray != Base), O); + + $export($export.S, NAME, { + BYTES_PER_ELEMENT: BYTES + }); + + $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, { + from: $from, + of: $of + }); + + if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES); + + $export($export.P, NAME, proto); + + setSpecies(NAME); + + $export($export.P + $export.F * FORCED_SET, NAME, { set: $set }); + + $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators); + + if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString; + + $export($export.P + $export.F * fails(function () { + new TypedArray(1).slice(); + }), NAME, { slice: $slice }); + + $export($export.P + $export.F * (fails(function () { + return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString(); + }) || !fails(function () { + TypedArrayPrototype.toLocaleString.call([1, 2]); + })), NAME, { toLocaleString: $toLocaleString }); + + Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator; + if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator); + }; + } else module.exports = function () { /* empty */ }; + + +/***/ }), +/* 231 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(230)('Uint8', 1, function (init) { + return function Uint8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + +/***/ }), +/* 232 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(230)('Uint8', 1, function (init) { + return function Uint8ClampedArray(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }, true); + + +/***/ }), +/* 233 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(230)('Int16', 2, function (init) { + return function Int16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + +/***/ }), +/* 234 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(230)('Uint16', 2, function (init) { + return function Uint16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + +/***/ }), +/* 235 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(230)('Int32', 4, function (init) { + return function Int32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + +/***/ }), +/* 236 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(230)('Uint32', 4, function (init) { + return function Uint32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + +/***/ }), +/* 237 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(230)('Float32', 4, function (init) { + return function Float32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + +/***/ }), +/* 238 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(230)('Float64', 8, function (init) { + return function Float64Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; + }); + + +/***/ }), +/* 239 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.1 Reflect.apply(target, thisArgument, argumentsList) + var $export = __webpack_require__(8); + var aFunction = __webpack_require__(21); + var anObject = __webpack_require__(12); + var rApply = (__webpack_require__(4).Reflect || {}).apply; + var fApply = Function.apply; + // MS Edge argumentsList argument is optional + $export($export.S + $export.F * !__webpack_require__(7)(function () { + rApply(function () { /* empty */ }); + }), 'Reflect', { + apply: function apply(target, thisArgument, argumentsList) { + var T = aFunction(target); + var L = anObject(argumentsList); + return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L); + } + }); + + +/***/ }), +/* 240 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.2 Reflect.construct(target, argumentsList [, newTarget]) + var $export = __webpack_require__(8); + var create = __webpack_require__(45); + var aFunction = __webpack_require__(21); + var anObject = __webpack_require__(12); + var isObject = __webpack_require__(13); + var fails = __webpack_require__(7); + var bind = __webpack_require__(76); + var rConstruct = (__webpack_require__(4).Reflect || {}).construct; + + // MS Edge supports only 2 arguments and argumentsList argument is optional + // FF Nightly sets third argument as `new.target`, but does not create `this` from it + var NEW_TARGET_BUG = fails(function () { + function F() { /* empty */ } + return !(rConstruct(function () { /* empty */ }, [], F) instanceof F); + }); + var ARGS_BUG = !fails(function () { + rConstruct(function () { /* empty */ }); + }); + + $export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', { + construct: function construct(Target, args /* , newTarget */) { + aFunction(Target); + anObject(args); + var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]); + if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget); + if (Target == newTarget) { + // w/o altered newTarget, optimization for 0-4 arguments + switch (args.length) { + case 0: return new Target(); + case 1: return new Target(args[0]); + case 2: return new Target(args[0], args[1]); + case 3: return new Target(args[0], args[1], args[2]); + case 4: return new Target(args[0], args[1], args[2], args[3]); + } + // w/o altered newTarget, lot of arguments case + var $args = [null]; + $args.push.apply($args, args); + return new (bind.apply(Target, $args))(); + } + // with altered newTarget, not support built-in constructors + var proto = newTarget.prototype; + var instance = create(isObject(proto) ? proto : Object.prototype); + var result = Function.apply.call(Target, instance, args); + return isObject(result) ? result : instance; + } + }); + + +/***/ }), +/* 241 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.3 Reflect.defineProperty(target, propertyKey, attributes) + var dP = __webpack_require__(11); + var $export = __webpack_require__(8); + var anObject = __webpack_require__(12); + var toPrimitive = __webpack_require__(16); + + // MS Edge has broken Reflect.defineProperty - throwing instead of returning false + $export($export.S + $export.F * __webpack_require__(7)(function () { + // eslint-disable-next-line no-undef + Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 }); + }), 'Reflect', { + defineProperty: function defineProperty(target, propertyKey, attributes) { + anObject(target); + propertyKey = toPrimitive(propertyKey, true); + anObject(attributes); + try { + dP.f(target, propertyKey, attributes); + return true; + } catch (e) { + return false; + } + } + }); + + +/***/ }), +/* 242 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.4 Reflect.deleteProperty(target, propertyKey) + var $export = __webpack_require__(8); + var gOPD = __webpack_require__(50).f; + var anObject = __webpack_require__(12); + + $export($export.S, 'Reflect', { + deleteProperty: function deleteProperty(target, propertyKey) { + var desc = gOPD(anObject(target), propertyKey); + return desc && !desc.configurable ? false : delete target[propertyKey]; + } + }); + + +/***/ }), +/* 243 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // 26.1.5 Reflect.enumerate(target) + var $export = __webpack_require__(8); + var anObject = __webpack_require__(12); + var Enumerate = function (iterated) { + this._t = anObject(iterated); // target + this._i = 0; // next index + var keys = this._k = []; // keys + var key; + for (key in iterated) keys.push(key); + }; + __webpack_require__(130)(Enumerate, 'Object', function () { + var that = this; + var keys = that._k; + var key; + do { + if (that._i >= keys.length) return { value: undefined, done: true }; + } while (!((key = keys[that._i++]) in that._t)); + return { value: key, done: false }; + }); + + $export($export.S, 'Reflect', { + enumerate: function enumerate(target) { + return new Enumerate(target); + } + }); + + +/***/ }), +/* 244 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.6 Reflect.get(target, propertyKey [, receiver]) + var gOPD = __webpack_require__(50); + var getPrototypeOf = __webpack_require__(58); + var has = __webpack_require__(5); + var $export = __webpack_require__(8); + var isObject = __webpack_require__(13); + var anObject = __webpack_require__(12); + + function get(target, propertyKey /* , receiver */) { + var receiver = arguments.length < 3 ? target : arguments[2]; + var desc, proto; + if (anObject(target) === receiver) return target[propertyKey]; + if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value') + ? desc.value + : desc.get !== undefined + ? desc.get.call(receiver) + : undefined; + if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver); + } + + $export($export.S, 'Reflect', { get: get }); + + +/***/ }), +/* 245 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey) + var gOPD = __webpack_require__(50); + var $export = __webpack_require__(8); + var anObject = __webpack_require__(12); + + $export($export.S, 'Reflect', { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { + return gOPD.f(anObject(target), propertyKey); + } + }); + + +/***/ }), +/* 246 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.8 Reflect.getPrototypeOf(target) + var $export = __webpack_require__(8); + var getProto = __webpack_require__(58); + var anObject = __webpack_require__(12); + + $export($export.S, 'Reflect', { + getPrototypeOf: function getPrototypeOf(target) { + return getProto(anObject(target)); + } + }); + + +/***/ }), +/* 247 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.9 Reflect.has(target, propertyKey) + var $export = __webpack_require__(8); + + $export($export.S, 'Reflect', { + has: function has(target, propertyKey) { + return propertyKey in target; + } + }); + + +/***/ }), +/* 248 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.10 Reflect.isExtensible(target) + var $export = __webpack_require__(8); + var anObject = __webpack_require__(12); + var $isExtensible = Object.isExtensible; + + $export($export.S, 'Reflect', { + isExtensible: function isExtensible(target) { + anObject(target); + return $isExtensible ? $isExtensible(target) : true; + } + }); + + +/***/ }), +/* 249 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.11 Reflect.ownKeys(target) + var $export = __webpack_require__(8); + + $export($export.S, 'Reflect', { ownKeys: __webpack_require__(250) }); + + +/***/ }), +/* 250 */ +/***/ (function(module, exports, __webpack_require__) { + + // all object keys, includes non-enumerable and symbols + var gOPN = __webpack_require__(49); + var gOPS = __webpack_require__(42); + var anObject = __webpack_require__(12); + var Reflect = __webpack_require__(4).Reflect; + module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) { + var keys = gOPN.f(anObject(it)); + var getSymbols = gOPS.f; + return getSymbols ? keys.concat(getSymbols(it)) : keys; + }; + + +/***/ }), +/* 251 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.12 Reflect.preventExtensions(target) + var $export = __webpack_require__(8); + var anObject = __webpack_require__(12); + var $preventExtensions = Object.preventExtensions; + + $export($export.S, 'Reflect', { + preventExtensions: function preventExtensions(target) { + anObject(target); + try { + if ($preventExtensions) $preventExtensions(target); + return true; + } catch (e) { + return false; + } + } + }); + + +/***/ }), +/* 252 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.13 Reflect.set(target, propertyKey, V [, receiver]) + var dP = __webpack_require__(11); + var gOPD = __webpack_require__(50); + var getPrototypeOf = __webpack_require__(58); + var has = __webpack_require__(5); + var $export = __webpack_require__(8); + var createDesc = __webpack_require__(17); + var anObject = __webpack_require__(12); + var isObject = __webpack_require__(13); + + function set(target, propertyKey, V /* , receiver */) { + var receiver = arguments.length < 4 ? target : arguments[3]; + var ownDesc = gOPD.f(anObject(target), propertyKey); + var existingDescriptor, proto; + if (!ownDesc) { + if (isObject(proto = getPrototypeOf(target))) { + return set(proto, propertyKey, V, receiver); + } + ownDesc = createDesc(0); + } + if (has(ownDesc, 'value')) { + if (ownDesc.writable === false || !isObject(receiver)) return false; + if (existingDescriptor = gOPD.f(receiver, propertyKey)) { + if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false; + existingDescriptor.value = V; + dP.f(receiver, propertyKey, existingDescriptor); + } else dP.f(receiver, propertyKey, createDesc(0, V)); + return true; + } + return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true); + } + + $export($export.S, 'Reflect', { set: set }); + + +/***/ }), +/* 253 */ +/***/ (function(module, exports, __webpack_require__) { + + // 26.1.14 Reflect.setPrototypeOf(target, proto) + var $export = __webpack_require__(8); + var setProto = __webpack_require__(72); + + if (setProto) $export($export.S, 'Reflect', { + setPrototypeOf: function setPrototypeOf(target, proto) { + setProto.check(target, proto); + try { + setProto.set(target, proto); + return true; + } catch (e) { + return false; + } + } + }); + + +/***/ }), +/* 254 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://github.com/tc39/Array.prototype.includes + var $export = __webpack_require__(8); + var $includes = __webpack_require__(36)(true); + + $export($export.P, 'Array', { + includes: function includes(el /* , fromIndex = 0 */) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } + }); + + __webpack_require__(187)('includes'); + + +/***/ }), +/* 255 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap + var $export = __webpack_require__(8); + var flattenIntoArray = __webpack_require__(256); + var toObject = __webpack_require__(57); + var toLength = __webpack_require__(37); + var aFunction = __webpack_require__(21); + var arraySpeciesCreate = __webpack_require__(174); + + $export($export.P, 'Array', { + flatMap: function flatMap(callbackfn /* , thisArg */) { + var O = toObject(this); + var sourceLen, A; + aFunction(callbackfn); + sourceLen = toLength(O.length); + A = arraySpeciesCreate(O, 0); + flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]); + return A; + } + }); + + __webpack_require__(187)('flatMap'); + + +/***/ }), +/* 256 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray + var isArray = __webpack_require__(44); + var isObject = __webpack_require__(13); + var toLength = __webpack_require__(37); + var ctx = __webpack_require__(20); + var IS_CONCAT_SPREADABLE = __webpack_require__(26)('isConcatSpreadable'); + + function flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) { + var targetIndex = start; + var sourceIndex = 0; + var mapFn = mapper ? ctx(mapper, thisArg, 3) : false; + var element, spreadable; + + while (sourceIndex < sourceLen) { + if (sourceIndex in source) { + element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; + + spreadable = false; + if (isObject(element)) { + spreadable = element[IS_CONCAT_SPREADABLE]; + spreadable = spreadable !== undefined ? !!spreadable : isArray(element); + } + + if (spreadable && depth > 0) { + targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1; + } else { + if (targetIndex >= 0x1fffffffffffff) throw TypeError(); + target[targetIndex] = element; + } + + targetIndex++; + } + sourceIndex++; + } + return targetIndex; + } + + module.exports = flattenIntoArray; + + +/***/ }), +/* 257 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten + var $export = __webpack_require__(8); + var flattenIntoArray = __webpack_require__(256); + var toObject = __webpack_require__(57); + var toLength = __webpack_require__(37); + var toInteger = __webpack_require__(38); + var arraySpeciesCreate = __webpack_require__(174); + + $export($export.P, 'Array', { + flatten: function flatten(/* depthArg = 1 */) { + var depthArg = arguments[0]; + var O = toObject(this); + var sourceLen = toLength(O.length); + var A = arraySpeciesCreate(O, 0); + flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg)); + return A; + } + }); + + __webpack_require__(187)('flatten'); + + +/***/ }), +/* 258 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://github.com/mathiasbynens/String.prototype.at + var $export = __webpack_require__(8); + var $at = __webpack_require__(127)(true); + + $export($export.P, 'String', { + at: function at(pos) { + return $at(this, pos); + } + }); + + +/***/ }), +/* 259 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://github.com/tc39/proposal-string-pad-start-end + var $export = __webpack_require__(8); + var $pad = __webpack_require__(260); + var userAgent = __webpack_require__(213); + + // https://github.com/zloirock/core-js/issues/280 + $export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', { + padStart: function padStart(maxLength /* , fillString = ' ' */) { + return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true); + } + }); + + +/***/ }), +/* 260 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/tc39/proposal-string-pad-start-end + var toLength = __webpack_require__(37); + var repeat = __webpack_require__(90); + var defined = __webpack_require__(35); + + module.exports = function (that, maxLength, fillString, left) { + var S = String(defined(that)); + var stringLength = S.length; + var fillStr = fillString === undefined ? ' ' : String(fillString); + var intMaxLength = toLength(maxLength); + if (intMaxLength <= stringLength || fillStr == '') return S; + var fillLen = intMaxLength - stringLength; + var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length)); + if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); + return left ? stringFiller + S : S + stringFiller; + }; + + +/***/ }), +/* 261 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://github.com/tc39/proposal-string-pad-start-end + var $export = __webpack_require__(8); + var $pad = __webpack_require__(260); + var userAgent = __webpack_require__(213); + + // https://github.com/zloirock/core-js/issues/280 + $export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', { + padEnd: function padEnd(maxLength /* , fillString = ' ' */) { + return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false); + } + }); + + +/***/ }), +/* 262 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://github.com/sebmarkbage/ecmascript-string-left-right-trim + __webpack_require__(82)('trimLeft', function ($trim) { + return function trimLeft() { + return $trim(this, 1); + }; + }, 'trimStart'); + + +/***/ }), +/* 263 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://github.com/sebmarkbage/ecmascript-string-left-right-trim + __webpack_require__(82)('trimRight', function ($trim) { + return function trimRight() { + return $trim(this, 2); + }; + }, 'trimEnd'); + + +/***/ }), +/* 264 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://tc39.github.io/String.prototype.matchAll/ + var $export = __webpack_require__(8); + var defined = __webpack_require__(35); + var toLength = __webpack_require__(37); + var isRegExp = __webpack_require__(134); + var getFlags = __webpack_require__(197); + var RegExpProto = RegExp.prototype; + + var $RegExpStringIterator = function (regexp, string) { + this._r = regexp; + this._s = string; + }; + + __webpack_require__(130)($RegExpStringIterator, 'RegExp String', function next() { + var match = this._r.exec(this._s); + return { value: match, done: match === null }; + }); + + $export($export.P, 'String', { + matchAll: function matchAll(regexp) { + defined(this); + if (!isRegExp(regexp)) throw TypeError(regexp + ' is not a regexp!'); + var S = String(this); + var flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp); + var rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags); + rx.lastIndex = toLength(regexp.lastIndex); + return new $RegExpStringIterator(rx, S); + } + }); + + +/***/ }), +/* 265 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(28)('asyncIterator'); + + +/***/ }), +/* 266 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(28)('observable'); + + +/***/ }), +/* 267 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/tc39/proposal-object-getownpropertydescriptors + var $export = __webpack_require__(8); + var ownKeys = __webpack_require__(250); + var toIObject = __webpack_require__(32); + var gOPD = __webpack_require__(50); + var createProperty = __webpack_require__(164); + + $export($export.S, 'Object', { + getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { + var O = toIObject(object); + var getDesc = gOPD.f; + var keys = ownKeys(O); + var result = {}; + var i = 0; + var key, desc; + while (keys.length > i) { + desc = getDesc(O, key = keys[i++]); + if (desc !== undefined) createProperty(result, key, desc); + } + return result; + } + }); + + +/***/ }), +/* 268 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/tc39/proposal-object-values-entries + var $export = __webpack_require__(8); + var $values = __webpack_require__(269)(false); + + $export($export.S, 'Object', { + values: function values(it) { + return $values(it); + } + }); + + +/***/ }), +/* 269 */ +/***/ (function(module, exports, __webpack_require__) { + + var getKeys = __webpack_require__(30); + var toIObject = __webpack_require__(32); + var isEnum = __webpack_require__(43).f; + module.exports = function (isEntries) { + return function (it) { + var O = toIObject(it); + var keys = getKeys(O); + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) if (isEnum.call(O, key = keys[i++])) { + result.push(isEntries ? [key, O[key]] : O[key]); + } return result; + }; + }; + + +/***/ }), +/* 270 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/tc39/proposal-object-values-entries + var $export = __webpack_require__(8); + var $entries = __webpack_require__(269)(true); + + $export($export.S, 'Object', { + entries: function entries(it) { + return $entries(it); + } + }); + + +/***/ }), +/* 271 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var toObject = __webpack_require__(57); + var aFunction = __webpack_require__(21); + var $defineProperty = __webpack_require__(11); + + // B.2.2.2 Object.prototype.__defineGetter__(P, getter) + __webpack_require__(6) && $export($export.P + __webpack_require__(272), 'Object', { + __defineGetter__: function __defineGetter__(P, getter) { + $defineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true }); + } + }); + + +/***/ }), +/* 272 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // Forced replacement prototype accessors methods + module.exports = __webpack_require__(24) || !__webpack_require__(7)(function () { + var K = Math.random(); + // In FF throws only define methods + // eslint-disable-next-line no-undef, no-useless-call + __defineSetter__.call(null, K, function () { /* empty */ }); + delete __webpack_require__(4)[K]; + }); + + +/***/ }), +/* 273 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var toObject = __webpack_require__(57); + var aFunction = __webpack_require__(21); + var $defineProperty = __webpack_require__(11); + + // B.2.2.3 Object.prototype.__defineSetter__(P, setter) + __webpack_require__(6) && $export($export.P + __webpack_require__(272), 'Object', { + __defineSetter__: function __defineSetter__(P, setter) { + $defineProperty.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true }); + } + }); + + +/***/ }), +/* 274 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var toObject = __webpack_require__(57); + var toPrimitive = __webpack_require__(16); + var getPrototypeOf = __webpack_require__(58); + var getOwnPropertyDescriptor = __webpack_require__(50).f; + + // B.2.2.4 Object.prototype.__lookupGetter__(P) + __webpack_require__(6) && $export($export.P + __webpack_require__(272), 'Object', { + __lookupGetter__: function __lookupGetter__(P) { + var O = toObject(this); + var K = toPrimitive(P, true); + var D; + do { + if (D = getOwnPropertyDescriptor(O, K)) return D.get; + } while (O = getPrototypeOf(O)); + } + }); + + +/***/ }), +/* 275 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + var $export = __webpack_require__(8); + var toObject = __webpack_require__(57); + var toPrimitive = __webpack_require__(16); + var getPrototypeOf = __webpack_require__(58); + var getOwnPropertyDescriptor = __webpack_require__(50).f; + + // B.2.2.5 Object.prototype.__lookupSetter__(P) + __webpack_require__(6) && $export($export.P + __webpack_require__(272), 'Object', { + __lookupSetter__: function __lookupSetter__(P) { + var O = toObject(this); + var K = toPrimitive(P, true); + var D; + do { + if (D = getOwnPropertyDescriptor(O, K)) return D.set; + } while (O = getPrototypeOf(O)); + } + }); + + +/***/ }), +/* 276 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/DavidBruant/Map-Set.prototype.toJSON + var $export = __webpack_require__(8); + + $export($export.P + $export.R, 'Map', { toJSON: __webpack_require__(277)('Map') }); + + +/***/ }), +/* 277 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/DavidBruant/Map-Set.prototype.toJSON + var classof = __webpack_require__(74); + var from = __webpack_require__(278); + module.exports = function (NAME) { + return function toJSON() { + if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic"); + return from(this); + }; + }; + + +/***/ }), +/* 278 */ +/***/ (function(module, exports, __webpack_require__) { + + var forOf = __webpack_require__(207); + + module.exports = function (iter, ITERATOR) { + var result = []; + forOf(iter, false, result.push, result, ITERATOR); + return result; + }; + + +/***/ }), +/* 279 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/DavidBruant/Map-Set.prototype.toJSON + var $export = __webpack_require__(8); + + $export($export.P + $export.R, 'Set', { toJSON: __webpack_require__(277)('Set') }); + + +/***/ }), +/* 280 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://tc39.github.io/proposal-setmap-offrom/#sec-map.of + __webpack_require__(281)('Map'); + + +/***/ }), +/* 281 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://tc39.github.io/proposal-setmap-offrom/ + var $export = __webpack_require__(8); + + module.exports = function (COLLECTION) { + $export($export.S, COLLECTION, { of: function of() { + var length = arguments.length; + var A = new Array(length); + while (length--) A[length] = arguments[length]; + return new this(A); + } }); + }; + + +/***/ }), +/* 282 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://tc39.github.io/proposal-setmap-offrom/#sec-set.of + __webpack_require__(281)('Set'); + + +/***/ }), +/* 283 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of + __webpack_require__(281)('WeakMap'); + + +/***/ }), +/* 284 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of + __webpack_require__(281)('WeakSet'); + + +/***/ }), +/* 285 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://tc39.github.io/proposal-setmap-offrom/#sec-map.from + __webpack_require__(286)('Map'); + + +/***/ }), +/* 286 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://tc39.github.io/proposal-setmap-offrom/ + var $export = __webpack_require__(8); + var aFunction = __webpack_require__(21); + var ctx = __webpack_require__(20); + var forOf = __webpack_require__(207); + + module.exports = function (COLLECTION) { + $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) { + var mapFn = arguments[1]; + var mapping, A, n, cb; + aFunction(this); + mapping = mapFn !== undefined; + if (mapping) aFunction(mapFn); + if (source == undefined) return new this(); + A = []; + if (mapping) { + n = 0; + cb = ctx(mapFn, arguments[2], 2); + forOf(source, false, function (nextItem) { + A.push(cb(nextItem, n++)); + }); + } else { + forOf(source, false, A.push, A); + } + return new this(A); + } }); + }; + + +/***/ }), +/* 287 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://tc39.github.io/proposal-setmap-offrom/#sec-set.from + __webpack_require__(286)('Set'); + + +/***/ }), +/* 288 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from + __webpack_require__(286)('WeakMap'); + + +/***/ }), +/* 289 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from + __webpack_require__(286)('WeakSet'); + + +/***/ }), +/* 290 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/tc39/proposal-global + var $export = __webpack_require__(8); + + $export($export.G, { global: __webpack_require__(4) }); + + +/***/ }), +/* 291 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/tc39/proposal-global + var $export = __webpack_require__(8); + + $export($export.S, 'System', { global: __webpack_require__(4) }); + + +/***/ }), +/* 292 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/ljharb/proposal-is-error + var $export = __webpack_require__(8); + var cof = __webpack_require__(34); + + $export($export.S, 'Error', { + isError: function isError(it) { + return cof(it) === 'Error'; + } + }); + + +/***/ }), +/* 293 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://rwaldron.github.io/proposal-math-extensions/ + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { + clamp: function clamp(x, lower, upper) { + return Math.min(upper, Math.max(lower, x)); + } + }); + + +/***/ }), +/* 294 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://rwaldron.github.io/proposal-math-extensions/ + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { DEG_PER_RAD: Math.PI / 180 }); + + +/***/ }), +/* 295 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://rwaldron.github.io/proposal-math-extensions/ + var $export = __webpack_require__(8); + var RAD_PER_DEG = 180 / Math.PI; + + $export($export.S, 'Math', { + degrees: function degrees(radians) { + return radians * RAD_PER_DEG; + } + }); + + +/***/ }), +/* 296 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://rwaldron.github.io/proposal-math-extensions/ + var $export = __webpack_require__(8); + var scale = __webpack_require__(297); + var fround = __webpack_require__(113); + + $export($export.S, 'Math', { + fscale: function fscale(x, inLow, inHigh, outLow, outHigh) { + return fround(scale(x, inLow, inHigh, outLow, outHigh)); + } + }); + + +/***/ }), +/* 297 */ +/***/ (function(module, exports) { + + // https://rwaldron.github.io/proposal-math-extensions/ + module.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) { + if ( + arguments.length === 0 + // eslint-disable-next-line no-self-compare + || x != x + // eslint-disable-next-line no-self-compare + || inLow != inLow + // eslint-disable-next-line no-self-compare + || inHigh != inHigh + // eslint-disable-next-line no-self-compare + || outLow != outLow + // eslint-disable-next-line no-self-compare + || outHigh != outHigh + ) return NaN; + if (x === Infinity || x === -Infinity) return x; + return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow; + }; + + +/***/ }), +/* 298 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { + iaddh: function iaddh(x0, x1, y0, y1) { + var $x0 = x0 >>> 0; + var $x1 = x1 >>> 0; + var $y0 = y0 >>> 0; + return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0; + } + }); + + +/***/ }), +/* 299 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { + isubh: function isubh(x0, x1, y0, y1) { + var $x0 = x0 >>> 0; + var $x1 = x1 >>> 0; + var $y0 = y0 >>> 0; + return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0; + } + }); + + +/***/ }), +/* 300 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { + imulh: function imulh(u, v) { + var UINT16 = 0xffff; + var $u = +u; + var $v = +v; + var u0 = $u & UINT16; + var v0 = $v & UINT16; + var u1 = $u >> 16; + var v1 = $v >> 16; + var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16); + return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16); + } + }); + + +/***/ }), +/* 301 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://rwaldron.github.io/proposal-math-extensions/ + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { RAD_PER_DEG: 180 / Math.PI }); + + +/***/ }), +/* 302 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://rwaldron.github.io/proposal-math-extensions/ + var $export = __webpack_require__(8); + var DEG_PER_RAD = Math.PI / 180; + + $export($export.S, 'Math', { + radians: function radians(degrees) { + return degrees * DEG_PER_RAD; + } + }); + + +/***/ }), +/* 303 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://rwaldron.github.io/proposal-math-extensions/ + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { scale: __webpack_require__(297) }); + + +/***/ }), +/* 304 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { + umulh: function umulh(u, v) { + var UINT16 = 0xffff; + var $u = +u; + var $v = +v; + var u0 = $u & UINT16; + var v0 = $v & UINT16; + var u1 = $u >>> 16; + var v1 = $v >>> 16; + var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16); + return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16); + } + }); + + +/***/ }), +/* 305 */ +/***/ (function(module, exports, __webpack_require__) { + + // http://jfbastien.github.io/papers/Math.signbit.html + var $export = __webpack_require__(8); + + $export($export.S, 'Math', { signbit: function signbit(x) { + // eslint-disable-next-line no-self-compare + return (x = +x) != x ? x : x == 0 ? 1 / x == Infinity : x > 0; + } }); + + +/***/ }), +/* 306 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/tc39/proposal-promise-finally + 'use strict'; + var $export = __webpack_require__(8); + var core = __webpack_require__(9); + var global = __webpack_require__(4); + var speciesConstructor = __webpack_require__(208); + var promiseResolve = __webpack_require__(214); + + $export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) { + var C = speciesConstructor(this, core.Promise || global.Promise); + var isFunction = typeof onFinally == 'function'; + return this.then( + isFunction ? function (x) { + return promiseResolve(C, onFinally()).then(function () { return x; }); + } : onFinally, + isFunction ? function (e) { + return promiseResolve(C, onFinally()).then(function () { throw e; }); + } : onFinally + ); + } }); + + +/***/ }), +/* 307 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://github.com/tc39/proposal-promise-try + var $export = __webpack_require__(8); + var newPromiseCapability = __webpack_require__(211); + var perform = __webpack_require__(212); + + $export($export.S, 'Promise', { 'try': function (callbackfn) { + var promiseCapability = newPromiseCapability.f(this); + var result = perform(callbackfn); + (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); + return promiseCapability.promise; + } }); + + +/***/ }), +/* 308 */ +/***/ (function(module, exports, __webpack_require__) { + + var metadata = __webpack_require__(309); + var anObject = __webpack_require__(12); + var toMetaKey = metadata.key; + var ordinaryDefineOwnMetadata = metadata.set; + + metadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) { + ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey)); + } }); + + +/***/ }), +/* 309 */ +/***/ (function(module, exports, __webpack_require__) { + + var Map = __webpack_require__(216); + var $export = __webpack_require__(8); + var shared = __webpack_require__(23)('metadata'); + var store = shared.store || (shared.store = new (__webpack_require__(221))()); + + var getOrCreateMetadataMap = function (target, targetKey, create) { + var targetMetadata = store.get(target); + if (!targetMetadata) { + if (!create) return undefined; + store.set(target, targetMetadata = new Map()); + } + var keyMetadata = targetMetadata.get(targetKey); + if (!keyMetadata) { + if (!create) return undefined; + targetMetadata.set(targetKey, keyMetadata = new Map()); + } return keyMetadata; + }; + var ordinaryHasOwnMetadata = function (MetadataKey, O, P) { + var metadataMap = getOrCreateMetadataMap(O, P, false); + return metadataMap === undefined ? false : metadataMap.has(MetadataKey); + }; + var ordinaryGetOwnMetadata = function (MetadataKey, O, P) { + var metadataMap = getOrCreateMetadataMap(O, P, false); + return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey); + }; + var ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) { + getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue); + }; + var ordinaryOwnMetadataKeys = function (target, targetKey) { + var metadataMap = getOrCreateMetadataMap(target, targetKey, false); + var keys = []; + if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); }); + return keys; + }; + var toMetaKey = function (it) { + return it === undefined || typeof it == 'symbol' ? it : String(it); + }; + var exp = function (O) { + $export($export.S, 'Reflect', O); + }; + + module.exports = { + store: store, + map: getOrCreateMetadataMap, + has: ordinaryHasOwnMetadata, + get: ordinaryGetOwnMetadata, + set: ordinaryDefineOwnMetadata, + keys: ordinaryOwnMetadataKeys, + key: toMetaKey, + exp: exp + }; + + +/***/ }), +/* 310 */ +/***/ (function(module, exports, __webpack_require__) { + + var metadata = __webpack_require__(309); + var anObject = __webpack_require__(12); + var toMetaKey = metadata.key; + var getOrCreateMetadataMap = metadata.map; + var store = metadata.store; + + metadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) { + var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]); + var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false); + if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false; + if (metadataMap.size) return true; + var targetMetadata = store.get(target); + targetMetadata['delete'](targetKey); + return !!targetMetadata.size || store['delete'](target); + } }); + + +/***/ }), +/* 311 */ +/***/ (function(module, exports, __webpack_require__) { + + var metadata = __webpack_require__(309); + var anObject = __webpack_require__(12); + var getPrototypeOf = __webpack_require__(58); + var ordinaryHasOwnMetadata = metadata.has; + var ordinaryGetOwnMetadata = metadata.get; + var toMetaKey = metadata.key; + + var ordinaryGetMetadata = function (MetadataKey, O, P) { + var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); + if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P); + var parent = getPrototypeOf(O); + return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined; + }; + + metadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) { + return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); + } }); + + +/***/ }), +/* 312 */ +/***/ (function(module, exports, __webpack_require__) { + + var Set = __webpack_require__(220); + var from = __webpack_require__(278); + var metadata = __webpack_require__(309); + var anObject = __webpack_require__(12); + var getPrototypeOf = __webpack_require__(58); + var ordinaryOwnMetadataKeys = metadata.keys; + var toMetaKey = metadata.key; + + var ordinaryMetadataKeys = function (O, P) { + var oKeys = ordinaryOwnMetadataKeys(O, P); + var parent = getPrototypeOf(O); + if (parent === null) return oKeys; + var pKeys = ordinaryMetadataKeys(parent, P); + return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys; + }; + + metadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) { + return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); + } }); + + +/***/ }), +/* 313 */ +/***/ (function(module, exports, __webpack_require__) { + + var metadata = __webpack_require__(309); + var anObject = __webpack_require__(12); + var ordinaryGetOwnMetadata = metadata.get; + var toMetaKey = metadata.key; + + metadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) { + return ordinaryGetOwnMetadata(metadataKey, anObject(target) + , arguments.length < 3 ? undefined : toMetaKey(arguments[2])); + } }); + + +/***/ }), +/* 314 */ +/***/ (function(module, exports, __webpack_require__) { + + var metadata = __webpack_require__(309); + var anObject = __webpack_require__(12); + var ordinaryOwnMetadataKeys = metadata.keys; + var toMetaKey = metadata.key; + + metadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) { + return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); + } }); + + +/***/ }), +/* 315 */ +/***/ (function(module, exports, __webpack_require__) { + + var metadata = __webpack_require__(309); + var anObject = __webpack_require__(12); + var getPrototypeOf = __webpack_require__(58); + var ordinaryHasOwnMetadata = metadata.has; + var toMetaKey = metadata.key; + + var ordinaryHasMetadata = function (MetadataKey, O, P) { + var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); + if (hasOwn) return true; + var parent = getPrototypeOf(O); + return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false; + }; + + metadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) { + return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); + } }); + + +/***/ }), +/* 316 */ +/***/ (function(module, exports, __webpack_require__) { + + var metadata = __webpack_require__(309); + var anObject = __webpack_require__(12); + var ordinaryHasOwnMetadata = metadata.has; + var toMetaKey = metadata.key; + + metadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) { + return ordinaryHasOwnMetadata(metadataKey, anObject(target) + , arguments.length < 3 ? undefined : toMetaKey(arguments[2])); + } }); + + +/***/ }), +/* 317 */ +/***/ (function(module, exports, __webpack_require__) { + + var $metadata = __webpack_require__(309); + var anObject = __webpack_require__(12); + var aFunction = __webpack_require__(21); + var toMetaKey = $metadata.key; + var ordinaryDefineOwnMetadata = $metadata.set; + + $metadata.exp({ metadata: function metadata(metadataKey, metadataValue) { + return function decorator(target, targetKey) { + ordinaryDefineOwnMetadata( + metadataKey, metadataValue, + (targetKey !== undefined ? anObject : aFunction)(target), + toMetaKey(targetKey) + ); + }; + } }); + + +/***/ }), +/* 318 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask + var $export = __webpack_require__(8); + var microtask = __webpack_require__(210)(); + var process = __webpack_require__(4).process; + var isNode = __webpack_require__(34)(process) == 'process'; + + $export($export.G, { + asap: function asap(fn) { + var domain = isNode && process.domain; + microtask(domain ? domain.bind(fn) : fn); + } + }); + + +/***/ }), +/* 319 */ +/***/ (function(module, exports, __webpack_require__) { + + 'use strict'; + // https://github.com/zenparsing/es-observable + var $export = __webpack_require__(8); + var global = __webpack_require__(4); + var core = __webpack_require__(9); + var microtask = __webpack_require__(210)(); + var OBSERVABLE = __webpack_require__(26)('observable'); + var aFunction = __webpack_require__(21); + var anObject = __webpack_require__(12); + var anInstance = __webpack_require__(206); + var redefineAll = __webpack_require__(215); + var hide = __webpack_require__(10); + var forOf = __webpack_require__(207); + var RETURN = forOf.RETURN; + + var getMethod = function (fn) { + return fn == null ? undefined : aFunction(fn); + }; + + var cleanupSubscription = function (subscription) { + var cleanup = subscription._c; + if (cleanup) { + subscription._c = undefined; + cleanup(); + } + }; + + var subscriptionClosed = function (subscription) { + return subscription._o === undefined; + }; + + var closeSubscription = function (subscription) { + if (!subscriptionClosed(subscription)) { + subscription._o = undefined; + cleanupSubscription(subscription); + } + }; + + var Subscription = function (observer, subscriber) { + anObject(observer); + this._c = undefined; + this._o = observer; + observer = new SubscriptionObserver(this); + try { + var cleanup = subscriber(observer); + var subscription = cleanup; + if (cleanup != null) { + if (typeof cleanup.unsubscribe === 'function') cleanup = function () { subscription.unsubscribe(); }; + else aFunction(cleanup); + this._c = cleanup; + } + } catch (e) { + observer.error(e); + return; + } if (subscriptionClosed(this)) cleanupSubscription(this); + }; + + Subscription.prototype = redefineAll({}, { + unsubscribe: function unsubscribe() { closeSubscription(this); } + }); + + var SubscriptionObserver = function (subscription) { + this._s = subscription; + }; + + SubscriptionObserver.prototype = redefineAll({}, { + next: function next(value) { + var subscription = this._s; + if (!subscriptionClosed(subscription)) { + var observer = subscription._o; + try { + var m = getMethod(observer.next); + if (m) return m.call(observer, value); + } catch (e) { + try { + closeSubscription(subscription); + } finally { + throw e; + } + } + } + }, + error: function error(value) { + var subscription = this._s; + if (subscriptionClosed(subscription)) throw value; + var observer = subscription._o; + subscription._o = undefined; + try { + var m = getMethod(observer.error); + if (!m) throw value; + value = m.call(observer, value); + } catch (e) { + try { + cleanupSubscription(subscription); + } finally { + throw e; + } + } cleanupSubscription(subscription); + return value; + }, + complete: function complete(value) { + var subscription = this._s; + if (!subscriptionClosed(subscription)) { + var observer = subscription._o; + subscription._o = undefined; + try { + var m = getMethod(observer.complete); + value = m ? m.call(observer, value) : undefined; + } catch (e) { + try { + cleanupSubscription(subscription); + } finally { + throw e; + } + } cleanupSubscription(subscription); + return value; + } + } + }); + + var $Observable = function Observable(subscriber) { + anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber); + }; + + redefineAll($Observable.prototype, { + subscribe: function subscribe(observer) { + return new Subscription(observer, this._f); + }, + forEach: function forEach(fn) { + var that = this; + return new (core.Promise || global.Promise)(function (resolve, reject) { + aFunction(fn); + var subscription = that.subscribe({ + next: function (value) { + try { + return fn(value); + } catch (e) { + reject(e); + subscription.unsubscribe(); + } + }, + error: reject, + complete: resolve + }); + }); + } + }); + + redefineAll($Observable, { + from: function from(x) { + var C = typeof this === 'function' ? this : $Observable; + var method = getMethod(anObject(x)[OBSERVABLE]); + if (method) { + var observable = anObject(method.call(x)); + return observable.constructor === C ? observable : new C(function (observer) { + return observable.subscribe(observer); + }); + } + return new C(function (observer) { + var done = false; + microtask(function () { + if (!done) { + try { + if (forOf(x, false, function (it) { + observer.next(it); + if (done) return RETURN; + }) === RETURN) return; + } catch (e) { + if (done) throw e; + observer.error(e); + return; + } observer.complete(); + } + }); + return function () { done = true; }; + }); + }, + of: function of() { + for (var i = 0, l = arguments.length, items = new Array(l); i < l;) items[i] = arguments[i++]; + return new (typeof this === 'function' ? this : $Observable)(function (observer) { + var done = false; + microtask(function () { + if (!done) { + for (var j = 0; j < items.length; ++j) { + observer.next(items[j]); + if (done) return; + } observer.complete(); + } + }); + return function () { done = true; }; + }); + } + }); + + hide($Observable.prototype, OBSERVABLE, function () { return this; }); + + $export($export.G, { Observable: $Observable }); + + __webpack_require__(193)('Observable'); + + +/***/ }), +/* 320 */ +/***/ (function(module, exports, __webpack_require__) { + + // ie9- setTimeout & setInterval additional parameters fix + var global = __webpack_require__(4); + var $export = __webpack_require__(8); + var userAgent = __webpack_require__(213); + var slice = [].slice; + var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check + var wrap = function (set) { + return function (fn, time /* , ...args */) { + var boundArgs = arguments.length > 2; + var args = boundArgs ? slice.call(arguments, 2) : false; + return set(boundArgs ? function () { + // eslint-disable-next-line no-new-func + (typeof fn == 'function' ? fn : Function(fn)).apply(this, args); + } : fn, time); + }; + }; + $export($export.G + $export.B + $export.F * MSIE, { + setTimeout: wrap(global.setTimeout), + setInterval: wrap(global.setInterval) + }); + + +/***/ }), +/* 321 */ +/***/ (function(module, exports, __webpack_require__) { + + var $export = __webpack_require__(8); + var $task = __webpack_require__(209); + $export($export.G + $export.B, { + setImmediate: $task.set, + clearImmediate: $task.clear + }); + + +/***/ }), +/* 322 */ +/***/ (function(module, exports, __webpack_require__) { + + var $iterators = __webpack_require__(194); + var getKeys = __webpack_require__(30); + var redefine = __webpack_require__(18); + var global = __webpack_require__(4); + var hide = __webpack_require__(10); + var Iterators = __webpack_require__(129); + var wks = __webpack_require__(26); + var ITERATOR = wks('iterator'); + var TO_STRING_TAG = wks('toStringTag'); + var ArrayValues = Iterators.Array; + + var DOMIterables = { + CSSRuleList: true, // TODO: Not spec compliant, should be false. + CSSStyleDeclaration: false, + CSSValueList: false, + ClientRectList: false, + DOMRectList: false, + DOMStringList: false, + DOMTokenList: true, + DataTransferItemList: false, + FileList: false, + HTMLAllCollection: false, + HTMLCollection: false, + HTMLFormElement: false, + HTMLSelectElement: false, + MediaList: true, // TODO: Not spec compliant, should be false. + MimeTypeArray: false, + NamedNodeMap: false, + NodeList: true, + PaintRequestList: false, + Plugin: false, + PluginArray: false, + SVGLengthList: false, + SVGNumberList: false, + SVGPathSegList: false, + SVGPointList: false, + SVGStringList: false, + SVGTransformList: false, + SourceBufferList: false, + StyleSheetList: true, // TODO: Not spec compliant, should be false. + TextTrackCueList: false, + TextTrackList: false, + TouchList: false + }; + + for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { + var NAME = collections[i]; + var explicit = DOMIterables[NAME]; + var Collection = global[NAME]; + var proto = Collection && Collection.prototype; + var key; + if (proto) { + if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); + if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); + Iterators[NAME] = ArrayValues; + if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true); + } + } + + +/***/ }), +/* 323 */ +/***/ (function(module, exports) { + + /* WEBPACK VAR INJECTION */(function(global) {/** + * Copyright (c) 2014, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * https://raw.github.com/facebook/regenerator/master/LICENSE file. An + * additional grant of patent rights can be found in the PATENTS file in + * the same directory. + */ + + !(function(global) { + "use strict"; + + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined; // More compressible than void 0. + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + + var inModule = typeof module === "object"; + var runtime = global.regeneratorRuntime; + if (runtime) { + if (inModule) { + // If regeneratorRuntime is defined globally and we're in a module, + // make the exports object identical to regeneratorRuntime. + module.exports = runtime; + } + // Don't bother evaluating the rest of this file if the runtime was + // already defined globally. + return; + } + + // Define the runtime globally (as expected by generated code) as either + // module.exports (if we're in a module) or a new, empty object. + runtime = global.regeneratorRuntime = inModule ? module.exports : {}; + + function wrap(innerFn, outerFn, self, tryLocsList) { + // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); + + // The ._invoke method unifies the implementations of the .next, + // .throw, and .return methods. + generator._invoke = makeInvokeMethod(innerFn, self, context); + + return generator; + } + runtime.wrap = wrap; + + // Try/catch helper to minimize deoptimizations. Returns a completion + // record like context.tryEntries[i].completion. This interface could + // have been (and was previously) designed to take a closure to be + // invoked without arguments, but in all the cases we care about we + // already have an existing method we want to call, so there's no need + // to create a new function object. We can even get away with assuming + // the method takes exactly one argument, since that happens to be true + // in every case, so we don't have to touch the arguments object. The + // only additional allocation required is the completion record, which + // has a stable shape and so hopefully should be cheap to allocate. + function tryCatch(fn, obj, arg) { + try { + return { type: "normal", arg: fn.call(obj, arg) }; + } catch (err) { + return { type: "throw", arg: err }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + + // Returning this object from the innerFn has the same effect as + // breaking out of the dispatch switch statement. + var ContinueSentinel = {}; + + // Dummy constructor functions that we use as the .constructor and + // .constructor.prototype properties for functions that return Generator + // objects. For full spec compliance, you may wish to configure your + // minifier not to mangle the names of these two functions. + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + + // This is a polyfill for %IteratorPrototype% for environments that + // don't natively support it. + var IteratorPrototype = {}; + IteratorPrototype[iteratorSymbol] = function () { + return this; + }; + + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + if (NativeIteratorPrototype && + NativeIteratorPrototype !== Op && + hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + // This environment has a native %IteratorPrototype%; use it instead + // of the polyfill. + IteratorPrototype = NativeIteratorPrototype; + } + + var Gp = GeneratorFunctionPrototype.prototype = + Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunctionPrototype[toStringTagSymbol] = + GeneratorFunction.displayName = "GeneratorFunction"; + + // Helper for defining the .next, .throw, and .return methods of the + // Iterator interface in terms of a single ._invoke method. + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function(method) { + prototype[method] = function(arg) { + return this._invoke(method, arg); + }; + }); + } + + runtime.isGeneratorFunction = function(genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor + ? ctor === GeneratorFunction || + // For the native GeneratorFunction constructor, the best we can + // do is to check its .name property. + (ctor.displayName || ctor.name) === "GeneratorFunction" + : false; + }; + + runtime.mark = function(genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + if (!(toStringTagSymbol in genFun)) { + genFun[toStringTagSymbol] = "GeneratorFunction"; + } + } + genFun.prototype = Object.create(Gp); + return genFun; + }; + + // Within the body of any async function, `await x` is transformed to + // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test + // `hasOwn.call(value, "__await")` to determine if the yielded value is + // meant to be awaited. + runtime.awrap = function(arg) { + return { __await: arg }; + }; + + function AsyncIterator(generator) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + if (value && + typeof value === "object" && + hasOwn.call(value, "__await")) { + return Promise.resolve(value.__await).then(function(value) { + invoke("next", value, resolve, reject); + }, function(err) { + invoke("throw", err, resolve, reject); + }); + } + + return Promise.resolve(value).then(function(unwrapped) { + // When a yielded Promise is resolved, its final value becomes + // the .value of the Promise<{value,done}> result for the + // current iteration. If the Promise is rejected, however, the + // result for this iteration will be rejected with the same + // reason. Note that rejections of yielded Promises are not + // thrown back into the generator function, as is the case + // when an awaited Promise is rejected. This difference in + // behavior between yield and await is important, because it + // allows the consumer to decide what to do with the yielded + // rejection (swallow it and continue, manually .throw it back + // into the generator, abandon iteration, whatever). With + // await, by contrast, there is no opportunity to examine the + // rejection reason outside the generator function, so the + // only option is to throw it from the await expression, and + // let the generator function handle the exception. + result.value = unwrapped; + resolve(result); + }, reject); + } + } + + if (typeof global.process === "object" && global.process.domain) { + invoke = global.process.domain.bind(invoke); + } + + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new Promise(function(resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = + // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then( + callInvokeWithMethodAndArg, + // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg + ) : callInvokeWithMethodAndArg(); + } + + // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + runtime.AsyncIterator = AsyncIterator; + + // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + runtime.async = function(innerFn, outerFn, self, tryLocsList) { + var iter = new AsyncIterator( + wrap(innerFn, outerFn, self, tryLocsList) + ); + + return runtime.isGeneratorFunction(outerFn) + ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function(result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } + + // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + return doneResult(); + } + + context.method = method; + context.arg = arg; + + while (true) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if (context.method === "next") { + // Setting context._sent for legacy support of Babel's + // function.sent implementation. + context.sent = context._sent = context.arg; + + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } + + context.dispatchException(context.arg); + + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } + + state = GenStateExecuting; + + var record = tryCatch(innerFn, self, context); + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done + ? GenStateCompleted + : GenStateSuspendedYield; + + if (record.arg === ContinueSentinel) { + continue; + } + + return { + value: record.arg, + done: context.done + }; + + } else if (record.type === "throw") { + state = GenStateCompleted; + // Dispatch the exception by looping back around to the + // context.dispatchException(context.arg) call above. + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } + + // Call delegate.iterator[context.method](context.arg) and handle the + // result, either by returning a { value, done } result from the + // delegate iterator, or by modifying context.method and context.arg, + // setting context.delegate to null, and returning the ContinueSentinel. + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + if (method === undefined) { + // A .throw or .return when the delegate iterator has no .throw + // method always terminates the yield* loop. + context.delegate = null; + + if (context.method === "throw") { + if (delegate.iterator.return) { + // If the delegate iterator has a return method, give it a + // chance to clean up. + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + // If maybeInvokeDelegate(context) changed context.method from + // "return" to "throw", let that override the TypeError below. + return ContinueSentinel; + } + } + + context.method = "throw"; + context.arg = new TypeError( + "The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } + + var info = record.arg; + + if (! info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + // Assign the result of the finished delegate to the temporary + // variable specified by delegate.resultName (see delegateYield). + context[delegate.resultName] = info.value; + + // Resume execution at the desired location (see delegateYield). + context.next = delegate.nextLoc; + + // If context.method was "throw" but the delegate handled the + // exception, let the outer generator proceed normally. If + // context.method was "next", forget context.arg since it has been + // "consumed" by the delegate iterator. If context.method was + // "return", allow the original .return call to continue in the + // outer generator. + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } + + } else { + // Re-yield the result returned by the delegate method. + return info; + } + + // The delegate iterator is finished, so forget it and continue with + // the outer generator. + context.delegate = null; + return ContinueSentinel; + } + + // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + defineIteratorMethods(Gp); + + Gp[toStringTagSymbol] = "Generator"; + + // A Generator should always return itself as the iterator object when the + // @@iterator function is called on it. Some browsers' implementations of the + // iterator prototype chain incorrectly implement this, causing the Generator + // object to not be returned from this call. This ensures that doesn't happen. + // See https://github.com/facebook/regenerator/issues/274 for more details. + Gp[iteratorSymbol] = function() { + return this; + }; + + Gp.toString = function() { + return "[object Generator]"; + }; + + function pushTryEntry(locs) { + var entry = { tryLoc: locs[0] }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ tryLoc: "root" }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + runtime.keys = function(object) { + var keys = []; + for (var key in object) { + keys.push(key); + } + keys.reverse(); + + // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + return function next() { + while (keys.length) { + var key = keys.pop(); + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } + + // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + + return next; + }; + + return next.next = next; + } + } + + // Return an iterator with no values. + return { next: doneResult }; + } + runtime.values = values; + + function doneResult() { + return { value: undefined, done: true }; + } + + Context.prototype = { + constructor: Context, + + reset: function(skipTempReset) { + this.prev = 0; + this.next = 0; + // Resetting context._sent for legacy support of Babel's + // function.sent implementation. + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; + + this.method = "next"; + this.arg = undefined; + + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && + hasOwn.call(this, name) && + !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, + + stop: function() { + this.done = true; + + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + + dispatchException: function(exception) { + if (this.done) { + throw exception; + } + + var context = this; + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + context.method = "next"; + context.arg = undefined; + } + + return !! caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + + abrupt: function(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && + hasOwn.call(entry, "finallyLoc") && + this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && + (type === "break" || + type === "continue") && + finallyEntry.tryLoc <= arg && + arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } + + return this.complete(record); + }, + + complete: function(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || + record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + + return ContinueSentinel; + }, + + finish: function(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + + "catch": function(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + + // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + throw new Error("illegal catch attempt"); + }, + + delegateYield: function(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + this.arg = undefined; + } + + return ContinueSentinel; + } + }; + })( + // Among the various tricks for obtaining a reference to the global + // object, this seems to be the most reliable technique that does not + // use indirect eval (which violates Content Security Policy). + typeof global === "object" ? global : + typeof window === "object" ? window : + typeof self === "object" ? self : this + ); + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }), +/* 324 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(325); + module.exports = __webpack_require__(9).RegExp.escape; + + +/***/ }), +/* 325 */ +/***/ (function(module, exports, __webpack_require__) { + + // https://github.com/benjamingr/RexExp.escape + var $export = __webpack_require__(8); + var $re = __webpack_require__(326)(/[\\^$*+?.()|[\]{}]/g, '\\$&'); + + $export($export.S, 'RegExp', { escape: function escape(it) { return $re(it); } }); + + +/***/ }), +/* 326 */ +/***/ (function(module, exports) { + + module.exports = function (regExp, replace) { + var replacer = replace === Object(replace) ? function (part) { + return replace[part]; + } : replace; + return function (it) { + return String(it).replace(regExp, replacer); + }; + }; + + +/***/ }), +/* 327 */ +/***/ (function(module, exports, __webpack_require__) { + + var BSON = __webpack_require__(328), + Binary = __webpack_require__(350), + Code = __webpack_require__(345), + DBRef = __webpack_require__(349), + Decimal128 = __webpack_require__(346), + Double = __webpack_require__(335), + Int32 = __webpack_require__(344), + Long = __webpack_require__(334), + Map = __webpack_require__(333), + MaxKey = __webpack_require__(348), + MinKey = __webpack_require__(347), + ObjectId = __webpack_require__(337), + BSONRegExp = __webpack_require__(342), + Symbol = __webpack_require__(343), + Timestamp = __webpack_require__(336); + + // BSON MAX VALUES + BSON.BSON_INT32_MAX = 0x7fffffff; + BSON.BSON_INT32_MIN = -0x80000000; + + BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; + BSON.BSON_INT64_MIN = -Math.pow(2, 63); + + // JS MAX PRECISE VALUES + BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. + BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + + // Add BSON types to function creation + BSON.Binary = Binary; + BSON.Code = Code; + BSON.DBRef = DBRef; + BSON.Decimal128 = Decimal128; + BSON.Double = Double; + BSON.Int32 = Int32; + BSON.Long = Long; + BSON.Map = Map; + BSON.MaxKey = MaxKey; + BSON.MinKey = MinKey; + BSON.ObjectId = ObjectId; + BSON.ObjectID = ObjectId; + BSON.BSONRegExp = BSONRegExp; + BSON.Symbol = Symbol; + BSON.Timestamp = Timestamp; + + // Return the BSON + module.exports = BSON; + +/***/ }), +/* 328 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(Buffer) {'use strict'; + + var Map = __webpack_require__(333), + Long = __webpack_require__(334), + Double = __webpack_require__(335), + Timestamp = __webpack_require__(336), + ObjectID = __webpack_require__(337), + BSONRegExp = __webpack_require__(342), + Symbol = __webpack_require__(343), + Int32 = __webpack_require__(344), + Code = __webpack_require__(345), + Decimal128 = __webpack_require__(346), + MinKey = __webpack_require__(347), + MaxKey = __webpack_require__(348), + DBRef = __webpack_require__(349), + Binary = __webpack_require__(350); + + // Parts of the parser + var deserialize = __webpack_require__(351), + serializer = __webpack_require__(352), + calculateObjectSize = __webpack_require__(355); + + /** + * @ignore + * @api private + */ + // Default Max Size + var MAXSIZE = 1024 * 1024 * 17; + + // Current Internal Temporary Serialization Buffer + var buffer = new Buffer(MAXSIZE); + + var BSON = function () {}; + + /** + * Serialize a Javascript object. + * + * @param {Object} object the Javascript object to serialize. + * @param {Boolean} [options.checkKeys] the serializer will check if keys are valid. + * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**. + * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**. + * @param {Number} [options.minInternalBufferSize=1024*1024*17] minimum size of the internal temporary serialization buffer **(default:1024*1024*17)**. + * @return {Buffer} returns the Buffer object containing the serialized object. + * @api public + */ + BSON.prototype.serialize = function serialize(object, options) { + options = options || {}; + // Unpack the options + var checkKeys = typeof options.checkKeys === 'boolean' ? options.checkKeys : false; + var serializeFunctions = typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false; + var ignoreUndefined = typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true; + var minInternalBufferSize = typeof options.minInternalBufferSize === 'number' ? options.minInternalBufferSize : MAXSIZE; + + // Resize the internal serialization buffer if needed + if (buffer.length < minInternalBufferSize) { + buffer = new Buffer(minInternalBufferSize); + } + + // Attempt to serialize + var serializationIndex = serializer(buffer, object, checkKeys, 0, 0, serializeFunctions, ignoreUndefined, []); + // Create the final buffer + var finishedBuffer = new Buffer(serializationIndex); + // Copy into the finished buffer + buffer.copy(finishedBuffer, 0, 0, finishedBuffer.length); + // Return the buffer + return finishedBuffer; + }; + + /** + * Serialize a Javascript object using a predefined Buffer and index into the buffer, useful when pre-allocating the space for serialization. + * + * @param {Object} object the Javascript object to serialize. + * @param {Buffer} buffer the Buffer you pre-allocated to store the serialized BSON object. + * @param {Boolean} [options.checkKeys] the serializer will check if keys are valid. + * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**. + * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**. + * @param {Number} [options.index] the index in the buffer where we wish to start serializing into. + * @return {Number} returns the index pointing to the last written byte in the buffer. + * @api public + */ + BSON.prototype.serializeWithBufferAndIndex = function (object, finalBuffer, options) { + options = options || {}; + // Unpack the options + var checkKeys = typeof options.checkKeys === 'boolean' ? options.checkKeys : false; + var serializeFunctions = typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false; + var ignoreUndefined = typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true; + var startIndex = typeof options.index === 'number' ? options.index : 0; + + // Attempt to serialize + var serializationIndex = serializer(finalBuffer, object, checkKeys, startIndex || 0, 0, serializeFunctions, ignoreUndefined); + + // Return the index + return serializationIndex - 1; + }; + + /** + * Deserialize data as BSON. + * + * @param {Buffer} buffer the buffer containing the serialized set of BSON documents. + * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized. + * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse. + * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function. + * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits + * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a node.js Buffer instance. + * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types. + * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer. + * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances. + * @return {Object} returns the deserialized Javascript Object. + * @api public + */ + BSON.prototype.deserialize = function (buffer, options) { + return deserialize(buffer, options); + }; + + /** + * Calculate the bson size for a passed in Javascript object. + * + * @param {Object} object the Javascript object to calculate the BSON byte size for. + * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**. + * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**. + * @return {Number} returns the number of bytes the BSON object will take up. + * @api public + */ + BSON.prototype.calculateObjectSize = function (object, options) { + options = options || {}; + + var serializeFunctions = typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false; + var ignoreUndefined = typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true; + + return calculateObjectSize(object, serializeFunctions, ignoreUndefined); + }; + + /** + * Deserialize stream data as BSON documents. + * + * @param {Buffer} data the buffer containing the serialized set of BSON documents. + * @param {Number} startIndex the start index in the data Buffer where the deserialization is to start. + * @param {Number} numberOfDocuments number of documents to deserialize. + * @param {Array} documents an array where to store the deserialized documents. + * @param {Number} docStartIndex the index in the documents array from where to start inserting documents. + * @param {Object} [options] additional options used for the deserialization. + * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized. + * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse. + * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function. + * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits + * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a node.js Buffer instance. + * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types. + * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer. + * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances. + * @return {Number} returns the next index in the buffer after deserialization **x** numbers of documents. + * @api public + */ + BSON.prototype.deserializeStream = function (data, startIndex, numberOfDocuments, documents, docStartIndex, options) { + options = options != null ? options : {}; + var index = startIndex; + // Loop over all documents + for (var i = 0; i < numberOfDocuments; i++) { + // Find size of the document + var size = data[index] | data[index + 1] << 8 | data[index + 2] << 16 | data[index + 3] << 24; + // Update options with index + options['index'] = index; + // Parse the document at this point + documents[docStartIndex + i] = this.deserialize(data, options); + // Adjust index by the document size + index = index + size; + } + + // Return object containing end index of parsing and list of documents + return index; + }; + + /** + * @ignore + * @api private + */ + // BSON MAX VALUES + BSON.BSON_INT32_MAX = 0x7fffffff; + BSON.BSON_INT32_MIN = -0x80000000; + + BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; + BSON.BSON_INT64_MIN = -Math.pow(2, 63); + + // JS MAX PRECISE VALUES + BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. + BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + + // Internal long versions + // var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double. + // var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double. + + /** + * Number BSON Type + * + * @classconstant BSON_DATA_NUMBER + **/ + BSON.BSON_DATA_NUMBER = 1; + /** + * String BSON Type + * + * @classconstant BSON_DATA_STRING + **/ + BSON.BSON_DATA_STRING = 2; + /** + * Object BSON Type + * + * @classconstant BSON_DATA_OBJECT + **/ + BSON.BSON_DATA_OBJECT = 3; + /** + * Array BSON Type + * + * @classconstant BSON_DATA_ARRAY + **/ + BSON.BSON_DATA_ARRAY = 4; + /** + * Binary BSON Type + * + * @classconstant BSON_DATA_BINARY + **/ + BSON.BSON_DATA_BINARY = 5; + /** + * ObjectID BSON Type + * + * @classconstant BSON_DATA_OID + **/ + BSON.BSON_DATA_OID = 7; + /** + * Boolean BSON Type + * + * @classconstant BSON_DATA_BOOLEAN + **/ + BSON.BSON_DATA_BOOLEAN = 8; + /** + * Date BSON Type + * + * @classconstant BSON_DATA_DATE + **/ + BSON.BSON_DATA_DATE = 9; + /** + * null BSON Type + * + * @classconstant BSON_DATA_NULL + **/ + BSON.BSON_DATA_NULL = 10; + /** + * RegExp BSON Type + * + * @classconstant BSON_DATA_REGEXP + **/ + BSON.BSON_DATA_REGEXP = 11; + /** + * Code BSON Type + * + * @classconstant BSON_DATA_CODE + **/ + BSON.BSON_DATA_CODE = 13; + /** + * Symbol BSON Type + * + * @classconstant BSON_DATA_SYMBOL + **/ + BSON.BSON_DATA_SYMBOL = 14; + /** + * Code with Scope BSON Type + * + * @classconstant BSON_DATA_CODE_W_SCOPE + **/ + BSON.BSON_DATA_CODE_W_SCOPE = 15; + /** + * 32 bit Integer BSON Type + * + * @classconstant BSON_DATA_INT + **/ + BSON.BSON_DATA_INT = 16; + /** + * Timestamp BSON Type + * + * @classconstant BSON_DATA_TIMESTAMP + **/ + BSON.BSON_DATA_TIMESTAMP = 17; + /** + * Long BSON Type + * + * @classconstant BSON_DATA_LONG + **/ + BSON.BSON_DATA_LONG = 18; + /** + * MinKey BSON Type + * + * @classconstant BSON_DATA_MIN_KEY + **/ + BSON.BSON_DATA_MIN_KEY = 0xff; + /** + * MaxKey BSON Type + * + * @classconstant BSON_DATA_MAX_KEY + **/ + BSON.BSON_DATA_MAX_KEY = 0x7f; + + /** + * Binary Default Type + * + * @classconstant BSON_BINARY_SUBTYPE_DEFAULT + **/ + BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0; + /** + * Binary Function Type + * + * @classconstant BSON_BINARY_SUBTYPE_FUNCTION + **/ + BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1; + /** + * Binary Byte Array Type + * + * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY + **/ + BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2; + /** + * Binary UUID Type + * + * @classconstant BSON_BINARY_SUBTYPE_UUID + **/ + BSON.BSON_BINARY_SUBTYPE_UUID = 3; + /** + * Binary MD5 Type + * + * @classconstant BSON_BINARY_SUBTYPE_MD5 + **/ + BSON.BSON_BINARY_SUBTYPE_MD5 = 4; + /** + * Binary User Defined Type + * + * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED + **/ + BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128; + + // Return BSON + module.exports = BSON; + module.exports.Code = Code; + module.exports.Map = Map; + module.exports.Symbol = Symbol; + module.exports.BSON = BSON; + module.exports.DBRef = DBRef; + module.exports.Binary = Binary; + module.exports.ObjectID = ObjectID; + module.exports.Long = Long; + module.exports.Timestamp = Timestamp; + module.exports.Double = Double; + module.exports.Int32 = Int32; + module.exports.MinKey = MinKey; + module.exports.MaxKey = MaxKey; + module.exports.BSONRegExp = BSONRegExp; + module.exports.Decimal128 = Decimal128; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(329).Buffer)) + +/***/ }), +/* 329 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ + /* eslint-disable no-proto */ + + 'use strict' + + var base64 = __webpack_require__(330) + var ieee754 = __webpack_require__(331) + var isArray = __webpack_require__(332) + + exports.Buffer = Buffer + exports.SlowBuffer = SlowBuffer + exports.INSPECT_MAX_BYTES = 50 + + /** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Use Object implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * Due to various browser bugs, sometimes the Object implementation will be used even + * when the browser supports typed arrays. + * + * Note: + * + * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, + * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. + * + * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. + * + * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of + * incorrect length in some situations. + + * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they + * get the Object implementation, which is slower but behaves correctly. + */ + Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined + ? global.TYPED_ARRAY_SUPPORT + : typedArraySupport() + + /* + * Export kMaxLength after typed array support is determined. + */ + exports.kMaxLength = kMaxLength() + + function typedArraySupport () { + try { + var arr = new Uint8Array(1) + arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} + return arr.foo() === 42 && // typed array instances can be augmented + typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` + arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` + } catch (e) { + return false + } + } + + function kMaxLength () { + return Buffer.TYPED_ARRAY_SUPPORT + ? 0x7fffffff + : 0x3fffffff + } + + function createBuffer (that, length) { + if (kMaxLength() < length) { + throw new RangeError('Invalid typed array length') + } + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = new Uint8Array(length) + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + if (that === null) { + that = new Buffer(length) + } + that.length = length + } + + return that + } + + /** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ + + function Buffer (arg, encodingOrOffset, length) { + if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { + return new Buffer(arg, encodingOrOffset, length) + } + + // Common case. + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new Error( + 'If encoding is specified then the first argument must be a string' + ) + } + return allocUnsafe(this, arg) + } + return from(this, arg, encodingOrOffset, length) + } + + Buffer.poolSize = 8192 // not used by this implementation + + // TODO: Legacy, not needed anymore. Remove in next major version. + Buffer._augment = function (arr) { + arr.__proto__ = Buffer.prototype + return arr + } + + function from (that, value, encodingOrOffset, length) { + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number') + } + + if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { + return fromArrayBuffer(that, value, encodingOrOffset, length) + } + + if (typeof value === 'string') { + return fromString(that, value, encodingOrOffset) + } + + return fromObject(that, value) + } + + /** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ + Buffer.from = function (value, encodingOrOffset, length) { + return from(null, value, encodingOrOffset, length) + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + Buffer.prototype.__proto__ = Uint8Array.prototype + Buffer.__proto__ = Uint8Array + if (typeof Symbol !== 'undefined' && Symbol.species && + Buffer[Symbol.species] === Buffer) { + // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true + }) + } + } + + function assertSize (size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be a number') + } else if (size < 0) { + throw new RangeError('"size" argument must not be negative') + } + } + + function alloc (that, size, fill, encoding) { + assertSize(size) + if (size <= 0) { + return createBuffer(that, size) + } + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpretted as a start offset. + return typeof encoding === 'string' + ? createBuffer(that, size).fill(fill, encoding) + : createBuffer(that, size).fill(fill) + } + return createBuffer(that, size) + } + + /** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ + Buffer.alloc = function (size, fill, encoding) { + return alloc(null, size, fill, encoding) + } + + function allocUnsafe (that, size) { + assertSize(size) + that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < size; ++i) { + that[i] = 0 + } + } + return that + } + + /** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ + Buffer.allocUnsafe = function (size) { + return allocUnsafe(null, size) + } + /** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ + Buffer.allocUnsafeSlow = function (size) { + return allocUnsafe(null, size) + } + + function fromString (that, string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8' + } + + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('"encoding" must be a valid string encoding') + } + + var length = byteLength(string, encoding) | 0 + that = createBuffer(that, length) + + var actual = that.write(string, encoding) + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + that = that.slice(0, actual) + } + + return that + } + + function fromArrayLike (that, array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0 + that = createBuffer(that, length) + for (var i = 0; i < length; i += 1) { + that[i] = array[i] & 255 + } + return that + } + + function fromArrayBuffer (that, array, byteOffset, length) { + array.byteLength // this throws if `array` is not a valid ArrayBuffer + + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('\'offset\' is out of bounds') + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('\'length\' is out of bounds') + } + + if (byteOffset === undefined && length === undefined) { + array = new Uint8Array(array) + } else if (length === undefined) { + array = new Uint8Array(array, byteOffset) + } else { + array = new Uint8Array(array, byteOffset, length) + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + that = array + that.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + that = fromArrayLike(that, array) + } + return that + } + + function fromObject (that, obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0 + that = createBuffer(that, len) + + if (that.length === 0) { + return that + } + + obj.copy(that, 0, 0, len) + return that + } + + if (obj) { + if ((typeof ArrayBuffer !== 'undefined' && + obj.buffer instanceof ArrayBuffer) || 'length' in obj) { + if (typeof obj.length !== 'number' || isnan(obj.length)) { + return createBuffer(that, 0) + } + return fromArrayLike(that, obj) + } + + if (obj.type === 'Buffer' && isArray(obj.data)) { + return fromArrayLike(that, obj.data) + } + } + + throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') + } + + function checked (length) { + // Note: cannot use `length < kMaxLength()` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= kMaxLength()) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + kMaxLength().toString(16) + ' bytes') + } + return length | 0 + } + + function SlowBuffer (length) { + if (+length != length) { // eslint-disable-line eqeqeq + length = 0 + } + return Buffer.alloc(+length) + } + + Buffer.isBuffer = function isBuffer (b) { + return !!(b != null && b._isBuffer) + } + + Buffer.compare = function compare (a, b) { + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError('Arguments must be Buffers') + } + + if (a === b) return 0 + + var x = a.length + var y = b.length + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i] + y = b[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 + } + + Buffer.isEncoding = function isEncoding (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 true + default: + return false + } + } + + Buffer.concat = function concat (list, length) { + if (!isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return Buffer.alloc(0) + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } + + var buffer = Buffer.allocUnsafe(length) + var pos = 0 + for (i = 0; i < list.length; ++i) { + var buf = list[i] + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos) + pos += buf.length + } + return buffer + } + + function byteLength (string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && + (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + string = '' + string + } + + var len = string.length + if (len === 0) return 0 + + // Use a for loop to avoid recursion + var loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + case undefined: + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) return utf8ToBytes(string).length // assume utf8 + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } + } + Buffer.byteLength = byteLength + + function slowToString (encoding, start, end) { + var loweredCase = false + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0 + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return '' + } + + if (end === undefined || end > this.length) { + end = this.length + } + + if (end <= 0) { + return '' + } + + // Force coersion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0 + start >>>= 0 + + if (end <= start) { + return '' + } + + if (!encoding) encoding = 'utf8' + + while (true) { + 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 = true + } + } + } + + // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect + // Buffer instances. + Buffer.prototype._isBuffer = true + + function swap (b, n, m) { + var i = b[n] + b[n] = b[m] + b[m] = i + } + + Buffer.prototype.swap16 = function swap16 () { + var len = this.length + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1) + } + return this + } + + Buffer.prototype.swap32 = function swap32 () { + var len = this.length + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3) + swap(this, i + 1, i + 2) + } + return this + } + + Buffer.prototype.swap64 = function swap64 () { + var len = this.length + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (var i = 0; i < len; 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 toString () { + var length = this.length | 0 + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) + } + + Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 + } + + Buffer.prototype.inspect = function inspect () { + var str = '' + var max = exports.INSPECT_MAX_BYTES + if (this.length > 0) { + str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') + if (this.length > max) str += ' ... ' + } + return '' + } + + Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { + if (!Buffer.isBuffer(target)) { + throw new TypeError('Argument must be a Buffer') + } + + if (start === undefined) { + start = 0 + } + if (end === undefined) { + end = target ? target.length : 0 + } + if (thisStart === undefined) { + thisStart = 0 + } + if (thisEnd === undefined) { + thisEnd = this.length + } + + if (start < 0 || end > target.length || thisStart < 0 || 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 + } + + start >>>= 0 + end >>>= 0 + thisStart >>>= 0 + thisEnd >>>= 0 + + if (this === target) return 0 + + var x = thisEnd - thisStart + var y = end - start + var len = Math.min(x, y) + + var thisCopy = this.slice(thisStart, thisEnd) + var targetCopy = target.slice(start, end) + + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i] + y = targetCopy[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 + } + + // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, + // OR the last index of `val` in `buffer` at offset <= `byteOffset`. + // + // Arguments: + // - buffer - a Buffer to search + // - val - a string, Buffer, or number + // - byteOffset - an index into `buffer`; will be clamped to an int32 + // - encoding - an optional encoding, relevant is val is a string + // - dir - true for indexOf, false for lastIndexOf + function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1 + + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset + byteOffset = 0 + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000 + } + byteOffset = +byteOffset // Coerce to Number. + if (isNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : (buffer.length - 1) + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1 + } else if (byteOffset < 0) { + if (dir) byteOffset = 0 + else return -1 + } + + // Normalize val + if (typeof val === 'string') { + val = Buffer.from(val, encoding) + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 0xFF // Search for a byte value [0-255] + if (Buffer.TYPED_ARRAY_SUPPORT && + typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) + } + } + return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) + } + + throw new TypeError('val must be string, number or Buffer') + } + + function arrayIndexOf (arr, val, byteOffset, encoding, dir) { + var indexSize = 1 + var arrLength = arr.length + var valLength = val.length + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase() + if (encoding === 'ucs2' || encoding === 'ucs-2' || + encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2 + arrLength /= 2 + valLength /= 2 + byteOffset /= 2 + } + } + + function read (buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) + } + } + + var i + if (dir) { + var foundIndex = -1 + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex + foundIndex = -1 + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength + for (i = byteOffset; i >= 0; i--) { + var found = true + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false + break + } + } + if (found) return i + } + } + + return -1 + } + + Buffer.prototype.includes = function includes (val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 + } + + Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) + } + + Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) + } + + function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0 + var remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } + + // must be an even number of digits + var strLen = string.length + if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') + + if (length > strLen / 2) { + length = strLen / 2 + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 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) + } + + Buffer.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset | 0 + if (isFinite(length)) { + length = length | 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + // legacy write(string, encoding, offset, length) - remove in v0.13 + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported' + ) + } + + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + if (!encoding) encoding = 'utf8' + + var loweredCase = false + for (;;) { + 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': + // Warning: maxLength not taken into account in base64Write + 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 = true + } + } + } + + Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } + } + + function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } + } + + function utf8Slice (buf, start, end) { + end = Math.min(buf.length, end) + var res = [] + + var i = start + while (i < end) { + var firstByte = buf[i] + var codePoint = null + var bytesPerSequence = (firstByte > 0xEF) ? 4 + : (firstByte > 0xDF) ? 3 + : (firstByte > 0xBF) ? 2 + : 1 + + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte + } + break + case 2: + secondByte = buf[i + 1] + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + fourthByte = buf[i + 3] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD + bytesPerSequence = 1 + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000 + res.push(codePoint >>> 10 & 0x3FF | 0xD800) + codePoint = 0xDC00 | codePoint & 0x3FF + } + + res.push(codePoint) + i += bytesPerSequence + } + + return decodeCodePointsArray(res) + } + + // Based on http://stackoverflow.com/a/22747272/680742, the browser with + // the lowest limit is Chrome, with 0x10000 args. + // We go 1 magnitude less, for safety + var MAX_ARGUMENTS_LENGTH = 0x1000 + + function decodeCodePointsArray (codePoints) { + var len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() + } + + // Decode in chunks to avoid "call stack size exceeded". + var res = '' + var i = 0 + while (i < len) { + 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; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F) + } + return ret + } + + function latin1Slice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]) + } + return ret + } + + function hexSlice (buf, start, end) { + var len = buf.length + + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len + + var out = '' + for (var i = start; i < end; ++i) { + out += toHex(buf[i]) + } + return out + } + + function utf16leSlice (buf, start, end) { + var bytes = buf.slice(start, end) + var res = '' + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) + } + return res + } + + Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) 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, undefined) + for (var i = 0; i < sliceLen; ++i) { + newBuf[i] = this[i + start] + } + } + + return newBuf + } + + /* + * Need to make sure that buffer isn't trying to write out of bounds. + */ + function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') + } + + Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + + return val + } + + Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } + + var val = this[offset + --byteLength] + var mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul + } + + return val + } + + Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] + } + + Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) + } + + Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] + } + + Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) + } + + Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) + } + + Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val + } + + Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var i = byteLength + var mul = 1 + var val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val + } + + Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) + } + + Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset] | (this[offset + 1] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val + } + + Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset + 1] | (this[offset] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val + } + + Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) + } + + Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) + } + + Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) + } + + Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) + } + + Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) + } + + Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) + } + + 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 || value < min) throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') + } + + Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var mul = 1 + var i = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength + } + + Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + byteLength = byteLength | 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var i = byteLength - 1 + var mul = 1 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength + } + + Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + this[offset] = (value & 0xff) + return offset + 1 + } + + function objectWriteUInt16 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { + buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> + (littleEndian ? i : 1 - i) * 8 + } + } + + Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 + } + + Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 + } + + function objectWriteUInt32 (buf, value, offset, littleEndian) { + if (value < 0) value = 0xffffffff + value + 1 + for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { + buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff + } + } + + Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset + 3] = (value >>> 24) + this[offset + 2] = (value >>> 16) + this[offset + 1] = (value >>> 8) + this[offset] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 + } + + Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 + } + + Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = 0 + var mul = 1 + var sub = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength + } + + Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) { + var limit = Math.pow(2, 8 * byteLength - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = byteLength - 1 + var mul = 1 + var sub = 0 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength + } + + Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) + if (value < 0) value = 0xff + value + 1 + this[offset] = (value & 0xff) + return offset + 1 + } + + Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + } else { + objectWriteUInt16(this, value, offset, true) + } + return offset + 2 + } + + Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + } else { + objectWriteUInt16(this, value, offset, false) + } + return offset + 2 + } + + Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + this[offset + 2] = (value >>> 16) + this[offset + 3] = (value >>> 24) + } else { + objectWriteUInt32(this, value, offset, true) + } + return offset + 4 + } + + Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value + offset = offset | 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + if (Buffer.TYPED_ARRAY_SUPPORT) { + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + } else { + objectWriteUInt32(this, value, offset, false) + } + return offset + 4 + } + + function checkIEEE754 (buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') + } + + function writeFloat (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) + } + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 + } + + Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) + } + + Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) + } + + function writeDouble (buf, value, offset, littleEndian, noAssert) { + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) + } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 + } + + Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) + } + + Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) + } + + // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) + Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + var i + + if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start] + } + } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + // ascending copy from start + for (i = 0; i < len; ++i) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, start + len), + targetStart + ) + } + + return len + } + + // Usage: + // buffer.fill(number[, offset[, end]]) + // buffer.fill(buffer[, offset[, end]]) + // buffer.fill(string[, offset[, end]][, encoding]) + Buffer.prototype.fill = function fill (val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start + start = 0 + end = this.length + } else if (typeof end === 'string') { + encoding = end + end = this.length + } + if (val.length === 1) { + var code = val.charCodeAt(0) + if (code < 256) { + val = code + } + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + } else if (typeof val === 'number') { + val = val & 255 + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 + + if (!val) val = 0 + + var i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + var bytes = Buffer.isBuffer(val) + ? val + : utf8ToBytes(new Buffer(val, encoding).toString()) + var len = bytes.length + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } + } + + return this + } + + // HELPER FUNCTIONS + // ================ + + var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g + + function base64clean (str) { + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = stringtrim(str).replace(INVALID_BASE64_RE, '') + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '=' + } + return str + } + + function stringtrim (str) { + if (str.trim) return str.trim() + return str.replace(/^\s+|\s+$/g, '') + } + + function toHex (n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) + } + + function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } + + // valid lead + leadSurrogate = codePoint + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } + + leadSurrogate = null + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes + } + + function asciiToBytes (str) { + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF) + } + return byteArray + } + + function utf16leToBytes (str, units) { + var c, hi, lo + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i) + hi = c >> 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; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i + } + + function isnan (val) { + return val !== val // eslint-disable-line no-self-compare + } + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }), +/* 330 */ +/***/ (function(module, exports) { + + 'use strict' + + exports.byteLength = byteLength + exports.toByteArray = toByteArray + exports.fromByteArray = fromByteArray + + var lookup = [] + var revLookup = [] + var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array + + var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' + for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i] + revLookup[code.charCodeAt(i)] = i + } + + // Support decoding URL-safe base64 strings, as Node.js does. + // See: https://en.wikipedia.org/wiki/Base64#URL_applications + revLookup['-'.charCodeAt(0)] = 62 + revLookup['_'.charCodeAt(0)] = 63 + + function getLens (b64) { + var len = b64.length + + if (len % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + + // Trim off extra bytes after placeholder bytes are found + // See: https://github.com/beatgammit/base64-js/issues/42 + var validLen = b64.indexOf('=') + if (validLen === -1) validLen = len + + var placeHoldersLen = validLen === len + ? 0 + : 4 - (validLen % 4) + + return [validLen, placeHoldersLen] + } + + // base64 is 4/3 + up to two characters of the original data + function byteLength (b64) { + var lens = getLens(b64) + var validLen = lens[0] + var placeHoldersLen = lens[1] + return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen + } + + function _byteLength (b64, validLen, placeHoldersLen) { + return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen + } + + function toByteArray (b64) { + var tmp + var lens = getLens(b64) + var validLen = lens[0] + var placeHoldersLen = lens[1] + + var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) + + var curByte = 0 + + // if there are placeholders, only get up to the last complete 4 chars + var len = placeHoldersLen > 0 + ? validLen - 4 + : validLen + + for (var i = 0; i < len; 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) & 0xFF + arr[curByte++] = (tmp >> 8) & 0xFF + arr[curByte++] = tmp & 0xFF + } + + if (placeHoldersLen === 2) { + tmp = + (revLookup[b64.charCodeAt(i)] << 2) | + (revLookup[b64.charCodeAt(i + 1)] >> 4) + arr[curByte++] = tmp & 0xFF + } + + if (placeHoldersLen === 1) { + tmp = + (revLookup[b64.charCodeAt(i)] << 10) | + (revLookup[b64.charCodeAt(i + 1)] << 4) | + (revLookup[b64.charCodeAt(i + 2)] >> 2) + arr[curByte++] = (tmp >> 8) & 0xFF + arr[curByte++] = tmp & 0xFF + } + + return arr + } + + function tripletToBase64 (num) { + return lookup[num >> 18 & 0x3F] + + lookup[num >> 12 & 0x3F] + + lookup[num >> 6 & 0x3F] + + lookup[num & 0x3F] + } + + function encodeChunk (uint8, start, end) { + var tmp + var output = [] + for (var i = start; i < end; i += 3) { + tmp = + ((uint8[i] << 16) & 0xFF0000) + + ((uint8[i + 1] << 8) & 0xFF00) + + (uint8[i + 2] & 0xFF) + output.push(tripletToBase64(tmp)) + } + return output.join('') + } + + function fromByteArray (uint8) { + var tmp + var len = uint8.length + var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes + var parts = [] + var maxChunkLength = 16383 // must be multiple of 3 + + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk( + uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength) + )) + } + + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1] + parts.push( + lookup[tmp >> 2] + + lookup[(tmp << 4) & 0x3F] + + '==' + ) + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + uint8[len - 1] + parts.push( + lookup[tmp >> 10] + + lookup[(tmp >> 4) & 0x3F] + + lookup[(tmp << 2) & 0x3F] + + '=' + ) + } + + return parts.join('') + } + + +/***/ }), +/* 331 */ +/***/ (function(module, exports) { + + exports.read = function (buffer, offset, isLE, mLen, nBytes) { + var e, m + var eLen = (nBytes * 8) - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var nBits = -7 + var i = isLE ? (nBytes - 1) : 0 + var d = isLE ? -1 : 1 + var s = buffer[offset + i] + + i += d + + e = s & ((1 << (-nBits)) - 1) + s >>= (-nBits) + nBits += eLen + for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & ((1 << (-nBits)) - 1) + e >>= (-nBits) + nBits += mLen + for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity) + } else { + m = m + Math.pow(2, mLen) + e = 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 + var eLen = (nBytes * 8) - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) + var i = isLE ? 0 : (nBytes - 1) + var d = isLE ? 1 : -1 + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 + + value = Math.abs(value) + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0 + e = eMax + } else { + e = Math.floor(Math.log(value) / Math.LN2) + if (value * (c = Math.pow(2, -e)) < 1) { + e-- + c *= 2 + } + if (e + eBias >= 1) { + value += rt / c + } else { + value += rt * Math.pow(2, 1 - eBias) + } + if (value * c >= 2) { + e++ + c /= 2 + } + + if (e + eBias >= eMax) { + m = 0 + e = eMax + } else if (e + eBias >= 1) { + m = ((value * c) - 1) * Math.pow(2, mLen) + e = e + eBias + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) + e = 0 + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} + + e = (e << mLen) | m + eLen += mLen + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} + + buffer[offset + i - d] |= s * 128 + } + + +/***/ }), +/* 332 */ +/***/ (function(module, exports) { + + var toString = {}.toString; + + module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; + }; + + +/***/ }), +/* 333 */ +/***/ (function(module, exports) { + + /* WEBPACK VAR INJECTION */(function(global) {'use strict'; + + // We have an ES6 Map available, return the native instance + + if (typeof global.Map !== 'undefined') { + module.exports = global.Map; + module.exports.Map = global.Map; + } else { + // We will return a polyfill + var Map = function (array) { + this._keys = []; + this._values = {}; + + for (var i = 0; i < array.length; i++) { + if (array[i] == null) continue; // skip null and undefined + var entry = array[i]; + var key = entry[0]; + var value = entry[1]; + // Add the key to the list of keys in order + this._keys.push(key); + // Add the key and value to the values dictionary with a point + // to the location in the ordered keys list + this._values[key] = { v: value, i: this._keys.length - 1 }; + } + }; + + Map.prototype.clear = function () { + this._keys = []; + this._values = {}; + }; + + Map.prototype.delete = function (key) { + var value = this._values[key]; + if (value == null) return false; + // Delete entry + delete this._values[key]; + // Remove the key from the ordered keys list + this._keys.splice(value.i, 1); + return true; + }; + + Map.prototype.entries = function () { + var self = this; + var index = 0; + + return { + next: function () { + var key = self._keys[index++]; + return { + value: key !== undefined ? [key, self._values[key].v] : undefined, + done: key !== undefined ? false : true + }; + } + }; + }; + + Map.prototype.forEach = function (callback, self) { + self = self || this; + + for (var i = 0; i < this._keys.length; i++) { + var key = this._keys[i]; + // Call the forEach callback + callback.call(self, this._values[key].v, key, self); + } + }; + + Map.prototype.get = function (key) { + return this._values[key] ? this._values[key].v : undefined; + }; + + Map.prototype.has = function (key) { + return this._values[key] != null; + }; + + Map.prototype.keys = function () { + var self = this; + var index = 0; + + return { + next: function () { + var key = self._keys[index++]; + return { + value: key !== undefined ? key : undefined, + done: key !== undefined ? false : true + }; + } + }; + }; + + Map.prototype.set = function (key, value) { + if (this._values[key]) { + this._values[key].v = value; + return this; + } + + // Add the key to the list of keys in order + this._keys.push(key); + // Add the key and value to the values dictionary with a point + // to the location in the ordered keys list + this._values[key] = { v: value, i: this._keys.length - 1 }; + return this; + }; + + Map.prototype.values = function () { + var self = this; + var index = 0; + + return { + next: function () { + var key = self._keys[index++]; + return { + value: key !== undefined ? self._values[key].v : undefined, + done: key !== undefined ? false : true + }; + } + }; + }; + + // Last ismaster + Object.defineProperty(Map.prototype, 'size', { + enumerable: true, + get: function () { + return this._keys.length; + } + }); + + module.exports = Map; + module.exports.Map = Map; + } + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }), +/* 334 */ +/***/ (function(module, exports) { + + // Licensed under the Apache License, Version 2.0 (the "License"); + // you may not use this file except in compliance with the License. + // You may obtain a copy of the License at + // + // http://www.apache.org/licenses/LICENSE-2.0 + // + // Unless required by applicable law or agreed to in writing, software + // distributed under the License is distributed on an "AS IS" BASIS, + // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + // See the License for the specific language governing permissions and + // limitations under the License. + // + // Copyright 2009 Google Inc. All Rights Reserved + + /** + * Defines a Long class for representing a 64-bit two's-complement + * integer value, which faithfully simulates the behavior of a Java "Long". This + * implementation is derived from LongLib in GWT. + * + * Constructs a 64-bit two's-complement integer, given its low and high 32-bit + * values as *signed* integers. See the from* functions below for more + * convenient ways of constructing Longs. + * + * The internal representation of a Long is the two given signed, 32-bit values. + * We use 32-bit pieces because these are the size of integers on which + * Javascript performs bit-operations. For operations like addition and + * multiplication, we split each number into 16-bit pieces, which can easily be + * multiplied within Javascript's floating-point representation without overflow + * or change in sign. + * + * In the algorithms below, we frequently reduce the negative case to the + * positive case by negating the input(s) and then post-processing the result. + * Note that we must ALWAYS check specially whether those values are MIN_VALUE + * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as + * a positive number, it overflows back into a negative). Not handling this + * case would often result in infinite recursion. + * + * @class + * @param {number} low the low (signed) 32 bits of the Long. + * @param {number} high the high (signed) 32 bits of the Long. + * @return {Long} + */ + function Long(low, high) { + if (!(this instanceof Long)) return new Long(low, high); + + this._bsontype = 'Long'; + /** + * @type {number} + * @ignore + */ + this.low_ = low | 0; // force into 32 signed bits. + + /** + * @type {number} + * @ignore + */ + this.high_ = high | 0; // force into 32 signed bits. + } + + /** + * Return the int value. + * + * @method + * @return {number} the value, assuming it is a 32-bit integer. + */ + Long.prototype.toInt = function () { + return this.low_; + }; + + /** + * Return the Number value. + * + * @method + * @return {number} the closest floating-point representation to this value. + */ + Long.prototype.toNumber = function () { + return this.high_ * Long.TWO_PWR_32_DBL_ + this.getLowBitsUnsigned(); + }; + + /** + * Return the JSON value. + * + * @method + * @return {string} the JSON representation. + */ + Long.prototype.toJSON = function () { + return this.toString(); + }; + + /** + * Return the String value. + * + * @method + * @param {number} [opt_radix] the radix in which the text should be written. + * @return {string} the textual representation of this value. + */ + Long.prototype.toString = function (opt_radix) { + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (this.isZero()) { + return '0'; + } + + if (this.isNegative()) { + if (this.equals(Long.MIN_VALUE)) { + // We need to change the Long value before it can be negated, so we remove + // the bottom-most digit in this base and then recurse to do the rest. + var radixLong = Long.fromNumber(radix); + var div = this.div(radixLong); + var rem = div.multiply(radixLong).subtract(this); + return div.toString(radix) + rem.toInt().toString(radix); + } else { + return '-' + this.negate().toString(radix); + } + } + + // Do several (6) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = Long.fromNumber(Math.pow(radix, 6)); + + rem = this; + var result = ''; + + while (!rem.isZero()) { + var remDiv = rem.div(radixToPower); + var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt(); + var digits = intval.toString(radix); + + rem = remDiv; + if (rem.isZero()) { + return digits + result; + } else { + while (digits.length < 6) { + digits = '0' + digits; + } + result = '' + digits + result; + } + } + }; + + /** + * Return the high 32-bits value. + * + * @method + * @return {number} the high 32-bits as a signed value. + */ + Long.prototype.getHighBits = function () { + return this.high_; + }; + + /** + * Return the low 32-bits value. + * + * @method + * @return {number} the low 32-bits as a signed value. + */ + Long.prototype.getLowBits = function () { + return this.low_; + }; + + /** + * Return the low unsigned 32-bits value. + * + * @method + * @return {number} the low 32-bits as an unsigned value. + */ + Long.prototype.getLowBitsUnsigned = function () { + return this.low_ >= 0 ? this.low_ : Long.TWO_PWR_32_DBL_ + this.low_; + }; + + /** + * Returns the number of bits needed to represent the absolute value of this Long. + * + * @method + * @return {number} Returns the number of bits needed to represent the absolute value of this Long. + */ + Long.prototype.getNumBitsAbs = function () { + if (this.isNegative()) { + if (this.equals(Long.MIN_VALUE)) { + return 64; + } else { + return this.negate().getNumBitsAbs(); + } + } else { + var val = this.high_ !== 0 ? this.high_ : this.low_; + for (var bit = 31; bit > 0; bit--) { + if ((val & 1 << bit) !== 0) { + break; + } + } + return this.high_ !== 0 ? bit + 33 : bit + 1; + } + }; + + /** + * Return whether this value is zero. + * + * @method + * @return {boolean} whether this value is zero. + */ + Long.prototype.isZero = function () { + return this.high_ === 0 && this.low_ === 0; + }; + + /** + * Return whether this value is negative. + * + * @method + * @return {boolean} whether this value is negative. + */ + Long.prototype.isNegative = function () { + return this.high_ < 0; + }; + + /** + * Return whether this value is odd. + * + * @method + * @return {boolean} whether this value is odd. + */ + Long.prototype.isOdd = function () { + return (this.low_ & 1) === 1; + }; + + /** + * Return whether this Long equals the other + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long equals the other + */ + Long.prototype.equals = function (other) { + return this.high_ === other.high_ && this.low_ === other.low_; + }; + + /** + * Return whether this Long does not equal the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long does not equal the other. + */ + Long.prototype.notEquals = function (other) { + return this.high_ !== other.high_ || this.low_ !== other.low_; + }; + + /** + * Return whether this Long is less than the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long is less than the other. + */ + Long.prototype.lessThan = function (other) { + return this.compare(other) < 0; + }; + + /** + * Return whether this Long is less than or equal to the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long is less than or equal to the other. + */ + Long.prototype.lessThanOrEqual = function (other) { + return this.compare(other) <= 0; + }; + + /** + * Return whether this Long is greater than the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long is greater than the other. + */ + Long.prototype.greaterThan = function (other) { + return this.compare(other) > 0; + }; + + /** + * Return whether this Long is greater than or equal to the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long is greater than or equal to the other. + */ + Long.prototype.greaterThanOrEqual = function (other) { + return this.compare(other) >= 0; + }; + + /** + * Compares this Long with the given one. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} 0 if they are the same, 1 if the this is greater, and -1 if the given one is greater. + */ + Long.prototype.compare = function (other) { + if (this.equals(other)) { + return 0; + } + + var thisNeg = this.isNegative(); + var otherNeg = other.isNegative(); + if (thisNeg && !otherNeg) { + return -1; + } + if (!thisNeg && otherNeg) { + return 1; + } + + // at this point, the signs are the same, so subtraction will not overflow + if (this.subtract(other).isNegative()) { + return -1; + } else { + return 1; + } + }; + + /** + * The negation of this value. + * + * @method + * @return {Long} the negation of this value. + */ + Long.prototype.negate = function () { + if (this.equals(Long.MIN_VALUE)) { + return Long.MIN_VALUE; + } else { + return this.not().add(Long.ONE); + } + }; + + /** + * Returns the sum of this and the given Long. + * + * @method + * @param {Long} other Long to add to this one. + * @return {Long} the sum of this and the given Long. + */ + Long.prototype.add = function (other) { + // Divide each number into 4 chunks of 16 bits, and then sum the chunks. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xffff; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xffff; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xffff; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xffff; + + var c48 = 0, + c32 = 0, + c16 = 0, + c00 = 0; + c00 += a00 + b00; + c16 += c00 >>> 16; + c00 &= 0xffff; + c16 += a16 + b16; + c32 += c16 >>> 16; + c16 &= 0xffff; + c32 += a32 + b32; + c48 += c32 >>> 16; + c32 &= 0xffff; + c48 += a48 + b48; + c48 &= 0xffff; + return Long.fromBits(c16 << 16 | c00, c48 << 16 | c32); + }; + + /** + * Returns the difference of this and the given Long. + * + * @method + * @param {Long} other Long to subtract from this. + * @return {Long} the difference of this and the given Long. + */ + Long.prototype.subtract = function (other) { + return this.add(other.negate()); + }; + + /** + * Returns the product of this and the given Long. + * + * @method + * @param {Long} other Long to multiply with this. + * @return {Long} the product of this and the other. + */ + Long.prototype.multiply = function (other) { + if (this.isZero()) { + return Long.ZERO; + } else if (other.isZero()) { + return Long.ZERO; + } + + if (this.equals(Long.MIN_VALUE)) { + return other.isOdd() ? Long.MIN_VALUE : Long.ZERO; + } else if (other.equals(Long.MIN_VALUE)) { + return this.isOdd() ? Long.MIN_VALUE : Long.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().multiply(other.negate()); + } else { + return this.negate().multiply(other).negate(); + } + } else if (other.isNegative()) { + return this.multiply(other.negate()).negate(); + } + + // If both Longs are small, use float multiplication + if (this.lessThan(Long.TWO_PWR_24_) && other.lessThan(Long.TWO_PWR_24_)) { + return Long.fromNumber(this.toNumber() * other.toNumber()); + } + + // Divide each Long into 4 chunks of 16 bits, and then add up 4x4 products. + // We can skip products that would overflow. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xffff; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xffff; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xffff; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xffff; + + var c48 = 0, + c32 = 0, + c16 = 0, + c00 = 0; + c00 += a00 * b00; + c16 += c00 >>> 16; + c00 &= 0xffff; + c16 += a16 * b00; + c32 += c16 >>> 16; + c16 &= 0xffff; + c16 += a00 * b16; + c32 += c16 >>> 16; + c16 &= 0xffff; + c32 += a32 * b00; + c48 += c32 >>> 16; + c32 &= 0xffff; + c32 += a16 * b16; + c48 += c32 >>> 16; + c32 &= 0xffff; + c32 += a00 * b32; + c48 += c32 >>> 16; + c32 &= 0xffff; + c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48; + c48 &= 0xffff; + return Long.fromBits(c16 << 16 | c00, c48 << 16 | c32); + }; + + /** + * Returns this Long divided by the given one. + * + * @method + * @param {Long} other Long by which to divide. + * @return {Long} this Long divided by the given one. + */ + Long.prototype.div = function (other) { + if (other.isZero()) { + throw Error('division by zero'); + } else if (this.isZero()) { + return Long.ZERO; + } + + if (this.equals(Long.MIN_VALUE)) { + if (other.equals(Long.ONE) || other.equals(Long.NEG_ONE)) { + return Long.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE + } else if (other.equals(Long.MIN_VALUE)) { + return Long.ONE; + } else { + // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|. + var halfThis = this.shiftRight(1); + var approx = halfThis.div(other).shiftLeft(1); + if (approx.equals(Long.ZERO)) { + return other.isNegative() ? Long.ONE : Long.NEG_ONE; + } else { + var rem = this.subtract(other.multiply(approx)); + var result = approx.add(rem.div(other)); + return result; + } + } + } else if (other.equals(Long.MIN_VALUE)) { + return Long.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().div(other.negate()); + } else { + return this.negate().div(other).negate(); + } + } else if (other.isNegative()) { + return this.div(other.negate()).negate(); + } + + // Repeat the following until the remainder is less than other: find a + // floating-point that approximates remainder / other *from below*, add this + // into the result, and subtract it from the remainder. It is critical that + // the approximate value is less than or equal to the real value so that the + // remainder never becomes negative. + var res = Long.ZERO; + rem = this; + while (rem.greaterThanOrEqual(other)) { + // Approximate the result of division. This may be a little greater or + // smaller than the actual value. + approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber())); + + // We will tweak the approximate result by changing it in the 48-th digit or + // the smallest non-fractional digit, whichever is larger. + var log2 = Math.ceil(Math.log(approx) / Math.LN2); + var delta = log2 <= 48 ? 1 : Math.pow(2, log2 - 48); + + // Decrease the approximation until it is smaller than the remainder. Note + // that if it is too large, the product overflows and is negative. + var approxRes = Long.fromNumber(approx); + var approxRem = approxRes.multiply(other); + while (approxRem.isNegative() || approxRem.greaterThan(rem)) { + approx -= delta; + approxRes = Long.fromNumber(approx); + approxRem = approxRes.multiply(other); + } + + // We know the answer can't be zero... and actually, zero would cause + // infinite recursion since we would make no progress. + if (approxRes.isZero()) { + approxRes = Long.ONE; + } + + res = res.add(approxRes); + rem = rem.subtract(approxRem); + } + return res; + }; + + /** + * Returns this Long modulo the given one. + * + * @method + * @param {Long} other Long by which to mod. + * @return {Long} this Long modulo the given one. + */ + Long.prototype.modulo = function (other) { + return this.subtract(this.div(other).multiply(other)); + }; + + /** + * The bitwise-NOT of this value. + * + * @method + * @return {Long} the bitwise-NOT of this value. + */ + Long.prototype.not = function () { + return Long.fromBits(~this.low_, ~this.high_); + }; + + /** + * Returns the bitwise-AND of this Long and the given one. + * + * @method + * @param {Long} other the Long with which to AND. + * @return {Long} the bitwise-AND of this and the other. + */ + Long.prototype.and = function (other) { + return Long.fromBits(this.low_ & other.low_, this.high_ & other.high_); + }; + + /** + * Returns the bitwise-OR of this Long and the given one. + * + * @method + * @param {Long} other the Long with which to OR. + * @return {Long} the bitwise-OR of this and the other. + */ + Long.prototype.or = function (other) { + return Long.fromBits(this.low_ | other.low_, this.high_ | other.high_); + }; + + /** + * Returns the bitwise-XOR of this Long and the given one. + * + * @method + * @param {Long} other the Long with which to XOR. + * @return {Long} the bitwise-XOR of this and the other. + */ + Long.prototype.xor = function (other) { + return Long.fromBits(this.low_ ^ other.low_, this.high_ ^ other.high_); + }; + + /** + * Returns this Long with bits shifted to the left by the given amount. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Long} this shifted to the left by the given amount. + */ + Long.prototype.shiftLeft = function (numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var low = this.low_; + if (numBits < 32) { + var high = this.high_; + return Long.fromBits(low << numBits, high << numBits | low >>> 32 - numBits); + } else { + return Long.fromBits(0, low << numBits - 32); + } + } + }; + + /** + * Returns this Long with bits shifted to the right by the given amount. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Long} this shifted to the right by the given amount. + */ + Long.prototype.shiftRight = function (numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return Long.fromBits(low >>> numBits | high << 32 - numBits, high >> numBits); + } else { + return Long.fromBits(high >> numBits - 32, high >= 0 ? 0 : -1); + } + } + }; + + /** + * Returns this Long with bits shifted to the right by the given amount, with the new top bits matching the current sign bit. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Long} this shifted to the right by the given amount, with zeros placed into the new leading bits. + */ + Long.prototype.shiftRightUnsigned = function (numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return Long.fromBits(low >>> numBits | high << 32 - numBits, high >>> numBits); + } else if (numBits === 32) { + return Long.fromBits(high, 0); + } else { + return Long.fromBits(high >>> numBits - 32, 0); + } + } + }; + + /** + * Returns a Long representing the given (32-bit) integer value. + * + * @method + * @param {number} value the 32-bit integer in question. + * @return {Long} the corresponding Long value. + */ + Long.fromInt = function (value) { + if (-128 <= value && value < 128) { + var cachedObj = Long.INT_CACHE_[value]; + if (cachedObj) { + return cachedObj; + } + } + + var obj = new Long(value | 0, value < 0 ? -1 : 0); + if (-128 <= value && value < 128) { + Long.INT_CACHE_[value] = obj; + } + return obj; + }; + + /** + * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned. + * + * @method + * @param {number} value the number in question. + * @return {Long} the corresponding Long value. + */ + Long.fromNumber = function (value) { + if (isNaN(value) || !isFinite(value)) { + return Long.ZERO; + } else if (value <= -Long.TWO_PWR_63_DBL_) { + return Long.MIN_VALUE; + } else if (value + 1 >= Long.TWO_PWR_63_DBL_) { + return Long.MAX_VALUE; + } else if (value < 0) { + return Long.fromNumber(-value).negate(); + } else { + return new Long(value % Long.TWO_PWR_32_DBL_ | 0, value / Long.TWO_PWR_32_DBL_ | 0); + } + }; + + /** + * Returns a Long representing the 64-bit integer that comes by concatenating the given high and low bits. Each is assumed to use 32 bits. + * + * @method + * @param {number} lowBits the low 32-bits. + * @param {number} highBits the high 32-bits. + * @return {Long} the corresponding Long value. + */ + Long.fromBits = function (lowBits, highBits) { + return new Long(lowBits, highBits); + }; + + /** + * Returns a Long representation of the given string, written using the given radix. + * + * @method + * @param {string} str the textual representation of the Long. + * @param {number} opt_radix the radix in which the text is written. + * @return {Long} the corresponding Long value. + */ + Long.fromString = function (str, opt_radix) { + if (str.length === 0) { + throw Error('number format error: empty string'); + } + + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (str.charAt(0) === '-') { + return Long.fromString(str.substring(1), radix).negate(); + } else if (str.indexOf('-') >= 0) { + throw Error('number format error: interior "-" character: ' + str); + } + + // Do several (8) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = Long.fromNumber(Math.pow(radix, 8)); + + var result = Long.ZERO; + for (var i = 0; i < str.length; i += 8) { + var size = Math.min(8, str.length - i); + var value = parseInt(str.substring(i, i + size), radix); + if (size < 8) { + var power = Long.fromNumber(Math.pow(radix, size)); + result = result.multiply(power).add(Long.fromNumber(value)); + } else { + result = result.multiply(radixToPower); + result = result.add(Long.fromNumber(value)); + } + } + return result; + }; + + // NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the + // from* methods on which they depend. + + /** + * A cache of the Long representations of small integer values. + * @type {Object} + * @ignore + */ + Long.INT_CACHE_ = {}; + + // NOTE: the compiler should inline these constant values below and then remove + // these variables, so there should be no runtime penalty for these. + + /** + * Number used repeated below in calculations. This must appear before the + * first call to any from* function below. + * @type {number} + * @ignore + */ + Long.TWO_PWR_16_DBL_ = 1 << 16; + + /** + * @type {number} + * @ignore + */ + Long.TWO_PWR_24_DBL_ = 1 << 24; + + /** + * @type {number} + * @ignore + */ + Long.TWO_PWR_32_DBL_ = Long.TWO_PWR_16_DBL_ * Long.TWO_PWR_16_DBL_; + + /** + * @type {number} + * @ignore + */ + Long.TWO_PWR_31_DBL_ = Long.TWO_PWR_32_DBL_ / 2; + + /** + * @type {number} + * @ignore + */ + Long.TWO_PWR_48_DBL_ = Long.TWO_PWR_32_DBL_ * Long.TWO_PWR_16_DBL_; + + /** + * @type {number} + * @ignore + */ + Long.TWO_PWR_64_DBL_ = Long.TWO_PWR_32_DBL_ * Long.TWO_PWR_32_DBL_; + + /** + * @type {number} + * @ignore + */ + Long.TWO_PWR_63_DBL_ = Long.TWO_PWR_64_DBL_ / 2; + + /** @type {Long} */ + Long.ZERO = Long.fromInt(0); + + /** @type {Long} */ + Long.ONE = Long.fromInt(1); + + /** @type {Long} */ + Long.NEG_ONE = Long.fromInt(-1); + + /** @type {Long} */ + Long.MAX_VALUE = Long.fromBits(0xffffffff | 0, 0x7fffffff | 0); + + /** @type {Long} */ + Long.MIN_VALUE = Long.fromBits(0, 0x80000000 | 0); + + /** + * @type {Long} + * @ignore + */ + Long.TWO_PWR_24_ = Long.fromInt(1 << 24); + + /** + * Expose. + */ + module.exports = Long; + module.exports.Long = Long; + +/***/ }), +/* 335 */ +/***/ (function(module, exports) { + + /** + * A class representation of the BSON Double type. + * + * @class + * @param {number} value the number we want to represent as a double. + * @return {Double} + */ + function Double(value) { + if (!(this instanceof Double)) return new Double(value); + + this._bsontype = 'Double'; + this.value = value; + } + + /** + * Access the number value. + * + * @method + * @return {number} returns the wrapped double number. + */ + Double.prototype.valueOf = function () { + return this.value; + }; + + /** + * @ignore + */ + Double.prototype.toJSON = function () { + return this.value; + }; + + module.exports = Double; + module.exports.Double = Double; + +/***/ }), +/* 336 */ +/***/ (function(module, exports) { + + // Licensed under the Apache License, Version 2.0 (the "License"); + // you may not use this file except in compliance with the License. + // You may obtain a copy of the License at + // + // http://www.apache.org/licenses/LICENSE-2.0 + // + // Unless required by applicable law or agreed to in writing, software + // distributed under the License is distributed on an "AS IS" BASIS, + // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + // See the License for the specific language governing permissions and + // limitations under the License. + // + // Copyright 2009 Google Inc. All Rights Reserved + + /** + * This type is for INTERNAL use in MongoDB only and should not be used in applications. + * The appropriate corresponding type is the JavaScript Date type. + * + * Defines a Timestamp class for representing a 64-bit two's-complement + * integer value, which faithfully simulates the behavior of a Java "Timestamp". This + * implementation is derived from TimestampLib in GWT. + * + * Constructs a 64-bit two's-complement integer, given its low and high 32-bit + * values as *signed* integers. See the from* functions below for more + * convenient ways of constructing Timestamps. + * + * The internal representation of a Timestamp is the two given signed, 32-bit values. + * We use 32-bit pieces because these are the size of integers on which + * Javascript performs bit-operations. For operations like addition and + * multiplication, we split each number into 16-bit pieces, which can easily be + * multiplied within Javascript's floating-point representation without overflow + * or change in sign. + * + * In the algorithms below, we frequently reduce the negative case to the + * positive case by negating the input(s) and then post-processing the result. + * Note that we must ALWAYS check specially whether those values are MIN_VALUE + * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as + * a positive number, it overflows back into a negative). Not handling this + * case would often result in infinite recursion. + * + * @class + * @param {number} low the low (signed) 32 bits of the Timestamp. + * @param {number} high the high (signed) 32 bits of the Timestamp. + */ + function Timestamp(low, high) { + if (!(this instanceof Timestamp)) return new Timestamp(low, high); + this._bsontype = 'Timestamp'; + /** + * @type {number} + * @ignore + */ + this.low_ = low | 0; // force into 32 signed bits. + + /** + * @type {number} + * @ignore + */ + this.high_ = high | 0; // force into 32 signed bits. + } + + /** + * Return the int value. + * + * @return {number} the value, assuming it is a 32-bit integer. + */ + Timestamp.prototype.toInt = function () { + return this.low_; + }; + + /** + * Return the Number value. + * + * @method + * @return {number} the closest floating-point representation to this value. + */ + Timestamp.prototype.toNumber = function () { + return this.high_ * Timestamp.TWO_PWR_32_DBL_ + this.getLowBitsUnsigned(); + }; + + /** + * Return the JSON value. + * + * @method + * @return {string} the JSON representation. + */ + Timestamp.prototype.toJSON = function () { + return this.toString(); + }; + + /** + * Return the String value. + * + * @method + * @param {number} [opt_radix] the radix in which the text should be written. + * @return {string} the textual representation of this value. + */ + Timestamp.prototype.toString = function (opt_radix) { + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (this.isZero()) { + return '0'; + } + + if (this.isNegative()) { + if (this.equals(Timestamp.MIN_VALUE)) { + // We need to change the Timestamp value before it can be negated, so we remove + // the bottom-most digit in this base and then recurse to do the rest. + var radixTimestamp = Timestamp.fromNumber(radix); + var div = this.div(radixTimestamp); + var rem = div.multiply(radixTimestamp).subtract(this); + return div.toString(radix) + rem.toInt().toString(radix); + } else { + return '-' + this.negate().toString(radix); + } + } + + // Do several (6) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = Timestamp.fromNumber(Math.pow(radix, 6)); + + rem = this; + var result = ''; + + while (!rem.isZero()) { + var remDiv = rem.div(radixToPower); + var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt(); + var digits = intval.toString(radix); + + rem = remDiv; + if (rem.isZero()) { + return digits + result; + } else { + while (digits.length < 6) { + digits = '0' + digits; + } + result = '' + digits + result; + } + } + }; + + /** + * Return the high 32-bits value. + * + * @method + * @return {number} the high 32-bits as a signed value. + */ + Timestamp.prototype.getHighBits = function () { + return this.high_; + }; + + /** + * Return the low 32-bits value. + * + * @method + * @return {number} the low 32-bits as a signed value. + */ + Timestamp.prototype.getLowBits = function () { + return this.low_; + }; + + /** + * Return the low unsigned 32-bits value. + * + * @method + * @return {number} the low 32-bits as an unsigned value. + */ + Timestamp.prototype.getLowBitsUnsigned = function () { + return this.low_ >= 0 ? this.low_ : Timestamp.TWO_PWR_32_DBL_ + this.low_; + }; + + /** + * Returns the number of bits needed to represent the absolute value of this Timestamp. + * + * @method + * @return {number} Returns the number of bits needed to represent the absolute value of this Timestamp. + */ + Timestamp.prototype.getNumBitsAbs = function () { + if (this.isNegative()) { + if (this.equals(Timestamp.MIN_VALUE)) { + return 64; + } else { + return this.negate().getNumBitsAbs(); + } + } else { + var val = this.high_ !== 0 ? this.high_ : this.low_; + for (var bit = 31; bit > 0; bit--) { + if ((val & 1 << bit) !== 0) { + break; + } + } + return this.high_ !== 0 ? bit + 33 : bit + 1; + } + }; + + /** + * Return whether this value is zero. + * + * @method + * @return {boolean} whether this value is zero. + */ + Timestamp.prototype.isZero = function () { + return this.high_ === 0 && this.low_ === 0; + }; + + /** + * Return whether this value is negative. + * + * @method + * @return {boolean} whether this value is negative. + */ + Timestamp.prototype.isNegative = function () { + return this.high_ < 0; + }; + + /** + * Return whether this value is odd. + * + * @method + * @return {boolean} whether this value is odd. + */ + Timestamp.prototype.isOdd = function () { + return (this.low_ & 1) === 1; + }; + + /** + * Return whether this Timestamp equals the other + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp equals the other + */ + Timestamp.prototype.equals = function (other) { + return this.high_ === other.high_ && this.low_ === other.low_; + }; + + /** + * Return whether this Timestamp does not equal the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp does not equal the other. + */ + Timestamp.prototype.notEquals = function (other) { + return this.high_ !== other.high_ || this.low_ !== other.low_; + }; + + /** + * Return whether this Timestamp is less than the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp is less than the other. + */ + Timestamp.prototype.lessThan = function (other) { + return this.compare(other) < 0; + }; + + /** + * Return whether this Timestamp is less than or equal to the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp is less than or equal to the other. + */ + Timestamp.prototype.lessThanOrEqual = function (other) { + return this.compare(other) <= 0; + }; + + /** + * Return whether this Timestamp is greater than the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp is greater than the other. + */ + Timestamp.prototype.greaterThan = function (other) { + return this.compare(other) > 0; + }; + + /** + * Return whether this Timestamp is greater than or equal to the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp is greater than or equal to the other. + */ + Timestamp.prototype.greaterThanOrEqual = function (other) { + return this.compare(other) >= 0; + }; + + /** + * Compares this Timestamp with the given one. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} 0 if they are the same, 1 if the this is greater, and -1 if the given one is greater. + */ + Timestamp.prototype.compare = function (other) { + if (this.equals(other)) { + return 0; + } + + var thisNeg = this.isNegative(); + var otherNeg = other.isNegative(); + if (thisNeg && !otherNeg) { + return -1; + } + if (!thisNeg && otherNeg) { + return 1; + } + + // at this point, the signs are the same, so subtraction will not overflow + if (this.subtract(other).isNegative()) { + return -1; + } else { + return 1; + } + }; + + /** + * The negation of this value. + * + * @method + * @return {Timestamp} the negation of this value. + */ + Timestamp.prototype.negate = function () { + if (this.equals(Timestamp.MIN_VALUE)) { + return Timestamp.MIN_VALUE; + } else { + return this.not().add(Timestamp.ONE); + } + }; + + /** + * Returns the sum of this and the given Timestamp. + * + * @method + * @param {Timestamp} other Timestamp to add to this one. + * @return {Timestamp} the sum of this and the given Timestamp. + */ + Timestamp.prototype.add = function (other) { + // Divide each number into 4 chunks of 16 bits, and then sum the chunks. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xffff; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xffff; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xffff; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xffff; + + var c48 = 0, + c32 = 0, + c16 = 0, + c00 = 0; + c00 += a00 + b00; + c16 += c00 >>> 16; + c00 &= 0xffff; + c16 += a16 + b16; + c32 += c16 >>> 16; + c16 &= 0xffff; + c32 += a32 + b32; + c48 += c32 >>> 16; + c32 &= 0xffff; + c48 += a48 + b48; + c48 &= 0xffff; + return Timestamp.fromBits(c16 << 16 | c00, c48 << 16 | c32); + }; + + /** + * Returns the difference of this and the given Timestamp. + * + * @method + * @param {Timestamp} other Timestamp to subtract from this. + * @return {Timestamp} the difference of this and the given Timestamp. + */ + Timestamp.prototype.subtract = function (other) { + return this.add(other.negate()); + }; + + /** + * Returns the product of this and the given Timestamp. + * + * @method + * @param {Timestamp} other Timestamp to multiply with this. + * @return {Timestamp} the product of this and the other. + */ + Timestamp.prototype.multiply = function (other) { + if (this.isZero()) { + return Timestamp.ZERO; + } else if (other.isZero()) { + return Timestamp.ZERO; + } + + if (this.equals(Timestamp.MIN_VALUE)) { + return other.isOdd() ? Timestamp.MIN_VALUE : Timestamp.ZERO; + } else if (other.equals(Timestamp.MIN_VALUE)) { + return this.isOdd() ? Timestamp.MIN_VALUE : Timestamp.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().multiply(other.negate()); + } else { + return this.negate().multiply(other).negate(); + } + } else if (other.isNegative()) { + return this.multiply(other.negate()).negate(); + } + + // If both Timestamps are small, use float multiplication + if (this.lessThan(Timestamp.TWO_PWR_24_) && other.lessThan(Timestamp.TWO_PWR_24_)) { + return Timestamp.fromNumber(this.toNumber() * other.toNumber()); + } + + // Divide each Timestamp into 4 chunks of 16 bits, and then add up 4x4 products. + // We can skip products that would overflow. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xffff; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xffff; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xffff; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xffff; + + var c48 = 0, + c32 = 0, + c16 = 0, + c00 = 0; + c00 += a00 * b00; + c16 += c00 >>> 16; + c00 &= 0xffff; + c16 += a16 * b00; + c32 += c16 >>> 16; + c16 &= 0xffff; + c16 += a00 * b16; + c32 += c16 >>> 16; + c16 &= 0xffff; + c32 += a32 * b00; + c48 += c32 >>> 16; + c32 &= 0xffff; + c32 += a16 * b16; + c48 += c32 >>> 16; + c32 &= 0xffff; + c32 += a00 * b32; + c48 += c32 >>> 16; + c32 &= 0xffff; + c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48; + c48 &= 0xffff; + return Timestamp.fromBits(c16 << 16 | c00, c48 << 16 | c32); + }; + + /** + * Returns this Timestamp divided by the given one. + * + * @method + * @param {Timestamp} other Timestamp by which to divide. + * @return {Timestamp} this Timestamp divided by the given one. + */ + Timestamp.prototype.div = function (other) { + if (other.isZero()) { + throw Error('division by zero'); + } else if (this.isZero()) { + return Timestamp.ZERO; + } + + if (this.equals(Timestamp.MIN_VALUE)) { + if (other.equals(Timestamp.ONE) || other.equals(Timestamp.NEG_ONE)) { + return Timestamp.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE + } else if (other.equals(Timestamp.MIN_VALUE)) { + return Timestamp.ONE; + } else { + // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|. + var halfThis = this.shiftRight(1); + var approx = halfThis.div(other).shiftLeft(1); + if (approx.equals(Timestamp.ZERO)) { + return other.isNegative() ? Timestamp.ONE : Timestamp.NEG_ONE; + } else { + var rem = this.subtract(other.multiply(approx)); + var result = approx.add(rem.div(other)); + return result; + } + } + } else if (other.equals(Timestamp.MIN_VALUE)) { + return Timestamp.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().div(other.negate()); + } else { + return this.negate().div(other).negate(); + } + } else if (other.isNegative()) { + return this.div(other.negate()).negate(); + } + + // Repeat the following until the remainder is less than other: find a + // floating-point that approximates remainder / other *from below*, add this + // into the result, and subtract it from the remainder. It is critical that + // the approximate value is less than or equal to the real value so that the + // remainder never becomes negative. + var res = Timestamp.ZERO; + rem = this; + while (rem.greaterThanOrEqual(other)) { + // Approximate the result of division. This may be a little greater or + // smaller than the actual value. + approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber())); + + // We will tweak the approximate result by changing it in the 48-th digit or + // the smallest non-fractional digit, whichever is larger. + var log2 = Math.ceil(Math.log(approx) / Math.LN2); + var delta = log2 <= 48 ? 1 : Math.pow(2, log2 - 48); + + // Decrease the approximation until it is smaller than the remainder. Note + // that if it is too large, the product overflows and is negative. + var approxRes = Timestamp.fromNumber(approx); + var approxRem = approxRes.multiply(other); + while (approxRem.isNegative() || approxRem.greaterThan(rem)) { + approx -= delta; + approxRes = Timestamp.fromNumber(approx); + approxRem = approxRes.multiply(other); + } + + // We know the answer can't be zero... and actually, zero would cause + // infinite recursion since we would make no progress. + if (approxRes.isZero()) { + approxRes = Timestamp.ONE; + } + + res = res.add(approxRes); + rem = rem.subtract(approxRem); + } + return res; + }; + + /** + * Returns this Timestamp modulo the given one. + * + * @method + * @param {Timestamp} other Timestamp by which to mod. + * @return {Timestamp} this Timestamp modulo the given one. + */ + Timestamp.prototype.modulo = function (other) { + return this.subtract(this.div(other).multiply(other)); + }; + + /** + * The bitwise-NOT of this value. + * + * @method + * @return {Timestamp} the bitwise-NOT of this value. + */ + Timestamp.prototype.not = function () { + return Timestamp.fromBits(~this.low_, ~this.high_); + }; + + /** + * Returns the bitwise-AND of this Timestamp and the given one. + * + * @method + * @param {Timestamp} other the Timestamp with which to AND. + * @return {Timestamp} the bitwise-AND of this and the other. + */ + Timestamp.prototype.and = function (other) { + return Timestamp.fromBits(this.low_ & other.low_, this.high_ & other.high_); + }; + + /** + * Returns the bitwise-OR of this Timestamp and the given one. + * + * @method + * @param {Timestamp} other the Timestamp with which to OR. + * @return {Timestamp} the bitwise-OR of this and the other. + */ + Timestamp.prototype.or = function (other) { + return Timestamp.fromBits(this.low_ | other.low_, this.high_ | other.high_); + }; + + /** + * Returns the bitwise-XOR of this Timestamp and the given one. + * + * @method + * @param {Timestamp} other the Timestamp with which to XOR. + * @return {Timestamp} the bitwise-XOR of this and the other. + */ + Timestamp.prototype.xor = function (other) { + return Timestamp.fromBits(this.low_ ^ other.low_, this.high_ ^ other.high_); + }; + + /** + * Returns this Timestamp with bits shifted to the left by the given amount. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Timestamp} this shifted to the left by the given amount. + */ + Timestamp.prototype.shiftLeft = function (numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var low = this.low_; + if (numBits < 32) { + var high = this.high_; + return Timestamp.fromBits(low << numBits, high << numBits | low >>> 32 - numBits); + } else { + return Timestamp.fromBits(0, low << numBits - 32); + } + } + }; + + /** + * Returns this Timestamp with bits shifted to the right by the given amount. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Timestamp} this shifted to the right by the given amount. + */ + Timestamp.prototype.shiftRight = function (numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return Timestamp.fromBits(low >>> numBits | high << 32 - numBits, high >> numBits); + } else { + return Timestamp.fromBits(high >> numBits - 32, high >= 0 ? 0 : -1); + } + } + }; + + /** + * Returns this Timestamp with bits shifted to the right by the given amount, with the new top bits matching the current sign bit. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Timestamp} this shifted to the right by the given amount, with zeros placed into the new leading bits. + */ + Timestamp.prototype.shiftRightUnsigned = function (numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return Timestamp.fromBits(low >>> numBits | high << 32 - numBits, high >>> numBits); + } else if (numBits === 32) { + return Timestamp.fromBits(high, 0); + } else { + return Timestamp.fromBits(high >>> numBits - 32, 0); + } + } + }; + + /** + * Returns a Timestamp representing the given (32-bit) integer value. + * + * @method + * @param {number} value the 32-bit integer in question. + * @return {Timestamp} the corresponding Timestamp value. + */ + Timestamp.fromInt = function (value) { + if (-128 <= value && value < 128) { + var cachedObj = Timestamp.INT_CACHE_[value]; + if (cachedObj) { + return cachedObj; + } + } + + var obj = new Timestamp(value | 0, value < 0 ? -1 : 0); + if (-128 <= value && value < 128) { + Timestamp.INT_CACHE_[value] = obj; + } + return obj; + }; + + /** + * Returns a Timestamp representing the given value, provided that it is a finite number. Otherwise, zero is returned. + * + * @method + * @param {number} value the number in question. + * @return {Timestamp} the corresponding Timestamp value. + */ + Timestamp.fromNumber = function (value) { + if (isNaN(value) || !isFinite(value)) { + return Timestamp.ZERO; + } else if (value <= -Timestamp.TWO_PWR_63_DBL_) { + return Timestamp.MIN_VALUE; + } else if (value + 1 >= Timestamp.TWO_PWR_63_DBL_) { + return Timestamp.MAX_VALUE; + } else if (value < 0) { + return Timestamp.fromNumber(-value).negate(); + } else { + return new Timestamp(value % Timestamp.TWO_PWR_32_DBL_ | 0, value / Timestamp.TWO_PWR_32_DBL_ | 0); + } + }; + + /** + * Returns a Timestamp representing the 64-bit integer that comes by concatenating the given high and low bits. Each is assumed to use 32 bits. + * + * @method + * @param {number} lowBits the low 32-bits. + * @param {number} highBits the high 32-bits. + * @return {Timestamp} the corresponding Timestamp value. + */ + Timestamp.fromBits = function (lowBits, highBits) { + return new Timestamp(lowBits, highBits); + }; + + /** + * Returns a Timestamp representation of the given string, written using the given radix. + * + * @method + * @param {string} str the textual representation of the Timestamp. + * @param {number} opt_radix the radix in which the text is written. + * @return {Timestamp} the corresponding Timestamp value. + */ + Timestamp.fromString = function (str, opt_radix) { + if (str.length === 0) { + throw Error('number format error: empty string'); + } + + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (str.charAt(0) === '-') { + return Timestamp.fromString(str.substring(1), radix).negate(); + } else if (str.indexOf('-') >= 0) { + throw Error('number format error: interior "-" character: ' + str); + } + + // Do several (8) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = Timestamp.fromNumber(Math.pow(radix, 8)); + + var result = Timestamp.ZERO; + for (var i = 0; i < str.length; i += 8) { + var size = Math.min(8, str.length - i); + var value = parseInt(str.substring(i, i + size), radix); + if (size < 8) { + var power = Timestamp.fromNumber(Math.pow(radix, size)); + result = result.multiply(power).add(Timestamp.fromNumber(value)); + } else { + result = result.multiply(radixToPower); + result = result.add(Timestamp.fromNumber(value)); + } + } + return result; + }; + + // NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the + // from* methods on which they depend. + + /** + * A cache of the Timestamp representations of small integer values. + * @type {Object} + * @ignore + */ + Timestamp.INT_CACHE_ = {}; + + // NOTE: the compiler should inline these constant values below and then remove + // these variables, so there should be no runtime penalty for these. + + /** + * Number used repeated below in calculations. This must appear before the + * first call to any from* function below. + * @type {number} + * @ignore + */ + Timestamp.TWO_PWR_16_DBL_ = 1 << 16; + + /** + * @type {number} + * @ignore + */ + Timestamp.TWO_PWR_24_DBL_ = 1 << 24; + + /** + * @type {number} + * @ignore + */ + Timestamp.TWO_PWR_32_DBL_ = Timestamp.TWO_PWR_16_DBL_ * Timestamp.TWO_PWR_16_DBL_; + + /** + * @type {number} + * @ignore + */ + Timestamp.TWO_PWR_31_DBL_ = Timestamp.TWO_PWR_32_DBL_ / 2; + + /** + * @type {number} + * @ignore + */ + Timestamp.TWO_PWR_48_DBL_ = Timestamp.TWO_PWR_32_DBL_ * Timestamp.TWO_PWR_16_DBL_; + + /** + * @type {number} + * @ignore + */ + Timestamp.TWO_PWR_64_DBL_ = Timestamp.TWO_PWR_32_DBL_ * Timestamp.TWO_PWR_32_DBL_; + + /** + * @type {number} + * @ignore + */ + Timestamp.TWO_PWR_63_DBL_ = Timestamp.TWO_PWR_64_DBL_ / 2; + + /** @type {Timestamp} */ + Timestamp.ZERO = Timestamp.fromInt(0); + + /** @type {Timestamp} */ + Timestamp.ONE = Timestamp.fromInt(1); + + /** @type {Timestamp} */ + Timestamp.NEG_ONE = Timestamp.fromInt(-1); + + /** @type {Timestamp} */ + Timestamp.MAX_VALUE = Timestamp.fromBits(0xffffffff | 0, 0x7fffffff | 0); + + /** @type {Timestamp} */ + Timestamp.MIN_VALUE = Timestamp.fromBits(0, 0x80000000 | 0); + + /** + * @type {Timestamp} + * @ignore + */ + Timestamp.TWO_PWR_24_ = Timestamp.fromInt(1 << 24); + + /** + * Expose. + */ + module.exports = Timestamp; + module.exports.Timestamp = Timestamp; + +/***/ }), +/* 337 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(Buffer, process) {// Custom inspect property name / symbol. + var inspect = 'inspect'; + + /** + * Machine id. + * + * Create a random 3-byte value (i.e. unique for this + * process). Other drivers use a md5 of the machine id here, but + * that would mean an asyc call to gethostname, so we don't bother. + * @ignore + */ + var MACHINE_ID = parseInt(Math.random() * 0xffffff, 10); + + // Regular expression that checks for hex value + var checkForHexRegExp = new RegExp('^[0-9a-fA-F]{24}$'); + + // Check if buffer exists + try { + if (Buffer && Buffer.from) { + var hasBufferType = true; + inspect = __webpack_require__(339).inspect.custom || 'inspect'; + } + } catch (err) { + hasBufferType = false; + } + + /** + * Create a new ObjectID instance + * + * @class + * @param {(string|number)} id Can be a 24 byte hex string, 12 byte binary string or a Number. + * @property {number} generationTime The generation time of this ObjectId instance + * @return {ObjectID} instance of ObjectID. + */ + var ObjectID = function ObjectID(id) { + // Duck-typing to support ObjectId from different npm packages + if (id instanceof ObjectID) return id; + if (!(this instanceof ObjectID)) return new ObjectID(id); + + this._bsontype = 'ObjectID'; + + // The most common usecase (blank id, new objectId instance) + if (id == null || typeof id === 'number') { + // Generate a new id + this.id = this.generate(id); + // If we are caching the hex string + if (ObjectID.cacheHexString) this.__id = this.toString('hex'); + // Return the object + return; + } + + // Check if the passed in id is valid + var valid = ObjectID.isValid(id); + + // Throw an error if it's not a valid setup + if (!valid && id != null) { + throw new Error('Argument passed in must be a single String of 12 bytes or a string of 24 hex characters'); + } else if (valid && typeof id === 'string' && id.length === 24 && hasBufferType) { + return new ObjectID(new Buffer(id, 'hex')); + } else if (valid && typeof id === 'string' && id.length === 24) { + return ObjectID.createFromHexString(id); + } else if (id != null && id.length === 12) { + // assume 12 byte string + this.id = id; + } else if (id != null && id.toHexString) { + // Duck-typing to support ObjectId from different npm packages + return id; + } else { + throw new Error('Argument passed in must be a single String of 12 bytes or a string of 24 hex characters'); + } + + if (ObjectID.cacheHexString) this.__id = this.toString('hex'); + }; + + // Allow usage of ObjectId as well as ObjectID + // var ObjectId = ObjectID; + + // Precomputed hex table enables speedy hex string conversion + var hexTable = []; + for (var i = 0; i < 256; i++) { + hexTable[i] = (i <= 15 ? '0' : '') + i.toString(16); + } + + /** + * Return the ObjectID id as a 24 byte hex string representation + * + * @method + * @return {string} return the 24 byte hex string representation. + */ + ObjectID.prototype.toHexString = function () { + if (ObjectID.cacheHexString && this.__id) return this.__id; + + var hexString = ''; + if (!this.id || !this.id.length) { + throw new Error('invalid ObjectId, ObjectId.id must be either a string or a Buffer, but is [' + JSON.stringify(this.id) + ']'); + } + + if (this.id instanceof _Buffer) { + hexString = convertToHex(this.id); + if (ObjectID.cacheHexString) this.__id = hexString; + return hexString; + } + + for (var i = 0; i < this.id.length; i++) { + hexString += hexTable[this.id.charCodeAt(i)]; + } + + if (ObjectID.cacheHexString) this.__id = hexString; + return hexString; + }; + + /** + * Update the ObjectID index used in generating new ObjectID's on the driver + * + * @method + * @return {number} returns next index value. + * @ignore + */ + ObjectID.prototype.get_inc = function () { + return ObjectID.index = (ObjectID.index + 1) % 0xffffff; + }; + + /** + * Update the ObjectID index used in generating new ObjectID's on the driver + * + * @method + * @return {number} returns next index value. + * @ignore + */ + ObjectID.prototype.getInc = function () { + return this.get_inc(); + }; + + /** + * Generate a 12 byte id buffer used in ObjectID's + * + * @method + * @param {number} [time] optional parameter allowing to pass in a second based timestamp. + * @return {Buffer} return the 12 byte id buffer string. + */ + ObjectID.prototype.generate = function (time) { + if ('number' !== typeof time) { + time = ~~(Date.now() / 1000); + } + + // Use pid + var pid = (typeof process === 'undefined' || process.pid === 1 ? Math.floor(Math.random() * 100000) : process.pid) % 0xffff; + var inc = this.get_inc(); + // Buffer used + var buffer = new Buffer(12); + // Encode time + buffer[3] = time & 0xff; + buffer[2] = time >> 8 & 0xff; + buffer[1] = time >> 16 & 0xff; + buffer[0] = time >> 24 & 0xff; + // Encode machine + buffer[6] = MACHINE_ID & 0xff; + buffer[5] = MACHINE_ID >> 8 & 0xff; + buffer[4] = MACHINE_ID >> 16 & 0xff; + // Encode pid + buffer[8] = pid & 0xff; + buffer[7] = pid >> 8 & 0xff; + // Encode index + buffer[11] = inc & 0xff; + buffer[10] = inc >> 8 & 0xff; + buffer[9] = inc >> 16 & 0xff; + // Return the buffer + return buffer; + }; + + /** + * Converts the id into a 24 byte hex string for printing + * + * @param {String} format The Buffer toString format parameter. + * @return {String} return the 24 byte hex string representation. + * @ignore + */ + ObjectID.prototype.toString = function (format) { + // Is the id a buffer then use the buffer toString method to return the format + if (this.id && this.id.copy) { + return this.id.toString(typeof format === 'string' ? format : 'hex'); + } + + // if(this.buffer ) + return this.toHexString(); + }; + + /** + * Converts to a string representation of this Id. + * + * @return {String} return the 24 byte hex string representation. + * @ignore + */ + ObjectID.prototype[inspect] = ObjectID.prototype.toString; + + /** + * Converts to its JSON representation. + * + * @return {String} return the 24 byte hex string representation. + * @ignore + */ + ObjectID.prototype.toJSON = function () { + return this.toHexString(); + }; + + /** + * Compares the equality of this ObjectID with `otherID`. + * + * @method + * @param {object} otherID ObjectID instance to compare against. + * @return {boolean} the result of comparing two ObjectID's + */ + ObjectID.prototype.equals = function equals(otherId) { + // var id; + + if (otherId instanceof ObjectID) { + return this.toString() === otherId.toString(); + } else if (typeof otherId === 'string' && ObjectID.isValid(otherId) && otherId.length === 12 && this.id instanceof _Buffer) { + return otherId === this.id.toString('binary'); + } else if (typeof otherId === 'string' && ObjectID.isValid(otherId) && otherId.length === 24) { + return otherId.toLowerCase() === this.toHexString(); + } else if (typeof otherId === 'string' && ObjectID.isValid(otherId) && otherId.length === 12) { + return otherId === this.id; + } else if (otherId != null && (otherId instanceof ObjectID || otherId.toHexString)) { + return otherId.toHexString() === this.toHexString(); + } else { + return false; + } + }; + + /** + * Returns the generation date (accurate up to the second) that this ID was generated. + * + * @method + * @return {date} the generation date + */ + ObjectID.prototype.getTimestamp = function () { + var timestamp = new Date(); + var time = this.id[3] | this.id[2] << 8 | this.id[1] << 16 | this.id[0] << 24; + timestamp.setTime(Math.floor(time) * 1000); + return timestamp; + }; + + /** + * @ignore + */ + ObjectID.index = ~~(Math.random() * 0xffffff); + + /** + * @ignore + */ + ObjectID.createPk = function createPk() { + return new ObjectID(); + }; + + /** + * Creates an ObjectID from a second based number, with the rest of the ObjectID zeroed out. Used for comparisons or sorting the ObjectID. + * + * @method + * @param {number} time an integer number representing a number of seconds. + * @return {ObjectID} return the created ObjectID + */ + ObjectID.createFromTime = function createFromTime(time) { + var buffer = new Buffer([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); + // Encode time into first 4 bytes + buffer[3] = time & 0xff; + buffer[2] = time >> 8 & 0xff; + buffer[1] = time >> 16 & 0xff; + buffer[0] = time >> 24 & 0xff; + // Return the new objectId + return new ObjectID(buffer); + }; + + // Lookup tables + //var encodeLookup = '0123456789abcdef'.split(''); + var decodeLookup = []; + i = 0; + while (i < 10) decodeLookup[0x30 + i] = i++; + while (i < 16) decodeLookup[0x41 - 10 + i] = decodeLookup[0x61 - 10 + i] = i++; + + var _Buffer = Buffer; + var convertToHex = function (bytes) { + return bytes.toString('hex'); + }; + + /** + * Creates an ObjectID from a hex string representation of an ObjectID. + * + * @method + * @param {string} hexString create a ObjectID from a passed in 24 byte hexstring. + * @return {ObjectID} return the created ObjectID + */ + ObjectID.createFromHexString = function createFromHexString(string) { + // Throw an error if it's not a valid setup + if (typeof string === 'undefined' || string != null && string.length !== 24) { + throw new Error('Argument passed in must be a single String of 12 bytes or a string of 24 hex characters'); + } + + // Use Buffer.from method if available + if (hasBufferType) return new ObjectID(new Buffer(string, 'hex')); + + // Calculate lengths + var array = new _Buffer(12); + var n = 0; + var i = 0; + + while (i < 24) { + array[n++] = decodeLookup[string.charCodeAt(i++)] << 4 | decodeLookup[string.charCodeAt(i++)]; + } + + return new ObjectID(array); + }; + + /** + * Checks if a value is a valid bson ObjectId + * + * @method + * @return {boolean} return true if the value is a valid bson ObjectId, return false otherwise. + */ + ObjectID.isValid = function isValid(id) { + if (id == null) return false; + + if (typeof id === 'number') { + return true; + } + + if (typeof id === 'string') { + return id.length === 12 || id.length === 24 && checkForHexRegExp.test(id); + } + + if (id instanceof ObjectID) { + return true; + } + + if (id instanceof _Buffer) { + return true; + } + + // Duck-Typing detection of ObjectId like objects + if (id.toHexString) { + return id.id.length === 12 || id.id.length === 24 && checkForHexRegExp.test(id.id); + } + + return false; + }; + + /** + * @ignore + */ + Object.defineProperty(ObjectID.prototype, 'generationTime', { + enumerable: true, + get: function () { + return this.id[3] | this.id[2] << 8 | this.id[1] << 16 | this.id[0] << 24; + }, + set: function (value) { + // Encode time into first 4 bytes + this.id[3] = value & 0xff; + this.id[2] = value >> 8 & 0xff; + this.id[1] = value >> 16 & 0xff; + this.id[0] = value >> 24 & 0xff; + } + }); + + /** + * Expose. + */ + module.exports = ObjectID; + module.exports.ObjectID = ObjectID; + module.exports.ObjectId = ObjectID; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(329).Buffer, __webpack_require__(338))) + +/***/ }), +/* 338 */ +/***/ (function(module, exports) { + + // shim for using process in browser + var process = module.exports = {}; + + // cached from whatever global is present so that test runners that stub it + // don't break things. But we need to wrap it in a try catch in case it is + // wrapped in strict mode code which doesn't define any globals. It's inside a + // function because try/catches deoptimize in certain engines. + + var cachedSetTimeout; + var cachedClearTimeout; + + function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); + } + function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); + } + (function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } + } ()) + function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + + } + function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + + } + var queue = []; + var draining = false; + var currentQueue; + var queueIndex = -1; + + function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } + } + + function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); + } + + process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } + }; + + // v8 likes predictible objects + function Item(fun, array) { + this.fun = fun; + this.array = array; + } + Item.prototype.run = function () { + this.fun.apply(null, this.array); + }; + process.title = 'browser'; + process.browser = true; + process.env = {}; + process.argv = []; + process.version = ''; // empty string to avoid regexp issues + process.versions = {}; + + function noop() {} + + process.on = noop; + process.addListener = noop; + process.once = noop; + process.off = noop; + process.removeListener = noop; + process.removeAllListeners = noop; + process.emit = noop; + process.prependListener = noop; + process.prependOnceListener = noop; + + process.listeners = function (name) { return [] } + + process.binding = function (name) { + throw new Error('process.binding is not supported'); + }; + + process.cwd = function () { return '/' }; + process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); + }; + process.umask = function() { return 0; }; + + +/***/ }), +/* 339 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors. + // + // Permission is hereby granted, free of charge, to any person obtaining a + // copy of this software and associated documentation files (the + // "Software"), to deal in the Software without restriction, including + // without limitation the rights to use, copy, modify, merge, publish, + // distribute, sublicense, and/or sell copies of the Software, and to permit + // persons to whom the Software is furnished to do so, subject to the + // following conditions: + // + // The above copyright notice and this permission notice shall be included + // in all copies or substantial portions of the Software. + // + // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + // USE OR OTHER DEALINGS IN THE SOFTWARE. + + var formatRegExp = /%[sdj%]/g; + exports.format = function(f) { + if (!isString(f)) { + var objects = []; + for (var i = 0; i < arguments.length; i++) { + objects.push(inspect(arguments[i])); + } + return objects.join(' '); + } + + var i = 1; + var args = arguments; + var len = args.length; + var str = String(f).replace(formatRegExp, function(x) { + if (x === '%%') return '%'; + if (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; + } + }); + for (var x = args[i]; i < len; x = args[++i]) { + if (isNull(x) || !isObject(x)) { + str += ' ' + x; + } else { + str += ' ' + inspect(x); + } + } + return str; + }; + + + // Mark that a method should not be used. + // Returns a modified function which warns once by default. + // If --no-deprecation is set, then it is a no-op. + exports.deprecate = function(fn, msg) { + // Allow for deprecating things in the process of starting up. + if (isUndefined(global.process)) { + return function() { + return exports.deprecate(fn, msg).apply(this, arguments); + }; + } + + if (process.noDeprecation === true) { + return fn; + } + + var warned = false; + function deprecated() { + if (!warned) { + if (process.throwDeprecation) { + throw new Error(msg); + } else if (process.traceDeprecation) { + console.trace(msg); + } else { + console.error(msg); + } + warned = true; + } + return fn.apply(this, arguments); + } + + return deprecated; + }; + + + var debugs = {}; + var debugEnviron; + exports.debuglog = function(set) { + if (isUndefined(debugEnviron)) + debugEnviron = process.env.NODE_DEBUG || ''; + set = set.toUpperCase(); + if (!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]; + }; + + + /** + * Echos the value of a value. Trys to print the value out + * in the best way possible given the different types. + * + * @param {Object} obj The object to print out. + * @param {Object} opts Optional options object that alters the output. + */ + /* legacy: obj, showHidden, depth, colors*/ + function inspect(obj, opts) { + // default options + var ctx = { + seen: [], + stylize: stylizeNoColor + }; + // legacy... + if (arguments.length >= 3) ctx.depth = arguments[2]; + if (arguments.length >= 4) ctx.colors = arguments[3]; + if (isBoolean(opts)) { + // legacy... + ctx.showHidden = opts; + } else if (opts) { + // got an "options" object + exports._extend(ctx, opts); + } + // set default options + if (isUndefined(ctx.showHidden)) ctx.showHidden = false; + if (isUndefined(ctx.depth)) ctx.depth = 2; + if (isUndefined(ctx.colors)) ctx.colors = false; + if (isUndefined(ctx.customInspect)) ctx.customInspect = true; + if (ctx.colors) ctx.stylize = stylizeWithColor; + return formatValue(ctx, obj, ctx.depth); + } + exports.inspect = inspect; + + + // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics + 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] + }; + + // Don't use 'blue' not visible on cmd.exe + inspect.styles = { + 'special': 'cyan', + 'number': 'yellow', + 'boolean': 'yellow', + 'undefined': 'grey', + 'null': 'bold', + 'string': 'green', + 'date': 'magenta', + // "name": intentionally not styling + 'regexp': 'red' + }; + + + function stylizeWithColor(str, styleType) { + var style = inspect.styles[styleType]; + + if (style) { + return '\u001b[' + inspect.colors[style][0] + 'm' + str + + '\u001b[' + inspect.colors[style][1] + 'm'; + } else { + return str; + } + } + + + function stylizeNoColor(str, styleType) { + return str; + } + + + function arrayToHash(array) { + var hash = {}; + + array.forEach(function(val, idx) { + hash[val] = true; + }); + + return hash; + } + + + function formatValue(ctx, value, recurseTimes) { + // Provide a hook for user-specified inspect functions. + // Check that value is an object with an inspect function on it + if (ctx.customInspect && + value && + isFunction(value.inspect) && + // Filter out the util module, it's inspect function is special + value.inspect !== exports.inspect && + // Also filter out any prototype objects using the circular check. + !(value.constructor && value.constructor.prototype === value)) { + var ret = value.inspect(recurseTimes, ctx); + if (!isString(ret)) { + ret = formatValue(ctx, ret, recurseTimes); + } + return ret; + } + + // Primitive types cannot have properties + var primitive = formatPrimitive(ctx, value); + if (primitive) { + return primitive; + } + + // Look up the keys of the object. + var keys = Object.keys(value); + var visibleKeys = arrayToHash(keys); + + if (ctx.showHidden) { + keys = Object.getOwnPropertyNames(value); + } + + // IE doesn't make error fields non-enumerable + // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx + if (isError(value) + && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { + return formatError(value); + } + + // Some type of object without properties can be shortcutted. + if (keys.length === 0) { + 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 = false, braces = ['{', '}']; + + // Make Array say that they are Array + if (isArray(value)) { + array = true; + braces = ['[', ']']; + } + + // Make functions say that they are functions + if (isFunction(value)) { + var n = value.name ? ': ' + value.name : ''; + base = ' [Function' + n + ']'; + } + + // Make RegExps say that they are RegExps + if (isRegExp(value)) { + base = ' ' + RegExp.prototype.toString.call(value); + } + + // Make dates with properties first say the date + if (isDate(value)) { + base = ' ' + Date.prototype.toUTCString.call(value); + } + + // Make error with message first say the error + if (isError(value)) { + base = ' ' + formatError(value); + } + + if (keys.length === 0 && (!array || value.length == 0)) { + return braces[0] + base + braces[1]; + } + + if (recurseTimes < 0) { + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } else { + return ctx.stylize('[Object]', 'special'); + } + } + + ctx.seen.push(value); + + var output; + if (array) { + output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); + } else { + output = keys.map(function(key) { + return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); + }); + } + + ctx.seen.pop(); + + return 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'); + } + if (isNumber(value)) + return ctx.stylize('' + value, 'number'); + if (isBoolean(value)) + return ctx.stylize('' + value, 'boolean'); + // For some reason typeof null is "object", so special case here. + if (isNull(value)) + return ctx.stylize('null', 'null'); + } + + + function formatError(value) { + return '[' + Error.prototype.toString.call(value) + ']'; + } + + + function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { + var output = []; + for (var i = 0, l = value.length; i < l; ++i) { + if (hasOwnProperty(value, String(i))) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + String(i), true)); + } else { + output.push(''); + } + } + keys.forEach(function(key) { + if (!key.match(/^\d+$/)) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + key, true)); + } + }); + return output; + } + + + function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { + var name, str, desc; + desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; + if (desc.get) { + if (desc.set) { + str = ctx.stylize('[Getter/Setter]', 'special'); + } else { + str = ctx.stylize('[Getter]', 'special'); + } + } else { + if (desc.set) { + str = ctx.stylize('[Setter]', 'special'); + } + } + if (!hasOwnProperty(visibleKeys, key)) { + name = '[' + key + ']'; + } + if (!str) { + if (ctx.seen.indexOf(desc.value) < 0) { + if (isNull(recurseTimes)) { + str = formatValue(ctx, desc.value, null); + } else { + str = formatValue(ctx, desc.value, recurseTimes - 1); + } + if (str.indexOf('\n') > -1) { + if (array) { + str = str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n').substr(2); + } else { + str = '\n' + str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n'); + } + } + } else { + str = ctx.stylize('[Circular]', 'special'); + } + } + if (isUndefined(name)) { + if (array && key.match(/^\d+$/)) { + return str; + } + name = JSON.stringify('' + key); + if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { + name = name.substr(1, name.length - 2); + name = ctx.stylize(name, 'name'); + } else { + name = name.replace(/'/g, "\\'") + .replace(/\\"/g, '"') + .replace(/(^"|"$)/g, "'"); + name = ctx.stylize(name, 'string'); + } + } + + return name + ': ' + str; + } + + + function reduceToSingleString(output, base, braces) { + var numLinesEst = 0; + var length = output.reduce(function(prev, cur) { + numLinesEst++; + if (cur.indexOf('\n') >= 0) numLinesEst++; + return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; + }, 0); + + if (length > 60) { + return braces[0] + + (base === '' ? '' : base + '\n ') + + ' ' + + output.join(',\n ') + + ' ' + + braces[1]; + } + + return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; + } + + + // NOTE: These type checking functions intentionally don't use `instanceof` + // because it is fragile and can be easily faked with `Object.create()`. + function isArray(ar) { + return Array.isArray(ar); + } + exports.isArray = isArray; + + function isBoolean(arg) { + return typeof arg === 'boolean'; + } + exports.isBoolean = isBoolean; + + function isNull(arg) { + return arg === null; + } + exports.isNull = isNull; + + function isNullOrUndefined(arg) { + return arg == null; + } + exports.isNullOrUndefined = isNullOrUndefined; + + function isNumber(arg) { + return typeof arg === 'number'; + } + exports.isNumber = isNumber; + + function isString(arg) { + return typeof arg === 'string'; + } + exports.isString = isString; + + function isSymbol(arg) { + return typeof arg === 'symbol'; + } + exports.isSymbol = isSymbol; + + function isUndefined(arg) { + return arg === void 0; + } + exports.isUndefined = isUndefined; + + function isRegExp(re) { + return isObject(re) && objectToString(re) === '[object RegExp]'; + } + exports.isRegExp = isRegExp; + + function isObject(arg) { + return typeof arg === 'object' && arg !== null; + } + exports.isObject = isObject; + + function isDate(d) { + return isObject(d) && objectToString(d) === '[object Date]'; + } + exports.isDate = isDate; + + function isError(e) { + return isObject(e) && + (objectToString(e) === '[object Error]' || e instanceof Error); + } + exports.isError = isError; + + function isFunction(arg) { + return typeof arg === 'function'; + } + exports.isFunction = isFunction; + + function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; + } + exports.isPrimitive = isPrimitive; + + exports.isBuffer = __webpack_require__(340); + + function objectToString(o) { + return Object.prototype.toString.call(o); + } + + + function pad(n) { + return n < 10 ? '0' + n.toString(10) : n.toString(10); + } + + + var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec']; + + // 26 Feb 16:19:34 + function timestamp() { + var d = new Date(); + var time = [pad(d.getHours()), + pad(d.getMinutes()), + pad(d.getSeconds())].join(':'); + return [d.getDate(), months[d.getMonth()], time].join(' '); + } + + + // log is just a thin wrapper to console.log that prepends a timestamp + exports.log = function() { + console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); + }; + + + /** + * Inherit the prototype methods from one constructor into another. + * + * The Function.prototype.inherits from lang.js rewritten as a standalone + * function (not on Function.prototype). NOTE: If this file is to be loaded + * during bootstrapping this function needs to be rewritten using some native + * functions as prototype setup using normal JavaScript does not work as + * expected during bootstrapping (see mirror.js in r114903). + * + * @param {function} ctor Constructor function which needs to inherit the + * prototype. + * @param {function} superCtor Constructor function to inherit prototype from. + */ + exports.inherits = __webpack_require__(341); + + exports._extend = function(origin, add) { + // Don't do anything if add isn't an object + if (!add || !isObject(add)) return origin; + + var keys = Object.keys(add); + var i = keys.length; + while (i--) { + origin[keys[i]] = add[keys[i]]; + } + return origin; + }; + + function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); + } + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(338))) + +/***/ }), +/* 340 */ +/***/ (function(module, exports) { + + module.exports = function isBuffer(arg) { + return arg && typeof arg === 'object' + && typeof arg.copy === 'function' + && typeof arg.fill === 'function' + && typeof arg.readUInt8 === 'function'; + } + +/***/ }), +/* 341 */ +/***/ (function(module, exports) { + + if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + }; + } else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } + } + + +/***/ }), +/* 342 */ +/***/ (function(module, exports) { + + /** + * A class representation of the BSON RegExp type. + * + * @class + * @return {BSONRegExp} A MinKey instance + */ + function BSONRegExp(pattern, options) { + if (!(this instanceof BSONRegExp)) return new BSONRegExp(); + + // Execute + this._bsontype = 'BSONRegExp'; + this.pattern = pattern || ''; + this.options = options || ''; + + // Validate options + for (var i = 0; i < this.options.length; i++) { + if (!(this.options[i] === 'i' || this.options[i] === 'm' || this.options[i] === 'x' || this.options[i] === 'l' || this.options[i] === 's' || this.options[i] === 'u')) { + throw new Error('the regular expression options [' + this.options[i] + '] is not supported'); + } + } + } + + module.exports = BSONRegExp; + module.exports.BSONRegExp = BSONRegExp; + +/***/ }), +/* 343 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(Buffer) {// Custom inspect property name / symbol. + var inspect = Buffer ? __webpack_require__(339).inspect.custom || 'inspect' : 'inspect'; + + /** + * A class representation of the BSON Symbol type. + * + * @class + * @deprecated + * @param {string} value the string representing the symbol. + * @return {Symbol} + */ + function Symbol(value) { + if (!(this instanceof Symbol)) return new Symbol(value); + this._bsontype = 'Symbol'; + this.value = value; + } + + /** + * Access the wrapped string value. + * + * @method + * @return {String} returns the wrapped string. + */ + Symbol.prototype.valueOf = function () { + return this.value; + }; + + /** + * @ignore + */ + Symbol.prototype.toString = function () { + return this.value; + }; + + /** + * @ignore + */ + Symbol.prototype[inspect] = function () { + return this.value; + }; + + /** + * @ignore + */ + Symbol.prototype.toJSON = function () { + return this.value; + }; + + module.exports = Symbol; + module.exports.Symbol = Symbol; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(329).Buffer)) + +/***/ }), +/* 344 */ +/***/ (function(module, exports) { + + /** + * A class representation of a BSON Int32 type. + * + * @class + * @param {number} value the number we want to represent as an int32. + * @return {Int32} + */ + var Int32 = function (value) { + if (!(this instanceof Int32)) return new Int32(value); + + this._bsontype = 'Int32'; + this.value = value; + }; + + /** + * Access the number value. + * + * @method + * @return {number} returns the wrapped int32 number. + */ + Int32.prototype.valueOf = function () { + return this.value; + }; + + /** + * @ignore + */ + Int32.prototype.toJSON = function () { + return this.value; + }; + + module.exports = Int32; + module.exports.Int32 = Int32; + +/***/ }), +/* 345 */ +/***/ (function(module, exports) { + + /** + * A class representation of the BSON Code type. + * + * @class + * @param {(string|function)} code a string or function. + * @param {Object} [scope] an optional scope for the function. + * @return {Code} + */ + var Code = function Code(code, scope) { + if (!(this instanceof Code)) return new Code(code, scope); + this._bsontype = 'Code'; + this.code = code; + this.scope = scope; + }; + + /** + * @ignore + */ + Code.prototype.toJSON = function () { + return { scope: this.scope, code: this.code }; + }; + + module.exports = Code; + module.exports.Code = Code; + +/***/ }), +/* 346 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(Buffer) {'use strict'; + + var Long = __webpack_require__(334); + + var PARSE_STRING_REGEXP = /^(\+|-)?(\d+|(\d*\.\d*))?(E|e)?([-+])?(\d+)?$/; + var PARSE_INF_REGEXP = /^(\+|-)?(Infinity|inf)$/i; + var PARSE_NAN_REGEXP = /^(\+|-)?NaN$/i; + + var EXPONENT_MAX = 6111; + var EXPONENT_MIN = -6176; + var EXPONENT_BIAS = 6176; + var MAX_DIGITS = 34; + + // Nan value bits as 32 bit values (due to lack of longs) + var NAN_BUFFER = [0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00].reverse(); + // Infinity value bits 32 bit values (due to lack of longs) + var INF_NEGATIVE_BUFFER = [0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00].reverse(); + var INF_POSITIVE_BUFFER = [0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00].reverse(); + + var EXPONENT_REGEX = /^([-+])?(\d+)?$/; + + // Detect if the value is a digit + var isDigit = function (value) { + return !isNaN(parseInt(value, 10)); + }; + + // Divide two uint128 values + var divideu128 = function (value) { + var DIVISOR = Long.fromNumber(1000 * 1000 * 1000); + var _rem = Long.fromNumber(0); + var i = 0; + + if (!value.parts[0] && !value.parts[1] && !value.parts[2] && !value.parts[3]) { + return { quotient: value, rem: _rem }; + } + + for (i = 0; i <= 3; i++) { + // Adjust remainder to match value of next dividend + _rem = _rem.shiftLeft(32); + // Add the divided to _rem + _rem = _rem.add(new Long(value.parts[i], 0)); + value.parts[i] = _rem.div(DIVISOR).low_; + _rem = _rem.modulo(DIVISOR); + } + + return { quotient: value, rem: _rem }; + }; + + // Multiply two Long values and return the 128 bit value + var multiply64x2 = function (left, right) { + if (!left && !right) { + return { high: Long.fromNumber(0), low: Long.fromNumber(0) }; + } + + var leftHigh = left.shiftRightUnsigned(32); + var leftLow = new Long(left.getLowBits(), 0); + var rightHigh = right.shiftRightUnsigned(32); + var rightLow = new Long(right.getLowBits(), 0); + + var productHigh = leftHigh.multiply(rightHigh); + var productMid = leftHigh.multiply(rightLow); + var productMid2 = leftLow.multiply(rightHigh); + var productLow = leftLow.multiply(rightLow); + + productHigh = productHigh.add(productMid.shiftRightUnsigned(32)); + productMid = new Long(productMid.getLowBits(), 0).add(productMid2).add(productLow.shiftRightUnsigned(32)); + + productHigh = productHigh.add(productMid.shiftRightUnsigned(32)); + productLow = productMid.shiftLeft(32).add(new Long(productLow.getLowBits(), 0)); + + // Return the 128 bit result + return { high: productHigh, low: productLow }; + }; + + var lessThan = function (left, right) { + // Make values unsigned + var uhleft = left.high_ >>> 0; + var uhright = right.high_ >>> 0; + + // Compare high bits first + if (uhleft < uhright) { + return true; + } else if (uhleft === uhright) { + var ulleft = left.low_ >>> 0; + var ulright = right.low_ >>> 0; + if (ulleft < ulright) return true; + } + + return false; + }; + + // var longtoHex = function(value) { + // var buffer = new Buffer(8); + // var index = 0; + // // Encode the low 64 bits of the decimal + // // Encode low bits + // buffer[index++] = value.low_ & 0xff; + // buffer[index++] = (value.low_ >> 8) & 0xff; + // buffer[index++] = (value.low_ >> 16) & 0xff; + // buffer[index++] = (value.low_ >> 24) & 0xff; + // // Encode high bits + // buffer[index++] = value.high_ & 0xff; + // buffer[index++] = (value.high_ >> 8) & 0xff; + // buffer[index++] = (value.high_ >> 16) & 0xff; + // buffer[index++] = (value.high_ >> 24) & 0xff; + // return buffer.reverse().toString('hex'); + // }; + + // var int32toHex = function(value) { + // var buffer = new Buffer(4); + // var index = 0; + // // Encode the low 64 bits of the decimal + // // Encode low bits + // buffer[index++] = value & 0xff; + // buffer[index++] = (value >> 8) & 0xff; + // buffer[index++] = (value >> 16) & 0xff; + // buffer[index++] = (value >> 24) & 0xff; + // return buffer.reverse().toString('hex'); + // }; + + /** + * A class representation of the BSON Decimal128 type. + * + * @class + * @param {Buffer} bytes a buffer containing the raw Decimal128 bytes. + * @return {Double} + */ + var Decimal128 = function (bytes) { + this._bsontype = 'Decimal128'; + this.bytes = bytes; + }; + + /** + * Create a Decimal128 instance from a string representation + * + * @method + * @param {string} string a numeric string representation. + * @return {Decimal128} returns a Decimal128 instance. + */ + Decimal128.fromString = function (string) { + // Parse state tracking + var isNegative = false; + var sawRadix = false; + var foundNonZero = false; + + // Total number of significant digits (no leading or trailing zero) + var significantDigits = 0; + // Total number of significand digits read + var nDigitsRead = 0; + // Total number of digits (no leading zeros) + var nDigits = 0; + // The number of the digits after radix + var radixPosition = 0; + // The index of the first non-zero in *str* + var firstNonZero = 0; + + // Digits Array + var digits = [0]; + // The number of digits in digits + var nDigitsStored = 0; + // Insertion pointer for digits + var digitsInsert = 0; + // The index of the first non-zero digit + var firstDigit = 0; + // The index of the last digit + var lastDigit = 0; + + // Exponent + var exponent = 0; + // loop index over array + var i = 0; + // The high 17 digits of the significand + var significandHigh = [0, 0]; + // The low 17 digits of the significand + var significandLow = [0, 0]; + // The biased exponent + var biasedExponent = 0; + + // Read index + var index = 0; + + // Trim the string + string = string.trim(); + + // Naively prevent against REDOS attacks. + // TODO: implementing a custom parsing for this, or refactoring the regex would yield + // further gains. + if (string.length >= 7000) { + throw new Error('' + string + ' not a valid Decimal128 string'); + } + + // Results + var stringMatch = string.match(PARSE_STRING_REGEXP); + var infMatch = string.match(PARSE_INF_REGEXP); + var nanMatch = string.match(PARSE_NAN_REGEXP); + + // Validate the string + if (!stringMatch && !infMatch && !nanMatch || string.length === 0) { + throw new Error('' + string + ' not a valid Decimal128 string'); + } + + // Check if we have an illegal exponent format + if (stringMatch && stringMatch[4] && stringMatch[2] === undefined) { + throw new Error('' + string + ' not a valid Decimal128 string'); + } + + // Get the negative or positive sign + if (string[index] === '+' || string[index] === '-') { + isNegative = string[index++] === '-'; + } + + // Check if user passed Infinity or NaN + if (!isDigit(string[index]) && string[index] !== '.') { + if (string[index] === 'i' || string[index] === 'I') { + return new Decimal128(new Buffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); + } else if (string[index] === 'N') { + return new Decimal128(new Buffer(NAN_BUFFER)); + } + } + + // Read all the digits + while (isDigit(string[index]) || string[index] === '.') { + if (string[index] === '.') { + if (sawRadix) { + return new Decimal128(new Buffer(NAN_BUFFER)); + } + + sawRadix = true; + index = index + 1; + continue; + } + + if (nDigitsStored < 34) { + if (string[index] !== '0' || foundNonZero) { + if (!foundNonZero) { + firstNonZero = nDigitsRead; + } + + foundNonZero = true; + + // Only store 34 digits + digits[digitsInsert++] = parseInt(string[index], 10); + nDigitsStored = nDigitsStored + 1; + } + } + + if (foundNonZero) { + nDigits = nDigits + 1; + } + + if (sawRadix) { + radixPosition = radixPosition + 1; + } + + nDigitsRead = nDigitsRead + 1; + index = index + 1; + } + + if (sawRadix && !nDigitsRead) { + throw new Error('' + string + ' not a valid Decimal128 string'); + } + + // Read exponent if exists + if (string[index] === 'e' || string[index] === 'E') { + // Read exponent digits + var match = string.substr(++index).match(EXPONENT_REGEX); + + // No digits read + if (!match || !match[2]) { + return new Decimal128(new Buffer(NAN_BUFFER)); + } + + // Get exponent + exponent = parseInt(match[0], 10); + + // Adjust the index + index = index + match[0].length; + } + + // Return not a number + if (string[index]) { + return new Decimal128(new Buffer(NAN_BUFFER)); + } + + // Done reading input + // Find first non-zero digit in digits + firstDigit = 0; + + if (!nDigitsStored) { + firstDigit = 0; + lastDigit = 0; + digits[0] = 0; + nDigits = 1; + nDigitsStored = 1; + significantDigits = 0; + } else { + lastDigit = nDigitsStored - 1; + significantDigits = nDigits; + + if (exponent !== 0 && significantDigits !== 1) { + while (string[firstNonZero + significantDigits - 1] === '0') { + significantDigits = significantDigits - 1; + } + } + } + + // Normalization of exponent + // Correct exponent based on radix position, and shift significand as needed + // to represent user input + + // Overflow prevention + if (exponent <= radixPosition && radixPosition - exponent > 1 << 14) { + exponent = EXPONENT_MIN; + } else { + exponent = exponent - radixPosition; + } + + // Attempt to normalize the exponent + while (exponent > EXPONENT_MAX) { + // Shift exponent to significand and decrease + lastDigit = lastDigit + 1; + + if (lastDigit - firstDigit > MAX_DIGITS) { + // Check if we have a zero then just hard clamp, otherwise fail + var digitsString = digits.join(''); + if (digitsString.match(/^0+$/)) { + exponent = EXPONENT_MAX; + break; + } else { + return new Decimal128(new Buffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); + } + } + + exponent = exponent - 1; + } + + while (exponent < EXPONENT_MIN || nDigitsStored < nDigits) { + // Shift last digit + if (lastDigit === 0) { + exponent = EXPONENT_MIN; + significantDigits = 0; + break; + } + + if (nDigitsStored < nDigits) { + // adjust to match digits not stored + nDigits = nDigits - 1; + } else { + // adjust to round + lastDigit = lastDigit - 1; + } + + if (exponent < EXPONENT_MAX) { + exponent = exponent + 1; + } else { + // Check if we have a zero then just hard clamp, otherwise fail + digitsString = digits.join(''); + if (digitsString.match(/^0+$/)) { + exponent = EXPONENT_MAX; + break; + } else { + return new Decimal128(new Buffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); + } + } + } + + // Round + // We've normalized the exponent, but might still need to round. + if (lastDigit - firstDigit + 1 < significantDigits && string[significantDigits] !== '0') { + var endOfString = nDigitsRead; + + // If we have seen a radix point, 'string' is 1 longer than we have + // documented with ndigits_read, so inc the position of the first nonzero + // digit and the position that digits are read to. + if (sawRadix && exponent === EXPONENT_MIN) { + firstNonZero = firstNonZero + 1; + endOfString = endOfString + 1; + } + + var roundDigit = parseInt(string[firstNonZero + lastDigit + 1], 10); + var roundBit = 0; + + if (roundDigit >= 5) { + roundBit = 1; + + if (roundDigit === 5) { + roundBit = digits[lastDigit] % 2 === 1; + + for (i = firstNonZero + lastDigit + 2; i < endOfString; i++) { + if (parseInt(string[i], 10)) { + roundBit = 1; + break; + } + } + } + } + + if (roundBit) { + var dIdx = lastDigit; + + for (; dIdx >= 0; dIdx--) { + if (++digits[dIdx] > 9) { + digits[dIdx] = 0; + + // overflowed most significant digit + if (dIdx === 0) { + if (exponent < EXPONENT_MAX) { + exponent = exponent + 1; + digits[dIdx] = 1; + } else { + return new Decimal128(new Buffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); + } + } + } else { + break; + } + } + } + } + + // Encode significand + // The high 17 digits of the significand + significandHigh = Long.fromNumber(0); + // The low 17 digits of the significand + significandLow = Long.fromNumber(0); + + // read a zero + if (significantDigits === 0) { + significandHigh = Long.fromNumber(0); + significandLow = Long.fromNumber(0); + } else if (lastDigit - firstDigit < 17) { + dIdx = firstDigit; + significandLow = Long.fromNumber(digits[dIdx++]); + significandHigh = new Long(0, 0); + + for (; dIdx <= lastDigit; dIdx++) { + significandLow = significandLow.multiply(Long.fromNumber(10)); + significandLow = significandLow.add(Long.fromNumber(digits[dIdx])); + } + } else { + dIdx = firstDigit; + significandHigh = Long.fromNumber(digits[dIdx++]); + + for (; dIdx <= lastDigit - 17; dIdx++) { + significandHigh = significandHigh.multiply(Long.fromNumber(10)); + significandHigh = significandHigh.add(Long.fromNumber(digits[dIdx])); + } + + significandLow = Long.fromNumber(digits[dIdx++]); + + for (; dIdx <= lastDigit; dIdx++) { + significandLow = significandLow.multiply(Long.fromNumber(10)); + significandLow = significandLow.add(Long.fromNumber(digits[dIdx])); + } + } + + var significand = multiply64x2(significandHigh, Long.fromString('100000000000000000')); + + significand.low = significand.low.add(significandLow); + + if (lessThan(significand.low, significandLow)) { + significand.high = significand.high.add(Long.fromNumber(1)); + } + + // Biased exponent + biasedExponent = exponent + EXPONENT_BIAS; + var dec = { low: Long.fromNumber(0), high: Long.fromNumber(0) }; + + // Encode combination, exponent, and significand. + if (significand.high.shiftRightUnsigned(49).and(Long.fromNumber(1)).equals(Long.fromNumber)) { + // Encode '11' into bits 1 to 3 + dec.high = dec.high.or(Long.fromNumber(0x3).shiftLeft(61)); + dec.high = dec.high.or(Long.fromNumber(biasedExponent).and(Long.fromNumber(0x3fff).shiftLeft(47))); + dec.high = dec.high.or(significand.high.and(Long.fromNumber(0x7fffffffffff))); + } else { + dec.high = dec.high.or(Long.fromNumber(biasedExponent & 0x3fff).shiftLeft(49)); + dec.high = dec.high.or(significand.high.and(Long.fromNumber(0x1ffffffffffff))); + } + + dec.low = significand.low; + + // Encode sign + if (isNegative) { + dec.high = dec.high.or(Long.fromString('9223372036854775808')); + } + + // Encode into a buffer + var buffer = new Buffer(16); + index = 0; + + // Encode the low 64 bits of the decimal + // Encode low bits + buffer[index++] = dec.low.low_ & 0xff; + buffer[index++] = dec.low.low_ >> 8 & 0xff; + buffer[index++] = dec.low.low_ >> 16 & 0xff; + buffer[index++] = dec.low.low_ >> 24 & 0xff; + // Encode high bits + buffer[index++] = dec.low.high_ & 0xff; + buffer[index++] = dec.low.high_ >> 8 & 0xff; + buffer[index++] = dec.low.high_ >> 16 & 0xff; + buffer[index++] = dec.low.high_ >> 24 & 0xff; + + // Encode the high 64 bits of the decimal + // Encode low bits + buffer[index++] = dec.high.low_ & 0xff; + buffer[index++] = dec.high.low_ >> 8 & 0xff; + buffer[index++] = dec.high.low_ >> 16 & 0xff; + buffer[index++] = dec.high.low_ >> 24 & 0xff; + // Encode high bits + buffer[index++] = dec.high.high_ & 0xff; + buffer[index++] = dec.high.high_ >> 8 & 0xff; + buffer[index++] = dec.high.high_ >> 16 & 0xff; + buffer[index++] = dec.high.high_ >> 24 & 0xff; + + // Return the new Decimal128 + return new Decimal128(buffer); + }; + + // Extract least significant 5 bits + var COMBINATION_MASK = 0x1f; + // Extract least significant 14 bits + var EXPONENT_MASK = 0x3fff; + // Value of combination field for Inf + var COMBINATION_INFINITY = 30; + // Value of combination field for NaN + var COMBINATION_NAN = 31; + // Value of combination field for NaN + // var COMBINATION_SNAN = 32; + // decimal128 exponent bias + EXPONENT_BIAS = 6176; + + /** + * Create a string representation of the raw Decimal128 value + * + * @method + * @return {string} returns a Decimal128 string representation. + */ + Decimal128.prototype.toString = function () { + // Note: bits in this routine are referred to starting at 0, + // from the sign bit, towards the coefficient. + + // bits 0 - 31 + var high; + // bits 32 - 63 + var midh; + // bits 64 - 95 + var midl; + // bits 96 - 127 + var low; + // bits 1 - 5 + var combination; + // decoded biased exponent (14 bits) + var biased_exponent; + // the number of significand digits + var significand_digits = 0; + // the base-10 digits in the significand + var significand = new Array(36); + for (var i = 0; i < significand.length; i++) significand[i] = 0; + // read pointer into significand + var index = 0; + + // unbiased exponent + var exponent; + // the exponent if scientific notation is used + var scientific_exponent; + + // true if the number is zero + var is_zero = false; + + // the most signifcant significand bits (50-46) + var significand_msb; + // temporary storage for significand decoding + var significand128 = { parts: new Array(4) }; + // indexing variables + i; + var j, k; + + // Output string + var string = []; + + // Unpack index + index = 0; + + // Buffer reference + var buffer = this.bytes; + + // Unpack the low 64bits into a long + low = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + midl = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + + // Unpack the high 64bits into a long + midh = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + high = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + + // Unpack index + index = 0; + + // Create the state of the decimal + var dec = { + low: new Long(low, midl), + high: new Long(midh, high) + }; + + if (dec.high.lessThan(Long.ZERO)) { + string.push('-'); + } + + // Decode combination field and exponent + combination = high >> 26 & COMBINATION_MASK; + + if (combination >> 3 === 3) { + // Check for 'special' values + if (combination === COMBINATION_INFINITY) { + return string.join('') + 'Infinity'; + } else if (combination === COMBINATION_NAN) { + return 'NaN'; + } else { + biased_exponent = high >> 15 & EXPONENT_MASK; + significand_msb = 0x08 + (high >> 14 & 0x01); + } + } else { + significand_msb = high >> 14 & 0x07; + biased_exponent = high >> 17 & EXPONENT_MASK; + } + + exponent = biased_exponent - EXPONENT_BIAS; + + // Create string of significand digits + + // Convert the 114-bit binary number represented by + // (significand_high, significand_low) to at most 34 decimal + // digits through modulo and division. + significand128.parts[0] = (high & 0x3fff) + ((significand_msb & 0xf) << 14); + significand128.parts[1] = midh; + significand128.parts[2] = midl; + significand128.parts[3] = low; + + if (significand128.parts[0] === 0 && significand128.parts[1] === 0 && significand128.parts[2] === 0 && significand128.parts[3] === 0) { + is_zero = true; + } else { + for (k = 3; k >= 0; k--) { + var least_digits = 0; + // Peform the divide + var result = divideu128(significand128); + significand128 = result.quotient; + least_digits = result.rem.low_; + + // We now have the 9 least significant digits (in base 2). + // Convert and output to string. + if (!least_digits) continue; + + for (j = 8; j >= 0; j--) { + // significand[k * 9 + j] = Math.round(least_digits % 10); + significand[k * 9 + j] = least_digits % 10; + // least_digits = Math.round(least_digits / 10); + least_digits = Math.floor(least_digits / 10); + } + } + } + + // Output format options: + // Scientific - [-]d.dddE(+/-)dd or [-]dE(+/-)dd + // Regular - ddd.ddd + + if (is_zero) { + significand_digits = 1; + significand[index] = 0; + } else { + significand_digits = 36; + i = 0; + + while (!significand[index]) { + i++; + significand_digits = significand_digits - 1; + index = index + 1; + } + } + + scientific_exponent = significand_digits - 1 + exponent; + + // The scientific exponent checks are dictated by the string conversion + // specification and are somewhat arbitrary cutoffs. + // + // We must check exponent > 0, because if this is the case, the number + // has trailing zeros. However, we *cannot* output these trailing zeros, + // because doing so would change the precision of the value, and would + // change stored data if the string converted number is round tripped. + + if (scientific_exponent >= 34 || scientific_exponent <= -7 || exponent > 0) { + // Scientific format + string.push(significand[index++]); + significand_digits = significand_digits - 1; + + if (significand_digits) { + string.push('.'); + } + + for (i = 0; i < significand_digits; i++) { + string.push(significand[index++]); + } + + // Exponent + string.push('E'); + if (scientific_exponent > 0) { + string.push('+' + scientific_exponent); + } else { + string.push(scientific_exponent); + } + } else { + // Regular format with no decimal place + if (exponent >= 0) { + for (i = 0; i < significand_digits; i++) { + string.push(significand[index++]); + } + } else { + var radix_position = significand_digits + exponent; + + // non-zero digits before radix + if (radix_position > 0) { + for (i = 0; i < radix_position; i++) { + string.push(significand[index++]); + } + } else { + string.push('0'); + } + + string.push('.'); + // add leading zeros after radix + while (radix_position++ < 0) { + string.push('0'); + } + + for (i = 0; i < significand_digits - Math.max(radix_position - 1, 0); i++) { + string.push(significand[index++]); + } + } + } + + return string.join(''); + }; + + Decimal128.prototype.toJSON = function () { + return { $numberDecimal: this.toString() }; + }; + + module.exports = Decimal128; + module.exports.Decimal128 = Decimal128; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(329).Buffer)) + +/***/ }), +/* 347 */ +/***/ (function(module, exports) { + + /** + * A class representation of the BSON MinKey type. + * + * @class + * @return {MinKey} A MinKey instance + */ + function MinKey() { + if (!(this instanceof MinKey)) return new MinKey(); + + this._bsontype = 'MinKey'; + } + + module.exports = MinKey; + module.exports.MinKey = MinKey; + +/***/ }), +/* 348 */ +/***/ (function(module, exports) { + + /** + * A class representation of the BSON MaxKey type. + * + * @class + * @return {MaxKey} A MaxKey instance + */ + function MaxKey() { + if (!(this instanceof MaxKey)) return new MaxKey(); + + this._bsontype = 'MaxKey'; + } + + module.exports = MaxKey; + module.exports.MaxKey = MaxKey; + +/***/ }), +/* 349 */ +/***/ (function(module, exports) { + + /** + * A class representation of the BSON DBRef type. + * + * @class + * @param {string} namespace the collection name. + * @param {ObjectID} oid the reference ObjectID. + * @param {string} [db] optional db name, if omitted the reference is local to the current db. + * @return {DBRef} + */ + function DBRef(namespace, oid, db) { + if (!(this instanceof DBRef)) return new DBRef(namespace, oid, db); + + this._bsontype = 'DBRef'; + this.namespace = namespace; + this.oid = oid; + this.db = db; + } + + /** + * @ignore + * @api private + */ + DBRef.prototype.toJSON = function () { + return { + $ref: this.namespace, + $id: this.oid, + $db: this.db == null ? '' : this.db + }; + }; + + module.exports = DBRef; + module.exports.DBRef = DBRef; + +/***/ }), +/* 350 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global) {/** + * Module dependencies. + * @ignore + */ + + // Test if we're in Node via presence of "global" not absence of "window" + // to support hybrid environments like Electron + if (typeof global !== 'undefined') { + var Buffer = __webpack_require__(329).Buffer; // TODO just use global Buffer + } + + /** + * A class representation of the BSON Binary type. + * + * Sub types + * - **BSON.BSON_BINARY_SUBTYPE_DEFAULT**, default BSON type. + * - **BSON.BSON_BINARY_SUBTYPE_FUNCTION**, BSON function type. + * - **BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY**, BSON byte array type. + * - **BSON.BSON_BINARY_SUBTYPE_UUID**, BSON uuid type. + * - **BSON.BSON_BINARY_SUBTYPE_MD5**, BSON md5 type. + * - **BSON.BSON_BINARY_SUBTYPE_USER_DEFINED**, BSON user defined type. + * + * @class + * @param {Buffer} buffer a buffer object containing the binary data. + * @param {Number} [subType] the option binary type. + * @return {Binary} + */ + function Binary(buffer, subType) { + if (!(this instanceof Binary)) return new Binary(buffer, subType); + + if (buffer != null && !(typeof buffer === 'string') && !Buffer.isBuffer(buffer) && !(buffer instanceof Uint8Array) && !Array.isArray(buffer)) { + throw new Error('only String, Buffer, Uint8Array or Array accepted'); + } + + this._bsontype = 'Binary'; + + if (buffer instanceof Number) { + this.sub_type = buffer; + this.position = 0; + } else { + this.sub_type = subType == null ? BSON_BINARY_SUBTYPE_DEFAULT : subType; + this.position = 0; + } + + if (buffer != null && !(buffer instanceof Number)) { + // Only accept Buffer, Uint8Array or Arrays + if (typeof buffer === 'string') { + // Different ways of writing the length of the string for the different types + if (typeof Buffer !== 'undefined') { + this.buffer = new Buffer(buffer); + } else if (typeof Uint8Array !== 'undefined' || Object.prototype.toString.call(buffer) === '[object Array]') { + this.buffer = writeStringToArray(buffer); + } else { + throw new Error('only String, Buffer, Uint8Array or Array accepted'); + } + } else { + this.buffer = buffer; + } + this.position = buffer.length; + } else { + if (typeof Buffer !== 'undefined') { + this.buffer = new Buffer(Binary.BUFFER_SIZE); + } else if (typeof Uint8Array !== 'undefined') { + this.buffer = new Uint8Array(new ArrayBuffer(Binary.BUFFER_SIZE)); + } else { + this.buffer = new Array(Binary.BUFFER_SIZE); + } + // Set position to start of buffer + this.position = 0; + } + } + + /** + * Updates this binary with byte_value. + * + * @method + * @param {string} byte_value a single byte we wish to write. + */ + Binary.prototype.put = function put(byte_value) { + // If it's a string and a has more than one character throw an error + if (byte_value['length'] != null && typeof byte_value !== 'number' && byte_value.length !== 1) throw new Error('only accepts single character String, Uint8Array or Array'); + if (typeof byte_value !== 'number' && byte_value < 0 || byte_value > 255) throw new Error('only accepts number in a valid unsigned byte range 0-255'); + + // Decode the byte value once + var decoded_byte = null; + if (typeof byte_value === 'string') { + decoded_byte = byte_value.charCodeAt(0); + } else if (byte_value['length'] != null) { + decoded_byte = byte_value[0]; + } else { + decoded_byte = byte_value; + } + + if (this.buffer.length > this.position) { + this.buffer[this.position++] = decoded_byte; + } else { + if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) { + // Create additional overflow buffer + var buffer = new Buffer(Binary.BUFFER_SIZE + this.buffer.length); + // Combine the two buffers together + this.buffer.copy(buffer, 0, 0, this.buffer.length); + this.buffer = buffer; + this.buffer[this.position++] = decoded_byte; + } else { + buffer = null; + // Create a new buffer (typed or normal array) + if (Object.prototype.toString.call(this.buffer) === '[object Uint8Array]') { + buffer = new Uint8Array(new ArrayBuffer(Binary.BUFFER_SIZE + this.buffer.length)); + } else { + buffer = new Array(Binary.BUFFER_SIZE + this.buffer.length); + } + + // We need to copy all the content to the new array + for (var i = 0; i < this.buffer.length; i++) { + buffer[i] = this.buffer[i]; + } + + // Reassign the buffer + this.buffer = buffer; + // Write the byte + this.buffer[this.position++] = decoded_byte; + } + } + }; + + /** + * Writes a buffer or string to the binary. + * + * @method + * @param {(Buffer|string)} string a string or buffer to be written to the Binary BSON object. + * @param {number} offset specify the binary of where to write the content. + * @return {null} + */ + Binary.prototype.write = function write(string, offset) { + offset = typeof offset === 'number' ? offset : this.position; + + // If the buffer is to small let's extend the buffer + if (this.buffer.length < offset + string.length) { + var buffer = null; + // If we are in node.js + if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) { + buffer = new Buffer(this.buffer.length + string.length); + this.buffer.copy(buffer, 0, 0, this.buffer.length); + } else if (Object.prototype.toString.call(this.buffer) === '[object Uint8Array]') { + // Create a new buffer + buffer = new Uint8Array(new ArrayBuffer(this.buffer.length + string.length)); + // Copy the content + for (var i = 0; i < this.position; i++) { + buffer[i] = this.buffer[i]; + } + } + + // Assign the new buffer + this.buffer = buffer; + } + + if (typeof Buffer !== 'undefined' && Buffer.isBuffer(string) && Buffer.isBuffer(this.buffer)) { + string.copy(this.buffer, offset, 0, string.length); + this.position = offset + string.length > this.position ? offset + string.length : this.position; + // offset = string.length + } else if (typeof Buffer !== 'undefined' && typeof string === 'string' && Buffer.isBuffer(this.buffer)) { + this.buffer.write(string, offset, 'binary'); + this.position = offset + string.length > this.position ? offset + string.length : this.position; + // offset = string.length; + } else if (Object.prototype.toString.call(string) === '[object Uint8Array]' || Object.prototype.toString.call(string) === '[object Array]' && typeof string !== 'string') { + for (i = 0; i < string.length; i++) { + this.buffer[offset++] = string[i]; + } + + this.position = offset > this.position ? offset : this.position; + } else if (typeof string === 'string') { + for (i = 0; i < string.length; i++) { + this.buffer[offset++] = string.charCodeAt(i); + } + + this.position = offset > this.position ? offset : this.position; + } + }; + + /** + * Reads **length** bytes starting at **position**. + * + * @method + * @param {number} position read from the given position in the Binary. + * @param {number} length the number of bytes to read. + * @return {Buffer} + */ + Binary.prototype.read = function read(position, length) { + length = length && length > 0 ? length : this.position; + + // Let's return the data based on the type we have + if (this.buffer['slice']) { + return this.buffer.slice(position, position + length); + } else { + // Create a buffer to keep the result + var buffer = typeof Uint8Array !== 'undefined' ? new Uint8Array(new ArrayBuffer(length)) : new Array(length); + for (var i = 0; i < length; i++) { + buffer[i] = this.buffer[position++]; + } + } + // Return the buffer + return buffer; + }; + + /** + * Returns the value of this binary as a string. + * + * @method + * @return {string} + */ + Binary.prototype.value = function value(asRaw) { + asRaw = asRaw == null ? false : asRaw; + + // Optimize to serialize for the situation where the data == size of buffer + if (asRaw && typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer) && this.buffer.length === this.position) return this.buffer; + + // If it's a node.js buffer object + if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) { + return asRaw ? this.buffer.slice(0, this.position) : this.buffer.toString('binary', 0, this.position); + } else { + if (asRaw) { + // we support the slice command use it + if (this.buffer['slice'] != null) { + return this.buffer.slice(0, this.position); + } else { + // Create a new buffer to copy content to + var newBuffer = Object.prototype.toString.call(this.buffer) === '[object Uint8Array]' ? new Uint8Array(new ArrayBuffer(this.position)) : new Array(this.position); + // Copy content + for (var i = 0; i < this.position; i++) { + newBuffer[i] = this.buffer[i]; + } + // Return the buffer + return newBuffer; + } + } else { + return convertArraytoUtf8BinaryString(this.buffer, 0, this.position); + } + } + }; + + /** + * Length. + * + * @method + * @return {number} the length of the binary. + */ + Binary.prototype.length = function length() { + return this.position; + }; + + /** + * @ignore + */ + Binary.prototype.toJSON = function () { + return this.buffer != null ? this.buffer.toString('base64') : ''; + }; + + /** + * @ignore + */ + Binary.prototype.toString = function (format) { + return this.buffer != null ? this.buffer.slice(0, this.position).toString(format) : ''; + }; + + /** + * Binary default subtype + * @ignore + */ + var BSON_BINARY_SUBTYPE_DEFAULT = 0; + + /** + * @ignore + */ + var writeStringToArray = function (data) { + // Create a buffer + var buffer = typeof Uint8Array !== 'undefined' ? new Uint8Array(new ArrayBuffer(data.length)) : new Array(data.length); + // Write the content to the buffer + for (var i = 0; i < data.length; i++) { + buffer[i] = data.charCodeAt(i); + } + // Write the string to the buffer + return buffer; + }; + + /** + * Convert Array ot Uint8Array to Binary String + * + * @ignore + */ + var convertArraytoUtf8BinaryString = function (byteArray, startIndex, endIndex) { + var result = ''; + for (var i = startIndex; i < endIndex; i++) { + result = result + String.fromCharCode(byteArray[i]); + } + return result; + }; + + Binary.BUFFER_SIZE = 256; + + /** + * Default BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ + Binary.SUBTYPE_DEFAULT = 0; + /** + * Function BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ + Binary.SUBTYPE_FUNCTION = 1; + /** + * Byte Array BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ + Binary.SUBTYPE_BYTE_ARRAY = 2; + /** + * OLD UUID BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ + Binary.SUBTYPE_UUID_OLD = 3; + /** + * UUID BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ + Binary.SUBTYPE_UUID = 4; + /** + * MD5 BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ + Binary.SUBTYPE_MD5 = 5; + /** + * User BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ + Binary.SUBTYPE_USER_DEFINED = 128; + + /** + * Expose. + */ + module.exports = Binary; + module.exports.Binary = Binary; + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + +/***/ }), +/* 351 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(Buffer) {'use strict'; + + var Long = __webpack_require__(334).Long, + Double = __webpack_require__(335).Double, + Timestamp = __webpack_require__(336).Timestamp, + ObjectID = __webpack_require__(337).ObjectID, + Symbol = __webpack_require__(343).Symbol, + Code = __webpack_require__(345).Code, + MinKey = __webpack_require__(347).MinKey, + MaxKey = __webpack_require__(348).MaxKey, + Decimal128 = __webpack_require__(346), + Int32 = __webpack_require__(344), + DBRef = __webpack_require__(349).DBRef, + BSONRegExp = __webpack_require__(342).BSONRegExp, + Binary = __webpack_require__(350).Binary; + + var deserialize = function (buffer, options, isArray) { + options = options == null ? {} : options; + var index = options && options.index ? options.index : 0; + // Read the document size + var size = buffer[index] | buffer[index + 1] << 8 | buffer[index + 2] << 16 | buffer[index + 3] << 24; + + // Ensure buffer is valid size + if (size < 5 || buffer.length < size || size + index > buffer.length) { + throw new Error('corrupt bson message'); + } + + // Illegal end value + if (buffer[index + size - 1] !== 0) { + throw new Error("One object, sized correctly, with a spot for an EOO, but the EOO isn't 0x00"); + } + + // Start deserializtion + return deserializeObject(buffer, index, options, isArray); + }; + + var deserializeObject = function (buffer, index, options, isArray) { + var evalFunctions = options['evalFunctions'] == null ? false : options['evalFunctions']; + var cacheFunctions = options['cacheFunctions'] == null ? false : options['cacheFunctions']; + var cacheFunctionsCrc32 = options['cacheFunctionsCrc32'] == null ? false : options['cacheFunctionsCrc32']; + + if (!cacheFunctionsCrc32) var crc32 = null; + + var fieldsAsRaw = options['fieldsAsRaw'] == null ? null : options['fieldsAsRaw']; + + // Return raw bson buffer instead of parsing it + var raw = options['raw'] == null ? false : options['raw']; + + // Return BSONRegExp objects instead of native regular expressions + var bsonRegExp = typeof options['bsonRegExp'] === 'boolean' ? options['bsonRegExp'] : false; + + // Controls the promotion of values vs wrapper classes + var promoteBuffers = options['promoteBuffers'] == null ? false : options['promoteBuffers']; + var promoteLongs = options['promoteLongs'] == null ? true : options['promoteLongs']; + var promoteValues = options['promoteValues'] == null ? true : options['promoteValues']; + + // Set the start index + var startIndex = index; + + // Validate that we have at least 4 bytes of buffer + if (buffer.length < 5) throw new Error('corrupt bson message < 5 bytes long'); + + // Read the document size + var size = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + + // Ensure buffer is valid size + if (size < 5 || size > buffer.length) throw new Error('corrupt bson message'); + + // Create holding object + var object = isArray ? [] : {}; + // Used for arrays to skip having to perform utf8 decoding + var arrayIndex = 0; + + var done = false; + + // While we have more left data left keep parsing + // while (buffer[index + 1] !== 0) { + while (!done) { + // Read the type + var elementType = buffer[index++]; + // If we get a zero it's the last byte, exit + if (elementType === 0) break; + + // Get the start search index + var i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + var name = isArray ? arrayIndex++ : buffer.toString('utf8', index, i); + + index = i + 1; + + if (elementType === BSON.BSON_DATA_STRING) { + var stringSize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + if (stringSize <= 0 || stringSize > buffer.length - index || buffer[index + stringSize - 1] !== 0) throw new Error('bad string length in bson'); + object[name] = buffer.toString('utf8', index, index + stringSize - 1); + index = index + stringSize; + } else if (elementType === BSON.BSON_DATA_OID) { + var oid = new Buffer(12); + buffer.copy(oid, 0, index, index + 12); + object[name] = new ObjectID(oid); + index = index + 12; + } else if (elementType === BSON.BSON_DATA_INT && promoteValues === false) { + object[name] = new Int32(buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24); + } else if (elementType === BSON.BSON_DATA_INT) { + object[name] = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + } else if (elementType === BSON.BSON_DATA_NUMBER && promoteValues === false) { + object[name] = new Double(buffer.readDoubleLE(index)); + index = index + 8; + } else if (elementType === BSON.BSON_DATA_NUMBER) { + object[name] = buffer.readDoubleLE(index); + index = index + 8; + } else if (elementType === BSON.BSON_DATA_DATE) { + var lowBits = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + var highBits = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + object[name] = new Date(new Long(lowBits, highBits).toNumber()); + } else if (elementType === BSON.BSON_DATA_BOOLEAN) { + if (buffer[index] !== 0 && buffer[index] !== 1) throw new Error('illegal boolean type value'); + object[name] = buffer[index++] === 1; + } else if (elementType === BSON.BSON_DATA_OBJECT) { + var _index = index; + var objectSize = buffer[index] | buffer[index + 1] << 8 | buffer[index + 2] << 16 | buffer[index + 3] << 24; + if (objectSize <= 0 || objectSize > buffer.length - index) throw new Error('bad embedded document length in bson'); + + // We have a raw value + if (raw) { + object[name] = buffer.slice(index, index + objectSize); + } else { + object[name] = deserializeObject(buffer, _index, options, false); + } + + index = index + objectSize; + } else if (elementType === BSON.BSON_DATA_ARRAY) { + _index = index; + objectSize = buffer[index] | buffer[index + 1] << 8 | buffer[index + 2] << 16 | buffer[index + 3] << 24; + var arrayOptions = options; + + // Stop index + var stopIndex = index + objectSize; + + // All elements of array to be returned as raw bson + if (fieldsAsRaw && fieldsAsRaw[name]) { + arrayOptions = {}; + for (var n in options) arrayOptions[n] = options[n]; + arrayOptions['raw'] = true; + } + + object[name] = deserializeObject(buffer, _index, arrayOptions, true); + index = index + objectSize; + + if (buffer[index - 1] !== 0) throw new Error('invalid array terminator byte'); + if (index !== stopIndex) throw new Error('corrupted array bson'); + } else if (elementType === BSON.BSON_DATA_UNDEFINED) { + object[name] = undefined; + } else if (elementType === BSON.BSON_DATA_NULL) { + object[name] = null; + } else if (elementType === BSON.BSON_DATA_LONG) { + // Unpack the low and high bits + lowBits = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + highBits = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + var long = new Long(lowBits, highBits); + // Promote the long if possible + if (promoteLongs && promoteValues === true) { + object[name] = long.lessThanOrEqual(JS_INT_MAX_LONG) && long.greaterThanOrEqual(JS_INT_MIN_LONG) ? long.toNumber() : long; + } else { + object[name] = long; + } + } else if (elementType === BSON.BSON_DATA_DECIMAL128) { + // Buffer to contain the decimal bytes + var bytes = new Buffer(16); + // Copy the next 16 bytes into the bytes buffer + buffer.copy(bytes, 0, index, index + 16); + // Update index + index = index + 16; + // Assign the new Decimal128 value + var decimal128 = new Decimal128(bytes); + // If we have an alternative mapper use that + object[name] = decimal128.toObject ? decimal128.toObject() : decimal128; + } else if (elementType === BSON.BSON_DATA_BINARY) { + var binarySize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + var totalBinarySize = binarySize; + var subType = buffer[index++]; + + // Did we have a negative binary size, throw + if (binarySize < 0) throw new Error('Negative binary type element size found'); + + // Is the length longer than the document + if (binarySize > buffer.length) throw new Error('Binary type size larger than document size'); + + // Decode as raw Buffer object if options specifies it + if (buffer['slice'] != null) { + // If we have subtype 2 skip the 4 bytes for the size + if (subType === Binary.SUBTYPE_BYTE_ARRAY) { + binarySize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + if (binarySize < 0) throw new Error('Negative binary type element size found for subtype 0x02'); + if (binarySize > totalBinarySize - 4) throw new Error('Binary type with subtype 0x02 contains to long binary size'); + if (binarySize < totalBinarySize - 4) throw new Error('Binary type with subtype 0x02 contains to short binary size'); + } + + if (promoteBuffers && promoteValues) { + object[name] = buffer.slice(index, index + binarySize); + } else { + object[name] = new Binary(buffer.slice(index, index + binarySize), subType); + } + } else { + var _buffer = typeof Uint8Array !== 'undefined' ? new Uint8Array(new ArrayBuffer(binarySize)) : new Array(binarySize); + // If we have subtype 2 skip the 4 bytes for the size + if (subType === Binary.SUBTYPE_BYTE_ARRAY) { + binarySize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + if (binarySize < 0) throw new Error('Negative binary type element size found for subtype 0x02'); + if (binarySize > totalBinarySize - 4) throw new Error('Binary type with subtype 0x02 contains to long binary size'); + if (binarySize < totalBinarySize - 4) throw new Error('Binary type with subtype 0x02 contains to short binary size'); + } + + // Copy the data + for (i = 0; i < binarySize; i++) { + _buffer[i] = buffer[index + i]; + } + + if (promoteBuffers && promoteValues) { + object[name] = _buffer; + } else { + object[name] = new Binary(_buffer, subType); + } + } + + // Update the index + index = index + binarySize; + } else if (elementType === BSON.BSON_DATA_REGEXP && bsonRegExp === false) { + // Get the start search index + i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + // Return the C string + var source = buffer.toString('utf8', index, i); + // Create the regexp + index = i + 1; + + // Get the start search index + i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + // Return the C string + var regExpOptions = buffer.toString('utf8', index, i); + index = i + 1; + + // For each option add the corresponding one for javascript + var optionsArray = new Array(regExpOptions.length); + + // Parse options + for (i = 0; i < regExpOptions.length; i++) { + switch (regExpOptions[i]) { + case 'm': + optionsArray[i] = 'm'; + break; + case 's': + optionsArray[i] = 'g'; + break; + case 'i': + optionsArray[i] = 'i'; + break; + } + } + + object[name] = new RegExp(source, optionsArray.join('')); + } else if (elementType === BSON.BSON_DATA_REGEXP && bsonRegExp === true) { + // Get the start search index + i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + // Return the C string + source = buffer.toString('utf8', index, i); + index = i + 1; + + // Get the start search index + i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + // Return the C string + regExpOptions = buffer.toString('utf8', index, i); + index = i + 1; + + // Set the object + object[name] = new BSONRegExp(source, regExpOptions); + } else if (elementType === BSON.BSON_DATA_SYMBOL) { + stringSize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + if (stringSize <= 0 || stringSize > buffer.length - index || buffer[index + stringSize - 1] !== 0) throw new Error('bad string length in bson'); + object[name] = new Symbol(buffer.toString('utf8', index, index + stringSize - 1)); + index = index + stringSize; + } else if (elementType === BSON.BSON_DATA_TIMESTAMP) { + lowBits = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + highBits = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + object[name] = new Timestamp(lowBits, highBits); + } else if (elementType === BSON.BSON_DATA_MIN_KEY) { + object[name] = new MinKey(); + } else if (elementType === BSON.BSON_DATA_MAX_KEY) { + object[name] = new MaxKey(); + } else if (elementType === BSON.BSON_DATA_CODE) { + stringSize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + if (stringSize <= 0 || stringSize > buffer.length - index || buffer[index + stringSize - 1] !== 0) throw new Error('bad string length in bson'); + var functionString = buffer.toString('utf8', index, index + stringSize - 1); + + // If we are evaluating the functions + if (evalFunctions) { + // If we have cache enabled let's look for the md5 of the function in the cache + if (cacheFunctions) { + var hash = cacheFunctionsCrc32 ? crc32(functionString) : functionString; + // Got to do this to avoid V8 deoptimizing the call due to finding eval + object[name] = isolateEvalWithHash(functionCache, hash, functionString, object); + } else { + object[name] = isolateEval(functionString); + } + } else { + object[name] = new Code(functionString); + } + + // Update parse index position + index = index + stringSize; + } else if (elementType === BSON.BSON_DATA_CODE_W_SCOPE) { + var totalSize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + + // Element cannot be shorter than totalSize + stringSize + documentSize + terminator + if (totalSize < 4 + 4 + 4 + 1) { + throw new Error('code_w_scope total size shorter minimum expected length'); + } + + // Get the code string size + stringSize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + // Check if we have a valid string + if (stringSize <= 0 || stringSize > buffer.length - index || buffer[index + stringSize - 1] !== 0) throw new Error('bad string length in bson'); + + // Javascript function + functionString = buffer.toString('utf8', index, index + stringSize - 1); + // Update parse index position + index = index + stringSize; + // Parse the element + _index = index; + // Decode the size of the object document + objectSize = buffer[index] | buffer[index + 1] << 8 | buffer[index + 2] << 16 | buffer[index + 3] << 24; + // Decode the scope object + var scopeObject = deserializeObject(buffer, _index, options, false); + // Adjust the index + index = index + objectSize; + + // Check if field length is to short + if (totalSize < 4 + 4 + objectSize + stringSize) { + throw new Error('code_w_scope total size is to short, truncating scope'); + } + + // Check if totalSize field is to long + if (totalSize > 4 + 4 + objectSize + stringSize) { + throw new Error('code_w_scope total size is to long, clips outer document'); + } + + // If we are evaluating the functions + if (evalFunctions) { + // If we have cache enabled let's look for the md5 of the function in the cache + if (cacheFunctions) { + hash = cacheFunctionsCrc32 ? crc32(functionString) : functionString; + // Got to do this to avoid V8 deoptimizing the call due to finding eval + object[name] = isolateEvalWithHash(functionCache, hash, functionString, object); + } else { + object[name] = isolateEval(functionString); + } + + object[name].scope = scopeObject; + } else { + object[name] = new Code(functionString, scopeObject); + } + } else if (elementType === BSON.BSON_DATA_DBPOINTER) { + // Get the code string size + stringSize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; + // Check if we have a valid string + if (stringSize <= 0 || stringSize > buffer.length - index || buffer[index + stringSize - 1] !== 0) throw new Error('bad string length in bson'); + // Namespace + var namespace = buffer.toString('utf8', index, index + stringSize - 1); + // Update parse index position + index = index + stringSize; + + // Read the oid + var oidBuffer = new Buffer(12); + buffer.copy(oidBuffer, 0, index, index + 12); + oid = new ObjectID(oidBuffer); + + // Update the index + index = index + 12; + + // Split the namespace + var parts = namespace.split('.'); + var db = parts.shift(); + var collection = parts.join('.'); + // Upgrade to DBRef type + object[name] = new DBRef(collection, oid, db); + } else { + throw new Error('Detected unknown BSON type ' + elementType.toString(16) + ' for fieldname "' + name + '", are you using the latest BSON parser'); + } + } + + // Check if the deserialization was against a valid array/object + if (size !== index - startIndex) { + if (isArray) throw new Error('corrupt array bson'); + throw new Error('corrupt object bson'); + } + + // Check if we have a db ref object + if (object['$id'] != null) object = new DBRef(object['$ref'], object['$id'], object['$db']); + return object; + }; + + /** + * Ensure eval is isolated. + * + * @ignore + * @api private + */ + var isolateEvalWithHash = function (functionCache, hash, functionString, object) { + // Contains the value we are going to set + var value = null; + + // Check for cache hit, eval if missing and return cached function + if (functionCache[hash] == null) { + eval('value = ' + functionString); + functionCache[hash] = value; + } + // Set the object + return functionCache[hash].bind(object); + }; + + /** + * Ensure eval is isolated. + * + * @ignore + * @api private + */ + var isolateEval = function (functionString) { + // Contains the value we are going to set + var value = null; + // Eval the function + eval('value = ' + functionString); + return value; + }; + + var BSON = {}; + + /** + * Contains the function cache if we have that enable to allow for avoiding the eval step on each deserialization, comparison is by md5 + * + * @ignore + * @api private + */ + var functionCache = BSON.functionCache = {}; + + /** + * Number BSON Type + * + * @classconstant BSON_DATA_NUMBER + **/ + BSON.BSON_DATA_NUMBER = 1; + /** + * String BSON Type + * + * @classconstant BSON_DATA_STRING + **/ + BSON.BSON_DATA_STRING = 2; + /** + * Object BSON Type + * + * @classconstant BSON_DATA_OBJECT + **/ + BSON.BSON_DATA_OBJECT = 3; + /** + * Array BSON Type + * + * @classconstant BSON_DATA_ARRAY + **/ + BSON.BSON_DATA_ARRAY = 4; + /** + * Binary BSON Type + * + * @classconstant BSON_DATA_BINARY + **/ + BSON.BSON_DATA_BINARY = 5; + /** + * Binary BSON Type + * + * @classconstant BSON_DATA_UNDEFINED + **/ + BSON.BSON_DATA_UNDEFINED = 6; + /** + * ObjectID BSON Type + * + * @classconstant BSON_DATA_OID + **/ + BSON.BSON_DATA_OID = 7; + /** + * Boolean BSON Type + * + * @classconstant BSON_DATA_BOOLEAN + **/ + BSON.BSON_DATA_BOOLEAN = 8; + /** + * Date BSON Type + * + * @classconstant BSON_DATA_DATE + **/ + BSON.BSON_DATA_DATE = 9; + /** + * null BSON Type + * + * @classconstant BSON_DATA_NULL + **/ + BSON.BSON_DATA_NULL = 10; + /** + * RegExp BSON Type + * + * @classconstant BSON_DATA_REGEXP + **/ + BSON.BSON_DATA_REGEXP = 11; + /** + * Code BSON Type + * + * @classconstant BSON_DATA_DBPOINTER + **/ + BSON.BSON_DATA_DBPOINTER = 12; + /** + * Code BSON Type + * + * @classconstant BSON_DATA_CODE + **/ + BSON.BSON_DATA_CODE = 13; + /** + * Symbol BSON Type + * + * @classconstant BSON_DATA_SYMBOL + **/ + BSON.BSON_DATA_SYMBOL = 14; + /** + * Code with Scope BSON Type + * + * @classconstant BSON_DATA_CODE_W_SCOPE + **/ + BSON.BSON_DATA_CODE_W_SCOPE = 15; + /** + * 32 bit Integer BSON Type + * + * @classconstant BSON_DATA_INT + **/ + BSON.BSON_DATA_INT = 16; + /** + * Timestamp BSON Type + * + * @classconstant BSON_DATA_TIMESTAMP + **/ + BSON.BSON_DATA_TIMESTAMP = 17; + /** + * Long BSON Type + * + * @classconstant BSON_DATA_LONG + **/ + BSON.BSON_DATA_LONG = 18; + /** + * Long BSON Type + * + * @classconstant BSON_DATA_DECIMAL128 + **/ + BSON.BSON_DATA_DECIMAL128 = 19; + /** + * MinKey BSON Type + * + * @classconstant BSON_DATA_MIN_KEY + **/ + BSON.BSON_DATA_MIN_KEY = 0xff; + /** + * MaxKey BSON Type + * + * @classconstant BSON_DATA_MAX_KEY + **/ + BSON.BSON_DATA_MAX_KEY = 0x7f; + + /** + * Binary Default Type + * + * @classconstant BSON_BINARY_SUBTYPE_DEFAULT + **/ + BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0; + /** + * Binary Function Type + * + * @classconstant BSON_BINARY_SUBTYPE_FUNCTION + **/ + BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1; + /** + * Binary Byte Array Type + * + * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY + **/ + BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2; + /** + * Binary UUID Type + * + * @classconstant BSON_BINARY_SUBTYPE_UUID + **/ + BSON.BSON_BINARY_SUBTYPE_UUID = 3; + /** + * Binary MD5 Type + * + * @classconstant BSON_BINARY_SUBTYPE_MD5 + **/ + BSON.BSON_BINARY_SUBTYPE_MD5 = 4; + /** + * Binary User Defined Type + * + * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED + **/ + BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128; + + // BSON MAX VALUES + BSON.BSON_INT32_MAX = 0x7fffffff; + BSON.BSON_INT32_MIN = -0x80000000; + + BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; + BSON.BSON_INT64_MIN = -Math.pow(2, 63); + + // JS MAX PRECISE VALUES + BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. + BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + + // Internal long versions + var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double. + var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double. + + module.exports = deserialize; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(329).Buffer)) + +/***/ }), +/* 352 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(Buffer) {'use strict'; + + var writeIEEE754 = __webpack_require__(353).writeIEEE754, + Long = __webpack_require__(334).Long, + MinKey = __webpack_require__(347).MinKey, + Map = __webpack_require__(333), + Binary = __webpack_require__(350).Binary; + + const normalizedFunctionString = __webpack_require__(354).normalizedFunctionString; + + // try { + // var _Buffer = Uint8Array; + // } catch (e) { + // _Buffer = Buffer; + // } + + var regexp = /\x00/; // eslint-disable-line no-control-regex + + // To ensure that 0.4 of node works correctly + var isDate = function isDate(d) { + return typeof d === 'object' && Object.prototype.toString.call(d) === '[object Date]'; + }; + + var isRegExp = function isRegExp(d) { + return Object.prototype.toString.call(d) === '[object RegExp]'; + }; + + var serializeString = function (buffer, key, value, index, isArray) { + // Encode String type + buffer[index++] = BSON.BSON_DATA_STRING; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes + 1; + buffer[index - 1] = 0; + // Write the string + var size = buffer.write(value, index + 4, 'utf8'); + // Write the size of the string to buffer + buffer[index + 3] = size + 1 >> 24 & 0xff; + buffer[index + 2] = size + 1 >> 16 & 0xff; + buffer[index + 1] = size + 1 >> 8 & 0xff; + buffer[index] = size + 1 & 0xff; + // Update index + index = index + 4 + size; + // Write zero + buffer[index++] = 0; + return index; + }; + + var serializeNumber = function (buffer, key, value, index, isArray) { + // We have an integer value + if (Math.floor(value) === value && value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { + // If the value fits in 32 bits encode as int, if it fits in a double + // encode it as a double, otherwise long + if (value >= BSON.BSON_INT32_MIN && value <= BSON.BSON_INT32_MAX) { + // Set int type 32 bits or less + buffer[index++] = BSON.BSON_DATA_INT; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the int value + buffer[index++] = value & 0xff; + buffer[index++] = value >> 8 & 0xff; + buffer[index++] = value >> 16 & 0xff; + buffer[index++] = value >> 24 & 0xff; + } else if (value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { + // Encode as double + buffer[index++] = BSON.BSON_DATA_NUMBER; + // Number of written bytes + numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write float + writeIEEE754(buffer, value, index, 'little', 52, 8); + // Ajust index + index = index + 8; + } else { + // Set long type + buffer[index++] = BSON.BSON_DATA_LONG; + // Number of written bytes + numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + var longVal = Long.fromNumber(value); + var lowBits = longVal.getLowBits(); + var highBits = longVal.getHighBits(); + // Encode low bits + buffer[index++] = lowBits & 0xff; + buffer[index++] = lowBits >> 8 & 0xff; + buffer[index++] = lowBits >> 16 & 0xff; + buffer[index++] = lowBits >> 24 & 0xff; + // Encode high bits + buffer[index++] = highBits & 0xff; + buffer[index++] = highBits >> 8 & 0xff; + buffer[index++] = highBits >> 16 & 0xff; + buffer[index++] = highBits >> 24 & 0xff; + } + } else { + // Encode as double + buffer[index++] = BSON.BSON_DATA_NUMBER; + // Number of written bytes + numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write float + writeIEEE754(buffer, value, index, 'little', 52, 8); + // Ajust index + index = index + 8; + } + + return index; + }; + + var serializeNull = function (buffer, key, value, index, isArray) { + // Set long type + buffer[index++] = BSON.BSON_DATA_NULL; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + return index; + }; + + var serializeBoolean = function (buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_BOOLEAN; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Encode the boolean value + buffer[index++] = value ? 1 : 0; + return index; + }; + + var serializeDate = function (buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_DATE; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + // Write the date + var dateInMilis = Long.fromNumber(value.getTime()); + var lowBits = dateInMilis.getLowBits(); + var highBits = dateInMilis.getHighBits(); + // Encode low bits + buffer[index++] = lowBits & 0xff; + buffer[index++] = lowBits >> 8 & 0xff; + buffer[index++] = lowBits >> 16 & 0xff; + buffer[index++] = lowBits >> 24 & 0xff; + // Encode high bits + buffer[index++] = highBits & 0xff; + buffer[index++] = highBits >> 8 & 0xff; + buffer[index++] = highBits >> 16 & 0xff; + buffer[index++] = highBits >> 24 & 0xff; + return index; + }; + + var serializeRegExp = function (buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_REGEXP; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + if (value.source && value.source.match(regexp) != null) { + throw Error('value ' + value.source + ' must not contain null bytes'); + } + // Adjust the index + index = index + buffer.write(value.source, index, 'utf8'); + // Write zero + buffer[index++] = 0x00; + // Write the parameters + if (value.global) buffer[index++] = 0x73; // s + if (value.ignoreCase) buffer[index++] = 0x69; // i + if (value.multiline) buffer[index++] = 0x6d; // m + // Add ending zero + buffer[index++] = 0x00; + return index; + }; + + var serializeBSONRegExp = function (buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_REGEXP; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + // Check the pattern for 0 bytes + if (value.pattern.match(regexp) != null) { + // The BSON spec doesn't allow keys with null bytes because keys are + // null-terminated. + throw Error('pattern ' + value.pattern + ' must not contain null bytes'); + } + + // Adjust the index + index = index + buffer.write(value.pattern, index, 'utf8'); + // Write zero + buffer[index++] = 0x00; + // Write the options + index = index + buffer.write(value.options.split('').sort().join(''), index, 'utf8'); + // Add ending zero + buffer[index++] = 0x00; + return index; + }; + + var serializeMinMax = function (buffer, key, value, index, isArray) { + // Write the type of either min or max key + if (value === null) { + buffer[index++] = BSON.BSON_DATA_NULL; + } else if (value instanceof MinKey) { + buffer[index++] = BSON.BSON_DATA_MIN_KEY; + } else { + buffer[index++] = BSON.BSON_DATA_MAX_KEY; + } + + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + return index; + }; + + var serializeObjectId = function (buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_OID; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + // Write the objectId into the shared buffer + if (typeof value.id === 'string') { + buffer.write(value.id, index, 'binary'); + } else if (value.id && value.id.copy) { + value.id.copy(buffer, index, 0, 12); + } else { + throw new Error('object [' + JSON.stringify(value) + '] is not a valid ObjectId'); + } + + // Ajust index + return index + 12; + }; + + var serializeBuffer = function (buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_BINARY; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Get size of the buffer (current write point) + var size = value.length; + // Write the size of the string to buffer + buffer[index++] = size & 0xff; + buffer[index++] = size >> 8 & 0xff; + buffer[index++] = size >> 16 & 0xff; + buffer[index++] = size >> 24 & 0xff; + // Write the default subtype + buffer[index++] = BSON.BSON_BINARY_SUBTYPE_DEFAULT; + // Copy the content form the binary field to the buffer + value.copy(buffer, index, 0, size); + // Adjust the index + index = index + size; + return index; + }; + + var serializeObject = function (buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, isArray, path) { + for (var i = 0; i < path.length; i++) { + if (path[i] === value) throw new Error('cyclic dependency detected'); + } + + // Push value to stack + path.push(value); + // Write the type + buffer[index++] = Array.isArray(value) ? BSON.BSON_DATA_ARRAY : BSON.BSON_DATA_OBJECT; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + var endIndex = serializeInto(buffer, value, checkKeys, index, depth + 1, serializeFunctions, ignoreUndefined, path); + // Pop stack + path.pop(); + // Write size + return endIndex; + }; + + var serializeDecimal128 = function (buffer, key, value, index, isArray) { + buffer[index++] = BSON.BSON_DATA_DECIMAL128; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the data from the value + value.bytes.copy(buffer, index, 0, 16); + return index + 16; + }; + + var serializeLong = function (buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = value._bsontype === 'Long' ? BSON.BSON_DATA_LONG : BSON.BSON_DATA_TIMESTAMP; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the date + var lowBits = value.getLowBits(); + var highBits = value.getHighBits(); + // Encode low bits + buffer[index++] = lowBits & 0xff; + buffer[index++] = lowBits >> 8 & 0xff; + buffer[index++] = lowBits >> 16 & 0xff; + buffer[index++] = lowBits >> 24 & 0xff; + // Encode high bits + buffer[index++] = highBits & 0xff; + buffer[index++] = highBits >> 8 & 0xff; + buffer[index++] = highBits >> 16 & 0xff; + buffer[index++] = highBits >> 24 & 0xff; + return index; + }; + + var serializeInt32 = function (buffer, key, value, index, isArray) { + // Set int type 32 bits or less + buffer[index++] = BSON.BSON_DATA_INT; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the int value + buffer[index++] = value & 0xff; + buffer[index++] = value >> 8 & 0xff; + buffer[index++] = value >> 16 & 0xff; + buffer[index++] = value >> 24 & 0xff; + return index; + }; + + var serializeDouble = function (buffer, key, value, index, isArray) { + // Encode as double + buffer[index++] = BSON.BSON_DATA_NUMBER; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write float + writeIEEE754(buffer, value, index, 'little', 52, 8); + // Ajust index + index = index + 8; + return index; + }; + + var serializeFunction = function (buffer, key, value, index, checkKeys, depth, isArray) { + buffer[index++] = BSON.BSON_DATA_CODE; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Function string + var functionString = normalizedFunctionString(value); + + // Write the string + var size = buffer.write(functionString, index + 4, 'utf8') + 1; + // Write the size of the string to buffer + buffer[index] = size & 0xff; + buffer[index + 1] = size >> 8 & 0xff; + buffer[index + 2] = size >> 16 & 0xff; + buffer[index + 3] = size >> 24 & 0xff; + // Update index + index = index + 4 + size - 1; + // Write zero + buffer[index++] = 0; + return index; + }; + + var serializeCode = function (buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, isArray) { + if (value.scope && typeof value.scope === 'object') { + // Write the type + buffer[index++] = BSON.BSON_DATA_CODE_W_SCOPE; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + // Starting index + var startIndex = index; + + // Serialize the function + // Get the function string + var functionString = typeof value.code === 'string' ? value.code : value.code.toString(); + // Index adjustment + index = index + 4; + // Write string into buffer + var codeSize = buffer.write(functionString, index + 4, 'utf8') + 1; + // Write the size of the string to buffer + buffer[index] = codeSize & 0xff; + buffer[index + 1] = codeSize >> 8 & 0xff; + buffer[index + 2] = codeSize >> 16 & 0xff; + buffer[index + 3] = codeSize >> 24 & 0xff; + // Write end 0 + buffer[index + 4 + codeSize - 1] = 0; + // Write the + index = index + codeSize + 4; + + // + // Serialize the scope value + var endIndex = serializeInto(buffer, value.scope, checkKeys, index, depth + 1, serializeFunctions, ignoreUndefined); + index = endIndex - 1; + + // Writ the total + var totalSize = endIndex - startIndex; + + // Write the total size of the object + buffer[startIndex++] = totalSize & 0xff; + buffer[startIndex++] = totalSize >> 8 & 0xff; + buffer[startIndex++] = totalSize >> 16 & 0xff; + buffer[startIndex++] = totalSize >> 24 & 0xff; + // Write trailing zero + buffer[index++] = 0; + } else { + buffer[index++] = BSON.BSON_DATA_CODE; + // Number of written bytes + numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Function string + functionString = value.code.toString(); + // Write the string + var size = buffer.write(functionString, index + 4, 'utf8') + 1; + // Write the size of the string to buffer + buffer[index] = size & 0xff; + buffer[index + 1] = size >> 8 & 0xff; + buffer[index + 2] = size >> 16 & 0xff; + buffer[index + 3] = size >> 24 & 0xff; + // Update index + index = index + 4 + size - 1; + // Write zero + buffer[index++] = 0; + } + + return index; + }; + + var serializeBinary = function (buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_BINARY; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Extract the buffer + var data = value.value(true); + // Calculate size + var size = value.position; + // Add the deprecated 02 type 4 bytes of size to total + if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) size = size + 4; + // Write the size of the string to buffer + buffer[index++] = size & 0xff; + buffer[index++] = size >> 8 & 0xff; + buffer[index++] = size >> 16 & 0xff; + buffer[index++] = size >> 24 & 0xff; + // Write the subtype to the buffer + buffer[index++] = value.sub_type; + + // If we have binary type 2 the 4 first bytes are the size + if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) { + size = size - 4; + buffer[index++] = size & 0xff; + buffer[index++] = size >> 8 & 0xff; + buffer[index++] = size >> 16 & 0xff; + buffer[index++] = size >> 24 & 0xff; + } + + // Write the data to the object + data.copy(buffer, index, 0, value.position); + // Adjust the index + index = index + value.position; + return index; + }; + + var serializeSymbol = function (buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_SYMBOL; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the string + var size = buffer.write(value.value, index + 4, 'utf8') + 1; + // Write the size of the string to buffer + buffer[index] = size & 0xff; + buffer[index + 1] = size >> 8 & 0xff; + buffer[index + 2] = size >> 16 & 0xff; + buffer[index + 3] = size >> 24 & 0xff; + // Update index + index = index + 4 + size - 1; + // Write zero + buffer[index++] = 0x00; + return index; + }; + + var serializeDBRef = function (buffer, key, value, index, depth, serializeFunctions, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_OBJECT; + // Number of written bytes + var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); + + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + var startIndex = index; + var endIndex; + + // Serialize object + if (null != value.db) { + endIndex = serializeInto(buffer, { + $ref: value.namespace, + $id: value.oid, + $db: value.db + }, false, index, depth + 1, serializeFunctions); + } else { + endIndex = serializeInto(buffer, { + $ref: value.namespace, + $id: value.oid + }, false, index, depth + 1, serializeFunctions); + } + + // Calculate object size + var size = endIndex - startIndex; + // Write the size + buffer[startIndex++] = size & 0xff; + buffer[startIndex++] = size >> 8 & 0xff; + buffer[startIndex++] = size >> 16 & 0xff; + buffer[startIndex++] = size >> 24 & 0xff; + // Set index + return endIndex; + }; + + var serializeInto = function serializeInto(buffer, object, checkKeys, startingIndex, depth, serializeFunctions, ignoreUndefined, path) { + startingIndex = startingIndex || 0; + path = path || []; + + // Push the object to the path + path.push(object); + + // Start place to serialize into + var index = startingIndex + 4; + // var self = this; + + // Special case isArray + if (Array.isArray(object)) { + // Get object keys + for (var i = 0; i < object.length; i++) { + var key = '' + i; + var value = object[i]; + + // Is there an override value + if (value && value.toBSON) { + if (typeof value.toBSON !== 'function') throw new Error('toBSON is not a function'); + value = value.toBSON(); + } + + var type = typeof value; + if (type === 'string') { + index = serializeString(buffer, key, value, index, true); + } else if (type === 'number') { + index = serializeNumber(buffer, key, value, index, true); + } else if (type === 'boolean') { + index = serializeBoolean(buffer, key, value, index, true); + } else if (value instanceof Date || isDate(value)) { + index = serializeDate(buffer, key, value, index, true); + } else if (value === undefined) { + index = serializeNull(buffer, key, value, index, true); + } else if (value === null) { + index = serializeNull(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'ObjectID') { + index = serializeObjectId(buffer, key, value, index, true); + } else if (Buffer.isBuffer(value)) { + index = serializeBuffer(buffer, key, value, index, true); + } else if (value instanceof RegExp || isRegExp(value)) { + index = serializeRegExp(buffer, key, value, index, true); + } else if (type === 'object' && value['_bsontype'] == null) { + index = serializeObject(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, true, path); + } else if (type === 'object' && value['_bsontype'] === 'Decimal128') { + index = serializeDecimal128(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'Long' || value['_bsontype'] === 'Timestamp') { + index = serializeLong(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'Double') { + index = serializeDouble(buffer, key, value, index, true); + } else if (typeof value === 'function' && serializeFunctions) { + index = serializeFunction(buffer, key, value, index, checkKeys, depth, serializeFunctions, true); + } else if (value['_bsontype'] === 'Code') { + index = serializeCode(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, true); + } else if (value['_bsontype'] === 'Binary') { + index = serializeBinary(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'Symbol') { + index = serializeSymbol(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'DBRef') { + index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions, true); + } else if (value['_bsontype'] === 'BSONRegExp') { + index = serializeBSONRegExp(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'Int32') { + index = serializeInt32(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { + index = serializeMinMax(buffer, key, value, index, true); + } + } + } else if (object instanceof Map) { + var iterator = object.entries(); + var done = false; + + while (!done) { + // Unpack the next entry + var entry = iterator.next(); + done = entry.done; + // Are we done, then skip and terminate + if (done) continue; + + // Get the entry values + key = entry.value[0]; + value = entry.value[1]; + + // Check the type of the value + type = typeof value; + + // Check the key and throw error if it's illegal + if (key !== '$db' && key !== '$ref' && key !== '$id') { + if (key.match(regexp) != null) { + // The BSON spec doesn't allow keys with null bytes because keys are + // null-terminated. + throw Error('key ' + key + ' must not contain null bytes'); + } + + if (checkKeys) { + if ('$' === key[0]) { + throw Error('key ' + key + " must not start with '$'"); + } else if (~key.indexOf('.')) { + throw Error('key ' + key + " must not contain '.'"); + } + } + } + + if (type === 'string') { + index = serializeString(buffer, key, value, index); + } else if (type === 'number') { + index = serializeNumber(buffer, key, value, index); + } else if (type === 'boolean') { + index = serializeBoolean(buffer, key, value, index); + } else if (value instanceof Date || isDate(value)) { + index = serializeDate(buffer, key, value, index); + // } else if (value === undefined && ignoreUndefined === true) { + } else if (value === null || value === undefined && ignoreUndefined === false) { + index = serializeNull(buffer, key, value, index); + } else if (value['_bsontype'] === 'ObjectID') { + index = serializeObjectId(buffer, key, value, index); + } else if (Buffer.isBuffer(value)) { + index = serializeBuffer(buffer, key, value, index); + } else if (value instanceof RegExp || isRegExp(value)) { + index = serializeRegExp(buffer, key, value, index); + } else if (type === 'object' && value['_bsontype'] == null) { + index = serializeObject(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, false, path); + } else if (type === 'object' && value['_bsontype'] === 'Decimal128') { + index = serializeDecimal128(buffer, key, value, index); + } else if (value['_bsontype'] === 'Long' || value['_bsontype'] === 'Timestamp') { + index = serializeLong(buffer, key, value, index); + } else if (value['_bsontype'] === 'Double') { + index = serializeDouble(buffer, key, value, index); + } else if (value['_bsontype'] === 'Code') { + index = serializeCode(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined); + } else if (typeof value === 'function' && serializeFunctions) { + index = serializeFunction(buffer, key, value, index, checkKeys, depth, serializeFunctions); + } else if (value['_bsontype'] === 'Binary') { + index = serializeBinary(buffer, key, value, index); + } else if (value['_bsontype'] === 'Symbol') { + index = serializeSymbol(buffer, key, value, index); + } else if (value['_bsontype'] === 'DBRef') { + index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions); + } else if (value['_bsontype'] === 'BSONRegExp') { + index = serializeBSONRegExp(buffer, key, value, index); + } else if (value['_bsontype'] === 'Int32') { + index = serializeInt32(buffer, key, value, index); + } else if (value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { + index = serializeMinMax(buffer, key, value, index); + } + } + } else { + // Did we provide a custom serialization method + if (object.toBSON) { + if (typeof object.toBSON !== 'function') throw new Error('toBSON is not a function'); + object = object.toBSON(); + if (object != null && typeof object !== 'object') throw new Error('toBSON function did not return an object'); + } + + // Iterate over all the keys + for (key in object) { + value = object[key]; + // Is there an override value + if (value && value.toBSON) { + if (typeof value.toBSON !== 'function') throw new Error('toBSON is not a function'); + value = value.toBSON(); + } + + // Check the type of the value + type = typeof value; + + // Check the key and throw error if it's illegal + if (key !== '$db' && key !== '$ref' && key !== '$id') { + if (key.match(regexp) != null) { + // The BSON spec doesn't allow keys with null bytes because keys are + // null-terminated. + throw Error('key ' + key + ' must not contain null bytes'); + } + + if (checkKeys) { + if ('$' === key[0]) { + throw Error('key ' + key + " must not start with '$'"); + } else if (~key.indexOf('.')) { + throw Error('key ' + key + " must not contain '.'"); + } + } + } + + if (type === 'string') { + index = serializeString(buffer, key, value, index); + } else if (type === 'number') { + index = serializeNumber(buffer, key, value, index); + } else if (type === 'boolean') { + index = serializeBoolean(buffer, key, value, index); + } else if (value instanceof Date || isDate(value)) { + index = serializeDate(buffer, key, value, index); + } else if (value === undefined) { + if (ignoreUndefined === false) index = serializeNull(buffer, key, value, index); + } else if (value === null) { + index = serializeNull(buffer, key, value, index); + } else if (value['_bsontype'] === 'ObjectID') { + index = serializeObjectId(buffer, key, value, index); + } else if (Buffer.isBuffer(value)) { + index = serializeBuffer(buffer, key, value, index); + } else if (value instanceof RegExp || isRegExp(value)) { + index = serializeRegExp(buffer, key, value, index); + } else if (type === 'object' && value['_bsontype'] == null) { + index = serializeObject(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, false, path); + } else if (type === 'object' && value['_bsontype'] === 'Decimal128') { + index = serializeDecimal128(buffer, key, value, index); + } else if (value['_bsontype'] === 'Long' || value['_bsontype'] === 'Timestamp') { + index = serializeLong(buffer, key, value, index); + } else if (value['_bsontype'] === 'Double') { + index = serializeDouble(buffer, key, value, index); + } else if (value['_bsontype'] === 'Code') { + index = serializeCode(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined); + } else if (typeof value === 'function' && serializeFunctions) { + index = serializeFunction(buffer, key, value, index, checkKeys, depth, serializeFunctions); + } else if (value['_bsontype'] === 'Binary') { + index = serializeBinary(buffer, key, value, index); + } else if (value['_bsontype'] === 'Symbol') { + index = serializeSymbol(buffer, key, value, index); + } else if (value['_bsontype'] === 'DBRef') { + index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions); + } else if (value['_bsontype'] === 'BSONRegExp') { + index = serializeBSONRegExp(buffer, key, value, index); + } else if (value['_bsontype'] === 'Int32') { + index = serializeInt32(buffer, key, value, index); + } else if (value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { + index = serializeMinMax(buffer, key, value, index); + } + } + } + + // Remove the path + path.pop(); + + // Final padding byte for object + buffer[index++] = 0x00; + + // Final size + var size = index - startingIndex; + // Write the size of the object + buffer[startingIndex++] = size & 0xff; + buffer[startingIndex++] = size >> 8 & 0xff; + buffer[startingIndex++] = size >> 16 & 0xff; + buffer[startingIndex++] = size >> 24 & 0xff; + return index; + }; + + var BSON = {}; + + /** + * Contains the function cache if we have that enable to allow for avoiding the eval step on each deserialization, comparison is by md5 + * + * @ignore + * @api private + */ + // var functionCache = (BSON.functionCache = {}); + + /** + * Number BSON Type + * + * @classconstant BSON_DATA_NUMBER + **/ + BSON.BSON_DATA_NUMBER = 1; + /** + * String BSON Type + * + * @classconstant BSON_DATA_STRING + **/ + BSON.BSON_DATA_STRING = 2; + /** + * Object BSON Type + * + * @classconstant BSON_DATA_OBJECT + **/ + BSON.BSON_DATA_OBJECT = 3; + /** + * Array BSON Type + * + * @classconstant BSON_DATA_ARRAY + **/ + BSON.BSON_DATA_ARRAY = 4; + /** + * Binary BSON Type + * + * @classconstant BSON_DATA_BINARY + **/ + BSON.BSON_DATA_BINARY = 5; + /** + * ObjectID BSON Type, deprecated + * + * @classconstant BSON_DATA_UNDEFINED + **/ + BSON.BSON_DATA_UNDEFINED = 6; + /** + * ObjectID BSON Type + * + * @classconstant BSON_DATA_OID + **/ + BSON.BSON_DATA_OID = 7; + /** + * Boolean BSON Type + * + * @classconstant BSON_DATA_BOOLEAN + **/ + BSON.BSON_DATA_BOOLEAN = 8; + /** + * Date BSON Type + * + * @classconstant BSON_DATA_DATE + **/ + BSON.BSON_DATA_DATE = 9; + /** + * null BSON Type + * + * @classconstant BSON_DATA_NULL + **/ + BSON.BSON_DATA_NULL = 10; + /** + * RegExp BSON Type + * + * @classconstant BSON_DATA_REGEXP + **/ + BSON.BSON_DATA_REGEXP = 11; + /** + * Code BSON Type + * + * @classconstant BSON_DATA_CODE + **/ + BSON.BSON_DATA_CODE = 13; + /** + * Symbol BSON Type + * + * @classconstant BSON_DATA_SYMBOL + **/ + BSON.BSON_DATA_SYMBOL = 14; + /** + * Code with Scope BSON Type + * + * @classconstant BSON_DATA_CODE_W_SCOPE + **/ + BSON.BSON_DATA_CODE_W_SCOPE = 15; + /** + * 32 bit Integer BSON Type + * + * @classconstant BSON_DATA_INT + **/ + BSON.BSON_DATA_INT = 16; + /** + * Timestamp BSON Type + * + * @classconstant BSON_DATA_TIMESTAMP + **/ + BSON.BSON_DATA_TIMESTAMP = 17; + /** + * Long BSON Type + * + * @classconstant BSON_DATA_LONG + **/ + BSON.BSON_DATA_LONG = 18; + /** + * Long BSON Type + * + * @classconstant BSON_DATA_DECIMAL128 + **/ + BSON.BSON_DATA_DECIMAL128 = 19; + /** + * MinKey BSON Type + * + * @classconstant BSON_DATA_MIN_KEY + **/ + BSON.BSON_DATA_MIN_KEY = 0xff; + /** + * MaxKey BSON Type + * + * @classconstant BSON_DATA_MAX_KEY + **/ + BSON.BSON_DATA_MAX_KEY = 0x7f; + /** + * Binary Default Type + * + * @classconstant BSON_BINARY_SUBTYPE_DEFAULT + **/ + BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0; + /** + * Binary Function Type + * + * @classconstant BSON_BINARY_SUBTYPE_FUNCTION + **/ + BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1; + /** + * Binary Byte Array Type + * + * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY + **/ + BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2; + /** + * Binary UUID Type + * + * @classconstant BSON_BINARY_SUBTYPE_UUID + **/ + BSON.BSON_BINARY_SUBTYPE_UUID = 3; + /** + * Binary MD5 Type + * + * @classconstant BSON_BINARY_SUBTYPE_MD5 + **/ + BSON.BSON_BINARY_SUBTYPE_MD5 = 4; + /** + * Binary User Defined Type + * + * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED + **/ + BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128; + + // BSON MAX VALUES + BSON.BSON_INT32_MAX = 0x7fffffff; + BSON.BSON_INT32_MIN = -0x80000000; + + BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; + BSON.BSON_INT64_MIN = -Math.pow(2, 63); + + // JS MAX PRECISE VALUES + BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. + BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + + // Internal long versions + // var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double. + // var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double. + + module.exports = serializeInto; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(329).Buffer)) + +/***/ }), +/* 353 */ +/***/ (function(module, exports) { + + // Copyright (c) 2008, Fair Oaks Labs, Inc. + // All rights reserved. + // + // Redistribution and use in source and binary forms, with or without + // modification, are permitted provided that the following conditions are met: + // + // * Redistributions of source code must retain the above copyright notice, + // this list of conditions and the following disclaimer. + // + // * Redistributions in binary form must reproduce the above copyright notice, + // this list of conditions and the following disclaimer in the documentation + // and/or other materials provided with the distribution. + // + // * Neither the name of Fair Oaks Labs, Inc. nor the names of its contributors + // may be used to endorse or promote products derived from this software + // without specific prior written permission. + // + // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + // POSSIBILITY OF SUCH DAMAGE. + // + // + // Modifications to writeIEEE754 to support negative zeroes made by Brian White + + var readIEEE754 = function (buffer, offset, endian, mLen, nBytes) { + var e, + m, + bBE = endian === 'big', + eLen = nBytes * 8 - mLen - 1, + eMax = (1 << eLen) - 1, + eBias = eMax >> 1, + nBits = -7, + i = bBE ? 0 : nBytes - 1, + d = bBE ? 1 : -1, + s = buffer[offset + i]; + + i += d; + + e = s & (1 << -nBits) - 1; + s >>= -nBits; + nBits += eLen; + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8); + + m = e & (1 << -nBits) - 1; + e >>= -nBits; + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8); + + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : (s ? -1 : 1) * Infinity; + } else { + m = m + Math.pow(2, mLen); + e = e - eBias; + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen); + }; + + var writeIEEE754 = function (buffer, value, offset, endian, mLen, nBytes) { + var e, + m, + c, + bBE = endian === 'big', + eLen = nBytes * 8 - mLen - 1, + eMax = (1 << eLen) - 1, + eBias = eMax >> 1, + rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, + i = bBE ? nBytes - 1 : 0, + d = bBE ? -1 : 1, + s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; + + value = Math.abs(value); + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0; + e = eMax; + } else { + e = Math.floor(Math.log(value) / Math.LN2); + if (value * (c = Math.pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen); + e = e + eBias; + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e = 0; + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8); + + e = e << mLen | m; + eLen += mLen; + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8); + + buffer[offset + i - d] |= s * 128; + }; + + exports.readIEEE754 = readIEEE754; + exports.writeIEEE754 = writeIEEE754; + +/***/ }), +/* 354 */ +/***/ (function(module, exports) { + + 'use strict'; + + /** + * Normalizes our expected stringified form of a function across versions of node + * @param {Function} fn The function to stringify + */ + + function normalizedFunctionString(fn) { + return fn.toString().replace(/function *\(/, 'function ('); + } + + module.exports = { + normalizedFunctionString: normalizedFunctionString + }; + +/***/ }), +/* 355 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(Buffer) {'use strict'; + + var Long = __webpack_require__(334).Long, + Double = __webpack_require__(335).Double, + Timestamp = __webpack_require__(336).Timestamp, + ObjectID = __webpack_require__(337).ObjectID, + Symbol = __webpack_require__(343).Symbol, + BSONRegExp = __webpack_require__(342).BSONRegExp, + Code = __webpack_require__(345).Code, + Decimal128 = __webpack_require__(346), + MinKey = __webpack_require__(347).MinKey, + MaxKey = __webpack_require__(348).MaxKey, + DBRef = __webpack_require__(349).DBRef, + Binary = __webpack_require__(350).Binary; + + var normalizedFunctionString = __webpack_require__(354).normalizedFunctionString; + + // To ensure that 0.4 of node works correctly + var isDate = function isDate(d) { + return typeof d === 'object' && Object.prototype.toString.call(d) === '[object Date]'; + }; + + var calculateObjectSize = function calculateObjectSize(object, serializeFunctions, ignoreUndefined) { + var totalLength = 4 + 1; + + if (Array.isArray(object)) { + for (var i = 0; i < object.length; i++) { + totalLength += calculateElement(i.toString(), object[i], serializeFunctions, true, ignoreUndefined); + } + } else { + // If we have toBSON defined, override the current object + if (object.toBSON) { + object = object.toBSON(); + } + + // Calculate size + for (var key in object) { + totalLength += calculateElement(key, object[key], serializeFunctions, false, ignoreUndefined); + } + } + + return totalLength; + }; + + /** + * @ignore + * @api private + */ + function calculateElement(name, value, serializeFunctions, isArray, ignoreUndefined) { + // If we have toBSON defined, override the current object + if (value && value.toBSON) { + value = value.toBSON(); + } + + switch (typeof value) { + case 'string': + return 1 + Buffer.byteLength(name, 'utf8') + 1 + 4 + Buffer.byteLength(value, 'utf8') + 1; + case 'number': + if (Math.floor(value) === value && value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { + if (value >= BSON.BSON_INT32_MIN && value <= BSON.BSON_INT32_MAX) { + // 32 bit + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (4 + 1); + } else { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); + } + } else { + // 64 bit + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); + } + case 'undefined': + if (isArray || !ignoreUndefined) return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1; + return 0; + case 'boolean': + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (1 + 1); + case 'object': + if (value == null || value instanceof MinKey || value instanceof MaxKey || value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1; + } else if (value instanceof ObjectID || value['_bsontype'] === 'ObjectID') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (12 + 1); + } else if (value instanceof Date || isDate(value)) { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); + } else if (typeof Buffer !== 'undefined' && Buffer.isBuffer(value)) { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (1 + 4 + 1) + value.length; + } else if (value instanceof Long || value instanceof Double || value instanceof Timestamp || value['_bsontype'] === 'Long' || value['_bsontype'] === 'Double' || value['_bsontype'] === 'Timestamp') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); + } else if (value instanceof Decimal128 || value['_bsontype'] === 'Decimal128') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (16 + 1); + } else if (value instanceof Code || value['_bsontype'] === 'Code') { + // Calculate size depending on the availability of a scope + if (value.scope != null && Object.keys(value.scope).length > 0) { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + 4 + 4 + Buffer.byteLength(value.code.toString(), 'utf8') + 1 + calculateObjectSize(value.scope, serializeFunctions, ignoreUndefined); + } else { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + 4 + Buffer.byteLength(value.code.toString(), 'utf8') + 1; + } + } else if (value instanceof Binary || value['_bsontype'] === 'Binary') { + // Check what kind of subtype we have + if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (value.position + 1 + 4 + 1 + 4); + } else { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (value.position + 1 + 4 + 1); + } + } else if (value instanceof Symbol || value['_bsontype'] === 'Symbol') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + Buffer.byteLength(value.value, 'utf8') + 4 + 1 + 1; + } else if (value instanceof DBRef || value['_bsontype'] === 'DBRef') { + // Set up correct object for serialization + var ordered_values = { + $ref: value.namespace, + $id: value.oid + }; + + // Add db reference if it exists + if (null != value.db) { + ordered_values['$db'] = value.db; + } + + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + calculateObjectSize(ordered_values, serializeFunctions, ignoreUndefined); + } else if (value instanceof RegExp || Object.prototype.toString.call(value) === '[object RegExp]') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + Buffer.byteLength(value.source, 'utf8') + 1 + (value.global ? 1 : 0) + (value.ignoreCase ? 1 : 0) + (value.multiline ? 1 : 0) + 1; + } else if (value instanceof BSONRegExp || value['_bsontype'] === 'BSONRegExp') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + Buffer.byteLength(value.pattern, 'utf8') + 1 + Buffer.byteLength(value.options, 'utf8') + 1; + } else { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + calculateObjectSize(value, serializeFunctions, ignoreUndefined) + 1; + } + case 'function': + // WTF for 0.4.X where typeof /someregexp/ === 'function' + if (value instanceof RegExp || Object.prototype.toString.call(value) === '[object RegExp]' || String.call(value) === '[object RegExp]') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + Buffer.byteLength(value.source, 'utf8') + 1 + (value.global ? 1 : 0) + (value.ignoreCase ? 1 : 0) + (value.multiline ? 1 : 0) + 1; + } else { + if (serializeFunctions && value.scope != null && Object.keys(value.scope).length > 0) { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + 4 + 4 + Buffer.byteLength(normalizedFunctionString(value), 'utf8') + 1 + calculateObjectSize(value.scope, serializeFunctions, ignoreUndefined); + } else if (serializeFunctions) { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + 4 + Buffer.byteLength(normalizedFunctionString(value), 'utf8') + 1; + } + } + } + + return 0; + } + + var BSON = {}; + + // BSON MAX VALUES + BSON.BSON_INT32_MAX = 0x7fffffff; + BSON.BSON_INT32_MIN = -0x80000000; + + // JS MAX PRECISE VALUES + BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. + BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + + module.exports = calculateObjectSize; + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(329).Buffer)) + +/***/ }) +/******/ ]) +}); +; \ No newline at end of file diff --git a/node_modules/bson/browser_build/package.json b/node_modules/bson/browser_build/package.json new file mode 100644 index 0000000..980db7f --- /dev/null +++ b/node_modules/bson/browser_build/package.json @@ -0,0 +1,8 @@ +{ "name" : "bson" +, "description" : "A bson parser for node.js and the browser" +, "main": "../" +, "directories" : { "lib" : "../lib/bson" } +, "engines" : { "node" : ">=0.6.0" } +, "licenses" : [ { "type" : "Apache License, Version 2.0" + , "url" : "http://www.apache.org/licenses/LICENSE-2.0" } ] +} diff --git a/node_modules/bson/index.js b/node_modules/bson/index.js new file mode 100644 index 0000000..6502552 --- /dev/null +++ b/node_modules/bson/index.js @@ -0,0 +1,46 @@ +var BSON = require('./lib/bson/bson'), + Binary = require('./lib/bson/binary'), + Code = require('./lib/bson/code'), + DBRef = require('./lib/bson/db_ref'), + Decimal128 = require('./lib/bson/decimal128'), + Double = require('./lib/bson/double'), + Int32 = require('./lib/bson/int_32'), + Long = require('./lib/bson/long'), + Map = require('./lib/bson/map'), + MaxKey = require('./lib/bson/max_key'), + MinKey = require('./lib/bson/min_key'), + ObjectId = require('./lib/bson/objectid'), + BSONRegExp = require('./lib/bson/regexp'), + Symbol = require('./lib/bson/symbol'), + Timestamp = require('./lib/bson/timestamp'); + +// BSON MAX VALUES +BSON.BSON_INT32_MAX = 0x7fffffff; +BSON.BSON_INT32_MIN = -0x80000000; + +BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; +BSON.BSON_INT64_MIN = -Math.pow(2, 63); + +// JS MAX PRECISE VALUES +BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. +BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + +// Add BSON types to function creation +BSON.Binary = Binary; +BSON.Code = Code; +BSON.DBRef = DBRef; +BSON.Decimal128 = Decimal128; +BSON.Double = Double; +BSON.Int32 = Int32; +BSON.Long = Long; +BSON.Map = Map; +BSON.MaxKey = MaxKey; +BSON.MinKey = MinKey; +BSON.ObjectId = ObjectId; +BSON.ObjectID = ObjectId; +BSON.BSONRegExp = BSONRegExp; +BSON.Symbol = Symbol; +BSON.Timestamp = Timestamp; + +// Return the BSON +module.exports = BSON; diff --git a/node_modules/bson/lib/bson/binary.js b/node_modules/bson/lib/bson/binary.js new file mode 100644 index 0000000..f3f695d --- /dev/null +++ b/node_modules/bson/lib/bson/binary.js @@ -0,0 +1,382 @@ +/** + * Module dependencies. + * @ignore + */ + +// Test if we're in Node via presence of "global" not absence of "window" +// to support hybrid environments like Electron +if (typeof global !== 'undefined') { + var Buffer = require('buffer').Buffer; // TODO just use global Buffer +} + +/** + * A class representation of the BSON Binary type. + * + * Sub types + * - **BSON.BSON_BINARY_SUBTYPE_DEFAULT**, default BSON type. + * - **BSON.BSON_BINARY_SUBTYPE_FUNCTION**, BSON function type. + * - **BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY**, BSON byte array type. + * - **BSON.BSON_BINARY_SUBTYPE_UUID**, BSON uuid type. + * - **BSON.BSON_BINARY_SUBTYPE_MD5**, BSON md5 type. + * - **BSON.BSON_BINARY_SUBTYPE_USER_DEFINED**, BSON user defined type. + * + * @class + * @param {Buffer} buffer a buffer object containing the binary data. + * @param {Number} [subType] the option binary type. + * @return {Binary} + */ +function Binary(buffer, subType) { + if (!(this instanceof Binary)) return new Binary(buffer, subType); + + if ( + buffer != null && + !(typeof buffer === 'string') && + !Buffer.isBuffer(buffer) && + !(buffer instanceof Uint8Array) && + !Array.isArray(buffer) + ) { + throw new Error('only String, Buffer, Uint8Array or Array accepted'); + } + + this._bsontype = 'Binary'; + + if (buffer instanceof Number) { + this.sub_type = buffer; + this.position = 0; + } else { + this.sub_type = subType == null ? BSON_BINARY_SUBTYPE_DEFAULT : subType; + this.position = 0; + } + + if (buffer != null && !(buffer instanceof Number)) { + // Only accept Buffer, Uint8Array or Arrays + if (typeof buffer === 'string') { + // Different ways of writing the length of the string for the different types + if (typeof Buffer !== 'undefined') { + this.buffer = new Buffer(buffer); + } else if ( + typeof Uint8Array !== 'undefined' || + Object.prototype.toString.call(buffer) === '[object Array]' + ) { + this.buffer = writeStringToArray(buffer); + } else { + throw new Error('only String, Buffer, Uint8Array or Array accepted'); + } + } else { + this.buffer = buffer; + } + this.position = buffer.length; + } else { + if (typeof Buffer !== 'undefined') { + this.buffer = new Buffer(Binary.BUFFER_SIZE); + } else if (typeof Uint8Array !== 'undefined') { + this.buffer = new Uint8Array(new ArrayBuffer(Binary.BUFFER_SIZE)); + } else { + this.buffer = new Array(Binary.BUFFER_SIZE); + } + // Set position to start of buffer + this.position = 0; + } +} + +/** + * Updates this binary with byte_value. + * + * @method + * @param {string} byte_value a single byte we wish to write. + */ +Binary.prototype.put = function put(byte_value) { + // If it's a string and a has more than one character throw an error + if (byte_value['length'] != null && typeof byte_value !== 'number' && byte_value.length !== 1) + throw new Error('only accepts single character String, Uint8Array or Array'); + if ((typeof byte_value !== 'number' && byte_value < 0) || byte_value > 255) + throw new Error('only accepts number in a valid unsigned byte range 0-255'); + + // Decode the byte value once + var decoded_byte = null; + if (typeof byte_value === 'string') { + decoded_byte = byte_value.charCodeAt(0); + } else if (byte_value['length'] != null) { + decoded_byte = byte_value[0]; + } else { + decoded_byte = byte_value; + } + + if (this.buffer.length > this.position) { + this.buffer[this.position++] = decoded_byte; + } else { + if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) { + // Create additional overflow buffer + var buffer = new Buffer(Binary.BUFFER_SIZE + this.buffer.length); + // Combine the two buffers together + this.buffer.copy(buffer, 0, 0, this.buffer.length); + this.buffer = buffer; + this.buffer[this.position++] = decoded_byte; + } else { + buffer = null; + // Create a new buffer (typed or normal array) + if (Object.prototype.toString.call(this.buffer) === '[object Uint8Array]') { + buffer = new Uint8Array(new ArrayBuffer(Binary.BUFFER_SIZE + this.buffer.length)); + } else { + buffer = new Array(Binary.BUFFER_SIZE + this.buffer.length); + } + + // We need to copy all the content to the new array + for (var i = 0; i < this.buffer.length; i++) { + buffer[i] = this.buffer[i]; + } + + // Reassign the buffer + this.buffer = buffer; + // Write the byte + this.buffer[this.position++] = decoded_byte; + } + } +}; + +/** + * Writes a buffer or string to the binary. + * + * @method + * @param {(Buffer|string)} string a string or buffer to be written to the Binary BSON object. + * @param {number} offset specify the binary of where to write the content. + * @return {null} + */ +Binary.prototype.write = function write(string, offset) { + offset = typeof offset === 'number' ? offset : this.position; + + // If the buffer is to small let's extend the buffer + if (this.buffer.length < offset + string.length) { + var buffer = null; + // If we are in node.js + if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) { + buffer = new Buffer(this.buffer.length + string.length); + this.buffer.copy(buffer, 0, 0, this.buffer.length); + } else if (Object.prototype.toString.call(this.buffer) === '[object Uint8Array]') { + // Create a new buffer + buffer = new Uint8Array(new ArrayBuffer(this.buffer.length + string.length)); + // Copy the content + for (var i = 0; i < this.position; i++) { + buffer[i] = this.buffer[i]; + } + } + + // Assign the new buffer + this.buffer = buffer; + } + + if (typeof Buffer !== 'undefined' && Buffer.isBuffer(string) && Buffer.isBuffer(this.buffer)) { + string.copy(this.buffer, offset, 0, string.length); + this.position = offset + string.length > this.position ? offset + string.length : this.position; + // offset = string.length + } else if ( + typeof Buffer !== 'undefined' && + typeof string === 'string' && + Buffer.isBuffer(this.buffer) + ) { + this.buffer.write(string, offset, 'binary'); + this.position = offset + string.length > this.position ? offset + string.length : this.position; + // offset = string.length; + } else if ( + Object.prototype.toString.call(string) === '[object Uint8Array]' || + (Object.prototype.toString.call(string) === '[object Array]' && typeof string !== 'string') + ) { + for (i = 0; i < string.length; i++) { + this.buffer[offset++] = string[i]; + } + + this.position = offset > this.position ? offset : this.position; + } else if (typeof string === 'string') { + for (i = 0; i < string.length; i++) { + this.buffer[offset++] = string.charCodeAt(i); + } + + this.position = offset > this.position ? offset : this.position; + } +}; + +/** + * Reads **length** bytes starting at **position**. + * + * @method + * @param {number} position read from the given position in the Binary. + * @param {number} length the number of bytes to read. + * @return {Buffer} + */ +Binary.prototype.read = function read(position, length) { + length = length && length > 0 ? length : this.position; + + // Let's return the data based on the type we have + if (this.buffer['slice']) { + return this.buffer.slice(position, position + length); + } else { + // Create a buffer to keep the result + var buffer = + typeof Uint8Array !== 'undefined' + ? new Uint8Array(new ArrayBuffer(length)) + : new Array(length); + for (var i = 0; i < length; i++) { + buffer[i] = this.buffer[position++]; + } + } + // Return the buffer + return buffer; +}; + +/** + * Returns the value of this binary as a string. + * + * @method + * @return {string} + */ +Binary.prototype.value = function value(asRaw) { + asRaw = asRaw == null ? false : asRaw; + + // Optimize to serialize for the situation where the data == size of buffer + if ( + asRaw && + typeof Buffer !== 'undefined' && + Buffer.isBuffer(this.buffer) && + this.buffer.length === this.position + ) + return this.buffer; + + // If it's a node.js buffer object + if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) { + return asRaw + ? this.buffer.slice(0, this.position) + : this.buffer.toString('binary', 0, this.position); + } else { + if (asRaw) { + // we support the slice command use it + if (this.buffer['slice'] != null) { + return this.buffer.slice(0, this.position); + } else { + // Create a new buffer to copy content to + var newBuffer = + Object.prototype.toString.call(this.buffer) === '[object Uint8Array]' + ? new Uint8Array(new ArrayBuffer(this.position)) + : new Array(this.position); + // Copy content + for (var i = 0; i < this.position; i++) { + newBuffer[i] = this.buffer[i]; + } + // Return the buffer + return newBuffer; + } + } else { + return convertArraytoUtf8BinaryString(this.buffer, 0, this.position); + } + } +}; + +/** + * Length. + * + * @method + * @return {number} the length of the binary. + */ +Binary.prototype.length = function length() { + return this.position; +}; + +/** + * @ignore + */ +Binary.prototype.toJSON = function() { + return this.buffer != null ? this.buffer.toString('base64') : ''; +}; + +/** + * @ignore + */ +Binary.prototype.toString = function(format) { + return this.buffer != null ? this.buffer.slice(0, this.position).toString(format) : ''; +}; + +/** + * Binary default subtype + * @ignore + */ +var BSON_BINARY_SUBTYPE_DEFAULT = 0; + +/** + * @ignore + */ +var writeStringToArray = function(data) { + // Create a buffer + var buffer = + typeof Uint8Array !== 'undefined' + ? new Uint8Array(new ArrayBuffer(data.length)) + : new Array(data.length); + // Write the content to the buffer + for (var i = 0; i < data.length; i++) { + buffer[i] = data.charCodeAt(i); + } + // Write the string to the buffer + return buffer; +}; + +/** + * Convert Array ot Uint8Array to Binary String + * + * @ignore + */ +var convertArraytoUtf8BinaryString = function(byteArray, startIndex, endIndex) { + var result = ''; + for (var i = startIndex; i < endIndex; i++) { + result = result + String.fromCharCode(byteArray[i]); + } + return result; +}; + +Binary.BUFFER_SIZE = 256; + +/** + * Default BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ +Binary.SUBTYPE_DEFAULT = 0; +/** + * Function BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ +Binary.SUBTYPE_FUNCTION = 1; +/** + * Byte Array BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ +Binary.SUBTYPE_BYTE_ARRAY = 2; +/** + * OLD UUID BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ +Binary.SUBTYPE_UUID_OLD = 3; +/** + * UUID BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ +Binary.SUBTYPE_UUID = 4; +/** + * MD5 BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ +Binary.SUBTYPE_MD5 = 5; +/** + * User BSON type + * + * @classconstant SUBTYPE_DEFAULT + **/ +Binary.SUBTYPE_USER_DEFINED = 128; + +/** + * Expose. + */ +module.exports = Binary; +module.exports.Binary = Binary; diff --git a/node_modules/bson/lib/bson/bson.js b/node_modules/bson/lib/bson/bson.js new file mode 100644 index 0000000..956f152 --- /dev/null +++ b/node_modules/bson/lib/bson/bson.js @@ -0,0 +1,385 @@ +'use strict'; + +var Map = require('./map'), + Long = require('./long'), + Double = require('./double'), + Timestamp = require('./timestamp'), + ObjectID = require('./objectid'), + BSONRegExp = require('./regexp'), + Symbol = require('./symbol'), + Int32 = require('./int_32'), + Code = require('./code'), + Decimal128 = require('./decimal128'), + MinKey = require('./min_key'), + MaxKey = require('./max_key'), + DBRef = require('./db_ref'), + Binary = require('./binary'); + +// Parts of the parser +var deserialize = require('./parser/deserializer'), + serializer = require('./parser/serializer'), + calculateObjectSize = require('./parser/calculate_size'); + +/** + * @ignore + * @api private + */ +// Default Max Size +var MAXSIZE = 1024 * 1024 * 17; + +// Current Internal Temporary Serialization Buffer +var buffer = new Buffer(MAXSIZE); + +var BSON = function() {}; + +/** + * Serialize a Javascript object. + * + * @param {Object} object the Javascript object to serialize. + * @param {Boolean} [options.checkKeys] the serializer will check if keys are valid. + * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**. + * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**. + * @param {Number} [options.minInternalBufferSize=1024*1024*17] minimum size of the internal temporary serialization buffer **(default:1024*1024*17)**. + * @return {Buffer} returns the Buffer object containing the serialized object. + * @api public + */ +BSON.prototype.serialize = function serialize(object, options) { + options = options || {}; + // Unpack the options + var checkKeys = typeof options.checkKeys === 'boolean' ? options.checkKeys : false; + var serializeFunctions = + typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false; + var ignoreUndefined = + typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true; + var minInternalBufferSize = + typeof options.minInternalBufferSize === 'number' ? options.minInternalBufferSize : MAXSIZE; + + // Resize the internal serialization buffer if needed + if (buffer.length < minInternalBufferSize) { + buffer = new Buffer(minInternalBufferSize); + } + + // Attempt to serialize + var serializationIndex = serializer( + buffer, + object, + checkKeys, + 0, + 0, + serializeFunctions, + ignoreUndefined, + [] + ); + // Create the final buffer + var finishedBuffer = new Buffer(serializationIndex); + // Copy into the finished buffer + buffer.copy(finishedBuffer, 0, 0, finishedBuffer.length); + // Return the buffer + return finishedBuffer; +}; + +/** + * Serialize a Javascript object using a predefined Buffer and index into the buffer, useful when pre-allocating the space for serialization. + * + * @param {Object} object the Javascript object to serialize. + * @param {Buffer} buffer the Buffer you pre-allocated to store the serialized BSON object. + * @param {Boolean} [options.checkKeys] the serializer will check if keys are valid. + * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**. + * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**. + * @param {Number} [options.index] the index in the buffer where we wish to start serializing into. + * @return {Number} returns the index pointing to the last written byte in the buffer. + * @api public + */ +BSON.prototype.serializeWithBufferAndIndex = function(object, finalBuffer, options) { + options = options || {}; + // Unpack the options + var checkKeys = typeof options.checkKeys === 'boolean' ? options.checkKeys : false; + var serializeFunctions = + typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false; + var ignoreUndefined = + typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true; + var startIndex = typeof options.index === 'number' ? options.index : 0; + + // Attempt to serialize + var serializationIndex = serializer( + finalBuffer, + object, + checkKeys, + startIndex || 0, + 0, + serializeFunctions, + ignoreUndefined + ); + + // Return the index + return serializationIndex - 1; +}; + +/** + * Deserialize data as BSON. + * + * @param {Buffer} buffer the buffer containing the serialized set of BSON documents. + * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized. + * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse. + * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function. + * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits + * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a node.js Buffer instance. + * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types. + * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer. + * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances. + * @return {Object} returns the deserialized Javascript Object. + * @api public + */ +BSON.prototype.deserialize = function(buffer, options) { + return deserialize(buffer, options); +}; + +/** + * Calculate the bson size for a passed in Javascript object. + * + * @param {Object} object the Javascript object to calculate the BSON byte size for. + * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**. + * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**. + * @return {Number} returns the number of bytes the BSON object will take up. + * @api public + */ +BSON.prototype.calculateObjectSize = function(object, options) { + options = options || {}; + + var serializeFunctions = + typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false; + var ignoreUndefined = + typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true; + + return calculateObjectSize(object, serializeFunctions, ignoreUndefined); +}; + +/** + * Deserialize stream data as BSON documents. + * + * @param {Buffer} data the buffer containing the serialized set of BSON documents. + * @param {Number} startIndex the start index in the data Buffer where the deserialization is to start. + * @param {Number} numberOfDocuments number of documents to deserialize. + * @param {Array} documents an array where to store the deserialized documents. + * @param {Number} docStartIndex the index in the documents array from where to start inserting documents. + * @param {Object} [options] additional options used for the deserialization. + * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized. + * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse. + * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function. + * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits + * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a node.js Buffer instance. + * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types. + * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer. + * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances. + * @return {Number} returns the next index in the buffer after deserialization **x** numbers of documents. + * @api public + */ +BSON.prototype.deserializeStream = function( + data, + startIndex, + numberOfDocuments, + documents, + docStartIndex, + options +) { + options = options != null ? options : {}; + var index = startIndex; + // Loop over all documents + for (var i = 0; i < numberOfDocuments; i++) { + // Find size of the document + var size = + data[index] | (data[index + 1] << 8) | (data[index + 2] << 16) | (data[index + 3] << 24); + // Update options with index + options['index'] = index; + // Parse the document at this point + documents[docStartIndex + i] = this.deserialize(data, options); + // Adjust index by the document size + index = index + size; + } + + // Return object containing end index of parsing and list of documents + return index; +}; + +/** + * @ignore + * @api private + */ +// BSON MAX VALUES +BSON.BSON_INT32_MAX = 0x7fffffff; +BSON.BSON_INT32_MIN = -0x80000000; + +BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; +BSON.BSON_INT64_MIN = -Math.pow(2, 63); + +// JS MAX PRECISE VALUES +BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. +BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + +// Internal long versions +// var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double. +// var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double. + +/** + * Number BSON Type + * + * @classconstant BSON_DATA_NUMBER + **/ +BSON.BSON_DATA_NUMBER = 1; +/** + * String BSON Type + * + * @classconstant BSON_DATA_STRING + **/ +BSON.BSON_DATA_STRING = 2; +/** + * Object BSON Type + * + * @classconstant BSON_DATA_OBJECT + **/ +BSON.BSON_DATA_OBJECT = 3; +/** + * Array BSON Type + * + * @classconstant BSON_DATA_ARRAY + **/ +BSON.BSON_DATA_ARRAY = 4; +/** + * Binary BSON Type + * + * @classconstant BSON_DATA_BINARY + **/ +BSON.BSON_DATA_BINARY = 5; +/** + * ObjectID BSON Type + * + * @classconstant BSON_DATA_OID + **/ +BSON.BSON_DATA_OID = 7; +/** + * Boolean BSON Type + * + * @classconstant BSON_DATA_BOOLEAN + **/ +BSON.BSON_DATA_BOOLEAN = 8; +/** + * Date BSON Type + * + * @classconstant BSON_DATA_DATE + **/ +BSON.BSON_DATA_DATE = 9; +/** + * null BSON Type + * + * @classconstant BSON_DATA_NULL + **/ +BSON.BSON_DATA_NULL = 10; +/** + * RegExp BSON Type + * + * @classconstant BSON_DATA_REGEXP + **/ +BSON.BSON_DATA_REGEXP = 11; +/** + * Code BSON Type + * + * @classconstant BSON_DATA_CODE + **/ +BSON.BSON_DATA_CODE = 13; +/** + * Symbol BSON Type + * + * @classconstant BSON_DATA_SYMBOL + **/ +BSON.BSON_DATA_SYMBOL = 14; +/** + * Code with Scope BSON Type + * + * @classconstant BSON_DATA_CODE_W_SCOPE + **/ +BSON.BSON_DATA_CODE_W_SCOPE = 15; +/** + * 32 bit Integer BSON Type + * + * @classconstant BSON_DATA_INT + **/ +BSON.BSON_DATA_INT = 16; +/** + * Timestamp BSON Type + * + * @classconstant BSON_DATA_TIMESTAMP + **/ +BSON.BSON_DATA_TIMESTAMP = 17; +/** + * Long BSON Type + * + * @classconstant BSON_DATA_LONG + **/ +BSON.BSON_DATA_LONG = 18; +/** + * MinKey BSON Type + * + * @classconstant BSON_DATA_MIN_KEY + **/ +BSON.BSON_DATA_MIN_KEY = 0xff; +/** + * MaxKey BSON Type + * + * @classconstant BSON_DATA_MAX_KEY + **/ +BSON.BSON_DATA_MAX_KEY = 0x7f; + +/** + * Binary Default Type + * + * @classconstant BSON_BINARY_SUBTYPE_DEFAULT + **/ +BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0; +/** + * Binary Function Type + * + * @classconstant BSON_BINARY_SUBTYPE_FUNCTION + **/ +BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1; +/** + * Binary Byte Array Type + * + * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY + **/ +BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2; +/** + * Binary UUID Type + * + * @classconstant BSON_BINARY_SUBTYPE_UUID + **/ +BSON.BSON_BINARY_SUBTYPE_UUID = 3; +/** + * Binary MD5 Type + * + * @classconstant BSON_BINARY_SUBTYPE_MD5 + **/ +BSON.BSON_BINARY_SUBTYPE_MD5 = 4; +/** + * Binary User Defined Type + * + * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED + **/ +BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128; + +// Return BSON +module.exports = BSON; +module.exports.Code = Code; +module.exports.Map = Map; +module.exports.Symbol = Symbol; +module.exports.BSON = BSON; +module.exports.DBRef = DBRef; +module.exports.Binary = Binary; +module.exports.ObjectID = ObjectID; +module.exports.Long = Long; +module.exports.Timestamp = Timestamp; +module.exports.Double = Double; +module.exports.Int32 = Int32; +module.exports.MinKey = MinKey; +module.exports.MaxKey = MaxKey; +module.exports.BSONRegExp = BSONRegExp; +module.exports.Decimal128 = Decimal128; diff --git a/node_modules/bson/lib/bson/code.js b/node_modules/bson/lib/bson/code.js new file mode 100644 index 0000000..c2984cd --- /dev/null +++ b/node_modules/bson/lib/bson/code.js @@ -0,0 +1,24 @@ +/** + * A class representation of the BSON Code type. + * + * @class + * @param {(string|function)} code a string or function. + * @param {Object} [scope] an optional scope for the function. + * @return {Code} + */ +var Code = function Code(code, scope) { + if (!(this instanceof Code)) return new Code(code, scope); + this._bsontype = 'Code'; + this.code = code; + this.scope = scope; +}; + +/** + * @ignore + */ +Code.prototype.toJSON = function() { + return { scope: this.scope, code: this.code }; +}; + +module.exports = Code; +module.exports.Code = Code; diff --git a/node_modules/bson/lib/bson/db_ref.js b/node_modules/bson/lib/bson/db_ref.js new file mode 100644 index 0000000..f95795b --- /dev/null +++ b/node_modules/bson/lib/bson/db_ref.js @@ -0,0 +1,32 @@ +/** + * A class representation of the BSON DBRef type. + * + * @class + * @param {string} namespace the collection name. + * @param {ObjectID} oid the reference ObjectID. + * @param {string} [db] optional db name, if omitted the reference is local to the current db. + * @return {DBRef} + */ +function DBRef(namespace, oid, db) { + if (!(this instanceof DBRef)) return new DBRef(namespace, oid, db); + + this._bsontype = 'DBRef'; + this.namespace = namespace; + this.oid = oid; + this.db = db; +} + +/** + * @ignore + * @api private + */ +DBRef.prototype.toJSON = function() { + return { + $ref: this.namespace, + $id: this.oid, + $db: this.db == null ? '' : this.db + }; +}; + +module.exports = DBRef; +module.exports.DBRef = DBRef; diff --git a/node_modules/bson/lib/bson/decimal128.js b/node_modules/bson/lib/bson/decimal128.js new file mode 100644 index 0000000..1dc2f00 --- /dev/null +++ b/node_modules/bson/lib/bson/decimal128.js @@ -0,0 +1,818 @@ +'use strict'; + +var Long = require('./long'); + +var PARSE_STRING_REGEXP = /^(\+|-)?(\d+|(\d*\.\d*))?(E|e)?([-+])?(\d+)?$/; +var PARSE_INF_REGEXP = /^(\+|-)?(Infinity|inf)$/i; +var PARSE_NAN_REGEXP = /^(\+|-)?NaN$/i; + +var EXPONENT_MAX = 6111; +var EXPONENT_MIN = -6176; +var EXPONENT_BIAS = 6176; +var MAX_DIGITS = 34; + +// Nan value bits as 32 bit values (due to lack of longs) +var NAN_BUFFER = [ + 0x7c, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00 +].reverse(); +// Infinity value bits 32 bit values (due to lack of longs) +var INF_NEGATIVE_BUFFER = [ + 0xf8, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00 +].reverse(); +var INF_POSITIVE_BUFFER = [ + 0x78, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00 +].reverse(); + +var EXPONENT_REGEX = /^([-+])?(\d+)?$/; + +// Detect if the value is a digit +var isDigit = function(value) { + return !isNaN(parseInt(value, 10)); +}; + +// Divide two uint128 values +var divideu128 = function(value) { + var DIVISOR = Long.fromNumber(1000 * 1000 * 1000); + var _rem = Long.fromNumber(0); + var i = 0; + + if (!value.parts[0] && !value.parts[1] && !value.parts[2] && !value.parts[3]) { + return { quotient: value, rem: _rem }; + } + + for (i = 0; i <= 3; i++) { + // Adjust remainder to match value of next dividend + _rem = _rem.shiftLeft(32); + // Add the divided to _rem + _rem = _rem.add(new Long(value.parts[i], 0)); + value.parts[i] = _rem.div(DIVISOR).low_; + _rem = _rem.modulo(DIVISOR); + } + + return { quotient: value, rem: _rem }; +}; + +// Multiply two Long values and return the 128 bit value +var multiply64x2 = function(left, right) { + if (!left && !right) { + return { high: Long.fromNumber(0), low: Long.fromNumber(0) }; + } + + var leftHigh = left.shiftRightUnsigned(32); + var leftLow = new Long(left.getLowBits(), 0); + var rightHigh = right.shiftRightUnsigned(32); + var rightLow = new Long(right.getLowBits(), 0); + + var productHigh = leftHigh.multiply(rightHigh); + var productMid = leftHigh.multiply(rightLow); + var productMid2 = leftLow.multiply(rightHigh); + var productLow = leftLow.multiply(rightLow); + + productHigh = productHigh.add(productMid.shiftRightUnsigned(32)); + productMid = new Long(productMid.getLowBits(), 0) + .add(productMid2) + .add(productLow.shiftRightUnsigned(32)); + + productHigh = productHigh.add(productMid.shiftRightUnsigned(32)); + productLow = productMid.shiftLeft(32).add(new Long(productLow.getLowBits(), 0)); + + // Return the 128 bit result + return { high: productHigh, low: productLow }; +}; + +var lessThan = function(left, right) { + // Make values unsigned + var uhleft = left.high_ >>> 0; + var uhright = right.high_ >>> 0; + + // Compare high bits first + if (uhleft < uhright) { + return true; + } else if (uhleft === uhright) { + var ulleft = left.low_ >>> 0; + var ulright = right.low_ >>> 0; + if (ulleft < ulright) return true; + } + + return false; +}; + +// var longtoHex = function(value) { +// var buffer = new Buffer(8); +// var index = 0; +// // Encode the low 64 bits of the decimal +// // Encode low bits +// buffer[index++] = value.low_ & 0xff; +// buffer[index++] = (value.low_ >> 8) & 0xff; +// buffer[index++] = (value.low_ >> 16) & 0xff; +// buffer[index++] = (value.low_ >> 24) & 0xff; +// // Encode high bits +// buffer[index++] = value.high_ & 0xff; +// buffer[index++] = (value.high_ >> 8) & 0xff; +// buffer[index++] = (value.high_ >> 16) & 0xff; +// buffer[index++] = (value.high_ >> 24) & 0xff; +// return buffer.reverse().toString('hex'); +// }; + +// var int32toHex = function(value) { +// var buffer = new Buffer(4); +// var index = 0; +// // Encode the low 64 bits of the decimal +// // Encode low bits +// buffer[index++] = value & 0xff; +// buffer[index++] = (value >> 8) & 0xff; +// buffer[index++] = (value >> 16) & 0xff; +// buffer[index++] = (value >> 24) & 0xff; +// return buffer.reverse().toString('hex'); +// }; + +/** + * A class representation of the BSON Decimal128 type. + * + * @class + * @param {Buffer} bytes a buffer containing the raw Decimal128 bytes. + * @return {Double} + */ +var Decimal128 = function(bytes) { + this._bsontype = 'Decimal128'; + this.bytes = bytes; +}; + +/** + * Create a Decimal128 instance from a string representation + * + * @method + * @param {string} string a numeric string representation. + * @return {Decimal128} returns a Decimal128 instance. + */ +Decimal128.fromString = function(string) { + // Parse state tracking + var isNegative = false; + var sawRadix = false; + var foundNonZero = false; + + // Total number of significant digits (no leading or trailing zero) + var significantDigits = 0; + // Total number of significand digits read + var nDigitsRead = 0; + // Total number of digits (no leading zeros) + var nDigits = 0; + // The number of the digits after radix + var radixPosition = 0; + // The index of the first non-zero in *str* + var firstNonZero = 0; + + // Digits Array + var digits = [0]; + // The number of digits in digits + var nDigitsStored = 0; + // Insertion pointer for digits + var digitsInsert = 0; + // The index of the first non-zero digit + var firstDigit = 0; + // The index of the last digit + var lastDigit = 0; + + // Exponent + var exponent = 0; + // loop index over array + var i = 0; + // The high 17 digits of the significand + var significandHigh = [0, 0]; + // The low 17 digits of the significand + var significandLow = [0, 0]; + // The biased exponent + var biasedExponent = 0; + + // Read index + var index = 0; + + // Trim the string + string = string.trim(); + + // Naively prevent against REDOS attacks. + // TODO: implementing a custom parsing for this, or refactoring the regex would yield + // further gains. + if (string.length >= 7000) { + throw new Error('' + string + ' not a valid Decimal128 string'); + } + + // Results + var stringMatch = string.match(PARSE_STRING_REGEXP); + var infMatch = string.match(PARSE_INF_REGEXP); + var nanMatch = string.match(PARSE_NAN_REGEXP); + + // Validate the string + if ((!stringMatch && !infMatch && !nanMatch) || string.length === 0) { + throw new Error('' + string + ' not a valid Decimal128 string'); + } + + // Check if we have an illegal exponent format + if (stringMatch && stringMatch[4] && stringMatch[2] === undefined) { + throw new Error('' + string + ' not a valid Decimal128 string'); + } + + // Get the negative or positive sign + if (string[index] === '+' || string[index] === '-') { + isNegative = string[index++] === '-'; + } + + // Check if user passed Infinity or NaN + if (!isDigit(string[index]) && string[index] !== '.') { + if (string[index] === 'i' || string[index] === 'I') { + return new Decimal128(new Buffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); + } else if (string[index] === 'N') { + return new Decimal128(new Buffer(NAN_BUFFER)); + } + } + + // Read all the digits + while (isDigit(string[index]) || string[index] === '.') { + if (string[index] === '.') { + if (sawRadix) { + return new Decimal128(new Buffer(NAN_BUFFER)); + } + + sawRadix = true; + index = index + 1; + continue; + } + + if (nDigitsStored < 34) { + if (string[index] !== '0' || foundNonZero) { + if (!foundNonZero) { + firstNonZero = nDigitsRead; + } + + foundNonZero = true; + + // Only store 34 digits + digits[digitsInsert++] = parseInt(string[index], 10); + nDigitsStored = nDigitsStored + 1; + } + } + + if (foundNonZero) { + nDigits = nDigits + 1; + } + + if (sawRadix) { + radixPosition = radixPosition + 1; + } + + nDigitsRead = nDigitsRead + 1; + index = index + 1; + } + + if (sawRadix && !nDigitsRead) { + throw new Error('' + string + ' not a valid Decimal128 string'); + } + + // Read exponent if exists + if (string[index] === 'e' || string[index] === 'E') { + // Read exponent digits + var match = string.substr(++index).match(EXPONENT_REGEX); + + // No digits read + if (!match || !match[2]) { + return new Decimal128(new Buffer(NAN_BUFFER)); + } + + // Get exponent + exponent = parseInt(match[0], 10); + + // Adjust the index + index = index + match[0].length; + } + + // Return not a number + if (string[index]) { + return new Decimal128(new Buffer(NAN_BUFFER)); + } + + // Done reading input + // Find first non-zero digit in digits + firstDigit = 0; + + if (!nDigitsStored) { + firstDigit = 0; + lastDigit = 0; + digits[0] = 0; + nDigits = 1; + nDigitsStored = 1; + significantDigits = 0; + } else { + lastDigit = nDigitsStored - 1; + significantDigits = nDigits; + + if (exponent !== 0 && significantDigits !== 1) { + while (string[firstNonZero + significantDigits - 1] === '0') { + significantDigits = significantDigits - 1; + } + } + } + + // Normalization of exponent + // Correct exponent based on radix position, and shift significand as needed + // to represent user input + + // Overflow prevention + if (exponent <= radixPosition && radixPosition - exponent > 1 << 14) { + exponent = EXPONENT_MIN; + } else { + exponent = exponent - radixPosition; + } + + // Attempt to normalize the exponent + while (exponent > EXPONENT_MAX) { + // Shift exponent to significand and decrease + lastDigit = lastDigit + 1; + + if (lastDigit - firstDigit > MAX_DIGITS) { + // Check if we have a zero then just hard clamp, otherwise fail + var digitsString = digits.join(''); + if (digitsString.match(/^0+$/)) { + exponent = EXPONENT_MAX; + break; + } else { + return new Decimal128(new Buffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); + } + } + + exponent = exponent - 1; + } + + while (exponent < EXPONENT_MIN || nDigitsStored < nDigits) { + // Shift last digit + if (lastDigit === 0) { + exponent = EXPONENT_MIN; + significantDigits = 0; + break; + } + + if (nDigitsStored < nDigits) { + // adjust to match digits not stored + nDigits = nDigits - 1; + } else { + // adjust to round + lastDigit = lastDigit - 1; + } + + if (exponent < EXPONENT_MAX) { + exponent = exponent + 1; + } else { + // Check if we have a zero then just hard clamp, otherwise fail + digitsString = digits.join(''); + if (digitsString.match(/^0+$/)) { + exponent = EXPONENT_MAX; + break; + } else { + return new Decimal128(new Buffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); + } + } + } + + // Round + // We've normalized the exponent, but might still need to round. + if (lastDigit - firstDigit + 1 < significantDigits && string[significantDigits] !== '0') { + var endOfString = nDigitsRead; + + // If we have seen a radix point, 'string' is 1 longer than we have + // documented with ndigits_read, so inc the position of the first nonzero + // digit and the position that digits are read to. + if (sawRadix && exponent === EXPONENT_MIN) { + firstNonZero = firstNonZero + 1; + endOfString = endOfString + 1; + } + + var roundDigit = parseInt(string[firstNonZero + lastDigit + 1], 10); + var roundBit = 0; + + if (roundDigit >= 5) { + roundBit = 1; + + if (roundDigit === 5) { + roundBit = digits[lastDigit] % 2 === 1; + + for (i = firstNonZero + lastDigit + 2; i < endOfString; i++) { + if (parseInt(string[i], 10)) { + roundBit = 1; + break; + } + } + } + } + + if (roundBit) { + var dIdx = lastDigit; + + for (; dIdx >= 0; dIdx--) { + if (++digits[dIdx] > 9) { + digits[dIdx] = 0; + + // overflowed most significant digit + if (dIdx === 0) { + if (exponent < EXPONENT_MAX) { + exponent = exponent + 1; + digits[dIdx] = 1; + } else { + return new Decimal128( + new Buffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER) + ); + } + } + } else { + break; + } + } + } + } + + // Encode significand + // The high 17 digits of the significand + significandHigh = Long.fromNumber(0); + // The low 17 digits of the significand + significandLow = Long.fromNumber(0); + + // read a zero + if (significantDigits === 0) { + significandHigh = Long.fromNumber(0); + significandLow = Long.fromNumber(0); + } else if (lastDigit - firstDigit < 17) { + dIdx = firstDigit; + significandLow = Long.fromNumber(digits[dIdx++]); + significandHigh = new Long(0, 0); + + for (; dIdx <= lastDigit; dIdx++) { + significandLow = significandLow.multiply(Long.fromNumber(10)); + significandLow = significandLow.add(Long.fromNumber(digits[dIdx])); + } + } else { + dIdx = firstDigit; + significandHigh = Long.fromNumber(digits[dIdx++]); + + for (; dIdx <= lastDigit - 17; dIdx++) { + significandHigh = significandHigh.multiply(Long.fromNumber(10)); + significandHigh = significandHigh.add(Long.fromNumber(digits[dIdx])); + } + + significandLow = Long.fromNumber(digits[dIdx++]); + + for (; dIdx <= lastDigit; dIdx++) { + significandLow = significandLow.multiply(Long.fromNumber(10)); + significandLow = significandLow.add(Long.fromNumber(digits[dIdx])); + } + } + + var significand = multiply64x2(significandHigh, Long.fromString('100000000000000000')); + + significand.low = significand.low.add(significandLow); + + if (lessThan(significand.low, significandLow)) { + significand.high = significand.high.add(Long.fromNumber(1)); + } + + // Biased exponent + biasedExponent = exponent + EXPONENT_BIAS; + var dec = { low: Long.fromNumber(0), high: Long.fromNumber(0) }; + + // Encode combination, exponent, and significand. + if ( + significand.high + .shiftRightUnsigned(49) + .and(Long.fromNumber(1)) + .equals(Long.fromNumber) + ) { + // Encode '11' into bits 1 to 3 + dec.high = dec.high.or(Long.fromNumber(0x3).shiftLeft(61)); + dec.high = dec.high.or( + Long.fromNumber(biasedExponent).and(Long.fromNumber(0x3fff).shiftLeft(47)) + ); + dec.high = dec.high.or(significand.high.and(Long.fromNumber(0x7fffffffffff))); + } else { + dec.high = dec.high.or(Long.fromNumber(biasedExponent & 0x3fff).shiftLeft(49)); + dec.high = dec.high.or(significand.high.and(Long.fromNumber(0x1ffffffffffff))); + } + + dec.low = significand.low; + + // Encode sign + if (isNegative) { + dec.high = dec.high.or(Long.fromString('9223372036854775808')); + } + + // Encode into a buffer + var buffer = new Buffer(16); + index = 0; + + // Encode the low 64 bits of the decimal + // Encode low bits + buffer[index++] = dec.low.low_ & 0xff; + buffer[index++] = (dec.low.low_ >> 8) & 0xff; + buffer[index++] = (dec.low.low_ >> 16) & 0xff; + buffer[index++] = (dec.low.low_ >> 24) & 0xff; + // Encode high bits + buffer[index++] = dec.low.high_ & 0xff; + buffer[index++] = (dec.low.high_ >> 8) & 0xff; + buffer[index++] = (dec.low.high_ >> 16) & 0xff; + buffer[index++] = (dec.low.high_ >> 24) & 0xff; + + // Encode the high 64 bits of the decimal + // Encode low bits + buffer[index++] = dec.high.low_ & 0xff; + buffer[index++] = (dec.high.low_ >> 8) & 0xff; + buffer[index++] = (dec.high.low_ >> 16) & 0xff; + buffer[index++] = (dec.high.low_ >> 24) & 0xff; + // Encode high bits + buffer[index++] = dec.high.high_ & 0xff; + buffer[index++] = (dec.high.high_ >> 8) & 0xff; + buffer[index++] = (dec.high.high_ >> 16) & 0xff; + buffer[index++] = (dec.high.high_ >> 24) & 0xff; + + // Return the new Decimal128 + return new Decimal128(buffer); +}; + +// Extract least significant 5 bits +var COMBINATION_MASK = 0x1f; +// Extract least significant 14 bits +var EXPONENT_MASK = 0x3fff; +// Value of combination field for Inf +var COMBINATION_INFINITY = 30; +// Value of combination field for NaN +var COMBINATION_NAN = 31; +// Value of combination field for NaN +// var COMBINATION_SNAN = 32; +// decimal128 exponent bias +EXPONENT_BIAS = 6176; + +/** + * Create a string representation of the raw Decimal128 value + * + * @method + * @return {string} returns a Decimal128 string representation. + */ +Decimal128.prototype.toString = function() { + // Note: bits in this routine are referred to starting at 0, + // from the sign bit, towards the coefficient. + + // bits 0 - 31 + var high; + // bits 32 - 63 + var midh; + // bits 64 - 95 + var midl; + // bits 96 - 127 + var low; + // bits 1 - 5 + var combination; + // decoded biased exponent (14 bits) + var biased_exponent; + // the number of significand digits + var significand_digits = 0; + // the base-10 digits in the significand + var significand = new Array(36); + for (var i = 0; i < significand.length; i++) significand[i] = 0; + // read pointer into significand + var index = 0; + + // unbiased exponent + var exponent; + // the exponent if scientific notation is used + var scientific_exponent; + + // true if the number is zero + var is_zero = false; + + // the most signifcant significand bits (50-46) + var significand_msb; + // temporary storage for significand decoding + var significand128 = { parts: new Array(4) }; + // indexing variables + i; + var j, k; + + // Output string + var string = []; + + // Unpack index + index = 0; + + // Buffer reference + var buffer = this.bytes; + + // Unpack the low 64bits into a long + low = + buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24); + midl = + buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24); + + // Unpack the high 64bits into a long + midh = + buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24); + high = + buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24); + + // Unpack index + index = 0; + + // Create the state of the decimal + var dec = { + low: new Long(low, midl), + high: new Long(midh, high) + }; + + if (dec.high.lessThan(Long.ZERO)) { + string.push('-'); + } + + // Decode combination field and exponent + combination = (high >> 26) & COMBINATION_MASK; + + if (combination >> 3 === 3) { + // Check for 'special' values + if (combination === COMBINATION_INFINITY) { + return string.join('') + 'Infinity'; + } else if (combination === COMBINATION_NAN) { + return 'NaN'; + } else { + biased_exponent = (high >> 15) & EXPONENT_MASK; + significand_msb = 0x08 + ((high >> 14) & 0x01); + } + } else { + significand_msb = (high >> 14) & 0x07; + biased_exponent = (high >> 17) & EXPONENT_MASK; + } + + exponent = biased_exponent - EXPONENT_BIAS; + + // Create string of significand digits + + // Convert the 114-bit binary number represented by + // (significand_high, significand_low) to at most 34 decimal + // digits through modulo and division. + significand128.parts[0] = (high & 0x3fff) + ((significand_msb & 0xf) << 14); + significand128.parts[1] = midh; + significand128.parts[2] = midl; + significand128.parts[3] = low; + + if ( + significand128.parts[0] === 0 && + significand128.parts[1] === 0 && + significand128.parts[2] === 0 && + significand128.parts[3] === 0 + ) { + is_zero = true; + } else { + for (k = 3; k >= 0; k--) { + var least_digits = 0; + // Peform the divide + var result = divideu128(significand128); + significand128 = result.quotient; + least_digits = result.rem.low_; + + // We now have the 9 least significant digits (in base 2). + // Convert and output to string. + if (!least_digits) continue; + + for (j = 8; j >= 0; j--) { + // significand[k * 9 + j] = Math.round(least_digits % 10); + significand[k * 9 + j] = least_digits % 10; + // least_digits = Math.round(least_digits / 10); + least_digits = Math.floor(least_digits / 10); + } + } + } + + // Output format options: + // Scientific - [-]d.dddE(+/-)dd or [-]dE(+/-)dd + // Regular - ddd.ddd + + if (is_zero) { + significand_digits = 1; + significand[index] = 0; + } else { + significand_digits = 36; + i = 0; + + while (!significand[index]) { + i++; + significand_digits = significand_digits - 1; + index = index + 1; + } + } + + scientific_exponent = significand_digits - 1 + exponent; + + // The scientific exponent checks are dictated by the string conversion + // specification and are somewhat arbitrary cutoffs. + // + // We must check exponent > 0, because if this is the case, the number + // has trailing zeros. However, we *cannot* output these trailing zeros, + // because doing so would change the precision of the value, and would + // change stored data if the string converted number is round tripped. + + if (scientific_exponent >= 34 || scientific_exponent <= -7 || exponent > 0) { + // Scientific format + string.push(significand[index++]); + significand_digits = significand_digits - 1; + + if (significand_digits) { + string.push('.'); + } + + for (i = 0; i < significand_digits; i++) { + string.push(significand[index++]); + } + + // Exponent + string.push('E'); + if (scientific_exponent > 0) { + string.push('+' + scientific_exponent); + } else { + string.push(scientific_exponent); + } + } else { + // Regular format with no decimal place + if (exponent >= 0) { + for (i = 0; i < significand_digits; i++) { + string.push(significand[index++]); + } + } else { + var radix_position = significand_digits + exponent; + + // non-zero digits before radix + if (radix_position > 0) { + for (i = 0; i < radix_position; i++) { + string.push(significand[index++]); + } + } else { + string.push('0'); + } + + string.push('.'); + // add leading zeros after radix + while (radix_position++ < 0) { + string.push('0'); + } + + for (i = 0; i < significand_digits - Math.max(radix_position - 1, 0); i++) { + string.push(significand[index++]); + } + } + } + + return string.join(''); +}; + +Decimal128.prototype.toJSON = function() { + return { $numberDecimal: this.toString() }; +}; + +module.exports = Decimal128; +module.exports.Decimal128 = Decimal128; diff --git a/node_modules/bson/lib/bson/double.js b/node_modules/bson/lib/bson/double.js new file mode 100644 index 0000000..523c21f --- /dev/null +++ b/node_modules/bson/lib/bson/double.js @@ -0,0 +1,33 @@ +/** + * A class representation of the BSON Double type. + * + * @class + * @param {number} value the number we want to represent as a double. + * @return {Double} + */ +function Double(value) { + if (!(this instanceof Double)) return new Double(value); + + this._bsontype = 'Double'; + this.value = value; +} + +/** + * Access the number value. + * + * @method + * @return {number} returns the wrapped double number. + */ +Double.prototype.valueOf = function() { + return this.value; +}; + +/** + * @ignore + */ +Double.prototype.toJSON = function() { + return this.value; +}; + +module.exports = Double; +module.exports.Double = Double; diff --git a/node_modules/bson/lib/bson/float_parser.js b/node_modules/bson/lib/bson/float_parser.js new file mode 100644 index 0000000..0054a2f --- /dev/null +++ b/node_modules/bson/lib/bson/float_parser.js @@ -0,0 +1,124 @@ +// Copyright (c) 2008, Fair Oaks Labs, Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. +// +// * Neither the name of Fair Oaks Labs, Inc. nor the names of its contributors +// may be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +// +// Modifications to writeIEEE754 to support negative zeroes made by Brian White + +var readIEEE754 = function(buffer, offset, endian, mLen, nBytes) { + var e, + m, + bBE = endian === 'big', + eLen = nBytes * 8 - mLen - 1, + eMax = (1 << eLen) - 1, + eBias = eMax >> 1, + nBits = -7, + i = bBE ? 0 : nBytes - 1, + d = bBE ? 1 : -1, + s = buffer[offset + i]; + + i += d; + + e = s & ((1 << -nBits) - 1); + s >>= -nBits; + nBits += eLen; + for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8); + + m = e & ((1 << -nBits) - 1); + e >>= -nBits; + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8); + + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : (s ? -1 : 1) * Infinity; + } else { + m = m + Math.pow(2, mLen); + e = e - eBias; + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen); +}; + +var writeIEEE754 = function(buffer, value, offset, endian, mLen, nBytes) { + var e, + m, + c, + bBE = endian === 'big', + eLen = nBytes * 8 - mLen - 1, + eMax = (1 << eLen) - 1, + eBias = eMax >> 1, + rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, + i = bBE ? nBytes - 1 : 0, + d = bBE ? -1 : 1, + s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0; + + value = Math.abs(value); + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0; + e = eMax; + } else { + e = Math.floor(Math.log(value) / Math.LN2); + if (value * (c = Math.pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen); + e = e + eBias; + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e = 0; + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8); + + e = (e << mLen) | m; + eLen += mLen; + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8); + + buffer[offset + i - d] |= s * 128; +}; + +exports.readIEEE754 = readIEEE754; +exports.writeIEEE754 = writeIEEE754; diff --git a/node_modules/bson/lib/bson/int_32.js b/node_modules/bson/lib/bson/int_32.js new file mode 100644 index 0000000..85dbdec --- /dev/null +++ b/node_modules/bson/lib/bson/int_32.js @@ -0,0 +1,33 @@ +/** + * A class representation of a BSON Int32 type. + * + * @class + * @param {number} value the number we want to represent as an int32. + * @return {Int32} + */ +var Int32 = function(value) { + if (!(this instanceof Int32)) return new Int32(value); + + this._bsontype = 'Int32'; + this.value = value; +}; + +/** + * Access the number value. + * + * @method + * @return {number} returns the wrapped int32 number. + */ +Int32.prototype.valueOf = function() { + return this.value; +}; + +/** + * @ignore + */ +Int32.prototype.toJSON = function() { + return this.value; +}; + +module.exports = Int32; +module.exports.Int32 = Int32; diff --git a/node_modules/bson/lib/bson/long.js b/node_modules/bson/lib/bson/long.js new file mode 100644 index 0000000..78215aa --- /dev/null +++ b/node_modules/bson/lib/bson/long.js @@ -0,0 +1,851 @@ +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Copyright 2009 Google Inc. All Rights Reserved + +/** + * Defines a Long class for representing a 64-bit two's-complement + * integer value, which faithfully simulates the behavior of a Java "Long". This + * implementation is derived from LongLib in GWT. + * + * Constructs a 64-bit two's-complement integer, given its low and high 32-bit + * values as *signed* integers. See the from* functions below for more + * convenient ways of constructing Longs. + * + * The internal representation of a Long is the two given signed, 32-bit values. + * We use 32-bit pieces because these are the size of integers on which + * Javascript performs bit-operations. For operations like addition and + * multiplication, we split each number into 16-bit pieces, which can easily be + * multiplied within Javascript's floating-point representation without overflow + * or change in sign. + * + * In the algorithms below, we frequently reduce the negative case to the + * positive case by negating the input(s) and then post-processing the result. + * Note that we must ALWAYS check specially whether those values are MIN_VALUE + * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as + * a positive number, it overflows back into a negative). Not handling this + * case would often result in infinite recursion. + * + * @class + * @param {number} low the low (signed) 32 bits of the Long. + * @param {number} high the high (signed) 32 bits of the Long. + * @return {Long} + */ +function Long(low, high) { + if (!(this instanceof Long)) return new Long(low, high); + + this._bsontype = 'Long'; + /** + * @type {number} + * @ignore + */ + this.low_ = low | 0; // force into 32 signed bits. + + /** + * @type {number} + * @ignore + */ + this.high_ = high | 0; // force into 32 signed bits. +} + +/** + * Return the int value. + * + * @method + * @return {number} the value, assuming it is a 32-bit integer. + */ +Long.prototype.toInt = function() { + return this.low_; +}; + +/** + * Return the Number value. + * + * @method + * @return {number} the closest floating-point representation to this value. + */ +Long.prototype.toNumber = function() { + return this.high_ * Long.TWO_PWR_32_DBL_ + this.getLowBitsUnsigned(); +}; + +/** + * Return the JSON value. + * + * @method + * @return {string} the JSON representation. + */ +Long.prototype.toJSON = function() { + return this.toString(); +}; + +/** + * Return the String value. + * + * @method + * @param {number} [opt_radix] the radix in which the text should be written. + * @return {string} the textual representation of this value. + */ +Long.prototype.toString = function(opt_radix) { + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (this.isZero()) { + return '0'; + } + + if (this.isNegative()) { + if (this.equals(Long.MIN_VALUE)) { + // We need to change the Long value before it can be negated, so we remove + // the bottom-most digit in this base and then recurse to do the rest. + var radixLong = Long.fromNumber(radix); + var div = this.div(radixLong); + var rem = div.multiply(radixLong).subtract(this); + return div.toString(radix) + rem.toInt().toString(radix); + } else { + return '-' + this.negate().toString(radix); + } + } + + // Do several (6) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = Long.fromNumber(Math.pow(radix, 6)); + + rem = this; + var result = ''; + + while (!rem.isZero()) { + var remDiv = rem.div(radixToPower); + var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt(); + var digits = intval.toString(radix); + + rem = remDiv; + if (rem.isZero()) { + return digits + result; + } else { + while (digits.length < 6) { + digits = '0' + digits; + } + result = '' + digits + result; + } + } +}; + +/** + * Return the high 32-bits value. + * + * @method + * @return {number} the high 32-bits as a signed value. + */ +Long.prototype.getHighBits = function() { + return this.high_; +}; + +/** + * Return the low 32-bits value. + * + * @method + * @return {number} the low 32-bits as a signed value. + */ +Long.prototype.getLowBits = function() { + return this.low_; +}; + +/** + * Return the low unsigned 32-bits value. + * + * @method + * @return {number} the low 32-bits as an unsigned value. + */ +Long.prototype.getLowBitsUnsigned = function() { + return this.low_ >= 0 ? this.low_ : Long.TWO_PWR_32_DBL_ + this.low_; +}; + +/** + * Returns the number of bits needed to represent the absolute value of this Long. + * + * @method + * @return {number} Returns the number of bits needed to represent the absolute value of this Long. + */ +Long.prototype.getNumBitsAbs = function() { + if (this.isNegative()) { + if (this.equals(Long.MIN_VALUE)) { + return 64; + } else { + return this.negate().getNumBitsAbs(); + } + } else { + var val = this.high_ !== 0 ? this.high_ : this.low_; + for (var bit = 31; bit > 0; bit--) { + if ((val & (1 << bit)) !== 0) { + break; + } + } + return this.high_ !== 0 ? bit + 33 : bit + 1; + } +}; + +/** + * Return whether this value is zero. + * + * @method + * @return {boolean} whether this value is zero. + */ +Long.prototype.isZero = function() { + return this.high_ === 0 && this.low_ === 0; +}; + +/** + * Return whether this value is negative. + * + * @method + * @return {boolean} whether this value is negative. + */ +Long.prototype.isNegative = function() { + return this.high_ < 0; +}; + +/** + * Return whether this value is odd. + * + * @method + * @return {boolean} whether this value is odd. + */ +Long.prototype.isOdd = function() { + return (this.low_ & 1) === 1; +}; + +/** + * Return whether this Long equals the other + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long equals the other + */ +Long.prototype.equals = function(other) { + return this.high_ === other.high_ && this.low_ === other.low_; +}; + +/** + * Return whether this Long does not equal the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long does not equal the other. + */ +Long.prototype.notEquals = function(other) { + return this.high_ !== other.high_ || this.low_ !== other.low_; +}; + +/** + * Return whether this Long is less than the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long is less than the other. + */ +Long.prototype.lessThan = function(other) { + return this.compare(other) < 0; +}; + +/** + * Return whether this Long is less than or equal to the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long is less than or equal to the other. + */ +Long.prototype.lessThanOrEqual = function(other) { + return this.compare(other) <= 0; +}; + +/** + * Return whether this Long is greater than the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long is greater than the other. + */ +Long.prototype.greaterThan = function(other) { + return this.compare(other) > 0; +}; + +/** + * Return whether this Long is greater than or equal to the other. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} whether this Long is greater than or equal to the other. + */ +Long.prototype.greaterThanOrEqual = function(other) { + return this.compare(other) >= 0; +}; + +/** + * Compares this Long with the given one. + * + * @method + * @param {Long} other Long to compare against. + * @return {boolean} 0 if they are the same, 1 if the this is greater, and -1 if the given one is greater. + */ +Long.prototype.compare = function(other) { + if (this.equals(other)) { + return 0; + } + + var thisNeg = this.isNegative(); + var otherNeg = other.isNegative(); + if (thisNeg && !otherNeg) { + return -1; + } + if (!thisNeg && otherNeg) { + return 1; + } + + // at this point, the signs are the same, so subtraction will not overflow + if (this.subtract(other).isNegative()) { + return -1; + } else { + return 1; + } +}; + +/** + * The negation of this value. + * + * @method + * @return {Long} the negation of this value. + */ +Long.prototype.negate = function() { + if (this.equals(Long.MIN_VALUE)) { + return Long.MIN_VALUE; + } else { + return this.not().add(Long.ONE); + } +}; + +/** + * Returns the sum of this and the given Long. + * + * @method + * @param {Long} other Long to add to this one. + * @return {Long} the sum of this and the given Long. + */ +Long.prototype.add = function(other) { + // Divide each number into 4 chunks of 16 bits, and then sum the chunks. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xffff; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xffff; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xffff; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xffff; + + var c48 = 0, + c32 = 0, + c16 = 0, + c00 = 0; + c00 += a00 + b00; + c16 += c00 >>> 16; + c00 &= 0xffff; + c16 += a16 + b16; + c32 += c16 >>> 16; + c16 &= 0xffff; + c32 += a32 + b32; + c48 += c32 >>> 16; + c32 &= 0xffff; + c48 += a48 + b48; + c48 &= 0xffff; + return Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32); +}; + +/** + * Returns the difference of this and the given Long. + * + * @method + * @param {Long} other Long to subtract from this. + * @return {Long} the difference of this and the given Long. + */ +Long.prototype.subtract = function(other) { + return this.add(other.negate()); +}; + +/** + * Returns the product of this and the given Long. + * + * @method + * @param {Long} other Long to multiply with this. + * @return {Long} the product of this and the other. + */ +Long.prototype.multiply = function(other) { + if (this.isZero()) { + return Long.ZERO; + } else if (other.isZero()) { + return Long.ZERO; + } + + if (this.equals(Long.MIN_VALUE)) { + return other.isOdd() ? Long.MIN_VALUE : Long.ZERO; + } else if (other.equals(Long.MIN_VALUE)) { + return this.isOdd() ? Long.MIN_VALUE : Long.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().multiply(other.negate()); + } else { + return this.negate() + .multiply(other) + .negate(); + } + } else if (other.isNegative()) { + return this.multiply(other.negate()).negate(); + } + + // If both Longs are small, use float multiplication + if (this.lessThan(Long.TWO_PWR_24_) && other.lessThan(Long.TWO_PWR_24_)) { + return Long.fromNumber(this.toNumber() * other.toNumber()); + } + + // Divide each Long into 4 chunks of 16 bits, and then add up 4x4 products. + // We can skip products that would overflow. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xffff; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xffff; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xffff; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xffff; + + var c48 = 0, + c32 = 0, + c16 = 0, + c00 = 0; + c00 += a00 * b00; + c16 += c00 >>> 16; + c00 &= 0xffff; + c16 += a16 * b00; + c32 += c16 >>> 16; + c16 &= 0xffff; + c16 += a00 * b16; + c32 += c16 >>> 16; + c16 &= 0xffff; + c32 += a32 * b00; + c48 += c32 >>> 16; + c32 &= 0xffff; + c32 += a16 * b16; + c48 += c32 >>> 16; + c32 &= 0xffff; + c32 += a00 * b32; + c48 += c32 >>> 16; + c32 &= 0xffff; + c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48; + c48 &= 0xffff; + return Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32); +}; + +/** + * Returns this Long divided by the given one. + * + * @method + * @param {Long} other Long by which to divide. + * @return {Long} this Long divided by the given one. + */ +Long.prototype.div = function(other) { + if (other.isZero()) { + throw Error('division by zero'); + } else if (this.isZero()) { + return Long.ZERO; + } + + if (this.equals(Long.MIN_VALUE)) { + if (other.equals(Long.ONE) || other.equals(Long.NEG_ONE)) { + return Long.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE + } else if (other.equals(Long.MIN_VALUE)) { + return Long.ONE; + } else { + // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|. + var halfThis = this.shiftRight(1); + var approx = halfThis.div(other).shiftLeft(1); + if (approx.equals(Long.ZERO)) { + return other.isNegative() ? Long.ONE : Long.NEG_ONE; + } else { + var rem = this.subtract(other.multiply(approx)); + var result = approx.add(rem.div(other)); + return result; + } + } + } else if (other.equals(Long.MIN_VALUE)) { + return Long.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().div(other.negate()); + } else { + return this.negate() + .div(other) + .negate(); + } + } else if (other.isNegative()) { + return this.div(other.negate()).negate(); + } + + // Repeat the following until the remainder is less than other: find a + // floating-point that approximates remainder / other *from below*, add this + // into the result, and subtract it from the remainder. It is critical that + // the approximate value is less than or equal to the real value so that the + // remainder never becomes negative. + var res = Long.ZERO; + rem = this; + while (rem.greaterThanOrEqual(other)) { + // Approximate the result of division. This may be a little greater or + // smaller than the actual value. + approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber())); + + // We will tweak the approximate result by changing it in the 48-th digit or + // the smallest non-fractional digit, whichever is larger. + var log2 = Math.ceil(Math.log(approx) / Math.LN2); + var delta = log2 <= 48 ? 1 : Math.pow(2, log2 - 48); + + // Decrease the approximation until it is smaller than the remainder. Note + // that if it is too large, the product overflows and is negative. + var approxRes = Long.fromNumber(approx); + var approxRem = approxRes.multiply(other); + while (approxRem.isNegative() || approxRem.greaterThan(rem)) { + approx -= delta; + approxRes = Long.fromNumber(approx); + approxRem = approxRes.multiply(other); + } + + // We know the answer can't be zero... and actually, zero would cause + // infinite recursion since we would make no progress. + if (approxRes.isZero()) { + approxRes = Long.ONE; + } + + res = res.add(approxRes); + rem = rem.subtract(approxRem); + } + return res; +}; + +/** + * Returns this Long modulo the given one. + * + * @method + * @param {Long} other Long by which to mod. + * @return {Long} this Long modulo the given one. + */ +Long.prototype.modulo = function(other) { + return this.subtract(this.div(other).multiply(other)); +}; + +/** + * The bitwise-NOT of this value. + * + * @method + * @return {Long} the bitwise-NOT of this value. + */ +Long.prototype.not = function() { + return Long.fromBits(~this.low_, ~this.high_); +}; + +/** + * Returns the bitwise-AND of this Long and the given one. + * + * @method + * @param {Long} other the Long with which to AND. + * @return {Long} the bitwise-AND of this and the other. + */ +Long.prototype.and = function(other) { + return Long.fromBits(this.low_ & other.low_, this.high_ & other.high_); +}; + +/** + * Returns the bitwise-OR of this Long and the given one. + * + * @method + * @param {Long} other the Long with which to OR. + * @return {Long} the bitwise-OR of this and the other. + */ +Long.prototype.or = function(other) { + return Long.fromBits(this.low_ | other.low_, this.high_ | other.high_); +}; + +/** + * Returns the bitwise-XOR of this Long and the given one. + * + * @method + * @param {Long} other the Long with which to XOR. + * @return {Long} the bitwise-XOR of this and the other. + */ +Long.prototype.xor = function(other) { + return Long.fromBits(this.low_ ^ other.low_, this.high_ ^ other.high_); +}; + +/** + * Returns this Long with bits shifted to the left by the given amount. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Long} this shifted to the left by the given amount. + */ +Long.prototype.shiftLeft = function(numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var low = this.low_; + if (numBits < 32) { + var high = this.high_; + return Long.fromBits(low << numBits, (high << numBits) | (low >>> (32 - numBits))); + } else { + return Long.fromBits(0, low << (numBits - 32)); + } + } +}; + +/** + * Returns this Long with bits shifted to the right by the given amount. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Long} this shifted to the right by the given amount. + */ +Long.prototype.shiftRight = function(numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return Long.fromBits((low >>> numBits) | (high << (32 - numBits)), high >> numBits); + } else { + return Long.fromBits(high >> (numBits - 32), high >= 0 ? 0 : -1); + } + } +}; + +/** + * Returns this Long with bits shifted to the right by the given amount, with the new top bits matching the current sign bit. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Long} this shifted to the right by the given amount, with zeros placed into the new leading bits. + */ +Long.prototype.shiftRightUnsigned = function(numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return Long.fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits); + } else if (numBits === 32) { + return Long.fromBits(high, 0); + } else { + return Long.fromBits(high >>> (numBits - 32), 0); + } + } +}; + +/** + * Returns a Long representing the given (32-bit) integer value. + * + * @method + * @param {number} value the 32-bit integer in question. + * @return {Long} the corresponding Long value. + */ +Long.fromInt = function(value) { + if (-128 <= value && value < 128) { + var cachedObj = Long.INT_CACHE_[value]; + if (cachedObj) { + return cachedObj; + } + } + + var obj = new Long(value | 0, value < 0 ? -1 : 0); + if (-128 <= value && value < 128) { + Long.INT_CACHE_[value] = obj; + } + return obj; +}; + +/** + * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned. + * + * @method + * @param {number} value the number in question. + * @return {Long} the corresponding Long value. + */ +Long.fromNumber = function(value) { + if (isNaN(value) || !isFinite(value)) { + return Long.ZERO; + } else if (value <= -Long.TWO_PWR_63_DBL_) { + return Long.MIN_VALUE; + } else if (value + 1 >= Long.TWO_PWR_63_DBL_) { + return Long.MAX_VALUE; + } else if (value < 0) { + return Long.fromNumber(-value).negate(); + } else { + return new Long((value % Long.TWO_PWR_32_DBL_) | 0, (value / Long.TWO_PWR_32_DBL_) | 0); + } +}; + +/** + * Returns a Long representing the 64-bit integer that comes by concatenating the given high and low bits. Each is assumed to use 32 bits. + * + * @method + * @param {number} lowBits the low 32-bits. + * @param {number} highBits the high 32-bits. + * @return {Long} the corresponding Long value. + */ +Long.fromBits = function(lowBits, highBits) { + return new Long(lowBits, highBits); +}; + +/** + * Returns a Long representation of the given string, written using the given radix. + * + * @method + * @param {string} str the textual representation of the Long. + * @param {number} opt_radix the radix in which the text is written. + * @return {Long} the corresponding Long value. + */ +Long.fromString = function(str, opt_radix) { + if (str.length === 0) { + throw Error('number format error: empty string'); + } + + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (str.charAt(0) === '-') { + return Long.fromString(str.substring(1), radix).negate(); + } else if (str.indexOf('-') >= 0) { + throw Error('number format error: interior "-" character: ' + str); + } + + // Do several (8) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = Long.fromNumber(Math.pow(radix, 8)); + + var result = Long.ZERO; + for (var i = 0; i < str.length; i += 8) { + var size = Math.min(8, str.length - i); + var value = parseInt(str.substring(i, i + size), radix); + if (size < 8) { + var power = Long.fromNumber(Math.pow(radix, size)); + result = result.multiply(power).add(Long.fromNumber(value)); + } else { + result = result.multiply(radixToPower); + result = result.add(Long.fromNumber(value)); + } + } + return result; +}; + +// NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the +// from* methods on which they depend. + +/** + * A cache of the Long representations of small integer values. + * @type {Object} + * @ignore + */ +Long.INT_CACHE_ = {}; + +// NOTE: the compiler should inline these constant values below and then remove +// these variables, so there should be no runtime penalty for these. + +/** + * Number used repeated below in calculations. This must appear before the + * first call to any from* function below. + * @type {number} + * @ignore + */ +Long.TWO_PWR_16_DBL_ = 1 << 16; + +/** + * @type {number} + * @ignore + */ +Long.TWO_PWR_24_DBL_ = 1 << 24; + +/** + * @type {number} + * @ignore + */ +Long.TWO_PWR_32_DBL_ = Long.TWO_PWR_16_DBL_ * Long.TWO_PWR_16_DBL_; + +/** + * @type {number} + * @ignore + */ +Long.TWO_PWR_31_DBL_ = Long.TWO_PWR_32_DBL_ / 2; + +/** + * @type {number} + * @ignore + */ +Long.TWO_PWR_48_DBL_ = Long.TWO_PWR_32_DBL_ * Long.TWO_PWR_16_DBL_; + +/** + * @type {number} + * @ignore + */ +Long.TWO_PWR_64_DBL_ = Long.TWO_PWR_32_DBL_ * Long.TWO_PWR_32_DBL_; + +/** + * @type {number} + * @ignore + */ +Long.TWO_PWR_63_DBL_ = Long.TWO_PWR_64_DBL_ / 2; + +/** @type {Long} */ +Long.ZERO = Long.fromInt(0); + +/** @type {Long} */ +Long.ONE = Long.fromInt(1); + +/** @type {Long} */ +Long.NEG_ONE = Long.fromInt(-1); + +/** @type {Long} */ +Long.MAX_VALUE = Long.fromBits(0xffffffff | 0, 0x7fffffff | 0); + +/** @type {Long} */ +Long.MIN_VALUE = Long.fromBits(0, 0x80000000 | 0); + +/** + * @type {Long} + * @ignore + */ +Long.TWO_PWR_24_ = Long.fromInt(1 << 24); + +/** + * Expose. + */ +module.exports = Long; +module.exports.Long = Long; diff --git a/node_modules/bson/lib/bson/map.js b/node_modules/bson/lib/bson/map.js new file mode 100644 index 0000000..7edb4f2 --- /dev/null +++ b/node_modules/bson/lib/bson/map.js @@ -0,0 +1,128 @@ +'use strict'; + +// We have an ES6 Map available, return the native instance +if (typeof global.Map !== 'undefined') { + module.exports = global.Map; + module.exports.Map = global.Map; +} else { + // We will return a polyfill + var Map = function(array) { + this._keys = []; + this._values = {}; + + for (var i = 0; i < array.length; i++) { + if (array[i] == null) continue; // skip null and undefined + var entry = array[i]; + var key = entry[0]; + var value = entry[1]; + // Add the key to the list of keys in order + this._keys.push(key); + // Add the key and value to the values dictionary with a point + // to the location in the ordered keys list + this._values[key] = { v: value, i: this._keys.length - 1 }; + } + }; + + Map.prototype.clear = function() { + this._keys = []; + this._values = {}; + }; + + Map.prototype.delete = function(key) { + var value = this._values[key]; + if (value == null) return false; + // Delete entry + delete this._values[key]; + // Remove the key from the ordered keys list + this._keys.splice(value.i, 1); + return true; + }; + + Map.prototype.entries = function() { + var self = this; + var index = 0; + + return { + next: function() { + var key = self._keys[index++]; + return { + value: key !== undefined ? [key, self._values[key].v] : undefined, + done: key !== undefined ? false : true + }; + } + }; + }; + + Map.prototype.forEach = function(callback, self) { + self = self || this; + + for (var i = 0; i < this._keys.length; i++) { + var key = this._keys[i]; + // Call the forEach callback + callback.call(self, this._values[key].v, key, self); + } + }; + + Map.prototype.get = function(key) { + return this._values[key] ? this._values[key].v : undefined; + }; + + Map.prototype.has = function(key) { + return this._values[key] != null; + }; + + Map.prototype.keys = function() { + var self = this; + var index = 0; + + return { + next: function() { + var key = self._keys[index++]; + return { + value: key !== undefined ? key : undefined, + done: key !== undefined ? false : true + }; + } + }; + }; + + Map.prototype.set = function(key, value) { + if (this._values[key]) { + this._values[key].v = value; + return this; + } + + // Add the key to the list of keys in order + this._keys.push(key); + // Add the key and value to the values dictionary with a point + // to the location in the ordered keys list + this._values[key] = { v: value, i: this._keys.length - 1 }; + return this; + }; + + Map.prototype.values = function() { + var self = this; + var index = 0; + + return { + next: function() { + var key = self._keys[index++]; + return { + value: key !== undefined ? self._values[key].v : undefined, + done: key !== undefined ? false : true + }; + } + }; + }; + + // Last ismaster + Object.defineProperty(Map.prototype, 'size', { + enumerable: true, + get: function() { + return this._keys.length; + } + }); + + module.exports = Map; + module.exports.Map = Map; +} diff --git a/node_modules/bson/lib/bson/max_key.js b/node_modules/bson/lib/bson/max_key.js new file mode 100644 index 0000000..eebca7b --- /dev/null +++ b/node_modules/bson/lib/bson/max_key.js @@ -0,0 +1,14 @@ +/** + * A class representation of the BSON MaxKey type. + * + * @class + * @return {MaxKey} A MaxKey instance + */ +function MaxKey() { + if (!(this instanceof MaxKey)) return new MaxKey(); + + this._bsontype = 'MaxKey'; +} + +module.exports = MaxKey; +module.exports.MaxKey = MaxKey; diff --git a/node_modules/bson/lib/bson/min_key.js b/node_modules/bson/lib/bson/min_key.js new file mode 100644 index 0000000..15f4522 --- /dev/null +++ b/node_modules/bson/lib/bson/min_key.js @@ -0,0 +1,14 @@ +/** + * A class representation of the BSON MinKey type. + * + * @class + * @return {MinKey} A MinKey instance + */ +function MinKey() { + if (!(this instanceof MinKey)) return new MinKey(); + + this._bsontype = 'MinKey'; +} + +module.exports = MinKey; +module.exports.MinKey = MinKey; diff --git a/node_modules/bson/lib/bson/objectid.js b/node_modules/bson/lib/bson/objectid.js new file mode 100644 index 0000000..f76ecbb --- /dev/null +++ b/node_modules/bson/lib/bson/objectid.js @@ -0,0 +1,387 @@ +// Custom inspect property name / symbol. +var inspect = 'inspect'; + +/** + * Machine id. + * + * Create a random 3-byte value (i.e. unique for this + * process). Other drivers use a md5 of the machine id here, but + * that would mean an asyc call to gethostname, so we don't bother. + * @ignore + */ +var MACHINE_ID = parseInt(Math.random() * 0xffffff, 10); + +// Regular expression that checks for hex value +var checkForHexRegExp = new RegExp('^[0-9a-fA-F]{24}$'); + +// Check if buffer exists +try { + if (Buffer && Buffer.from) { + var hasBufferType = true; + inspect = require('util').inspect.custom || 'inspect'; + } +} catch (err) { + hasBufferType = false; +} + +/** +* Create a new ObjectID instance +* +* @class +* @param {(string|number)} id Can be a 24 byte hex string, 12 byte binary string or a Number. +* @property {number} generationTime The generation time of this ObjectId instance +* @return {ObjectID} instance of ObjectID. +*/ +var ObjectID = function ObjectID(id) { + // Duck-typing to support ObjectId from different npm packages + if (id instanceof ObjectID) return id; + if (!(this instanceof ObjectID)) return new ObjectID(id); + + this._bsontype = 'ObjectID'; + + // The most common usecase (blank id, new objectId instance) + if (id == null || typeof id === 'number') { + // Generate a new id + this.id = this.generate(id); + // If we are caching the hex string + if (ObjectID.cacheHexString) this.__id = this.toString('hex'); + // Return the object + return; + } + + // Check if the passed in id is valid + var valid = ObjectID.isValid(id); + + // Throw an error if it's not a valid setup + if (!valid && id != null) { + throw new Error( + 'Argument passed in must be a single String of 12 bytes or a string of 24 hex characters' + ); + } else if (valid && typeof id === 'string' && id.length === 24 && hasBufferType) { + return new ObjectID(new Buffer(id, 'hex')); + } else if (valid && typeof id === 'string' && id.length === 24) { + return ObjectID.createFromHexString(id); + } else if (id != null && id.length === 12) { + // assume 12 byte string + this.id = id; + } else if (id != null && id.toHexString) { + // Duck-typing to support ObjectId from different npm packages + return id; + } else { + throw new Error( + 'Argument passed in must be a single String of 12 bytes or a string of 24 hex characters' + ); + } + + if (ObjectID.cacheHexString) this.__id = this.toString('hex'); +}; + +// Allow usage of ObjectId as well as ObjectID +// var ObjectId = ObjectID; + +// Precomputed hex table enables speedy hex string conversion +var hexTable = []; +for (var i = 0; i < 256; i++) { + hexTable[i] = (i <= 15 ? '0' : '') + i.toString(16); +} + +/** +* Return the ObjectID id as a 24 byte hex string representation +* +* @method +* @return {string} return the 24 byte hex string representation. +*/ +ObjectID.prototype.toHexString = function() { + if (ObjectID.cacheHexString && this.__id) return this.__id; + + var hexString = ''; + if (!this.id || !this.id.length) { + throw new Error( + 'invalid ObjectId, ObjectId.id must be either a string or a Buffer, but is [' + + JSON.stringify(this.id) + + ']' + ); + } + + if (this.id instanceof _Buffer) { + hexString = convertToHex(this.id); + if (ObjectID.cacheHexString) this.__id = hexString; + return hexString; + } + + for (var i = 0; i < this.id.length; i++) { + hexString += hexTable[this.id.charCodeAt(i)]; + } + + if (ObjectID.cacheHexString) this.__id = hexString; + return hexString; +}; + +/** +* Update the ObjectID index used in generating new ObjectID's on the driver +* +* @method +* @return {number} returns next index value. +* @ignore +*/ +ObjectID.prototype.get_inc = function() { + return (ObjectID.index = (ObjectID.index + 1) % 0xffffff); +}; + +/** +* Update the ObjectID index used in generating new ObjectID's on the driver +* +* @method +* @return {number} returns next index value. +* @ignore +*/ +ObjectID.prototype.getInc = function() { + return this.get_inc(); +}; + +/** +* Generate a 12 byte id buffer used in ObjectID's +* +* @method +* @param {number} [time] optional parameter allowing to pass in a second based timestamp. +* @return {Buffer} return the 12 byte id buffer string. +*/ +ObjectID.prototype.generate = function(time) { + if ('number' !== typeof time) { + time = ~~(Date.now() / 1000); + } + + // Use pid + var pid = + (typeof process === 'undefined' || process.pid === 1 + ? Math.floor(Math.random() * 100000) + : process.pid) % 0xffff; + var inc = this.get_inc(); + // Buffer used + var buffer = new Buffer(12); + // Encode time + buffer[3] = time & 0xff; + buffer[2] = (time >> 8) & 0xff; + buffer[1] = (time >> 16) & 0xff; + buffer[0] = (time >> 24) & 0xff; + // Encode machine + buffer[6] = MACHINE_ID & 0xff; + buffer[5] = (MACHINE_ID >> 8) & 0xff; + buffer[4] = (MACHINE_ID >> 16) & 0xff; + // Encode pid + buffer[8] = pid & 0xff; + buffer[7] = (pid >> 8) & 0xff; + // Encode index + buffer[11] = inc & 0xff; + buffer[10] = (inc >> 8) & 0xff; + buffer[9] = (inc >> 16) & 0xff; + // Return the buffer + return buffer; +}; + +/** +* Converts the id into a 24 byte hex string for printing +* +* @param {String} format The Buffer toString format parameter. +* @return {String} return the 24 byte hex string representation. +* @ignore +*/ +ObjectID.prototype.toString = function(format) { + // Is the id a buffer then use the buffer toString method to return the format + if (this.id && this.id.copy) { + return this.id.toString(typeof format === 'string' ? format : 'hex'); + } + + // if(this.buffer ) + return this.toHexString(); +}; + +/** +* Converts to a string representation of this Id. +* +* @return {String} return the 24 byte hex string representation. +* @ignore +*/ +ObjectID.prototype[inspect] = ObjectID.prototype.toString; + +/** +* Converts to its JSON representation. +* +* @return {String} return the 24 byte hex string representation. +* @ignore +*/ +ObjectID.prototype.toJSON = function() { + return this.toHexString(); +}; + +/** +* Compares the equality of this ObjectID with `otherID`. +* +* @method +* @param {object} otherID ObjectID instance to compare against. +* @return {boolean} the result of comparing two ObjectID's +*/ +ObjectID.prototype.equals = function equals(otherId) { + // var id; + + if (otherId instanceof ObjectID) { + return this.toString() === otherId.toString(); + } else if ( + typeof otherId === 'string' && + ObjectID.isValid(otherId) && + otherId.length === 12 && + this.id instanceof _Buffer + ) { + return otherId === this.id.toString('binary'); + } else if (typeof otherId === 'string' && ObjectID.isValid(otherId) && otherId.length === 24) { + return otherId.toLowerCase() === this.toHexString(); + } else if (typeof otherId === 'string' && ObjectID.isValid(otherId) && otherId.length === 12) { + return otherId === this.id; + } else if (otherId != null && (otherId instanceof ObjectID || otherId.toHexString)) { + return otherId.toHexString() === this.toHexString(); + } else { + return false; + } +}; + +/** +* Returns the generation date (accurate up to the second) that this ID was generated. +* +* @method +* @return {date} the generation date +*/ +ObjectID.prototype.getTimestamp = function() { + var timestamp = new Date(); + var time = this.id[3] | (this.id[2] << 8) | (this.id[1] << 16) | (this.id[0] << 24); + timestamp.setTime(Math.floor(time) * 1000); + return timestamp; +}; + +/** +* @ignore +*/ +ObjectID.index = ~~(Math.random() * 0xffffff); + +/** +* @ignore +*/ +ObjectID.createPk = function createPk() { + return new ObjectID(); +}; + +/** +* Creates an ObjectID from a second based number, with the rest of the ObjectID zeroed out. Used for comparisons or sorting the ObjectID. +* +* @method +* @param {number} time an integer number representing a number of seconds. +* @return {ObjectID} return the created ObjectID +*/ +ObjectID.createFromTime = function createFromTime(time) { + var buffer = new Buffer([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); + // Encode time into first 4 bytes + buffer[3] = time & 0xff; + buffer[2] = (time >> 8) & 0xff; + buffer[1] = (time >> 16) & 0xff; + buffer[0] = (time >> 24) & 0xff; + // Return the new objectId + return new ObjectID(buffer); +}; + +// Lookup tables +//var encodeLookup = '0123456789abcdef'.split(''); +var decodeLookup = []; +i = 0; +while (i < 10) decodeLookup[0x30 + i] = i++; +while (i < 16) decodeLookup[0x41 - 10 + i] = decodeLookup[0x61 - 10 + i] = i++; + +var _Buffer = Buffer; +var convertToHex = function(bytes) { + return bytes.toString('hex'); +}; + +/** +* Creates an ObjectID from a hex string representation of an ObjectID. +* +* @method +* @param {string} hexString create a ObjectID from a passed in 24 byte hexstring. +* @return {ObjectID} return the created ObjectID +*/ +ObjectID.createFromHexString = function createFromHexString(string) { + // Throw an error if it's not a valid setup + if (typeof string === 'undefined' || (string != null && string.length !== 24)) { + throw new Error( + 'Argument passed in must be a single String of 12 bytes or a string of 24 hex characters' + ); + } + + // Use Buffer.from method if available + if (hasBufferType) return new ObjectID(new Buffer(string, 'hex')); + + // Calculate lengths + var array = new _Buffer(12); + var n = 0; + var i = 0; + + while (i < 24) { + array[n++] = (decodeLookup[string.charCodeAt(i++)] << 4) | decodeLookup[string.charCodeAt(i++)]; + } + + return new ObjectID(array); +}; + +/** +* Checks if a value is a valid bson ObjectId +* +* @method +* @return {boolean} return true if the value is a valid bson ObjectId, return false otherwise. +*/ +ObjectID.isValid = function isValid(id) { + if (id == null) return false; + + if (typeof id === 'number') { + return true; + } + + if (typeof id === 'string') { + return id.length === 12 || (id.length === 24 && checkForHexRegExp.test(id)); + } + + if (id instanceof ObjectID) { + return true; + } + + if (id instanceof _Buffer) { + return true; + } + + // Duck-Typing detection of ObjectId like objects + if (id.toHexString) { + return id.id.length === 12 || (id.id.length === 24 && checkForHexRegExp.test(id.id)); + } + + return false; +}; + +/** +* @ignore +*/ +Object.defineProperty(ObjectID.prototype, 'generationTime', { + enumerable: true, + get: function() { + return this.id[3] | (this.id[2] << 8) | (this.id[1] << 16) | (this.id[0] << 24); + }, + set: function(value) { + // Encode time into first 4 bytes + this.id[3] = value & 0xff; + this.id[2] = (value >> 8) & 0xff; + this.id[1] = (value >> 16) & 0xff; + this.id[0] = (value >> 24) & 0xff; + } +}); + +/** + * Expose. + */ +module.exports = ObjectID; +module.exports.ObjectID = ObjectID; +module.exports.ObjectId = ObjectID; diff --git a/node_modules/bson/lib/bson/parser/calculate_size.js b/node_modules/bson/lib/bson/parser/calculate_size.js new file mode 100644 index 0000000..f174519 --- /dev/null +++ b/node_modules/bson/lib/bson/parser/calculate_size.js @@ -0,0 +1,255 @@ +'use strict'; + +var Long = require('../long').Long, + Double = require('../double').Double, + Timestamp = require('../timestamp').Timestamp, + ObjectID = require('../objectid').ObjectID, + Symbol = require('../symbol').Symbol, + BSONRegExp = require('../regexp').BSONRegExp, + Code = require('../code').Code, + Decimal128 = require('../decimal128'), + MinKey = require('../min_key').MinKey, + MaxKey = require('../max_key').MaxKey, + DBRef = require('../db_ref').DBRef, + Binary = require('../binary').Binary; + +var normalizedFunctionString = require('./utils').normalizedFunctionString; + +// To ensure that 0.4 of node works correctly +var isDate = function isDate(d) { + return typeof d === 'object' && Object.prototype.toString.call(d) === '[object Date]'; +}; + +var calculateObjectSize = function calculateObjectSize( + object, + serializeFunctions, + ignoreUndefined +) { + var totalLength = 4 + 1; + + if (Array.isArray(object)) { + for (var i = 0; i < object.length; i++) { + totalLength += calculateElement( + i.toString(), + object[i], + serializeFunctions, + true, + ignoreUndefined + ); + } + } else { + // If we have toBSON defined, override the current object + if (object.toBSON) { + object = object.toBSON(); + } + + // Calculate size + for (var key in object) { + totalLength += calculateElement(key, object[key], serializeFunctions, false, ignoreUndefined); + } + } + + return totalLength; +}; + +/** + * @ignore + * @api private + */ +function calculateElement(name, value, serializeFunctions, isArray, ignoreUndefined) { + // If we have toBSON defined, override the current object + if (value && value.toBSON) { + value = value.toBSON(); + } + + switch (typeof value) { + case 'string': + return 1 + Buffer.byteLength(name, 'utf8') + 1 + 4 + Buffer.byteLength(value, 'utf8') + 1; + case 'number': + if (Math.floor(value) === value && value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { + if (value >= BSON.BSON_INT32_MIN && value <= BSON.BSON_INT32_MAX) { + // 32 bit + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (4 + 1); + } else { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); + } + } else { + // 64 bit + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); + } + case 'undefined': + if (isArray || !ignoreUndefined) + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1; + return 0; + case 'boolean': + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (1 + 1); + case 'object': + if ( + value == null || + value instanceof MinKey || + value instanceof MaxKey || + value['_bsontype'] === 'MinKey' || + value['_bsontype'] === 'MaxKey' + ) { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1; + } else if (value instanceof ObjectID || value['_bsontype'] === 'ObjectID') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (12 + 1); + } else if (value instanceof Date || isDate(value)) { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); + } else if (typeof Buffer !== 'undefined' && Buffer.isBuffer(value)) { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (1 + 4 + 1) + value.length + ); + } else if ( + value instanceof Long || + value instanceof Double || + value instanceof Timestamp || + value['_bsontype'] === 'Long' || + value['_bsontype'] === 'Double' || + value['_bsontype'] === 'Timestamp' + ) { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); + } else if (value instanceof Decimal128 || value['_bsontype'] === 'Decimal128') { + return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (16 + 1); + } else if (value instanceof Code || value['_bsontype'] === 'Code') { + // Calculate size depending on the availability of a scope + if (value.scope != null && Object.keys(value.scope).length > 0) { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + 1 + + 4 + + 4 + + Buffer.byteLength(value.code.toString(), 'utf8') + + 1 + + calculateObjectSize(value.scope, serializeFunctions, ignoreUndefined) + ); + } else { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + 1 + + 4 + + Buffer.byteLength(value.code.toString(), 'utf8') + + 1 + ); + } + } else if (value instanceof Binary || value['_bsontype'] === 'Binary') { + // Check what kind of subtype we have + if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + (value.position + 1 + 4 + 1 + 4) + ); + } else { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (value.position + 1 + 4 + 1) + ); + } + } else if (value instanceof Symbol || value['_bsontype'] === 'Symbol') { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + Buffer.byteLength(value.value, 'utf8') + + 4 + + 1 + + 1 + ); + } else if (value instanceof DBRef || value['_bsontype'] === 'DBRef') { + // Set up correct object for serialization + var ordered_values = { + $ref: value.namespace, + $id: value.oid + }; + + // Add db reference if it exists + if (null != value.db) { + ordered_values['$db'] = value.db; + } + + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + 1 + + calculateObjectSize(ordered_values, serializeFunctions, ignoreUndefined) + ); + } else if ( + value instanceof RegExp || + Object.prototype.toString.call(value) === '[object RegExp]' + ) { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + 1 + + Buffer.byteLength(value.source, 'utf8') + + 1 + + (value.global ? 1 : 0) + + (value.ignoreCase ? 1 : 0) + + (value.multiline ? 1 : 0) + + 1 + ); + } else if (value instanceof BSONRegExp || value['_bsontype'] === 'BSONRegExp') { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + 1 + + Buffer.byteLength(value.pattern, 'utf8') + + 1 + + Buffer.byteLength(value.options, 'utf8') + + 1 + ); + } else { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + calculateObjectSize(value, serializeFunctions, ignoreUndefined) + + 1 + ); + } + case 'function': + // WTF for 0.4.X where typeof /someregexp/ === 'function' + if ( + value instanceof RegExp || + Object.prototype.toString.call(value) === '[object RegExp]' || + String.call(value) === '[object RegExp]' + ) { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + 1 + + Buffer.byteLength(value.source, 'utf8') + + 1 + + (value.global ? 1 : 0) + + (value.ignoreCase ? 1 : 0) + + (value.multiline ? 1 : 0) + + 1 + ); + } else { + if (serializeFunctions && value.scope != null && Object.keys(value.scope).length > 0) { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + 1 + + 4 + + 4 + + Buffer.byteLength(normalizedFunctionString(value), 'utf8') + + 1 + + calculateObjectSize(value.scope, serializeFunctions, ignoreUndefined) + ); + } else if (serializeFunctions) { + return ( + (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + + 1 + + 4 + + Buffer.byteLength(normalizedFunctionString(value), 'utf8') + + 1 + ); + } + } + } + + return 0; +} + +var BSON = {}; + +// BSON MAX VALUES +BSON.BSON_INT32_MAX = 0x7fffffff; +BSON.BSON_INT32_MIN = -0x80000000; + +// JS MAX PRECISE VALUES +BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. +BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + +module.exports = calculateObjectSize; diff --git a/node_modules/bson/lib/bson/parser/deserializer.js b/node_modules/bson/lib/bson/parser/deserializer.js new file mode 100644 index 0000000..b7f45d7 --- /dev/null +++ b/node_modules/bson/lib/bson/parser/deserializer.js @@ -0,0 +1,780 @@ +'use strict'; + +var Long = require('../long').Long, + Double = require('../double').Double, + Timestamp = require('../timestamp').Timestamp, + ObjectID = require('../objectid').ObjectID, + Symbol = require('../symbol').Symbol, + Code = require('../code').Code, + MinKey = require('../min_key').MinKey, + MaxKey = require('../max_key').MaxKey, + Decimal128 = require('../decimal128'), + Int32 = require('../int_32'), + DBRef = require('../db_ref').DBRef, + BSONRegExp = require('../regexp').BSONRegExp, + Binary = require('../binary').Binary; + +var deserialize = function(buffer, options, isArray) { + options = options == null ? {} : options; + var index = options && options.index ? options.index : 0; + // Read the document size + var size = + buffer[index] | + (buffer[index + 1] << 8) | + (buffer[index + 2] << 16) | + (buffer[index + 3] << 24); + + // Ensure buffer is valid size + if (size < 5 || buffer.length < size || size + index > buffer.length) { + throw new Error('corrupt bson message'); + } + + // Illegal end value + if (buffer[index + size - 1] !== 0) { + throw new Error("One object, sized correctly, with a spot for an EOO, but the EOO isn't 0x00"); + } + + // Start deserializtion + return deserializeObject(buffer, index, options, isArray); +}; + +var deserializeObject = function(buffer, index, options, isArray) { + var evalFunctions = options['evalFunctions'] == null ? false : options['evalFunctions']; + var cacheFunctions = options['cacheFunctions'] == null ? false : options['cacheFunctions']; + var cacheFunctionsCrc32 = + options['cacheFunctionsCrc32'] == null ? false : options['cacheFunctionsCrc32']; + + if (!cacheFunctionsCrc32) var crc32 = null; + + var fieldsAsRaw = options['fieldsAsRaw'] == null ? null : options['fieldsAsRaw']; + + // Return raw bson buffer instead of parsing it + var raw = options['raw'] == null ? false : options['raw']; + + // Return BSONRegExp objects instead of native regular expressions + var bsonRegExp = typeof options['bsonRegExp'] === 'boolean' ? options['bsonRegExp'] : false; + + // Controls the promotion of values vs wrapper classes + var promoteBuffers = options['promoteBuffers'] == null ? false : options['promoteBuffers']; + var promoteLongs = options['promoteLongs'] == null ? true : options['promoteLongs']; + var promoteValues = options['promoteValues'] == null ? true : options['promoteValues']; + + // Set the start index + var startIndex = index; + + // Validate that we have at least 4 bytes of buffer + if (buffer.length < 5) throw new Error('corrupt bson message < 5 bytes long'); + + // Read the document size + var size = + buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24); + + // Ensure buffer is valid size + if (size < 5 || size > buffer.length) throw new Error('corrupt bson message'); + + // Create holding object + var object = isArray ? [] : {}; + // Used for arrays to skip having to perform utf8 decoding + var arrayIndex = 0; + + var done = false; + + // While we have more left data left keep parsing + // while (buffer[index + 1] !== 0) { + while (!done) { + // Read the type + var elementType = buffer[index++]; + // If we get a zero it's the last byte, exit + if (elementType === 0) break; + + // Get the start search index + var i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + var name = isArray ? arrayIndex++ : buffer.toString('utf8', index, i); + + index = i + 1; + + if (elementType === BSON.BSON_DATA_STRING) { + var stringSize = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + if ( + stringSize <= 0 || + stringSize > buffer.length - index || + buffer[index + stringSize - 1] !== 0 + ) + throw new Error('bad string length in bson'); + object[name] = buffer.toString('utf8', index, index + stringSize - 1); + index = index + stringSize; + } else if (elementType === BSON.BSON_DATA_OID) { + var oid = new Buffer(12); + buffer.copy(oid, 0, index, index + 12); + object[name] = new ObjectID(oid); + index = index + 12; + } else if (elementType === BSON.BSON_DATA_INT && promoteValues === false) { + object[name] = new Int32( + buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24) + ); + } else if (elementType === BSON.BSON_DATA_INT) { + object[name] = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + } else if (elementType === BSON.BSON_DATA_NUMBER && promoteValues === false) { + object[name] = new Double(buffer.readDoubleLE(index)); + index = index + 8; + } else if (elementType === BSON.BSON_DATA_NUMBER) { + object[name] = buffer.readDoubleLE(index); + index = index + 8; + } else if (elementType === BSON.BSON_DATA_DATE) { + var lowBits = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + var highBits = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + object[name] = new Date(new Long(lowBits, highBits).toNumber()); + } else if (elementType === BSON.BSON_DATA_BOOLEAN) { + if (buffer[index] !== 0 && buffer[index] !== 1) throw new Error('illegal boolean type value'); + object[name] = buffer[index++] === 1; + } else if (elementType === BSON.BSON_DATA_OBJECT) { + var _index = index; + var objectSize = + buffer[index] | + (buffer[index + 1] << 8) | + (buffer[index + 2] << 16) | + (buffer[index + 3] << 24); + if (objectSize <= 0 || objectSize > buffer.length - index) + throw new Error('bad embedded document length in bson'); + + // We have a raw value + if (raw) { + object[name] = buffer.slice(index, index + objectSize); + } else { + object[name] = deserializeObject(buffer, _index, options, false); + } + + index = index + objectSize; + } else if (elementType === BSON.BSON_DATA_ARRAY) { + _index = index; + objectSize = + buffer[index] | + (buffer[index + 1] << 8) | + (buffer[index + 2] << 16) | + (buffer[index + 3] << 24); + var arrayOptions = options; + + // Stop index + var stopIndex = index + objectSize; + + // All elements of array to be returned as raw bson + if (fieldsAsRaw && fieldsAsRaw[name]) { + arrayOptions = {}; + for (var n in options) arrayOptions[n] = options[n]; + arrayOptions['raw'] = true; + } + + object[name] = deserializeObject(buffer, _index, arrayOptions, true); + index = index + objectSize; + + if (buffer[index - 1] !== 0) throw new Error('invalid array terminator byte'); + if (index !== stopIndex) throw new Error('corrupted array bson'); + } else if (elementType === BSON.BSON_DATA_UNDEFINED) { + object[name] = undefined; + } else if (elementType === BSON.BSON_DATA_NULL) { + object[name] = null; + } else if (elementType === BSON.BSON_DATA_LONG) { + // Unpack the low and high bits + lowBits = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + highBits = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + var long = new Long(lowBits, highBits); + // Promote the long if possible + if (promoteLongs && promoteValues === true) { + object[name] = + long.lessThanOrEqual(JS_INT_MAX_LONG) && long.greaterThanOrEqual(JS_INT_MIN_LONG) + ? long.toNumber() + : long; + } else { + object[name] = long; + } + } else if (elementType === BSON.BSON_DATA_DECIMAL128) { + // Buffer to contain the decimal bytes + var bytes = new Buffer(16); + // Copy the next 16 bytes into the bytes buffer + buffer.copy(bytes, 0, index, index + 16); + // Update index + index = index + 16; + // Assign the new Decimal128 value + var decimal128 = new Decimal128(bytes); + // If we have an alternative mapper use that + object[name] = decimal128.toObject ? decimal128.toObject() : decimal128; + } else if (elementType === BSON.BSON_DATA_BINARY) { + var binarySize = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + var totalBinarySize = binarySize; + var subType = buffer[index++]; + + // Did we have a negative binary size, throw + if (binarySize < 0) throw new Error('Negative binary type element size found'); + + // Is the length longer than the document + if (binarySize > buffer.length) throw new Error('Binary type size larger than document size'); + + // Decode as raw Buffer object if options specifies it + if (buffer['slice'] != null) { + // If we have subtype 2 skip the 4 bytes for the size + if (subType === Binary.SUBTYPE_BYTE_ARRAY) { + binarySize = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + if (binarySize < 0) + throw new Error('Negative binary type element size found for subtype 0x02'); + if (binarySize > totalBinarySize - 4) + throw new Error('Binary type with subtype 0x02 contains to long binary size'); + if (binarySize < totalBinarySize - 4) + throw new Error('Binary type with subtype 0x02 contains to short binary size'); + } + + if (promoteBuffers && promoteValues) { + object[name] = buffer.slice(index, index + binarySize); + } else { + object[name] = new Binary(buffer.slice(index, index + binarySize), subType); + } + } else { + var _buffer = + typeof Uint8Array !== 'undefined' + ? new Uint8Array(new ArrayBuffer(binarySize)) + : new Array(binarySize); + // If we have subtype 2 skip the 4 bytes for the size + if (subType === Binary.SUBTYPE_BYTE_ARRAY) { + binarySize = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + if (binarySize < 0) + throw new Error('Negative binary type element size found for subtype 0x02'); + if (binarySize > totalBinarySize - 4) + throw new Error('Binary type with subtype 0x02 contains to long binary size'); + if (binarySize < totalBinarySize - 4) + throw new Error('Binary type with subtype 0x02 contains to short binary size'); + } + + // Copy the data + for (i = 0; i < binarySize; i++) { + _buffer[i] = buffer[index + i]; + } + + if (promoteBuffers && promoteValues) { + object[name] = _buffer; + } else { + object[name] = new Binary(_buffer, subType); + } + } + + // Update the index + index = index + binarySize; + } else if (elementType === BSON.BSON_DATA_REGEXP && bsonRegExp === false) { + // Get the start search index + i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + // Return the C string + var source = buffer.toString('utf8', index, i); + // Create the regexp + index = i + 1; + + // Get the start search index + i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + // Return the C string + var regExpOptions = buffer.toString('utf8', index, i); + index = i + 1; + + // For each option add the corresponding one for javascript + var optionsArray = new Array(regExpOptions.length); + + // Parse options + for (i = 0; i < regExpOptions.length; i++) { + switch (regExpOptions[i]) { + case 'm': + optionsArray[i] = 'm'; + break; + case 's': + optionsArray[i] = 'g'; + break; + case 'i': + optionsArray[i] = 'i'; + break; + } + } + + object[name] = new RegExp(source, optionsArray.join('')); + } else if (elementType === BSON.BSON_DATA_REGEXP && bsonRegExp === true) { + // Get the start search index + i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + // Return the C string + source = buffer.toString('utf8', index, i); + index = i + 1; + + // Get the start search index + i = index; + // Locate the end of the c string + while (buffer[i] !== 0x00 && i < buffer.length) { + i++; + } + // If are at the end of the buffer there is a problem with the document + if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); + // Return the C string + regExpOptions = buffer.toString('utf8', index, i); + index = i + 1; + + // Set the object + object[name] = new BSONRegExp(source, regExpOptions); + } else if (elementType === BSON.BSON_DATA_SYMBOL) { + stringSize = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + if ( + stringSize <= 0 || + stringSize > buffer.length - index || + buffer[index + stringSize - 1] !== 0 + ) + throw new Error('bad string length in bson'); + object[name] = new Symbol(buffer.toString('utf8', index, index + stringSize - 1)); + index = index + stringSize; + } else if (elementType === BSON.BSON_DATA_TIMESTAMP) { + lowBits = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + highBits = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + object[name] = new Timestamp(lowBits, highBits); + } else if (elementType === BSON.BSON_DATA_MIN_KEY) { + object[name] = new MinKey(); + } else if (elementType === BSON.BSON_DATA_MAX_KEY) { + object[name] = new MaxKey(); + } else if (elementType === BSON.BSON_DATA_CODE) { + stringSize = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + if ( + stringSize <= 0 || + stringSize > buffer.length - index || + buffer[index + stringSize - 1] !== 0 + ) + throw new Error('bad string length in bson'); + var functionString = buffer.toString('utf8', index, index + stringSize - 1); + + // If we are evaluating the functions + if (evalFunctions) { + // If we have cache enabled let's look for the md5 of the function in the cache + if (cacheFunctions) { + var hash = cacheFunctionsCrc32 ? crc32(functionString) : functionString; + // Got to do this to avoid V8 deoptimizing the call due to finding eval + object[name] = isolateEvalWithHash(functionCache, hash, functionString, object); + } else { + object[name] = isolateEval(functionString); + } + } else { + object[name] = new Code(functionString); + } + + // Update parse index position + index = index + stringSize; + } else if (elementType === BSON.BSON_DATA_CODE_W_SCOPE) { + var totalSize = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + + // Element cannot be shorter than totalSize + stringSize + documentSize + terminator + if (totalSize < 4 + 4 + 4 + 1) { + throw new Error('code_w_scope total size shorter minimum expected length'); + } + + // Get the code string size + stringSize = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + // Check if we have a valid string + if ( + stringSize <= 0 || + stringSize > buffer.length - index || + buffer[index + stringSize - 1] !== 0 + ) + throw new Error('bad string length in bson'); + + // Javascript function + functionString = buffer.toString('utf8', index, index + stringSize - 1); + // Update parse index position + index = index + stringSize; + // Parse the element + _index = index; + // Decode the size of the object document + objectSize = + buffer[index] | + (buffer[index + 1] << 8) | + (buffer[index + 2] << 16) | + (buffer[index + 3] << 24); + // Decode the scope object + var scopeObject = deserializeObject(buffer, _index, options, false); + // Adjust the index + index = index + objectSize; + + // Check if field length is to short + if (totalSize < 4 + 4 + objectSize + stringSize) { + throw new Error('code_w_scope total size is to short, truncating scope'); + } + + // Check if totalSize field is to long + if (totalSize > 4 + 4 + objectSize + stringSize) { + throw new Error('code_w_scope total size is to long, clips outer document'); + } + + // If we are evaluating the functions + if (evalFunctions) { + // If we have cache enabled let's look for the md5 of the function in the cache + if (cacheFunctions) { + hash = cacheFunctionsCrc32 ? crc32(functionString) : functionString; + // Got to do this to avoid V8 deoptimizing the call due to finding eval + object[name] = isolateEvalWithHash(functionCache, hash, functionString, object); + } else { + object[name] = isolateEval(functionString); + } + + object[name].scope = scopeObject; + } else { + object[name] = new Code(functionString, scopeObject); + } + } else if (elementType === BSON.BSON_DATA_DBPOINTER) { + // Get the code string size + stringSize = + buffer[index++] | + (buffer[index++] << 8) | + (buffer[index++] << 16) | + (buffer[index++] << 24); + // Check if we have a valid string + if ( + stringSize <= 0 || + stringSize > buffer.length - index || + buffer[index + stringSize - 1] !== 0 + ) + throw new Error('bad string length in bson'); + // Namespace + var namespace = buffer.toString('utf8', index, index + stringSize - 1); + // Update parse index position + index = index + stringSize; + + // Read the oid + var oidBuffer = new Buffer(12); + buffer.copy(oidBuffer, 0, index, index + 12); + oid = new ObjectID(oidBuffer); + + // Update the index + index = index + 12; + + // Split the namespace + var parts = namespace.split('.'); + var db = parts.shift(); + var collection = parts.join('.'); + // Upgrade to DBRef type + object[name] = new DBRef(collection, oid, db); + } else { + throw new Error( + 'Detected unknown BSON type ' + + elementType.toString(16) + + ' for fieldname "' + + name + + '", are you using the latest BSON parser' + ); + } + } + + // Check if the deserialization was against a valid array/object + if (size !== index - startIndex) { + if (isArray) throw new Error('corrupt array bson'); + throw new Error('corrupt object bson'); + } + + // Check if we have a db ref object + if (object['$id'] != null) object = new DBRef(object['$ref'], object['$id'], object['$db']); + return object; +}; + +/** + * Ensure eval is isolated. + * + * @ignore + * @api private + */ +var isolateEvalWithHash = function(functionCache, hash, functionString, object) { + // Contains the value we are going to set + var value = null; + + // Check for cache hit, eval if missing and return cached function + if (functionCache[hash] == null) { + eval('value = ' + functionString); + functionCache[hash] = value; + } + // Set the object + return functionCache[hash].bind(object); +}; + +/** + * Ensure eval is isolated. + * + * @ignore + * @api private + */ +var isolateEval = function(functionString) { + // Contains the value we are going to set + var value = null; + // Eval the function + eval('value = ' + functionString); + return value; +}; + +var BSON = {}; + +/** + * Contains the function cache if we have that enable to allow for avoiding the eval step on each deserialization, comparison is by md5 + * + * @ignore + * @api private + */ +var functionCache = (BSON.functionCache = {}); + +/** + * Number BSON Type + * + * @classconstant BSON_DATA_NUMBER + **/ +BSON.BSON_DATA_NUMBER = 1; +/** + * String BSON Type + * + * @classconstant BSON_DATA_STRING + **/ +BSON.BSON_DATA_STRING = 2; +/** + * Object BSON Type + * + * @classconstant BSON_DATA_OBJECT + **/ +BSON.BSON_DATA_OBJECT = 3; +/** + * Array BSON Type + * + * @classconstant BSON_DATA_ARRAY + **/ +BSON.BSON_DATA_ARRAY = 4; +/** + * Binary BSON Type + * + * @classconstant BSON_DATA_BINARY + **/ +BSON.BSON_DATA_BINARY = 5; +/** + * Binary BSON Type + * + * @classconstant BSON_DATA_UNDEFINED + **/ +BSON.BSON_DATA_UNDEFINED = 6; +/** + * ObjectID BSON Type + * + * @classconstant BSON_DATA_OID + **/ +BSON.BSON_DATA_OID = 7; +/** + * Boolean BSON Type + * + * @classconstant BSON_DATA_BOOLEAN + **/ +BSON.BSON_DATA_BOOLEAN = 8; +/** + * Date BSON Type + * + * @classconstant BSON_DATA_DATE + **/ +BSON.BSON_DATA_DATE = 9; +/** + * null BSON Type + * + * @classconstant BSON_DATA_NULL + **/ +BSON.BSON_DATA_NULL = 10; +/** + * RegExp BSON Type + * + * @classconstant BSON_DATA_REGEXP + **/ +BSON.BSON_DATA_REGEXP = 11; +/** + * Code BSON Type + * + * @classconstant BSON_DATA_DBPOINTER + **/ +BSON.BSON_DATA_DBPOINTER = 12; +/** + * Code BSON Type + * + * @classconstant BSON_DATA_CODE + **/ +BSON.BSON_DATA_CODE = 13; +/** + * Symbol BSON Type + * + * @classconstant BSON_DATA_SYMBOL + **/ +BSON.BSON_DATA_SYMBOL = 14; +/** + * Code with Scope BSON Type + * + * @classconstant BSON_DATA_CODE_W_SCOPE + **/ +BSON.BSON_DATA_CODE_W_SCOPE = 15; +/** + * 32 bit Integer BSON Type + * + * @classconstant BSON_DATA_INT + **/ +BSON.BSON_DATA_INT = 16; +/** + * Timestamp BSON Type + * + * @classconstant BSON_DATA_TIMESTAMP + **/ +BSON.BSON_DATA_TIMESTAMP = 17; +/** + * Long BSON Type + * + * @classconstant BSON_DATA_LONG + **/ +BSON.BSON_DATA_LONG = 18; +/** + * Long BSON Type + * + * @classconstant BSON_DATA_DECIMAL128 + **/ +BSON.BSON_DATA_DECIMAL128 = 19; +/** + * MinKey BSON Type + * + * @classconstant BSON_DATA_MIN_KEY + **/ +BSON.BSON_DATA_MIN_KEY = 0xff; +/** + * MaxKey BSON Type + * + * @classconstant BSON_DATA_MAX_KEY + **/ +BSON.BSON_DATA_MAX_KEY = 0x7f; + +/** + * Binary Default Type + * + * @classconstant BSON_BINARY_SUBTYPE_DEFAULT + **/ +BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0; +/** + * Binary Function Type + * + * @classconstant BSON_BINARY_SUBTYPE_FUNCTION + **/ +BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1; +/** + * Binary Byte Array Type + * + * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY + **/ +BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2; +/** + * Binary UUID Type + * + * @classconstant BSON_BINARY_SUBTYPE_UUID + **/ +BSON.BSON_BINARY_SUBTYPE_UUID = 3; +/** + * Binary MD5 Type + * + * @classconstant BSON_BINARY_SUBTYPE_MD5 + **/ +BSON.BSON_BINARY_SUBTYPE_MD5 = 4; +/** + * Binary User Defined Type + * + * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED + **/ +BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128; + +// BSON MAX VALUES +BSON.BSON_INT32_MAX = 0x7fffffff; +BSON.BSON_INT32_MIN = -0x80000000; + +BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; +BSON.BSON_INT64_MIN = -Math.pow(2, 63); + +// JS MAX PRECISE VALUES +BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. +BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + +// Internal long versions +var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double. +var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double. + +module.exports = deserialize; diff --git a/node_modules/bson/lib/bson/parser/serializer.js b/node_modules/bson/lib/bson/parser/serializer.js new file mode 100644 index 0000000..12c6b2d --- /dev/null +++ b/node_modules/bson/lib/bson/parser/serializer.js @@ -0,0 +1,1182 @@ +'use strict'; + +var writeIEEE754 = require('../float_parser').writeIEEE754, + Long = require('../long').Long, + MinKey = require('../min_key').MinKey, + Map = require('../map'), + Binary = require('../binary').Binary; + +var normalizedFunctionString = require('./utils').normalizedFunctionString; + +// try { +// var _Buffer = Uint8Array; +// } catch (e) { +// _Buffer = Buffer; +// } + +var regexp = /\x00/; // eslint-disable-line no-control-regex + +// To ensure that 0.4 of node works correctly +var isDate = function isDate(d) { + return typeof d === 'object' && Object.prototype.toString.call(d) === '[object Date]'; +}; + +var isRegExp = function isRegExp(d) { + return Object.prototype.toString.call(d) === '[object RegExp]'; +}; + +var serializeString = function(buffer, key, value, index, isArray) { + // Encode String type + buffer[index++] = BSON.BSON_DATA_STRING; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes + 1; + buffer[index - 1] = 0; + // Write the string + var size = buffer.write(value, index + 4, 'utf8'); + // Write the size of the string to buffer + buffer[index + 3] = ((size + 1) >> 24) & 0xff; + buffer[index + 2] = ((size + 1) >> 16) & 0xff; + buffer[index + 1] = ((size + 1) >> 8) & 0xff; + buffer[index] = (size + 1) & 0xff; + // Update index + index = index + 4 + size; + // Write zero + buffer[index++] = 0; + return index; +}; + +var serializeNumber = function(buffer, key, value, index, isArray) { + // We have an integer value + if (Math.floor(value) === value && value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { + // If the value fits in 32 bits encode as int, if it fits in a double + // encode it as a double, otherwise long + if (value >= BSON.BSON_INT32_MIN && value <= BSON.BSON_INT32_MAX) { + // Set int type 32 bits or less + buffer[index++] = BSON.BSON_DATA_INT; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the int value + buffer[index++] = value & 0xff; + buffer[index++] = (value >> 8) & 0xff; + buffer[index++] = (value >> 16) & 0xff; + buffer[index++] = (value >> 24) & 0xff; + } else if (value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { + // Encode as double + buffer[index++] = BSON.BSON_DATA_NUMBER; + // Number of written bytes + numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write float + writeIEEE754(buffer, value, index, 'little', 52, 8); + // Ajust index + index = index + 8; + } else { + // Set long type + buffer[index++] = BSON.BSON_DATA_LONG; + // Number of written bytes + numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + var longVal = Long.fromNumber(value); + var lowBits = longVal.getLowBits(); + var highBits = longVal.getHighBits(); + // Encode low bits + buffer[index++] = lowBits & 0xff; + buffer[index++] = (lowBits >> 8) & 0xff; + buffer[index++] = (lowBits >> 16) & 0xff; + buffer[index++] = (lowBits >> 24) & 0xff; + // Encode high bits + buffer[index++] = highBits & 0xff; + buffer[index++] = (highBits >> 8) & 0xff; + buffer[index++] = (highBits >> 16) & 0xff; + buffer[index++] = (highBits >> 24) & 0xff; + } + } else { + // Encode as double + buffer[index++] = BSON.BSON_DATA_NUMBER; + // Number of written bytes + numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write float + writeIEEE754(buffer, value, index, 'little', 52, 8); + // Ajust index + index = index + 8; + } + + return index; +}; + +var serializeNull = function(buffer, key, value, index, isArray) { + // Set long type + buffer[index++] = BSON.BSON_DATA_NULL; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + return index; +}; + +var serializeBoolean = function(buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_BOOLEAN; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Encode the boolean value + buffer[index++] = value ? 1 : 0; + return index; +}; + +var serializeDate = function(buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_DATE; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + // Write the date + var dateInMilis = Long.fromNumber(value.getTime()); + var lowBits = dateInMilis.getLowBits(); + var highBits = dateInMilis.getHighBits(); + // Encode low bits + buffer[index++] = lowBits & 0xff; + buffer[index++] = (lowBits >> 8) & 0xff; + buffer[index++] = (lowBits >> 16) & 0xff; + buffer[index++] = (lowBits >> 24) & 0xff; + // Encode high bits + buffer[index++] = highBits & 0xff; + buffer[index++] = (highBits >> 8) & 0xff; + buffer[index++] = (highBits >> 16) & 0xff; + buffer[index++] = (highBits >> 24) & 0xff; + return index; +}; + +var serializeRegExp = function(buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_REGEXP; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + if (value.source && value.source.match(regexp) != null) { + throw Error('value ' + value.source + ' must not contain null bytes'); + } + // Adjust the index + index = index + buffer.write(value.source, index, 'utf8'); + // Write zero + buffer[index++] = 0x00; + // Write the parameters + if (value.global) buffer[index++] = 0x73; // s + if (value.ignoreCase) buffer[index++] = 0x69; // i + if (value.multiline) buffer[index++] = 0x6d; // m + // Add ending zero + buffer[index++] = 0x00; + return index; +}; + +var serializeBSONRegExp = function(buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_REGEXP; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + // Check the pattern for 0 bytes + if (value.pattern.match(regexp) != null) { + // The BSON spec doesn't allow keys with null bytes because keys are + // null-terminated. + throw Error('pattern ' + value.pattern + ' must not contain null bytes'); + } + + // Adjust the index + index = index + buffer.write(value.pattern, index, 'utf8'); + // Write zero + buffer[index++] = 0x00; + // Write the options + index = + index + + buffer.write( + value.options + .split('') + .sort() + .join(''), + index, + 'utf8' + ); + // Add ending zero + buffer[index++] = 0x00; + return index; +}; + +var serializeMinMax = function(buffer, key, value, index, isArray) { + // Write the type of either min or max key + if (value === null) { + buffer[index++] = BSON.BSON_DATA_NULL; + } else if (value instanceof MinKey) { + buffer[index++] = BSON.BSON_DATA_MIN_KEY; + } else { + buffer[index++] = BSON.BSON_DATA_MAX_KEY; + } + + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + return index; +}; + +var serializeObjectId = function(buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_OID; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + // Write the objectId into the shared buffer + if (typeof value.id === 'string') { + buffer.write(value.id, index, 'binary'); + } else if (value.id && value.id.copy) { + value.id.copy(buffer, index, 0, 12); + } else { + throw new Error('object [' + JSON.stringify(value) + '] is not a valid ObjectId'); + } + + // Ajust index + return index + 12; +}; + +var serializeBuffer = function(buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_BINARY; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Get size of the buffer (current write point) + var size = value.length; + // Write the size of the string to buffer + buffer[index++] = size & 0xff; + buffer[index++] = (size >> 8) & 0xff; + buffer[index++] = (size >> 16) & 0xff; + buffer[index++] = (size >> 24) & 0xff; + // Write the default subtype + buffer[index++] = BSON.BSON_BINARY_SUBTYPE_DEFAULT; + // Copy the content form the binary field to the buffer + value.copy(buffer, index, 0, size); + // Adjust the index + index = index + size; + return index; +}; + +var serializeObject = function( + buffer, + key, + value, + index, + checkKeys, + depth, + serializeFunctions, + ignoreUndefined, + isArray, + path +) { + for (var i = 0; i < path.length; i++) { + if (path[i] === value) throw new Error('cyclic dependency detected'); + } + + // Push value to stack + path.push(value); + // Write the type + buffer[index++] = Array.isArray(value) ? BSON.BSON_DATA_ARRAY : BSON.BSON_DATA_OBJECT; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + var endIndex = serializeInto( + buffer, + value, + checkKeys, + index, + depth + 1, + serializeFunctions, + ignoreUndefined, + path + ); + // Pop stack + path.pop(); + // Write size + return endIndex; +}; + +var serializeDecimal128 = function(buffer, key, value, index, isArray) { + buffer[index++] = BSON.BSON_DATA_DECIMAL128; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the data from the value + value.bytes.copy(buffer, index, 0, 16); + return index + 16; +}; + +var serializeLong = function(buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = value._bsontype === 'Long' ? BSON.BSON_DATA_LONG : BSON.BSON_DATA_TIMESTAMP; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the date + var lowBits = value.getLowBits(); + var highBits = value.getHighBits(); + // Encode low bits + buffer[index++] = lowBits & 0xff; + buffer[index++] = (lowBits >> 8) & 0xff; + buffer[index++] = (lowBits >> 16) & 0xff; + buffer[index++] = (lowBits >> 24) & 0xff; + // Encode high bits + buffer[index++] = highBits & 0xff; + buffer[index++] = (highBits >> 8) & 0xff; + buffer[index++] = (highBits >> 16) & 0xff; + buffer[index++] = (highBits >> 24) & 0xff; + return index; +}; + +var serializeInt32 = function(buffer, key, value, index, isArray) { + // Set int type 32 bits or less + buffer[index++] = BSON.BSON_DATA_INT; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the int value + buffer[index++] = value & 0xff; + buffer[index++] = (value >> 8) & 0xff; + buffer[index++] = (value >> 16) & 0xff; + buffer[index++] = (value >> 24) & 0xff; + return index; +}; + +var serializeDouble = function(buffer, key, value, index, isArray) { + // Encode as double + buffer[index++] = BSON.BSON_DATA_NUMBER; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write float + writeIEEE754(buffer, value, index, 'little', 52, 8); + // Ajust index + index = index + 8; + return index; +}; + +var serializeFunction = function(buffer, key, value, index, checkKeys, depth, isArray) { + buffer[index++] = BSON.BSON_DATA_CODE; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Function string + var functionString = normalizedFunctionString(value); + + // Write the string + var size = buffer.write(functionString, index + 4, 'utf8') + 1; + // Write the size of the string to buffer + buffer[index] = size & 0xff; + buffer[index + 1] = (size >> 8) & 0xff; + buffer[index + 2] = (size >> 16) & 0xff; + buffer[index + 3] = (size >> 24) & 0xff; + // Update index + index = index + 4 + size - 1; + // Write zero + buffer[index++] = 0; + return index; +}; + +var serializeCode = function( + buffer, + key, + value, + index, + checkKeys, + depth, + serializeFunctions, + ignoreUndefined, + isArray +) { + if (value.scope && typeof value.scope === 'object') { + // Write the type + buffer[index++] = BSON.BSON_DATA_CODE_W_SCOPE; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + // Starting index + var startIndex = index; + + // Serialize the function + // Get the function string + var functionString = typeof value.code === 'string' ? value.code : value.code.toString(); + // Index adjustment + index = index + 4; + // Write string into buffer + var codeSize = buffer.write(functionString, index + 4, 'utf8') + 1; + // Write the size of the string to buffer + buffer[index] = codeSize & 0xff; + buffer[index + 1] = (codeSize >> 8) & 0xff; + buffer[index + 2] = (codeSize >> 16) & 0xff; + buffer[index + 3] = (codeSize >> 24) & 0xff; + // Write end 0 + buffer[index + 4 + codeSize - 1] = 0; + // Write the + index = index + codeSize + 4; + + // + // Serialize the scope value + var endIndex = serializeInto( + buffer, + value.scope, + checkKeys, + index, + depth + 1, + serializeFunctions, + ignoreUndefined + ); + index = endIndex - 1; + + // Writ the total + var totalSize = endIndex - startIndex; + + // Write the total size of the object + buffer[startIndex++] = totalSize & 0xff; + buffer[startIndex++] = (totalSize >> 8) & 0xff; + buffer[startIndex++] = (totalSize >> 16) & 0xff; + buffer[startIndex++] = (totalSize >> 24) & 0xff; + // Write trailing zero + buffer[index++] = 0; + } else { + buffer[index++] = BSON.BSON_DATA_CODE; + // Number of written bytes + numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Function string + functionString = value.code.toString(); + // Write the string + var size = buffer.write(functionString, index + 4, 'utf8') + 1; + // Write the size of the string to buffer + buffer[index] = size & 0xff; + buffer[index + 1] = (size >> 8) & 0xff; + buffer[index + 2] = (size >> 16) & 0xff; + buffer[index + 3] = (size >> 24) & 0xff; + // Update index + index = index + 4 + size - 1; + // Write zero + buffer[index++] = 0; + } + + return index; +}; + +var serializeBinary = function(buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_BINARY; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Extract the buffer + var data = value.value(true); + // Calculate size + var size = value.position; + // Add the deprecated 02 type 4 bytes of size to total + if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) size = size + 4; + // Write the size of the string to buffer + buffer[index++] = size & 0xff; + buffer[index++] = (size >> 8) & 0xff; + buffer[index++] = (size >> 16) & 0xff; + buffer[index++] = (size >> 24) & 0xff; + // Write the subtype to the buffer + buffer[index++] = value.sub_type; + + // If we have binary type 2 the 4 first bytes are the size + if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) { + size = size - 4; + buffer[index++] = size & 0xff; + buffer[index++] = (size >> 8) & 0xff; + buffer[index++] = (size >> 16) & 0xff; + buffer[index++] = (size >> 24) & 0xff; + } + + // Write the data to the object + data.copy(buffer, index, 0, value.position); + // Adjust the index + index = index + value.position; + return index; +}; + +var serializeSymbol = function(buffer, key, value, index, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_SYMBOL; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + // Write the string + var size = buffer.write(value.value, index + 4, 'utf8') + 1; + // Write the size of the string to buffer + buffer[index] = size & 0xff; + buffer[index + 1] = (size >> 8) & 0xff; + buffer[index + 2] = (size >> 16) & 0xff; + buffer[index + 3] = (size >> 24) & 0xff; + // Update index + index = index + 4 + size - 1; + // Write zero + buffer[index++] = 0x00; + return index; +}; + +var serializeDBRef = function(buffer, key, value, index, depth, serializeFunctions, isArray) { + // Write the type + buffer[index++] = BSON.BSON_DATA_OBJECT; + // Number of written bytes + var numberOfWrittenBytes = !isArray + ? buffer.write(key, index, 'utf8') + : buffer.write(key, index, 'ascii'); + + // Encode the name + index = index + numberOfWrittenBytes; + buffer[index++] = 0; + + var startIndex = index; + var endIndex; + + // Serialize object + if (null != value.db) { + endIndex = serializeInto( + buffer, + { + $ref: value.namespace, + $id: value.oid, + $db: value.db + }, + false, + index, + depth + 1, + serializeFunctions + ); + } else { + endIndex = serializeInto( + buffer, + { + $ref: value.namespace, + $id: value.oid + }, + false, + index, + depth + 1, + serializeFunctions + ); + } + + // Calculate object size + var size = endIndex - startIndex; + // Write the size + buffer[startIndex++] = size & 0xff; + buffer[startIndex++] = (size >> 8) & 0xff; + buffer[startIndex++] = (size >> 16) & 0xff; + buffer[startIndex++] = (size >> 24) & 0xff; + // Set index + return endIndex; +}; + +var serializeInto = function serializeInto( + buffer, + object, + checkKeys, + startingIndex, + depth, + serializeFunctions, + ignoreUndefined, + path +) { + startingIndex = startingIndex || 0; + path = path || []; + + // Push the object to the path + path.push(object); + + // Start place to serialize into + var index = startingIndex + 4; + // var self = this; + + // Special case isArray + if (Array.isArray(object)) { + // Get object keys + for (var i = 0; i < object.length; i++) { + var key = '' + i; + var value = object[i]; + + // Is there an override value + if (value && value.toBSON) { + if (typeof value.toBSON !== 'function') throw new Error('toBSON is not a function'); + value = value.toBSON(); + } + + var type = typeof value; + if (type === 'string') { + index = serializeString(buffer, key, value, index, true); + } else if (type === 'number') { + index = serializeNumber(buffer, key, value, index, true); + } else if (type === 'boolean') { + index = serializeBoolean(buffer, key, value, index, true); + } else if (value instanceof Date || isDate(value)) { + index = serializeDate(buffer, key, value, index, true); + } else if (value === undefined) { + index = serializeNull(buffer, key, value, index, true); + } else if (value === null) { + index = serializeNull(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'ObjectID') { + index = serializeObjectId(buffer, key, value, index, true); + } else if (Buffer.isBuffer(value)) { + index = serializeBuffer(buffer, key, value, index, true); + } else if (value instanceof RegExp || isRegExp(value)) { + index = serializeRegExp(buffer, key, value, index, true); + } else if (type === 'object' && value['_bsontype'] == null) { + index = serializeObject( + buffer, + key, + value, + index, + checkKeys, + depth, + serializeFunctions, + ignoreUndefined, + true, + path + ); + } else if (type === 'object' && value['_bsontype'] === 'Decimal128') { + index = serializeDecimal128(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'Long' || value['_bsontype'] === 'Timestamp') { + index = serializeLong(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'Double') { + index = serializeDouble(buffer, key, value, index, true); + } else if (typeof value === 'function' && serializeFunctions) { + index = serializeFunction( + buffer, + key, + value, + index, + checkKeys, + depth, + serializeFunctions, + true + ); + } else if (value['_bsontype'] === 'Code') { + index = serializeCode( + buffer, + key, + value, + index, + checkKeys, + depth, + serializeFunctions, + ignoreUndefined, + true + ); + } else if (value['_bsontype'] === 'Binary') { + index = serializeBinary(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'Symbol') { + index = serializeSymbol(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'DBRef') { + index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions, true); + } else if (value['_bsontype'] === 'BSONRegExp') { + index = serializeBSONRegExp(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'Int32') { + index = serializeInt32(buffer, key, value, index, true); + } else if (value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { + index = serializeMinMax(buffer, key, value, index, true); + } + } + } else if (object instanceof Map) { + var iterator = object.entries(); + var done = false; + + while (!done) { + // Unpack the next entry + var entry = iterator.next(); + done = entry.done; + // Are we done, then skip and terminate + if (done) continue; + + // Get the entry values + key = entry.value[0]; + value = entry.value[1]; + + // Check the type of the value + type = typeof value; + + // Check the key and throw error if it's illegal + if (key !== '$db' && key !== '$ref' && key !== '$id') { + if (key.match(regexp) != null) { + // The BSON spec doesn't allow keys with null bytes because keys are + // null-terminated. + throw Error('key ' + key + ' must not contain null bytes'); + } + + if (checkKeys) { + if ('$' === key[0]) { + throw Error('key ' + key + " must not start with '$'"); + } else if (~key.indexOf('.')) { + throw Error('key ' + key + " must not contain '.'"); + } + } + } + + if (type === 'string') { + index = serializeString(buffer, key, value, index); + } else if (type === 'number') { + index = serializeNumber(buffer, key, value, index); + } else if (type === 'boolean') { + index = serializeBoolean(buffer, key, value, index); + } else if (value instanceof Date || isDate(value)) { + index = serializeDate(buffer, key, value, index); + // } else if (value === undefined && ignoreUndefined === true) { + } else if (value === null || (value === undefined && ignoreUndefined === false)) { + index = serializeNull(buffer, key, value, index); + } else if (value['_bsontype'] === 'ObjectID') { + index = serializeObjectId(buffer, key, value, index); + } else if (Buffer.isBuffer(value)) { + index = serializeBuffer(buffer, key, value, index); + } else if (value instanceof RegExp || isRegExp(value)) { + index = serializeRegExp(buffer, key, value, index); + } else if (type === 'object' && value['_bsontype'] == null) { + index = serializeObject( + buffer, + key, + value, + index, + checkKeys, + depth, + serializeFunctions, + ignoreUndefined, + false, + path + ); + } else if (type === 'object' && value['_bsontype'] === 'Decimal128') { + index = serializeDecimal128(buffer, key, value, index); + } else if (value['_bsontype'] === 'Long' || value['_bsontype'] === 'Timestamp') { + index = serializeLong(buffer, key, value, index); + } else if (value['_bsontype'] === 'Double') { + index = serializeDouble(buffer, key, value, index); + } else if (value['_bsontype'] === 'Code') { + index = serializeCode( + buffer, + key, + value, + index, + checkKeys, + depth, + serializeFunctions, + ignoreUndefined + ); + } else if (typeof value === 'function' && serializeFunctions) { + index = serializeFunction(buffer, key, value, index, checkKeys, depth, serializeFunctions); + } else if (value['_bsontype'] === 'Binary') { + index = serializeBinary(buffer, key, value, index); + } else if (value['_bsontype'] === 'Symbol') { + index = serializeSymbol(buffer, key, value, index); + } else if (value['_bsontype'] === 'DBRef') { + index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions); + } else if (value['_bsontype'] === 'BSONRegExp') { + index = serializeBSONRegExp(buffer, key, value, index); + } else if (value['_bsontype'] === 'Int32') { + index = serializeInt32(buffer, key, value, index); + } else if (value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { + index = serializeMinMax(buffer, key, value, index); + } + } + } else { + // Did we provide a custom serialization method + if (object.toBSON) { + if (typeof object.toBSON !== 'function') throw new Error('toBSON is not a function'); + object = object.toBSON(); + if (object != null && typeof object !== 'object') + throw new Error('toBSON function did not return an object'); + } + + // Iterate over all the keys + for (key in object) { + value = object[key]; + // Is there an override value + if (value && value.toBSON) { + if (typeof value.toBSON !== 'function') throw new Error('toBSON is not a function'); + value = value.toBSON(); + } + + // Check the type of the value + type = typeof value; + + // Check the key and throw error if it's illegal + if (key !== '$db' && key !== '$ref' && key !== '$id') { + if (key.match(regexp) != null) { + // The BSON spec doesn't allow keys with null bytes because keys are + // null-terminated. + throw Error('key ' + key + ' must not contain null bytes'); + } + + if (checkKeys) { + if ('$' === key[0]) { + throw Error('key ' + key + " must not start with '$'"); + } else if (~key.indexOf('.')) { + throw Error('key ' + key + " must not contain '.'"); + } + } + } + + if (type === 'string') { + index = serializeString(buffer, key, value, index); + } else if (type === 'number') { + index = serializeNumber(buffer, key, value, index); + } else if (type === 'boolean') { + index = serializeBoolean(buffer, key, value, index); + } else if (value instanceof Date || isDate(value)) { + index = serializeDate(buffer, key, value, index); + } else if (value === undefined) { + if (ignoreUndefined === false) index = serializeNull(buffer, key, value, index); + } else if (value === null) { + index = serializeNull(buffer, key, value, index); + } else if (value['_bsontype'] === 'ObjectID') { + index = serializeObjectId(buffer, key, value, index); + } else if (Buffer.isBuffer(value)) { + index = serializeBuffer(buffer, key, value, index); + } else if (value instanceof RegExp || isRegExp(value)) { + index = serializeRegExp(buffer, key, value, index); + } else if (type === 'object' && value['_bsontype'] == null) { + index = serializeObject( + buffer, + key, + value, + index, + checkKeys, + depth, + serializeFunctions, + ignoreUndefined, + false, + path + ); + } else if (type === 'object' && value['_bsontype'] === 'Decimal128') { + index = serializeDecimal128(buffer, key, value, index); + } else if (value['_bsontype'] === 'Long' || value['_bsontype'] === 'Timestamp') { + index = serializeLong(buffer, key, value, index); + } else if (value['_bsontype'] === 'Double') { + index = serializeDouble(buffer, key, value, index); + } else if (value['_bsontype'] === 'Code') { + index = serializeCode( + buffer, + key, + value, + index, + checkKeys, + depth, + serializeFunctions, + ignoreUndefined + ); + } else if (typeof value === 'function' && serializeFunctions) { + index = serializeFunction(buffer, key, value, index, checkKeys, depth, serializeFunctions); + } else if (value['_bsontype'] === 'Binary') { + index = serializeBinary(buffer, key, value, index); + } else if (value['_bsontype'] === 'Symbol') { + index = serializeSymbol(buffer, key, value, index); + } else if (value['_bsontype'] === 'DBRef') { + index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions); + } else if (value['_bsontype'] === 'BSONRegExp') { + index = serializeBSONRegExp(buffer, key, value, index); + } else if (value['_bsontype'] === 'Int32') { + index = serializeInt32(buffer, key, value, index); + } else if (value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { + index = serializeMinMax(buffer, key, value, index); + } + } + } + + // Remove the path + path.pop(); + + // Final padding byte for object + buffer[index++] = 0x00; + + // Final size + var size = index - startingIndex; + // Write the size of the object + buffer[startingIndex++] = size & 0xff; + buffer[startingIndex++] = (size >> 8) & 0xff; + buffer[startingIndex++] = (size >> 16) & 0xff; + buffer[startingIndex++] = (size >> 24) & 0xff; + return index; +}; + +var BSON = {}; + +/** + * Contains the function cache if we have that enable to allow for avoiding the eval step on each deserialization, comparison is by md5 + * + * @ignore + * @api private + */ +// var functionCache = (BSON.functionCache = {}); + +/** + * Number BSON Type + * + * @classconstant BSON_DATA_NUMBER + **/ +BSON.BSON_DATA_NUMBER = 1; +/** + * String BSON Type + * + * @classconstant BSON_DATA_STRING + **/ +BSON.BSON_DATA_STRING = 2; +/** + * Object BSON Type + * + * @classconstant BSON_DATA_OBJECT + **/ +BSON.BSON_DATA_OBJECT = 3; +/** + * Array BSON Type + * + * @classconstant BSON_DATA_ARRAY + **/ +BSON.BSON_DATA_ARRAY = 4; +/** + * Binary BSON Type + * + * @classconstant BSON_DATA_BINARY + **/ +BSON.BSON_DATA_BINARY = 5; +/** + * ObjectID BSON Type, deprecated + * + * @classconstant BSON_DATA_UNDEFINED + **/ +BSON.BSON_DATA_UNDEFINED = 6; +/** + * ObjectID BSON Type + * + * @classconstant BSON_DATA_OID + **/ +BSON.BSON_DATA_OID = 7; +/** + * Boolean BSON Type + * + * @classconstant BSON_DATA_BOOLEAN + **/ +BSON.BSON_DATA_BOOLEAN = 8; +/** + * Date BSON Type + * + * @classconstant BSON_DATA_DATE + **/ +BSON.BSON_DATA_DATE = 9; +/** + * null BSON Type + * + * @classconstant BSON_DATA_NULL + **/ +BSON.BSON_DATA_NULL = 10; +/** + * RegExp BSON Type + * + * @classconstant BSON_DATA_REGEXP + **/ +BSON.BSON_DATA_REGEXP = 11; +/** + * Code BSON Type + * + * @classconstant BSON_DATA_CODE + **/ +BSON.BSON_DATA_CODE = 13; +/** + * Symbol BSON Type + * + * @classconstant BSON_DATA_SYMBOL + **/ +BSON.BSON_DATA_SYMBOL = 14; +/** + * Code with Scope BSON Type + * + * @classconstant BSON_DATA_CODE_W_SCOPE + **/ +BSON.BSON_DATA_CODE_W_SCOPE = 15; +/** + * 32 bit Integer BSON Type + * + * @classconstant BSON_DATA_INT + **/ +BSON.BSON_DATA_INT = 16; +/** + * Timestamp BSON Type + * + * @classconstant BSON_DATA_TIMESTAMP + **/ +BSON.BSON_DATA_TIMESTAMP = 17; +/** + * Long BSON Type + * + * @classconstant BSON_DATA_LONG + **/ +BSON.BSON_DATA_LONG = 18; +/** + * Long BSON Type + * + * @classconstant BSON_DATA_DECIMAL128 + **/ +BSON.BSON_DATA_DECIMAL128 = 19; +/** + * MinKey BSON Type + * + * @classconstant BSON_DATA_MIN_KEY + **/ +BSON.BSON_DATA_MIN_KEY = 0xff; +/** + * MaxKey BSON Type + * + * @classconstant BSON_DATA_MAX_KEY + **/ +BSON.BSON_DATA_MAX_KEY = 0x7f; +/** + * Binary Default Type + * + * @classconstant BSON_BINARY_SUBTYPE_DEFAULT + **/ +BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0; +/** + * Binary Function Type + * + * @classconstant BSON_BINARY_SUBTYPE_FUNCTION + **/ +BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1; +/** + * Binary Byte Array Type + * + * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY + **/ +BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2; +/** + * Binary UUID Type + * + * @classconstant BSON_BINARY_SUBTYPE_UUID + **/ +BSON.BSON_BINARY_SUBTYPE_UUID = 3; +/** + * Binary MD5 Type + * + * @classconstant BSON_BINARY_SUBTYPE_MD5 + **/ +BSON.BSON_BINARY_SUBTYPE_MD5 = 4; +/** + * Binary User Defined Type + * + * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED + **/ +BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128; + +// BSON MAX VALUES +BSON.BSON_INT32_MAX = 0x7fffffff; +BSON.BSON_INT32_MIN = -0x80000000; + +BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; +BSON.BSON_INT64_MIN = -Math.pow(2, 63); + +// JS MAX PRECISE VALUES +BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. +BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. + +// Internal long versions +// var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double. +// var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double. + +module.exports = serializeInto; diff --git a/node_modules/bson/lib/bson/parser/utils.js b/node_modules/bson/lib/bson/parser/utils.js new file mode 100644 index 0000000..6b8395f --- /dev/null +++ b/node_modules/bson/lib/bson/parser/utils.js @@ -0,0 +1,14 @@ +'use strict'; + +/** + * Normalizes our expected stringified form of a function across versions of node + * @param {Function} fn The function to stringify + */ +function normalizedFunctionString(fn) { + return fn.toString().replace(/function *\(/, 'function ('); +} + +module.exports = { + normalizedFunctionString: normalizedFunctionString +}; + diff --git a/node_modules/bson/lib/bson/regexp.js b/node_modules/bson/lib/bson/regexp.js new file mode 100644 index 0000000..108f016 --- /dev/null +++ b/node_modules/bson/lib/bson/regexp.js @@ -0,0 +1,33 @@ +/** + * A class representation of the BSON RegExp type. + * + * @class + * @return {BSONRegExp} A MinKey instance + */ +function BSONRegExp(pattern, options) { + if (!(this instanceof BSONRegExp)) return new BSONRegExp(); + + // Execute + this._bsontype = 'BSONRegExp'; + this.pattern = pattern || ''; + this.options = options || ''; + + // Validate options + for (var i = 0; i < this.options.length; i++) { + if ( + !( + this.options[i] === 'i' || + this.options[i] === 'm' || + this.options[i] === 'x' || + this.options[i] === 'l' || + this.options[i] === 's' || + this.options[i] === 'u' + ) + ) { + throw new Error('the regular expression options [' + this.options[i] + '] is not supported'); + } + } +} + +module.exports = BSONRegExp; +module.exports.BSONRegExp = BSONRegExp; diff --git a/node_modules/bson/lib/bson/symbol.js b/node_modules/bson/lib/bson/symbol.js new file mode 100644 index 0000000..ba20cab --- /dev/null +++ b/node_modules/bson/lib/bson/symbol.js @@ -0,0 +1,50 @@ +// Custom inspect property name / symbol. +var inspect = Buffer ? require('util').inspect.custom || 'inspect' : 'inspect'; + +/** + * A class representation of the BSON Symbol type. + * + * @class + * @deprecated + * @param {string} value the string representing the symbol. + * @return {Symbol} + */ +function Symbol(value) { + if (!(this instanceof Symbol)) return new Symbol(value); + this._bsontype = 'Symbol'; + this.value = value; +} + +/** + * Access the wrapped string value. + * + * @method + * @return {String} returns the wrapped string. + */ +Symbol.prototype.valueOf = function() { + return this.value; +}; + +/** + * @ignore + */ +Symbol.prototype.toString = function() { + return this.value; +}; + +/** + * @ignore + */ +Symbol.prototype[inspect] = function() { + return this.value; +}; + +/** + * @ignore + */ +Symbol.prototype.toJSON = function() { + return this.value; +}; + +module.exports = Symbol; +module.exports.Symbol = Symbol; diff --git a/node_modules/bson/lib/bson/timestamp.js b/node_modules/bson/lib/bson/timestamp.js new file mode 100644 index 0000000..dc61a6c --- /dev/null +++ b/node_modules/bson/lib/bson/timestamp.js @@ -0,0 +1,854 @@ +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Copyright 2009 Google Inc. All Rights Reserved + +/** + * This type is for INTERNAL use in MongoDB only and should not be used in applications. + * The appropriate corresponding type is the JavaScript Date type. + * + * Defines a Timestamp class for representing a 64-bit two's-complement + * integer value, which faithfully simulates the behavior of a Java "Timestamp". This + * implementation is derived from TimestampLib in GWT. + * + * Constructs a 64-bit two's-complement integer, given its low and high 32-bit + * values as *signed* integers. See the from* functions below for more + * convenient ways of constructing Timestamps. + * + * The internal representation of a Timestamp is the two given signed, 32-bit values. + * We use 32-bit pieces because these are the size of integers on which + * Javascript performs bit-operations. For operations like addition and + * multiplication, we split each number into 16-bit pieces, which can easily be + * multiplied within Javascript's floating-point representation without overflow + * or change in sign. + * + * In the algorithms below, we frequently reduce the negative case to the + * positive case by negating the input(s) and then post-processing the result. + * Note that we must ALWAYS check specially whether those values are MIN_VALUE + * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as + * a positive number, it overflows back into a negative). Not handling this + * case would often result in infinite recursion. + * + * @class + * @param {number} low the low (signed) 32 bits of the Timestamp. + * @param {number} high the high (signed) 32 bits of the Timestamp. + */ +function Timestamp(low, high) { + if (!(this instanceof Timestamp)) return new Timestamp(low, high); + this._bsontype = 'Timestamp'; + /** + * @type {number} + * @ignore + */ + this.low_ = low | 0; // force into 32 signed bits. + + /** + * @type {number} + * @ignore + */ + this.high_ = high | 0; // force into 32 signed bits. +} + +/** + * Return the int value. + * + * @return {number} the value, assuming it is a 32-bit integer. + */ +Timestamp.prototype.toInt = function() { + return this.low_; +}; + +/** + * Return the Number value. + * + * @method + * @return {number} the closest floating-point representation to this value. + */ +Timestamp.prototype.toNumber = function() { + return this.high_ * Timestamp.TWO_PWR_32_DBL_ + this.getLowBitsUnsigned(); +}; + +/** + * Return the JSON value. + * + * @method + * @return {string} the JSON representation. + */ +Timestamp.prototype.toJSON = function() { + return this.toString(); +}; + +/** + * Return the String value. + * + * @method + * @param {number} [opt_radix] the radix in which the text should be written. + * @return {string} the textual representation of this value. + */ +Timestamp.prototype.toString = function(opt_radix) { + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (this.isZero()) { + return '0'; + } + + if (this.isNegative()) { + if (this.equals(Timestamp.MIN_VALUE)) { + // We need to change the Timestamp value before it can be negated, so we remove + // the bottom-most digit in this base and then recurse to do the rest. + var radixTimestamp = Timestamp.fromNumber(radix); + var div = this.div(radixTimestamp); + var rem = div.multiply(radixTimestamp).subtract(this); + return div.toString(radix) + rem.toInt().toString(radix); + } else { + return '-' + this.negate().toString(radix); + } + } + + // Do several (6) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = Timestamp.fromNumber(Math.pow(radix, 6)); + + rem = this; + var result = ''; + + while (!rem.isZero()) { + var remDiv = rem.div(radixToPower); + var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt(); + var digits = intval.toString(radix); + + rem = remDiv; + if (rem.isZero()) { + return digits + result; + } else { + while (digits.length < 6) { + digits = '0' + digits; + } + result = '' + digits + result; + } + } +}; + +/** + * Return the high 32-bits value. + * + * @method + * @return {number} the high 32-bits as a signed value. + */ +Timestamp.prototype.getHighBits = function() { + return this.high_; +}; + +/** + * Return the low 32-bits value. + * + * @method + * @return {number} the low 32-bits as a signed value. + */ +Timestamp.prototype.getLowBits = function() { + return this.low_; +}; + +/** + * Return the low unsigned 32-bits value. + * + * @method + * @return {number} the low 32-bits as an unsigned value. + */ +Timestamp.prototype.getLowBitsUnsigned = function() { + return this.low_ >= 0 ? this.low_ : Timestamp.TWO_PWR_32_DBL_ + this.low_; +}; + +/** + * Returns the number of bits needed to represent the absolute value of this Timestamp. + * + * @method + * @return {number} Returns the number of bits needed to represent the absolute value of this Timestamp. + */ +Timestamp.prototype.getNumBitsAbs = function() { + if (this.isNegative()) { + if (this.equals(Timestamp.MIN_VALUE)) { + return 64; + } else { + return this.negate().getNumBitsAbs(); + } + } else { + var val = this.high_ !== 0 ? this.high_ : this.low_; + for (var bit = 31; bit > 0; bit--) { + if ((val & (1 << bit)) !== 0) { + break; + } + } + return this.high_ !== 0 ? bit + 33 : bit + 1; + } +}; + +/** + * Return whether this value is zero. + * + * @method + * @return {boolean} whether this value is zero. + */ +Timestamp.prototype.isZero = function() { + return this.high_ === 0 && this.low_ === 0; +}; + +/** + * Return whether this value is negative. + * + * @method + * @return {boolean} whether this value is negative. + */ +Timestamp.prototype.isNegative = function() { + return this.high_ < 0; +}; + +/** + * Return whether this value is odd. + * + * @method + * @return {boolean} whether this value is odd. + */ +Timestamp.prototype.isOdd = function() { + return (this.low_ & 1) === 1; +}; + +/** + * Return whether this Timestamp equals the other + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp equals the other + */ +Timestamp.prototype.equals = function(other) { + return this.high_ === other.high_ && this.low_ === other.low_; +}; + +/** + * Return whether this Timestamp does not equal the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp does not equal the other. + */ +Timestamp.prototype.notEquals = function(other) { + return this.high_ !== other.high_ || this.low_ !== other.low_; +}; + +/** + * Return whether this Timestamp is less than the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp is less than the other. + */ +Timestamp.prototype.lessThan = function(other) { + return this.compare(other) < 0; +}; + +/** + * Return whether this Timestamp is less than or equal to the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp is less than or equal to the other. + */ +Timestamp.prototype.lessThanOrEqual = function(other) { + return this.compare(other) <= 0; +}; + +/** + * Return whether this Timestamp is greater than the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp is greater than the other. + */ +Timestamp.prototype.greaterThan = function(other) { + return this.compare(other) > 0; +}; + +/** + * Return whether this Timestamp is greater than or equal to the other. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} whether this Timestamp is greater than or equal to the other. + */ +Timestamp.prototype.greaterThanOrEqual = function(other) { + return this.compare(other) >= 0; +}; + +/** + * Compares this Timestamp with the given one. + * + * @method + * @param {Timestamp} other Timestamp to compare against. + * @return {boolean} 0 if they are the same, 1 if the this is greater, and -1 if the given one is greater. + */ +Timestamp.prototype.compare = function(other) { + if (this.equals(other)) { + return 0; + } + + var thisNeg = this.isNegative(); + var otherNeg = other.isNegative(); + if (thisNeg && !otherNeg) { + return -1; + } + if (!thisNeg && otherNeg) { + return 1; + } + + // at this point, the signs are the same, so subtraction will not overflow + if (this.subtract(other).isNegative()) { + return -1; + } else { + return 1; + } +}; + +/** + * The negation of this value. + * + * @method + * @return {Timestamp} the negation of this value. + */ +Timestamp.prototype.negate = function() { + if (this.equals(Timestamp.MIN_VALUE)) { + return Timestamp.MIN_VALUE; + } else { + return this.not().add(Timestamp.ONE); + } +}; + +/** + * Returns the sum of this and the given Timestamp. + * + * @method + * @param {Timestamp} other Timestamp to add to this one. + * @return {Timestamp} the sum of this and the given Timestamp. + */ +Timestamp.prototype.add = function(other) { + // Divide each number into 4 chunks of 16 bits, and then sum the chunks. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xffff; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xffff; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xffff; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xffff; + + var c48 = 0, + c32 = 0, + c16 = 0, + c00 = 0; + c00 += a00 + b00; + c16 += c00 >>> 16; + c00 &= 0xffff; + c16 += a16 + b16; + c32 += c16 >>> 16; + c16 &= 0xffff; + c32 += a32 + b32; + c48 += c32 >>> 16; + c32 &= 0xffff; + c48 += a48 + b48; + c48 &= 0xffff; + return Timestamp.fromBits((c16 << 16) | c00, (c48 << 16) | c32); +}; + +/** + * Returns the difference of this and the given Timestamp. + * + * @method + * @param {Timestamp} other Timestamp to subtract from this. + * @return {Timestamp} the difference of this and the given Timestamp. + */ +Timestamp.prototype.subtract = function(other) { + return this.add(other.negate()); +}; + +/** + * Returns the product of this and the given Timestamp. + * + * @method + * @param {Timestamp} other Timestamp to multiply with this. + * @return {Timestamp} the product of this and the other. + */ +Timestamp.prototype.multiply = function(other) { + if (this.isZero()) { + return Timestamp.ZERO; + } else if (other.isZero()) { + return Timestamp.ZERO; + } + + if (this.equals(Timestamp.MIN_VALUE)) { + return other.isOdd() ? Timestamp.MIN_VALUE : Timestamp.ZERO; + } else if (other.equals(Timestamp.MIN_VALUE)) { + return this.isOdd() ? Timestamp.MIN_VALUE : Timestamp.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().multiply(other.negate()); + } else { + return this.negate() + .multiply(other) + .negate(); + } + } else if (other.isNegative()) { + return this.multiply(other.negate()).negate(); + } + + // If both Timestamps are small, use float multiplication + if (this.lessThan(Timestamp.TWO_PWR_24_) && other.lessThan(Timestamp.TWO_PWR_24_)) { + return Timestamp.fromNumber(this.toNumber() * other.toNumber()); + } + + // Divide each Timestamp into 4 chunks of 16 bits, and then add up 4x4 products. + // We can skip products that would overflow. + + var a48 = this.high_ >>> 16; + var a32 = this.high_ & 0xffff; + var a16 = this.low_ >>> 16; + var a00 = this.low_ & 0xffff; + + var b48 = other.high_ >>> 16; + var b32 = other.high_ & 0xffff; + var b16 = other.low_ >>> 16; + var b00 = other.low_ & 0xffff; + + var c48 = 0, + c32 = 0, + c16 = 0, + c00 = 0; + c00 += a00 * b00; + c16 += c00 >>> 16; + c00 &= 0xffff; + c16 += a16 * b00; + c32 += c16 >>> 16; + c16 &= 0xffff; + c16 += a00 * b16; + c32 += c16 >>> 16; + c16 &= 0xffff; + c32 += a32 * b00; + c48 += c32 >>> 16; + c32 &= 0xffff; + c32 += a16 * b16; + c48 += c32 >>> 16; + c32 &= 0xffff; + c32 += a00 * b32; + c48 += c32 >>> 16; + c32 &= 0xffff; + c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48; + c48 &= 0xffff; + return Timestamp.fromBits((c16 << 16) | c00, (c48 << 16) | c32); +}; + +/** + * Returns this Timestamp divided by the given one. + * + * @method + * @param {Timestamp} other Timestamp by which to divide. + * @return {Timestamp} this Timestamp divided by the given one. + */ +Timestamp.prototype.div = function(other) { + if (other.isZero()) { + throw Error('division by zero'); + } else if (this.isZero()) { + return Timestamp.ZERO; + } + + if (this.equals(Timestamp.MIN_VALUE)) { + if (other.equals(Timestamp.ONE) || other.equals(Timestamp.NEG_ONE)) { + return Timestamp.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE + } else if (other.equals(Timestamp.MIN_VALUE)) { + return Timestamp.ONE; + } else { + // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|. + var halfThis = this.shiftRight(1); + var approx = halfThis.div(other).shiftLeft(1); + if (approx.equals(Timestamp.ZERO)) { + return other.isNegative() ? Timestamp.ONE : Timestamp.NEG_ONE; + } else { + var rem = this.subtract(other.multiply(approx)); + var result = approx.add(rem.div(other)); + return result; + } + } + } else if (other.equals(Timestamp.MIN_VALUE)) { + return Timestamp.ZERO; + } + + if (this.isNegative()) { + if (other.isNegative()) { + return this.negate().div(other.negate()); + } else { + return this.negate() + .div(other) + .negate(); + } + } else if (other.isNegative()) { + return this.div(other.negate()).negate(); + } + + // Repeat the following until the remainder is less than other: find a + // floating-point that approximates remainder / other *from below*, add this + // into the result, and subtract it from the remainder. It is critical that + // the approximate value is less than or equal to the real value so that the + // remainder never becomes negative. + var res = Timestamp.ZERO; + rem = this; + while (rem.greaterThanOrEqual(other)) { + // Approximate the result of division. This may be a little greater or + // smaller than the actual value. + approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber())); + + // We will tweak the approximate result by changing it in the 48-th digit or + // the smallest non-fractional digit, whichever is larger. + var log2 = Math.ceil(Math.log(approx) / Math.LN2); + var delta = log2 <= 48 ? 1 : Math.pow(2, log2 - 48); + + // Decrease the approximation until it is smaller than the remainder. Note + // that if it is too large, the product overflows and is negative. + var approxRes = Timestamp.fromNumber(approx); + var approxRem = approxRes.multiply(other); + while (approxRem.isNegative() || approxRem.greaterThan(rem)) { + approx -= delta; + approxRes = Timestamp.fromNumber(approx); + approxRem = approxRes.multiply(other); + } + + // We know the answer can't be zero... and actually, zero would cause + // infinite recursion since we would make no progress. + if (approxRes.isZero()) { + approxRes = Timestamp.ONE; + } + + res = res.add(approxRes); + rem = rem.subtract(approxRem); + } + return res; +}; + +/** + * Returns this Timestamp modulo the given one. + * + * @method + * @param {Timestamp} other Timestamp by which to mod. + * @return {Timestamp} this Timestamp modulo the given one. + */ +Timestamp.prototype.modulo = function(other) { + return this.subtract(this.div(other).multiply(other)); +}; + +/** + * The bitwise-NOT of this value. + * + * @method + * @return {Timestamp} the bitwise-NOT of this value. + */ +Timestamp.prototype.not = function() { + return Timestamp.fromBits(~this.low_, ~this.high_); +}; + +/** + * Returns the bitwise-AND of this Timestamp and the given one. + * + * @method + * @param {Timestamp} other the Timestamp with which to AND. + * @return {Timestamp} the bitwise-AND of this and the other. + */ +Timestamp.prototype.and = function(other) { + return Timestamp.fromBits(this.low_ & other.low_, this.high_ & other.high_); +}; + +/** + * Returns the bitwise-OR of this Timestamp and the given one. + * + * @method + * @param {Timestamp} other the Timestamp with which to OR. + * @return {Timestamp} the bitwise-OR of this and the other. + */ +Timestamp.prototype.or = function(other) { + return Timestamp.fromBits(this.low_ | other.low_, this.high_ | other.high_); +}; + +/** + * Returns the bitwise-XOR of this Timestamp and the given one. + * + * @method + * @param {Timestamp} other the Timestamp with which to XOR. + * @return {Timestamp} the bitwise-XOR of this and the other. + */ +Timestamp.prototype.xor = function(other) { + return Timestamp.fromBits(this.low_ ^ other.low_, this.high_ ^ other.high_); +}; + +/** + * Returns this Timestamp with bits shifted to the left by the given amount. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Timestamp} this shifted to the left by the given amount. + */ +Timestamp.prototype.shiftLeft = function(numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var low = this.low_; + if (numBits < 32) { + var high = this.high_; + return Timestamp.fromBits(low << numBits, (high << numBits) | (low >>> (32 - numBits))); + } else { + return Timestamp.fromBits(0, low << (numBits - 32)); + } + } +}; + +/** + * Returns this Timestamp with bits shifted to the right by the given amount. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Timestamp} this shifted to the right by the given amount. + */ +Timestamp.prototype.shiftRight = function(numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return Timestamp.fromBits((low >>> numBits) | (high << (32 - numBits)), high >> numBits); + } else { + return Timestamp.fromBits(high >> (numBits - 32), high >= 0 ? 0 : -1); + } + } +}; + +/** + * Returns this Timestamp with bits shifted to the right by the given amount, with the new top bits matching the current sign bit. + * + * @method + * @param {number} numBits the number of bits by which to shift. + * @return {Timestamp} this shifted to the right by the given amount, with zeros placed into the new leading bits. + */ +Timestamp.prototype.shiftRightUnsigned = function(numBits) { + numBits &= 63; + if (numBits === 0) { + return this; + } else { + var high = this.high_; + if (numBits < 32) { + var low = this.low_; + return Timestamp.fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits); + } else if (numBits === 32) { + return Timestamp.fromBits(high, 0); + } else { + return Timestamp.fromBits(high >>> (numBits - 32), 0); + } + } +}; + +/** + * Returns a Timestamp representing the given (32-bit) integer value. + * + * @method + * @param {number} value the 32-bit integer in question. + * @return {Timestamp} the corresponding Timestamp value. + */ +Timestamp.fromInt = function(value) { + if (-128 <= value && value < 128) { + var cachedObj = Timestamp.INT_CACHE_[value]; + if (cachedObj) { + return cachedObj; + } + } + + var obj = new Timestamp(value | 0, value < 0 ? -1 : 0); + if (-128 <= value && value < 128) { + Timestamp.INT_CACHE_[value] = obj; + } + return obj; +}; + +/** + * Returns a Timestamp representing the given value, provided that it is a finite number. Otherwise, zero is returned. + * + * @method + * @param {number} value the number in question. + * @return {Timestamp} the corresponding Timestamp value. + */ +Timestamp.fromNumber = function(value) { + if (isNaN(value) || !isFinite(value)) { + return Timestamp.ZERO; + } else if (value <= -Timestamp.TWO_PWR_63_DBL_) { + return Timestamp.MIN_VALUE; + } else if (value + 1 >= Timestamp.TWO_PWR_63_DBL_) { + return Timestamp.MAX_VALUE; + } else if (value < 0) { + return Timestamp.fromNumber(-value).negate(); + } else { + return new Timestamp( + (value % Timestamp.TWO_PWR_32_DBL_) | 0, + (value / Timestamp.TWO_PWR_32_DBL_) | 0 + ); + } +}; + +/** + * Returns a Timestamp representing the 64-bit integer that comes by concatenating the given high and low bits. Each is assumed to use 32 bits. + * + * @method + * @param {number} lowBits the low 32-bits. + * @param {number} highBits the high 32-bits. + * @return {Timestamp} the corresponding Timestamp value. + */ +Timestamp.fromBits = function(lowBits, highBits) { + return new Timestamp(lowBits, highBits); +}; + +/** + * Returns a Timestamp representation of the given string, written using the given radix. + * + * @method + * @param {string} str the textual representation of the Timestamp. + * @param {number} opt_radix the radix in which the text is written. + * @return {Timestamp} the corresponding Timestamp value. + */ +Timestamp.fromString = function(str, opt_radix) { + if (str.length === 0) { + throw Error('number format error: empty string'); + } + + var radix = opt_radix || 10; + if (radix < 2 || 36 < radix) { + throw Error('radix out of range: ' + radix); + } + + if (str.charAt(0) === '-') { + return Timestamp.fromString(str.substring(1), radix).negate(); + } else if (str.indexOf('-') >= 0) { + throw Error('number format error: interior "-" character: ' + str); + } + + // Do several (8) digits each time through the loop, so as to + // minimize the calls to the very expensive emulated div. + var radixToPower = Timestamp.fromNumber(Math.pow(radix, 8)); + + var result = Timestamp.ZERO; + for (var i = 0; i < str.length; i += 8) { + var size = Math.min(8, str.length - i); + var value = parseInt(str.substring(i, i + size), radix); + if (size < 8) { + var power = Timestamp.fromNumber(Math.pow(radix, size)); + result = result.multiply(power).add(Timestamp.fromNumber(value)); + } else { + result = result.multiply(radixToPower); + result = result.add(Timestamp.fromNumber(value)); + } + } + return result; +}; + +// NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the +// from* methods on which they depend. + +/** + * A cache of the Timestamp representations of small integer values. + * @type {Object} + * @ignore + */ +Timestamp.INT_CACHE_ = {}; + +// NOTE: the compiler should inline these constant values below and then remove +// these variables, so there should be no runtime penalty for these. + +/** + * Number used repeated below in calculations. This must appear before the + * first call to any from* function below. + * @type {number} + * @ignore + */ +Timestamp.TWO_PWR_16_DBL_ = 1 << 16; + +/** + * @type {number} + * @ignore + */ +Timestamp.TWO_PWR_24_DBL_ = 1 << 24; + +/** + * @type {number} + * @ignore + */ +Timestamp.TWO_PWR_32_DBL_ = Timestamp.TWO_PWR_16_DBL_ * Timestamp.TWO_PWR_16_DBL_; + +/** + * @type {number} + * @ignore + */ +Timestamp.TWO_PWR_31_DBL_ = Timestamp.TWO_PWR_32_DBL_ / 2; + +/** + * @type {number} + * @ignore + */ +Timestamp.TWO_PWR_48_DBL_ = Timestamp.TWO_PWR_32_DBL_ * Timestamp.TWO_PWR_16_DBL_; + +/** + * @type {number} + * @ignore + */ +Timestamp.TWO_PWR_64_DBL_ = Timestamp.TWO_PWR_32_DBL_ * Timestamp.TWO_PWR_32_DBL_; + +/** + * @type {number} + * @ignore + */ +Timestamp.TWO_PWR_63_DBL_ = Timestamp.TWO_PWR_64_DBL_ / 2; + +/** @type {Timestamp} */ +Timestamp.ZERO = Timestamp.fromInt(0); + +/** @type {Timestamp} */ +Timestamp.ONE = Timestamp.fromInt(1); + +/** @type {Timestamp} */ +Timestamp.NEG_ONE = Timestamp.fromInt(-1); + +/** @type {Timestamp} */ +Timestamp.MAX_VALUE = Timestamp.fromBits(0xffffffff | 0, 0x7fffffff | 0); + +/** @type {Timestamp} */ +Timestamp.MIN_VALUE = Timestamp.fromBits(0, 0x80000000 | 0); + +/** + * @type {Timestamp} + * @ignore + */ +Timestamp.TWO_PWR_24_ = Timestamp.fromInt(1 << 24); + +/** + * Expose. + */ +module.exports = Timestamp; +module.exports.Timestamp = Timestamp; diff --git a/node_modules/bson/package.json b/node_modules/bson/package.json new file mode 100644 index 0000000..cd4e2a5 --- /dev/null +++ b/node_modules/bson/package.json @@ -0,0 +1,87 @@ +{ + "_from": "bson@~1.0.4", + "_id": "bson@1.0.9", + "_inBundle": false, + "_integrity": "sha1-EjGfgyOxJUc5t8a++NPomuBaL1c=", + "_location": "/bson", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "bson@~1.0.4", + "name": "bson", + "escapedName": "bson", + "rawSpec": "~1.0.4", + "saveSpec": null, + "fetchSpec": "~1.0.4" + }, + "_requiredBy": [ + "/mongodb-core" + ], + "_resolved": "http://registry.npm.taobao.org/bson/download/bson-1.0.9.tgz", + "_shasum": "12319f8323b1254739b7c6bef8d3e89ae05a2f57", + "_spec": "bson@~1.0.4", + "_where": "C:\\Users\\yang\\workbench\\cnki-user-info\\node_modules\\mongodb-core", + "author": { + "name": "Christian Amor Kvalheim", + "email": "christkv@gmail.com" + }, + "browser": "lib/bson/bson.js", + "bugs": { + "url": "https://github.com/mongodb/js-bson/issues" + }, + "bundleDependencies": false, + "config": { + "native": false + }, + "contributors": [], + "deprecated": false, + "description": "A bson parser for node.js and the browser", + "devDependencies": { + "babel-core": "^6.14.0", + "babel-loader": "^6.2.5", + "babel-polyfill": "^6.13.0", + "babel-preset-es2015": "^6.14.0", + "babel-preset-stage-0": "^6.5.0", + "babel-register": "^6.14.0", + "benchmark": "1.0.0", + "colors": "1.1.0", + "conventional-changelog-cli": "^1.3.5", + "nodeunit": "0.9.0", + "webpack": "^1.13.2", + "webpack-polyfills-plugin": "0.0.9" + }, + "directories": { + "lib": "./lib/bson" + }, + "engines": { + "node": ">=0.6.19" + }, + "files": [ + "lib", + "index.js", + "browser_build", + "bower.json" + ], + "homepage": "https://github.com/mongodb/js-bson#readme", + "keywords": [ + "mongodb", + "bson", + "parser" + ], + "license": "Apache-2.0", + "main": "./index", + "name": "bson", + "repository": { + "type": "git", + "url": "git+https://github.com/mongodb/js-bson.git" + }, + "scripts": { + "build": "webpack --config ./webpack.dist.config.js", + "changelog": "conventional-changelog -p angular -i HISTORY.md -s", + "format": "prettier --print-width 100 --tab-width 2 --single-quote --write 'test/**/*.js' 'lib/**/*.js'", + "lint": "eslint lib test", + "test": "nodeunit ./test/node" + }, + "version": "1.0.9" +} diff --git a/node_modules/buffer-shims/index.js b/node_modules/buffer-shims/index.js new file mode 100644 index 0000000..1cab4c0 --- /dev/null +++ b/node_modules/buffer-shims/index.js @@ -0,0 +1,108 @@ +'use strict'; + +var buffer = require('buffer'); +var Buffer = buffer.Buffer; +var SlowBuffer = buffer.SlowBuffer; +var MAX_LEN = buffer.kMaxLength || 2147483647; +exports.alloc = function alloc(size, fill, encoding) { + if (typeof Buffer.alloc === 'function') { + return Buffer.alloc(size, fill, encoding); + } + if (typeof encoding === 'number') { + throw new TypeError('encoding must not be number'); + } + if (typeof size !== 'number') { + throw new TypeError('size must be a number'); + } + if (size > MAX_LEN) { + throw new RangeError('size is too large'); + } + var enc = encoding; + var _fill = fill; + if (_fill === undefined) { + enc = undefined; + _fill = 0; + } + var buf = new Buffer(size); + if (typeof _fill === 'string') { + var fillBuf = new Buffer(_fill, enc); + var flen = fillBuf.length; + var i = -1; + while (++i < size) { + buf[i] = fillBuf[i % flen]; + } + } else { + buf.fill(_fill); + } + return buf; +} +exports.allocUnsafe = function allocUnsafe(size) { + if (typeof Buffer.allocUnsafe === 'function') { + return Buffer.allocUnsafe(size); + } + if (typeof size !== 'number') { + throw new TypeError('size must be a number'); + } + if (size > MAX_LEN) { + throw new RangeError('size is too large'); + } + return new Buffer(size); +} +exports.from = function from(value, encodingOrOffset, length) { + if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) { + return Buffer.from(value, encodingOrOffset, length); + } + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number'); + } + if (typeof value === 'string') { + return new Buffer(value, encodingOrOffset); + } + if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { + var offset = encodingOrOffset; + if (arguments.length === 1) { + return new Buffer(value); + } + if (typeof offset === 'undefined') { + offset = 0; + } + var len = length; + if (typeof len === 'undefined') { + len = value.byteLength - offset; + } + if (offset >= value.byteLength) { + throw new RangeError('\'offset\' is out of bounds'); + } + if (len > value.byteLength - offset) { + throw new RangeError('\'length\' is out of bounds'); + } + return new Buffer(value.slice(offset, offset + len)); + } + if (Buffer.isBuffer(value)) { + var out = new Buffer(value.length); + value.copy(out, 0, 0, value.length); + return out; + } + if (value) { + if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) { + return new Buffer(value); + } + if (value.type === 'Buffer' && Array.isArray(value.data)) { + return new Buffer(value.data); + } + } + + throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.'); +} +exports.allocUnsafeSlow = function allocUnsafeSlow(size) { + if (typeof Buffer.allocUnsafeSlow === 'function') { + return Buffer.allocUnsafeSlow(size); + } + if (typeof size !== 'number') { + throw new TypeError('size must be a number'); + } + if (size >= MAX_LEN) { + throw new RangeError('size is too large'); + } + return new SlowBuffer(size); +} diff --git a/node_modules/buffer-shims/license.md b/node_modules/buffer-shims/license.md new file mode 100644 index 0000000..01cfaef --- /dev/null +++ b/node_modules/buffer-shims/license.md @@ -0,0 +1,19 @@ +# Copyright (c) 2016 Calvin Metcalf + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE.** diff --git a/node_modules/buffer-shims/package.json b/node_modules/buffer-shims/package.json new file mode 100644 index 0000000..75657c5 --- /dev/null +++ b/node_modules/buffer-shims/package.json @@ -0,0 +1,49 @@ +{ + "_from": "buffer-shims@~1.0.0", + "_id": "buffer-shims@1.0.0", + "_inBundle": false, + "_integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", + "_location": "/buffer-shims", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "buffer-shims@~1.0.0", + "name": "buffer-shims", + "escapedName": "buffer-shims", + "rawSpec": "~1.0.0", + "saveSpec": null, + "fetchSpec": "~1.0.0" + }, + "_requiredBy": [ + "/mongodb/readable-stream" + ], + "_resolved": "http://registry.npm.taobao.org/buffer-shims/download/buffer-shims-1.0.0.tgz", + "_shasum": "9978ce317388c649ad8793028c3477ef044a8b51", + "_spec": "buffer-shims@~1.0.0", + "_where": "C:\\Users\\yang\\workbench\\cnki-user-info\\node_modules\\mongodb\\node_modules\\readable-stream", + "bugs": { + "url": "https://github.com/calvinmetcalf/buffer-shims/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "some shims for node buffers", + "devDependencies": { + "tape": "^4.5.1" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/calvinmetcalf/buffer-shims#readme", + "license": "MIT", + "main": "index.js", + "name": "buffer-shims", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/calvinmetcalf/buffer-shims.git" + }, + "scripts": { + "test": "tape test/*.js" + }, + "version": "1.0.0" +} diff --git a/node_modules/buffer-shims/readme.md b/node_modules/buffer-shims/readme.md new file mode 100644 index 0000000..7ea6475 --- /dev/null +++ b/node_modules/buffer-shims/readme.md @@ -0,0 +1,21 @@ +buffer-shims +=== + +functions to make sure the new buffer methods work in older browsers. + +```js +var bufferShim = require('buffer-shims'); +bufferShim.from('foo'); +bufferShim.alloc(9, 'cafeface', 'hex'); +bufferShim.allocUnsafe(15); +bufferShim.allocUnsafeSlow(21); +``` + +should just use the original in newer nodes and on older nodes uses fallbacks. + +Known Issues +=== +- this does not patch the buffer object, only the constructor stuff +- it's actually a polyfill + +![](https://i.imgur.com/zxII3jJ.gif) diff --git a/node_modules/caseless/LICENSE b/node_modules/caseless/LICENSE new file mode 100644 index 0000000..61789f4 --- /dev/null +++ b/node_modules/caseless/LICENSE @@ -0,0 +1,28 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION +1. Definitions. +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: +You must give any other recipients of the Work or Derivative Works a copy of this License; and +You must cause any modified files to carry prominent notices stating that You changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. +END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/node_modules/caseless/README.md b/node_modules/caseless/README.md new file mode 100644 index 0000000..e5077a2 --- /dev/null +++ b/node_modules/caseless/README.md @@ -0,0 +1,45 @@ +## Caseless -- wrap an object to set and get property with caseless semantics but also preserve caseing. + +This library is incredibly useful when working with HTTP headers. It allows you to get/set/check for headers in a caseless manner while also preserving the caseing of headers the first time they are set. + +## Usage + +```javascript +var headers = {} + , c = caseless(headers) + ; +c.set('a-Header', 'asdf') +c.get('a-header') === 'asdf' +``` + +## has(key) + +Has takes a name and if it finds a matching header will return that header name with the preserved caseing it was set with. + +```javascript +c.has('a-header') === 'a-Header' +``` + +## set(key, value[, clobber=true]) + +Set is fairly straight forward except that if the header exists and clobber is disabled it will add `','+value` to the existing header. + +```javascript +c.set('a-Header', 'fdas') +c.set('a-HEADER', 'more', false) +c.get('a-header') === 'fdsa,more' +``` + +## swap(key) + +Swaps the casing of a header with the new one that is passed in. + +```javascript +var headers = {} + , c = caseless(headers) + ; +c.set('a-Header', 'fdas') +c.swap('a-HEADER') +c.has('a-header') === 'a-HEADER' +headers === {'a-HEADER': 'fdas'} +``` diff --git a/node_modules/caseless/index.js b/node_modules/caseless/index.js new file mode 100644 index 0000000..b194734 --- /dev/null +++ b/node_modules/caseless/index.js @@ -0,0 +1,67 @@ +function Caseless (dict) { + this.dict = dict || {} +} +Caseless.prototype.set = function (name, value, clobber) { + if (typeof name === 'object') { + for (var i in name) { + this.set(i, name[i], value) + } + } else { + if (typeof clobber === 'undefined') clobber = true + var has = this.has(name) + + if (!clobber && has) this.dict[has] = this.dict[has] + ',' + value + else this.dict[has || name] = value + return has + } +} +Caseless.prototype.has = function (name) { + var keys = Object.keys(this.dict) + , name = name.toLowerCase() + ; + for (var i=0;i', + 'iso-8859-1'); +``` + +## Example +* A small example with node.js modules 'request' and 'iconv-lite' + +```js +var request = require('request'); +var iconv = require('iconv-lite'); +var charsetParser = require('charset-parser'); + +iconv.extendNodeEncodings(); + +request('http://example.com', {encoding: 'binary'}, function(err, res, binary){ + // parse charset + var charset = charsetParser(res.headers['content-type'], binary, 'iso-8859-1'); + // decode binary with charset + var html = iconv.decode(binary, charset); + // TODO: do something with html +} + +``` + +## Test + +```sh +npm install +npm test +``` + +## Release History + +* 0.2.0 Add more input parameters +* 0.1.0 Initial release + +## License + + [MIT](LICENSE) diff --git a/node_modules/charset-parser/index.js b/node_modules/charset-parser/index.js new file mode 100644 index 0000000..a01f50c --- /dev/null +++ b/node_modules/charset-parser/index.js @@ -0,0 +1,19 @@ +function getCharset(str){ + + if(str == null) return null; + var charset = str.match(/charset=["]*([^>"\s]+)/i); + if(charset instanceof Array && charset.length >= 2) return charset[1]; + + return null; +} + +module.exports = function (header, binary, default_charset) { + + var charset = getCharset(header); + if(binary != null){ + if(charset == null) charset = getCharset(binary); + if(charset == null) charset=(typeof default_charset==="undefined")?"utf-8":default_charset; + } + + return charset; +}; diff --git a/node_modules/charset-parser/package.json b/node_modules/charset-parser/package.json new file mode 100644 index 0000000..87bb0a4 --- /dev/null +++ b/node_modules/charset-parser/package.json @@ -0,0 +1,66 @@ +{ + "_from": "charset-parser@^0.2.0", + "_id": "charset-parser@0.2.0", + "_inBundle": false, + "_integrity": "sha1-IwkBCI9fbLFlmotaqtJXLbenW2s=", + "_location": "/charset-parser", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "charset-parser@^0.2.0", + "name": "charset-parser", + "escapedName": "charset-parser", + "rawSpec": "^0.2.0", + "saveSpec": null, + "fetchSpec": "^0.2.0" + }, + "_requiredBy": [ + "/crawler" + ], + "_resolved": "http://registry.npm.taobao.org/charset-parser/download/charset-parser-0.2.0.tgz", + "_shasum": "230901088f5f6cb1659a8b5aaad2572db7a75b6b", + "_spec": "charset-parser@^0.2.0", + "_where": "C:\\Users\\yang\\workbench\\cnki-user-info\\node_modules\\crawler", + "author": { + "name": "Frank Kanis", + "email": "frank.kanis@gmail.com" + }, + "bugs": { + "url": "https://github.com/frankkanis/charset-parser/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Parse charset string from http header and hmtl meta", + "devDependencies": { + "mocha": "^2.1.0" + }, + "homepage": "https://github.com/frankkanis/charset-parser", + "keywords": [ + "charset", + "parse", + "utf-8", + "iso-8859-1", + "http", + "content-type", + "header", + "meta", + "html" + ], + "licenses": [ + { + "type": "MIT", + "url": "https://github.com/frankkanis/charset-parser/blob/master/LICENSE" + } + ], + "main": "index.js", + "name": "charset-parser", + "repository": { + "type": "git", + "url": "git+https://github.com/frankkanis/charset-parser.git" + }, + "scripts": { + "test": "make test" + }, + "version": "0.2.0" +} diff --git a/node_modules/charset-parser/test/index.js b/node_modules/charset-parser/test/index.js new file mode 100644 index 0000000..68cec5f --- /dev/null +++ b/node_modules/charset-parser/test/index.js @@ -0,0 +1,48 @@ +var assert = require('assert'); +var charsetParser = require('../index'); + +describe('#HTTP Header Inputs', function() { + it('Content-Type UTF-8 charset', function(){ + assert.equal(charsetParser('Content-Type:text/html; charset=utf-8'),'utf-8'); + }); + it('Content-Type iso-8859-1 charset', function(){ + assert.equal(charsetParser('Content-Type:text/html; charset=iso-8859-1'),'iso-8859-1'); + }); + it('Content-Type no charset', function(){ + assert.equal(charsetParser('Content-Type:text/html'), null); + }); + it('Empty string input', function(){ + assert.equal(charsetParser(""), null); + }); + it('No input', function(){ + assert.equal(charsetParser(), null); + }); +}); + +describe('#HTML Inputs', function() { + it('HTML5 with meta charset', function(){ + assert.equal(charsetParser(''), 'utf-8'); + }); + it('HTML4 with meta charset', function(){ + var html4 = 'Title'; + assert.equal(charsetParser(html4), 'UTF-8'); + }); +}); + +describe('#3 Input params', function(){ + it('Header with charset', function(){ + assert.equal(charsetParser('Content-Type:text/html; charset=iso-8859-1', '', 'utf8'), 'iso-8859-1'); + }); + it('Empty Header', function(){ + assert.equal(charsetParser('', '', 'iso-8859-1'), 'utf-8'); + }); + it('No header, No body, default charset', function(){ + assert.equal(charsetParser('', '', 'iso-8859-1'), 'iso-8859-1'); + }); + it('No header, No body, no default', function(){ + assert.equal(charsetParser('', ''), 'utf-8'); + }); + it('No header, No body, null default', function(){ + assert.equal(charsetParser('', '', null), null); + }); +}); diff --git a/node_modules/cheerio/History.md b/node_modules/cheerio/History.md new file mode 100644 index 0000000..c7e38e6 --- /dev/null +++ b/node_modules/cheerio/History.md @@ -0,0 +1,576 @@ + +0.22.0 / 2016-08-23 +================== + + * Return undefined in .prop if given an invalid element or tag (#880) + * Merge pull request #884 from cheeriojs/readme-cleanup + * readme updates + * Merge pull request #881 from piamancini/patch-1 + * Added backers and sponsors from OpenCollective + * Use jQuery from the jquery module in benchmarks (#871) + * Document, test, and extend static `$.text` method (#855) + * Fix typo on calling _.extend (#861) + * Update versions (#870) + * Use individual lodash functions (#864) + * Added `.serialize()` support. Fixes #69 (#827) + * Update Readme.md (#857) + * add extension for JSON require call + * remove gittask badge + * Merge pull request #672 from underdogio/dev/checkbox.radio.values.sqwished + * Added default value for checkboxes/radios + +0.20.0 / 2016-02-01 +================== + + * Add coveralls badge, remove link to old report (Felix Böhm) + * Update lodash dependeny to 4.1.0 (leif.hanack) + * Fix PR #726 adding 'appendTo()' and 'prependTo()' (Delgan) + * Added appendTo and prependTo with tests #641 (digihaven) + * Fix #780 by changing options context in '.find()' (Felix Böhm) + * Add an unit test checking the query of child (Delgan) + * fix #667: attr({foo: null}) removes attribute foo, like attr('foo', null) (Ray Waldin) + * Include reference to dedicated "Loading" section (Mike Pennisi) + * Added load method to $ (alanev) + * update css-select to 1.2.0 (Felix Böhm) + * Fixing Grammatical Error (Dan Corman) + * Test against node v0.12 --> v4.2 (Jason Kurian) + * Correct output in example (Felix Böhm) + * Fix npm files filter (Bogdan Chadkin) + * Enable setting data on all elements in selection (Mike Pennisi) + * Reinstate `$.fn.toArray` (Mike Pennisi) + * update css-select to 1.1.0 (Thomas Shafer) + * Complete implementation of `wrap` (Mike Pennisi) + * Correct name of unit test (Mike Pennisi) + * Correct grammar in test titles (Mike Pennisi) + * Normalize whitespace (Mike Pennisi) + * Insert omitted assertion (Mike Pennisi) + * Update invocation of `children` (Mike Pennisi) + * Begin implementation of `wrap` method (Dandlezzz) + * Update Readme.md (Sven Slootweg) + * fix document's mistake in Readme.md (exoticknight) + * Add tests for setting text and html as non-strings (Ryc O'Chet) + * Fix for passing non-string values to .html or .text (Ryc O'Chet) + * use a selector to filter form elements (fb55) + * fix README.md typo (Yutian Li) + * README: fix spelling (Chris Rebert) + * Added support for options without a `value` attribute. Fixes #633 (Todd Wolfson) + * responding to pull request feedback - remove item() method and related tests (Ray Waldin) + * add length property and item method to object returned by prop('style'), plus tests (Ray Waldin) + * Added .prop method to readme (Artem Burtsev) + * Added .prop method (Artem Burtsev) + * Added Gitter badge (The Gitter Badger) + +0.19.0 / 2015-03-21 +================== + + * fixed allignment (fb55) + * added test case for malformed json in data attributes (fb55) + * fix: handle some extreme cases like `data-custom="{{templatevar}}"`. There is possibility error while parsing json . (Harish.K) + * Add missing optional selector doc for {prev,next}{All,Until} (Jérémie Astori) + * update to dom-serializer@0.1.0 (Felix Böhm) + * Document `Cheerio#serialzeArray` (Mike Pennisi) + * Fixed up `serializeArray()` and added multiple support (Todd Wolfson) + * Implement serializeArray() (Jarno Leppänen) + * recognize options in $.xml() (fb55) + * lib/static.js: text(): rm errant space before ++ (Chris Rebert) + * Do not expose internal `children` array (Mike Pennisi) + * Change lodash dependencies to ^3.1.0 (Samy Pessé) + * Update lodash@3.1.0 (Samy Pessé) + * Updates Readme.md: .not(function (index, elem)) (Patrick Ward) + * update to css-select@1.0.0 (fb55) + * Allow failures in Node.js v0.11 (Mike Pennisi) + * Added: Gittask badge (Matthew Mueller) + * Isolate prototypes of functions created via `load` (Mike Pennisi) + * Updates Readme.md: adds JS syntax highlighting (frankcash) + * #608 -- Add support for insertBefore/insertAfter syntax. Supports target types of: $, [$], selector (both single and multiple results) (Ben Cochran) + * Clone input nodes when inserting over a set (Mike Pennisi) + * Move unit test files (Mike Pennisi) + * remove unnecessarily tricky code (David Chambers) + * pass options to $.html in toString (fb55) + * add license info to package.json (Chris Rebert) + * xyz@~0.5.0 (David Chambers) + * Remove unofficial signature of `children` (Mike Pennisi) + * Fix bug in `css` method (Mike Pennisi) + * Correct bug in implementation of `Cheerio#val` (Mike Pennisi) + +0.18.0 / 2014-11-06 +================== + + * bump htmlparser2 dependency to ~3.8.1 (Chris Rebert) + * Correct unit test titles (Mike Pennisi) + * Correct behavior of `after` and `before` (Mike Pennisi) + * implement jQuery's .has() (Chris Rebert) + * Update repository url (haqii) + * attr() should return undefined or name for booleans (Raoul Millais) + * Update Readme.md (Ryan Breen) + * Implement `Cheerio#not` (Mike Pennisi) + * Clone nodes according to original parsing options (Mike Pennisi) + * fix lint error (David Chambers) + * Add explicit tests for DOM level 1 API (Mike Pennisi) + * Expose DOM level 1 API for Node-like objects (Mike Pennisi) + * Correct error in documentation (Mike Pennisi) + * Return a fully-qualified Function from `$.load` (Mike Pennisi) + * Update tests to avoid duck typing (Mike Pennisi) + * Alter "loaded" functions to produce true instances (Mike Pennisi) + * Organize tests for `cheerio.load` (Mike Pennisi) + * Complete `$.prototype.find` (Mike Pennisi) + * Use JSHint's `extends` option (Mike Pennisi) + * Remove aliases for exported methods (Mike Pennisi) + * Disallow unused variables (Mike Pennisi) + * Remove unused internal variables (Mike Pennisi) + * Remove unused variables from unit tests (Mike Pennisi) + * Remove unused API method references (Mike Pennisi) + * Move tests for `contains` method (Mike Pennisi) + * xyz@0.4.0 (David Chambers) + * Created a wiki for companies using cheerio in production (Matthew Mueller) + * Implement `$.prototype.index` (Mike Pennisi) + * Implement `$.prototype.addBack` (Mike Pennisi) + * Added double quotes to radio attribute name to account for characters such as brackets (akant10) + * Update History.md (Gabriel Falkenberg) + * add 0.17.0 changelog (David Chambers) + * exit prepublish script if tag not found (David Chambers) + * alphabetize devDependencies (fb55) + * ignore coverage dir (fb55) + * submit coverage to coveralls (fb55) + * replace jscoverage with istanbul (fb55) + +0.17.0 / 2014-06-10 +================== + + * Fix bug in internal `uniqueSplice` function (Mike Pennisi) + * accept buffer argument to cheerio.load (David Chambers) + * Respect options on the element level (Alex Indigo) + * Change state definition to more readable (Artem Burtsev) + * added test (0xBADC0FFEE) + * add class only if doesn't exist (Artem Burtsev) + * Made it less insane. (Alex Indigo) + * Implement `Cheerio#add` (Mike Pennisi) + * Use "loaded" instance of Cheerio in unit tests (Mike Pennisi) + * Be more strict with object check. (Alex Indigo) + * Added options argument to .html() static method. (Alex Indigo) + * Fixed encoding mishaps. Adjusted tests. (Alex Indigo) + * use dom-serializer module (fb55) + * don't test on 0.8, don't ignore 0.11 (Felix Böhm) + * parse: rm unused variables (coderaiser) + * cheerio: rm unused variable (coderaiser) + * Fixed test (Avi Kohn) + * Added test (Avi Kohn) + * Changed == to === (Avi Kohn) + * Fixed a bug in removing type="hidden" attr (Avi Kohn) + * sorted (Alexey Raspopov) + * add `muted` attr to booleanAttributes (Alexey Raspopov) + * fixed context of `this` in .html (Felix Böhm) + * append new elements for each element in selection (fb55) + +0.16.0 / 2014-05-08 +================== + + * fix `make bench` (David Chambers) + * makefile: add release-* targets (David Chambers) + * alphabetize dependencies (David Chambers) + * Rewrite `data` internals with caching behavior (Mike Pennisi) + * Fence .val example as js (Kevin Sawicki) + * Fixed typos. Deleted trailing whitespace from test/render.js (Nattaphoom Ch) + * Fix manipulation APIs with removed elements (kpdecker) + * Perform manual string parsing for hasClass (kpdecker) + * Fix existing element removal (kpdecker) + * update render tests (Felix Böhm) + * fixed cheerio path (Felix Böhm) + * use `entities.escape` for attribute values (Felix Böhm) + * bump entities version (Felix Böhm) + * remove lowerCaseTags option from readme (Felix Böhm) + * added test case for .html in xmlMode (fb55) + * render xml in `html()` when `xmlMode: true` (fb55) + * use a map for booleanAttributes (fb55) + * update singleTags, use utils.isTag (fb55) + * update travis badge URL (Felix Böhm) + * use typeof instead of _.isString and _.isNumber (fb55) + * use Array.isArray instead of _.isArray (fb55) + * replace _.isFunction with typeof (fb55) + * removed unnecessary error message (fb55) + * decode entities in htmlparser2 (fb55) + * pass options object to CSSselect (fb55) + +0.15.0 / 2014-04-08 +================== + + * Update callbacks to pass element per docs (@kpdecker) + * preserve options (@fb55) + * Use SVG travis badge (@t3chnoboy) + * only use static requires (@fb55) + * Optimize manipulation methods (@kpdecker) + * Optimize add and remove class cases (@kpdecker) + * accept dom of DomHandler to cheerio.load (@nleush) + * added parentsUntil method (@finspin) + * Add performance optimization and bug fix `empty` method (@kpdecker) + +0.14.0 / 2014-04-01 +================== + + * call encodeXML and directly expose decodeHTML (@fb55) + * use latest htmlparser2 and entities versions (@fb55) + * Deprecate `$.fn.toArray` (@jugglinmike) + * Implement `$.fn.get` (@jugglinmike) + * .replaceWith now replaces all selected elements. (@xavi-) + * Correct arguments for 'replaceWith' callback (@jugglinmike) + * switch to lodash (@fb55) + * update to entities@0.5.0 (@fb55) + * Fix attr when $ collection contains text modules (@kpdecker) + * Update to latest version of expect.js (@jugglinmike) + * Remove nodes from their previous structures (@jugglinmike) + * Update render.js (@stevenvachon) + * CDATA test (@stevenvachon) + * only ever one child index for cdata (@stevenvachon) + * don't loop through cdata children array (@stevenvachon) + * proper rendering of CDATA (@stevenvachon) + * Add cheerio-only bench option (@kpdecker) + * Avoid delete operations (@kpdecker) + * Add independent html benchmark (@kpdecker) + * Cache tag check in render (@kpdecker) + * Simplify attribute rendering step (@kpdecker) + * Add html rendering bench case (@kpdecker) + * Remove unnecessary check from removeAttr (@kpdecker) + * Remove unnecessary encoding step for attrs (@kpdecker) + * Add test for removeAttr+attr on boolean attributes (@kpdecker) + * Add single element benchmark case (@kpdecker) + * Optimize filter with selector (@kpdecker) + * Fix passing context as dom node (@alfred-nsh) + * Fix bug in `nextUntil` (@jugglinmike) + * Fix bug in `nextAll` (@jugglinmike) + * Implement `selector` argument of `next` method (@jugglinmike) + * Fix bug in `prevUntil` (@jugglinmike) + * Implement `selector` argument of `prev` method (@jugglinmike) + * Fix bug in `prevAll` (@jugglinmike) + * Fix bug in `siblings` (@jugglinmike) + * Avoid unnecessary indexOf from toggleClass (@kpdecker) + * Use strict equality rather than falsy check in eq (@kpdecker) + * Add benchmark coverage for all $ APIs (@kpdecker) + * Optimize filter Cheerio intermediate creation (@kpdecker) + * Optimize siblings cheerio instance creation (@kpdecker) + * Optimize identity cases for first/last/eq (@kpdecker) + * Use domEach for traversal (@kpdecker) + * Inline children lookup in find (@kpdecker) + * Use domEach in data accessor (@kpdecker) + * Avoid cheerio creation in add/remove/toggleClass (@kpdecker) + * Implement getAttr local helper (@kpdecker) + +0.13.1 / 2014-01-07 +================== + + * Fix select with context in Cheerio function (@jugglinmike) + * Remove unecessary DOM maintenance logic (@jugglinmike) + * Deprecate support for node 0.6 + +0.13.0 / 2013-12-30 +================== + + * Remove "root" node (@jugglinmike) + * Fix bug in `prevAll`, `prev`, `nextAll`, `next`, `prevUntil`, `nextUntil` (@jugglinmike) + * Fix `replaceWith` method (@jugglinmike) + * added nextUntil() and prevUntil() (@finspin) + * Remove internal `connect` function (@jugglinmike) + * Rename `Cheerio#make` to document private status (@jugginmike) + * Remove extraneous call to `_.uniq` (@jugglinmike) + * Use CSSselect library directly (@jugglinmike) + * Run CI against Node v0.11 as an allowed failure (@jugginmike) + * Correct bug in `Cheerio#parents` (@jugglinmike) + * Implement `$.fn.end` (@jugginmike) + * Ignore colons inside of url(.*) when parsing css (@Meekohi) + * Introduce rudimentary benchmark suite (@jugglinmike) + * Update HtmlParser2 version (@jugglinmike) + * Correct inconsistency in `$.fn.map` (@jugglinmike) + * fixed traversing tests (@finspin) + * Simplify `make` method (@jugglinmike) + * Avoid shadowing instance methods from arrays (@jugglinmike) + +0.12.4 / 2013-11-12 +================== + + * Coerce JSON values returned by `data` (@jugglinmike) + * issue #284: when rendering HTML, use original data attributes (@Trott) + * Introduce JSHint for automated code linting (@jugglinmike) + * Prevent `find` from returning duplicate elements (@jugglinmike) + * Implement function signature of `replaceWith` (@jugglinmike) + * Implement function signature of `before` (@jugglinmike) + * Implement function signature of `after` (@jugglinmike) + * Implement function signature of `append`/`prepend` (@jugglinmike) + * Extend iteration methods to accept nodes (@jugglinmike) + * Improve `removeClass` (@jugglinmike) + * Complete function signature of `addClass` (@jugglinmike) + * Fix bug in `removeClass` (@jugglinmike) + * Improve contributing.md (@jugglinmike) + * Fix and document .css() (@jugglinmike) + +0.12.3 / 2013-10-04 +=================== + + * Add .toggleClass() function (@cyberthom) + * Add contributing guidelines (@jugglinmike) + * Fix bug in `siblings` (@jugglinmike) + * Correct the implementation `filter` and `is` (@jugglinmike) + * add .data() function (@andi-neck) + * add .css() (@yields) + * Implements contents() (@jlep) + +0.12.2 / 2013-09-04 +================== + + * Correct implementation of `$.fn.text` (@jugglinmike) + * Refactor Cheerio array creation (@jugglinmike) + * Extend manipulation methods to accept Arrays (@jugglinmike) + * support .attr(attributeName, function(index, attr)) (@xiaohwan) + +0.12.1 / 2013-07-30 +================== + + * Correct behavior of `Cheerio#parents` (@jugglinmike) + * Double quotes inside attributes kills HTML (@khoomeister) + * Making next({}) and prev({}) return empty object (@absentTelegraph) + * Implement $.parseHTML (@jugglinmike) + * Correct bug in jQuery.fn.closest (@jugglinmike) + * Correct behavior of $.fn.val on 'option' elements (@jugglinmike) + +0.12.0 / 2013-06-09 +=================== + + * Breaking Change: Changed context from parent to the actual passed one (@swissmanu) + * Fixed: jquery checkbox val behavior (@jhubble) + * Added: output xml with $.xml() (@Maciek416) + * Bumped: htmlparser2 to 3.1.1 + * Fixed: bug in attr(key, val) on empty objects (@farhadi) + * Added: prevAll, nextAll (@lessmind) + * Fixed: Safety check in parents and closest (@zero21xxx) + * Added: .is(sel) (@zero21xxx) + +0.11.0 / 2013-04-22 +================== + +* Added: .closest() (@jeremy-dentel) +* Added: .parents() (@zero21xxx) +* Added: .val() (@rschmukler & @leahciMic) +* Added: Travis support for node 0.10.0 (@jeremy-dentel) +* Fixed: .find() if no selector (@davidchambers) +* Fixed: Propagate syntax errors caused by invalid selectors (@davidchambers) + +0.10.8 / 2013-03-11 +================== + +* Add slice method (SBoudrias) + +0.10.7 / 2013-02-10 +================== + +* Code & doc cleanup (davidchambers) +* Fixed bug in filter (jugglinmike) + +0.10.6 / 2013-01-29 +================== + +* Added `$.contains(...)` (jugglinmike) +* formatting cleanup (davidchambers) +* Bug fix for `.children()` (jugglinmike & davidchambers) +* Remove global `render` bug (wvl) + +0.10.5 / 2012-12-18 +=================== + +* Fixed botched publish from 0.10.4 - changes should now be present + +0.10.4 / 2012-12-16 +================== + +* $.find should query descendants only (@jugglinmike) +* Tighter underscore dependency + +0.10.3 / 2012-11-18 +=================== + +* fixed outer html bug +* Updated documentation for $(...).html() and $.html() + +0.10.2 / 2012-11-17 +=================== + +* Added a toString() method (@bensheldon) +* use `_.each` and `_.map` to simplify cheerio namesakes (@davidchambers) +* Added filter() with tests and updated readme (@bensheldon & @davidchambers) +* Added spaces between attributes rewritten by removeClass (@jos3000) +* updated docs to remove reference to size method (@ironchefpython) +* removed HTML tidy/pretty print from cheerio + +0.10.1 / 2012-10-04 +=================== + +* Fixed regression, filtering with a context (#106) + +0.10.0 / 2012-09-24 +=================== + +* Greatly simplified and reorganized the library, reducing the loc by 30% +* Now supports mocha's test-coverage +* Deprecated self-closing tags (HTML5 doesn't require them) +* Fixed error thrown in removeClass(...) @robashton + +0.9.2 / 2012-08-10 +================== + +* added $(...).map(fn) +* manipulation: refactor `makeCheerioArray` +* make .removeClass() remove *all* occurrences (#64) + +0.9.1 / 2012-08-03 +================== + +* fixed bug causing options not to make it to the parser + +0.9.0 / 2012-07-24 +================== + +* Added node 8.x support +* Removed node 4.x support +* Add html(dom) support (@wvl) +* fixed xss vulnerabilities on .attr(), .text(), & .html() (@benatkin, @FB55) +* Rewrote tests into javascript, removing coffeescript dependency (@davidchambers) +* Tons of cleanup (@davidchambers) + +0.8.3 / 2012-06-12 +================== + +* Fixed minor package regression (closes #60) + +0.8.2 / 2012-06-11 +================== + +* Now fails gracefully in cases that involve special chars, which is inline with jQuery (closes #59) +* text() now decode special entities (closes #52) +* updated travis.yml to test node 4.x + +0.8.1 / 2012-06-02 +================== + +* fixed regression where if you created an element, it would update the root +* compatible with node 4.x (again) + +0.8.0 / 2012-05-27 +================== + +* Updated CSS parser to use FB55/CSSselect. Cheerio now supports most CSS3 psuedo selectors thanks to @FB55. +* ignoreWhitespace now on by default again. See #55 for context. +* Changed $(':root') to $.root(), cleaned up $.clone() +* Support for .eq(i) thanks to @alexbardas +* Removed support for node 0.4.x +* Fixed memory leak where package.json was continually loaded +* Tons more tests + +0.7.0 / 2012-04-08 +================== + +* Now testing with node v0.7.7 +* Added travis-ci integration +* Replaced should.js with expect.js. Browser testing to come +* Fixed spacing between attributes and their values +* Added HTML tidy/pretty print +* Exposed node-htmlparser2 parsing options +* Revert .replaceWith(...) to be consistent with jQuery + +0.6.2 / 2012-02-12 +================== + +* Fixed .replaceWith(...) regression + +0.6.1 / 2012-02-12 +================== + +* Added .first(), .last(), and .clone() commands. +* Option to parse using whitespace added to `.load`. +* Many bug fixes to make cheerio more aligned with jQuery. +* Added $(':root') to select the highest level element. + +Many thanks to the contributors that made this release happen: @ironchefpython and @siddMahen + +0.6.0 / 2012-02-07 +================== + +* *Important:* `$(...).html()` now returns inner HTML, which is in line with the jQuery spec +* `$.html()` returns the full HTML string. `$.html([cheerioObject])` will return the outer(selected element's tag) and inner HTML of that object +* Fixed bug that prevented HTML strings with depth (eg. `append('
')`) from getting `parent`, `next`, `prev` attributes. +* Halted [htmlparser2](https://github.com/FB55/node-htmlparser) at v2.2.2 until single attributes bug gets fixed. + +0.5.1 / 2012-02-05 +================== + +* Fixed minor regression: $(...).text(fn) would fail + +0.5.1 / 2012-02-05 +================== + +* Fixed regression: HTML pages with comments would fail + +0.5.0 / 2012-02-04 +================== + +* Transitioned from Coffeescript back to Javascript +* Parser now ignores whitespace +* Fixed issue with double slashes on self-enclosing tags +* Added boolean attributes to html rendering + +0.4.2 / 2012-01-16 +================== + +* Multiple selectors support: $('.apple, .orange'). Thanks @siddMahen! +* Update package.json to always use latest cheerio-soupselect +* Fix memory leak in index.js + +0.4.1 / 2011-12-19 +================== +* Minor packaging changes to allow `make test` to work from npm installation + +0.4.0 / 2011-12-19 +================== + +* Rewrote all unit tests as cheerio transitioned from vows -> mocha +* Internally, renderer.render -> render(...), parser.parse -> parse(...) +* Append, prepend, html, before, after all work with only text (no tags) +* Bugfix: Attributes can now be removed from script and style tags +* Added yield as a single tag +* Cheerio now compatible with node >=0.4.7 + +0.3.2 / 2011-12-1 +================= + +* Fixed $(...).text(...) to work with "root" element + +0.3.1 / 2011-11-25 +================== + +* Now relying on cheerio-soupselect instead of node-soupselect +* Removed all lingering htmlparser dependencies +* parser now returns parent "root" element. Root now never needs to be updated when there is multiple roots. This fixes ongoing issues with before(...), after(...) and other manipulation functions +* Added jQuery's $(...).replaceWith(...) + +0.3.0 / 2011-11-19 +================== + +* Now using htmlparser2 for parsing (2x speed increase, cleaner, actively developed) +* Added benchmark directory for future speed tests +* $('...').dom() was funky, so it was removed in favor of $('...').get(). $.dom() still works the same. +* $.root now correctly static across all instances of $ +* Added a screencast + +0.2.2 / 2011-11-9 +================= + +* Traversing will select `", + "expected": [ + { + "type": "tag", + "name": "head", + "attribs": {}, + "children": [ + { + "type": "script", + "name": "script", + "attribs": { + "language": "Javascript" + }, + "children": [ + { + "data": "var foo = \"\"; alert(2 > foo); var baz = 10 << 2; var zip = 10 >> 1; var yap = \"<<>>>><<\";", + "type": "text" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/node_modules/domhandler/test/cases/05-tags_in_comment.json b/node_modules/domhandler/test/cases/05-tags_in_comment.json new file mode 100644 index 0000000..2d22d9e --- /dev/null +++ b/node_modules/domhandler/test/cases/05-tags_in_comment.json @@ -0,0 +1,18 @@ +{ + "name": "Special char in comment", + "options": {}, + "html": "", + "expected": [ + { + "type": "tag", + "name": "head", + "attribs": {}, + "children": [ + { + "data": " commented out tags Test", + "type": "comment" + } + ] + } + ] +} \ No newline at end of file diff --git a/node_modules/domhandler/test/cases/06-comment_in_script.json b/node_modules/domhandler/test/cases/06-comment_in_script.json new file mode 100644 index 0000000..9a21cda --- /dev/null +++ b/node_modules/domhandler/test/cases/06-comment_in_script.json @@ -0,0 +1,18 @@ +{ + "name": "Script source in comment", + "options": {}, + "html": "", + "expected": [ + { + "type": "script", + "name": "script", + "attribs": {}, + "children": [ + { + "data": "", + "type": "text" + } + ] + } + ] +} \ No newline at end of file diff --git a/node_modules/domhandler/test/cases/07-unescaped_in_style.json b/node_modules/domhandler/test/cases/07-unescaped_in_style.json new file mode 100644 index 0000000..77438fd --- /dev/null +++ b/node_modules/domhandler/test/cases/07-unescaped_in_style.json @@ -0,0 +1,20 @@ +{ + "name": "Unescaped chars in style", + "options": {}, + "html": "", + "expected": [ + { + "type": "style", + "name": "style", + "attribs": { + "type": "text/css" + }, + "children": [ + { + "data": "\n body > p\n\t{ font-weight: bold; }", + "type": "text" + } + ] + } + ] +} \ No newline at end of file diff --git a/node_modules/domhandler/test/cases/08-extra_spaces_in_tag.json b/node_modules/domhandler/test/cases/08-extra_spaces_in_tag.json new file mode 100644 index 0000000..5c2492e --- /dev/null +++ b/node_modules/domhandler/test/cases/08-extra_spaces_in_tag.json @@ -0,0 +1,20 @@ +{ + "name": "Extra spaces in tag", + "options": {}, + "html": "the text", + "expected": [ + { + "type": "tag", + "name": "font", + "attribs": { + "size": "14" + }, + "children": [ + { + "data": "the text", + "type": "text" + } + ] + } + ] +} \ No newline at end of file diff --git a/node_modules/domhandler/test/cases/09-unquoted_attrib.json b/node_modules/domhandler/test/cases/09-unquoted_attrib.json new file mode 100644 index 0000000..543ccee --- /dev/null +++ b/node_modules/domhandler/test/cases/09-unquoted_attrib.json @@ -0,0 +1,20 @@ +{ + "name": "Unquoted attributes", + "options": {}, + "html": "the text", + "expected": [ + { + "type": "tag", + "name": "font", + "attribs": { + "size": "14" + }, + "children": [ + { + "data": "the text", + "type": "text" + } + ] + } + ] +} \ No newline at end of file diff --git a/node_modules/domhandler/test/cases/10-singular_attribute.json b/node_modules/domhandler/test/cases/10-singular_attribute.json new file mode 100644 index 0000000..544636e --- /dev/null +++ b/node_modules/domhandler/test/cases/10-singular_attribute.json @@ -0,0 +1,15 @@ +{ + "name": "Singular attribute", + "options": {}, + "html": "