4 <meta charset=
"utf-8" />
5 <title>BIP39 - Mnemonic Code
</title>
7 * Bootstrap v3.2
.0 (http://getbootstrap.com)
8 * Copyright
2011-
2014 Twitter, Inc.
9 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
10 *//*! normalize.css v3.0
.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:
100%;-ms-text-size-adjust:
100%}body{margin:
0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:
0}[hidden],template{display:none}a{background:
0 0}a:active,a:hover{outline:
0}abbr[title]{border-bottom:
1px dotted}b,strong{font-weight:
700}dfn{font-style:italic}h1{margin:
.67em
0;font-size:
2em}mark{color:#
000;background:#ff0}small{font-size:
80%}sub,sup{position:relative;font-size:
75%;line-height:
0;vertical-align:baseline}sup{top:-
.5em}sub{bottom:-
.25em}img{border:
0}svg:not(:root){overflow:hidden}figure{margin:
1em
40px}hr{height:
0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:
1em}button,input,optgroup,select,textarea{margin:
0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:
0;border:
0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:
0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:
.35em
.625em
.75em;margin:
0 2px;border:
1px solid silver}legend{padding:
0;border:
0}textarea{overflow:auto}optgroup{font-weight:
700}table{border-spacing:
0;border-collapse:collapse}td,th{padding:
0}@media print{*{color:#
000!important;text-shadow:none!important;background:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:
1px solid #
999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:
100%!important}p,h2,h3{orphans:
3;widows:
3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn
>.caret,.dropup
>.btn
>.caret{border-top-color:#
000!important}.label{border:
1px solid #
000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:
1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:
1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:
400;line-height:
1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\
2a"}.glyphicon-plus:before{content:"\
2b"}.glyphicon-euro:before{content:"\
20ac"}.glyphicon-minus:before{content:"\
2212"}.glyphicon-cloud:before{content:"\
2601"}.glyphicon-envelope:before{content:"\
2709"}.glyphicon-pencil:before{content:"\
270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-
5-
1:before{content:"\e191"}.glyphicon-sound-
6-
1:before{content:"\e192"}.glyphicon-sound-
7-
1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:
10px;-webkit-tap-highlight-color:rgba(
0,
0,
0,
0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:
14px;line-height:
1.42857143;color:#
333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#
428bca;text-decoration:none}a:hover,a:focus{color:#
2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:
5px auto -webkit-focus-ring-color;outline-offset:-
2px}figure{margin:
0}img{vertical-align:middle}.img-responsive,.thumbnail
>img,.thumbnail a
>img,.carousel-inner
>.item
>img,.carousel-inner
>.item
>a
>img{display:block;width:
100% \
9;max-width:
100%;height:auto}.img-rounded{border-radius:
6px}.img-thumbnail{display:inline-block;width:
100% \
9;max-width:
100%;height:auto;padding:
4px;line-height:
1.42857143;background-color:#fff;border:
1px solid #ddd;border-radius:
4px;-webkit-transition:all
.2s ease-in-out;-o-transition:all
.2s ease-in-out;transition:all
.2s ease-in-out}.img-circle{border-radius:
50%}hr{margin-top:
20px;margin-bottom:
20px;border:
0;border-top:
1px solid #eee}.sr-only{position:absolute;width:
1px;height:
1px;padding:
0;margin:-
1px;overflow:hidden;clip:rect(
0,
0,
0,
0);border:
0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:
0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:
500;line-height:
1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:
400;line-height:
1;color:#
777}h1,.h1,h2,.h2,h3,.h3{margin-top:
20px;margin-bottom:
10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:
65%}h4,.h4,h5,.h5,h6,.h6{margin-top:
10px;margin-bottom:
10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:
75%}h1,.h1{font-size:
36px}h2,.h2{font-size:
30px}h3,.h3{font-size:
24px}h4,.h4{font-size:
18px}h5,.h5{font-size:
14px}h6,.h6{font-size:
12px}p{margin:
0 0 10px}.lead{margin-bottom:
20px;font-size:
16px;font-weight:
300;line-height:
1.4}@media (min-width:
768px){.lead{font-size:
21px}}small,.small{font-size:
85%}cite{font-style:normal}mark,.mark{padding:
.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#
777}.text-primary{color:#
428bca}a.text-primary:hover{color:#
3071a9}.text-success{color:#
3c763d}a.text-success:hover{color:#
2b542c}.text-info{color:#
31708f}a.text-info:hover{color:#
245269}.text-warning{color:#
8a6d3b}a.text-warning:hover{color:#
66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#
843534}.bg-primary{color:#fff;background-color:#
428bca}a.bg-primary:hover{background-color:#
3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:
9px;margin:
40px
0 20px;border-bottom:
1px solid #eee}ul,ol{margin-top:
0;margin-bottom:
10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:
0}.list-unstyled{padding-left:
0;list-style:none}.list-inline{padding-left:
0;margin-left:-
5px;list-style:none}.list-inline
>li{display:inline-block;padding-right:
5px;padding-left:
5px}dl{margin-top:
0;margin-bottom:
20px}dt,dd{line-height:
1.42857143}dt{font-weight:
700}dd{margin-left:
0}@media (min-width:
768px){.dl-horizontal dt{float:left;width:
160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:
180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:
1px dotted #
777}.initialism{font-size:
90%;text-transform:uppercase}blockquote{padding:
10px
20px;margin:
0 0 20px;font-size:
17.5px;border-left:
5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:
0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:
80%;line-height:
1.42857143;color:#
777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\
2014 \
00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:
15px;padding-left:
0;text-align:right;border-right:
5px solid #eee;border-left:
0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\
00A0 \
2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:
20px;font-style:normal;line-height:
1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:
2px
4px;font-size:
90%;color:#c7254e;background-color:#f9f2f4;border-radius:
4px}kbd{padding:
2px
4px;font-size:
90%;color:#fff;background-color:#
333;border-radius:
3px;-webkit-box-shadow:inset
0 -
1px
0 rgba(
0,
0,
0,
.25);box-shadow:inset
0 -
1px
0 rgba(
0,
0,
0,
.25)}kbd kbd{padding:
0;font-size:
100%;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:
9.5px;margin:
0 0 10px;font-size:
13px;line-height:
1.42857143;color:#
333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:
1px solid #ccc;border-radius:
4px}pre code{padding:
0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:
0}.pre-scrollable{max-height:
340px;overflow-y:scroll}.container{padding-right:
15px;padding-left:
15px;margin-right:auto;margin-left:auto}@media (min-width:
768px){.container{width:
750px}}@media (min-width:
992px){.container{width:
970px}}@media (min-width:
1200px){.container{width:
1170px}}.container-fluid{padding-right:
15px;padding-left:
15px;margin-right:auto;margin-left:auto}.row{margin-right:-
15px;margin-left:-
15px}.col-xs-
1,.col-sm-
1,.col-md-
1,.col-lg-
1,.col-xs-
2,.col-sm-
2,.col-md-
2,.col-lg-
2,.col-xs-
3,.col-sm-
3,.col-md-
3,.col-lg-
3,.col-xs-
4,.col-sm-
4,.col-md-
4,.col-lg-
4,.col-xs-
5,.col-sm-
5,.col-md-
5,.col-lg-
5,.col-xs-
6,.col-sm-
6,.col-md-
6,.col-lg-
6,.col-xs-
7,.col-sm-
7,.col-md-
7,.col-lg-
7,.col-xs-
8,.col-sm-
8,.col-md-
8,.col-lg-
8,.col-xs-
9,.col-sm-
9,.col-md-
9,.col-lg-
9,.col-xs-
10,.col-sm-
10,.col-md-
10,.col-lg-
10,.col-xs-
11,.col-sm-
11,.col-md-
11,.col-lg-
11,.col-xs-
12,.col-sm-
12,.col-md-
12,.col-lg-
12{position:relative;min-height:
1px;padding-right:
15px;padding-left:
15px}.col-xs-
1,.col-xs-
2,.col-xs-
3,.col-xs-
4,.col-xs-
5,.col-xs-
6,.col-xs-
7,.col-xs-
8,.col-xs-
9,.col-xs-
10,.col-xs-
11,.col-xs-
12{float:left}.col-xs-
12{width:
100%}.col-xs-
11{width:
91.66666667%}.col-xs-
10{width:
83.33333333%}.col-xs-
9{width:
75%}.col-xs-
8{width:
66.66666667%}.col-xs-
7{width:
58.33333333%}.col-xs-
6{width:
50%}.col-xs-
5{width:
41.66666667%}.col-xs-
4{width:
33.33333333%}.col-xs-
3{width:
25%}.col-xs-
2{width:
16.66666667%}.col-xs-
1{width:
8.33333333%}.col-xs-pull-
12{right:
100%}.col-xs-pull-
11{right:
91.66666667%}.col-xs-pull-
10{right:
83.33333333%}.col-xs-pull-
9{right:
75%}.col-xs-pull-
8{right:
66.66666667%}.col-xs-pull-
7{right:
58.33333333%}.col-xs-pull-
6{right:
50%}.col-xs-pull-
5{right:
41.66666667%}.col-xs-pull-
4{right:
33.33333333%}.col-xs-pull-
3{right:
25%}.col-xs-pull-
2{right:
16.66666667%}.col-xs-pull-
1{right:
8.33333333%}.col-xs-pull-
0{right:auto}.col-xs-push-
12{left:
100%}.col-xs-push-
11{left:
91.66666667%}.col-xs-push-
10{left:
83.33333333%}.col-xs-push-
9{left:
75%}.col-xs-push-
8{left:
66.66666667%}.col-xs-push-
7{left:
58.33333333%}.col-xs-push-
6{left:
50%}.col-xs-push-
5{left:
41.66666667%}.col-xs-push-
4{left:
33.33333333%}.col-xs-push-
3{left:
25%}.col-xs-push-
2{left:
16.66666667%}.col-xs-push-
1{left:
8.33333333%}.col-xs-push-
0{left:auto}.col-xs-offset-
12{margin-left:
100%}.col-xs-offset-
11{margin-left:
91.66666667%}.col-xs-offset-
10{margin-left:
83.33333333%}.col-xs-offset-
9{margin-left:
75%}.col-xs-offset-
8{margin-left:
66.66666667%}.col-xs-offset-
7{margin-left:
58.33333333%}.col-xs-offset-
6{margin-left:
50%}.col-xs-offset-
5{margin-left:
41.66666667%}.col-xs-offset-
4{margin-left:
33.33333333%}.col-xs-offset-
3{margin-left:
25%}.col-xs-offset-
2{margin-left:
16.66666667%}.col-xs-offset-
1{margin-left:
8.33333333%}.col-xs-offset-
0{margin-left:
0}@media (min-width:
768px){.col-sm-
1,.col-sm-
2,.col-sm-
3,.col-sm-
4,.col-sm-
5,.col-sm-
6,.col-sm-
7,.col-sm-
8,.col-sm-
9,.col-sm-
10,.col-sm-
11,.col-sm-
12{float:left}.col-sm-
12{width:
100%}.col-sm-
11{width:
91.66666667%}.col-sm-
10{width:
83.33333333%}.col-sm-
9{width:
75%}.col-sm-
8{width:
66.66666667%}.col-sm-
7{width:
58.33333333%}.col-sm-
6{width:
50%}.col-sm-
5{width:
41.66666667%}.col-sm-
4{width:
33.33333333%}.col-sm-
3{width:
25%}.col-sm-
2{width:
16.66666667%}.col-sm-
1{width:
8.33333333%}.col-sm-pull-
12{right:
100%}.col-sm-pull-
11{right:
91.66666667%}.col-sm-pull-
10{right:
83.33333333%}.col-sm-pull-
9{right:
75%}.col-sm-pull-
8{right:
66.66666667%}.col-sm-pull-
7{right:
58.33333333%}.col-sm-pull-
6{right:
50%}.col-sm-pull-
5{right:
41.66666667%}.col-sm-pull-
4{right:
33.33333333%}.col-sm-pull-
3{right:
25%}.col-sm-pull-
2{right:
16.66666667%}.col-sm-pull-
1{right:
8.33333333%}.col-sm-pull-
0{right:auto}.col-sm-push-
12{left:
100%}.col-sm-push-
11{left:
91.66666667%}.col-sm-push-
10{left:
83.33333333%}.col-sm-push-
9{left:
75%}.col-sm-push-
8{left:
66.66666667%}.col-sm-push-
7{left:
58.33333333%}.col-sm-push-
6{left:
50%}.col-sm-push-
5{left:
41.66666667%}.col-sm-push-
4{left:
33.33333333%}.col-sm-push-
3{left:
25%}.col-sm-push-
2{left:
16.66666667%}.col-sm-push-
1{left:
8.33333333%}.col-sm-push-
0{left:auto}.col-sm-offset-
12{margin-left:
100%}.col-sm-offset-
11{margin-left:
91.66666667%}.col-sm-offset-
10{margin-left:
83.33333333%}.col-sm-offset-
9{margin-left:
75%}.col-sm-offset-
8{margin-left:
66.66666667%}.col-sm-offset-
7{margin-left:
58.33333333%}.col-sm-offset-
6{margin-left:
50%}.col-sm-offset-
5{margin-left:
41.66666667%}.col-sm-offset-
4{margin-left:
33.33333333%}.col-sm-offset-
3{margin-left:
25%}.col-sm-offset-
2{margin-left:
16.66666667%}.col-sm-offset-
1{margin-left:
8.33333333%}.col-sm-offset-
0{margin-left:
0}}@media (min-width:
992px){.col-md-
1,.col-md-
2,.col-md-
3,.col-md-
4,.col-md-
5,.col-md-
6,.col-md-
7,.col-md-
8,.col-md-
9,.col-md-
10,.col-md-
11,.col-md-
12{float:left}.col-md-
12{width:
100%}.col-md-
11{width:
91.66666667%}.col-md-
10{width:
83.33333333%}.col-md-
9{width:
75%}.col-md-
8{width:
66.66666667%}.col-md-
7{width:
58.33333333%}.col-md-
6{width:
50%}.col-md-
5{width:
41.66666667%}.col-md-
4{width:
33.33333333%}.col-md-
3{width:
25%}.col-md-
2{width:
16.66666667%}.col-md-
1{width:
8.33333333%}.col-md-pull-
12{right:
100%}.col-md-pull-
11{right:
91.66666667%}.col-md-pull-
10{right:
83.33333333%}.col-md-pull-
9{right:
75%}.col-md-pull-
8{right:
66.66666667%}.col-md-pull-
7{right:
58.33333333%}.col-md-pull-
6{right:
50%}.col-md-pull-
5{right:
41.66666667%}.col-md-pull-
4{right:
33.33333333%}.col-md-pull-
3{right:
25%}.col-md-pull-
2{right:
16.66666667%}.col-md-pull-
1{right:
8.33333333%}.col-md-pull-
0{right:auto}.col-md-push-
12{left:
100%}.col-md-push-
11{left:
91.66666667%}.col-md-push-
10{left:
83.33333333%}.col-md-push-
9{left:
75%}.col-md-push-
8{left:
66.66666667%}.col-md-push-
7{left:
58.33333333%}.col-md-push-
6{left:
50%}.col-md-push-
5{left:
41.66666667%}.col-md-push-
4{left:
33.33333333%}.col-md-push-
3{left:
25%}.col-md-push-
2{left:
16.66666667%}.col-md-push-
1{left:
8.33333333%}.col-md-push-
0{left:auto}.col-md-offset-
12{margin-left:
100%}.col-md-offset-
11{margin-left:
91.66666667%}.col-md-offset-
10{margin-left:
83.33333333%}.col-md-offset-
9{margin-left:
75%}.col-md-offset-
8{margin-left:
66.66666667%}.col-md-offset-
7{margin-left:
58.33333333%}.col-md-offset-
6{margin-left:
50%}.col-md-offset-
5{margin-left:
41.66666667%}.col-md-offset-
4{margin-left:
33.33333333%}.col-md-offset-
3{margin-left:
25%}.col-md-offset-
2{margin-left:
16.66666667%}.col-md-offset-
1{margin-left:
8.33333333%}.col-md-offset-
0{margin-left:
0}}@media (min-width:
1200px){.col-lg-
1,.col-lg-
2,.col-lg-
3,.col-lg-
4,.col-lg-
5,.col-lg-
6,.col-lg-
7,.col-lg-
8,.col-lg-
9,.col-lg-
10,.col-lg-
11,.col-lg-
12{float:left}.col-lg-
12{width:
100%}.col-lg-
11{width:
91.66666667%}.col-lg-
10{width:
83.33333333%}.col-lg-
9{width:
75%}.col-lg-
8{width:
66.66666667%}.col-lg-
7{width:
58.33333333%}.col-lg-
6{width:
50%}.col-lg-
5{width:
41.66666667%}.col-lg-
4{width:
33.33333333%}.col-lg-
3{width:
25%}.col-lg-
2{width:
16.66666667%}.col-lg-
1{width:
8.33333333%}.col-lg-pull-
12{right:
100%}.col-lg-pull-
11{right:
91.66666667%}.col-lg-pull-
10{right:
83.33333333%}.col-lg-pull-
9{right:
75%}.col-lg-pull-
8{right:
66.66666667%}.col-lg-pull-
7{right:
58.33333333%}.col-lg-pull-
6{right:
50%}.col-lg-pull-
5{right:
41.66666667%}.col-lg-pull-
4{right:
33.33333333%}.col-lg-pull-
3{right:
25%}.col-lg-pull-
2{right:
16.66666667%}.col-lg-pull-
1{right:
8.33333333%}.col-lg-pull-
0{right:auto}.col-lg-push-
12{left:
100%}.col-lg-push-
11{left:
91.66666667%}.col-lg-push-
10{left:
83.33333333%}.col-lg-push-
9{left:
75%}.col-lg-push-
8{left:
66.66666667%}.col-lg-push-
7{left:
58.33333333%}.col-lg-push-
6{left:
50%}.col-lg-push-
5{left:
41.66666667%}.col-lg-push-
4{left:
33.33333333%}.col-lg-push-
3{left:
25%}.col-lg-push-
2{left:
16.66666667%}.col-lg-push-
1{left:
8.33333333%}.col-lg-push-
0{left:auto}.col-lg-offset-
12{margin-left:
100%}.col-lg-offset-
11{margin-left:
91.66666667%}.col-lg-offset-
10{margin-left:
83.33333333%}.col-lg-offset-
9{margin-left:
75%}.col-lg-offset-
8{margin-left:
66.66666667%}.col-lg-offset-
7{margin-left:
58.33333333%}.col-lg-offset-
6{margin-left:
50%}.col-lg-offset-
5{margin-left:
41.66666667%}.col-lg-offset-
4{margin-left:
33.33333333%}.col-lg-offset-
3{margin-left:
25%}.col-lg-offset-
2{margin-left:
16.66666667%}.col-lg-offset-
1{margin-left:
8.33333333%}.col-lg-offset-
0{margin-left:
0}}table{background-color:transparent}th{text-align:left}.table{width:
100%;max-width:
100%;margin-bottom:
20px}.table
>thead
>tr
>th,.table
>tbody
>tr
>th,.table
>tfoot
>tr
>th,.table
>thead
>tr
>td,.table
>tbody
>tr
>td,.table
>tfoot
>tr
>td{padding:
8px;line-height:
1.42857143;vertical-align:top;border-top:
1px solid #ddd}.table
>thead
>tr
>th{vertical-align:bottom;border-bottom:
2px solid #ddd}.table
>caption+thead
>tr:first-child
>th,.table
>colgroup+thead
>tr:first-child
>th,.table
>thead:first-child
>tr:first-child
>th,.table
>caption+thead
>tr:first-child
>td,.table
>colgroup+thead
>tr:first-child
>td,.table
>thead:first-child
>tr:first-child
>td{border-top:
0}.table
>tbody+tbody{border-top:
2px solid #ddd}.table .table{background-color:#fff}.table-condensed
>thead
>tr
>th,.table-condensed
>tbody
>tr
>th,.table-condensed
>tfoot
>tr
>th,.table-condensed
>thead
>tr
>td,.table-condensed
>tbody
>tr
>td,.table-condensed
>tfoot
>tr
>td{padding:
5px}.table-bordered{border:
1px solid #ddd}.table-bordered
>thead
>tr
>th,.table-bordered
>tbody
>tr
>th,.table-bordered
>tfoot
>tr
>th,.table-bordered
>thead
>tr
>td,.table-bordered
>tbody
>tr
>td,.table-bordered
>tfoot
>tr
>td{border:
1px solid #ddd}.table-bordered
>thead
>tr
>th,.table-bordered
>thead
>tr
>td{border-bottom-width:
2px}.table-striped
>tbody
>tr:nth-child(odd)
>td,.table-striped
>tbody
>tr:nth-child(odd)
>th{background-color:#f9f9f9}.table-hover
>tbody
>tr:hover
>td,.table-hover
>tbody
>tr:hover
>th{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table
>thead
>tr
>td.active,.table
>tbody
>tr
>td.active,.table
>tfoot
>tr
>td.active,.table
>thead
>tr
>th.active,.table
>tbody
>tr
>th.active,.table
>tfoot
>tr
>th.active,.table
>thead
>tr.active
>td,.table
>tbody
>tr.active
>td,.table
>tfoot
>tr.active
>td,.table
>thead
>tr.active
>th,.table
>tbody
>tr.active
>th,.table
>tfoot
>tr.active
>th{background-color:#f5f5f5}.table-hover
>tbody
>tr
>td.active:hover,.table-hover
>tbody
>tr
>th.active:hover,.table-hover
>tbody
>tr.active:hover
>td,.table-hover
>tbody
>tr:hover
>.active,.table-hover
>tbody
>tr.active:hover
>th{background-color:#e8e8e8}.table
>thead
>tr
>td.success,.table
>tbody
>tr
>td.success,.table
>tfoot
>tr
>td.success,.table
>thead
>tr
>th.success,.table
>tbody
>tr
>th.success,.table
>tfoot
>tr
>th.success,.table
>thead
>tr.success
>td,.table
>tbody
>tr.success
>td,.table
>tfoot
>tr.success
>td,.table
>thead
>tr.success
>th,.table
>tbody
>tr.success
>th,.table
>tfoot
>tr.success
>th{background-color:#dff0d8}.table-hover
>tbody
>tr
>td.success:hover,.table-hover
>tbody
>tr
>th.success:hover,.table-hover
>tbody
>tr.success:hover
>td,.table-hover
>tbody
>tr:hover
>.success,.table-hover
>tbody
>tr.success:hover
>th{background-color:#d0e9c6}.table
>thead
>tr
>td.info,.table
>tbody
>tr
>td.info,.table
>tfoot
>tr
>td.info,.table
>thead
>tr
>th.info,.table
>tbody
>tr
>th.info,.table
>tfoot
>tr
>th.info,.table
>thead
>tr.info
>td,.table
>tbody
>tr.info
>td,.table
>tfoot
>tr.info
>td,.table
>thead
>tr.info
>th,.table
>tbody
>tr.info
>th,.table
>tfoot
>tr.info
>th{background-color:#d9edf7}.table-hover
>tbody
>tr
>td.info:hover,.table-hover
>tbody
>tr
>th.info:hover,.table-hover
>tbody
>tr.info:hover
>td,.table-hover
>tbody
>tr:hover
>.info,.table-hover
>tbody
>tr.info:hover
>th{background-color:#c4e3f3}.table
>thead
>tr
>td.warning,.table
>tbody
>tr
>td.warning,.table
>tfoot
>tr
>td.warning,.table
>thead
>tr
>th.warning,.table
>tbody
>tr
>th.warning,.table
>tfoot
>tr
>th.warning,.table
>thead
>tr.warning
>td,.table
>tbody
>tr.warning
>td,.table
>tfoot
>tr.warning
>td,.table
>thead
>tr.warning
>th,.table
>tbody
>tr.warning
>th,.table
>tfoot
>tr.warning
>th{background-color:#fcf8e3}.table-hover
>tbody
>tr
>td.warning:hover,.table-hover
>tbody
>tr
>th.warning:hover,.table-hover
>tbody
>tr.warning:hover
>td,.table-hover
>tbody
>tr:hover
>.warning,.table-hover
>tbody
>tr.warning:hover
>th{background-color:#faf2cc}.table
>thead
>tr
>td.danger,.table
>tbody
>tr
>td.danger,.table
>tfoot
>tr
>td.danger,.table
>thead
>tr
>th.danger,.table
>tbody
>tr
>th.danger,.table
>tfoot
>tr
>th.danger,.table
>thead
>tr.danger
>td,.table
>tbody
>tr.danger
>td,.table
>tfoot
>tr.danger
>td,.table
>thead
>tr.danger
>th,.table
>tbody
>tr.danger
>th,.table
>tfoot
>tr.danger
>th{background-color:#f2dede}.table-hover
>tbody
>tr
>td.danger:hover,.table-hover
>tbody
>tr
>th.danger:hover,.table-hover
>tbody
>tr.danger:hover
>td,.table-hover
>tbody
>tr:hover
>.danger,.table-hover
>tbody
>tr.danger:hover
>th{background-color:#ebcccc}@media screen and (max-width:
767px){.table-responsive{width:
100%;margin-bottom:
15px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;border:
1px solid #ddd}.table-responsive
>.table{margin-bottom:
0}.table-responsive
>.table
>thead
>tr
>th,.table-responsive
>.table
>tbody
>tr
>th,.table-responsive
>.table
>tfoot
>tr
>th,.table-responsive
>.table
>thead
>tr
>td,.table-responsive
>.table
>tbody
>tr
>td,.table-responsive
>.table
>tfoot
>tr
>td{white-space:nowrap}.table-responsive
>.table-bordered{border:
0}.table-responsive
>.table-bordered
>thead
>tr
>th:first-child,.table-responsive
>.table-bordered
>tbody
>tr
>th:first-child,.table-responsive
>.table-bordered
>tfoot
>tr
>th:first-child,.table-responsive
>.table-bordered
>thead
>tr
>td:first-child,.table-responsive
>.table-bordered
>tbody
>tr
>td:first-child,.table-responsive
>.table-bordered
>tfoot
>tr
>td:first-child{border-left:
0}.table-responsive
>.table-bordered
>thead
>tr
>th:last-child,.table-responsive
>.table-bordered
>tbody
>tr
>th:last-child,.table-responsive
>.table-bordered
>tfoot
>tr
>th:last-child,.table-responsive
>.table-bordered
>thead
>tr
>td:last-child,.table-responsive
>.table-bordered
>tbody
>tr
>td:last-child,.table-responsive
>.table-bordered
>tfoot
>tr
>td:last-child{border-right:
0}.table-responsive
>.table-bordered
>tbody
>tr:last-child
>th,.table-responsive
>.table-bordered
>tfoot
>tr:last-child
>th,.table-responsive
>.table-bordered
>tbody
>tr:last-child
>td,.table-responsive
>.table-bordered
>tfoot
>tr:last-child
>td{border-bottom:
0}}fieldset{min-width:
0;padding:
0;margin:
0;border:
0}legend{display:block;width:
100%;padding:
0;margin-bottom:
20px;font-size:
21px;line-height:inherit;color:#
333;border:
0;border-bottom:
1px solid #e5e5e5}label{display:inline-block;max-width:
100%;margin-bottom:
5px;font-weight:
700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:
4px
0 0;margin-top:
1px \
9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:
100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:
5px auto -webkit-focus-ring-color;outline-offset:-
2px}output{display:block;padding-top:
7px;font-size:
14px;line-height:
1.42857143;color:#
555}.form-control{display:block;width:
100%;height:
34px;padding:
6px
12px;font-size:
14px;line-height:
1.42857143;color:#
555;background-color:#fff;background-image:none;border:
1px solid #ccc;border-radius:
4px;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);-webkit-transition:border-color ease-in-out
.15s,-webkit-box-shadow ease-in-out
.15s;-o-transition:border-color ease-in-out
.15s,box-shadow ease-in-out
.15s;transition:border-color ease-in-out
.15s,box-shadow ease-in-out
.15s}.form-control:focus{border-color:#
66afe9;outline:
0;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 8px rgba(
102,
175,
233,
.6);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 8px rgba(
102,
175,
233,
.6)}.form-control::-moz-placeholder{color:#
777;opacity:
1}.form-control:-ms-input-placeholder{color:#
777}.form-control::-webkit-input-placeholder{color:#
777}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:
1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:
34px;line-height:
1.42857143 \
0}input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:
30px}input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:
46px}.form-group{margin-bottom:
15px}.radio,.checkbox{position:relative;display:block;min-height:
20px;margin-top:
10px;margin-bottom:
10px}.radio label,.checkbox label{padding-left:
20px;margin-bottom:
0;font-weight:
400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{position:absolute;margin-top:
4px \
9;margin-left:-
20px}.radio+.radio,.checkbox+.checkbox{margin-top:-
5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:
20px;margin-bottom:
0;font-weight:
400;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:
0;margin-left:
10px}input[type=radio][disabled],input[type=checkbox][disabled],input[type=radio].disabled,input[type=checkbox].disabled,fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:
7px;padding-bottom:
7px;margin-bottom:
0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:
0;padding-left:
0}.input-sm,.form-horizontal .form-group-sm .form-control{height:
30px;padding:
5px
10px;font-size:
12px;line-height:
1.5;border-radius:
3px}select.input-sm{height:
30px;line-height:
30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg,.form-horizontal .form-group-lg .form-control{height:
46px;padding:
10px
16px;font-size:
18px;line-height:
1.33;border-radius:
6px}select.input-lg{height:
46px;line-height:
46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:
42.5px}.form-control-feedback{position:absolute;top:
25px;right:
0;z-index:
2;display:block;width:
34px;height:
34px;line-height:
34px;text-align:center}.input-lg+.form-control-feedback{width:
46px;height:
46px;line-height:
46px}.input-sm+.form-control-feedback{width:
30px;height:
30px;line-height:
30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#
3c763d}.has-success .form-control{border-color:#
3c763d;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075)}.has-success .form-control:focus{border-color:#
2b542c;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #
67b168;box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #
67b168}.has-success .input-group-addon{color:#
3c763d;background-color:#dff0d8;border-color:#
3c763d}.has-success .form-control-feedback{color:#
3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#
8a6d3b}.has-warning .form-control{border-color:#
8a6d3b;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075)}.has-warning .form-control:focus{border-color:#
66512c;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #c0a16b;box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #c0a16b}.has-warning .input-group-addon{color:#
8a6d3b;background-color:#fcf8e3;border-color:#
8a6d3b}.has-warning .form-control-feedback{color:#
8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075)}.has-error .form-control:focus{border-color:#
843534;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #ce8483;box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.075),
0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label.sr-only~.form-control-feedback{top:
0}.help-block{display:block;margin-top:
5px;margin-bottom:
10px;color:#
737373}@media (min-width:
768px){.form-inline .form-group{display:inline-block;margin-bottom:
0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group
>.form-control{width:
100%}.form-inline .control-label{margin-bottom:
0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:
0;margin-bottom:
0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:
0}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{position:relative;margin-left:
0}.form-inline .has-feedback .form-control-feedback{top:
0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:
7px;margin-top:
0;margin-bottom:
0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:
27px}.form-horizontal .form-group{margin-right:-
15px;margin-left:-
15px}@media (min-width:
768px){.form-horizontal .control-label{padding-top:
7px;margin-bottom:
0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:
0;right:
15px}@media (min-width:
768px){.form-horizontal .form-group-lg .control-label{padding-top:
14.3px}}@media (min-width:
768px){.form-horizontal .form-group-sm .control-label{padding-top:
6px}}.btn{display:inline-block;padding:
6px
12px;margin-bottom:
0;font-size:
14px;font-weight:
400;line-height:
1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:
1px solid transparent;border-radius:
4px}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:
5px auto -webkit-focus-ring-color;outline-offset:-
2px}.btn:hover,.btn:focus{color:#
333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:
0;-webkit-box-shadow:inset
0 3px
5px rgba(
0,
0,
0,
.125);box-shadow:inset
0 3px
5px rgba(
0,
0,
0,
.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=
65);-webkit-box-shadow:none;box-shadow:none;opacity:
.65}.btn-default{color:#
333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open
>.dropdown-toggle.btn-default{color:#
333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open
>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#
333}.btn-primary{color:#fff;background-color:#
428bca;border-color:#
357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open
>.dropdown-toggle.btn-primary{color:#fff;background-color:#
3071a9;border-color:#
285e8e}.btn-primary:active,.btn-primary.active,.open
>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#
428bca;border-color:#
357ebd}.btn-primary .badge{color:#
428bca;background-color:#fff}.btn-success{color:#fff;background-color:#
5cb85c;border-color:#
4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open
>.dropdown-toggle.btn-success{color:#fff;background-color:#
449d44;border-color:#
398439}.btn-success:active,.btn-success.active,.open
>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#
5cb85c;border-color:#
4cae4c}.btn-success .badge{color:#
5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#
5bc0de;border-color:#
46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open
>.dropdown-toggle.btn-info{color:#fff;background-color:#
31b0d5;border-color:#
269abc}.btn-info:active,.btn-info.active,.open
>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#
5bc0de;border-color:#
46b8da}.btn-info .badge{color:#
5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open
>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open
>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open
>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open
>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:
400;color:#
428bca;cursor:pointer;border-radius:
0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#
2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#
777;text-decoration:none}.btn-lg,.btn-group-lg
>.btn{padding:
10px
16px;font-size:
18px;line-height:
1.33;border-radius:
6px}.btn-sm,.btn-group-sm
>.btn{padding:
5px
10px;font-size:
12px;line-height:
1.5;border-radius:
3px}.btn-xs,.btn-group-xs
>.btn{padding:
1px
5px;font-size:
12px;line-height:
1.5;border-radius:
3px}.btn-block{display:block;width:
100%}.btn-block+.btn-block{margin-top:
5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:
100%}.fade{opacity:
0;-webkit-transition:opacity
.15s linear;-o-transition:opacity
.15s linear;transition:opacity
.15s linear}.fade.in{opacity:
1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:
0;overflow:hidden;-webkit-transition:height
.35s ease;-o-transition:height
.35s ease;transition:height
.35s ease}.caret{display:inline-block;width:
0;height:
0;margin-left:
2px;vertical-align:middle;border-top:
4px solid;border-right:
4px solid transparent;border-left:
4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:
0}.dropdown-menu{position:absolute;top:
100%;left:
0;z-index:
1000;display:none;float:left;min-width:
160px;padding:
5px
0;margin:
2px
0 0;font-size:
14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:
1px solid #ccc;border:
1px solid rgba(
0,
0,
0,
.15);border-radius:
4px;-webkit-box-shadow:
0 6px
12px rgba(
0,
0,
0,
.175);box-shadow:
0 6px
12px rgba(
0,
0,
0,
.175)}.dropdown-menu.pull-right{right:
0;left:auto}.dropdown-menu .divider{height:
1px;margin:
9px
0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu
>li
>a{display:block;padding:
3px
20px;clear:both;font-weight:
400;line-height:
1.42857143;color:#
333;white-space:nowrap}.dropdown-menu
>li
>a:hover,.dropdown-menu
>li
>a:focus{color:#
262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu
>.active
>a,.dropdown-menu
>.active
>a:hover,.dropdown-menu
>.active
>a:focus{color:#fff;text-decoration:none;background-color:#
428bca;outline:
0}.dropdown-menu
>.disabled
>a,.dropdown-menu
>.disabled
>a:hover,.dropdown-menu
>.disabled
>a:focus{color:#
777}.dropdown-menu
>.disabled
>a:hover,.dropdown-menu
>.disabled
>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open
>.dropdown-menu{display:block}.open
>a{outline:
0}.dropdown-menu-right{right:
0;left:auto}.dropdown-menu-left{right:auto;left:
0}.dropdown-header{display:block;padding:
3px
20px;font-size:
12px;line-height:
1.42857143;color:#
777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:
0;right:
0;bottom:
0;left:
0;z-index:
990}.pull-right
>.dropdown-menu{right:
0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:
0;border-bottom:
4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:
100%;margin-bottom:
1px}@media (min-width:
768px){.navbar-right .dropdown-menu{right:
0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:
0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group
>.btn,.btn-group-vertical
>.btn{position:relative;float:left}.btn-group
>.btn:hover,.btn-group-vertical
>.btn:hover,.btn-group
>.btn:focus,.btn-group-vertical
>.btn:focus,.btn-group
>.btn:active,.btn-group-vertical
>.btn:active,.btn-group
>.btn.active,.btn-group-vertical
>.btn.active{z-index:
2}.btn-group
>.btn:focus,.btn-group-vertical
>.btn:focus{outline:
0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-
1px}.btn-toolbar{margin-left:-
5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar
>.btn,.btn-toolbar
>.btn-group,.btn-toolbar
>.input-group{margin-left:
5px}.btn-group
>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:
0}.btn-group
>.btn:first-child{margin-left:
0}.btn-group
>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:
0;border-bottom-right-radius:
0}.btn-group
>.btn:last-child:not(:first-child),.btn-group
>.dropdown-toggle:not(:first-child){border-top-left-radius:
0;border-bottom-left-radius:
0}.btn-group
>.btn-group{float:left}.btn-group
>.btn-group:not(:first-child):not(:last-child)
>.btn{border-radius:
0}.btn-group
>.btn-group:first-child
>.btn:last-child,.btn-group
>.btn-group:first-child
>.dropdown-toggle{border-top-right-radius:
0;border-bottom-right-radius:
0}.btn-group
>.btn-group:last-child
>.btn:first-child{border-top-left-radius:
0;border-bottom-left-radius:
0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:
0}.btn-group
>.btn+.dropdown-toggle{padding-right:
8px;padding-left:
8px}.btn-group
>.btn-lg+.dropdown-toggle{padding-right:
12px;padding-left:
12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset
0 3px
5px rgba(
0,
0,
0,
.125);box-shadow:inset
0 3px
5px rgba(
0,
0,
0,
.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:
0}.btn-lg .caret{border-width:
5px
5px
0;border-bottom-width:
0}.dropup .btn-lg .caret{border-width:
0 5px
5px}.btn-group-vertical
>.btn,.btn-group-vertical
>.btn-group,.btn-group-vertical
>.btn-group
>.btn{display:block;float:none;width:
100%;max-width:
100%}.btn-group-vertical
>.btn-group
>.btn{float:none}.btn-group-vertical
>.btn+.btn,.btn-group-vertical
>.btn+.btn-group,.btn-group-vertical
>.btn-group+.btn,.btn-group-vertical
>.btn-group+.btn-group{margin-top:-
1px;margin-left:
0}.btn-group-vertical
>.btn:not(:first-child):not(:last-child){border-radius:
0}.btn-group-vertical
>.btn:first-child:not(:last-child){border-top-right-radius:
4px;border-bottom-right-radius:
0;border-bottom-left-radius:
0}.btn-group-vertical
>.btn:last-child:not(:first-child){border-top-left-radius:
0;border-top-right-radius:
0;border-bottom-left-radius:
4px}.btn-group-vertical
>.btn-group:not(:first-child):not(:last-child)
>.btn{border-radius:
0}.btn-group-vertical
>.btn-group:first-child:not(:last-child)
>.btn:last-child,.btn-group-vertical
>.btn-group:first-child:not(:last-child)
>.dropdown-toggle{border-bottom-right-radius:
0;border-bottom-left-radius:
0}.btn-group-vertical
>.btn-group:last-child:not(:first-child)
>.btn:first-child{border-top-left-radius:
0;border-top-right-radius:
0}.btn-group-justified{display:table;width:
100%;table-layout:fixed;border-collapse:separate}.btn-group-justified
>.btn,.btn-group-justified
>.btn-group{display:table-cell;float:none;width:
1%}.btn-group-justified
>.btn-group .btn{width:
100%}.btn-group-justified
>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]
>.btn
>input[type=radio],[data-toggle=buttons]
>.btn
>input[type=checkbox]{position:absolute;z-index:-
1;filter:alpha(opacity=
0);opacity:
0}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:
0;padding-left:
0}.input-group .form-control{position:relative;z-index:
2;float:left;width:
100%;margin-bottom:
0}.input-group-lg
>.form-control,.input-group-lg
>.input-group-addon,.input-group-lg
>.input-group-btn
>.btn{height:
46px;padding:
10px
16px;font-size:
18px;line-height:
1.33;border-radius:
6px}select.input-group-lg
>.form-control,select.input-group-lg
>.input-group-addon,select.input-group-lg
>.input-group-btn
>.btn{height:
46px;line-height:
46px}textarea.input-group-lg
>.form-control,textarea.input-group-lg
>.input-group-addon,textarea.input-group-lg
>.input-group-btn
>.btn,select[multiple].input-group-lg
>.form-control,select[multiple].input-group-lg
>.input-group-addon,select[multiple].input-group-lg
>.input-group-btn
>.btn{height:auto}.input-group-sm
>.form-control,.input-group-sm
>.input-group-addon,.input-group-sm
>.input-group-btn
>.btn{height:
30px;padding:
5px
10px;font-size:
12px;line-height:
1.5;border-radius:
3px}select.input-group-sm
>.form-control,select.input-group-sm
>.input-group-addon,select.input-group-sm
>.input-group-btn
>.btn{height:
30px;line-height:
30px}textarea.input-group-sm
>.form-control,textarea.input-group-sm
>.input-group-addon,textarea.input-group-sm
>.input-group-btn
>.btn,select[multiple].input-group-sm
>.form-control,select[multiple].input-group-sm
>.input-group-addon,select[multiple].input-group-sm
>.input-group-btn
>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:
0}.input-group-addon,.input-group-btn{width:
1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:
6px
12px;font-size:
14px;font-weight:
400;line-height:
1;color:#
555;text-align:center;background-color:#eee;border:
1px solid #ccc;border-radius:
4px}.input-group-addon.input-sm{padding:
5px
10px;font-size:
12px;border-radius:
3px}.input-group-addon.input-lg{padding:
10px
16px;font-size:
18px;border-radius:
6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:
0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child
>.btn,.input-group-btn:first-child
>.btn-group
>.btn,.input-group-btn:first-child
>.dropdown-toggle,.input-group-btn:last-child
>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child
>.btn-group:not(:last-child)
>.btn{border-top-right-radius:
0;border-bottom-right-radius:
0}.input-group-addon:first-child{border-right:
0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child
>.btn,.input-group-btn:last-child
>.btn-group
>.btn,.input-group-btn:last-child
>.dropdown-toggle,.input-group-btn:first-child
>.btn:not(:first-child),.input-group-btn:first-child
>.btn-group:not(:first-child)
>.btn{border-top-left-radius:
0;border-bottom-left-radius:
0}.input-group-addon:last-child{border-left:
0}.input-group-btn{position:relative;font-size:
0;white-space:nowrap}.input-group-btn
>.btn{position:relative}.input-group-btn
>.btn+.btn{margin-left:-
1px}.input-group-btn
>.btn:hover,.input-group-btn
>.btn:focus,.input-group-btn
>.btn:active{z-index:
2}.input-group-btn:first-child
>.btn,.input-group-btn:first-child
>.btn-group{margin-right:-
1px}.input-group-btn:last-child
>.btn,.input-group-btn:last-child
>.btn-group{margin-left:-
1px}.nav{padding-left:
0;margin-bottom:
0;list-style:none}.nav
>li{position:relative;display:block}.nav
>li
>a{position:relative;display:block;padding:
10px
15px}.nav
>li
>a:hover,.nav
>li
>a:focus{text-decoration:none;background-color:#eee}.nav
>li.disabled
>a{color:#
777}.nav
>li.disabled
>a:hover,.nav
>li.disabled
>a:focus{color:#
777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open
>a,.nav .open
>a:hover,.nav .open
>a:focus{background-color:#eee;border-color:#
428bca}.nav .nav-divider{height:
1px;margin:
9px
0;overflow:hidden;background-color:#e5e5e5}.nav
>li
>a
>img{max-width:none}.nav-tabs{border-bottom:
1px solid #ddd}.nav-tabs
>li{float:left;margin-bottom:-
1px}.nav-tabs
>li
>a{margin-right:
2px;line-height:
1.42857143;border:
1px solid transparent;border-radius:
4px
4px
0 0}.nav-tabs
>li
>a:hover{border-color:#eee #eee #ddd}.nav-tabs
>li.active
>a,.nav-tabs
>li.active
>a:hover,.nav-tabs
>li.active
>a:focus{color:#
555;cursor:default;background-color:#fff;border:
1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:
100%;border-bottom:
0}.nav-tabs.nav-justified
>li{float:none}.nav-tabs.nav-justified
>li
>a{margin-bottom:
5px;text-align:center}.nav-tabs.nav-justified
>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:
768px){.nav-tabs.nav-justified
>li{display:table-cell;width:
1%}.nav-tabs.nav-justified
>li
>a{margin-bottom:
0}}.nav-tabs.nav-justified
>li
>a{margin-right:
0;border-radius:
4px}.nav-tabs.nav-justified
>.active
>a,.nav-tabs.nav-justified
>.active
>a:hover,.nav-tabs.nav-justified
>.active
>a:focus{border:
1px solid #ddd}@media (min-width:
768px){.nav-tabs.nav-justified
>li
>a{border-bottom:
1px solid #ddd;border-radius:
4px
4px
0 0}.nav-tabs.nav-justified
>.active
>a,.nav-tabs.nav-justified
>.active
>a:hover,.nav-tabs.nav-justified
>.active
>a:focus{border-bottom-color:#fff}}.nav-pills
>li{float:left}.nav-pills
>li
>a{border-radius:
4px}.nav-pills
>li+li{margin-left:
2px}.nav-pills
>li.active
>a,.nav-pills
>li.active
>a:hover,.nav-pills
>li.active
>a:focus{color:#fff;background-color:#
428bca}.nav-stacked
>li{float:none}.nav-stacked
>li+li{margin-top:
2px;margin-left:
0}.nav-justified{width:
100%}.nav-justified
>li{float:none}.nav-justified
>li
>a{margin-bottom:
5px;text-align:center}.nav-justified
>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:
768px){.nav-justified
>li{display:table-cell;width:
1%}.nav-justified
>li
>a{margin-bottom:
0}}.nav-tabs-justified{border-bottom:
0}.nav-tabs-justified
>li
>a{margin-right:
0;border-radius:
4px}.nav-tabs-justified
>.active
>a,.nav-tabs-justified
>.active
>a:hover,.nav-tabs-justified
>.active
>a:focus{border:
1px solid #ddd}@media (min-width:
768px){.nav-tabs-justified
>li
>a{border-bottom:
1px solid #ddd;border-radius:
4px
4px
0 0}.nav-tabs-justified
>.active
>a,.nav-tabs-justified
>.active
>a:hover,.nav-tabs-justified
>.active
>a:focus{border-bottom-color:#fff}}.tab-content
>.tab-pane{display:none}.tab-content
>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-
1px;border-top-left-radius:
0;border-top-right-radius:
0}.navbar{position:relative;min-height:
50px;margin-bottom:
20px;border:
1px solid transparent}@media (min-width:
768px){.navbar{border-radius:
4px}}@media (min-width:
768px){.navbar-header{float:left}}.navbar-collapse{padding-right:
15px;padding-left:
15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:
1px solid transparent;-webkit-box-shadow:inset
0 1px
0 rgba(
255,
255,
255,
.1);box-shadow:inset
0 1px
0 rgba(
255,
255,
255,
.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:
768px){.navbar-collapse{width:auto;border-top:
0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:
0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:
0;padding-left:
0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:
340px}@media (max-width:
480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:
200px}}.container
>.navbar-header,.container-fluid
>.navbar-header,.container
>.navbar-collapse,.container-fluid
>.navbar-collapse{margin-right:-
15px;margin-left:-
15px}@media (min-width:
768px){.container
>.navbar-header,.container-fluid
>.navbar-header,.container
>.navbar-collapse,.container-fluid
>.navbar-collapse{margin-right:
0;margin-left:
0}}.navbar-static-top{z-index:
1000;border-width:
0 0 1px}@media (min-width:
768px){.navbar-static-top{border-radius:
0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:
0;left:
0;z-index:
1030;-webkit-transform:translate3d(
0,
0,
0);-o-transform:translate3d(
0,
0,
0);transform:translate3d(
0,
0,
0)}@media (min-width:
768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:
0}}.navbar-fixed-top{top:
0;border-width:
0 0 1px}.navbar-fixed-bottom{bottom:
0;margin-bottom:
0;border-width:
1px
0 0}.navbar-brand{float:left;height:
50px;padding:
15px
15px;font-size:
18px;line-height:
20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:
768px){.navbar
>.container .navbar-brand,.navbar
>.container-fluid .navbar-brand{margin-left:-
15px}}.navbar-toggle{position:relative;float:right;padding:
9px
10px;margin-top:
8px;margin-right:
15px;margin-bottom:
8px;background-color:transparent;background-image:none;border:
1px solid transparent;border-radius:
4px}.navbar-toggle:focus{outline:
0}.navbar-toggle .icon-bar{display:block;width:
22px;height:
2px;border-radius:
1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:
4px}@media (min-width:
768px){.navbar-toggle{display:none}}.navbar-nav{margin:
7.5px -
15px}.navbar-nav
>li
>a{padding-top:
10px;padding-bottom:
10px;line-height:
20px}@media (max-width:
767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:
0;background-color:transparent;border:
0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu
>li
>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:
5px
15px
5px
25px}.navbar-nav .open .dropdown-menu
>li
>a{line-height:
20px}.navbar-nav .open .dropdown-menu
>li
>a:hover,.navbar-nav .open .dropdown-menu
>li
>a:focus{background-image:none}}@media (min-width:
768px){.navbar-nav{float:left;margin:
0}.navbar-nav
>li{float:left}.navbar-nav
>li
>a{padding-top:
15px;padding-bottom:
15px}.navbar-nav.navbar-right:last-child{margin-right:-
15px}}@media (min-width:
768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:
10px
15px;margin-top:
8px;margin-right:-
15px;margin-bottom:
8px;margin-left:-
15px;border-top:
1px solid transparent;border-bottom:
1px solid transparent;-webkit-box-shadow:inset
0 1px
0 rgba(
255,
255,
255,
.1),
0 1px
0 rgba(
255,
255,
255,
.1);box-shadow:inset
0 1px
0 rgba(
255,
255,
255,
.1),
0 1px
0 rgba(
255,
255,
255,
.1)}@media (min-width:
768px){.navbar-form .form-group{display:inline-block;margin-bottom:
0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group
>.form-control{width:
100%}.navbar-form .control-label{margin-bottom:
0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:
0;margin-bottom:
0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:
0}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{position:relative;margin-left:
0}.navbar-form .has-feedback .form-control-feedback{top:
0}}@media (max-width:
767px){.navbar-form .form-group{margin-bottom:
5px}}@media (min-width:
768px){.navbar-form{width:auto;padding-top:
0;padding-bottom:
0;margin-right:
0;margin-left:
0;border:
0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-
15px}}.navbar-nav
>li
>.dropdown-menu{margin-top:
0;border-top-left-radius:
0;border-top-right-radius:
0}.navbar-fixed-bottom .navbar-nav
>li
>.dropdown-menu{border-bottom-right-radius:
0;border-bottom-left-radius:
0}.navbar-btn{margin-top:
8px;margin-bottom:
8px}.navbar-btn.btn-sm{margin-top:
10px;margin-bottom:
10px}.navbar-btn.btn-xs{margin-top:
14px;margin-bottom:
14px}.navbar-text{margin-top:
15px;margin-bottom:
15px}@media (min-width:
768px){.navbar-text{float:left;margin-right:
15px;margin-left:
15px}.navbar-text.navbar-right:last-child{margin-right:
0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#
777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#
5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#
777}.navbar-default .navbar-nav
>li
>a{color:#
777}.navbar-default .navbar-nav
>li
>a:hover,.navbar-default .navbar-nav
>li
>a:focus{color:#
333;background-color:transparent}.navbar-default .navbar-nav
>.active
>a,.navbar-default .navbar-nav
>.active
>a:hover,.navbar-default .navbar-nav
>.active
>a:focus{color:#
555;background-color:#e7e7e7}.navbar-default .navbar-nav
>.disabled
>a,.navbar-default .navbar-nav
>.disabled
>a:hover,.navbar-default .navbar-nav
>.disabled
>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#
888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav
>.open
>a,.navbar-default .navbar-nav
>.open
>a:hover,.navbar-default .navbar-nav
>.open
>a:focus{color:#
555;background-color:#e7e7e7}@media (max-width:
767px){.navbar-default .navbar-nav .open .dropdown-menu
>li
>a{color:#
777}.navbar-default .navbar-nav .open .dropdown-menu
>li
>a:hover,.navbar-default .navbar-nav .open .dropdown-menu
>li
>a:focus{color:#
333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu
>.active
>a,.navbar-default .navbar-nav .open .dropdown-menu
>.active
>a:hover,.navbar-default .navbar-nav .open .dropdown-menu
>.active
>a:focus{color:#
555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu
>.disabled
>a,.navbar-default .navbar-nav .open .dropdown-menu
>.disabled
>a:hover,.navbar-default .navbar-nav .open .dropdown-menu
>.disabled
>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#
777}.navbar-default .navbar-link:hover{color:#
333}.navbar-default .btn-link{color:#
777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#
333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#
222;border-color:#
080808}.navbar-inverse .navbar-brand{color:#
777}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#
777}.navbar-inverse .navbar-nav
>li
>a{color:#
777}.navbar-inverse .navbar-nav
>li
>a:hover,.navbar-inverse .navbar-nav
>li
>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav
>.active
>a,.navbar-inverse .navbar-nav
>.active
>a:hover,.navbar-inverse .navbar-nav
>.active
>a:focus{color:#fff;background-color:#
080808}.navbar-inverse .navbar-nav
>.disabled
>a,.navbar-inverse .navbar-nav
>.disabled
>a:hover,.navbar-inverse .navbar-nav
>.disabled
>a:focus{color:#
444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#
333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#
333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#
101010}.navbar-inverse .navbar-nav
>.open
>a,.navbar-inverse .navbar-nav
>.open
>a:hover,.navbar-inverse .navbar-nav
>.open
>a:focus{color:#fff;background-color:#
080808}@media (max-width:
767px){.navbar-inverse .navbar-nav .open .dropdown-menu
>.dropdown-header{border-color:#
080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#
080808}.navbar-inverse .navbar-nav .open .dropdown-menu
>li
>a{color:#
777}.navbar-inverse .navbar-nav .open .dropdown-menu
>li
>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu
>li
>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu
>.active
>a,.navbar-inverse .navbar-nav .open .dropdown-menu
>.active
>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu
>.active
>a:focus{color:#fff;background-color:#
080808}.navbar-inverse .navbar-nav .open .dropdown-menu
>.disabled
>a,.navbar-inverse .navbar-nav .open .dropdown-menu
>.disabled
>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu
>.disabled
>a:focus{color:#
444;background-color:transparent}}.navbar-inverse .navbar-link{color:#
777}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#
777}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#
444}.breadcrumb{padding:
8px
15px;margin-bottom:
20px;list-style:none;background-color:#f5f5f5;border-radius:
4px}.breadcrumb
>li{display:inline-block}.breadcrumb
>li+li:before{padding:
0 5px;color:#ccc;content:"/\
00a0"}.breadcrumb
>.active{color:#
777}.pagination{display:inline-block;padding-left:
0;margin:
20px
0;border-radius:
4px}.pagination
>li{display:inline}.pagination
>li
>a,.pagination
>li
>span{position:relative;float:left;padding:
6px
12px;margin-left:-
1px;line-height:
1.42857143;color:#
428bca;text-decoration:none;background-color:#fff;border:
1px solid #ddd}.pagination
>li:first-child
>a,.pagination
>li:first-child
>span{margin-left:
0;border-top-left-radius:
4px;border-bottom-left-radius:
4px}.pagination
>li:last-child
>a,.pagination
>li:last-child
>span{border-top-right-radius:
4px;border-bottom-right-radius:
4px}.pagination
>li
>a:hover,.pagination
>li
>span:hover,.pagination
>li
>a:focus,.pagination
>li
>span:focus{color:#
2a6496;background-color:#eee;border-color:#ddd}.pagination
>.active
>a,.pagination
>.active
>span,.pagination
>.active
>a:hover,.pagination
>.active
>span:hover,.pagination
>.active
>a:focus,.pagination
>.active
>span:focus{z-index:
2;color:#fff;cursor:default;background-color:#
428bca;border-color:#
428bca}.pagination
>.disabled
>span,.pagination
>.disabled
>span:hover,.pagination
>.disabled
>span:focus,.pagination
>.disabled
>a,.pagination
>.disabled
>a:hover,.pagination
>.disabled
>a:focus{color:#
777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg
>li
>a,.pagination-lg
>li
>span{padding:
10px
16px;font-size:
18px}.pagination-lg
>li:first-child
>a,.pagination-lg
>li:first-child
>span{border-top-left-radius:
6px;border-bottom-left-radius:
6px}.pagination-lg
>li:last-child
>a,.pagination-lg
>li:last-child
>span{border-top-right-radius:
6px;border-bottom-right-radius:
6px}.pagination-sm
>li
>a,.pagination-sm
>li
>span{padding:
5px
10px;font-size:
12px}.pagination-sm
>li:first-child
>a,.pagination-sm
>li:first-child
>span{border-top-left-radius:
3px;border-bottom-left-radius:
3px}.pagination-sm
>li:last-child
>a,.pagination-sm
>li:last-child
>span{border-top-right-radius:
3px;border-bottom-right-radius:
3px}.pager{padding-left:
0;margin:
20px
0;text-align:center;list-style:none}.pager li{display:inline}.pager li
>a,.pager li
>span{display:inline-block;padding:
5px
14px;background-color:#fff;border:
1px solid #ddd;border-radius:
15px}.pager li
>a:hover,.pager li
>a:focus{text-decoration:none;background-color:#eee}.pager .next
>a,.pager .next
>span{float:right}.pager .previous
>a,.pager .previous
>span{float:left}.pager .disabled
>a,.pager .disabled
>a:hover,.pager .disabled
>a:focus,.pager .disabled
>span{color:#
777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:
.2em
.6em
.3em;font-size:
75%;font-weight:
700;line-height:
1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:
.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-
1px}.label-default{background-color:#
777}.label-default[href]:hover,.label-default[href]:focus{background-color:#
5e5e5e}.label-primary{background-color:#
428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#
3071a9}.label-success{background-color:#
5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#
449d44}.label-info{background-color:#
5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#
31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:
10px;padding:
3px
7px;font-size:
12px;font-weight:
700;line-height:
1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#
777;border-radius:
10px}.badge:empty{display:none}.btn .badge{position:relative;top:-
1px}.btn-xs .badge{top:
0;padding:
1px
5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active
>.badge,.nav-pills
>.active
>a
>.badge{color:#
428bca;background-color:#fff}.nav-pills
>li
>a
>.badge{margin-left:
3px}.jumbotron{padding:
30px;margin-bottom:
30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:
15px;font-size:
21px;font-weight:
200}.jumbotron
>hr{border-top-color:#d5d5d5}.container .jumbotron{border-radius:
6px}.jumbotron .container{max-width:
100%}@media screen and (min-width:
768px){.jumbotron{padding-top:
48px;padding-bottom:
48px}.container .jumbotron{padding-right:
60px;padding-left:
60px}.jumbotron h1,.jumbotron .h1{font-size:
63px}}.thumbnail{display:block;padding:
4px;margin-bottom:
20px;line-height:
1.42857143;background-color:#fff;border:
1px solid #ddd;border-radius:
4px;-webkit-transition:all
.2s ease-in-out;-o-transition:all
.2s ease-in-out;transition:all
.2s ease-in-out}.thumbnail
>img,.thumbnail a
>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#
428bca}.thumbnail .caption{padding:
9px;color:#
333}.alert{padding:
15px;margin-bottom:
20px;border:
1px solid transparent;border-radius:
4px}.alert h4{margin-top:
0;color:inherit}.alert .alert-link{font-weight:
700}.alert
>p,.alert
>ul{margin-bottom:
0}.alert
>p+p{margin-top:
5px}.alert-dismissable,.alert-dismissible{padding-right:
35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-
2px;right:-
21px;color:inherit}.alert-success{color:#
3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#
2b542c}.alert-info{color:#
31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#
245269}.alert-warning{color:#
8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#
66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#
843534}@-webkit-keyframes progress-bar-stripes{from{background-position:
40px
0}to{background-position:
0 0}}@-o-keyframes progress-bar-stripes{from{background-position:
40px
0}to{background-position:
0 0}}@keyframes progress-bar-stripes{from{background-position:
40px
0}to{background-position:
0 0}}.progress{height:
20px;margin-bottom:
20px;overflow:hidden;background-color:#f5f5f5;border-radius:
4px;-webkit-box-shadow:inset
0 1px
2px rgba(
0,
0,
0,
.1);box-shadow:inset
0 1px
2px rgba(
0,
0,
0,
.1)}.progress-bar{float:left;width:
0;height:
100%;font-size:
12px;line-height:
20px;color:#fff;text-align:center;background-color:#
428bca;-webkit-box-shadow:inset
0 -
1px
0 rgba(
0,
0,
0,
.15);box-shadow:inset
0 -
1px
0 rgba(
0,
0,
0,
.15);-webkit-transition:width
.6s ease;-o-transition:width
.6s ease;transition:width
.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);-webkit-background-size:
40px
40px;background-size:
40px
40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes
2s linear infinite;-o-animation:progress-bar-stripes
2s linear infinite;animation:progress-bar-stripes
2s linear infinite}.progress-bar[
aria-valuenow="
1"],.progress-bar[
aria-valuenow="
2"]{min-width:
30px}.progress-bar[
aria-valuenow="
0"]{min-width:
30px;color:#
777;background-color:transparent;background-image:none;-webkit-box-shadow:none;box-shadow:none}.progress-bar-success{background-color:#
5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent)}.progress-bar-info{background-color:#
5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:-o-linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent);background-image:linear-gradient(
45deg,rgba(
255,
255,
255,
.15)
25%,transparent
25%,transparent
50%,rgba(
255,
255,
255,
.15)
50%,rgba(
255,
255,
255,
.15)
75%,transparent
75%,transparent)}.media,.media-body{overflow:hidden;zoom:
1}.media,.media .media{margin-top:
15px}.media:first-child{margin-top:
0}.media-object{display:block}.media-heading{margin:
0 0 5px}.media
>.pull-left{margin-right:
10px}.media
>.pull-right{margin-left:
10px}.media-list{padding-left:
0;list-style:none}.list-group{padding-left:
0;margin-bottom:
20px}.list-group-item{position:relative;display:block;padding:
10px
15px;margin-bottom:-
1px;background-color:#fff;border:
1px solid #ddd}.list-group-item:first-child{border-top-left-radius:
4px;border-top-right-radius:
4px}.list-group-item:last-child{margin-bottom:
0;border-bottom-right-radius:
4px;border-bottom-left-radius:
4px}.list-group-item
>.badge{float:right}.list-group-item
>.badge+.badge{margin-right:
5px}a.list-group-item{color:#
555}a.list-group-item .list-group-item-heading{color:#
333}a.list-group-item:hover,a.list-group-item:focus{color:#
555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#
777;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#
777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:
2;color:#fff;background-color:#
428bca;border-color:#
428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading
>small,.list-group-item.active:hover .list-group-item-heading
>small,.list-group-item.active:focus .list-group-item-heading
>small,.list-group-item.active .list-group-item-heading
>.small,.list-group-item.active:hover .list-group-item-heading
>.small,.list-group-item.active:focus .list-group-item-heading
>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#
3c763d;background-color:#dff0d8}a.list-group-item-success{color:#
3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#
3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#
3c763d;border-color:#
3c763d}.list-group-item-info{color:#
31708f;background-color:#d9edf7}a.list-group-item-info{color:#
31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#
31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#
31708f;border-color:#
31708f}.list-group-item-warning{color:#
8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#
8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#
8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#
8a6d3b;border-color:#
8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:
0;margin-bottom:
5px}.list-group-item-text{margin-bottom:
0;line-height:
1.3}.panel{margin-bottom:
20px;background-color:#fff;border:
1px solid transparent;border-radius:
4px;-webkit-box-shadow:
0 1px
1px rgba(
0,
0,
0,
.05);box-shadow:
0 1px
1px rgba(
0,
0,
0,
.05)}.panel-body{padding:
15px}.panel-heading{padding:
10px
15px;border-bottom:
1px solid transparent;border-top-left-radius:
3px;border-top-right-radius:
3px}.panel-heading
>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:
0;margin-bottom:
0;font-size:
16px;color:inherit}.panel-title
>a{color:inherit}.panel-footer{padding:
10px
15px;background-color:#f5f5f5;border-top:
1px solid #ddd;border-bottom-right-radius:
3px;border-bottom-left-radius:
3px}.panel
>.list-group{margin-bottom:
0}.panel
>.list-group .list-group-item{border-width:
1px
0;border-radius:
0}.panel
>.list-group:first-child .list-group-item:first-child{border-top:
0;border-top-left-radius:
3px;border-top-right-radius:
3px}.panel
>.list-group:last-child .list-group-item:last-child{border-bottom:
0;border-bottom-right-radius:
3px;border-bottom-left-radius:
3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:
0}.list-group+.panel-footer{border-top-width:
0}.panel
>.table,.panel
>.table-responsive
>.table,.panel
>.panel-collapse
>.table{margin-bottom:
0}.panel
>.table:first-child,.panel
>.table-responsive:first-child
>.table:first-child{border-top-left-radius:
3px;border-top-right-radius:
3px}.panel
>.table:first-child
>thead:first-child
>tr:first-child td:first-child,.panel
>.table-responsive:first-child
>.table:first-child
>thead:first-child
>tr:first-child td:first-child,.panel
>.table:first-child
>tbody:first-child
>tr:first-child td:first-child,.panel
>.table-responsive:first-child
>.table:first-child
>tbody:first-child
>tr:first-child td:first-child,.panel
>.table:first-child
>thead:first-child
>tr:first-child th:first-child,.panel
>.table-responsive:first-child
>.table:first-child
>thead:first-child
>tr:first-child th:first-child,.panel
>.table:first-child
>tbody:first-child
>tr:first-child th:first-child,.panel
>.table-responsive:first-child
>.table:first-child
>tbody:first-child
>tr:first-child th:first-child{border-top-left-radius:
3px}.panel
>.table:first-child
>thead:first-child
>tr:first-child td:last-child,.panel
>.table-responsive:first-child
>.table:first-child
>thead:first-child
>tr:first-child td:last-child,.panel
>.table:first-child
>tbody:first-child
>tr:first-child td:last-child,.panel
>.table-responsive:first-child
>.table:first-child
>tbody:first-child
>tr:first-child td:last-child,.panel
>.table:first-child
>thead:first-child
>tr:first-child th:last-child,.panel
>.table-responsive:first-child
>.table:first-child
>thead:first-child
>tr:first-child th:last-child,.panel
>.table:first-child
>tbody:first-child
>tr:first-child th:last-child,.panel
>.table-responsive:first-child
>.table:first-child
>tbody:first-child
>tr:first-child th:last-child{border-top-right-radius:
3px}.panel
>.table:last-child,.panel
>.table-responsive:last-child
>.table:last-child{border-bottom-right-radius:
3px;border-bottom-left-radius:
3px}.panel
>.table:last-child
>tbody:last-child
>tr:last-child td:first-child,.panel
>.table-responsive:last-child
>.table:last-child
>tbody:last-child
>tr:last-child td:first-child,.panel
>.table:last-child
>tfoot:last-child
>tr:last-child td:first-child,.panel
>.table-responsive:last-child
>.table:last-child
>tfoot:last-child
>tr:last-child td:first-child,.panel
>.table:last-child
>tbody:last-child
>tr:last-child th:first-child,.panel
>.table-responsive:last-child
>.table:last-child
>tbody:last-child
>tr:last-child th:first-child,.panel
>.table:last-child
>tfoot:last-child
>tr:last-child th:first-child,.panel
>.table-responsive:last-child
>.table:last-child
>tfoot:last-child
>tr:last-child th:first-child{border-bottom-left-radius:
3px}.panel
>.table:last-child
>tbody:last-child
>tr:last-child td:last-child,.panel
>.table-responsive:last-child
>.table:last-child
>tbody:last-child
>tr:last-child td:last-child,.panel
>.table:last-child
>tfoot:last-child
>tr:last-child td:last-child,.panel
>.table-responsive:last-child
>.table:last-child
>tfoot:last-child
>tr:last-child td:last-child,.panel
>.table:last-child
>tbody:last-child
>tr:last-child th:last-child,.panel
>.table-responsive:last-child
>.table:last-child
>tbody:last-child
>tr:last-child th:last-child,.panel
>.table:last-child
>tfoot:last-child
>tr:last-child th:last-child,.panel
>.table-responsive:last-child
>.table:last-child
>tfoot:last-child
>tr:last-child th:last-child{border-bottom-right-radius:
3px}.panel
>.panel-body+.table,.panel
>.panel-body+.table-responsive{border-top:
1px solid #ddd}.panel
>.table
>tbody:first-child
>tr:first-child th,.panel
>.table
>tbody:first-child
>tr:first-child td{border-top:
0}.panel
>.table-bordered,.panel
>.table-responsive
>.table-bordered{border:
0}.panel
>.table-bordered
>thead
>tr
>th:first-child,.panel
>.table-responsive
>.table-bordered
>thead
>tr
>th:first-child,.panel
>.table-bordered
>tbody
>tr
>th:first-child,.panel
>.table-responsive
>.table-bordered
>tbody
>tr
>th:first-child,.panel
>.table-bordered
>tfoot
>tr
>th:first-child,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr
>th:first-child,.panel
>.table-bordered
>thead
>tr
>td:first-child,.panel
>.table-responsive
>.table-bordered
>thead
>tr
>td:first-child,.panel
>.table-bordered
>tbody
>tr
>td:first-child,.panel
>.table-responsive
>.table-bordered
>tbody
>tr
>td:first-child,.panel
>.table-bordered
>tfoot
>tr
>td:first-child,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr
>td:first-child{border-left:
0}.panel
>.table-bordered
>thead
>tr
>th:last-child,.panel
>.table-responsive
>.table-bordered
>thead
>tr
>th:last-child,.panel
>.table-bordered
>tbody
>tr
>th:last-child,.panel
>.table-responsive
>.table-bordered
>tbody
>tr
>th:last-child,.panel
>.table-bordered
>tfoot
>tr
>th:last-child,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr
>th:last-child,.panel
>.table-bordered
>thead
>tr
>td:last-child,.panel
>.table-responsive
>.table-bordered
>thead
>tr
>td:last-child,.panel
>.table-bordered
>tbody
>tr
>td:last-child,.panel
>.table-responsive
>.table-bordered
>tbody
>tr
>td:last-child,.panel
>.table-bordered
>tfoot
>tr
>td:last-child,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr
>td:last-child{border-right:
0}.panel
>.table-bordered
>thead
>tr:first-child
>td,.panel
>.table-responsive
>.table-bordered
>thead
>tr:first-child
>td,.panel
>.table-bordered
>tbody
>tr:first-child
>td,.panel
>.table-responsive
>.table-bordered
>tbody
>tr:first-child
>td,.panel
>.table-bordered
>thead
>tr:first-child
>th,.panel
>.table-responsive
>.table-bordered
>thead
>tr:first-child
>th,.panel
>.table-bordered
>tbody
>tr:first-child
>th,.panel
>.table-responsive
>.table-bordered
>tbody
>tr:first-child
>th{border-bottom:
0}.panel
>.table-bordered
>tbody
>tr:last-child
>td,.panel
>.table-responsive
>.table-bordered
>tbody
>tr:last-child
>td,.panel
>.table-bordered
>tfoot
>tr:last-child
>td,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr:last-child
>td,.panel
>.table-bordered
>tbody
>tr:last-child
>th,.panel
>.table-responsive
>.table-bordered
>tbody
>tr:last-child
>th,.panel
>.table-bordered
>tfoot
>tr:last-child
>th,.panel
>.table-responsive
>.table-bordered
>tfoot
>tr:last-child
>th{border-bottom:
0}.panel
>.table-responsive{margin-bottom:
0;border:
0}.panel-group{margin-bottom:
20px}.panel-group .panel{margin-bottom:
0;border-radius:
4px}.panel-group .panel+.panel{margin-top:
5px}.panel-group .panel-heading{border-bottom:
0}.panel-group .panel-heading+.panel-collapse
>.panel-body{border-top:
1px solid #ddd}.panel-group .panel-footer{border-top:
0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:
1px solid #ddd}.panel-default{border-color:#ddd}.panel-default
>.panel-heading{color:#
333;background-color:#f5f5f5;border-color:#ddd}.panel-default
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#ddd}.panel-default
>.panel-heading .badge{color:#f5f5f5;background-color:#
333}.panel-default
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#
428bca}.panel-primary
>.panel-heading{color:#fff;background-color:#
428bca;border-color:#
428bca}.panel-primary
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#
428bca}.panel-primary
>.panel-heading .badge{color:#
428bca;background-color:#fff}.panel-primary
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#
428bca}.panel-success{border-color:#d6e9c6}.panel-success
>.panel-heading{color:#
3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#d6e9c6}.panel-success
>.panel-heading .badge{color:#dff0d8;background-color:#
3c763d}.panel-success
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info
>.panel-heading{color:#
31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#bce8f1}.panel-info
>.panel-heading .badge{color:#d9edf7;background-color:#
31708f}.panel-info
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning
>.panel-heading{color:#
8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#faebcc}.panel-warning
>.panel-heading .badge{color:#fcf8e3;background-color:#
8a6d3b}.panel-warning
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger
>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger
>.panel-heading+.panel-collapse
>.panel-body{border-top-color:#ebccd1}.panel-danger
>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger
>.panel-footer+.panel-collapse
>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:
0;padding:
0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object{position:absolute;top:
0;bottom:
0;left:
0;width:
100%;height:
100%;border:
0}.embed-responsive.embed-responsive-
16by9{padding-bottom:
56.25%}.embed-responsive.embed-responsive-
4by3{padding-bottom:
75%}.well{min-height:
20px;padding:
19px;margin-bottom:
20px;background-color:#f5f5f5;border:
1px solid #e3e3e3;border-radius:
4px;-webkit-box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.05);box-shadow:inset
0 1px
1px rgba(
0,
0,
0,
.05)}.well blockquote{border-color:#ddd;border-color:rgba(
0,
0,
0,
.15)}.well-lg{padding:
24px;border-radius:
6px}.well-sm{padding:
9px;border-radius:
3px}.close{float:right;font-size:
21px;font-weight:
700;line-height:
1;color:#
000;text-shadow:
0 1px
0 #fff;filter:alpha(opacity=
20);opacity:
.2}.close:hover,.close:focus{color:#
000;text-decoration:none;cursor:pointer;filter:alpha(opacity=
50);opacity:
.5}button.close{-webkit-appearance:none;padding:
0;cursor:pointer;background:
0 0;border:
0}.modal-open{overflow:hidden}.modal{position:fixed;top:
0;right:
0;bottom:
0;left:
0;z-index:
1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:
0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform
.3s ease-out;-o-transition:-o-transform
.3s ease-out;transition:transform
.3s ease-out;-webkit-transform:translate3d(
0,-
25%,
0);-o-transform:translate3d(
0,-
25%,
0);transform:translate3d(
0,-
25%,
0)}.modal.in .modal-dialog{-webkit-transform:translate3d(
0,
0,
0);-o-transform:translate3d(
0,
0,
0);transform:translate3d(
0,
0,
0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:
10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:
1px solid #
999;border:
1px solid rgba(
0,
0,
0,
.2);border-radius:
6px;outline:
0;-webkit-box-shadow:
0 3px
9px rgba(
0,
0,
0,
.5);box-shadow:
0 3px
9px rgba(
0,
0,
0,
.5)}.modal-backdrop{position:fixed;top:
0;right:
0;bottom:
0;left:
0;z-index:
1040;background-color:#
000}.modal-backdrop.fade{filter:alpha(opacity=
0);opacity:
0}.modal-backdrop.in{filter:alpha(opacity=
50);opacity:
.5}.modal-header{min-height:
16.43px;padding:
15px;border-bottom:
1px solid #e5e5e5}.modal-header .close{margin-top:-
2px}.modal-title{margin:
0;line-height:
1.42857143}.modal-body{position:relative;padding:
15px}.modal-footer{padding:
15px;text-align:right;border-top:
1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:
0;margin-left:
5px}.modal-footer .btn-group .btn+.btn{margin-left:-
1px}.modal-footer .btn-block+.btn-block{margin-left:
0}.modal-scrollbar-measure{position:absolute;top:-
9999px;width:
50px;height:
50px;overflow:scroll}@media (min-width:
768px){.modal-dialog{width:
600px;margin:
30px auto}.modal-content{-webkit-box-shadow:
0 5px
15px rgba(
0,
0,
0,
.5);box-shadow:
0 5px
15px rgba(
0,
0,
0,
.5)}.modal-sm{width:
300px}}@media (min-width:
992px){.modal-lg{width:
900px}}.tooltip{position:absolute;z-index:
1070;display:block;font-size:
12px;line-height:
1.4;visibility:visible;filter:alpha(opacity=
0);opacity:
0}.tooltip.in{filter:alpha(opacity=
90);opacity:
.9}.tooltip.top{padding:
5px
0;margin-top:-
3px}.tooltip.right{padding:
0 5px;margin-left:
3px}.tooltip.bottom{padding:
5px
0;margin-top:
3px}.tooltip.left{padding:
0 5px;margin-left:-
3px}.tooltip-inner{max-width:
200px;padding:
3px
8px;color:#fff;text-align:center;text-decoration:none;background-color:#
000;border-radius:
4px}.tooltip-arrow{position:absolute;width:
0;height:
0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:
0;left:
50%;margin-left:-
5px;border-width:
5px
5px
0;border-top-color:#
000}.tooltip.top-left .tooltip-arrow{bottom:
0;left:
5px;border-width:
5px
5px
0;border-top-color:#
000}.tooltip.top-right .tooltip-arrow{right:
5px;bottom:
0;border-width:
5px
5px
0;border-top-color:#
000}.tooltip.right .tooltip-arrow{top:
50%;left:
0;margin-top:-
5px;border-width:
5px
5px
5px
0;border-right-color:#
000}.tooltip.left .tooltip-arrow{top:
50%;right:
0;margin-top:-
5px;border-width:
5px
0 5px
5px;border-left-color:#
000}.tooltip.bottom .tooltip-arrow{top:
0;left:
50%;margin-left:-
5px;border-width:
0 5px
5px;border-bottom-color:#
000}.tooltip.bottom-left .tooltip-arrow{top:
0;left:
5px;border-width:
0 5px
5px;border-bottom-color:#
000}.tooltip.bottom-right .tooltip-arrow{top:
0;right:
5px;border-width:
0 5px
5px;border-bottom-color:#
000}.popover{position:absolute;top:
0;left:
0;z-index:
1060;display:none;max-width:
276px;padding:
1px;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:
1px solid #ccc;border:
1px solid rgba(
0,
0,
0,
.2);border-radius:
6px;-webkit-box-shadow:
0 5px
10px rgba(
0,
0,
0,
.2);box-shadow:
0 5px
10px rgba(
0,
0,
0,
.2)}.popover.top{margin-top:-
10px}.popover.right{margin-left:
10px}.popover.bottom{margin-top:
10px}.popover.left{margin-left:-
10px}.popover-title{padding:
8px
14px;margin:
0;font-size:
14px;font-weight:
400;line-height:
18px;background-color:#f7f7f7;border-bottom:
1px solid #ebebeb;border-radius:
5px
5px
0 0}.popover-content{padding:
9px
14px}.popover
>.arrow,.popover
>.arrow:after{position:absolute;display:block;width:
0;height:
0;border-color:transparent;border-style:solid}.popover
>.arrow{border-width:
11px}.popover
>.arrow:after{content:"";border-width:
10px}.popover.top
>.arrow{bottom:-
11px;left:
50%;margin-left:-
11px;border-top-color:#
999;border-top-color:rgba(
0,
0,
0,
.25);border-bottom-width:
0}.popover.top
>.arrow:after{bottom:
1px;margin-left:-
10px;content:" ";border-top-color:#fff;border-bottom-width:
0}.popover.right
>.arrow{top:
50%;left:-
11px;margin-top:-
11px;border-right-color:#
999;border-right-color:rgba(
0,
0,
0,
.25);border-left-width:
0}.popover.right
>.arrow:after{bottom:-
10px;left:
1px;content:" ";border-right-color:#fff;border-left-width:
0}.popover.bottom
>.arrow{top:-
11px;left:
50%;margin-left:-
11px;border-top-width:
0;border-bottom-color:#
999;border-bottom-color:rgba(
0,
0,
0,
.25)}.popover.bottom
>.arrow:after{top:
1px;margin-left:-
10px;content:" ";border-top-width:
0;border-bottom-color:#fff}.popover.left
>.arrow{top:
50%;right:-
11px;margin-top:-
11px;border-right-width:
0;border-left-color:#
999;border-left-color:rgba(
0,
0,
0,
.25)}.popover.left
>.arrow:after{right:
1px;bottom:-
10px;content:" ";border-right-width:
0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:
100%;overflow:hidden}.carousel-inner
>.item{position:relative;display:none;-webkit-transition:
.6s ease-in-out left;-o-transition:
.6s ease-in-out left;transition:
.6s ease-in-out left}.carousel-inner
>.item
>img,.carousel-inner
>.item
>a
>img{line-height:
1}.carousel-inner
>.active,.carousel-inner
>.next,.carousel-inner
>.prev{display:block}.carousel-inner
>.active{left:
0}.carousel-inner
>.next,.carousel-inner
>.prev{position:absolute;top:
0;width:
100%}.carousel-inner
>.next{left:
100%}.carousel-inner
>.prev{left:-
100%}.carousel-inner
>.next.left,.carousel-inner
>.prev.right{left:
0}.carousel-inner
>.active.left{left:-
100%}.carousel-inner
>.active.right{left:
100%}.carousel-control{position:absolute;top:
0;bottom:
0;left:
0;width:
15%;font-size:
20px;color:#fff;text-align:center;text-shadow:
0 1px
2px rgba(
0,
0,
0,
.6);filter:alpha(opacity=
50);opacity:
.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(
0,
0,
0,
.5)
0,rgba(
0,
0,
0,
.0001)
100%);background-image:-o-linear-gradient(left,rgba(
0,
0,
0,
.5)
0,rgba(
0,
0,
0,
.0001)
100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(
0,
0,
0,
.5)),to(rgba(
0,
0,
0,
.0001)));background-image:linear-gradient(to right,rgba(
0,
0,
0,
.5)
0,rgba(
0,
0,
0,
.0001)
100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#
80000000', endColorstr='#
00000000', GradientType=
1);background-repeat:repeat-x}.carousel-control.right{right:
0;left:auto;background-image:-webkit-linear-gradient(left,rgba(
0,
0,
0,
.0001)
0,rgba(
0,
0,
0,
.5)
100%);background-image:-o-linear-gradient(left,rgba(
0,
0,
0,
.0001)
0,rgba(
0,
0,
0,
.5)
100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(
0,
0,
0,
.0001)),to(rgba(
0,
0,
0,
.5)));background-image:linear-gradient(to right,rgba(
0,
0,
0,
.0001)
0,rgba(
0,
0,
0,
.5)
100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#
00000000', endColorstr='#
80000000', GradientType=
1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=
90);outline:
0;opacity:
.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:
50%;z-index:
5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:
50%;margin-left:-
10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:
50%;margin-right:-
10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:
20px;height:
20px;margin-top:-
10px;font-family:serif}.carousel-control .icon-prev:before{content:'\
2039'}.carousel-control .icon-next:before{content:'\
203a'}.carousel-indicators{position:absolute;bottom:
10px;left:
50%;z-index:
15;width:
60%;padding-left:
0;margin-left:-
30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:
10px;height:
10px;margin:
1px;text-indent:-
999px;cursor:pointer;background-color:#
000 \
9;background-color:rgba(
0,
0,
0,
0);border:
1px solid #fff;border-radius:
10px}.carousel-indicators .active{width:
12px;height:
12px;margin:
0;background-color:#fff}.carousel-caption{position:absolute;right:
15%;bottom:
20px;left:
15%;z-index:
10;padding-top:
20px;padding-bottom:
20px;color:#fff;text-align:center;text-shadow:
0 1px
2px rgba(
0,
0,
0,
.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:
768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:
30px;height:
30px;margin-top:-
15px;font-size:
30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-
15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-
15px}.carousel-caption{right:
20%;left:
20%;padding-bottom:
30px}.carousel-indicators{bottom:
20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical
>.btn-group:before,.btn-group-vertical
>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:" "}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical
>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:
0/
0 a;color:transparent;text-shadow:none;background-color:transparent;border:
0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed;-webkit-transform:translate3d(
0,
0,
0);-o-transform:translate3d(
0,
0,
0);transform:translate3d(
0,
0,
0)}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none!important}@media (max-width:
767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (max-width:
767px){.visible-xs-block{display:block!important}}@media (max-width:
767px){.visible-xs-inline{display:inline!important}}@media (max-width:
767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:
768px) and (max-width:
991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:
768px) and (max-width:
991px){.visible-sm-block{display:block!important}}@media (min-width:
768px) and (max-width:
991px){.visible-sm-inline{display:inline!important}}@media (min-width:
768px) and (max-width:
991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:
992px) and (max-width:
1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:
992px) and (max-width:
1199px){.visible-md-block{display:block!important}}@media (min-width:
992px) and (max-width:
1199px){.visible-md-inline{display:inline!important}}@media (min-width:
992px) and (max-width:
1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:
1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (min-width:
1200px){.visible-lg-block{display:block!important}}@media (min-width:
1200px){.visible-lg-inline{display:inline!important}}@media (min-width:
1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:
767px){.hidden-xs{display:none!important}}@media (min-width:
768px) and (max-width:
991px){.hidden-sm{display:none!important}}@media (min-width:
992px) and (max-width:
1199px){.hidden-md{display:none!important}}@media (min-width:
1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
</style>
11 <meta content=
"Mnemonic code for generating deterministic keys" name=
"description"/>
12 <meta content=
"width=device-width, initial-scale=1.0" name=
"viewport" />
13 <meta content=
"bitcoin mnemonic converter" name=
"description" />
14 <meta content=
"Ian Coleman" name=
"author" />
15 <link type=
"image/x-icon" rel=
"icon" href=
"data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII=" />
21 .form-control[readonly] {
34 background-color: orange;
38 border:
2px solid #
555;
40 border-bottom-left-radius:
20px
20px;
41 border-bottom-right-radius:
20px
20px;
45 box-shadow: inset
0 1px
1px rgba(
0,
0,
0,
.0);
46 -webkit-box-shadow: inset
0 1px
1px rgba(
0,
0,
0,
.0);
51 .generate-container .strength {
52 /* override mobile width from bootstrap */
53 width: auto!important;
54 display: inline-block;
59 .languages a:nth-of-type(
1) {
64 font-family: monospace;
66 .entropy-container .filtered,
67 .entropy-container .binary {
68 word-wrap: break-word;
70 .entropy-container li {
94 background-color: #FFF;
95 border:
1px solid #CCC;
107 border-bottom:
1px dashed #
000;
108 text-decoration: none;
118 <div class=
"container">
120 <h1 class=
"text-center">Mnemonic Code Converter
</h1>
121 <p class=
"version">v0.2
.2</p>
124 <div class=
"col-md-12">
126 <form class=
"form-horizontal" role=
"form">
127 <div class=
"form-group">
128 <div class=
"col-sm-2"></div>
129 <div class=
"col-sm-10">
130 <p data-translate
>You can enter an existing BIP39 mnemonic, or generate a new random one. Typing your own twelve words will probably not work how you expect, since the words require a particular structure (the last word is a checksum).
</p>
131 <p data-translate-html
>
132 For more info see the
133 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki" target=
"_blank">BIP39 spec
</a>.
137 <div class=
"form-group generate-container">
138 <label class=
"col-sm-2 control-label"></label>
139 <div class=
"col-sm-10">
140 <div class=
"form-inline">
141 <div class=
"input-group-inline">
142 <span data-translate
>Generate a random mnemonic, or enter your own below
</span>:
143 <button class=
"btn generate">Generate
</button>
144 <select id=
"strength" class=
"strength form-control">
145 <option value=
"3">3</option>
146 <option value=
"6">6</option>
147 <option value=
"9">9</option>
148 <option value=
"12">12</option>
149 <option value=
"15" selected
>15</option>
150 <option value=
"18">18</option>
151 <option value=
"21">21</option>
152 <option value=
"24">24</option>
154 <span data-translate
>words
</span>
159 <div class=
"entropy-container hidden">
160 <div class=
"form-group text-danger">
161 <label class=
"col-sm-2 control-label" data-translate
>Warning
</label>
162 <div class=
"col-sm-10 form-control-static">
163 <span data-translate
>Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.
</span>
164 <a href=
"#entropy-notes" data-translate
>Read more
</a>
167 <div class=
"form-group">
168 <label for=
"entropy" class=
"col-sm-2 control-label" data-translate
>Entropy
</label>
169 <div class=
"col-sm-7">
170 <textarea id=
"entropy" rows=
"2" class=
"entropy form-control" placeholder=
"Accepts binary, base 6, 6-sided dice, base 10, hexadecimal, cards" data-translate-placeholder
></textarea>
172 <label class=
"col-sm-3 control-label" data-translate
><span class=
"more-info" data-translate-title
title=
"Based on estimates from zxcvbn using Filtered Entropy">Time To Crack
</span></label>
173 <div class=
"crack-time col-sm-3 form-control-static"></div>
174 <label class=
"col-sm-3 control-label" data-translate
>Event Count
</label>
175 <div class=
"event-count col-sm-3 form-control-static"></div>
178 <label class=
"col-sm-3 control-label" data-translate
>Entropy Type
</label>
179 <div class=
"type col-sm-3 form-control-static"></div>
180 <label class=
"col-sm-3 control-label" data-translate
>Bits Per Event
</label>
181 <div class=
"bits-per-event col-sm-3 form-control-static"></div>
184 <label class=
"col-sm-3 control-label" data-translate
>Raw Entropy Words
</label>
185 <div class=
"word-count col-sm-3 form-control-static"></div>
186 <label class=
"col-sm-3 control-label" data-translate
><span class=
"more-info" data-translate-title
title=
"Total bits of entropy may be less than indicated if any entropy event uses a weak source.">Total Bits
</span></label>
187 <div class=
"bits col-sm-3 form-control-static"></div>
189 <label class=
"col-sm-3 control-label" data-translate
>Filtered Entropy
</label>
190 <div class=
"filtered col-sm-9 form-control-static"></div>
191 <label class=
"col-sm-3 control-label" data-translate
>Raw Binary
</label>
192 <div class=
"binary col-sm-9 form-control-static"></div>
193 <label class=
"col-sm-3 control-label" data-translate
>Mnemonic Length
</label>
194 <div class=
"col-sm-9">
195 <select class=
"mnemonic-length form-control">
196 <option value=
"raw" selected data-translate
>Use Raw Entropy (
3 words per
32 bits)
</option>
197 <option value=
"12">12 <span data-translate
>Words
</span></option>
198 <option value=
"15">15 <span data-translate
>Words
</option>
199 <option value=
"18">18 <span data-translate
>Words
</span></option>
200 <option value=
"21">21 <span data-translate
>Words
</span></option>
201 <option value=
"24">24 <span data-translate
>Words
</span></option>
205 <div class=
"col-sm-3">
206 <p data-translate
>Valid entropy values include:
</p>
208 <li><strong data-translate
>Binary
</strong> [
0-
1]
<br>101010011</li>
209 <li><strong data-translate
>Base
6</strong> [
0-
5]
<br>123434014</li>
210 <li><strong data-translate
>Dice
</strong> [
1-
6]
<br>62535634</li>
211 <li><strong data-translate
>Base
10</strong> [
0-
9]
<br>90834528</li>
212 <li><strong data-translate
>Hex
</strong> [
0-
9A-F]
<br>4187a8bfd9
</li>
213 <li><strong data-translate
>Card
</strong> [A2-
9TJQK][CDHS]
<br>ahqs9dtc
</li>
218 <div class=
"form-group">
219 <div class=
"col-sm-2"></div>
220 <div class=
"col-sm-10 checkbox">
222 <input type=
"checkbox" class=
"use-entropy">
223 <span data-translate
>Supply my own source of entropy
</span>
227 <div class=
"form-group">
228 <label class=
"col-sm-2 control-label" data-translate
>Mnemonic Language
</label>
229 <div class=
"col-sm-10 languages">
230 <div class=
"form-control no-border">
231 <a href=
"#english">English
</a>
232 <a href=
"#japanese" title=
"Japanese">日本語
</a>
233 <a href=
"#spanish" title=
"Spanish">Español
</a>
234 <a href=
"#chinese_simplified" title=
"Chinese (Simplified)">中文(简体)
</a>
235 <a href=
"#chinese_traditional" title=
"Chinese (Traditional)">中文(繁體)
</a>
236 <a href=
"#french" title=
"French">Français
</a>
237 <a href=
"#italian" title=
"Italian">Italiano
</a>
241 <div class=
"form-group">
242 <label for=
"phrase" class=
"col-sm-2 control-label" data-translate
>BIP39 Mnemonic
</label>
243 <div class=
"col-sm-10">
244 <textarea id=
"phrase" class=
"phrase form-control" data-show-qr
></textarea>
247 <div class=
"form-group">
248 <label for=
"passphrase" class=
"col-sm-2 control-label" data-translate
>BIP39 Passphrase (optional)
</label>
249 <div class=
"col-sm-10">
250 <textarea id=
"passphrase" class=
"passphrase form-control"></textarea>
253 <div class=
"form-group">
254 <label for=
"seed" class=
"col-sm-2 control-label" data-translate
>BIP39 Seed
</label>
255 <div class=
"col-sm-10">
256 <textarea id=
"seed" class=
"seed form-control" readonly=
"readonly" data-show-qr
></textarea>
259 <div class=
"form-group">
260 <label for=
"network-phrase" class=
"col-sm-2 control-label" data-translate
>Coin
</label>
261 <div class=
"col-sm-10">
262 <select id=
"network-phrase" class=
"network form-control">
263 <!-- populated by javascript -->
267 <div class=
"form-group">
268 <label for=
"root-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Root Key
</label>
269 <div class=
"col-sm-10">
270 <textarea id=
"root-key" class=
"root-key form-control" data-show-qr
></textarea>
280 <div class=
"col-md-12">
281 <h2>Derivation Path
</h2>
282 <ul class=
"derivation-type nav nav-tabs" role=
"tablist">
284 <a href=
"#bip32" role=
"tab" data-toggle=
"tab">BIP32
</a>
286 <li id=
"bip44-tab" class=
"active">
287 <a href=
"#bip44" role=
"tab" data-toggle=
"tab">BIP44
</a>
290 <a href=
"#bip49" role=
"tab" data-toggle=
"tab">BIP49
</a>
293 <div class=
"derivation-type tab-content">
294 <div id=
"bip44" class=
"tab-pane active">
295 <form class=
"form-horizontal" role=
"form">
297 <div class=
"col-sm-2"></div>
298 <div class=
"col-sm-10">
299 <p data-translate-html
>
300 For more info see the
301 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">BIP44 spec
</a>.
304 <div class=
"form-group">
305 <label for=
"purpose" class=
"col-sm-2 control-label">
306 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target=
"_blank" data-translate
>Purpose
</a>
308 <div class=
"col-sm-10">
309 <input id=
"purpose" type=
"text" class=
"purpose form-control" value=
"44" readonly
>
312 <div class=
"form-group">
313 <label for=
"coin" class=
"col-sm-2 control-label">
314 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target=
"_blank" data-translate
>Coin
</a>
316 <div class=
"col-sm-10">
317 <input id=
"coin" type=
"text" class=
"coin form-control" value=
"0" readonly
>
320 <div class=
"form-group">
321 <label for=
"account" class=
"col-sm-2 control-label">
322 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target=
"_blank" data-translate
>Account
</a>
324 <div class=
"col-sm-10">
325 <input id=
"account" type=
"text" class=
"account form-control" value=
"0">
328 <div class=
"form-group">
329 <label for=
"change" class=
"col-sm-2 control-label">
330 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target=
"_blank" data-translate
>External / Internal
</a>
332 <div class=
"col-sm-10">
333 <input id=
"change" type=
"text" class=
"change form-control" value=
"0">
336 <div class=
"form-group">
337 <label class=
"col-sm-2 control-label">
339 <div class=
"col-sm-10">
340 <p data-translate
>The account extended keys can be used for importing to most BIP44 compatible wallets, such as mycelium or electrum.
</p>
343 <div class=
"form-group">
344 <label for=
"account-xprv" class=
"col-sm-2 control-label">
345 <span data-translate
>Account Extended Private Key
</span>
347 <div class=
"col-sm-10">
348 <textarea id=
"account-xprv" type=
"text" class=
"account-xprv form-control" readonly data-show-qr
></textarea>
351 <div class=
"form-group">
352 <label for=
"account-xpub" class=
"col-sm-2 control-label">
353 <span data-translate
>Account Extended Public Key
</span>
355 <div class=
"col-sm-10">
356 <textarea id=
"account-xpub" type=
"text" class=
"account-xpub form-control" readonly data-show-qr
></textarea>
359 <div class=
"form-group">
360 <label class=
"col-sm-2 control-label">
362 <div class=
"col-sm-10">
363 <p data-translate
>The BIP32 derivation path and extended keys are the basis for the derived addresses.
</p>
366 <div class=
"form-group">
367 <label for=
"bip44-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
368 <div class=
"col-sm-10">
369 <input id=
"bip44-path" type=
"text" class=
"path form-control" value=
"m/44'/0'/0'/0" readonly=
"readonly">
374 <div id=
"bip32" class=
"tab-pane">
375 <form class=
"form-horizontal" role=
"form">
377 <div class=
"col-sm-2"></div>
378 <div class=
"col-sm-10">
380 For more info see the
381 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">BIP32 spec
</a>
384 <div class=
"form-group">
385 <label for=
"bip32-client" class=
"col-sm-2 control-label" data-translate
>Client
</label>
386 <div class=
"col-sm-10">
387 <select id=
"bip32-client" class=
"client form-control">
388 <option value=
"custom">Custom derivation path
</option>
389 <!-- populated by javascript -->
393 <div class=
"form-group">
394 <label for=
"bip32-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
395 <div class=
"col-sm-10">
396 <input id=
"bip32-path" type=
"text" class=
"path form-control" value=
"m/0">
399 <div class=
"form-group">
400 <div class=
"col-sm-2"></div>
401 <label class=
"col-sm-10">
402 <input class=
"hardened-addresses" type=
"checkbox">
403 <span data-translate
>Use hardened addresses
</span>
406 <div class=
"form-group">
407 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Bitcoin Core
</label>
408 <div class=
"col-sm-10">
409 <p class=
"form-control no-border" data-translate-html
>
410 Use path
<code>m/
0'/
0'
</code> with hardened addresses.
412 <p class=
"form-control no-border" data-translate-html
>
413 For more info see the
414 <a href=
"https://github.com/bitcoin/bitcoin/pull/8035" target=
"_blank">Bitcoin Core BIP32 implementation
</a>
418 <div class=
"form-group">
419 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Multibit
</label>
420 <div class=
"col-sm-10">
421 <p class=
"form-control no-border">
422 <span data-translate-html
>Use path
<code>m/
0'/
0</code>.
</span>
424 <p class=
"form-control no-border">
425 <span data-translate
>For more info see
</span>
426 <a href=
"https://multibit.org/" target=
"_blank">MultiBit HD
</a>
430 <div class=
"form-group">
431 <label class=
"col-sm-2 control-label" data-translate
>Block Explorers
</label>
432 <div class=
"col-sm-10">
433 <p class=
"form-control no-border">
434 <span data-translate-html
>Use path
<code>m/
44'/
0'/
0'
</code>.
</span>
435 <span data-translate-html
>Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.
</span>
437 <p class=
"form-control no-border">
438 <span data-translate
>Can be used with
</span>:
439 <a href=
"https://blockchain.info/" target=
"_blank">blockchain.info
</a>
445 <div id=
"bip49" class=
"tab-pane">
446 <form class=
"form-horizontal" role=
"form">
448 <div class=
"unavailable hidden">
449 <div class=
"form-group">
450 <div class=
"col-sm-2"></div>
451 <div class=
"col-sm-10">
452 <p data-translate
>BIP49 is unavailable for this coin.
</p>
456 <div class=
"available">
457 <div class=
"col-sm-2"></div>
458 <div class=
"col-sm-10">
459 <p data-translate-html
>
460 For more info see the
461 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0049.mediawiki" target=
"_blank">BIP49 spec
</a>.
464 <div class=
"form-group">
465 <label for=
"purpose" class=
"col-sm-2 control-label">
466 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target=
"_blank" data-translate
>Purpose
</a>
468 <div class=
"col-sm-10">
469 <input id=
"purpose" type=
"text" class=
"purpose form-control" value=
"49" readonly
>
472 <div class=
"form-group">
473 <label for=
"coin" class=
"col-sm-2 control-label">
474 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target=
"_blank" data-translate
>Coin
</a>
476 <div class=
"col-sm-10">
477 <input id=
"coin" type=
"text" class=
"coin form-control" value=
"0" readonly
>
480 <div class=
"form-group">
481 <label for=
"account" class=
"col-sm-2 control-label">
482 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target=
"_blank" data-translate
>Account
</a>
484 <div class=
"col-sm-10">
485 <input id=
"account" type=
"text" class=
"account form-control" value=
"0">
488 <div class=
"form-group">
489 <label for=
"change" class=
"col-sm-2 control-label">
490 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target=
"_blank" data-translate
>External / Internal
</a>
492 <div class=
"col-sm-10">
493 <input id=
"change" type=
"text" class=
"change form-control" value=
"0">
496 <div class=
"form-group">
497 <label class=
"col-sm-2 control-label">
499 <div class=
"col-sm-10">
500 <p data-translate
>The account extended keys can be used for importing to most BIP49 compatible wallets.
</p>
503 <div class=
"form-group">
504 <label for=
"account-xprv" class=
"col-sm-2 control-label">
505 <span data-translate
>Account Extended Private Key
</span>
507 <div class=
"col-sm-10">
508 <textarea id=
"account-xprv" type=
"text" class=
"account-xprv form-control" readonly data-show-qr
></textarea>
511 <div class=
"form-group">
512 <label for=
"account-xpub" class=
"col-sm-2 control-label">
513 <span data-translate
>Account Extended Public Key
</span>
515 <div class=
"col-sm-10">
516 <textarea id=
"account-xpub" type=
"text" class=
"account-xpub form-control" readonly data-show-qr
></textarea>
519 <div class=
"form-group">
520 <label class=
"col-sm-2 control-label">
522 <div class=
"col-sm-10">
523 <p data-translate
>The BIP32 derivation path and extended keys are the basis for the derived addresses.
</p>
526 <div class=
"form-group">
527 <label for=
"bip49-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
528 <div class=
"col-sm-10">
529 <input id=
"bip49-path" type=
"text" class=
"path form-control" value=
"m/49'/0'/0'/0" readonly=
"readonly">
536 <form class=
"form-horizontal" role=
"form">
537 <div class=
"form-group">
538 <label for=
"extended-priv-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Private Key
</label>
539 <div class=
"col-sm-10">
540 <textarea id=
"extended-priv-key" class=
"extended-priv-key form-control" readonly=
"readonly" data-show-qr
></textarea>
543 <div class=
"form-group">
544 <label for=
"extended-pub-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Public Key
</label>
545 <div class=
"col-sm-10">
546 <textarea id=
"extended-pub-key" class=
"extended-pub-key form-control" readonly=
"readonly" data-show-qr
></textarea>
556 <div class=
"col-md-12">
557 <h2>Derived Addresses
</h2>
558 <p data-translate
>Note these addreses are derived from the BIP32 Extended Key
</p>
559 <table class=
"table table-striped">
562 <div class=
"input-group">
563 <span data-translate
>Path
</span>
564 <button class=
"index-toggle" data-translate
>Toggle
</button>
568 <div class=
"input-group">
569 <span data-translate
>Address
</span>
570 <button class=
"address-toggle" data-translate
>Toggle
</button>
574 <div class=
"input-group">
575 <span data-translate
>Public Key
</span>
576 <button class=
"public-key-toggle" data-translate
>Toggle
</button>
580 <div class=
"input-group">
581 <span data-translate
>Private Key
</span>
582 <button class=
"private-key-toggle" data-translate
>Toggle
</button>
586 <tbody class=
"addresses monospace">
587 <tr><td> </td><td> </td><td> </td><td> </td></tr>
588 <tr><td> </td><td> </td><td> </td><td> </td></tr>
589 <tr><td> </td><td> </td><td> </td><td> </td></tr>
590 <tr><td> </td><td> </td><td> </td><td> </td></tr>
591 <tr><td> </td><td> </td><td> </td><td> </td></tr>
596 <span data-translate
>Show more rows
</span>:
597 <input type=
"number" class=
"rows-to-add" value=
"20">
598 <button class=
"more" data-translate
>Show
</button>
603 <div class=
"col-md-12">
604 <h2 data-translate
>More info
</h2>
605 <h3>BIP39
<span class=
"small" data-translate
>Mnemonic code for generating deterministic keys
</span></h3>
606 <p data-translate-html
>
608 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki">official BIP39 spec
</a>
610 <h3>BIP32
<span class=
"small" data-translate
>Hierarchical Deterministic Wallets
</span></h3>
611 <p data-translate-html
>
613 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">official BIP32 spec
</a>
615 <p data-translate-html
>
617 <a href=
"http://bip32.org/" target=
"_blank">bip32.org
</a>
619 <h3>BIP44
<span class=
"small" data-translate
>Multi-Account Hierarchy for Deterministic Wallets
</span></h3>
620 <p data-translate-html
>
622 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">official BIP44 spec
</a>
624 <h3 data-translate
>Private Keys
</h3>
626 <span data-translate-html
>
628 <a href=
"https://web.archive.org/web/20150707020924/https://brainwallet.org/" target=
"_blank">brainwallet.org
</a>.
630 <span data-translate
>Be careful - it can be easy to make mistakes if you don't know what you're doing.
</span>
632 <h3 id=
"entropy-notes" data-translate
>Entropy
</h3>
634 <span data-translate-html
>
635 Entropy values must be sourced from a
636 <a href=
"https://en.wikipedia.org/wiki/Random_number_generation" target=
"_blank">strong source of randomness
</a>.
638 <span data-translate
>This means flipping a fair coin, rolling a fair dice, noise measurements etc.
</span>
639 <span data-translate-html
>
640 Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address,
641 keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't
642 random enough for the needs of this tool.
646 <strong><span data-translate
>Do not store entropy.
</span></strong>
649 <span data-translate
>Storing entropy (such as keeping a deck of cards in a specific shuffled order) is unreliable compared to storing a mnemonic.
</span>
650 <span data-translate
>Instead of storing entropy, store the mnemonic generated from the entropy.
</span>
651 <span data-translate-html
><a href=
"https://en.wikipedia.org/wiki/Steganography#Physical" target=
"_blank">Steganography
</a> may be beneficial when storing the mnemonic.
</span>
654 <span data-translate-html
>
655 The random mnemonic generator on this page uses a
656 <a href=
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target=
"_blank">cryptographically secure random number generator
</a>.
658 <span data-translate
>The built in random generator can generally be trusted more than your own intuition about randomness.
</span>
659 <span data-translate
>If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.
</span>
660 <span data-translate
>In that case you might choose to use your own source of entropy.
</span>
663 <a href=
"https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target=
"_blank" data-translate
>You are not a good source of entropy.
</a>
665 <h3 data-translate
>License
</h3>
667 <span data-translate-html
>Please refer to
<a href=
"https://github.com/iancoleman/bip39/blob/master/LICENSE" target=
"_blank">the software license
</a> for more detail.
670 <p data-translate
>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.
</p>
677 <div class=
"col-md-12">
679 <h2 data-translate
>Offline Usage
</h2>
682 You can use this tool without having to be online.
685 In your browser, select file save-as, and save this page
689 Double-click that file to open it in a browser
690 on any offline computer.
693 <span data-translate
>Alternatively, download the file from the repository
</span>
695 <a href=
"https://github.com/iancoleman/bip39">https://github.com/iancoleman/bip39
</a>
704 <div class=
"col-md-12">
706 <h2 data-translate
>This project is
100% open-source code
</h2>
709 <span data-translate
>Get the source code from the repository
</span>
711 <a href=
"https://github.com/iancoleman/bip39" target=
"_blank">
712 https://github.com/iancoleman/bip39
716 <h3 data-translate
>Libraries
</h3>
719 <span>BitcoinJS -
</span>
720 <a href=
"https://github.com/bitcoinjs/bitcoinjs-lib" target=
"_blank">
721 https://github.com/bitcoinjs/bitcoinjs-lib
726 <span>jsBIP39 -
</span>
727 <a href=
"https://github.com/iancoleman/jsbip39" target=
"_blank">
728 https://github.com/iancoleman/jsbip39
734 <a href=
"https://github.com/bitwiseshiftleft/sjcl" target=
"_blank">
735 https://github.com/bitwiseshiftleft/sjcl
740 <span>jQuery -
</span>
741 <a href=
"https://jquery.com/" target=
"_blank">
747 <span>Twitter Bootstrap -
</span>
748 <a href=
"http://getbootstrap.com/" target=
"_blank">
749 http://getbootstrap.com/
758 <div class=
"qr-container hidden">
759 <div class=
"qr-hint bg-primary hidden" data-translate
>Click field to hide QR
</div>
760 <div class=
"qr-hint bg-primary" data-translate
>Click field to show QR
</div>
761 <div class=
"qr-hider hidden">
762 <div class=
"qr-image"></div>
763 <div class=
"qr-warning bg-primary" data-translate
>Caution: Scanner may keep history
</div>
767 <div class=
"feedback-container">
768 <div class=
"feedback">Loading...
</div>
771 <script type=
"text/template" id=
"address-row-template">
773 <td class=
"index"><span></span></td>
774 <td class=
"address"><span data-show-qr
></span></td>
775 <td class=
"pubkey"><span data-show-qr
></span></td>
776 <td class=
"privkey"><span data-show-qr
></span></td>
780 // https://raw.githubusercontent.com/inexorabletash/polyfill/a6bc6ced78160c994f76a909b6ff6bbbab3d43de/es6.js
781 // Required for ethereumjs-utils.js when run in phantomjs-
2.1.1
782 // but is not required in any modern browsers.
783 // For more information, see
784 // https://www.bountysource.com/issues/
38485709-error-rendering-plot-with-phantomjs
786 //----------------------------------------------------------------------
788 // ECMAScript
2015 Polyfills
790 //----------------------------------------------------------------------
795 // Set this to always override native implementations, for testing
796 // the polyfill in browsers with partial/full ES2015 support.
797 var OVERRIDE_NATIVE_FOR_TESTING = false;
799 var undefined = (void
0); // Paranoia
804 return o === global ? undefined : o;
807 function hook(o, p, f) {
809 console.assert(typeof op === 'function', 'Hooking a non-function');
811 var o = strict(this);
812 var r = f.apply(o, arguments);
813 return r !== undefined ? r : op.apply(o, arguments);
817 function isSymbol(s) {
818 return (typeof s === 'symbol') || ('Symbol' in global && s instanceof global.Symbol);
821 function getPropertyDescriptor(target, name) {
822 var desc = Object.getOwnPropertyDescriptor(target, name);
823 var proto = Object.getPrototypeOf(target);
824 while (!desc && proto) {
825 desc = Object.getOwnPropertyDescriptor(proto, name);
826 proto = Object.getPrototypeOf(proto);
831 var enqueue = (function(nativePromise, nativeSetImmediate) {
833 return function(job) { nativePromise.resolve().then(function() { job(); }); };
834 if (nativeSetImmediate)
835 return function(job) { nativeSetImmediate(job); };
836 return function(job) { setTimeout(job,
0); };
837 }(global['Promise'], global['setImmediate']));
839 function define(o, p, v, override) {
840 if (p in o && !override && !OVERRIDE_NATIVE_FOR_TESTING)
843 if (typeof v === 'function') {
844 // Sanity check that functions are appropriately named (where possible)
845 console.assert(isSymbol(p) || !('name' in v) || v.name === p || v.name === p + '_', 'Expected function name "' + p.toString() + '", was "' + v.name + '"');
846 Object.defineProperty(o, p, {
853 Object.defineProperty(o, p, {
862 function set_internal(o, p, v) {
863 Object.defineProperty(o, p, {
871 // Snapshot intrinsic functions
872 var $isNaN = global.isNaN,
873 $parseInt = global.parseInt,
874 $parseFloat = global.parseFloat;
877 LOG10E = Math.LOG10E,
887 random = Math.random,
890 var orig_match = String.prototype.match,
891 orig_replace = String.prototype.replace,
892 orig_search = String.prototype.search,
893 orig_split = String.prototype.split;
895 // These are used for implementing the polyfills, but not exported.
897 // Inspired by https://gist.github.com/
1638059
899 function EphemeronTable() {
900 var secretKey = ObjectCreate(null);
902 function conceal(o) {
903 var oValueOf = o.valueOf, secrets = ObjectCreate(null);
904 Object.defineProperty(o, 'valueOf', {
905 value: (function(secretKey) {
906 return function (k) {
907 return (k === secretKey) ? secrets : oValueOf.apply(o, arguments);
918 var v = typeof o.valueOf === 'function' && o.valueOf(secretKey);
919 return v === o ? null : v;
924 secretKey = ObjectCreate(null);
926 remove: function(key) {
927 var secrets = reveal(key);
928 if (secrets && HasOwnProperty(secrets, 'value')) {
929 delete secrets.value;
934 get: function(key, defaultValue) {
935 var secrets = reveal(key);
936 return (secrets && HasOwnProperty(secrets, 'value')) ? secrets.value : defaultValue;
939 var secrets = reveal(key);
940 return Boolean(secrets && HasOwnProperty(secrets, 'value'));
942 set: function(key, value) {
943 var secrets = reveal(key) || conceal(key);
944 secrets.value = value;
949 var empty = Object.create(null);
951 //----------------------------------------------------------------------
954 // http://www.ecma-international.org/ecma-
262/
6.0/
956 //----------------------------------------------------------------------
958 // ---------------------------------------
959 //
19.4 Symbol Objects
960 // ---------------------------------------
962 // NOTE: Symbols are defined here - out of spec order - since we need the
963 // properties and prototype to be populated for other polyfills.
965 // NOTE: Not secure, nor is obj[$$symbol] hidden from Object.keys()
969 var secret = Object.create(null);
971 symbolForKey = function(k) {
975 var GlobalSymbolRegistry = [];
977 function unique(bits) {
978 return Array(bits +
1).join('x').replace(/x/g, function() {
979 return random() <
0.5 ? '\u200C' : '\u200D'; // JWNJ / ZWJ
983 //
19.4.1 The Symbol Constructor
984 //
19.4.1.1 Symbol ( description=undefined )
985 function Symbol(description) {
986 if (!(this instanceof Symbol)) return new Symbol(description, secret);
987 if (this instanceof Symbol && arguments[
1] !== secret) throw TypeError();
989 var descString = description === undefined ? undefined : String(description);
991 set_internal(this, '[[SymbolData]]', unique(
128));
992 set_internal(this, '[[Description]]', descString);
994 symbolMap[this] = this;
998 if (!('Symbol' in global) || OVERRIDE_NATIVE_FOR_TESTING)
999 global.Symbol = Symbol;
1001 //
19.4.2 Properties of the Symbol Constructor
1003 //
19.4.2.1 Symbol.for (key)
1004 define(Symbol, 'for', function for_(key) {
1005 var stringKey = String(key);
1006 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
1007 var e = GlobalSymbolRegistry[i];
1008 if (SameValue(e['[[key]]'], stringKey)) return e['[[symbol]]'];
1010 var newSymbol = Symbol(key);
1011 GlobalSymbolRegistry.push({'[[key]]': stringKey, '[[symbol]]': newSymbol});
1015 //
19.4.2.2 Symbol.hasInstance
1016 //
19.4.2.3 Symbol.isConcatSpreadable
1018 //
19.4.2.4 Symbol.iterator
1019 define(global.Symbol, 'iterator', global.Symbol('Symbol.iterator'));
1021 //
19.4.2.5 Symbol.keyFor (sym)
1022 define(Symbol, 'keyFor', function keyFor(sym) {
1023 if (!(sym instanceof Symbol)) throw TypeError();
1024 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
1025 var e = GlobalSymbolRegistry[i];
1026 if (SameValue(e['[[symbol]]'], sym)) return e['[[key]]'];
1031 //
19.4.2.6 Symbol.match
1032 define(global.Symbol, 'match', global.Symbol('Symbol.match'));
1034 //
19.4.2.7 Symbol.prototype
1036 //
19.4.2.8 Symbol.replace
1037 define(global.Symbol, 'replace', global.Symbol('Symbol.replace'));
1039 //
19.4.2.9 Symbol.search
1040 define(global.Symbol, 'search', global.Symbol('Symbol.search'));
1042 //
19.4.2.10 Symbol.species
1044 //
19.4.2.11 Symbol.search
1045 define(global.Symbol, 'split', global.Symbol('Symbol.split'));
1047 //
19.4.2.12 Symbol.toPrimitive
1049 //
19.4.2.13 Symbol.toStringTag
1050 define(global.Symbol, 'toStringTag', global.Symbol('Symbol.toStringTag'));
1052 //
19.4.2.14 Symbol.unscopables
1054 //
19.4.3 Properties of the Symbol Prototype Object
1055 //
19.4.3.1 Symbol.prototype.constructor
1057 //
19.4.3.2 Symbol.prototype.toString ( )
1058 Object.defineProperty(Symbol.prototype, 'toString', {
1059 value: function toString() {
1060 var s = strict(this);
1061 var desc = s['[[Description]]'];
1062 return 'Symbol(' + (desc === undefined ? '' : desc) + s['[[SymbolData]]'] + ')';
1064 configurable: true, writeable: true, enumerable: false });
1066 //
19.4.3.3 Symbol.prototype.valueOf ( )
1067 Object.defineProperty(Symbol.prototype, 'valueOf', {
1068 value: function valueOf() {
1069 // To prevent automatic string conversion:
1072 // Spec has approximately the following:
1073 //var s = strict(this);
1074 //if (Type(s) === 'symbol') return s;
1075 //if (Type(s) !== 'object') throw TypeError();
1076 //if (!('[[SymbolData]]' in s)) throw TypeError();
1077 //return s['[[SymbolData]]'];
1079 configurable: true, writeable: true, enumerable: false });
1081 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1082 // (Done later to polyfill partial implementations)
1084 //
19.4.4 Properties of Symbol Instances
1087 console.assert(typeof global.Symbol() === 'symbol' || symbolForKey(String(global.Symbol('x'))));
1089 // Defined here so that other prototypes can reference it
1090 //
25.1.2 The %IteratorPrototype% Object
1091 var $IteratorPrototype$ = {};
1093 //----------------------------------------
1094 //
6 ECMAScript Data Types and Values
1095 //----------------------------------------
1097 //
6.1 ECMAScript Language Types
1099 // "Type(x)" is used as shorthand for "the type of x"...
1102 case 'undefined': return 'undefined';
1103 case 'boolean': return 'boolean';
1104 case 'number': return 'number';
1105 case 'string': return 'string';
1106 case 'symbol': return 'symbol';
1108 if (v === null) return 'null';
1109 if (v instanceof global.Symbol) return 'symbol';
1114 //
6.1.5.1 Well-Known Symbols
1115 var $$iterator = global.Symbol.iterator,
1116 $$match = global.Symbol.match,
1117 $$replace = global.Symbol.replace,
1118 $$search = global.Symbol.search,
1119 $$split = global.Symbol.split,
1120 $$toStringTag = global.Symbol.toStringTag;
1122 //----------------------------------------
1123 //
7 Abstract Operations
1124 //----------------------------------------
1126 //----------------------------------------
1127 //
7.1 Type Conversion
1128 //----------------------------------------
1130 //
7.1.1 ToPrimitive ( input [, PreferredType] )
1131 // just use valueOf()
1133 //
7.1.2 ToBoolean ( argument )
1134 // just use Boolean()
1136 //
7.1.3 ToNumber ( argument )
1137 // just use Number()
1139 //
7.1.4 ToInteger ( argument )
1140 function ToInteger(n) {
1142 if ($isNaN(n)) return
0;
1143 if (n ===
0 || n === Infinity || n === -Infinity) return n;
1144 return ((n <
0) ? -
1 :
1) * floor(abs(n));
1147 //
7.1.5 ToInt32 ( argument )
1148 function ToInt32(v) { return v
>> 0; }
1150 //
7.1.6 ToUint32 ( argument )
1151 function ToUint32(v) { return v
>>> 0; }
1153 //
7.1.7 ToInt16 ( argument )
1154 function ToInt16(v) { return (v <<
16)
>> 16; }
1156 //
7.1.8 ToUint16 ( argument )
1157 function ToUint16(v) { return v &
0xFFFF; }
1159 //
7.1.9 ToInt8 ( argument )
1160 function ToInt8(v) { return (v <<
24)
>> 24; }
1162 //
7.1.10 ToUint8 ( argument )
1163 function ToUint8(v) { return v &
0xFF; }
1165 //
7.1.11 ToUint8Clamp ( argument )
1166 function ToUint8Clamp(argument) {
1167 var number = Number(argument);
1168 if ($isNaN(number)) return
0;
1169 if (number <=
0) return
0;
1170 if (number
>=
255) return
255;
1171 var f = floor(number);
1172 if ((f +
0.5) < number) return f +
1;
1173 if (number < (f +
0.5)) return f;
1174 if (f %
2) return f +
1;
1178 //
7.1.12 ToString ( argument )
1179 // just use String()
1181 //
7.1.13 ToObject ( argument )
1182 function ToObject(v) {
1183 if (v === null || v === undefined) throw TypeError();
1187 //
7.1.14 ToPropertyKey ( argument )
1188 function ToPropertyKey(v) {
1192 //
7.1.15 ToLength ( argument )
1193 function ToLength(v) {
1194 var len = ToInteger(v);
1195 if (len <=
0) return
0;
1196 if (len === Infinity) return
0x20000000000000 -
1; //
2^
53-
1
1197 return min(len,
0x20000000000000 -
1); //
2^
53-
1
1200 //
7.1.16 CanonicalNumericIndexString ( argument )
1202 //----------------------------------------
1203 //
7.2 Testing and Comparison Operations
1204 //----------------------------------------
1206 //
7.2.1 RequireObjectCoercible ( argument )
1207 //
7.2.2 IsArray ( argument )
1209 //
7.2.3 IsCallable ( argument )
1210 function IsCallable(o) { return typeof o === 'function'; }
1212 //
7.2.4 IsConstructor ( argument )
1213 function IsConstructor(o) {
1214 // Hacks for Safari
7 TypedArray XXXConstructor objects
1215 if (/Constructor/.test(Object.prototype.toString.call(o))) return true;
1216 if (/Function/.test(Object.prototype.toString.call(o))) return true;
1217 // TODO: Can this be improved on?
1218 return typeof o === 'function';
1221 //
7.2.5 IsExtensible (O)
1222 //
7.2.6 IsInteger ( argument )
1224 //
7.2.7 IsPropertyKey ( argument )
1225 function IsPropertyKey(argument) {
1226 if (Type(argument) === 'string') return true;
1227 if (Type(argument) === 'symbol') return true;
1231 //
7.2.8 IsRegExp ( argument )
1232 //
7.2.5 IsConstructor ( argument )
1234 //
7.2.9 SameValue(x, y)
1235 function SameValue(x, y) {
1236 if (typeof x !== typeof y) return false;
1241 if (x !== x && y !== y) return true;
1242 if (x ===
0 && y ===
0) return
1/x ===
1/y;
1252 //
7.2.10 SameValueZero(x, y)
1253 function SameValueZero(x, y) {
1254 if (typeof x !== typeof y) return false;
1259 if (x !== x && y !== y) return true;
1269 //----------------------------------------
1270 //
7.3 Operations on Objects
1271 //----------------------------------------
1274 // - just use o.p or o[p]
1276 //
7.3.2 GetV (V, P)
1277 function GetV(v, p) {
1278 var o = ToObject(v);
1282 //
7.3.3 Set (O, P, V, Throw)
1283 // - just use o.p = v or o[p] = v
1288 //
7.3.9 GetMethod (O, P)
1289 function GetMethod(o, p) {
1290 var func = GetV(o, p);
1291 if (func === undefined || func === null) return undefined;
1292 if (!IsCallable(func)) throw TypeError();
1296 //
7.3.10 HasProperty (O, P)
1297 function HasProperty(o, p) {
1299 if (Object.prototype.hasOwnProperty.call(o, p)) return true;
1300 if (Type(o) !== 'object') return false;
1301 o = Object.getPrototypeOf(o);
1306 //
7.3.11 HasOwnProperty (O, P)
1307 function HasOwnProperty(o, p) {
1308 return Object.prototype.hasOwnProperty.call(o, p);
1311 //----------------------------------------
1312 //
7.4 Operations on Iterator Objects
1313 //----------------------------------------
1315 //
7.4.1 GetIterator ( obj, method )
1316 function GetIterator(obj, method) {
1317 if (arguments.length <
2)
1318 method = GetMethod(obj, $$iterator);
1319 var iterator = method.call(obj);
1320 if (Type(iterator) !== 'object') throw TypeError();
1324 //
7.4.2 IteratorNext ( iterator, value )
1325 function IteratorNext(iterator, value) {
1326 if (arguments.length <
2)
1327 var result = iterator.next();
1329 result = iterator.next(value);
1330 if (Type(result) !== 'object') throw TypeError();
1334 //
7.4.3 IteratorComplete ( iterResult )
1335 function IteratorComplete(iterResult) {
1336 console.assert(Type(iterResult) === 'object');
1337 return Boolean(iterResult.done);
1340 //
7.4.4 IteratorValue ( iterResult )
1341 function IteratorValue(iterResult) {
1342 console.assert(Type(iterResult) === 'object');
1343 return iterResult.value;
1346 //
7.4.5 IteratorStep ( iterator )
1347 function IteratorStep( iterator, value ) {
1348 var result = IteratorNext(iterator, value);
1349 var done = result['done'];
1350 if (Boolean(done) === true) return false;
1354 //
7.4.6 IteratorClose( iterator, completion )
1355 function IteratorClose( iterator, completion ) {
1356 console.assert(Type(iterator) === 'object');
1357 var _return = GetMethod(iterator, 'return');
1358 if (_return === undefined) return completion;
1360 var innerResult = _return[iterator]();
1362 // TODO: If completion.[[type]] is throw, return completion
1365 if (Type(innerResult) !== 'object') throw TypeError();
1369 //
7.4.7 CreateIterResultObject (value, done)
1370 function CreateIterResultObject(value, done) {
1371 console.assert(Type(done) === 'boolean');
1373 obj["value"] = value;
1378 //
7.4.8 CreateListIterator (list)
1379 //
7.4.8.1 ListIterator next( )
1380 //
7.4.9 CreateCompoundIterator ( iterator1, iterator2 )
1381 //
7.4.9.1 CompoundIterator next( )
1383 //----------------------------------------
1384 //
8 Executable Code and Execution Contexts
1385 //----------------------------------------
1387 //----------------------------------------
1388 //
8.4 Jobs and Job Queues
1389 //----------------------------------------
1391 //
8.4.1 EnqueueJob ( queueName, job, arguments)
1392 function EnqueueJob(queueName, job, args) {
1393 var fn = function() { job.apply(undefined, args); };
1397 //
8.4.2 NextJob result
1398 function NextJob(result) {
1402 //----------------------------------------
1403 //
9 Ordinary and Exotic Objects Behaviors
1404 //----------------------------------------
1406 //
9.1.11 [[Enumerate]] ()
1407 function Enumerate(obj) {
1409 if (Object(obj) !== obj) return e;
1410 var visited = new Set;
1411 while (obj !== null) {
1412 Object.getOwnPropertyNames(obj).forEach(function(name) {
1413 if (!visited.has(name)) {
1414 var desc = Object.getOwnPropertyDescriptor(obj, name);
1417 if (desc.enumerable) e.push(name);
1421 obj = Object.getPrototypeOf(obj);
1423 return e[$$iterator]();
1426 //
9.1.12 [[OwnPropertyKeys]] ( )
1427 function OwnPropertyKeys(o) {
1428 return Object.getOwnPropertyNames(o);
1431 //
9.1.13 ObjectCreate(proto, internalSlotsList)
1432 function ObjectCreate(proto, internalSlotsList) {
1433 return Object.create(proto, internalSlotsList);
1436 // ---------------------------------------
1437 //
19 Fundamental Objects
1438 // ---------------------------------------
1440 // ---------------------------------------
1441 //
19.1 Object Objects
1442 // ---------------------------------------
1444 //
19.1.1 The Object Constructor
1445 //
19.1.1.1 Object ( [ value ] )
1446 //
19.1.2 Properties of the Object Constructor
1447 //
19.1.2.1 Object.assign ( target, ...sources )
1450 function assign(target, /*...*/sources) {
1451 var to = ToObject(target);
1452 if (arguments.length <
2) return to;
1454 var sourcesIndex =
1;
1455 while (sourcesIndex < arguments.length) {
1456 var nextSource = arguments[sourcesIndex++];
1457 if (nextSource === undefined || nextSource === null) {
1460 var from = ToObject(nextSource);
1461 keys = OwnPropertyKeys(from);
1463 for (var keysIndex =
0; keysIndex < keys.length; ++keysIndex) {
1464 var nextKey = keys[keysIndex];
1465 var desc = Object.getOwnPropertyDescriptor(from, nextKey);
1466 if (desc !== undefined && desc.enumerable) {
1467 var propValue = from[nextKey];
1468 to[nextKey] = propValue;
1475 //
19.1.2.2 Object.create ( O [ , Properties ] )
1476 //
19.1.2.3 Object.defineProperties ( O, Properties )
1477 //
19.1.2.4 Object.defineProperty ( O, P, Attributes )
1478 //
19.1.2.5 Object.freeze ( O )
1479 //
19.1.2.6 Object.getOwnPropertyDescriptor ( O, P )
1482 var nativeSymbols = (typeof global.Symbol() === 'symbol'),
1483 $getOwnPropertyNames = Object.getOwnPropertyNames,
1484 $keys = Object.keys,
1485 $window_names = (typeof window === 'object' ? $getOwnPropertyNames(window) : []);
1487 function isStringKey(k) { return !symbolForKey(k); }
1489 //
19.1.2.7 Object.getOwnPropertyNames ( O )
1491 Object, 'getOwnPropertyNames',
1492 function getOwnPropertyNames(o) {
1493 if (Object.prototype.toString.call(o) === '[object Window]') {
1494 // Workaround for cross-realm calling by IE itself.
1495 // https://github.com/inexorabletash/polyfill/issues/
96
1497 return $getOwnPropertyNames(o).filter(isStringKey);
1499 return $window_names.slice();
1502 return $getOwnPropertyNames(o).filter(isStringKey);
1505 //
19.1.2.8 Object.getOwnPropertySymbols ( O )
1507 Object, 'getOwnPropertySymbols',
1508 function getOwnPropertySymbols(o) {
1509 return $getOwnPropertyNames(o).filter(symbolForKey).map(symbolForKey);
1512 //
19.1.2.14 Object.keys ( O )
1516 return $keys(o).filter(isStringKey);
1520 //
19.1.2.9 Object.getPrototypeOf ( O )
1521 //
19.1.2.10 Object.is ( value1, value2 )
1524 function is(value1, value2) {
1525 return SameValue(value1, value2);
1528 //
19.1.2.11 Object.isExtensible ( O )
1529 //
19.1.2.12 Object.isFrozen ( O )
1530 //
19.1.2.13 Object.isSealed ( O )
1532 //
19.1.2.14 Object.keys ( O )
1535 //
19.1.2.15 Object.preventExtensions ( O )
1536 //
19.1.2.16 Object.prototype
1537 //
19.1.2.17 Object.seal ( O )
1539 //
19.1.2.18 Object.setPrototypeOf ( O, proto )
1541 Object, 'setPrototypeOf',
1542 function setPrototypeOf(o, proto) {
1543 if (Type(o) !== 'object') throw TypeError();
1544 if (Type(proto) !== 'object' && Type(proto) !== 'null') throw TypeError();
1545 o.__proto__ = proto;
1550 //
19.1.3 Properties of the Object Prototype Object
1551 //
19.1.3.1 Object.prototype.constructor
1552 //
19.1.3.2 Object.prototype.hasOwnProperty ( V )
1553 //
19.1.3.3 Object.prototype.isPrototypeOf ( V )
1554 //
19.1.3.4 Object.prototype.propertyIsEnumerable ( V )
1555 //
19.1.3.5 Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1556 //
19.1.3.6 Object.prototype.toString ( )
1557 hook(Object.prototype, 'toString',
1559 var o = strict(this);
1560 if (o === Object(o) && $$toStringTag in o) {
1561 return '[object ' + o[$$toStringTag] + ']';
1566 //
19.1.3.7 Object.prototype.valueOf ( )
1567 //
19.1.4 Properties of Object Instances
1569 // ---------------------------------------
1570 //
19.2 Function Objects
1571 // ---------------------------------------
1573 //
19.2.1 The Function Constructor
1574 //
19.2.1.1 Function ( p1, p2, … , pn, body )
1575 //
19.2.2 Properties of the Function Constructor
1576 //
19.2.2.1 Function.length
1577 //
19.2.2.2 Function.prototype
1578 //
19.2.3 Properties of the Function Prototype Object
1579 //
19.2.3.1 Function.prototype.apply ( thisArg, argArray )
1580 //
19.2.3.2 Function.prototype.bind ( thisArg , ...args)
1581 //
19.2.3.3 Function.prototype.call (thisArg , ...args)
1582 //
19.2.3.4 Function.prototype.constructor
1583 //
19.2.3.5 Function.prototype.toString ( )
1584 //
19.2.3.6 Function.prototype[@@hasInstance] ( V )
1585 //
19.2.4 Function Instances
1588 //
19.2.4.3 prototype
1590 // (No polyfillable changes from ES5)
1592 // ---------------------------------------
1593 //
19.3 Boolean Objects
1594 // ---------------------------------------
1596 //
19.3.1 The Boolean Constructor
1597 //
19.3.1.1 Boolean ( value )
1598 //
19.3.2 Properties of the Boolean Constructor
1599 //
19.3.2.1 Boolean.prototype
1600 //
19.3.3 Properties of the Boolean Prototype Object
1601 //
19.3.3.1 Boolean.prototype.constructor
1602 //
19.3.3.2 Boolean.prototype.toString ( )
1603 //
19.3.3.3 Boolean.prototype.valueOf ( )
1604 //
19.3.4 Properties of Boolean Instances
1606 // (No polyfillable changes from ES5)
1608 // ---------------------------------------
1609 //
19.4 Symbol Objects
1610 // ---------------------------------------
1612 // Moved earlier in this script, so that other polyfills can depend on them.
1614 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1615 define(global.Symbol.prototype, global.Symbol.toStringTag, 'Symbol');
1617 // ---------------------------------------
1618 //
19.5 Error Objects
1619 // ---------------------------------------
1621 //
19.5.1 The Error Constructor
1622 //
19.5.1.1 Error ( message )
1623 //
19.5.1.2 new Error( ...argumentsList )
1624 //
19.5.2 Properties of the Error Constructor
1625 //
19.5.2.1 Error.prototype
1626 //
19.5.3 Properties of the Error Prototype Object
1627 //
19.5.3.1 Error.prototype.constructor
1628 //
19.5.3.2 Error.prototype.message
1629 //
19.5.3.3 Error.prototype.name
1630 //
19.5.3.4 Error.prototype.toString ( )
1631 //
19.5.4 Properties of Error Instances
1632 //
19.5.5 Native Error Types Used in This Standard
1633 //
19.5.5.1 EvalError
1634 //
19.5.5.2 RangeError
1635 //
19.5.5.3 ReferenceError
1636 //
19.5.5.4 SyntaxError
1637 //
19.5.5.5 TypeError
1638 //
19.5.5.6 URIError
1639 //
19.5.6 NativeError Object Structure
1640 //
19.5.6.1 NativeError Constructors
1641 //
19.5.6.1.1 NativeError ( message )
1642 //
19.5.6.1.2 new NativeError ( ...argumentsList )
1643 //
19.5.6.2 Properties of the NativeError Constructors
1644 //
19.5.6.2.1 NativeError.prototype
1645 //
19.5.6.3 Properties of the NativeError Prototype Objects
1646 //
19.5.6.4 Properties of NativeError Instances
1648 // (No polyfillable changes from ES5)
1650 // ---------------------------------------
1651 //
20 Numbers and Dates
1652 // ---------------------------------------
1654 // ---------------------------------------
1655 //
20.1 Number Objects
1656 // ---------------------------------------
1658 //
20.1.1 The Number Constructor
1659 //
20.1.1.1 Number ( [ value ] )
1660 //
20.1.1.2 new Number ( ...argumentsList )
1661 //
20.1.2 Properties of the Number Constructor
1663 //
20.1.2.1 Number.EPSILON
1668 for (next =
1;
1 + next !==
1; next = next /
2)
1673 //
20.1.2.2 Number.isFinite ( number )
1676 function isFinite(number) {
1677 if (Type(number) !== 'number') return false;
1678 if (number !== number || number === +Infinity || number === -Infinity) return false;
1682 //
20.1.2.3 Number.isInteger ( number )
1684 Number, 'isInteger',
1685 function isInteger(number) {
1686 if (Type(number) !== 'number') return false;
1687 if (number !== number || number === +Infinity || number === -Infinity) return false;
1688 var integer = ToInteger(number);
1689 if (integer !== number) return false;
1693 //
20.1.2.4 Number.isNaN ( number )
1696 function isNaN(number) {
1697 if (Type(number) !== 'number') return false;
1698 if (number !== number) return true;
1702 //
20.1.2.5 Number.isSafeInteger ( number )
1704 Number, 'isSafeInteger',
1705 function isSafeInteger(number) {
1706 if (Type(number) !== 'number') return false;
1707 if (number !== number || number === +Infinity || number === -Infinity) return false;
1708 var integer = ToInteger(number);
1709 if (integer !== number) return false;
1710 if (abs(integer) <= (
0x20000000000000 -
1)) //
2^
53-
1
1715 //
20.1.2.6 Number.MAX_SAFE_INTEGER
1717 Number, 'MAX_SAFE_INTEGER',
1718 9007199254740991); //
2^
53-
1
1720 //
20.1.2.7 Number.MAX_VALUE
1722 //
20.1.2.8 Number.MIN_SAFE_INTEGER
1724 Number, 'MIN_SAFE_INTEGER',
1725 -
9007199254740991); // -
2^
53+
1
1727 //
20.1.2.9 Number.MIN_VALUE
1728 //
20.1.2.10 Number.NaN
1729 //
20.1.2.11 Number.NEGATIVE_INFINITY
1731 //
20.1.2.12 Number.parseFloat ( string )
1732 define(Number, 'parseFloat', $parseFloat);
1734 //
20.1.2.13 Number.parseInt ( string, radix )
1735 define(Number, 'parseInt', $parseInt);
1737 //
20.1.2.14 Number.POSITIVE_INFINITY
1738 //
20.1.2.15 Number.prototype
1740 //
20.1.3 Properties of the Number Prototype Object
1741 //
20.1.3.1 Number.prototype.constructor
1742 //
20.1.3.2 Number.prototype.toExponential ( fractionDigits )
1743 //
20.1.3.3 Number.prototype.toFixed ( fractionDigits )
1744 //
20.1.3.4 Number.prototype.toLocaleString( [ reserved1 [ , reserved2 ] ])
1745 //
20.1.3.5 Number.prototype.toPrecision ( precision )
1746 //
20.1.3.6 Number.prototype.toString ( [ radix ] )
1747 //
20.1.3.7 Number.prototype.valueOf ( )
1748 //
20.1.4 Properties of Number Instances
1750 // ---------------------------------------
1751 //
20.2 The Math Object
1752 // ---------------------------------------
1754 //
20.2.1 Value Properties of the Math Object
1756 //
20.2.1.2 Math.LN10
1757 //
20.2.1.3 Math.LN2
1758 //
20.2.1.4 Math.LOG10E
1759 //
20.2.1.5 Math.LOG2E
1761 //
20.2.1.7 Math.SQRT1_2
1762 //
20.2.1.8 Math.SQRT2
1764 //
20.2.1.9 Math [ @@toStringTag ]
1765 define(Math, $$toStringTag, 'Math');
1767 //
20.2.2 Function Properties of the Math Object
1768 //
20.2.2.1 Math.abs ( x )
1769 //
20.2.2.2 Math.acos ( x )
1771 //
20.2.2.3 Math.acosh(x)
1776 return log(x + sqrt(x * x -
1));
1779 //
20.2.2.4 Math.asin ( x )
1781 //
20.2.2.5 Math.asinh( x )
1786 if (SameValue(x, -
0)) {
1789 var s = sqrt(x * x +
1);
1790 return (s === -x) ? log(
0) : log(x + s);
1793 //
20.2.2.6 Math.atan ( x )
1795 //
20.2.2.7 Math.atanh( x )
1800 return (x ===
0) ? x : log((
1 + x) / (
1 - x)) /
2;
1803 //
20.2.2.8 Math.atan2 ( y, x )
1805 //
20.2.2.9 Math.cbrt ( x )
1813 var r = pow(abs(x),
1/
3);
1815 return r + (r * (t-r) / (
2*r + t));
1818 //
20.2.2.10 Math.ceil ( x )
1820 //
20.2.2.11 Math.clz32 ( x )
1825 return (x &
0xf0) ? (x &
0x80 ?
0 : x &
0x40 ?
1 : x &
0x20 ?
2 :
3) :
1826 (x &
0x08 ?
4 : x &
0x04 ?
5 : x &
0x02 ?
6 : x &
0x01 ?
7 :
8);
1829 return x &
0xff000000 ? clz8(x
>> 24) :
1830 x &
0xff0000 ? clz8(x
>> 16) +
8 :
1831 x &
0xff00 ? clz8(x
>> 8) +
16 : clz8(x) +
24;
1836 //
20.2.2.12 Math.cos ( x )
1838 //
20.2.2.13 Math.cosh ( x )
1843 return (pow(E, x) + pow(E, -x)) /
2;
1846 //
20.2.2.14 Math.exp ( x )
1848 //
20.2.2.15 Math.expm1 ( x )
1853 // from: http://www.johndcook.com/cpp_log1p.html
1854 if (SameValue(x, -
0)) {
1856 } else if (abs(x) <
1e-5) {
1857 return x +
0.5 * x * x; // two terms of Taylor expansion
1863 //
20.2.2.16 Math.floor ( x )
1865 //
20.2.2.17 Math.fround ( x )
1868 function fround(x) {
1872 if (
1/x === +Infinity ||
1/x === -Infinity || x === +Infinity || x === -Infinity) {
1875 return (new Float32Array([x]))[
0];
1878 //
20.2.2.18 Math.hypot ( value1 [, value2 [ ... ] ] )
1883 var m =
0, sawNaN = false;
1884 for (var i =
0; i < arguments.length; ++i) {
1885 var n = abs(Number(arguments[i]));
1886 if (n === Infinity) return n;
1887 if (n !== n) sawNaN = true;
1891 if (sawNaN) return NaN;
1892 if (m ===
0) return +
0;
1894 for (i =
0; i < values.length; ++i) {
1895 var r = values[i] / m;
1898 return m * sqrt(sum);
1901 //
20.2.2.19 Math.imul ( x, y )
1904 function imul(x, y) {
1905 var a = ToUint32(x);
1906 var b = ToUint32(y);
1907 // (slow but accurate)
1908 var ah = (a
>>> 16) &
0xffff;
1909 var al = a &
0xffff;
1910 var bh = (b
>>> 16) &
0xffff;
1911 var bl = b &
0xffff;
1912 return ((al * bl) + (((ah * bl + al * bh) <<
16)
>>> 0)|
0);
1913 }, ('imul' in Math && Math.imul(
1,
0x80000000) ===
0) // Safari
7 bug
1916 //
20.2.2.20 Math.log ( x )
1918 //
20.2.2.21 Math.log1p ( x )
1923 // from: http://www.johndcook.com/cpp_expm1.html
1926 } else if (SameValue(x, -
0)) {
1928 } else if (abs(x)
> 1e-4) {
1931 return (-
0.5 * x +
1) * x;
1935 //
20.2.2.22 Math.log10 ( x )
1940 return log(x) * LOG10E;
1943 //
20.2.2.23 Math.log2 ( x )
1948 return log(x) * LOG2E;
1951 //
20.2.2.24 Math.max ( value1, value2 , ...values )
1952 //
20.2.2.25 Math.min ( value1, value2 , ...values )
1953 //
20.2.2.26 Math.pow ( x, y )
1954 //
20.2.2.27 Math.random ( )
1955 //
20.2.2.28 Math.round ( x )
1957 //
20.2.2.29 Math.sign(x)
1962 return x <
0 ? -
1 : x
> 0 ?
1 : x;
1965 //
20.2.2.30 Math.sin ( x )
1967 //
20.2.2.31 Math.sinh( x )
1972 return SameValue(x, -
0) ? x : (pow(E, x) - pow(E, -x)) /
2;
1975 //
20.2.2.32 Math.sqrt ( x )
1976 //
20.2.2.33 Math.tan ( x )
1978 //
20.2.2.34 Math.tanh ( x )
1983 var n = pow(E,
2 * x) -
1,
1984 d = pow(E,
2 * x) +
1;
1985 if (SameValue(x, -
0))
1987 return (n === d) ?
1 : n / d; // Handle Infinity/Infinity
1990 //
20.2.2.35 Math.trunc ( x )
1995 return $isNaN(x) ? NaN :
1996 x <
0 ? ceil(x) : floor(x);
1999 // ---------------------------------------
2000 //
20.3 Date Objects
2001 // ---------------------------------------
2003 //
20.3.1 Overview of Date Objects and Definitions of Abstract Operations
2004 //
20.3.1.1 Time Values and Time Range
2005 //
20.3.1.2 Day Number and Time within Day
2006 //
20.3.1.3 Year Number
2007 //
20.3.1.4 Month Number
2008 //
20.3.1.5 Date Number
2009 //
20.3.1.6 Week Day
2010 //
20.3.1.7 Local Time Zone Adjustment
2011 //
20.3.1.8 Daylight Saving Time Adjustment
2012 //
20.3.1.9 Local Time
2013 //
20.3.1.10 Hours, Minutes, Second, and Milliseconds
2014 //
20.3.1.11 MakeTime (hour, min, sec, ms)
2015 //
20.3.1.12 MakeDay (year, month, date)
2016 //
20.3.1.13 MakeDate (day, time)
2017 //
20.3.1.14 TimeClip (time)
2018 //
20.3.1.15 Date Time String Format
2019 //
20.3.1.15.1 Extended years
2020 //
20.3.2 The Date Constructor
2021 //
20.3.2.1 Date ( year, month [, date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
2022 //
20.3.2.2 Date ( value )
2023 //
20.3.2.3 Date ( )
2024 //
20.3.3 Properties of the Date Constructor
2025 //
20.3.3.1 Date.now ( )
2026 //
20.3.3.2 Date.parse (string)
2027 //
20.3.3.3 Date.prototype
2028 //
20.3.3.4 Date.UTC ( year, month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
2029 //
20.3.4 Properties of the Date Prototype Object
2030 //
20.3.4.1 Date.prototype.constructor
2031 //
20.3.4.2 Date.prototype.getDate ( )
2032 //
20.3.4.3 Date.prototype.getDay ( )
2033 //
20.3.4.4 Date.prototype.getFullYear ( )
2034 //
20.3.4.5 Date.prototype.getHours ( )
2035 //
20.3.4.6 Date.prototype.getMilliseconds ( )
2036 //
20.3.4.7 Date.prototype.getMinutes ( )
2037 //
20.3.4.8 Date.prototype.getMonth ( )
2038 //
20.3.4.9 Date.prototype.getSeconds ( )
2039 //
20.3.4.10 Date.prototype.getTime ( )
2040 //
20.3.4.11 Date.prototype.getTimezoneOffset ( )
2041 //
20.3.4.12 Date.prototype.getUTCDate ( )
2042 //
20.3.4.13 Date.prototype.getUTCDay ( )
2043 //
20.3.4.14 Date.prototype.getUTCFullYear ( )
2044 //
20.3.4.15 Date.prototype.getUTCHours ( )
2045 //
20.3.4.16 Date.prototype.getUTCMilliseconds ( )
2046 //
20.3.4.17 Date.prototype.getUTCMinutes ( )
2047 //
20.3.4.18 Date.prototype.getUTCMonth ( )
2048 //
20.3.4.19 Date.prototype.getUTCSeconds ( )
2049 //
20.3.4.20 Date.prototype.setDate ( date )
2050 //
20.3.4.21 Date.prototype.setFullYear ( year [ , month [ , date ] ] )
2051 //
20.3.4.22 Date.prototype.setHours ( hour [ , min [ , sec [ , ms ] ] ] )
2052 //
20.3.4.23 Date.prototype.setMilliseconds ( ms )
2053 //
20.3.4.24 Date.prototype.setMinutes ( min [ , sec [ , ms ] ] )
2054 //
20.3.4.25 Date.prototype.setMonth ( month [ , date ] )
2055 //
20.3.4.26 Date.prototype.setSeconds ( sec [ , ms ] )
2056 //
20.3.4.27 Date.prototype.setTime ( time )
2057 //
20.3.4.28 Date.prototype.setUTCDate ( date )
2058 //
20.3.4.29 Date.prototype.setUTCFullYear ( year [ , month [ , date ] ] )
2059 //
20.3.4.30 Date.prototype.setUTCHours ( hour [ , min [ , sec [ , ms ] ] ] )
2060 //
20.3.4.31 Date.prototype.setUTCMilliseconds ( ms )
2061 //
20.3.4.32 Date.prototype.setUTCMinutes ( min [ , sec [, ms ] ] )
2062 //
20.3.4.33 Date.prototype.setUTCMonth ( month [ , date ] )
2063 //
20.3.4.34 Date.prototype.setUTCSeconds ( sec [ , ms ] )
2064 //
20.3.4.35 Date.prototype.toDateString ( )
2065 //
20.3.4.36 Date.prototype.toISOString ( )
2066 //
20.3.4.37 Date.prototype.toJSON ( key )
2067 //
20.3.4.38 Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] )
2068 //
20.3.4.39 Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2069 //
20.3.4.40 Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] )
2070 //
20.3.4.41 Date.prototype.toString ( )
2071 //
20.3.4.42 Date.prototype.toTimeString ( )
2072 //
20.3.4.43 Date.prototype.toUTCString ( )
2073 //
20.3.4.44 Date.prototype.valueOf ( )
2074 //
20.3.4.45 Date.prototype [ @@toPrimitive ] ( hint )
2075 //
20.3.5 Properties of Date Instances
2077 // (No polyfillable changes from ES5)
2079 // ---------------------------------------
2080 //
21 Text Processing
2081 // ---------------------------------------
2083 var string_regexp_dispatch = (function() {
2084 var faux = {}, secret = Symbol();
2085 faux[Symbol.match] = function() { return secret; };
2086 return (
"").match(faux) === secret;
2089 //
21.1 String Objects
2090 //
21.1.1 The String Constructor
2091 //
21.1.1.1 String ( value )
2092 //
21.1.2 Properties of the String Constructor
2093 //
21.1.2.1 String.fromCharCode ( ...codeUnits )
2095 //
21.1.2.2 String.fromCodePoint ( ...codePoints )
2097 String, 'fromCodePoint',
2098 function fromCodePoint(/*...codePoints*/) {
2099 var codePoints = arguments,
2100 length = codePoints.length,
2103 while (nextIndex < length) {
2104 var next = codePoints[nextIndex];
2105 var nextCP = Number(next);
2106 if (!SameValue(nextCP, ToInteger(nextCP)) ||
2107 nextCP <
0 || nextCP
> 0x10FFFF) {
2108 throw RangeError('Invalid code point ' + nextCP);
2110 if (nextCP <
0x10000) {
2111 elements.push(String.fromCharCode(nextCP));
2114 elements.push(String.fromCharCode((nextCP
>> 10) +
0xD800));
2115 elements.push(String.fromCharCode((nextCP %
0x400) +
0xDC00));
2119 return elements.join('');
2122 //
21.1.2.3 String.prototype
2124 //
21.1.2.4 String.raw ( template , ...substitutions )
2127 function raw(template /*, ...substitutions*/) {
2128 var substitutions = [].slice.call(arguments,
1);
2130 var cooked = Object(template);
2131 var rawValue = cooked['raw'];
2132 var raw = Object(rawValue);
2133 var len = raw['length'];
2134 var literalSegments = ToLength(len);
2135 if (literalSegments <=
0) return '';
2136 var stringElements = [];
2139 var next = raw[nextIndex];
2140 var nextSeg = String(next);
2141 stringElements.push(nextSeg);
2142 if (nextIndex +
1 === literalSegments)
2143 return stringElements.join('');
2144 next = substitutions[nextIndex];
2145 var nextSub = String(next);
2146 stringElements.push(nextSub);
2147 nextIndex = nextIndex +
1;
2151 // See https://githib.com/inexorabletash/uate for a more useful version.
2153 //
21.1.3 Properties of the String Prototype Object
2154 //
21.1.3.1 String.prototype.charAt ( pos )
2155 //
21.1.3.2 String.prototype.charCodeAt ( pos )
2157 //
21.1.3.3 String.prototype.codePointAt ( pos )
2159 String.prototype, 'codePointAt',
2160 function codePointAt(pos) {
2161 var o = strict(this);
2163 var position = ToInteger(pos);
2164 var size = s.length;
2165 if (position <
0 || position
>= size) return undefined;
2166 var first = s.charCodeAt(position);
2167 if (first <
0xD800 || first
> 0xDBFF || position +
1 === size) return first;
2168 var second = s.charCodeAt(position +
1);
2169 if (second <
0xDC00 || second
> 0xDFFF) return first;
2170 return ((first -
0xD800) *
1024) + (second -
0xDC00) +
0x10000;
2173 //
21.1.3.4 String.prototype.concat ( ...args )
2174 //
21.1.3.5 String.prototype.constructor
2176 //
21.1.3.6 String.prototype.endsWith ( searchString [ , endPosition] )
2178 String.prototype, 'endsWith',
2179 function endsWith(searchString) {
2180 var endPosition = arguments[
1];
2182 var o = strict(this);
2184 var searchStr = String(searchString);
2186 var pos = (endPosition === undefined) ? len : ToInteger(endPosition);
2187 var end = min(max(pos,
0), len);
2188 var searchLength = searchStr.length;
2189 var start = end - searchLength;
2190 if (start <
0) return false;
2191 if (s.substring(start, start + searchLength) === searchStr) return true;
2195 //
21.1.3.7 String.prototype.includes ( searchString [ , position ] )
2197 String.prototype, 'includes',
2198 function includes(searchString) {
2199 var position = arguments[
1];
2201 var o = strict(this);
2203 var searchStr = String(searchString);
2204 var pos = ToInteger(position);
2206 var start = min(max(pos,
0), len);
2207 return s.indexOf(searchStr, start) !== -
1;
2210 //
21.1.3.8 String.prototype.indexOf ( searchString [ , position ] )
2211 //
21.1.3.9 String.prototype.lastIndexOf ( searchString [ , position ] )
2212 //
21.1.3.10 String.prototype.localeCompare ( that [, reserved1 [ , reserved2 ] ] )
2213 //
21.1.3.11 String.prototype.match ( regexp )
2215 String.prototype, 'match',
2216 function match(regexp) {
2217 var o = strict(this);
2219 if (HasProperty(regexp, $$match)) var rx = regexp;
2220 else rx = new RegExp(regexp);
2221 return rx[$$match](s);
2222 }, !string_regexp_dispatch);
2224 //
21.1.3.12 String.prototype.normalize ( [ form ] )
2226 // Not practical due to table sizes; if needed, pull in:
2227 // https://github.com/walling/unorm/
2229 //
21.1.3.13 String.prototype.repeat ( count )
2231 String.prototype, 'repeat',
2232 function repeat(count) {
2233 var o = strict(this);
2235 var n = ToInteger(count);
2236 if (n <
0) throw RangeError();
2237 if (n === Infinity) throw RangeError();
2238 var t = new Array(n +
1).join(s);
2242 //
21.1.3.14 String.prototype.replace (searchValue, replaceValue )
2244 String.prototype, 'replace',
2245 function replace(searchValue, replaceValue) {
2246 var o = strict(this);
2247 if (HasProperty(searchValue, $$replace))
2248 return searchValue[$$replace](o, replaceValue);
2249 return orig_replace.call(o, searchValue, replaceValue);
2250 }, !string_regexp_dispatch);
2252 //
21.1.3.15 String.prototype.search ( regexp )
2254 String.prototype, 'search',
2255 function search(regexp) {
2256 var o = strict(this);
2257 var string = String(o);
2258 if (HasProperty(regexp, $$search)) var rx = regexp;
2259 else rx = new RegExp(regexp);
2260 return rx[$$search](string);
2261 }, !string_regexp_dispatch);
2263 //
21.1.3.16 String.prototype.slice ( start, end )
2264 //
21.1.3.17 String.prototype.split ( separator, limit )
2266 String.prototype, 'split',
2267 function split(separator, limit) {
2268 var o = strict(this);
2269 if (HasProperty(separator, $$split))
2270 return separator[$$split](o, limit);
2271 return orig_split.call(o, separator, limit);
2272 }, !string_regexp_dispatch);
2274 //
21.1.3.18 String.prototype.startsWith ( searchString [, position ] )
2276 String.prototype, 'startsWith',
2277 function startsWith(searchString) {
2278 var position = arguments[
1];
2280 var o = strict(this);
2282 var searchStr = String(searchString);
2283 var pos = ToInteger(position);
2285 var start = min(max(pos,
0), len);
2286 var searchLength = searchStr.length;
2287 if (searchLength + start
> len) return false;
2288 if (s.substring(start, start + searchLength) === searchStr) return true;
2292 //
21.1.3.19 String.prototype.substring ( start, end )
2293 //
21.1.3.20 String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )
2294 //
21.1.3.21 String.prototype.toLocaleUpperCase ([ reserved1 [ , reserved2 ] ] )
2295 //
21.1.3.22 String.prototype.toLowerCase ( )
2296 //
21.1.3.23 String.prototype.toString ( )
2297 //
21.1.3.24 String.prototype.toUpperCase ( )
2298 //
21.1.3.25 String.prototype.trim ( )
2299 //
21.1.3.26 String.prototype.valueOf ( )
2301 //
21.1.3.27 String.prototype [ @@iterator ]( )
2303 String.prototype, $$iterator,
2304 function entries() {
2305 return CreateStringIterator(this, 'value');
2308 //
21.1.4 Properties of String Instances
2311 //
21.1.5 String Iterator Objects
2313 function StringIterator() {}
2315 //
21.1.5.1 CreateStringIterator Abstract Operation
2316 function CreateStringIterator(string, kind) {
2317 var s = String(string);
2318 var iterator = new StringIterator;
2319 set_internal(iterator, '[[IteratedString]]', s);
2320 set_internal(iterator, '[[StringIteratorNextIndex]]',
0);
2321 set_internal(iterator, '[[StringIterationKind]]', kind);
2325 //
21.1.5.2 The %StringIteratorPrototype% Object
2326 var $StringIteratorPrototype$ = Object.create($IteratorPrototype$);
2327 StringIterator.prototype = $StringIteratorPrototype$;
2329 //
21.1.5.2.1 %StringIteratorPrototype%.next ( )
2331 $StringIteratorPrototype$, 'next',
2333 var o = ToObject(this);
2334 var s = String(o['[[IteratedString]]']),
2335 index = o['[[StringIteratorNextIndex]]'],
2338 set_internal(o, '[[StringIteratorNextIndex]]', Infinity);
2339 return CreateIterResultObject(undefined, true);
2341 var cp = s.codePointAt(index);
2342 set_internal(o, '[[StringIteratorNextIndex]]', index + (cp
> 0xFFFF ?
2 :
1));
2343 return CreateIterResultObject(String.fromCodePoint(cp), false);
2346 //
21.1.5.2.2 %StringIteratorPrototype% [ @@toStringTag ]
2347 define($StringIteratorPrototype$, $$toStringTag, 'String Iterator');
2349 //
21.1.5.3 Properties of String Iterator Instances
2351 // ---------------------------------------
2352 //
21.2 RegExp (Regular Expression) Objects
2353 // ---------------------------------------
2356 //
21.2.2 Pattern Semantics
2357 //
21.2.2.1 Notation
2359 //
21.2.2.3 Disjunction
2360 //
21.2.2.4 Alternative
2362 //
21.2.2.6 Assertion
2363 //
21.2.2.7 Quantifier
2365 //
21.2.2.9 AtomEscape
2366 //
21.2.2.10 CharacterEscape
2367 //
21.2.2.11 DecimalEscape
2368 //
21.2.2.12 CharacterClassEscape
2369 //
21.2.2.13 CharacterClass
2370 //
21.2.2.14 ClassRanges
2371 //
21.2.2.15 NonemptyClassRanges
2372 //
21.2.2.16 NonemptyClassRangesNoDash
2373 //
21.2.2.17 ClassAtom
2374 //
21.2.2.18 ClassAtomNoDash
2375 //
21.2.2.19 ClassEscape
2376 //
21.2.3 The RegExp Constructor
2377 //
21.2.3.1 RegExp ( pattern, flags )
2378 //
21.2.3.2 new RegExp( ...argumentsList )
2379 //
21.2.3.3 Abstract Operations for the RegExp Constructor
2380 //
21.2.4 Properties of the RegExp Constructor
2381 //
21.2.4.1 RegExp.prototype
2382 //
21.2.5 Properties of the RegExp Prototype Object
2383 //
21.2.5.1 RegExp.prototype.constructor
2384 //
21.2.5.2 RegExp.prototype.exec ( string )
2386 //
21.2.5.3 get RegExp.prototype.flags
2387 if (!('flags' in RegExp.prototype)) {
2388 Object.defineProperty(
2389 RegExp.prototype, 'flags', {
2391 var s = String(this);
2392 return s.substring(s.lastIndexOf('/') +
1);
2397 //
21.2.5.4 get RegExp.prototype.global
2398 //
21.2.5.5 get RegExp.prototype.ignoreCase
2400 //
21.2.5.6 RegExp.prototype [ @@match ] ( string )
2401 define(RegExp.prototype, $$match, function(string) {
2402 var o = strict(this);
2403 return orig_match.call(string, o);
2406 //
21.2.5.7 get RegExp.prototype.multiline
2408 //
21.2.5.8 RegExp.prototype [ @@replace ] ( string, replaceValue )
2409 define(RegExp.prototype, $$replace, function(string, replaceValue) {
2410 var o = strict(this);
2411 return orig_replace.call(string, o, replaceValue);
2414 //
21.2.5.9 RegExp.prototype [ @@search ] ( string )
2415 define(RegExp.prototype, $$search, function(string) {
2416 var o = strict(this);
2417 return orig_search.call(string, o);
2420 //
21.2.5.10 get RegExp.prototype.source
2422 //
21.2.5.11 RegExp.prototype [ @@split ] ( string, limit )
2423 define(RegExp.prototype, $$split, function(string, limit) {
2424 var o = strict(this);
2425 return orig_split.call(string, o, limit);
2428 //
21.2.5.12 get RegExp.prototype.sticky
2429 //
21.2.5.13 RegExp.prototype.test( S )
2430 //
21.2.5.14 RegExp.prototype.toString ( )
2431 //
21.2.5.15 get RegExp.prototype.unicode
2433 //
21.2.6 Properties of RegExp Instances
2434 //
21.2.6.1 lastIndex
2436 // (No polyfillable changes from ES5)
2438 // ---------------------------------------
2439 //
22 Indexed Collections
2440 // ---------------------------------------
2442 // ---------------------------------------
2443 //
22.1 Array Objects
2444 // ---------------------------------------
2446 //
22.1.1 The Array Constructor
2447 //
22.1.1.1 Array ( )
2448 //
22.1.1.2 Array (len)
2449 //
22.1.1.3 Array (...items )
2451 //
22.1.2 Properties of the Array Constructor
2453 //
22.1.2.1 Array.from ( items [ , mapfn [ , thisArg ] ] )
2456 function from(items) {
2457 var mapfn = arguments[
1];
2458 var thisArg = arguments[
2];
2460 var c = strict(this);
2461 if (mapfn === undefined) {
2462 var mapping = false;
2464 if (!IsCallable(mapfn)) throw TypeError();
2468 var usingIterator = GetMethod(items, $$iterator);
2469 if (usingIterator !== undefined) {
2470 if (IsConstructor(c)) {
2475 var iterator = GetIterator(items, usingIterator);
2478 var next = IteratorStep(iterator);
2479 if (next === false) {
2483 var nextValue = IteratorValue(next);
2485 var mappedValue = mapfn.call(t, nextValue);
2487 mappedValue = nextValue;
2492 var arrayLike = ToObject(items);
2493 var lenValue = arrayLike.length;
2494 var len = ToLength(lenValue);
2495 if (IsConstructor(c)) {
2502 var kValue = arrayLike[k];
2504 mappedValue = mapfn.call(t, kValue, k);
2506 mappedValue = kValue;
2514 //
22.1.2.2 Array.isArray ( arg )
2516 //
22.1.2.3 Array.of ( ...items )
2520 var items = arguments;
2522 var lenValue = items.length;
2523 var len = ToUint32(lenValue);
2524 var c = strict(this), a;
2525 if (IsConstructor(c)) {
2540 //
22.1.2.4 Array.prototype
2541 //
22.1.2.5 get Array [ @@species ]
2542 //
22.1.3 Properties of the Array Prototype Object
2543 //
22.1.3.1 Array.prototype.concat ( ...arguments )
2544 //
22.1.3.1.1 Runtime Semantics: IsConcatSpreadable ( O )
2545 //
22.1.3.2 Array.prototype.constructor
2546 //
22.1.3.3 Array.prototype.copyWithin (target, start [ , end ] )
2548 Array.prototype, 'copyWithin',
2549 function copyWithin(target, start/*, end*/) {
2550 var end = arguments[
2];
2552 var o = ToObject(this);
2553 var lenVal = o.length;
2554 var len = ToLength(lenVal);
2556 var relativeTarget = ToInteger(target);
2558 if (relativeTarget <
0)
2559 to = max(len + relativeTarget,
0);
2561 to = min(relativeTarget, len);
2562 var relativeStart = ToInteger(start);
2564 if (relativeStart <
0)
2565 from = max(len + relativeStart,
0);
2567 from = min(relativeStart, len);
2569 if (end === undefined)
2572 relativeEnd = ToInteger(end);
2574 if (relativeEnd <
0)
2575 final = max(len + relativeEnd,
0);
2577 final = min(relativeEnd, len);
2578 var count = min(final - from, len - to);
2580 if (from < to && to < from + count) {
2582 from = from + count -
1;
2583 to = to + count -
1;
2588 var fromKey = String(from);
2589 var toKey = String(to);
2590 var fromPresent = HasProperty(o, fromKey);
2592 var fromVal = o[fromKey];
2597 from = from + direction;
2598 to = to + direction;
2604 //
22.1.3.4 Array.prototype.entries ( )
2605 var nativeArrayIteratorMethods =
2606 ('entries' in Array.prototype && 'next' in [].entries());
2609 Array.prototype, 'entries',
2610 function entries() {
2611 return CreateArrayIterator(this, 'key+value');
2612 }, !nativeArrayIteratorMethods);
2614 //
22.1.3.5 Array.prototype.every ( callbackfn [ , thisArg] )
2616 //
22.1.3.6 Array.prototype.fill (value [ , start [ , end ] ] )
2618 Array.prototype, 'fill',
2619 function fill(value/*, start, end*/) {
2620 var start = arguments[
1],
2623 var o = ToObject(this);
2624 var lenVal = o.length;
2625 var len = ToLength(lenVal);
2627 var relativeStart = ToInteger(start);
2629 if (relativeStart <
0)
2630 k = max((len + relativeStart),
0);
2632 k = min(relativeStart, len);
2634 if (end === undefined)
2637 relativeEnd = ToInteger(end);
2639 if (relativeEnd <
0)
2640 final = max((len + relativeEnd),
0);
2642 final = min(relativeEnd, len);
2651 //
22.1.3.7 Array.prototype.filter ( callbackfn [ , thisArg ] )
2653 //
22.1.3.8 Array.prototype.find ( predicate [ , thisArg ] )
2655 Array.prototype, 'find',
2656 function find(predicate) {
2657 var o = ToObject(this);
2658 var lenValue = o.length;
2659 var len = ToInteger(lenValue);
2660 if (!IsCallable(predicate)) throw TypeError();
2661 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2665 var kPresent = HasProperty(o, pk);
2668 var testResult = predicate.call(t, kValue, k, o);
2669 if (Boolean(testResult)) {
2678 //
22.1.3.9 Array.prototype.findIndex ( predicate [ , thisArg ] )
2680 Array.prototype, 'findIndex',
2681 function findIndex(predicate) {
2682 var o = ToObject(this);
2683 var lenValue = o.length;
2684 var len = ToLength(lenValue);
2685 if (!IsCallable(predicate)) throw TypeError();
2686 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2690 var kPresent = HasProperty(o, pk);
2693 var testResult = predicate.call(t, kValue, k, o);
2694 if (Boolean(testResult)) {
2703 //
22.1.3.10 Array.prototype.forEach ( callbackfn [ , thisArg ] )
2704 //
22.1.3.11 Array.prototype.indexOf ( searchElement [ , fromIndex ] )
2705 //
22.1.3.12 Array.prototype.join (separator)
2707 //
22.1.3.13 Array.prototype.keys ( )
2709 Array.prototype, 'keys',
2711 return CreateArrayIterator(this, 'key');
2712 }, !nativeArrayIteratorMethods);
2714 //
22.1.3.14 Array.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2715 //
22.1.3.15 Array.prototype.map ( callbackfn [ , thisArg ] )
2716 //
22.1.3.16 Array.prototype.pop ( )
2717 //
22.1.3.17 Array.prototype.push ( ...items )
2718 //
22.1.3.18 Array.prototype.reduce ( callbackfn [ , initialValue ] )
2719 //
22.1.3.19 Array.prototype.reduceRight ( callbackfn [ , initialValue ] )
2720 //
22.1.3.20 Array.prototype.reverse ( )
2721 //
22.1.3.21 Array.prototype.shift ( )
2722 //
22.1.3.22 Array.prototype.slice (start, end)
2723 //
22.1.3.23 Array.prototype.some ( callbackfn [ , thisArg ] )
2724 //
22.1.3.24 Array.prototype.sort (comparefn)
2725 //
22.1.3.25 Array.prototype.splice (start, deleteCount , ...items )
2726 //
22.1.3.26 Array.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2727 //
22.1.3.27 Array.prototype.toString ( )
2728 //
22.1.3.28 Array.prototype.unshift ( ...items )
2730 //
22.1.3.29 Array.prototype.values ( )
2732 Array.prototype, 'values',
2734 return CreateArrayIterator(this, 'value');
2735 }, !nativeArrayIteratorMethods);
2737 //
22.1.3.30 Array.prototype [ @@iterator ] ( )
2739 Array.prototype, $$iterator,
2740 Array.prototype.values
2743 //
22.1.3.31 Array.prototype [ @@unscopables ]
2744 //
22.1.4 Properties of Array Instances
2747 //
22.1.5 Array Iterator Objects
2748 function ArrayIterator() {}
2750 //
22.1.5.1 CreateArrayIterator Abstract Operation
2751 function CreateArrayIterator(array, kind) {
2752 var o = ToObject(array);
2753 var iterator = new ArrayIterator;
2754 set_internal(iterator, '[[IteratedObject]]', o);
2755 set_internal(iterator, '[[ArrayIteratorNextIndex]]',
0);
2756 set_internal(iterator, '[[ArrayIterationKind]]', kind);
2760 //
22.1.5.2 The %ArrayIteratorPrototype% Object
2761 var $ArrayIteratorPrototype$ = Object.create($IteratorPrototype$);
2762 ArrayIterator.prototype = $ArrayIteratorPrototype$;
2764 //
22.1.5.2.1 %ArrayIteratorPrototype%. next( )
2766 $ArrayIteratorPrototype$, 'next',
2768 var o = strict(this);
2769 if (Type(o) !== 'object') throw TypeError();
2770 var a = o['[[IteratedObject]]'],
2771 index = o['[[ArrayIteratorNextIndex]]'],
2772 itemKind = o['[[ArrayIterationKind]]'],
2773 lenValue = a.length,
2774 len = ToUint32(lenValue),
2777 if (itemKind.indexOf('sparse') !== -
1) {
2779 while (!found && index < len) {
2780 elementKey = String(index);
2781 found = HasProperty(a, elementKey);
2788 set_internal(o, '[[ArrayIteratorNextIndex]]', Infinity);
2789 return CreateIterResultObject(undefined, true);
2792 set_internal(o, '[[ArrayIteratorNextIndex]]', index +
1);
2793 if (itemKind.indexOf('value') !== -
1)
2794 elementValue = a[elementKey];
2795 if (itemKind.indexOf('key+value') !== -
1)
2796 return CreateIterResultObject([elementKey, elementValue], false);
2797 if (itemKind.indexOf('key') !== -
1)
2798 return CreateIterResultObject(elementKey, false);
2799 if (itemKind === 'value')
2800 return CreateIterResultObject(elementValue, false);
2801 throw Error('Internal error');
2804 //
22.1.5.2.2 %ArrayIteratorPrototype% [ @@toStringTag ]
2805 define($ArrayIteratorPrototype$, $$toStringTag, 'Array Iterator');
2807 //
22.1.5.3 Properties of Array Iterator Instances
2810 // ---------------------------------------
2811 //
22.2 TypedArray Objects
2812 // ---------------------------------------
2814 // See typedarray.js for TypedArray polyfill
2816 ['Int8Array', 'Uint8Array', 'Uint8ClampedArray',
2817 'Int16Array', 'Uint16Array',
2818 'Int32Array', 'Uint32Array',
2819 'Float32Array', 'Float64Array'].forEach(function ($TypedArrayName$) {
2820 if (!($TypedArrayName$ in global))
2822 var $TypedArray$ = global[$TypedArrayName$];
2824 //
22.2.1 The %TypedArray% Intrinsic Object
2825 //
22.2.1.1 %TypedArray% ( length )
2826 //
22.2.1.2 %TypedArray% ( typedArray )
2827 //
22.2.1.3 %TypedArray% ( object )
2828 //
22.2.1.4 %TypedArray% ( buffer [ , byteOffset [ , length ] ] )
2829 //
22.2.1.5 %TypedArray% ( all other argument combinations )
2830 //
22.2.2 Properties of the %TypedArray% Intrinsic Object
2832 //
22.2.2.1 %TypedArray%.from ( source [ , mapfn [ , thisArg ] ] )
2834 $TypedArray$, 'from',
2835 function from(source) {
2836 var mapfn = arguments[
1];
2837 var thisArg = arguments[
2];
2839 var c = strict(this);
2840 if (!IsConstructor(c)) throw TypeError();
2841 if (mapfn === undefined) {
2842 var mapping = false;
2844 if (IsCallable(mapfn)) throw TypeError();
2848 var usingIterator = GetMethod(source, $$iterator);
2849 if (usingIterator !== undefined) {
2850 var iterator = GetIterator(source, usingIterator);
2853 while (next !== false) {
2854 next = IteratorStep(iterator);
2855 if (next !== false) {
2856 var nextValue = IteratorValue(next);
2857 values.push(nextValue);
2860 var len = values.length;
2861 var newObj = new c(len);
2864 var kValue = values.shift();
2866 var mappedValue = mapfn.call(t, kValue);
2868 mappedValue = kValue;
2870 newObj[k] = mappedValue;
2873 console.assert(values.length ===
0);
2876 var arrayLike = ToObject(source);
2877 var lenValue = arrayLike.length;
2878 len = ToLength(lenValue);
2879 newObj = new c(len);
2882 kValue = arrayLike[k];
2884 mappedValue = mapfn.call(t, kValue, k);
2886 mappedValue = kValue;
2888 newObj[k] = mappedValue;
2894 //
22.2.2.2 %TypedArray%.of ( ...items )
2898 var items = arguments;
2900 var len = items.length;
2901 var c = strict(this);
2902 var newObj = new c(len);
2905 newObj[k] = items[k];
2911 //
22.2.2.3 %TypedArray%.prototype
2912 //
22.2.2.4 get %TypedArray% [ @@species ]
2913 //
22.2.3 Properties of the %TypedArrayPrototype% Object
2914 //
22.2.3.1 get %TypedArray%.prototype.buffer
2915 //
22.2.3.2 get %TypedArray%.prototype.byteLength
2916 //
22.2.3.3 get %TypedArray%.prototype.byteOffset
2917 //
22.2.3.4 %TypedArray%.prototype.constructor
2919 //
22.2.3.5 %TypedArray%.prototype.copyWithin (target, start [, end ] )
2920 define($TypedArray$.prototype, 'copyWithin', Array.prototype.copyWithin);
2922 //
22.2.3.6 %TypedArray%.prototype.entries ( )
2923 define($TypedArray$.prototype, 'entries', Array.prototype.entries);
2925 //
22.2.3.7 %TypedArray%.prototype.every ( callbackfn [ , thisArg ] )
2926 define($TypedArray$.prototype, 'every', Array.prototype.every);
2928 //
22.2.3.8 %TypedArray%.prototype.fill (value [ , start [ , end ] ] )
2930 $TypedArray$.prototype, 'fill',
2931 //Array.prototype.fill // Doesn't work in Safari
7
2932 function fill(value/*, start, end*/) {
2933 var start = arguments[
1],
2936 var o = ToObject(this);
2937 var lenVal = o.length;
2938 var len = ToLength(lenVal);
2940 var relativeStart = ToInteger(start);
2942 if (relativeStart <
0) k = max((len + relativeStart),
0);
2943 else k = min(relativeStart, len);
2945 if (end === undefined) relativeEnd = len;
2946 else relativeEnd = ToInteger(end);
2948 if (relativeEnd <
0) final = max((len + relativeEnd),
0);
2949 else final = min(relativeEnd, len);
2958 //
22.2.3.9 %TypedArray%.prototype.filter ( callbackfn [ , thisArg ] )
2960 $TypedArray$.prototype, 'filter',
2961 function filter(callbackfn) {
2962 var thisArg = arguments[
1];
2964 var o = ToObject(this);
2965 var lenVal = o.length;
2966 var len = ToLength(lenVal);
2967 if (!IsCallable(callbackfn)) throw TypeError();
2969 var c = o.constructor;
2975 var selected = callbackfn.call(t, kValue, k, o);
2982 var a = new c(captured);
2984 for (var i =
0; i < kept.length; ++i) {
2992 //
22.2.3.10 %TypedArray%.prototype.find (predicate [ , thisArg ] )
2993 define($TypedArray$.prototype, 'find', Array.prototype.find);
2995 //
22.2.3.11 %TypedArray%.prototype.findIndex ( predicate [ , thisArg ] )
2996 define($TypedArray$.prototype, 'findIndex', Array.prototype.findIndex);
2998 //
22.2.3.12 %TypedArray%.prototype.forEach ( callbackfn [ , thisArg ] )
2999 define($TypedArray$.prototype, 'forEach', Array.prototype.forEach);
3001 //
22.2.3.13 %TypedArray%.prototype.indexOf (searchElement [ , fromIndex ] )
3002 define($TypedArray$.prototype, 'indexOf', Array.prototype.indexOf);
3004 //
22.2.3.14 %TypedArray%.prototype.join ( separator )
3005 define($TypedArray$.prototype, 'join', Array.prototype.join);
3007 //
22.2.3.15 %TypedArray%.prototype.keys ( )
3008 define($TypedArray$.prototype, 'keys', Array.prototype.keys);
3010 //
22.2.3.16 %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
3011 define($TypedArray$.prototype, 'lastIndexOf', Array.prototype.lastIndexOf);
3013 //
22.2.3.17 get %TypedArray%.prototype.length
3015 //
22.2.3.18 %TypedArray%.prototype.map ( callbackfn [ , thisArg ] )
3017 $TypedArray$.prototype, 'map',
3018 function map(callbackfn) {
3019 var thisArg = arguments[
1];
3021 var o = ToObject(this);
3022 var lenValue = o.length;
3023 var len = ToLength(lenValue);
3024 if (!IsCallable(callbackfn)) throw TypeError();
3027 var c = o.constructor;
3028 if (IsConstructor(c))
3030 if (a === undefined)
3034 var kPresent = HasProperty(o, k);
3037 var mappedValue = callbackfn.call(t, kValue, k, o);
3045 //
22.2.3.19 %TypedArray%.prototype.reduce ( callbackfn [, initialValue] )
3046 define($TypedArray$.prototype, 'reduce', Array.prototype.reduce);
3048 //
22.2.3.20 %TypedArray%.prototype.reduceRight ( callbackfn [, initialValue] )
3049 define($TypedArray$.prototype, 'reduceRight', Array.prototype.reduceRight);
3051 //
22.2.3.21 %TypedArray%.prototype.reverse ( )
3052 define($TypedArray$.prototype, 'reverse', Array.prototype.reverse);
3054 //
22.2.3.22 %TypedArray%.prototype.set ( overloaded [ , offset ])
3055 //
22.2.3.22.1 %TypedArray%.prototype.set (array [ , offset ] )
3056 //
22.2.3.22.2 %TypedArray%.prototype.set(typedArray [, offset ] )
3058 //
22.2.3.23 %TypedArray%.prototype.slice ( start, end )
3060 $TypedArray$.prototype, 'slice',
3061 function slice(start, end) {
3062 var o = ToObject(this);
3063 var lenVal = o.length;
3064 var len = ToLength(lenVal);
3065 var relativeStart = ToInteger(start);
3066 var k = (relativeStart <
0) ? max(len + relativeStart,
0) : min(relativeStart, len);
3067 var relativeEnd = (end === undefined) ? len : ToInteger(end);
3068 var final = (relativeEnd <
0) ? max(len + relativeEnd,
0) : min(relativeEnd, len);
3069 var count = final - k;
3070 var c = o.constructor;
3071 if (IsConstructor(c)) {
3072 var a = new c(count);
3086 //
22.2.3.24 %TypedArray%.prototype.some ( callbackfn [ , thisArg ] )
3087 define($TypedArray$.prototype, 'some', Array.prototype.some);
3089 //
22.2.3.25 %TypedArray%.prototype.sort ( comparefn )
3091 $TypedArray$.prototype, 'sort',
3093 var comparefn = arguments[
0];
3095 function sortCompare(x, y) {
3096 console.assert(Type(x) === 'number' && Type(y) === 'number');
3097 if (x !== x && y !== y) return +
0;
3098 if (x !== x) return
1;
3099 if (y !== y) return -
1;
3100 if (comparefn !== undefined) {
3101 return comparefn(x, y);
3103 if (x < y) return -
1;
3104 if (x
> y) return
1;
3107 return Array.prototype.sort.call(this, sortCompare);
3110 //
22.2.3.26 %TypedArray%.prototype.subarray( [ begin [ , end ] ] )
3111 //
22.2.3.27 %TypedArray%.prototype.toLocaleString ([ reserved1 [ , reserved2 ] ])
3112 //
22.2.3.28 %TypedArray%.prototype.toString ( )
3114 //
22.2.3.29 %TypedArray%.prototype.values ( )
3115 define($TypedArray$.prototype, 'values', Array.prototype.values);
3117 //
22.2.3.30 %TypedArray%.prototype [ @@iterator ] ( )
3119 $TypedArray$.prototype, $$iterator,
3120 $TypedArray$.prototype.values
3123 //
22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
3124 define($TypedArray$.prototype, $$toStringTag, $TypedArrayName$);
3126 //
22.2.4 The TypedArray Constructors
3127 //
22.2.4.1TypedArray( ... argumentsList)
3128 //
22.2.5 Properties of the TypedArray Constructors
3129 //
22.2.5.1 TypedArray.BYTES_PER_ELEMENT
3130 //
22.2.5.2 TypedArray.prototype
3131 //
22.2.6 Properties of TypedArray Prototype Objects
3132 //
22.2.6.1 TypedArray.prototype.BYTES_PER_ELEMENT
3133 //
22.2.6.2 TypedArray.prototype.constructor
3134 //
22.2.7 Properties of TypedArray Instances
3137 // ---------------------------------------
3138 //
23 Keyed Collection
3139 // ---------------------------------------
3141 // ---------------------------------------
3143 // ---------------------------------------
3146 //
23.1.1 The Map Constructor
3148 //
23.1.1.1 Map ( [ iterable ] )
3150 function Map(/*iterable*/) {
3151 var map = strict(this);
3152 var iterable = arguments[
0];
3154 if (Type(map) !== 'object') throw TypeError();
3155 if ('[[MapData]]' in map) throw TypeError();
3157 if (iterable !== undefined) {
3158 var adder = map['set'];
3159 if (!IsCallable(adder)) throw TypeError();
3160 var iter = GetIterator(ToObject(iterable));
3162 set_internal(map, '[[MapData]]', { keys: [], values: [] });
3163 if (iter === undefined) return map;
3165 var next = IteratorStep(iter);
3168 var nextItem = IteratorValue(next);
3169 if (Type(nextItem) !== 'object') throw TypeError();
3170 var k = nextItem[
0];
3171 var v = nextItem[
1];
3172 adder.call(map, k, v);
3178 if (!('Map' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3179 (function() { try { new global.Map([]); return false; } catch (_) { return true; } }()) ||
3180 (function() { try { return !new global.Map().entries().next; } catch (_) { return true; } }()) ||
3181 (new global.Map([['a',
1]]).size !==
1))
3185 function MapDataIndexOf(mapData, key) {
3187 if (key === key) return mapData.keys.indexOf(key);
3188 // Slow case for NaN
3189 for (i =
0; i < mapData.keys.length; i +=
1)
3190 if (SameValueZero(mapData.keys[i], key)) return i;
3194 //
23.1.1.2 new Map ( ... argumentsList )
3195 //
23.1.2 Properties of the Map Constructor
3196 //
23.1.2.1 Map.prototype
3197 var $MapPrototype$ = {};
3198 Map.prototype = $MapPrototype$;
3200 //
23.1.2.2 get Map [ @@species ]
3202 //
23.1.3 Properties of the Map Prototype Object
3203 //
23.1.3.1 Map.prototype.clear ()
3205 Map.prototype, 'clear',
3207 var m = strict(this);
3208 if (Type(m) !== 'object') throw TypeError();
3209 if (!('[[MapData]]' in m)) throw TypeError();
3210 if (m['[[MapData]]'] === undefined) throw TypeError();
3211 var entries = m['[[MapData]]'];
3212 entries.keys.length =
0;
3213 entries.values.length =
0;
3217 //
23.1.3.2 Map.prototype.constructor
3219 //
23.1.3.3 Map.prototype.delete ( key )
3221 Map.prototype, 'delete',
3222 function delete_(key) {
3223 var m = strict(this);
3224 if (Type(m) !== 'object') throw TypeError();
3225 if (!('[[MapData]]' in m)) throw TypeError();
3226 if (m['[[MapData]]'] === undefined) throw TypeError();
3227 var entries = m['[[MapData]]'];
3228 var i = MapDataIndexOf(entries, key);
3229 if (i <
0) return false;
3230 entries.keys[i] = empty;
3231 entries.values[i] = empty;
3235 //
23.1.3.4 Map.prototype.entries ( )
3237 Map.prototype, 'entries',
3238 function entries() {
3239 var m = strict(this);
3240 if (Type(m) !== 'object') throw TypeError();
3241 return CreateMapIterator(m, 'key+value');
3244 //
23.1.3.5 Map.prototype.forEach ( callbackfn [ , thisArg ] )
3246 Map.prototype, 'forEach',
3247 function forEach(callbackfn /*, thisArg*/) {
3248 var thisArg = arguments[
1];
3250 var m = strict(this);
3251 if (Type(m) !== 'object') throw TypeError();
3252 if (!('[[MapData]]' in m)) throw TypeError();
3253 if (m['[[MapData]]'] === undefined) throw TypeError();
3254 var entries = m['[[MapData]]'];
3256 if (!IsCallable(callbackfn)) {
3257 throw TypeError('First argument to forEach is not callable.');
3259 for (var i =
0; i < entries.keys.length; ++i) {
3260 if (entries.keys[i] !== empty) {
3261 callbackfn.call(thisArg, entries.values[i], entries.keys[i], m);
3267 //
23.1.3.6 Map.prototype.get ( key )
3269 Map.prototype, 'get',
3271 var m = strict(this);
3272 if (Type(m) !== 'object') throw TypeError();
3273 if (!('[[MapData]]' in m)) throw TypeError();
3274 if (m['[[MapData]]'] === undefined) throw TypeError();
3275 var entries = m['[[MapData]]'];
3276 var i = MapDataIndexOf(entries, key);
3277 if (i
>=
0) return entries.values[i];
3281 //
23.1.3.7 Map.prototype.has ( key )
3283 Map.prototype, 'has',
3285 var m = strict(this);
3286 if (Type(m) !== 'object') throw TypeError();
3287 if (!('[[MapData]]' in m)) throw TypeError();
3288 if (m['[[MapData]]'] === undefined) throw TypeError();
3289 var entries = m['[[MapData]]'];
3290 if (MapDataIndexOf(entries, key)
>=
0) return true;
3294 //
23.1.3.8 Map.prototype.keys ( )
3296 Map.prototype, 'keys',
3298 var m = strict(this);
3299 if (Type(m) !== 'object') throw TypeError();
3300 return CreateMapIterator(m, 'key');
3303 //
23.1.3.9 Map.prototype.set ( key , value )
3305 Map.prototype, 'set',
3306 function set(key, value) {
3307 var m = strict(this);
3308 if (Type(m) !== 'object') throw TypeError();
3309 if (!('[[MapData]]' in m)) throw TypeError();
3310 if (m['[[MapData]]'] === undefined) throw TypeError();
3311 var entries = m['[[MapData]]'];
3312 var i = MapDataIndexOf(entries, key);
3313 if (i <
0) i = entries.keys.length;
3314 if (SameValue(key, -
0)) key =
0;
3315 entries.keys[i] = key;
3316 entries.values[i] = value;
3320 //
23.1.3.10 get Map.prototype.size
3321 Object.defineProperty(
3322 Map.prototype, 'size', {
3324 var m = strict(this);
3325 if (Type(m) !== 'object') throw TypeError();
3326 if (!('[[MapData]]' in m)) throw TypeError();
3327 if (m['[[MapData]]'] === undefined) throw TypeError();
3328 var entries = m['[[MapData]]'];
3330 for (var i =
0; i < entries.keys.length; ++i) {
3331 if (entries.keys[i] !== empty)
3338 //
23.1.3.11 Map.prototype.values ( )
3340 Map.prototype, 'values',
3342 var m = strict(this);
3343 if (Type(m) !== 'object') throw TypeError();
3344 return CreateMapIterator(m, 'value');
3347 //
23.1.3.12 Map.prototype [ @@iterator ]( )
3349 Map.prototype, $$iterator,
3351 var m = strict(this);
3352 if (Type(m) !== 'object') throw TypeError();
3353 return CreateMapIterator(m, 'key+value');
3356 //
23.1.3.13 Map.prototype [ @@toStringTag ]
3357 define(global.Map.prototype, $$toStringTag, 'Map');
3359 //
23.1.4 Properties of Map Instances
3360 //
23.1.5 Map Iterator Objects
3363 function MapIterator() {}
3365 //
23.1.5.1 CreateMapIterator Abstract Operation
3366 function CreateMapIterator(map, kind) {
3367 if (Type(map) !== 'object') throw TypeError();
3368 if (!('[[MapData]]' in map)) throw TypeError();
3369 if (map['[[MapData]]'] === undefined) throw TypeError();
3370 var iterator = new MapIterator;
3371 set_internal(iterator, '[[Map]]', map);
3372 set_internal(iterator, '[[MapNextIndex]]',
0);
3373 set_internal(iterator, '[[MapIterationKind]]', kind);
3377 //
23.1.5.2 The %MapIteratorPrototype% Object
3378 var $MapIteratorPrototype$ = Object.create($IteratorPrototype$);
3379 MapIterator.prototype = $MapIteratorPrototype$;
3381 //
23.1.5.2.1 %MapIteratorPrototype%.next ( )
3383 $MapIteratorPrototype$, 'next',
3385 var o = strict(this);
3386 if (Type(o) !== 'object') throw TypeError();
3387 var m = o['[[Map]]'],
3388 index = o['[[MapNextIndex]]'],
3389 itemKind = o['[[MapIterationKind]]'],
3390 entries = m['[[MapData]]'];
3391 while (index < entries.keys.length) {
3392 var e = {key: entries.keys[index], value: entries.values[index]};
3394 set_internal(o, '[[MapNextIndex]]', index);
3395 if (e.key !== empty) {
3396 if (itemKind === 'key') {
3397 return CreateIterResultObject(e.key, false);
3398 } else if (itemKind === 'value') {
3399 return CreateIterResultObject(e.value, false);
3401 return CreateIterResultObject([e.key, e.value], false);
3405 return CreateIterResultObject(undefined, true);
3408 //
23.1.5.2.2 %MapIteratorPrototype% [ @@toStringTag ]
3409 define($MapIteratorPrototype$, $$toStringTag, 'Map Iterator');
3411 //
23.1.5.3 Properties of Map Iterator Instances
3414 // ---------------------------------------
3416 // ---------------------------------------
3419 //
23.2.1 The Set Constructor
3420 //
23.2.1.1 Set ( [ iterable ] )
3423 function Set(/*iterable*/) {
3424 var set = strict(this);
3425 var iterable = arguments[
0];
3427 if (Type(set) !== 'object') throw TypeError();
3428 if ('[[SetData]]' in set) throw TypeError();
3430 if (iterable !== undefined) {
3431 var adder = set['add'];
3432 if (!IsCallable(adder)) throw TypeError();
3433 var iter = GetIterator(ToObject(iterable));
3435 set_internal(set, '[[SetData]]', []);
3436 if (iter === undefined) return set;
3438 var next = IteratorStep(iter);
3441 var nextValue = IteratorValue(next);
3442 adder.call(set, nextValue);
3448 if (!('Set' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3449 (function() { try { return !new global.Set().entries().next; } catch (_) { return true; } }()) ||
3450 (new global.Set([
1]).size !==
1))
3453 function SetDataIndexOf(setData, key) {
3456 return setData.indexOf(key);
3457 // Slow case for NaN
3458 for (i =
0; i < setData.length; i +=
1)
3459 if (SameValueZero(setData[i], key)) return i;
3463 //
23.2.1.2 new Set ( ...argumentsList )
3464 //
23.2.2 Properties of the Set Constructor
3466 //
23.2.2.1 Set.prototype
3467 var $SetPrototype$ = {};
3468 Set.prototype = $SetPrototype$;
3470 //
23.2.2.2 get Set [ @@species ]
3471 //
23.2.3 Properties of the Set Prototype Object
3473 //
23.2.3.1 Set.prototype.add (value )
3475 Set.prototype, 'add',
3476 function add(value) {
3477 var s = strict(this);
3478 if (Type(s) !== 'object') throw TypeError();
3479 if (!('[[SetData]]' in s)) throw TypeError();
3480 if (s['[[SetData]]'] === undefined) throw TypeError();
3481 if (SameValue(value, -
0)) value =
0;
3482 var entries = s['[[SetData]]'];
3483 var i = SetDataIndexOf(entries, value);
3484 if (i <
0) i = s['[[SetData]]'].length;
3485 s['[[SetData]]'][i] = value;
3490 //
23.2.3.2 Set.prototype.clear ()
3492 Set.prototype, 'clear',
3494 var s = strict(this);
3495 if (Type(s) !== 'object') throw TypeError();
3496 if (!('[[SetData]]' in s)) throw TypeError();
3497 if (s['[[SetData]]'] === undefined) throw TypeError();
3498 var entries = s['[[SetData]]'];
3503 //
23.2.3.3 Set.prototype.constructor
3504 //
23.2.3.4 Set.prototype.delete ( value )
3506 Set.prototype, 'delete',
3507 function delete_(value) {
3508 var s = strict(this);
3509 if (Type(s) !== 'object') throw TypeError();
3510 if (!('[[SetData]]' in s)) throw TypeError();
3511 if (s['[[SetData]]'] === undefined) throw TypeError();
3512 var entries = s['[[SetData]]'];
3513 var i = SetDataIndexOf(entries, value);
3514 if (i <
0) return false;
3519 //
23.2.3.5 Set.prototype.entries ( )
3521 Set.prototype, 'entries',
3522 function entries() {
3523 var s = strict(this);
3524 if (Type(s) !== 'object') throw TypeError();
3525 return CreateSetIterator(s, 'key+value');
3528 //
23.2.3.6 Set.prototype.forEach ( callbackfn [ , thisArg ] )
3530 Set.prototype, 'forEach',
3531 function forEach(callbackfn/*, thisArg*/) {
3532 var thisArg = arguments[
1];
3534 var s = strict(this);
3535 if (Type(s) !== 'object') throw TypeError();
3536 if (!('[[SetData]]' in s)) throw TypeError();
3537 if (s['[[SetData]]'] === undefined) throw TypeError();
3538 var entries = s['[[SetData]]'];
3540 if (!IsCallable(callbackfn)) {
3541 throw TypeError('First argument to forEach is not callable.');
3543 for (var i =
0; i < entries.length; ++i) {
3544 if (entries[i] !== empty) {
3545 callbackfn.call(thisArg, entries[i], entries[i], s);
3550 //
23.2.3.7 Set.prototype.has ( value )
3552 Set.prototype, 'has',
3554 var s = strict(this);
3555 if (Type(s) !== 'object') throw TypeError();
3556 if (!('[[SetData]]' in s)) throw TypeError();
3557 if (s['[[SetData]]'] === undefined) throw TypeError();
3558 var entries = s['[[SetData]]'];
3559 return SetDataIndexOf(entries, key) !== -
1;
3562 //
23.2.3.8 Set.prototype.keys ( )
3563 // See Set.prototype.values
3565 //
23.2.3.9 get Set.prototype.size
3566 Object.defineProperty(
3567 Set.prototype, 'size', {
3569 var s = strict(this);
3570 if (Type(s) !== 'object') throw TypeError();
3571 if (!('[[SetData]]' in s)) throw TypeError();
3572 if (s['[[SetData]]'] === undefined) throw TypeError();
3573 var entries = s['[[SetData]]'];
3575 for (var i =
0; i < entries.length; ++i) {
3576 if (entries[i] !== empty)
3583 //
23.2.3.10 Set.prototype.values ( )
3585 Set.prototype, 'values',
3587 var s = strict(this);
3588 if (Type(s) !== 'object') throw TypeError();
3589 return CreateSetIterator(s, 'value');
3591 // NOTE: function name is still 'values':
3592 Set.prototype.keys = Set.prototype.values;
3594 //
23.2.3.11 Set.prototype [@@iterator ] ( )
3596 Set.prototype, $$iterator,
3598 var s = strict(this);
3599 if (Type(s) !== 'object') throw TypeError();
3600 return CreateSetIterator(s);
3603 //
23.2.3.12 Set.prototype [ @@toStringTag ]
3604 define(global.Set.prototype, $$toStringTag, 'Set');
3606 //
23.2.4 Properties of Set Instances
3607 //
23.2.5 Set Iterator Objects
3609 function SetIterator() {}
3611 //
23.2.5.1 CreateSetIterator Abstract Operation
3612 function CreateSetIterator(set, kind) {
3613 if (Type(set) !== 'object') throw TypeError();
3614 if (!('[[SetData]]' in set)) throw TypeError();
3615 if (set['[[SetData]]'] === undefined) throw TypeError();
3616 var iterator = new SetIterator;
3617 set_internal(iterator, '[[IteratedSet]]', set);
3618 set_internal(iterator, '[[SetNextIndex]]',
0);
3619 set_internal(iterator, '[[SetIterationKind]]', kind);
3623 //
23.2.5.2 The %SetIteratorPrototype% Object
3624 var $SetIteratorPrototype$ = Object.create($IteratorPrototype$);
3625 SetIterator.prototype = $SetIteratorPrototype$;
3627 //
23.2.5.2.1 %SetIteratorPrototype%.next( )
3629 $SetIteratorPrototype$, 'next',
3631 var o = strict(this);
3632 if (Type(o) !== 'object') throw TypeError();
3633 var s = o['[[IteratedSet]]'],
3634 index = o['[[SetNextIndex]]'],
3635 itemKind = o['[[SetIterationKind]]'],
3636 entries = s['[[SetData]]'];
3637 while (index < entries.length) {
3638 var e = entries[index];
3640 set_internal(o, '[[SetNextIndex]]', index);
3642 if (itemKind === 'key+value')
3643 return CreateIterResultObject([e, e], false);
3644 return CreateIterResultObject(e, false);
3647 return CreateIterResultObject(undefined, true);
3650 //
23.2.5.2.2 %SetIteratorPrototype% [ @@toStringTag ]
3651 define($SetIteratorPrototype$, $$toStringTag, 'Set Iterator');
3653 //
23.2.5.3 Properties of Set Iterator Instances
3657 // ---------------------------------------
3658 //
23.3 WeakMap Objects
3659 // ---------------------------------------
3662 //
23.3.1 The WeakMap Constructor
3663 //
23.3.1.1 WeakMap ( [ iterable ] )
3665 function WeakMap(/*iterable*/) {
3666 var map = strict(this);
3667 var iterable = arguments[
0];
3669 if (Type(map) !== 'object') throw TypeError();
3670 if ('[[WeakMapData]]' in map) throw TypeError();
3672 if (iterable !== undefined) {
3673 var adder = map['set'];
3674 if (!IsCallable(adder)) throw TypeError();
3675 var iter = GetIterator(ToObject(iterable));
3677 set_internal(map, '[[WeakMapData]]', new EphemeronTable);
3678 if (iter === undefined) return map;
3680 var next = IteratorStep(iter);
3683 var nextValue = IteratorValue(next);
3684 if (Type(nextValue) !== 'object') throw TypeError();
3685 var k = nextValue[
0];
3686 var v = nextValue[
1];
3687 adder.call(map, k, v);
3693 if (!('WeakMap' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3694 global.WeakMap = WeakMap;
3696 //
23.3.2 Properties of the WeakMap Constructor
3697 //
23.3.2.1 WeakMap.prototype
3698 var $WeakMapPrototype$ = {};
3699 WeakMap.prototype = $WeakMapPrototype$;
3703 //
23.3.2.2 WeakMap[ @@create ] ( )
3704 //
23.3.3 Properties of the WeakMap Prototype Object
3706 //
23.3.3.1 WeakMap.prototype.constructor
3708 //
23.3.3.2 WeakMap.prototype.delete ( key )
3710 WeakMap.prototype, 'delete',
3711 function delete_(key) {
3712 var M = strict(this);
3713 if (Type(M) !== 'object') throw TypeError();
3714 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3715 if (Type(key) !== 'object') throw TypeError('Expected object');
3716 return M['[[WeakMapData]]'].remove(key);
3719 //
23.3.3.3 WeakMap.prototype.get ( key )
3721 WeakMap.prototype, 'get',
3722 function get(key, defaultValue) {
3723 var M = strict(this);
3724 if (Type(M) !== 'object') throw TypeError();
3725 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3726 if (Type(key) !== 'object') throw TypeError('Expected object');
3727 return M['[[WeakMapData]]'].get(key, defaultValue);
3730 //
23.3.3.4 WeakMap.prototype.has ( key )
3732 WeakMap.prototype, 'has',
3734 var M = strict(this);
3735 if (Type(M) !== 'object') throw TypeError();
3736 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3737 if (Type(key) !== 'object') throw TypeError('Expected object');
3738 return M['[[WeakMapData]]'].has(key);
3741 //
23.3.3.5 WeakMap.prototype.set ( key , value )
3743 WeakMap.prototype, 'set',
3744 function set(key, value) {
3745 var M = strict(this);
3746 if (Type(M) !== 'object') throw TypeError();
3747 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3748 if (Type(key) !== 'object') throw TypeError('Expected object');
3749 M['[[WeakMapData]]'].set(key, value);
3753 //
23.3.3.6 WeakMap.prototype [ @@toStringTag ]
3754 define(global.WeakMap.prototype, $$toStringTag, 'WeakMap');
3756 //
23.3.4 Properties of WeakMap Instances
3758 // Polyfills for incomplete native implementations:
3760 var wm = new global.WeakMap();
3761 var orig = global.WeakMap.prototype.set;
3762 define(global.WeakMap.prototype, 'set', function set() {
3763 orig.apply(this, arguments);
3765 }, wm.set({},
0) !== wm);
3769 // ---------------------------------------
3770 //
23.4 WeakSet Objects
3771 // ---------------------------------------
3774 //
23.4.1 The WeakSet Constructor
3775 //
23.4.1.1 WeakSet ( [ iterable ] )
3777 function WeakSet(/*iterable*/) {
3778 var set = strict(this);
3779 var iterable = arguments[
0];
3781 if (Type(set) !== 'object') throw TypeError();
3782 if ('[[WeakSetData]]' in set) throw TypeError();
3784 if (iterable !== undefined) {
3785 var adder = set['add'];
3786 if (!IsCallable(adder)) throw TypeError();
3787 var iter = GetIterator(ToObject(iterable));
3789 set_internal(set, '[[WeakSetData]]', new EphemeronTable);
3790 if (iter === undefined) return set;
3792 var next = IteratorStep(iter);
3795 var nextValue = IteratorValue(next);
3796 adder.call(set, nextValue);
3802 if (!('WeakSet' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3803 global.WeakSet = WeakSet;
3805 //
23.4.2 Properties of the WeakSet Constructor
3806 //
23.4.2.1 WeakSet.prototype
3807 var $WeakSetPrototype$ = {};
3808 WeakSet.prototype = $WeakSetPrototype$;
3810 //
23.4.3 Properties of the WeakSet Prototype Object
3811 //
23.4.3.1 WeakSet.prototype.add (value )
3813 WeakSet.prototype, 'add',
3814 function add(value) {
3815 var S = strict(this);
3816 if (Type(S) !== 'object') throw TypeError();
3817 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3818 if (Type(value) !== 'object') throw TypeError('Expected object');
3819 S['[[WeakSetData]]'].set(value, true);
3823 //
23.4.3.2 WeakSet.prototype.constructor
3824 //
23.4.3.3 WeakSet.prototype.delete ( value )
3826 WeakSet.prototype, 'delete',
3827 function delete_(value) {
3828 var S = strict(this);
3829 if (Type(S) !== 'object') throw TypeError();
3830 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3831 if (Type(value) !== 'object') throw TypeError('Expected object');
3832 return S['[[WeakSetData]]'].remove(value);
3835 //
23.4.3.4 WeakSet.prototype.has ( value )
3837 WeakSet.prototype, 'has',
3839 var S = strict(this);
3840 if (Type(S) !== 'object') throw TypeError();
3841 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3842 if (Type(key) !== 'object') throw TypeError('Expected object');
3843 return S['[[WeakSetData]]'].has(key);
3846 //
23.4.3.5 WeakSet.prototype [ @@toStringTag ]
3847 define(global.WeakSet.prototype, $$toStringTag, 'WeakSet');
3849 //
23.4.4 Properties of WeakSet Instances
3851 // Polyfills for incomplete native implementations:
3853 var ws = new global.WeakSet();
3854 var orig = global.WeakSet.prototype.add;
3855 define(global.WeakSet.prototype, 'add', function add() {
3856 orig.apply(this, arguments);
3858 }, ws.add({}) !== ws);
3862 // ---------------------------------------
3863 //
24 Structured Data
3864 // ---------------------------------------
3866 // ---------------------------------------
3867 //
24.1 ArrayBuffer Objects
3868 // ---------------------------------------
3870 // See typedarray.js for TypedArray polyfill
3873 if (!('ArrayBuffer' in global))
3876 //
24.1.1 Abstract Operations For ArrayBuffer Objects
3877 //
24.1.1.1 AllocateArrayBuffer( constructor, byteLength )
3878 //
24.1.1.2 IsDetachedBuffer( arrayBuffer )
3879 //
24.1.1.3 DetachArrayBuffer( arrayBuffer )
3880 //
24.1.1.4 CloneArrayBuffer( srcBuffer, srcByteOffset [, cloneConstructor] )
3881 //
24.1.1.5 GetValueFromBuffer ( arrayBuffer, byteIndex, type, isLittleEndian )
3882 //
24.1.1.6 SetValueInBuffer ( arrayBuffer, byteIndex, type, value, isLittleEndian )
3883 //
24.1.2 The ArrayBuffer Constructor
3884 //
24.1.2.1 ArrayBuffer( length )
3885 //
24.1.3 Properties of the ArrayBuffer Constructor
3887 //
24.1.3.1 ArrayBuffer.isView ( arg )
3889 ArrayBuffer, 'isView',
3890 function isView(arg) {
3891 if (Type(arg) !== 'object') return false;
3892 if ('buffer' in arg && arg.buffer instanceof ArrayBuffer) return true;
3896 //
24.1.3.2 ArrayBuffer.prototype
3897 //
24.1.3.3 get ArrayBuffer [ @@species ]
3898 //
24.1.4 Properties of the ArrayBuffer Prototype Object
3899 //
24.1.4.1 get ArrayBuffer.prototype.byteLength
3900 //
24.1.4.2 ArrayBuffer.prototype.constructor
3901 //
24.1.4.3 ArrayBuffer.prototype.slice ( start , end)
3903 //
24.1.4.4 ArrayBuffer.prototype [ @@toStringTag ]
3904 define(ArrayBuffer.prototype, $$toStringTag, 'ArrayBuffer');
3906 //
24.1.5 Properties of the ArrayBuffer Instances
3909 // ---------------------------------------
3910 //
24.2 DataView Objects
3911 // ---------------------------------------
3913 // See typedarray.js for TypedArray polyfill
3916 if (!('DataView' in global))
3919 //
24.2.1 Abstract Operations For DataView Objects
3920 //
24.2.1.1 GetViewValue(view, requestIndex, isLittleEndian, type)
3921 //
24.2.1.2 SetViewValue(view, requestIndex, isLittleEndian, type, value)
3922 //
24.2.2 The DataView Constructor
3923 //
24.2.2.1 DataView (buffer [ , byteOffset [ , byteLength ] ] )
3924 //
24.2.3 Properties of the DataView Constructor
3925 //
24.2.3.1 DataView.prototype
3926 //
24.2.4 Properties of the DataView Prototype Object
3927 //
24.2.4.1 get DataView.prototype.buffer
3928 //
24.2.4.2 get DataView.prototype.byteLength
3929 //
24.2.4.3 get DataView.prototype.byteOffset
3930 //
24.2.4.4 DataView.prototype.constructor
3931 //
24.2.4.5 DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] )
3932 //
24.2.4.6 DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] )
3933 //
24.2.4.7 DataView.prototype.getInt8 ( byteOffset )
3934 //
24.2.4.8 DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] )
3935 //
24.2.4.9 DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] )
3936 //
24.2.4.10 DataView.prototype.getUint8 ( byteOffset )
3937 //
24.2.4.11 DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] )
3938 //
24.2.4.12 DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] )
3939 //
24.2.4.13 DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] )
3940 //
24.2.4.14 DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] )
3941 //
24.2.4.15 DataView.prototype.setInt8 ( byteOffset, value )
3942 //
24.2.4.16 DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] )
3943 //
24.2.4.17 DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] )
3944 //
24.2.4.18 DataView.prototype.setUint8 ( byteOffset, value )
3945 //
24.2.4.19 DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] )
3946 //
24.2.4.20 DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] )
3948 //
24.2.4.21 DataView.prototype[ @@toStringTag ]
3949 define(DataView.prototype, $$toStringTag, 'DataView');
3951 //
24.2.5 Properties of DataView Instances
3954 // ---------------------------------------
3955 //
24.3 The JSON Object
3956 // ---------------------------------------
3958 //
24.3.1 JSON.parse ( text [ , reviver ] )
3959 //
24.3.2 JSON.stringify ( value [ , replacer [ , space ] ] )
3960 //
24.3.3 JSON [ @@toStringTag ]
3961 define(JSON, $$toStringTag, 'JSON');
3963 // ---------------------------------------
3965 // ---------------------------------------
3967 //
25.1.1 Common Iteration Interfaces
3968 //
25.1.1.1 The Iterable Interface
3969 //
25.1.1.2 The Iterator Interface
3970 //
25.1.1.3 The IteratorResult Interface
3972 //
25.1.2 The %IteratorPrototype% Object
3973 // Defined earlier, so other prototypes can reference it.
3974 //
25.1.2.1 %IteratorPrototype% [ @@iterator ] ( )
3975 define($IteratorPrototype$, $$iterator, function() {
3980 // ---------------------------------------
3981 //
25.4 Promise Objects
3982 // ---------------------------------------
3985 //
25.4 Promise Objects
3987 //
25.4.1 Promise Abstract Operations
3989 //
25.4.1.1 PromiseCapability Records
3990 //
25.4.1.1.1 IfAbruptRejectPromise ( value, capability )
3992 function IfAbruptRejectPromise(value, capability) {
3993 var rejectResult = capability['[[Reject]]'].call(undefined, value);
3994 return capability['[[Promise]]'];
3997 //
25.4.1.2 PromiseReaction Records
3999 //
25.4.1.3 CreateResolvingFunctions ( promise )
4001 function CreateResolvingFunctions(promise) {
4002 var alreadyResolved = {'[[value]]': false};
4003 var resolve = PromiseResolveFunction();
4004 set_internal(resolve, '[[Promise]]', promise);
4005 set_internal(resolve, '[[AlreadyResolved]]', alreadyResolved);
4006 var reject = PromiseRejectFunction();
4007 set_internal(reject, '[[Promise]]', promise);
4008 set_internal(reject, '[[AlreadyResolved]]', alreadyResolved);
4009 return { '[[Resolve]]': resolve, '[[Reject]]': reject};
4012 //
25.4.1.3.1 Promise Reject Functions
4014 function PromiseRejectFunction() {
4015 var F = function(reason) {
4016 console.assert(Type(F['[[Promise]]']) === 'object');
4017 var promise = F['[[Promise]]'];
4018 var alreadyResolved = F['[[AlreadyResolved]]'];
4019 if (alreadyResolved['[[value]]']) return undefined;
4020 set_internal(alreadyResolved, '[[value]]', true);
4021 return RejectPromise(promise, reason);
4026 //
25.4.1.3.2 Promise Resolve Functions
4028 function PromiseResolveFunction() {
4029 var F = function(resolution) {
4030 console.assert(Type(F['[[Promise]]']) === 'object');
4031 var promise = F['[[Promise]]'];
4032 var alreadyResolved = F['[[AlreadyResolved]]'];
4033 if (alreadyResolved['[[value]]']) return undefined;
4034 set_internal(alreadyResolved, '[[value]]', true);
4036 if (SameValue(resolution, promise)) {
4037 var selfResolutionError = TypeError();
4038 return RejectPromise(promise, selfResolutionError);
4040 if (Type(resolution) !== 'object')
4041 return FulfillPromise(promise, resolution);
4043 var then = resolution['then'];
4045 return RejectPromise(promise, then);
4047 if (!IsCallable(then))
4048 return FulfillPromise(promise, resolution);
4049 EnqueueJob('PromiseJobs', PromiseResolveThenableJob, [promise, resolution, then]);
4055 //
25.4.1.4 FulfillPromise ( promise, value )
4057 function FulfillPromise(promise, value) {
4058 console.assert(promise['[[PromiseState]]'] === 'pending');
4059 var reactions = promise['[[PromiseFulfillReactions]]'];
4060 set_internal(promise, '[[PromiseResult]]', value);
4061 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4062 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4063 set_internal(promise, '[[PromiseState]]', 'fulfilled');
4064 return TriggerPromiseReactions(reactions, value);
4067 //
25.4.1.5 NewPromiseCapability ( C )
4069 function NewPromiseCapability(c) {
4070 // To keep Promise hermetic, this doesn't look much like the spec.
4071 return CreatePromiseCapabilityRecord(undefined, c);
4074 //
25.4.1.5.1 CreatePromiseCapabilityRecord ( promise, constructor )
4076 function CreatePromiseCapabilityRecord(promise, constructor) {
4077 // To keep Promise hermetic, this doesn't look much like the spec.
4078 console.assert(IsConstructor(constructor));
4079 var promiseCapability = {};
4080 set_internal(promiseCapability, '[[Promise]]', promise);
4081 set_internal(promiseCapability, '[[Resolve]]', undefined);
4082 set_internal(promiseCapability, '[[Reject]]', undefined);
4083 var executor = GetCapabilitiesExecutor();
4084 set_internal(executor, '[[Capability]]', promiseCapability);
4086 // NOTE: Differs from spec; object is constructed here
4087 var constructorResult = promise = new constructor(executor);
4088 set_internal(promiseCapability, '[[Promise]]', promise);
4090 if (!IsCallable(promiseCapability['[[Resolve]]'])) throw TypeError();
4091 if (!IsCallable(promiseCapability['[[Reject]]'])) throw TypeError();
4092 if (Type(constructorResult) === 'object' && !SameValue(promise, constructorResult)) throw TypeError();
4093 return promiseCapability;
4096 //
25.4.1.5.2 GetCapabilitiesExecutor Functions
4098 function GetCapabilitiesExecutor() {
4099 var F = function(resolve, reject) {
4100 console.assert(F['[[Capability]]']);
4101 var promiseCapability = F['[[Capability]]'];
4102 if (promiseCapability['[[Resolve]]'] !== undefined) throw TypeError();
4103 if (promiseCapability['[[Reject]]'] !== undefined) throw TypeError();
4104 set_internal(promiseCapability, '[[Resolve]]', resolve);
4105 set_internal(promiseCapability, '[[Reject]]', reject);
4111 //
25.4.1.6 IsPromise ( x )
4113 function IsPromise(x) {
4114 if (Type(x) !== 'object') return false;
4115 if (!('[[PromiseState]]' in x)) return false;
4116 if (x['[[PromiseState]]'] === undefined) return false;
4120 //
25.4.1.7 RejectPromise ( promise, reason )
4122 function RejectPromise(promise, reason) {
4123 console.assert(promise['[[PromiseState]]'] === 'pending');
4124 var reactions = promise['[[PromiseRejectReactions]]'];
4125 set_internal(promise, '[[PromiseResult]]', reason);
4126 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4127 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4128 set_internal(promise, '[[PromiseState]]', 'rejected');
4129 return TriggerPromiseReactions(reactions, reason);
4132 //
25.4.1.8 TriggerPromiseReactions ( reactions, argument )
4134 function TriggerPromiseReactions(reactions, argument) {
4135 for (var i =
0, len = reactions.length; i < len; ++i)
4136 EnqueueJob('PromiseJobs', PromiseReactionJob, [reactions[i], argument]);
4140 //
25.4.2 Promise Jobs
4142 //
25.4.2.1 PromiseReactionJob ( reaction, argument )
4144 function PromiseReactionJob(reaction, argument) {
4145 var promiseCapability = reaction['[[Capabilities]]'];
4146 var handler = reaction['[[Handler]]'];
4147 var handlerResult, status;
4149 if (handler === 'Identity') handlerResult = argument;
4150 else if (handler === 'Thrower') throw argument;
4151 else handlerResult = handler.call(undefined, argument);
4152 } catch (handlerResult) {
4153 status = promiseCapability['[[Reject]]'].call(undefined, handlerResult);
4154 NextJob(status); return;
4156 status = promiseCapability['[[Resolve]]'].call(undefined, handlerResult);
4160 //
25.4.2.2 PromiseResolveThenableJob ( promiseToResolve, thenable, then)
4162 function PromiseResolveThenableJob(promiseToResolve, thenable, then) {
4163 // SPEC BUG: promise vs. promiseToResolve
4164 var resolvingFunctions = CreateResolvingFunctions(promiseToResolve);
4166 var thenCallResult = then.call(thenable, resolvingFunctions['[[Resolve]]'],
4167 resolvingFunctions['[[Reject]]']);
4168 } catch (thenCallResult) {
4169 var status = resolvingFunctions['[[Reject]]'].call(undefined, thenCallResult);
4170 NextJob(status); return;
4172 NextJob(thenCallResult);
4175 //
25.4.3 The Promise Constructor
4177 //
25.4.3.1 Promise ( executor )
4179 function Promise(executor) {
4180 var config = { configurable: false, enumerable: false, writable: true, value: undefined };
4181 Object.defineProperty(this, '[[PromiseState]]', config);
4182 Object.defineProperty(this, '[[PromiseConstructor]]', config);
4183 Object.defineProperty(this, '[[PromiseResult]]', config);
4184 Object.defineProperty(this, '[[PromiseFulfillReactions]]', config);
4185 Object.defineProperty(this, '[[PromiseRejectReactions]]', config);
4188 if (Type(promise) !== 'object') throw new TypeError();
4189 if (!('[[PromiseState]]' in promise)) throw TypeError();
4190 if (promise['[[PromiseState]]'] !== undefined) throw TypeError();
4191 if (!IsCallable(executor)) throw TypeError();
4193 set_internal(promise, '[[PromiseConstructor]]', Promise);
4195 return InitializePromise(promise, executor);
4198 //
25.4.3.1.1 InitializePromise ( promise, executor )
4200 function InitializePromise(promise, executor) {
4201 console.assert('[[PromiseState]]' in promise);
4202 console.assert(IsCallable(executor));
4203 set_internal(promise, '[[PromiseState]]', 'pending');
4204 set_internal(promise, '[[PromiseFulfillReactions]]', []);
4205 set_internal(promise, '[[PromiseRejectReactions]]', []);
4206 var resolvingFunctions = CreateResolvingFunctions(promise);
4208 var completion = executor.call(undefined, resolvingFunctions['[[Resolve]]'],
4209 resolvingFunctions['[[Reject]]']);
4210 } catch (completion) {
4211 var status = resolvingFunctions['[[Reject]]'].call(undefined, completion);
4216 //
25.4.4 Properties of the Promise Constructor
4217 //
25.4.4.1 Promise.all ( iterable )
4219 define(Promise, 'all', function all(iterable) {
4220 var c = strict(this);
4221 var promiseCapability = NewPromiseCapability(c);
4223 var iterator = GetIterator(iterable);
4225 promiseCapability['[[Reject]]'].call(undefined, value);
4226 return promiseCapability['[[Promise]]'];
4229 var remainingElementsCount = { value:
1 };
4233 var next = IteratorStep(iterator);
4235 promiseCapability['[[Reject]]'].call(undefined, value);
4236 return promiseCapability['[[Promise]]'];
4239 remainingElementsCount.value -=
1;
4240 if (remainingElementsCount.value ===
0) {
4241 var resolveResult = promiseCapability['[[Resolve]]'].apply(undefined, values);
4245 return promiseCapability['[[Promise]]'];
4248 var nextValue = IteratorValue(next);
4250 promiseCapability['[[Reject]]'].call(undefined, value);
4251 return promiseCapability['[[Promise]]'];
4254 var nextPromise = c.resolve(nextValue);
4256 promiseCapability['[[Reject]]'].call(undefined, value);
4257 return promiseCapability['[[Promise]]'];
4259 var resolveElement = PromiseAllResolveElementFunction();
4260 set_internal(resolveElement, '[[AlreadyCalled]]', { value: false });
4261 set_internal(resolveElement, '[[Index]]', index);
4262 set_internal(resolveElement, '[[Values]]', values);
4263 set_internal(resolveElement, '[[Capabilities]]', promiseCapability);
4264 set_internal(resolveElement, '[[RemainingElements]]', remainingElementsCount);
4265 remainingElementsCount.value +=
1;
4267 var result = nextPromise.then(resolveElement, promiseCapability['[[Reject]]']);
4269 promiseCapability['[[Reject]]'].call(undefined, value);
4270 return promiseCapability['[[Promise]]'];
4276 //
25.4.4.1.1 Promise.all Resolve Element Functions
4278 function PromiseAllResolveElementFunction() {
4279 var F = function(x) {
4280 var alreadyCalled = F['[[AlreadyCalled]]'];
4281 if (alreadyCalled.value) return undefined;
4282 alreadyCalled.value = true;
4283 var index = F['[[Index]]'];
4284 var values = F['[[Values]]'];
4285 var promiseCapability = F['[[Capabilities]]'];
4286 var remainingElementsCount = F['[[RemainingElements]]'];
4290 promiseCapability['[[Reject]]'].call(undefined, result);
4291 return promiseCapability['[[Promise]]'];
4293 remainingElementsCount.value -=
1;
4294 if (remainingElementsCount.value ===
0)
4295 return promiseCapability['[[Resolve]]'].call(undefined, values);
4301 //
25.4.4.2 Promise.prototype
4303 Promise.prototype = {};
4305 //
25.4.4.3 Promise.race ( iterable )
4307 define(Promise, 'race', function race(iterable) {
4308 var c = strict(this);
4309 var promiseCapability = NewPromiseCapability(c);
4311 var iterator = GetIterator(iterable);
4313 promiseCapability['[[Reject]]'].call(undefined, value);
4314 return promiseCapability['[[Promise]]'];
4318 var next = IteratorStep(iterator);
4320 promiseCapability['[[Reject]]'].call(undefined, value);
4321 return promiseCapability['[[Promise]]'];
4323 if (!next) return promiseCapability['[[Promise]]'];
4325 var nextValue = IteratorValue(next);
4327 promiseCapability['[[Reject]]'].call(undefined, value);
4328 return promiseCapability['[[Promise]]'];
4331 var nextPromise = c.resolve(nextValue);
4333 promiseCapability['[[Reject]]'].call(undefined, value);
4334 return promiseCapability['[[Promise]]'];
4337 nextPromise.then(promiseCapability['[[Resolve]]'], promiseCapability['[[Reject]]']);
4339 promiseCapability['[[Reject]]'].call(undefined, value);
4340 return promiseCapability['[[Promise]]'];
4345 //
25.4.4.4 Promise.reject ( r )
4347 define(Promise, 'reject', function reject(r) {
4348 var c = strict(this);
4349 var promiseCapability = NewPromiseCapability(c);
4350 var rejectResult = promiseCapability['[[Reject]]'].call(undefined, r);
4351 return promiseCapability['[[Promise]]'];
4354 //
25.4.4.5 Promise.resolve ( x )
4356 define(Promise, 'resolve', function resolve(x) {
4357 var c = strict(this);
4359 var constructor = x['[[PromiseConstructor]]'];
4360 if (SameValue(constructor, c)) return x;
4362 var promiseCapability = NewPromiseCapability(c);
4363 var resolveResult = promiseCapability['[[Resolve]]'].call(undefined, x);
4364 return promiseCapability['[[Promise]]'];
4367 //
25.4.4.6 Promise [ @@create ] ( )
4368 //
25.4.4.6.1 AllocatePromise ( constructor )
4369 //
25.4.5 Properties of the Promise Prototype Object
4370 //
25.4.5.1 Promise.prototype.catch ( onRejected )
4372 define(Promise.prototype, 'catch', function catch_(onRejected) {
4374 return promise.then(undefined, onRejected);
4377 //
25.4.5.2 Promise.prototype.constructor
4379 Promise.prototype.constructor = Promise;
4381 //
25.4.5.3 Promise.prototype.then ( onFulfilled , onRejected )
4383 define(Promise.prototype, 'then', function then(onFulfilled, onRejected) {
4385 if (!IsPromise(promise)) throw TypeError();
4386 if (!IsCallable(onFulfilled)) onFulfilled = 'Identity';
4387 if (!IsCallable(onRejected)) onRejected = 'Thrower';
4388 var c = promise.constructor;
4389 var promiseCapability = NewPromiseCapability(c);
4390 var fulfillReaction = { '[[Capabilities]]': promiseCapability,
4391 '[[Handler]]': onFulfilled };
4392 var rejectReaction = { '[[Capabilities]]': promiseCapability,
4393 '[[Handler]]': onRejected };
4394 if (promise['[[PromiseState]]'] === 'pending') {
4395 promise['[[PromiseFulfillReactions]]'].push(fulfillReaction);
4396 promise['[[PromiseRejectReactions]]'].push(rejectReaction);
4397 } else if (promise['[[PromiseState]]'] === 'fulfilled') {
4398 var value = promise['[[PromiseResult]]'];
4399 EnqueueJob('PromiseJobs', PromiseReactionJob, [fulfillReaction, value]);
4400 } else if (promise['[[PromiseState]]'] === 'rejected') {
4401 var reason = promise['[[PromiseResult]]'];
4402 EnqueueJob('PromiseJobs', PromiseReactionJob, [rejectReaction, reason]);
4404 return promiseCapability['[[Promise]]'];
4407 //
25.4.6 Properties of Promise Instances
4409 if (!('Promise' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4410 global.Promise = Promise;
4412 // Patch early Promise.cast vs. Promise.resolve implementations
4413 if ('cast' in global.Promise) global.Promise.resolve = global.Promise.cast;
4416 //
25.4.5.1 Promise.prototype [ @@toStringTag ]
4417 define(Promise.prototype, $$toStringTag, 'Promise');
4419 // ---------------------------------------
4421 // ---------------------------------------
4424 //
26.1 The Reflect Object
4425 if (!('Reflect' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4426 global.Reflect = {};
4428 //
26.1.1 Reflect.apply ( target, thisArgument, argumentsList )
4431 function apply(target, thisArgument, argumentsList) {
4432 if (!IsCallable(target)) throw TypeError();
4433 return Function.prototype.apply.call(target, thisArgument, argumentsList);
4436 //
26.1.2 Reflect.construct ( target, argumentsList [, newTarget] )
4438 Reflect, 'construct',
4439 function construct(target, argumentsList) {
4440 return __cons(target, argumentsList);
4443 //
26.1.3 Reflect.defineProperty ( target, propertyKey, attributes )
4445 Reflect, 'defineProperty',
4446 function defineProperty(target, propertyKey, attributes) {
4448 Object.defineProperty(target, propertyKey, attributes);
4455 //
26.1.4 Reflect.deleteProperty ( target, propertyKey )
4457 Reflect, 'deleteProperty',
4458 function deleteProperty(target,name) {
4460 delete target[name];
4461 return !HasOwnProperty(target, name);
4467 //
26.1.5 Reflect.enumerate ( target )
4469 Reflect, 'enumerate',
4470 function enumerate(target) {
4471 target = ToObject(target);
4472 var iterator = Enumerate(target);
4476 //
26.1.6 Reflect.get ( target, propertyKey [ , receiver ])
4479 function get(target, name, receiver) {
4480 target = ToObject(target);
4481 name = String(name);
4482 receiver = (receiver === undefined) ? target : ToObject(receiver);
4483 var desc = getPropertyDescriptor(target, name);
4484 if (desc && 'get' in desc)
4485 return Function.prototype.call.call(desc['get'], receiver);
4486 return target[name];
4489 //
26.1.7 Reflect.getOwnPropertyDescriptor ( target, propertyKey )
4491 Reflect, 'getOwnPropertyDescriptor',
4492 Object.getOwnPropertyDescriptor);
4494 //
26.1.8 Reflect.getPrototypeOf ( target )
4496 Reflect, 'getPrototypeOf',
4497 Object.getPrototypeOf);
4499 //
26.1.9 Reflect.has ( target, propertyKey )
4502 function has(target,name) {
4503 return String(name) in ToObject(target);
4506 //
26.1.10 Reflect.isExtensible (target)
4508 Reflect, 'isExtensible',
4509 Object.isExtensible);
4511 //
26.1.11 Reflect.ownKeys ( target )
4514 function ownKeys(target) {
4515 var obj = ToObject(target);
4516 return Object.getOwnPropertyNames(obj);
4519 //
26.1.12 Reflect.preventExtensions ( target )
4521 Reflect, 'preventExtensions',
4522 function preventExtensions(target) {
4523 try { Object.preventExtensions(target); return true; } catch (_) { return false; }
4526 //
26.1.13 Reflect.set ( target, propertyKey, V [ , receiver ] )
4529 function set(target, name, value, receiver) {
4530 target = ToObject(target);
4531 name = String(name);
4532 receiver = (receiver === undefined) ? target : ToObject(receiver);
4533 var desc = getPropertyDescriptor(target, name);
4535 if (desc && 'set' in desc)
4536 Function.prototype.call.call(desc['set'], receiver, value);
4538 target[name] = value;
4545 //
26.1.14 Reflect.setPrototypeOf ( target, proto )
4547 Reflect, 'setPrototypeOf',
4548 function setPrototypeOf(target, proto) {
4550 target.__proto__ = proto;
4551 return Reflect.getPrototypeOf(target) === proto;
4559 // ---------------------------------------
4560 //
26.2 Proxy Objects
4561 // ---------------------------------------
4563 // Not polyfillable.
4567 // This helper is defined outside the main scope so that the use of
4568 // 'eval' does not taint the scope for minifiers.
4569 function __cons(t, a) {
4570 return eval('new t(' + a.map(function(_, i) { return 'a[' + i + ']'; }).join(',') + ')');
4573 <script>(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.foo = 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
<r.length;o++)s(r[o]);return s})({
1:[function(require,module,exports){
4576 exports.byteLength = byteLength
4577 exports.toByteArray = toByteArray
4578 exports.fromByteArray = fromByteArray
4582 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
4584 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
4585 for (var i =
0, len = code.length; i < len; ++i) {
4587 revLookup[code.charCodeAt(i)] = i
4590 revLookup['-'.charCodeAt(
0)] =
62
4591 revLookup['_'.charCodeAt(
0)] =
63
4593 function placeHoldersCount (b64) {
4594 var len = b64.length
4596 throw new Error('Invalid string. Length must be a multiple of
4')
4599 // the number of equal signs (place holders)
4600 // if there are two placeholders, than the two characters before it
4601 // represent one byte
4602 // if there is only one, then the three characters before it represent
2 bytes
4603 // this is just a cheap hack to not do indexOf twice
4604 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
4607 function byteLength (b64) {
4608 // base64 is
4/
3 + up to two characters of the original data
4609 return b64.length *
3 /
4 - placeHoldersCount(b64)
4612 function toByteArray (b64) {
4613 var i, j, l, tmp, placeHolders, arr
4614 var len = b64.length
4615 placeHolders = placeHoldersCount(b64)
4617 arr = new Arr(len *
3 /
4 - placeHolders)
4619 // if there are placeholders, only get up to the last complete
4 chars
4620 l = placeHolders
> 0 ? len -
4 : len
4624 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
4625 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
4626 arr[L++] = (tmp
>> 16) &
0xFF
4627 arr[L++] = (tmp
>> 8) &
0xFF
4628 arr[L++] = tmp &
0xFF
4631 if (placeHolders ===
2) {
4632 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
4633 arr[L++] = tmp &
0xFF
4634 } else if (placeHolders ===
1) {
4635 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
4636 arr[L++] = (tmp
>> 8) &
0xFF
4637 arr[L++] = tmp &
0xFF
4643 function tripletToBase64 (num) {
4644 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
4647 function encodeChunk (uint8, start, end) {
4650 for (var i = start; i < end; i +=
3) {
4651 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
4652 output.push(tripletToBase64(tmp))
4654 return output.join('')
4657 function fromByteArray (uint8) {
4659 var len = uint8.length
4660 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
4663 var maxChunkLength =
16383 // must be multiple of
3
4665 // go through the array every three bytes, we'll deal with trailing stuff later
4666 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
4667 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
4670 // pad the end with zeros, but make sure to not forget the extra bytes
4671 if (extraBytes ===
1) {
4672 tmp = uint8[len -
1]
4673 output += lookup[tmp
>> 2]
4674 output += lookup[(tmp <<
4) &
0x3F]
4676 } else if (extraBytes ===
2) {
4677 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
4678 output += lookup[tmp
>> 10]
4679 output += lookup[(tmp
>> 4) &
0x3F]
4680 output += lookup[(tmp <<
2) &
0x3F]
4686 return parts.join('')
4689 },{}],
2:[function(require,module,exports){
4691 * The buffer module from node.js, for the browser.
4693 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
4696 /* eslint-disable no-proto */
4700 var base64 = require('base64-js')
4701 var ieee754 = require('ieee754')
4703 exports.Buffer = Buffer
4704 exports.SlowBuffer = SlowBuffer
4705 exports.INSPECT_MAX_BYTES =
50
4707 var K_MAX_LENGTH =
0x7fffffff
4708 exports.kMaxLength = K_MAX_LENGTH
4711 * If `Buffer.TYPED_ARRAY_SUPPORT`:
4712 * === true Use Uint8Array implementation (fastest)
4713 * === false Print warning and recommend using `buffer` v4.x which has an Object
4714 * implementation (most compatible, even IE6)
4716 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
4717 * Opera
11.6+, iOS
4.2+.
4719 * We report that the browser does not support typed arrays if the are not subclassable
4720 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
4721 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
4722 * for __proto__ and has a buggy typed array implementation.
4724 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
4726 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
4727 typeof console.error === 'function') {
4729 'This browser lacks typed array (Uint8Array) support which is required by ' +
4730 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
4734 function typedArraySupport () {
4735 // Can typed array instances can be augmented?
4737 var arr = new Uint8Array(
1)
4738 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
4739 return arr.foo() ===
42
4745 function createBuffer (length) {
4746 if (length
> K_MAX_LENGTH) {
4747 throw new RangeError('Invalid typed array length')
4749 // Return an augmented `Uint8Array` instance
4750 var buf = new Uint8Array(length)
4751 buf.__proto__ = Buffer.prototype
4756 * The Buffer constructor returns instances of `Uint8Array` that have their
4757 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
4758 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
4759 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
4760 * returns a single octet.
4762 * The `Uint8Array` prototype remains unmodified.
4765 function Buffer (arg, encodingOrOffset, length) {
4767 if (typeof arg === 'number') {
4768 if (typeof encodingOrOffset === 'string') {
4770 'If encoding is specified then the first argument must be a string'
4773 return allocUnsafe(arg)
4775 return from(arg, encodingOrOffset, length)
4778 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
4779 if (typeof Symbol !== 'undefined' && Symbol.species &&
4780 Buffer[Symbol.species] === Buffer) {
4781 Object.defineProperty(Buffer, Symbol.species, {
4789 Buffer.poolSize =
8192 // not used by this implementation
4791 function from (value, encodingOrOffset, length) {
4792 if (typeof value === 'number') {
4793 throw new TypeError('"value" argument must not be a number')
4796 if (value instanceof ArrayBuffer) {
4797 return fromArrayBuffer(value, encodingOrOffset, length)
4800 if (typeof value === 'string') {
4801 return fromString(value, encodingOrOffset)
4804 return fromObject(value)
4808 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
4809 * if value is a number.
4810 * Buffer.from(str[, encoding])
4811 * Buffer.from(array)
4812 * Buffer.from(buffer)
4813 * Buffer.from(arrayBuffer[, byteOffset[, length]])
4815 Buffer.from = function (value, encodingOrOffset, length) {
4816 return from(value, encodingOrOffset, length)
4819 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
4820 // https://github.com/feross/buffer/pull/
148
4821 Buffer.prototype.__proto__ = Uint8Array.prototype
4822 Buffer.__proto__ = Uint8Array
4824 function assertSize (size) {
4825 if (typeof size !== 'number') {
4826 throw new TypeError('"size" argument must be a number')
4827 } else if (size <
0) {
4828 throw new RangeError('"size" argument must not be negative')
4832 function alloc (size, fill, encoding) {
4835 return createBuffer(size)
4837 if (fill !== undefined) {
4838 // Only pay attention to encoding if it's a string. This
4839 // prevents accidentally sending in a number that would
4840 // be interpretted as a start offset.
4841 return typeof encoding === 'string'
4842 ? createBuffer(size).fill(fill, encoding)
4843 : createBuffer(size).fill(fill)
4845 return createBuffer(size)
4849 * Creates a new filled Buffer instance.
4850 * alloc(size[, fill[, encoding]])
4852 Buffer.alloc = function (size, fill, encoding) {
4853 return alloc(size, fill, encoding)
4856 function allocUnsafe (size) {
4858 return createBuffer(size <
0 ?
0 : checked(size) |
0)
4862 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
4864 Buffer.allocUnsafe = function (size) {
4865 return allocUnsafe(size)
4868 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
4870 Buffer.allocUnsafeSlow = function (size) {
4871 return allocUnsafe(size)
4874 function fromString (string, encoding) {
4875 if (typeof encoding !== 'string' || encoding === '') {
4879 if (!Buffer.isEncoding(encoding)) {
4880 throw new TypeError('"encoding" must be a valid string encoding')
4883 var length = byteLength(string, encoding) |
0
4884 var buf = createBuffer(length)
4886 var actual = buf.write(string, encoding)
4888 if (actual !== length) {
4889 // Writing a hex string, for example, that contains invalid characters will
4890 // cause everything after the first invalid character to be ignored. (e.g.
4891 // 'abxxcd' will be treated as 'ab')
4892 buf = buf.slice(
0, actual)
4898 function fromArrayLike (array) {
4899 var length = array.length <
0 ?
0 : checked(array.length) |
0
4900 var buf = createBuffer(length)
4901 for (var i =
0; i < length; i +=
1) {
4902 buf[i] = array[i] &
255
4907 function fromArrayBuffer (array, byteOffset, length) {
4908 if (byteOffset <
0 || array.byteLength < byteOffset) {
4909 throw new RangeError('\'offset\' is out of bounds')
4912 if (array.byteLength < byteOffset + (length ||
0)) {
4913 throw new RangeError('\'length\' is out of bounds')
4917 if (byteOffset === undefined && length === undefined) {
4918 buf = new Uint8Array(array)
4919 } else if (length === undefined) {
4920 buf = new Uint8Array(array, byteOffset)
4922 buf = new Uint8Array(array, byteOffset, length)
4925 // Return an augmented `Uint8Array` instance
4926 buf.__proto__ = Buffer.prototype
4930 function fromObject (obj) {
4931 if (Buffer.isBuffer(obj)) {
4932 var len = checked(obj.length) |
0
4933 var buf = createBuffer(len)
4935 if (buf.length ===
0) {
4939 obj.copy(buf,
0,
0, len)
4944 if (isArrayBufferView(obj) || 'length' in obj) {
4945 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
4946 return createBuffer(
0)
4948 return fromArrayLike(obj)
4951 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
4952 return fromArrayLike(obj.data)
4956 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
4959 function checked (length) {
4960 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
4961 // length is NaN (which is otherwise coerced to zero.)
4962 if (length
>= K_MAX_LENGTH) {
4963 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
4964 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
4969 function SlowBuffer (length) {
4970 if (+length != length) { // eslint-disable-line eqeqeq
4973 return Buffer.alloc(+length)
4976 Buffer.isBuffer = function isBuffer (b) {
4977 return b != null && b._isBuffer === true
4980 Buffer.compare = function compare (a, b) {
4981 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
4982 throw new TypeError('Arguments must be Buffers')
4985 if (a === b) return
0
4990 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
4991 if (a[i] !== b[i]) {
4998 if (x < y) return -
1
5003 Buffer.isEncoding = function isEncoding (encoding) {
5004 switch (String(encoding).toLowerCase()) {
5022 Buffer.concat = function concat (list, length) {
5023 if (!Array.isArray(list)) {
5024 throw new TypeError('"list" argument must be an Array of Buffers')
5027 if (list.length ===
0) {
5028 return Buffer.alloc(
0)
5032 if (length === undefined) {
5034 for (i =
0; i < list.length; ++i) {
5035 length += list[i].length
5039 var buffer = Buffer.allocUnsafe(length)
5041 for (i =
0; i < list.length; ++i) {
5043 if (!Buffer.isBuffer(buf)) {
5044 throw new TypeError('"list" argument must be an Array of Buffers')
5046 buf.copy(buffer, pos)
5052 function byteLength (string, encoding) {
5053 if (Buffer.isBuffer(string)) {
5054 return string.length
5056 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
5057 return string.byteLength
5059 if (typeof string !== 'string') {
5060 string = '' + string
5063 var len = string.length
5064 if (len ===
0) return
0
5066 // Use a for loop to avoid recursion
5067 var loweredCase = false
5077 return utf8ToBytes(string).length
5086 return base64ToBytes(string).length
5088 if (loweredCase) return utf8ToBytes(string).length // assume utf8
5089 encoding = ('' + encoding).toLowerCase()
5094 Buffer.byteLength = byteLength
5096 function slowToString (encoding, start, end) {
5097 var loweredCase = false
5099 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
5100 // property of a typed array.
5102 // This behaves neither like String nor Uint8Array in that we set start/end
5103 // to their upper/lower bounds if the value passed is out of range.
5104 // undefined is handled specially as per ECMA-
262 6th Edition,
5105 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
5106 if (start === undefined || start <
0) {
5109 // Return early if start
> this.length. Done here to prevent potential uint32
5110 // coercion fail below.
5111 if (start
> this.length) {
5115 if (end === undefined || end
> this.length) {
5123 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
5131 if (!encoding) encoding = 'utf8'
5136 return hexSlice(this, start, end)
5140 return utf8Slice(this, start, end)
5143 return asciiSlice(this, start, end)
5147 return latin1Slice(this, start, end)
5150 return base64Slice(this, start, end)
5156 return utf16leSlice(this, start, end)
5159 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5160 encoding = (encoding + '').toLowerCase()
5166 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
5167 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
5168 // reliably in a browserify context because there could be multiple different
5169 // copies of the 'buffer' package in use. This method works even for Buffer
5170 // instances that were created from another copy of the `buffer` package.
5171 // See: https://github.com/feross/buffer/issues/
154
5172 Buffer.prototype._isBuffer = true
5174 function swap (b, n, m) {
5180 Buffer.prototype.swap16 = function swap16 () {
5181 var len = this.length
5182 if (len %
2 !==
0) {
5183 throw new RangeError('Buffer size must be a multiple of
16-bits')
5185 for (var i =
0; i < len; i +=
2) {
5186 swap(this, i, i +
1)
5191 Buffer.prototype.swap32 = function swap32 () {
5192 var len = this.length
5193 if (len %
4 !==
0) {
5194 throw new RangeError('Buffer size must be a multiple of
32-bits')
5196 for (var i =
0; i < len; i +=
4) {
5197 swap(this, i, i +
3)
5198 swap(this, i +
1, i +
2)
5203 Buffer.prototype.swap64 = function swap64 () {
5204 var len = this.length
5205 if (len %
8 !==
0) {
5206 throw new RangeError('Buffer size must be a multiple of
64-bits')
5208 for (var i =
0; i < len; i +=
8) {
5209 swap(this, i, i +
7)
5210 swap(this, i +
1, i +
6)
5211 swap(this, i +
2, i +
5)
5212 swap(this, i +
3, i +
4)
5217 Buffer.prototype.toString = function toString () {
5218 var length = this.length
5219 if (length ===
0) return ''
5220 if (arguments.length ===
0) return utf8Slice(this,
0, length)
5221 return slowToString.apply(this, arguments)
5224 Buffer.prototype.equals = function equals (b) {
5225 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
5226 if (this === b) return true
5227 return Buffer.compare(this, b) ===
0
5230 Buffer.prototype.inspect = function inspect () {
5232 var max = exports.INSPECT_MAX_BYTES
5233 if (this.length
> 0) {
5234 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
5235 if (this.length
> max) str += ' ... '
5237 return '
<Buffer ' + str + '
>'
5240 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
5241 if (!Buffer.isBuffer(target)) {
5242 throw new TypeError('Argument must be a Buffer')
5245 if (start === undefined) {
5248 if (end === undefined) {
5249 end = target ? target.length :
0
5251 if (thisStart === undefined) {
5254 if (thisEnd === undefined) {
5255 thisEnd = this.length
5258 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
5259 throw new RangeError('out of range index')
5262 if (thisStart
>= thisEnd && start
>= end) {
5265 if (thisStart
>= thisEnd) {
5277 if (this === target) return
0
5279 var x = thisEnd - thisStart
5281 var len = Math.min(x, y)
5283 var thisCopy = this.slice(thisStart, thisEnd)
5284 var targetCopy = target.slice(start, end)
5286 for (var i =
0; i < len; ++i) {
5287 if (thisCopy[i] !== targetCopy[i]) {
5294 if (x < y) return -
1
5299 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
5300 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
5303 // - buffer - a Buffer to search
5304 // - val - a string, Buffer, or number
5305 // - byteOffset - an index into `buffer`; will be clamped to an int32
5306 // - encoding - an optional encoding, relevant is val is a string
5307 // - dir - true for indexOf, false for lastIndexOf
5308 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
5309 // Empty buffer means no match
5310 if (buffer.length ===
0) return -
1
5312 // Normalize byteOffset
5313 if (typeof byteOffset === 'string') {
5314 encoding = byteOffset
5316 } else if (byteOffset
> 0x7fffffff) {
5317 byteOffset =
0x7fffffff
5318 } else if (byteOffset < -
0x80000000) {
5319 byteOffset = -
0x80000000
5321 byteOffset = +byteOffset // Coerce to Number.
5322 if (numberIsNaN(byteOffset)) {
5323 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
5324 byteOffset = dir ?
0 : (buffer.length -
1)
5327 // Normalize byteOffset: negative offsets start from the end of the buffer
5328 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
5329 if (byteOffset
>= buffer.length) {
5331 else byteOffset = buffer.length -
1
5332 } else if (byteOffset <
0) {
5333 if (dir) byteOffset =
0
5338 if (typeof val === 'string') {
5339 val = Buffer.from(val, encoding)
5342 // Finally, search either indexOf (if dir is true) or lastIndexOf
5343 if (Buffer.isBuffer(val)) {
5344 // Special case: looking for empty string/buffer always fails
5345 if (val.length ===
0) {
5348 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
5349 } else if (typeof val === 'number') {
5350 val = val &
0xFF // Search for a byte value [
0-
255]
5351 if (typeof Uint8Array.prototype.indexOf === 'function') {
5353 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
5355 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
5358 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
5361 throw new TypeError('val must be string, number or Buffer')
5364 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
5366 var arrLength = arr.length
5367 var valLength = val.length
5369 if (encoding !== undefined) {
5370 encoding = String(encoding).toLowerCase()
5371 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
5372 encoding === 'utf16le' || encoding === 'utf-
16le') {
5373 if (arr.length <
2 || val.length <
2) {
5383 function read (buf, i) {
5384 if (indexSize ===
1) {
5387 return buf.readUInt16BE(i * indexSize)
5394 for (i = byteOffset; i < arrLength; i++) {
5395 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
5396 if (foundIndex === -
1) foundIndex = i
5397 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
5399 if (foundIndex !== -
1) i -= i - foundIndex
5404 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
5405 for (i = byteOffset; i
>=
0; i--) {
5407 for (var j =
0; j < valLength; j++) {
5408 if (read(arr, i + j) !== read(val, j)) {
5420 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
5421 return this.indexOf(val, byteOffset, encoding) !== -
1
5424 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
5425 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
5428 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
5429 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
5432 function hexWrite (buf, string, offset, length) {
5433 offset = Number(offset) ||
0
5434 var remaining = buf.length - offset
5438 length = Number(length)
5439 if (length
> remaining) {
5444 // must be an even number of digits
5445 var strLen = string.length
5446 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
5448 if (length
> strLen /
2) {
5451 for (var i =
0; i < length; ++i) {
5452 var parsed = parseInt(string.substr(i *
2,
2),
16)
5453 if (numberIsNaN(parsed)) return i
5454 buf[offset + i] = parsed
5459 function utf8Write (buf, string, offset, length) {
5460 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
5463 function asciiWrite (buf, string, offset, length) {
5464 return blitBuffer(asciiToBytes(string), buf, offset, length)
5467 function latin1Write (buf, string, offset, length) {
5468 return asciiWrite(buf, string, offset, length)
5471 function base64Write (buf, string, offset, length) {
5472 return blitBuffer(base64ToBytes(string), buf, offset, length)
5475 function ucs2Write (buf, string, offset, length) {
5476 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
5479 Buffer.prototype.write = function write (string, offset, length, encoding) {
5480 // Buffer#write(string)
5481 if (offset === undefined) {
5483 length = this.length
5485 // Buffer#write(string, encoding)
5486 } else if (length === undefined && typeof offset === 'string') {
5488 length = this.length
5490 // Buffer#write(string, offset[, length][, encoding])
5491 } else if (isFinite(offset)) {
5492 offset = offset
>>> 0
5493 if (isFinite(length)) {
5494 length = length
>>> 0
5495 if (encoding === undefined) encoding = 'utf8'
5502 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
5506 var remaining = this.length - offset
5507 if (length === undefined || length
> remaining) length = remaining
5509 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
5510 throw new RangeError('Attempt to write outside buffer bounds')
5513 if (!encoding) encoding = 'utf8'
5515 var loweredCase = false
5519 return hexWrite(this, string, offset, length)
5523 return utf8Write(this, string, offset, length)
5526 return asciiWrite(this, string, offset, length)
5530 return latin1Write(this, string, offset, length)
5533 // Warning: maxLength not taken into account in base64Write
5534 return base64Write(this, string, offset, length)
5540 return ucs2Write(this, string, offset, length)
5543 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5544 encoding = ('' + encoding).toLowerCase()
5550 Buffer.prototype.toJSON = function toJSON () {
5553 data: Array.prototype.slice.call(this._arr || this,
0)
5557 function base64Slice (buf, start, end) {
5558 if (start ===
0 && end === buf.length) {
5559 return base64.fromByteArray(buf)
5561 return base64.fromByteArray(buf.slice(start, end))
5565 function utf8Slice (buf, start, end) {
5566 end = Math.min(buf.length, end)
5571 var firstByte = buf[i]
5572 var codePoint = null
5573 var bytesPerSequence = (firstByte
> 0xEF) ?
4
5574 : (firstByte
> 0xDF) ?
3
5575 : (firstByte
> 0xBF) ?
2
5578 if (i + bytesPerSequence <= end) {
5579 var secondByte, thirdByte, fourthByte, tempCodePoint
5581 switch (bytesPerSequence) {
5583 if (firstByte <
0x80) {
5584 codePoint = firstByte
5588 secondByte = buf[i +
1]
5589 if ((secondByte &
0xC0) ===
0x80) {
5590 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
5591 if (tempCodePoint
> 0x7F) {
5592 codePoint = tempCodePoint
5597 secondByte = buf[i +
1]
5598 thirdByte = buf[i +
2]
5599 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
5600 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
5601 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
5602 codePoint = tempCodePoint
5607 secondByte = buf[i +
1]
5608 thirdByte = buf[i +
2]
5609 fourthByte = buf[i +
3]
5610 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
5611 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
5612 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
5613 codePoint = tempCodePoint
5619 if (codePoint === null) {
5620 // we did not generate a valid codePoint so insert a
5621 // replacement char (U+FFFD) and advance only
1 byte
5623 bytesPerSequence =
1
5624 } else if (codePoint
> 0xFFFF) {
5625 // encode to utf16 (surrogate pair dance)
5626 codePoint -=
0x10000
5627 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
5628 codePoint =
0xDC00 | codePoint &
0x3FF
5632 i += bytesPerSequence
5635 return decodeCodePointsArray(res)
5638 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
5639 // the lowest limit is Chrome, with
0x10000 args.
5640 // We go
1 magnitude less, for safety
5641 var MAX_ARGUMENTS_LENGTH =
0x1000
5643 function decodeCodePointsArray (codePoints) {
5644 var len = codePoints.length
5645 if (len <= MAX_ARGUMENTS_LENGTH) {
5646 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
5649 // Decode in chunks to avoid
"call stack size exceeded".
5653 res += String.fromCharCode.apply(
5655 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
5661 function asciiSlice (buf, start, end) {
5663 end = Math.min(buf.length, end)
5665 for (var i = start; i < end; ++i) {
5666 ret += String.fromCharCode(buf[i] &
0x7F)
5671 function latin1Slice (buf, start, end) {
5673 end = Math.min(buf.length, end)
5675 for (var i = start; i < end; ++i) {
5676 ret += String.fromCharCode(buf[i])
5681 function hexSlice (buf, start, end) {
5682 var len = buf.length
5684 if (!start || start <
0) start =
0
5685 if (!end || end <
0 || end
> len) end = len
5688 for (var i = start; i < end; ++i) {
5689 out += toHex(buf[i])
5694 function utf16leSlice (buf, start, end) {
5695 var bytes = buf.slice(start, end)
5697 for (var i =
0; i < bytes.length; i +=
2) {
5698 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
5703 Buffer.prototype.slice = function slice (start, end) {
5704 var len = this.length
5706 end = end === undefined ? len : ~~end
5710 if (start <
0) start =
0
5711 } else if (start
> len) {
5717 if (end <
0) end =
0
5718 } else if (end
> len) {
5722 if (end < start) end = start
5724 var newBuf = this.subarray(start, end)
5725 // Return an augmented `Uint8Array` instance
5726 newBuf.__proto__ = Buffer.prototype
5731 * Need to make sure that buffer isn't trying to write out of bounds.
5733 function checkOffset (offset, ext, length) {
5734 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
5735 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
5738 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
5739 offset = offset
>>> 0
5740 byteLength = byteLength
>>> 0
5741 if (!noAssert) checkOffset(offset, byteLength, this.length)
5743 var val = this[offset]
5746 while (++i < byteLength && (mul *=
0x100)) {
5747 val += this[offset + i] * mul
5753 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
5754 offset = offset
>>> 0
5755 byteLength = byteLength
>>> 0
5757 checkOffset(offset, byteLength, this.length)
5760 var val = this[offset + --byteLength]
5762 while (byteLength
> 0 && (mul *=
0x100)) {
5763 val += this[offset + --byteLength] * mul
5769 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
5770 offset = offset
>>> 0
5771 if (!noAssert) checkOffset(offset,
1, this.length)
5775 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
5776 offset = offset
>>> 0
5777 if (!noAssert) checkOffset(offset,
2, this.length)
5778 return this[offset] | (this[offset +
1] <<
8)
5781 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
5782 offset = offset
>>> 0
5783 if (!noAssert) checkOffset(offset,
2, this.length)
5784 return (this[offset] <<
8) | this[offset +
1]
5787 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
5788 offset = offset
>>> 0
5789 if (!noAssert) checkOffset(offset,
4, this.length)
5791 return ((this[offset]) |
5792 (this[offset +
1] <<
8) |
5793 (this[offset +
2] <<
16)) +
5794 (this[offset +
3] *
0x1000000)
5797 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
5798 offset = offset
>>> 0
5799 if (!noAssert) checkOffset(offset,
4, this.length)
5801 return (this[offset] *
0x1000000) +
5802 ((this[offset +
1] <<
16) |
5803 (this[offset +
2] <<
8) |
5807 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
5808 offset = offset
>>> 0
5809 byteLength = byteLength
>>> 0
5810 if (!noAssert) checkOffset(offset, byteLength, this.length)
5812 var val = this[offset]
5815 while (++i < byteLength && (mul *=
0x100)) {
5816 val += this[offset + i] * mul
5820 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5825 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
5826 offset = offset
>>> 0
5827 byteLength = byteLength
>>> 0
5828 if (!noAssert) checkOffset(offset, byteLength, this.length)
5832 var val = this[offset + --i]
5833 while (i
> 0 && (mul *=
0x100)) {
5834 val += this[offset + --i] * mul
5838 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5843 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
5844 offset = offset
>>> 0
5845 if (!noAssert) checkOffset(offset,
1, this.length)
5846 if (!(this[offset] &
0x80)) return (this[offset])
5847 return ((
0xff - this[offset] +
1) * -
1)
5850 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
5851 offset = offset
>>> 0
5852 if (!noAssert) checkOffset(offset,
2, this.length)
5853 var val = this[offset] | (this[offset +
1] <<
8)
5854 return (val &
0x8000) ? val |
0xFFFF0000 : val
5857 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
5858 offset = offset
>>> 0
5859 if (!noAssert) checkOffset(offset,
2, this.length)
5860 var val = this[offset +
1] | (this[offset] <<
8)
5861 return (val &
0x8000) ? val |
0xFFFF0000 : val
5864 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
5865 offset = offset
>>> 0
5866 if (!noAssert) checkOffset(offset,
4, this.length)
5868 return (this[offset]) |
5869 (this[offset +
1] <<
8) |
5870 (this[offset +
2] <<
16) |
5871 (this[offset +
3] <<
24)
5874 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
5875 offset = offset
>>> 0
5876 if (!noAssert) checkOffset(offset,
4, this.length)
5878 return (this[offset] <<
24) |
5879 (this[offset +
1] <<
16) |
5880 (this[offset +
2] <<
8) |
5884 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
5885 offset = offset
>>> 0
5886 if (!noAssert) checkOffset(offset,
4, this.length)
5887 return ieee754.read(this, offset, true,
23,
4)
5890 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
5891 offset = offset
>>> 0
5892 if (!noAssert) checkOffset(offset,
4, this.length)
5893 return ieee754.read(this, offset, false,
23,
4)
5896 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
5897 offset = offset
>>> 0
5898 if (!noAssert) checkOffset(offset,
8, this.length)
5899 return ieee754.read(this, offset, true,
52,
8)
5902 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
5903 offset = offset
>>> 0
5904 if (!noAssert) checkOffset(offset,
8, this.length)
5905 return ieee754.read(this, offset, false,
52,
8)
5908 function checkInt (buf, value, offset, ext, max, min) {
5909 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
5910 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
5911 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
5914 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
5916 offset = offset
>>> 0
5917 byteLength = byteLength
>>> 0
5919 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5920 checkInt(this, value, offset, byteLength, maxBytes,
0)
5925 this[offset] = value &
0xFF
5926 while (++i < byteLength && (mul *=
0x100)) {
5927 this[offset + i] = (value / mul) &
0xFF
5930 return offset + byteLength
5933 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
5935 offset = offset
>>> 0
5936 byteLength = byteLength
>>> 0
5938 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5939 checkInt(this, value, offset, byteLength, maxBytes,
0)
5942 var i = byteLength -
1
5944 this[offset + i] = value &
0xFF
5945 while (--i
>=
0 && (mul *=
0x100)) {
5946 this[offset + i] = (value / mul) &
0xFF
5949 return offset + byteLength
5952 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
5954 offset = offset
>>> 0
5955 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
5956 this[offset] = (value &
0xff)
5960 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
5962 offset = offset
>>> 0
5963 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
5964 this[offset] = (value &
0xff)
5965 this[offset +
1] = (value
>>> 8)
5969 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
5971 offset = offset
>>> 0
5972 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
5973 this[offset] = (value
>>> 8)
5974 this[offset +
1] = (value &
0xff)
5978 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
5980 offset = offset
>>> 0
5981 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
5982 this[offset +
3] = (value
>>> 24)
5983 this[offset +
2] = (value
>>> 16)
5984 this[offset +
1] = (value
>>> 8)
5985 this[offset] = (value &
0xff)
5989 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
5991 offset = offset
>>> 0
5992 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
5993 this[offset] = (value
>>> 24)
5994 this[offset +
1] = (value
>>> 16)
5995 this[offset +
2] = (value
>>> 8)
5996 this[offset +
3] = (value &
0xff)
6000 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
6002 offset = offset
>>> 0
6004 var limit = Math.pow(
2, (
8 * byteLength) -
1)
6006 checkInt(this, value, offset, byteLength, limit -
1, -limit)
6012 this[offset] = value &
0xFF
6013 while (++i < byteLength && (mul *=
0x100)) {
6014 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
6017 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
6020 return offset + byteLength
6023 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
6025 offset = offset
>>> 0
6027 var limit = Math.pow(
2, (
8 * byteLength) -
1)
6029 checkInt(this, value, offset, byteLength, limit -
1, -limit)
6032 var i = byteLength -
1
6035 this[offset + i] = value &
0xFF
6036 while (--i
>=
0 && (mul *=
0x100)) {
6037 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
6040 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
6043 return offset + byteLength
6046 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
6048 offset = offset
>>> 0
6049 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
6050 if (value <
0) value =
0xff + value +
1
6051 this[offset] = (value &
0xff)
6055 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
6057 offset = offset
>>> 0
6058 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
6059 this[offset] = (value &
0xff)
6060 this[offset +
1] = (value
>>> 8)
6064 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
6066 offset = offset
>>> 0
6067 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
6068 this[offset] = (value
>>> 8)
6069 this[offset +
1] = (value &
0xff)
6073 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
6075 offset = offset
>>> 0
6076 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
6077 this[offset] = (value &
0xff)
6078 this[offset +
1] = (value
>>> 8)
6079 this[offset +
2] = (value
>>> 16)
6080 this[offset +
3] = (value
>>> 24)
6084 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
6086 offset = offset
>>> 0
6087 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
6088 if (value <
0) value =
0xffffffff + value +
1
6089 this[offset] = (value
>>> 24)
6090 this[offset +
1] = (value
>>> 16)
6091 this[offset +
2] = (value
>>> 8)
6092 this[offset +
3] = (value &
0xff)
6096 function checkIEEE754 (buf, value, offset, ext, max, min) {
6097 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
6098 if (offset <
0) throw new RangeError('Index out of range')
6101 function writeFloat (buf, value, offset, littleEndian, noAssert) {
6103 offset = offset
>>> 0
6105 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
6107 ieee754.write(buf, value, offset, littleEndian,
23,
4)
6111 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
6112 return writeFloat(this, value, offset, true, noAssert)
6115 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
6116 return writeFloat(this, value, offset, false, noAssert)
6119 function writeDouble (buf, value, offset, littleEndian, noAssert) {
6121 offset = offset
>>> 0
6123 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
6125 ieee754.write(buf, value, offset, littleEndian,
52,
8)
6129 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
6130 return writeDouble(this, value, offset, true, noAssert)
6133 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
6134 return writeDouble(this, value, offset, false, noAssert)
6137 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
6138 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
6139 if (!start) start =
0
6140 if (!end && end !==
0) end = this.length
6141 if (targetStart
>= target.length) targetStart = target.length
6142 if (!targetStart) targetStart =
0
6143 if (end
> 0 && end < start) end = start
6145 // Copy
0 bytes; we're done
6146 if (end === start) return
0
6147 if (target.length ===
0 || this.length ===
0) return
0
6149 // Fatal error conditions
6150 if (targetStart <
0) {
6151 throw new RangeError('targetStart out of bounds')
6153 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
6154 if (end <
0) throw new RangeError('sourceEnd out of bounds')
6157 if (end
> this.length) end = this.length
6158 if (target.length - targetStart < end - start) {
6159 end = target.length - targetStart + start
6162 var len = end - start
6165 if (this === target && start < targetStart && targetStart < end) {
6166 // descending copy from end
6167 for (i = len -
1; i
>=
0; --i) {
6168 target[i + targetStart] = this[i + start]
6170 } else if (len <
1000) {
6171 // ascending copy from start
6172 for (i =
0; i < len; ++i) {
6173 target[i + targetStart] = this[i + start]
6176 Uint8Array.prototype.set.call(
6178 this.subarray(start, start + len),
6187 // buffer.fill(number[, offset[, end]])
6188 // buffer.fill(buffer[, offset[, end]])
6189 // buffer.fill(string[, offset[, end]][, encoding])
6190 Buffer.prototype.fill = function fill (val, start, end, encoding) {
6191 // Handle string cases:
6192 if (typeof val === 'string') {
6193 if (typeof start === 'string') {
6197 } else if (typeof end === 'string') {
6201 if (val.length ===
1) {
6202 var code = val.charCodeAt(
0)
6207 if (encoding !== undefined && typeof encoding !== 'string') {
6208 throw new TypeError('encoding must be a string')
6210 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
6211 throw new TypeError('Unknown encoding: ' + encoding)
6213 } else if (typeof val === 'number') {
6217 // Invalid ranges are not set to a default, so can range check early.
6218 if (start <
0 || this.length < start || this.length < end) {
6219 throw new RangeError('Out of range index')
6227 end = end === undefined ? this.length : end
>>> 0
6232 if (typeof val === 'number') {
6233 for (i = start; i < end; ++i) {
6237 var bytes = Buffer.isBuffer(val)
6239 : new Buffer(val, encoding)
6240 var len = bytes.length
6241 for (i =
0; i < end - start; ++i) {
6242 this[i + start] = bytes[i % len]
6252 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
6254 function base64clean (str) {
6255 // Node strips out invalid characters like \n and \t from the string, base64-js does not
6256 str = str.trim().replace(INVALID_BASE64_RE, '')
6257 // Node converts strings with length <
2 to ''
6258 if (str.length <
2) return ''
6259 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
6260 while (str.length %
4 !==
0) {
6266 function toHex (n) {
6267 if (n <
16) return '
0' + n.toString(
16)
6268 return n.toString(
16)
6271 function utf8ToBytes (string, units) {
6272 units = units || Infinity
6274 var length = string.length
6275 var leadSurrogate = null
6278 for (var i =
0; i < length; ++i) {
6279 codePoint = string.charCodeAt(i)
6281 // is surrogate component
6282 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
6283 // last char was a lead
6284 if (!leadSurrogate) {
6286 if (codePoint
> 0xDBFF) {
6288 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6290 } else if (i +
1 === length) {
6292 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6297 leadSurrogate = codePoint
6303 if (codePoint <
0xDC00) {
6304 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6305 leadSurrogate = codePoint
6309 // valid surrogate pair
6310 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
6311 } else if (leadSurrogate) {
6312 // valid bmp char, but last char was a lead
6313 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6316 leadSurrogate = null
6319 if (codePoint <
0x80) {
6320 if ((units -=
1) <
0) break
6321 bytes.push(codePoint)
6322 } else if (codePoint <
0x800) {
6323 if ((units -=
2) <
0) break
6325 codePoint
>> 0x6 |
0xC0,
6326 codePoint &
0x3F |
0x80
6328 } else if (codePoint <
0x10000) {
6329 if ((units -=
3) <
0) break
6331 codePoint
>> 0xC |
0xE0,
6332 codePoint
>> 0x6 &
0x3F |
0x80,
6333 codePoint &
0x3F |
0x80
6335 } else if (codePoint <
0x110000) {
6336 if ((units -=
4) <
0) break
6338 codePoint
>> 0x12 |
0xF0,
6339 codePoint
>> 0xC &
0x3F |
0x80,
6340 codePoint
>> 0x6 &
0x3F |
0x80,
6341 codePoint &
0x3F |
0x80
6344 throw new Error('Invalid code point')
6351 function asciiToBytes (str) {
6353 for (var i =
0; i < str.length; ++i) {
6354 // Node's code seems to be doing this and not &
0x7F..
6355 byteArray.push(str.charCodeAt(i) &
0xFF)
6360 function utf16leToBytes (str, units) {
6363 for (var i =
0; i < str.length; ++i) {
6364 if ((units -=
2) <
0) break
6366 c = str.charCodeAt(i)
6376 function base64ToBytes (str) {
6377 return base64.toByteArray(base64clean(str))
6380 function blitBuffer (src, dst, offset, length) {
6381 for (var i =
0; i < length; ++i) {
6382 if ((i + offset
>= dst.length) || (i
>= src.length)) break
6383 dst[i + offset] = src[i]
6388 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
6389 function isArrayBufferView (obj) {
6390 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
6393 function numberIsNaN (obj) {
6394 return obj !== obj // eslint-disable-line no-self-compare
6397 },{"base64-js":
1,"ieee754":
3}],
3:[function(require,module,exports){
6398 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
6400 var eLen = nBytes *
8 - mLen -
1
6401 var eMax = (
1 << eLen) -
1
6402 var eBias = eMax
>> 1
6404 var i = isLE ? (nBytes -
1) :
0
6405 var d = isLE ? -
1 :
1
6406 var s = buffer[offset + i]
6410 e = s & ((
1 << (-nBits)) -
1)
6413 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6415 m = e & ((
1 << (-nBits)) -
1)
6418 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6422 } else if (e === eMax) {
6423 return m ? NaN : ((s ? -
1 :
1) * Infinity)
6425 m = m + Math.pow(
2, mLen)
6428 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
6431 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
6433 var eLen = nBytes *
8 - mLen -
1
6434 var eMax = (
1 << eLen) -
1
6435 var eBias = eMax
>> 1
6436 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
6437 var i = isLE ?
0 : (nBytes -
1)
6438 var d = isLE ?
1 : -
1
6439 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
6441 value = Math.abs(value)
6443 if (isNaN(value) || value === Infinity) {
6444 m = isNaN(value) ?
1 :
0
6447 e = Math.floor(Math.log(value) / Math.LN2)
6448 if (value * (c = Math.pow(
2, -e)) <
1) {
6452 if (e + eBias
>=
1) {
6455 value += rt * Math.pow(
2,
1 - eBias)
6457 if (value * c
>=
2) {
6462 if (e + eBias
>= eMax) {
6465 } else if (e + eBias
>=
1) {
6466 m = (value * c -
1) * Math.pow(
2, mLen)
6469 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
6474 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
6478 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
6480 buffer[offset + i - d] |= s *
128
6483 },{}],
4:[function(require,module,exports){
6484 window.basex = require('base-x')
6485 },{
"base-x":
5}],
5:[function(require,module,exports){
6487 // Forked from https://github.com/cryptocoinjs/bs58
6488 // Originally written by Mike Hearn for BitcoinJ
6489 // Copyright (c)
2011 Google Inc
6490 // Ported to JavaScript by Stefan Thomas
6491 // Merged Buffer refactorings from base58-native by Stephen Pair
6492 // Copyright (c)
2013 BitPay Inc
6494 var Buffer = require('safe-buffer').Buffer
6496 module.exports = function base (ALPHABET) {
6497 var ALPHABET_MAP = {}
6498 var BASE = ALPHABET.length
6499 var LEADER = ALPHABET.charAt(
0)
6501 // pre-compute lookup table
6502 for (var z =
0; z < ALPHABET.length; z++) {
6503 var x = ALPHABET.charAt(z)
6505 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
6509 function encode (source) {
6510 if (source.length ===
0) return ''
6513 for (var i =
0; i < source.length; ++i) {
6514 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
6515 carry += digits[j] <<
8
6516 digits[j] = carry % BASE
6517 carry = (carry / BASE) |
0
6521 digits.push(carry % BASE)
6522 carry = (carry / BASE) |
0
6528 // deal with leading zeros
6529 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
6530 // convert digits to a string
6531 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
6536 function decodeUnsafe (string) {
6537 if (string.length ===
0) return Buffer.allocUnsafe(
0)
6540 for (var i =
0; i < string.length; i++) {
6541 var value = ALPHABET_MAP[string[i]]
6542 if (value === undefined) return
6544 for (var j =
0, carry = value; j < bytes.length; ++j) {
6545 carry += bytes[j] * BASE
6546 bytes[j] = carry &
0xff
6551 bytes.push(carry &
0xff)
6556 // deal with leading zeros
6557 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
6561 return Buffer.from(bytes.reverse())
6564 function decode (string) {
6565 var buffer = decodeUnsafe(string)
6566 if (buffer) return buffer
6568 throw new Error('Non-base' + BASE + ' character')
6573 decodeUnsafe: decodeUnsafe,
6578 },{"safe-buffer":
6}],
6:[function(require,module,exports){
6579 module.exports = require('buffer')
6581 },{"buffer":
2}]},{},[
4])(
4)
6583 <script>(function (root) {
6586 /***** unorm.js *****/
6589 * UnicodeNormalizer
1.0.0
6590 * Copyright (c)
2008 Matsuza
6591 * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
6592 * $Date:
2008-
06-
05 16:
44:
17 +
0200 (Thu,
05 Jun
2008) $
6596 var DEFAULT_FEATURE = [null,
0, {}];
6597 var CACHE_THRESHOLD =
10;
6598 var SBase =
0xAC00, LBase =
0x1100, VBase =
0x1161, TBase =
0x11A7, LCount =
19, VCount =
21, TCount =
28;
6599 var NCount = VCount * TCount; //
588
6600 var SCount = LCount * NCount; //
11172
6602 var UChar = function(cp, feature){
6603 this.codepoint = cp;
6604 this.feature = feature;
6609 var cacheCounter = [];
6610 for (var i =
0; i <=
0xFF; ++i){
6611 cacheCounter[i] =
0;
6614 function fromCache(next, cp, needFeature){
6615 var ret = cache[cp];
6617 ret = next(cp, needFeature);
6618 if(!!ret.feature && ++cacheCounter[(cp
>> 8) &
0xFF]
> CACHE_THRESHOLD){
6625 function fromData(next, cp, needFeature){
6626 var hash = cp &
0xFF00;
6627 var dunit = UChar.udata[hash] || {};
6629 return f ? new UChar(cp, f) : new UChar(cp, DEFAULT_FEATURE);
6631 function fromCpOnly(next, cp, needFeature){
6632 return !!needFeature ? next(cp, needFeature) : new UChar(cp, null);
6634 function fromRuleBasedJamo(next, cp, needFeature){
6636 if(cp < LBase || (LBase + LCount <= cp && cp < SBase) || (SBase + SCount < cp)){
6637 return next(cp, needFeature);
6639 if(LBase <= cp && cp < LBase + LCount){
6641 var base = (cp - LBase) * VCount;
6642 for (j =
0; j < VCount; ++j){
6643 c[VBase + j] = SBase + TCount * (j + base);
6645 return new UChar(cp, [,,c]);
6648 var SIndex = cp - SBase;
6649 var TIndex = SIndex % TCount;
6652 feature[
0] = [SBase + SIndex - TIndex, TBase + TIndex];
6654 feature[
0] = [LBase + Math.floor(SIndex / NCount), VBase + Math.floor((SIndex % NCount) / TCount)];
6656 for (j =
1; j < TCount; ++j){
6657 feature[
2][TBase + j] = cp + j;
6660 return new UChar(cp, feature);
6662 function fromCpFilter(next, cp, needFeature){
6663 return cp <
60 ||
13311 < cp && cp <
42607 ? new UChar(cp, DEFAULT_FEATURE) : next(cp, needFeature);
6666 var strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData];
6668 UChar.fromCharCode = strategies.reduceRight(function (next, strategy) {
6669 return function (cp, needFeature) {
6670 return strategy(next, cp, needFeature);
6674 UChar.isHighSurrogate = function(cp){
6675 return cp
>=
0xD800 && cp <=
0xDBFF;
6677 UChar.isLowSurrogate = function(cp){
6678 return cp
>=
0xDC00 && cp <=
0xDFFF;
6681 UChar.prototype.prepFeature = function(){
6683 this.feature = UChar.fromCharCode(this.codepoint, true).feature;
6687 UChar.prototype.toString = function(){
6688 if(this.codepoint <
0x10000){
6689 return String.fromCharCode(this.codepoint);
6691 var x = this.codepoint -
0x10000;
6692 return String.fromCharCode(Math.floor(x /
0x400) +
0xD800, x %
0x400 +
0xDC00);
6696 UChar.prototype.getDecomp = function(){
6698 return this.feature[
0] || null;
6701 UChar.prototype.isCompatibility = function(){
6703 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
8));
6705 UChar.prototype.isExclude = function(){
6707 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
9));
6709 UChar.prototype.getCanonicalClass = function(){
6711 return !!this.feature[
1] ? (this.feature[
1] &
0xff) :
0;
6713 UChar.prototype.getComposite = function(following){
6715 if(!this.feature[
2]){
6718 var cp = this.feature[
2][following.codepoint];
6719 return cp ? UChar.fromCharCode(cp) : null;
6722 var UCharIterator = function(str){
6726 UCharIterator.prototype.next = function(){
6727 if(!!this.str && this.cursor < this.str.length){
6728 var cp = this.str.charCodeAt(this.cursor++);
6730 if(UChar.isHighSurrogate(cp) && this.cursor < this.str.length && UChar.isLowSurrogate((d = this.str.charCodeAt(this.cursor)))){
6731 cp = (cp -
0xD800) *
0x400 + (d -
0xDC00) +
0x10000;
6734 return UChar.fromCharCode(cp);
6741 var RecursDecompIterator = function(it, cano){
6743 this.canonical = cano;
6747 RecursDecompIterator.prototype.next = function(){
6748 function recursiveDecomp(cano, uchar){
6749 var decomp = uchar.getDecomp();
6750 if(!!decomp && !(cano && uchar.isCompatibility())){
6752 for(var i =
0; i < decomp.length; ++i){
6753 var a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i]));
6754 ret = ret.concat(a);
6761 if(this.resBuf.length ===
0){
6762 var uchar = this.it.next();
6766 this.resBuf = recursiveDecomp(this.canonical, uchar);
6768 return this.resBuf.shift();
6771 var DecompIterator = function(it){
6776 DecompIterator.prototype.next = function(){
6778 if(this.resBuf.length ===
0){
6780 var uchar = this.it.next();
6784 cc = uchar.getCanonicalClass();
6785 var inspt = this.resBuf.length;
6787 for(; inspt
> 0; --inspt){
6788 var uchar2 = this.resBuf[inspt -
1];
6789 var cc2 = uchar2.getCanonicalClass();
6795 this.resBuf.splice(inspt,
0, uchar);
6798 return this.resBuf.shift();
6801 var CompIterator = function(it){
6805 this.lastClass = null;
6808 CompIterator.prototype.next = function(){
6809 while(this.resBuf.length ===
0){
6810 var uchar = this.it.next();
6812 this.resBuf = this.procBuf;
6816 if(this.procBuf.length ===
0){
6817 this.lastClass = uchar.getCanonicalClass();
6818 this.procBuf.push(uchar);
6820 var starter = this.procBuf[
0];
6821 var composite = starter.getComposite(uchar);
6822 var cc = uchar.getCanonicalClass();
6823 if(!!composite && (this.lastClass < cc || this.lastClass ===
0)){
6824 this.procBuf[
0] = composite;
6827 this.resBuf = this.procBuf;
6830 this.lastClass = cc;
6831 this.procBuf.push(uchar);
6835 return this.resBuf.shift();
6838 var createIterator = function(mode, str){
6841 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true));
6843 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false));
6845 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true)));
6847 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false)));
6849 throw mode +
" is invalid";
6851 var normalize = function(mode, str){
6852 var it = createIterator(mode, str);
6855 while(!!(uchar = it.next())){
6856 ret += uchar.toString();
6863 return normalize(
"NFD", str);
6867 return normalize(
"NFKD", str);
6871 return normalize(
"NFC", str);
6875 return normalize(
"NFKC", str);
6880 0:{
60:[,,{
824:
8814}],
61:[,,{
824:
8800}],
62:[,,{
824:
8815}],
65:[,,{
768:
192,
769:
193,
770:
194,
771:
195,
772:
256,
774:
258,
775:
550,
776:
196,
777:
7842,
778:
197,
780:
461,
783:
512,
785:
514,
803:
7840,
805:
7680,
808:
260}],
66:[,,{
775:
7682,
803:
7684,
817:
7686}],
67:[,,{
769:
262,
770:
264,
775:
266,
780:
268,
807:
199}],
68:[,,{
775:
7690,
780:
270,
803:
7692,
807:
7696,
813:
7698,
817:
7694}],
69:[,,{
768:
200,
769:
201,
770:
202,
771:
7868,
772:
274,
774:
276,
775:
278,
776:
203,
777:
7866,
780:
282,
783:
516,
785:
518,
803:
7864,
807:
552,
808:
280,
813:
7704,
816:
7706}],
70:[,,{
775:
7710}],
71:[,,{
769:
500,
770:
284,
772:
7712,
774:
286,
775:
288,
780:
486,
807:
290}],
72:[,,{
770:
292,
775:
7714,
776:
7718,
780:
542,
803:
7716,
807:
7720,
814:
7722}],
73:[,,{
768:
204,
769:
205,
770:
206,
771:
296,
772:
298,
774:
300,
775:
304,
776:
207,
777:
7880,
780:
463,
783:
520,
785:
522,
803:
7882,
808:
302,
816:
7724}],
74:[,,{
770:
308}],
75:[,,{
769:
7728,
780:
488,
803:
7730,
807:
310,
817:
7732}],
76:[,,{
769:
313,
780:
317,
803:
7734,
807:
315,
813:
7740,
817:
7738}],
77:[,,{
769:
7742,
775:
7744,
803:
7746}],
78:[,,{
768:
504,
769:
323,
771:
209,
775:
7748,
780:
327,
803:
7750,
807:
325,
813:
7754,
817:
7752}],
79:[,,{
768:
210,
769:
211,
770:
212,
771:
213,
772:
332,
774:
334,
775:
558,
776:
214,
777:
7886,
779:
336,
780:
465,
783:
524,
785:
526,
795:
416,
803:
7884,
808:
490}],
80:[,,{
769:
7764,
775:
7766}],
82:[,,{
769:
340,
775:
7768,
780:
344,
783:
528,
785:
530,
803:
7770,
807:
342,
817:
7774}],
83:[,,{
769:
346,
770:
348,
775:
7776,
780:
352,
803:
7778,
806:
536,
807:
350}],
84:[,,{
775:
7786,
780:
356,
803:
7788,
806:
538,
807:
354,
813:
7792,
817:
7790}],
85:[,,{
768:
217,
769:
218,
770:
219,
771:
360,
772:
362,
774:
364,
776:
220,
777:
7910,
778:
366,
779:
368,
780:
467,
783:
532,
785:
534,
795:
431,
803:
7908,
804:
7794,
808:
370,
813:
7798,
816:
7796}],
86:[,,{
771:
7804,
803:
7806}],
87:[,,{
768:
7808,
769:
7810,
770:
372,
775:
7814,
776:
7812,
803:
7816}],
88:[,,{
775:
7818,
776:
7820}],
89:[,,{
768:
7922,
769:
221,
770:
374,
771:
7928,
772:
562,
775:
7822,
776:
376,
777:
7926,
803:
7924}],
90:[,,{
769:
377,
770:
7824,
775:
379,
780:
381,
803:
7826,
817:
7828}],
97:[,,{
768:
224,
769:
225,
770:
226,
771:
227,
772:
257,
774:
259,
775:
551,
776:
228,
777:
7843,
778:
229,
780:
462,
783:
513,
785:
515,
803:
7841,
805:
7681,
808:
261}],
98:[,,{
775:
7683,
803:
7685,
817:
7687}],
99:[,,{
769:
263,
770:
265,
775:
267,
780:
269,
807:
231}],
100:[,,{
775:
7691,
780:
271,
803:
7693,
807:
7697,
813:
7699,
817:
7695}],
101:[,,{
768:
232,
769:
233,
770:
234,
771:
7869,
772:
275,
774:
277,
775:
279,
776:
235,
777:
7867,
780:
283,
783:
517,
785:
519,
803:
7865,
807:
553,
808:
281,
813:
7705,
816:
7707}],
102:[,,{
775:
7711}],
103:[,,{
769:
501,
770:
285,
772:
7713,
774:
287,
775:
289,
780:
487,
807:
291}],
104:[,,{
770:
293,
775:
7715,
776:
7719,
780:
543,
803:
7717,
807:
7721,
814:
7723,
817:
7830}],
105:[,,{
768:
236,
769:
237,
770:
238,
771:
297,
772:
299,
774:
301,
776:
239,
777:
7881,
780:
464,
783:
521,
785:
523,
803:
7883,
808:
303,
816:
7725}],
106:[,,{
770:
309,
780:
496}],
107:[,,{
769:
7729,
780:
489,
803:
7731,
807:
311,
817:
7733}],
108:[,,{
769:
314,
780:
318,
803:
7735,
807:
316,
813:
7741,
817:
7739}],
109:[,,{
769:
7743,
775:
7745,
803:
7747}],
110:[,,{
768:
505,
769:
324,
771:
241,
775:
7749,
780:
328,
803:
7751,
807:
326,
813:
7755,
817:
7753}],
111:[,,{
768:
242,
769:
243,
770:
244,
771:
245,
772:
333,
774:
335,
775:
559,
776:
246,
777:
7887,
779:
337,
780:
466,
783:
525,
785:
527,
795:
417,
803:
7885,
808:
491}],
112:[,,{
769:
7765,
775:
7767}],
114:[,,{
769:
341,
775:
7769,
780:
345,
783:
529,
785:
531,
803:
7771,
807:
343,
817:
7775}],
115:[,,{
769:
347,
770:
349,
775:
7777,
780:
353,
803:
7779,
806:
537,
807:
351}],
116:[,,{
775:
7787,
776:
7831,
780:
357,
803:
7789,
806:
539,
807:
355,
813:
7793,
817:
7791}],
117:[,,{
768:
249,
769:
250,
770:
251,
771:
361,
772:
363,
774:
365,
776:
252,
777:
7911,
778:
367,
779:
369,
780:
468,
783:
533,
785:
535,
795:
432,
803:
7909,
804:
7795,
808:
371,
813:
7799,
816:
7797}],
118:[,,{
771:
7805,
803:
7807}],
119:[,,{
768:
7809,
769:
7811,
770:
373,
775:
7815,
776:
7813,
778:
7832,
803:
7817}],
120:[,,{
775:
7819,
776:
7821}],
121:[,,{
768:
7923,
769:
253,
770:
375,
771:
7929,
772:
563,
775:
7823,
776:
255,
777:
7927,
778:
7833,
803:
7925}],
122:[,,{
769:
378,
770:
7825,
775:
380,
780:
382,
803:
7827,
817:
7829}],
160:[[
32],
256],
168:[[
32,
776],
256,{
768:
8173,
769:
901,
834:
8129}],
170:[[
97],
256],
175:[[
32,
772],
256],
178:[[
50],
256],
179:[[
51],
256],
180:[[
32,
769],
256],
181:[[
956],
256],
184:[[
32,
807],
256],
185:[[
49],
256],
186:[[
111],
256],
188:[[
49,
8260,
52],
256],
189:[[
49,
8260,
50],
256],
190:[[
51,
8260,
52],
256],
192:[[
65,
768]],
193:[[
65,
769]],
194:[[
65,
770],,{
768:
7846,
769:
7844,
771:
7850,
777:
7848}],
195:[[
65,
771]],
196:[[
65,
776],,{
772:
478}],
197:[[
65,
778],,{
769:
506}],
198:[,,{
769:
508,
772:
482}],
199:[[
67,
807],,{
769:
7688}],
200:[[
69,
768]],
201:[[
69,
769]],
202:[[
69,
770],,{
768:
7872,
769:
7870,
771:
7876,
777:
7874}],
203:[[
69,
776]],
204:[[
73,
768]],
205:[[
73,
769]],
206:[[
73,
770]],
207:[[
73,
776],,{
769:
7726}],
209:[[
78,
771]],
210:[[
79,
768]],
211:[[
79,
769]],
212:[[
79,
770],,{
768:
7890,
769:
7888,
771:
7894,
777:
7892}],
213:[[
79,
771],,{
769:
7756,
772:
556,
776:
7758}],
214:[[
79,
776],,{
772:
554}],
216:[,,{
769:
510}],
217:[[
85,
768]],
218:[[
85,
769]],
219:[[
85,
770]],
220:[[
85,
776],,{
768:
475,
769:
471,
772:
469,
780:
473}],
221:[[
89,
769]],
224:[[
97,
768]],
225:[[
97,
769]],
226:[[
97,
770],,{
768:
7847,
769:
7845,
771:
7851,
777:
7849}],
227:[[
97,
771]],
228:[[
97,
776],,{
772:
479}],
229:[[
97,
778],,{
769:
507}],
230:[,,{
769:
509,
772:
483}],
231:[[
99,
807],,{
769:
7689}],
232:[[
101,
768]],
233:[[
101,
769]],
234:[[
101,
770],,{
768:
7873,
769:
7871,
771:
7877,
777:
7875}],
235:[[
101,
776]],
236:[[
105,
768]],
237:[[
105,
769]],
238:[[
105,
770]],
239:[[
105,
776],,{
769:
7727}],
241:[[
110,
771]],
242:[[
111,
768]],
243:[[
111,
769]],
244:[[
111,
770],,{
768:
7891,
769:
7889,
771:
7895,
777:
7893}],
245:[[
111,
771],,{
769:
7757,
772:
557,
776:
7759}],
246:[[
111,
776],,{
772:
555}],
248:[,,{
769:
511}],
249:[[
117,
768]],
250:[[
117,
769]],
251:[[
117,
770]],
252:[[
117,
776],,{
768:
476,
769:
472,
772:
470,
780:
474}],
253:[[
121,
769]],
255:[[
121,
776]]},
6881 256:{
256:[[
65,
772]],
257:[[
97,
772]],
258:[[
65,
774],,{
768:
7856,
769:
7854,
771:
7860,
777:
7858}],
259:[[
97,
774],,{
768:
7857,
769:
7855,
771:
7861,
777:
7859}],
260:[[
65,
808]],
261:[[
97,
808]],
262:[[
67,
769]],
263:[[
99,
769]],
264:[[
67,
770]],
265:[[
99,
770]],
266:[[
67,
775]],
267:[[
99,
775]],
268:[[
67,
780]],
269:[[
99,
780]],
270:[[
68,
780]],
271:[[
100,
780]],
274:[[
69,
772],,{
768:
7700,
769:
7702}],
275:[[
101,
772],,{
768:
7701,
769:
7703}],
276:[[
69,
774]],
277:[[
101,
774]],
278:[[
69,
775]],
279:[[
101,
775]],
280:[[
69,
808]],
281:[[
101,
808]],
282:[[
69,
780]],
283:[[
101,
780]],
284:[[
71,
770]],
285:[[
103,
770]],
286:[[
71,
774]],
287:[[
103,
774]],
288:[[
71,
775]],
289:[[
103,
775]],
290:[[
71,
807]],
291:[[
103,
807]],
292:[[
72,
770]],
293:[[
104,
770]],
296:[[
73,
771]],
297:[[
105,
771]],
298:[[
73,
772]],
299:[[
105,
772]],
300:[[
73,
774]],
301:[[
105,
774]],
302:[[
73,
808]],
303:[[
105,
808]],
304:[[
73,
775]],
306:[[
73,
74],
256],
307:[[
105,
106],
256],
308:[[
74,
770]],
309:[[
106,
770]],
310:[[
75,
807]],
311:[[
107,
807]],
313:[[
76,
769]],
314:[[
108,
769]],
315:[[
76,
807]],
316:[[
108,
807]],
317:[[
76,
780]],
318:[[
108,
780]],
319:[[
76,
183],
256],
320:[[
108,
183],
256],
323:[[
78,
769]],
324:[[
110,
769]],
325:[[
78,
807]],
326:[[
110,
807]],
327:[[
78,
780]],
328:[[
110,
780]],
329:[[
700,
110],
256],
332:[[
79,
772],,{
768:
7760,
769:
7762}],
333:[[
111,
772],,{
768:
7761,
769:
7763}],
334:[[
79,
774]],
335:[[
111,
774]],
336:[[
79,
779]],
337:[[
111,
779]],
340:[[
82,
769]],
341:[[
114,
769]],
342:[[
82,
807]],
343:[[
114,
807]],
344:[[
82,
780]],
345:[[
114,
780]],
346:[[
83,
769],,{
775:
7780}],
347:[[
115,
769],,{
775:
7781}],
348:[[
83,
770]],
349:[[
115,
770]],
350:[[
83,
807]],
351:[[
115,
807]],
352:[[
83,
780],,{
775:
7782}],
353:[[
115,
780],,{
775:
7783}],
354:[[
84,
807]],
355:[[
116,
807]],
356:[[
84,
780]],
357:[[
116,
780]],
360:[[
85,
771],,{
769:
7800}],
361:[[
117,
771],,{
769:
7801}],
362:[[
85,
772],,{
776:
7802}],
363:[[
117,
772],,{
776:
7803}],
364:[[
85,
774]],
365:[[
117,
774]],
366:[[
85,
778]],
367:[[
117,
778]],
368:[[
85,
779]],
369:[[
117,
779]],
370:[[
85,
808]],
371:[[
117,
808]],
372:[[
87,
770]],
373:[[
119,
770]],
374:[[
89,
770]],
375:[[
121,
770]],
376:[[
89,
776]],
377:[[
90,
769]],
378:[[
122,
769]],
379:[[
90,
775]],
380:[[
122,
775]],
381:[[
90,
780]],
382:[[
122,
780]],
383:[[
115],
256,{
775:
7835}],
416:[[
79,
795],,{
768:
7900,
769:
7898,
771:
7904,
777:
7902,
803:
7906}],
417:[[
111,
795],,{
768:
7901,
769:
7899,
771:
7905,
777:
7903,
803:
7907}],
431:[[
85,
795],,{
768:
7914,
769:
7912,
771:
7918,
777:
7916,
803:
7920}],
432:[[
117,
795],,{
768:
7915,
769:
7913,
771:
7919,
777:
7917,
803:
7921}],
439:[,,{
780:
494}],
452:[[
68,
381],
256],
453:[[
68,
382],
256],
454:[[
100,
382],
256],
455:[[
76,
74],
256],
456:[[
76,
106],
256],
457:[[
108,
106],
256],
458:[[
78,
74],
256],
459:[[
78,
106],
256],
460:[[
110,
106],
256],
461:[[
65,
780]],
462:[[
97,
780]],
463:[[
73,
780]],
464:[[
105,
780]],
465:[[
79,
780]],
466:[[
111,
780]],
467:[[
85,
780]],
468:[[
117,
780]],
469:[[
220,
772]],
470:[[
252,
772]],
471:[[
220,
769]],
472:[[
252,
769]],
473:[[
220,
780]],
474:[[
252,
780]],
475:[[
220,
768]],
476:[[
252,
768]],
478:[[
196,
772]],
479:[[
228,
772]],
480:[[
550,
772]],
481:[[
551,
772]],
482:[[
198,
772]],
483:[[
230,
772]],
486:[[
71,
780]],
487:[[
103,
780]],
488:[[
75,
780]],
489:[[
107,
780]],
490:[[
79,
808],,{
772:
492}],
491:[[
111,
808],,{
772:
493}],
492:[[
490,
772]],
493:[[
491,
772]],
494:[[
439,
780]],
495:[[
658,
780]],
496:[[
106,
780]],
497:[[
68,
90],
256],
498:[[
68,
122],
256],
499:[[
100,
122],
256],
500:[[
71,
769]],
501:[[
103,
769]],
504:[[
78,
768]],
505:[[
110,
768]],
506:[[
197,
769]],
507:[[
229,
769]],
508:[[
198,
769]],
509:[[
230,
769]],
510:[[
216,
769]],
511:[[
248,
769]],
66045:[,
220]},
6882 512:{
512:[[
65,
783]],
513:[[
97,
783]],
514:[[
65,
785]],
515:[[
97,
785]],
516:[[
69,
783]],
517:[[
101,
783]],
518:[[
69,
785]],
519:[[
101,
785]],
520:[[
73,
783]],
521:[[
105,
783]],
522:[[
73,
785]],
523:[[
105,
785]],
524:[[
79,
783]],
525:[[
111,
783]],
526:[[
79,
785]],
527:[[
111,
785]],
528:[[
82,
783]],
529:[[
114,
783]],
530:[[
82,
785]],
531:[[
114,
785]],
532:[[
85,
783]],
533:[[
117,
783]],
534:[[
85,
785]],
535:[[
117,
785]],
536:[[
83,
806]],
537:[[
115,
806]],
538:[[
84,
806]],
539:[[
116,
806]],
542:[[
72,
780]],
543:[[
104,
780]],
550:[[
65,
775],,{
772:
480}],
551:[[
97,
775],,{
772:
481}],
552:[[
69,
807],,{
774:
7708}],
553:[[
101,
807],,{
774:
7709}],
554:[[
214,
772]],
555:[[
246,
772]],
556:[[
213,
772]],
557:[[
245,
772]],
558:[[
79,
775],,{
772:
560}],
559:[[
111,
775],,{
772:
561}],
560:[[
558,
772]],
561:[[
559,
772]],
562:[[
89,
772]],
563:[[
121,
772]],
658:[,,{
780:
495}],
688:[[
104],
256],
689:[[
614],
256],
690:[[
106],
256],
691:[[
114],
256],
692:[[
633],
256],
693:[[
635],
256],
694:[[
641],
256],
695:[[
119],
256],
696:[[
121],
256],
728:[[
32,
774],
256],
729:[[
32,
775],
256],
730:[[
32,
778],
256],
731:[[
32,
808],
256],
732:[[
32,
771],
256],
733:[[
32,
779],
256],
736:[[
611],
256],
737:[[
108],
256],
738:[[
115],
256],
739:[[
120],
256],
740:[[
661],
256],
66272:[,
220]},
6883 768:{
768:[,
230],
769:[,
230],
770:[,
230],
771:[,
230],
772:[,
230],
773:[,
230],
774:[,
230],
775:[,
230],
776:[,
230,{
769:
836}],
777:[,
230],
778:[,
230],
779:[,
230],
780:[,
230],
781:[,
230],
782:[,
230],
783:[,
230],
784:[,
230],
785:[,
230],
786:[,
230],
787:[,
230],
788:[,
230],
789:[,
232],
790:[,
220],
791:[,
220],
792:[,
220],
793:[,
220],
794:[,
232],
795:[,
216],
796:[,
220],
797:[,
220],
798:[,
220],
799:[,
220],
800:[,
220],
801:[,
202],
802:[,
202],
803:[,
220],
804:[,
220],
805:[,
220],
806:[,
220],
807:[,
202],
808:[,
202],
809:[,
220],
810:[,
220],
811:[,
220],
812:[,
220],
813:[,
220],
814:[,
220],
815:[,
220],
816:[,
220],
817:[,
220],
818:[,
220],
819:[,
220],
820:[,
1],
821:[,
1],
822:[,
1],
823:[,
1],
824:[,
1],
825:[,
220],
826:[,
220],
827:[,
220],
828:[,
220],
829:[,
230],
830:[,
230],
831:[,
230],
832:[[
768],
230],
833:[[
769],
230],
834:[,
230],
835:[[
787],
230],
836:[[
776,
769],
230],
837:[,
240],
838:[,
230],
839:[,
220],
840:[,
220],
841:[,
220],
842:[,
230],
843:[,
230],
844:[,
230],
845:[,
220],
846:[,
220],
848:[,
230],
849:[,
230],
850:[,
230],
851:[,
220],
852:[,
220],
853:[,
220],
854:[,
220],
855:[,
230],
856:[,
232],
857:[,
220],
858:[,
220],
859:[,
230],
860:[,
233],
861:[,
234],
862:[,
234],
863:[,
233],
864:[,
234],
865:[,
234],
866:[,
233],
867:[,
230],
868:[,
230],
869:[,
230],
870:[,
230],
871:[,
230],
872:[,
230],
873:[,
230],
874:[,
230],
875:[,
230],
876:[,
230],
877:[,
230],
878:[,
230],
879:[,
230],
884:[[
697]],
890:[[
32,
837],
256],
894:[[
59]],
900:[[
32,
769],
256],
901:[[
168,
769]],
902:[[
913,
769]],
903:[[
183]],
904:[[
917,
769]],
905:[[
919,
769]],
906:[[
921,
769]],
908:[[
927,
769]],
910:[[
933,
769]],
911:[[
937,
769]],
912:[[
970,
769]],
913:[,,{
768:
8122,
769:
902,
772:
8121,
774:
8120,
787:
7944,
788:
7945,
837:
8124}],
917:[,,{
768:
8136,
769:
904,
787:
7960,
788:
7961}],
919:[,,{
768:
8138,
769:
905,
787:
7976,
788:
7977,
837:
8140}],
921:[,,{
768:
8154,
769:
906,
772:
8153,
774:
8152,
776:
938,
787:
7992,
788:
7993}],
927:[,,{
768:
8184,
769:
908,
787:
8008,
788:
8009}],
929:[,,{
788:
8172}],
933:[,,{
768:
8170,
769:
910,
772:
8169,
774:
8168,
776:
939,
788:
8025}],
937:[,,{
768:
8186,
769:
911,
787:
8040,
788:
8041,
837:
8188}],
938:[[
921,
776]],
939:[[
933,
776]],
940:[[
945,
769],,{
837:
8116}],
941:[[
949,
769]],
942:[[
951,
769],,{
837:
8132}],
943:[[
953,
769]],
944:[[
971,
769]],
945:[,,{
768:
8048,
769:
940,
772:
8113,
774:
8112,
787:
7936,
788:
7937,
834:
8118,
837:
8115}],
949:[,,{
768:
8050,
769:
941,
787:
7952,
788:
7953}],
951:[,,{
768:
8052,
769:
942,
787:
7968,
788:
7969,
834:
8134,
837:
8131}],
953:[,,{
768:
8054,
769:
943,
772:
8145,
774:
8144,
776:
970,
787:
7984,
788:
7985,
834:
8150}],
959:[,,{
768:
8056,
769:
972,
787:
8000,
788:
8001}],
961:[,,{
787:
8164,
788:
8165}],
965:[,,{
768:
8058,
769:
973,
772:
8161,
774:
8160,
776:
971,
787:
8016,
788:
8017,
834:
8166}],
969:[,,{
768:
8060,
769:
974,
787:
8032,
788:
8033,
834:
8182,
837:
8179}],
970:[[
953,
776],,{
768:
8146,
769:
912,
834:
8151}],
971:[[
965,
776],,{
768:
8162,
769:
944,
834:
8167}],
972:[[
959,
769]],
973:[[
965,
769]],
974:[[
969,
769],,{
837:
8180}],
976:[[
946],
256],
977:[[
952],
256],
978:[[
933],
256,{
769:
979,
776:
980}],
979:[[
978,
769]],
980:[[
978,
776]],
981:[[
966],
256],
982:[[
960],
256],
1008:[[
954],
256],
1009:[[
961],
256],
1010:[[
962],
256],
1012:[[
920],
256],
1013:[[
949],
256],
1017:[[
931],
256],
66422:[,
230],
66423:[,
230],
66424:[,
230],
66425:[,
230],
66426:[,
230]},
6884 1024:{
1024:[[
1045,
768]],
1025:[[
1045,
776]],
1027:[[
1043,
769]],
1030:[,,{
776:
1031}],
1031:[[
1030,
776]],
1036:[[
1050,
769]],
1037:[[
1048,
768]],
1038:[[
1059,
774]],
1040:[,,{
774:
1232,
776:
1234}],
1043:[,,{
769:
1027}],
1045:[,,{
768:
1024,
774:
1238,
776:
1025}],
1046:[,,{
774:
1217,
776:
1244}],
1047:[,,{
776:
1246}],
1048:[,,{
768:
1037,
772:
1250,
774:
1049,
776:
1252}],
1049:[[
1048,
774]],
1050:[,,{
769:
1036}],
1054:[,,{
776:
1254}],
1059:[,,{
772:
1262,
774:
1038,
776:
1264,
779:
1266}],
1063:[,,{
776:
1268}],
1067:[,,{
776:
1272}],
1069:[,,{
776:
1260}],
1072:[,,{
774:
1233,
776:
1235}],
1075:[,,{
769:
1107}],
1077:[,,{
768:
1104,
774:
1239,
776:
1105}],
1078:[,,{
774:
1218,
776:
1245}],
1079:[,,{
776:
1247}],
1080:[,,{
768:
1117,
772:
1251,
774:
1081,
776:
1253}],
1081:[[
1080,
774]],
1082:[,,{
769:
1116}],
1086:[,,{
776:
1255}],
1091:[,,{
772:
1263,
774:
1118,
776:
1265,
779:
1267}],
1095:[,,{
776:
1269}],
1099:[,,{
776:
1273}],
1101:[,,{
776:
1261}],
1104:[[
1077,
768]],
1105:[[
1077,
776]],
1107:[[
1075,
769]],
1110:[,,{
776:
1111}],
1111:[[
1110,
776]],
1116:[[
1082,
769]],
1117:[[
1080,
768]],
1118:[[
1091,
774]],
1140:[,,{
783:
1142}],
1141:[,,{
783:
1143}],
1142:[[
1140,
783]],
1143:[[
1141,
783]],
1155:[,
230],
1156:[,
230],
1157:[,
230],
1158:[,
230],
1159:[,
230],
1217:[[
1046,
774]],
1218:[[
1078,
774]],
1232:[[
1040,
774]],
1233:[[
1072,
774]],
1234:[[
1040,
776]],
1235:[[
1072,
776]],
1238:[[
1045,
774]],
1239:[[
1077,
774]],
1240:[,,{
776:
1242}],
1241:[,,{
776:
1243}],
1242:[[
1240,
776]],
1243:[[
1241,
776]],
1244:[[
1046,
776]],
1245:[[
1078,
776]],
1246:[[
1047,
776]],
1247:[[
1079,
776]],
1250:[[
1048,
772]],
1251:[[
1080,
772]],
1252:[[
1048,
776]],
1253:[[
1080,
776]],
1254:[[
1054,
776]],
1255:[[
1086,
776]],
1256:[,,{
776:
1258}],
1257:[,,{
776:
1259}],
1258:[[
1256,
776]],
1259:[[
1257,
776]],
1260:[[
1069,
776]],
1261:[[
1101,
776]],
1262:[[
1059,
772]],
1263:[[
1091,
772]],
1264:[[
1059,
776]],
1265:[[
1091,
776]],
1266:[[
1059,
779]],
1267:[[
1091,
779]],
1268:[[
1063,
776]],
1269:[[
1095,
776]],
1272:[[
1067,
776]],
1273:[[
1099,
776]]},
6885 1280:{
1415:[[
1381,
1410],
256],
1425:[,
220],
1426:[,
230],
1427:[,
230],
1428:[,
230],
1429:[,
230],
1430:[,
220],
1431:[,
230],
1432:[,
230],
1433:[,
230],
1434:[,
222],
1435:[,
220],
1436:[,
230],
1437:[,
230],
1438:[,
230],
1439:[,
230],
1440:[,
230],
1441:[,
230],
1442:[,
220],
1443:[,
220],
1444:[,
220],
1445:[,
220],
1446:[,
220],
1447:[,
220],
1448:[,
230],
1449:[,
230],
1450:[,
220],
1451:[,
230],
1452:[,
230],
1453:[,
222],
1454:[,
228],
1455:[,
230],
1456:[,
10],
1457:[,
11],
1458:[,
12],
1459:[,
13],
1460:[,
14],
1461:[,
15],
1462:[,
16],
1463:[,
17],
1464:[,
18],
1465:[,
19],
1466:[,
19],
1467:[,
20],
1468:[,
21],
1469:[,
22],
1471:[,
23],
1473:[,
24],
1474:[,
25],
1476:[,
230],
1477:[,
220],
1479:[,
18]},
6886 1536:{
1552:[,
230],
1553:[,
230],
1554:[,
230],
1555:[,
230],
1556:[,
230],
1557:[,
230],
1558:[,
230],
1559:[,
230],
1560:[,
30],
1561:[,
31],
1562:[,
32],
1570:[[
1575,
1619]],
1571:[[
1575,
1620]],
1572:[[
1608,
1620]],
1573:[[
1575,
1621]],
1574:[[
1610,
1620]],
1575:[,,{
1619:
1570,
1620:
1571,
1621:
1573}],
1608:[,,{
1620:
1572}],
1610:[,,{
1620:
1574}],
1611:[,
27],
1612:[,
28],
1613:[,
29],
1614:[,
30],
1615:[,
31],
1616:[,
32],
1617:[,
33],
1618:[,
34],
1619:[,
230],
1620:[,
230],
1621:[,
220],
1622:[,
220],
1623:[,
230],
1624:[,
230],
1625:[,
230],
1626:[,
230],
1627:[,
230],
1628:[,
220],
1629:[,
230],
1630:[,
230],
1631:[,
220],
1648:[,
35],
1653:[[
1575,
1652],
256],
1654:[[
1608,
1652],
256],
1655:[[
1735,
1652],
256],
1656:[[
1610,
1652],
256],
1728:[[
1749,
1620]],
1729:[,,{
1620:
1730}],
1730:[[
1729,
1620]],
1746:[,,{
1620:
1747}],
1747:[[
1746,
1620]],
1749:[,,{
1620:
1728}],
1750:[,
230],
1751:[,
230],
1752:[,
230],
1753:[,
230],
1754:[,
230],
1755:[,
230],
1756:[,
230],
1759:[,
230],
1760:[,
230],
1761:[,
230],
1762:[,
230],
1763:[,
220],
1764:[,
230],
1767:[,
230],
1768:[,
230],
1770:[,
220],
1771:[,
230],
1772:[,
230],
1773:[,
220]},
6887 1792:{
1809:[,
36],
1840:[,
230],
1841:[,
220],
1842:[,
230],
1843:[,
230],
1844:[,
220],
1845:[,
230],
1846:[,
230],
1847:[,
220],
1848:[,
220],
1849:[,
220],
1850:[,
230],
1851:[,
220],
1852:[,
220],
1853:[,
230],
1854:[,
220],
1855:[,
230],
1856:[,
230],
1857:[,
230],
1858:[,
220],
1859:[,
230],
1860:[,
220],
1861:[,
230],
1862:[,
220],
1863:[,
230],
1864:[,
220],
1865:[,
230],
1866:[,
230],
2027:[,
230],
2028:[,
230],
2029:[,
230],
2030:[,
230],
2031:[,
230],
2032:[,
230],
2033:[,
230],
2034:[,
220],
2035:[,
230]},
6888 2048:{
2070:[,
230],
2071:[,
230],
2072:[,
230],
2073:[,
230],
2075:[,
230],
2076:[,
230],
2077:[,
230],
2078:[,
230],
2079:[,
230],
2080:[,
230],
2081:[,
230],
2082:[,
230],
2083:[,
230],
2085:[,
230],
2086:[,
230],
2087:[,
230],
2089:[,
230],
2090:[,
230],
2091:[,
230],
2092:[,
230],
2093:[,
230],
2137:[,
220],
2138:[,
220],
2139:[,
220],
2276:[,
230],
2277:[,
230],
2278:[,
220],
2279:[,
230],
2280:[,
230],
2281:[,
220],
2282:[,
230],
2283:[,
230],
2284:[,
230],
2285:[,
220],
2286:[,
220],
2287:[,
220],
2288:[,
27],
2289:[,
28],
2290:[,
29],
2291:[,
230],
2292:[,
230],
2293:[,
230],
2294:[,
220],
2295:[,
230],
2296:[,
230],
2297:[,
220],
2298:[,
220],
2299:[,
230],
2300:[,
230],
2301:[,
230],
2302:[,
230],
2303:[,
230]},
6889 2304:{
2344:[,,{
2364:
2345}],
2345:[[
2344,
2364]],
2352:[,,{
2364:
2353}],
2353:[[
2352,
2364]],
2355:[,,{
2364:
2356}],
2356:[[
2355,
2364]],
2364:[,
7],
2381:[,
9],
2385:[,
230],
2386:[,
220],
2387:[,
230],
2388:[,
230],
2392:[[
2325,
2364],
512],
2393:[[
2326,
2364],
512],
2394:[[
2327,
2364],
512],
2395:[[
2332,
2364],
512],
2396:[[
2337,
2364],
512],
2397:[[
2338,
2364],
512],
2398:[[
2347,
2364],
512],
2399:[[
2351,
2364],
512],
2492:[,
7],
2503:[,,{
2494:
2507,
2519:
2508}],
2507:[[
2503,
2494]],
2508:[[
2503,
2519]],
2509:[,
9],
2524:[[
2465,
2492],
512],
2525:[[
2466,
2492],
512],
2527:[[
2479,
2492],
512]},
6890 2560:{
2611:[[
2610,
2620],
512],
2614:[[
2616,
2620],
512],
2620:[,
7],
2637:[,
9],
2649:[[
2582,
2620],
512],
2650:[[
2583,
2620],
512],
2651:[[
2588,
2620],
512],
2654:[[
2603,
2620],
512],
2748:[,
7],
2765:[,
9],
68109:[,
220],
68111:[,
230],
68152:[,
230],
68153:[,
1],
68154:[,
220],
68159:[,
9],
68325:[,
230],
68326:[,
220]},
6891 2816:{
2876:[,
7],
2887:[,,{
2878:
2891,
2902:
2888,
2903:
2892}],
2888:[[
2887,
2902]],
2891:[[
2887,
2878]],
2892:[[
2887,
2903]],
2893:[,
9],
2908:[[
2849,
2876],
512],
2909:[[
2850,
2876],
512],
2962:[,,{
3031:
2964}],
2964:[[
2962,
3031]],
3014:[,,{
3006:
3018,
3031:
3020}],
3015:[,,{
3006:
3019}],
3018:[[
3014,
3006]],
3019:[[
3015,
3006]],
3020:[[
3014,
3031]],
3021:[,
9]},
6892 3072:{
3142:[,,{
3158:
3144}],
3144:[[
3142,
3158]],
3149:[,
9],
3157:[,
84],
3158:[,
91],
3260:[,
7],
3263:[,,{
3285:
3264}],
3264:[[
3263,
3285]],
3270:[,,{
3266:
3274,
3285:
3271,
3286:
3272}],
3271:[[
3270,
3285]],
3272:[[
3270,
3286]],
3274:[[
3270,
3266],,{
3285:
3275}],
3275:[[
3274,
3285]],
3277:[,
9]},
6893 3328:{
3398:[,,{
3390:
3402,
3415:
3404}],
3399:[,,{
3390:
3403}],
3402:[[
3398,
3390]],
3403:[[
3399,
3390]],
3404:[[
3398,
3415]],
3405:[,
9],
3530:[,
9],
3545:[,,{
3530:
3546,
3535:
3548,
3551:
3550}],
3546:[[
3545,
3530]],
3548:[[
3545,
3535],,{
3530:
3549}],
3549:[[
3548,
3530]],
3550:[[
3545,
3551]]},
6894 3584:{
3635:[[
3661,
3634],
256],
3640:[,
103],
3641:[,
103],
3642:[,
9],
3656:[,
107],
3657:[,
107],
3658:[,
107],
3659:[,
107],
3763:[[
3789,
3762],
256],
3768:[,
118],
3769:[,
118],
3784:[,
122],
3785:[,
122],
3786:[,
122],
3787:[,
122],
3804:[[
3755,
3737],
256],
3805:[[
3755,
3745],
256]},
6895 3840:{
3852:[[
3851],
256],
3864:[,
220],
3865:[,
220],
3893:[,
220],
3895:[,
220],
3897:[,
216],
3907:[[
3906,
4023],
512],
3917:[[
3916,
4023],
512],
3922:[[
3921,
4023],
512],
3927:[[
3926,
4023],
512],
3932:[[
3931,
4023],
512],
3945:[[
3904,
4021],
512],
3953:[,
129],
3954:[,
130],
3955:[[
3953,
3954],
512],
3956:[,
132],
3957:[[
3953,
3956],
512],
3958:[[
4018,
3968],
512],
3959:[[
4018,
3969],
256],
3960:[[
4019,
3968],
512],
3961:[[
4019,
3969],
256],
3962:[,
130],
3963:[,
130],
3964:[,
130],
3965:[,
130],
3968:[,
130],
3969:[[
3953,
3968],
512],
3970:[,
230],
3971:[,
230],
3972:[,
9],
3974:[,
230],
3975:[,
230],
3987:[[
3986,
4023],
512],
3997:[[
3996,
4023],
512],
4002:[[
4001,
4023],
512],
4007:[[
4006,
4023],
512],
4012:[[
4011,
4023],
512],
4025:[[
3984,
4021],
512],
4038:[,
220]},
6896 4096:{
4133:[,,{
4142:
4134}],
4134:[[
4133,
4142]],
4151:[,
7],
4153:[,
9],
4154:[,
9],
4237:[,
220],
4348:[[
4316],
256],
69702:[,
9],
69759:[,
9],
69785:[,,{
69818:
69786}],
69786:[[
69785,
69818]],
69787:[,,{
69818:
69788}],
69788:[[
69787,
69818]],
69797:[,,{
69818:
69803}],
69803:[[
69797,
69818]],
69817:[,
9],
69818:[,
7]},
6897 4352:{
69888:[,
230],
69889:[,
230],
69890:[,
230],
69934:[[
69937,
69927]],
69935:[[
69938,
69927]],
69937:[,,{
69927:
69934}],
69938:[,,{
69927:
69935}],
69939:[,
9],
69940:[,
9],
70003:[,
7],
70080:[,
9]},
6898 4608:{
70197:[,
9],
70198:[,
7],
70377:[,
7],
70378:[,
9]},
6899 4864:{
4957:[,
230],
4958:[,
230],
4959:[,
230],
70460:[,
7],
70471:[,,{
70462:
70475,
70487:
70476}],
70475:[[
70471,
70462]],
70476:[[
70471,
70487]],
70477:[,
9],
70502:[,
230],
70503:[,
230],
70504:[,
230],
70505:[,
230],
70506:[,
230],
70507:[,
230],
70508:[,
230],
70512:[,
230],
70513:[,
230],
70514:[,
230],
70515:[,
230],
70516:[,
230]},
6900 5120:{
70841:[,,{
70832:
70844,
70842:
70843,
70845:
70846}],
70843:[[
70841,
70842]],
70844:[[
70841,
70832]],
70846:[[
70841,
70845]],
70850:[,
9],
70851:[,
7]},
6901 5376:{
71096:[,,{
71087:
71098}],
71097:[,,{
71087:
71099}],
71098:[[
71096,
71087]],
71099:[[
71097,
71087]],
71103:[,
9],
71104:[,
7]},
6902 5632:{
71231:[,
9],
71350:[,
9],
71351:[,
7]},
6903 5888:{
5908:[,
9],
5940:[,
9],
6098:[,
9],
6109:[,
230]},
6905 6400:{
6457:[,
222],
6458:[,
230],
6459:[,
220]},
6906 6656:{
6679:[,
230],
6680:[,
220],
6752:[,
9],
6773:[,
230],
6774:[,
230],
6775:[,
230],
6776:[,
230],
6777:[,
230],
6778:[,
230],
6779:[,
230],
6780:[,
230],
6783:[,
220],
6832:[,
230],
6833:[,
230],
6834:[,
230],
6835:[,
230],
6836:[,
230],
6837:[,
220],
6838:[,
220],
6839:[,
220],
6840:[,
220],
6841:[,
220],
6842:[,
220],
6843:[,
230],
6844:[,
230],
6845:[,
220]},
6907 6912:{
6917:[,,{
6965:
6918}],
6918:[[
6917,
6965]],
6919:[,,{
6965:
6920}],
6920:[[
6919,
6965]],
6921:[,,{
6965:
6922}],
6922:[[
6921,
6965]],
6923:[,,{
6965:
6924}],
6924:[[
6923,
6965]],
6925:[,,{
6965:
6926}],
6926:[[
6925,
6965]],
6929:[,,{
6965:
6930}],
6930:[[
6929,
6965]],
6964:[,
7],
6970:[,,{
6965:
6971}],
6971:[[
6970,
6965]],
6972:[,,{
6965:
6973}],
6973:[[
6972,
6965]],
6974:[,,{
6965:
6976}],
6975:[,,{
6965:
6977}],
6976:[[
6974,
6965]],
6977:[[
6975,
6965]],
6978:[,,{
6965:
6979}],
6979:[[
6978,
6965]],
6980:[,
9],
7019:[,
230],
7020:[,
220],
7021:[,
230],
7022:[,
230],
7023:[,
230],
7024:[,
230],
7025:[,
230],
7026:[,
230],
7027:[,
230],
7082:[,
9],
7083:[,
9],
7142:[,
7],
7154:[,
9],
7155:[,
9]},
6908 7168:{
7223:[,
7],
7376:[,
230],
7377:[,
230],
7378:[,
230],
7380:[,
1],
7381:[,
220],
7382:[,
220],
7383:[,
220],
7384:[,
220],
7385:[,
220],
7386:[,
230],
7387:[,
230],
7388:[,
220],
7389:[,
220],
7390:[,
220],
7391:[,
220],
7392:[,
230],
7394:[,
1],
7395:[,
1],
7396:[,
1],
7397:[,
1],
7398:[,
1],
7399:[,
1],
7400:[,
1],
7405:[,
220],
7412:[,
230],
7416:[,
230],
7417:[,
230]},
6909 7424:{
7468:[[
65],
256],
7469:[[
198],
256],
7470:[[
66],
256],
7472:[[
68],
256],
7473:[[
69],
256],
7474:[[
398],
256],
7475:[[
71],
256],
7476:[[
72],
256],
7477:[[
73],
256],
7478:[[
74],
256],
7479:[[
75],
256],
7480:[[
76],
256],
7481:[[
77],
256],
7482:[[
78],
256],
7484:[[
79],
256],
7485:[[
546],
256],
7486:[[
80],
256],
7487:[[
82],
256],
7488:[[
84],
256],
7489:[[
85],
256],
7490:[[
87],
256],
7491:[[
97],
256],
7492:[[
592],
256],
7493:[[
593],
256],
7494:[[
7426],
256],
7495:[[
98],
256],
7496:[[
100],
256],
7497:[[
101],
256],
7498:[[
601],
256],
7499:[[
603],
256],
7500:[[
604],
256],
7501:[[
103],
256],
7503:[[
107],
256],
7504:[[
109],
256],
7505:[[
331],
256],
7506:[[
111],
256],
7507:[[
596],
256],
7508:[[
7446],
256],
7509:[[
7447],
256],
7510:[[
112],
256],
7511:[[
116],
256],
7512:[[
117],
256],
7513:[[
7453],
256],
7514:[[
623],
256],
7515:[[
118],
256],
7516:[[
7461],
256],
7517:[[
946],
256],
7518:[[
947],
256],
7519:[[
948],
256],
7520:[[
966],
256],
7521:[[
967],
256],
7522:[[
105],
256],
7523:[[
114],
256],
7524:[[
117],
256],
7525:[[
118],
256],
7526:[[
946],
256],
7527:[[
947],
256],
7528:[[
961],
256],
7529:[[
966],
256],
7530:[[
967],
256],
7544:[[
1085],
256],
7579:[[
594],
256],
7580:[[
99],
256],
7581:[[
597],
256],
7582:[[
240],
256],
7583:[[
604],
256],
7584:[[
102],
256],
7585:[[
607],
256],
7586:[[
609],
256],
7587:[[
613],
256],
7588:[[
616],
256],
7589:[[
617],
256],
7590:[[
618],
256],
7591:[[
7547],
256],
7592:[[
669],
256],
7593:[[
621],
256],
7594:[[
7557],
256],
7595:[[
671],
256],
7596:[[
625],
256],
7597:[[
624],
256],
7598:[[
626],
256],
7599:[[
627],
256],
7600:[[
628],
256],
7601:[[
629],
256],
7602:[[
632],
256],
7603:[[
642],
256],
7604:[[
643],
256],
7605:[[
427],
256],
7606:[[
649],
256],
7607:[[
650],
256],
7608:[[
7452],
256],
7609:[[
651],
256],
7610:[[
652],
256],
7611:[[
122],
256],
7612:[[
656],
256],
7613:[[
657],
256],
7614:[[
658],
256],
7615:[[
952],
256],
7616:[,
230],
7617:[,
230],
7618:[,
220],
7619:[,
230],
7620:[,
230],
7621:[,
230],
7622:[,
230],
7623:[,
230],
7624:[,
230],
7625:[,
230],
7626:[,
220],
7627:[,
230],
7628:[,
230],
7629:[,
234],
7630:[,
214],
7631:[,
220],
7632:[,
202],
7633:[,
230],
7634:[,
230],
7635:[,
230],
7636:[,
230],
7637:[,
230],
7638:[,
230],
7639:[,
230],
7640:[,
230],
7641:[,
230],
7642:[,
230],
7643:[,
230],
7644:[,
230],
7645:[,
230],
7646:[,
230],
7647:[,
230],
7648:[,
230],
7649:[,
230],
7650:[,
230],
7651:[,
230],
7652:[,
230],
7653:[,
230],
7654:[,
230],
7655:[,
230],
7656:[,
230],
7657:[,
230],
7658:[,
230],
7659:[,
230],
7660:[,
230],
7661:[,
230],
7662:[,
230],
7663:[,
230],
7664:[,
230],
7665:[,
230],
7666:[,
230],
7667:[,
230],
7668:[,
230],
7669:[,
230],
7676:[,
233],
7677:[,
220],
7678:[,
230],
7679:[,
220]},
6910 7680:{
7680:[[
65,
805]],
7681:[[
97,
805]],
7682:[[
66,
775]],
7683:[[
98,
775]],
7684:[[
66,
803]],
7685:[[
98,
803]],
7686:[[
66,
817]],
7687:[[
98,
817]],
7688:[[
199,
769]],
7689:[[
231,
769]],
7690:[[
68,
775]],
7691:[[
100,
775]],
7692:[[
68,
803]],
7693:[[
100,
803]],
7694:[[
68,
817]],
7695:[[
100,
817]],
7696:[[
68,
807]],
7697:[[
100,
807]],
7698:[[
68,
813]],
7699:[[
100,
813]],
7700:[[
274,
768]],
7701:[[
275,
768]],
7702:[[
274,
769]],
7703:[[
275,
769]],
7704:[[
69,
813]],
7705:[[
101,
813]],
7706:[[
69,
816]],
7707:[[
101,
816]],
7708:[[
552,
774]],
7709:[[
553,
774]],
7710:[[
70,
775]],
7711:[[
102,
775]],
7712:[[
71,
772]],
7713:[[
103,
772]],
7714:[[
72,
775]],
7715:[[
104,
775]],
7716:[[
72,
803]],
7717:[[
104,
803]],
7718:[[
72,
776]],
7719:[[
104,
776]],
7720:[[
72,
807]],
7721:[[
104,
807]],
7722:[[
72,
814]],
7723:[[
104,
814]],
7724:[[
73,
816]],
7725:[[
105,
816]],
7726:[[
207,
769]],
7727:[[
239,
769]],
7728:[[
75,
769]],
7729:[[
107,
769]],
7730:[[
75,
803]],
7731:[[
107,
803]],
7732:[[
75,
817]],
7733:[[
107,
817]],
7734:[[
76,
803],,{
772:
7736}],
7735:[[
108,
803],,{
772:
7737}],
7736:[[
7734,
772]],
7737:[[
7735,
772]],
7738:[[
76,
817]],
7739:[[
108,
817]],
7740:[[
76,
813]],
7741:[[
108,
813]],
7742:[[
77,
769]],
7743:[[
109,
769]],
7744:[[
77,
775]],
7745:[[
109,
775]],
7746:[[
77,
803]],
7747:[[
109,
803]],
7748:[[
78,
775]],
7749:[[
110,
775]],
7750:[[
78,
803]],
7751:[[
110,
803]],
7752:[[
78,
817]],
7753:[[
110,
817]],
7754:[[
78,
813]],
7755:[[
110,
813]],
7756:[[
213,
769]],
7757:[[
245,
769]],
7758:[[
213,
776]],
7759:[[
245,
776]],
7760:[[
332,
768]],
7761:[[
333,
768]],
7762:[[
332,
769]],
7763:[[
333,
769]],
7764:[[
80,
769]],
7765:[[
112,
769]],
7766:[[
80,
775]],
7767:[[
112,
775]],
7768:[[
82,
775]],
7769:[[
114,
775]],
7770:[[
82,
803],,{
772:
7772}],
7771:[[
114,
803],,{
772:
7773}],
7772:[[
7770,
772]],
7773:[[
7771,
772]],
7774:[[
82,
817]],
7775:[[
114,
817]],
7776:[[
83,
775]],
7777:[[
115,
775]],
7778:[[
83,
803],,{
775:
7784}],
7779:[[
115,
803],,{
775:
7785}],
7780:[[
346,
775]],
7781:[[
347,
775]],
7782:[[
352,
775]],
7783:[[
353,
775]],
7784:[[
7778,
775]],
7785:[[
7779,
775]],
7786:[[
84,
775]],
7787:[[
116,
775]],
7788:[[
84,
803]],
7789:[[
116,
803]],
7790:[[
84,
817]],
7791:[[
116,
817]],
7792:[[
84,
813]],
7793:[[
116,
813]],
7794:[[
85,
804]],
7795:[[
117,
804]],
7796:[[
85,
816]],
7797:[[
117,
816]],
7798:[[
85,
813]],
7799:[[
117,
813]],
7800:[[
360,
769]],
7801:[[
361,
769]],
7802:[[
362,
776]],
7803:[[
363,
776]],
7804:[[
86,
771]],
7805:[[
118,
771]],
7806:[[
86,
803]],
7807:[[
118,
803]],
7808:[[
87,
768]],
7809:[[
119,
768]],
7810:[[
87,
769]],
7811:[[
119,
769]],
7812:[[
87,
776]],
7813:[[
119,
776]],
7814:[[
87,
775]],
7815:[[
119,
775]],
7816:[[
87,
803]],
7817:[[
119,
803]],
7818:[[
88,
775]],
7819:[[
120,
775]],
7820:[[
88,
776]],
7821:[[
120,
776]],
7822:[[
89,
775]],
7823:[[
121,
775]],
7824:[[
90,
770]],
7825:[[
122,
770]],
7826:[[
90,
803]],
7827:[[
122,
803]],
7828:[[
90,
817]],
7829:[[
122,
817]],
7830:[[
104,
817]],
7831:[[
116,
776]],
7832:[[
119,
778]],
7833:[[
121,
778]],
7834:[[
97,
702],
256],
7835:[[
383,
775]],
7840:[[
65,
803],,{
770:
7852,
774:
7862}],
7841:[[
97,
803],,{
770:
7853,
774:
7863}],
7842:[[
65,
777]],
7843:[[
97,
777]],
7844:[[
194,
769]],
7845:[[
226,
769]],
7846:[[
194,
768]],
7847:[[
226,
768]],
7848:[[
194,
777]],
7849:[[
226,
777]],
7850:[[
194,
771]],
7851:[[
226,
771]],
7852:[[
7840,
770]],
7853:[[
7841,
770]],
7854:[[
258,
769]],
7855:[[
259,
769]],
7856:[[
258,
768]],
7857:[[
259,
768]],
7858:[[
258,
777]],
7859:[[
259,
777]],
7860:[[
258,
771]],
7861:[[
259,
771]],
7862:[[
7840,
774]],
7863:[[
7841,
774]],
7864:[[
69,
803],,{
770:
7878}],
7865:[[
101,
803],,{
770:
7879}],
7866:[[
69,
777]],
7867:[[
101,
777]],
7868:[[
69,
771]],
7869:[[
101,
771]],
7870:[[
202,
769]],
7871:[[
234,
769]],
7872:[[
202,
768]],
7873:[[
234,
768]],
7874:[[
202,
777]],
7875:[[
234,
777]],
7876:[[
202,
771]],
7877:[[
234,
771]],
7878:[[
7864,
770]],
7879:[[
7865,
770]],
7880:[[
73,
777]],
7881:[[
105,
777]],
7882:[[
73,
803]],
7883:[[
105,
803]],
7884:[[
79,
803],,{
770:
7896}],
7885:[[
111,
803],,{
770:
7897}],
7886:[[
79,
777]],
7887:[[
111,
777]],
7888:[[
212,
769]],
7889:[[
244,
769]],
7890:[[
212,
768]],
7891:[[
244,
768]],
7892:[[
212,
777]],
7893:[[
244,
777]],
7894:[[
212,
771]],
7895:[[
244,
771]],
7896:[[
7884,
770]],
7897:[[
7885,
770]],
7898:[[
416,
769]],
7899:[[
417,
769]],
7900:[[
416,
768]],
7901:[[
417,
768]],
7902:[[
416,
777]],
7903:[[
417,
777]],
7904:[[
416,
771]],
7905:[[
417,
771]],
7906:[[
416,
803]],
7907:[[
417,
803]],
7908:[[
85,
803]],
7909:[[
117,
803]],
7910:[[
85,
777]],
7911:[[
117,
777]],
7912:[[
431,
769]],
7913:[[
432,
769]],
7914:[[
431,
768]],
7915:[[
432,
768]],
7916:[[
431,
777]],
7917:[[
432,
777]],
7918:[[
431,
771]],
7919:[[
432,
771]],
7920:[[
431,
803]],
7921:[[
432,
803]],
7922:[[
89,
768]],
7923:[[
121,
768]],
7924:[[
89,
803]],
7925:[[
121,
803]],
7926:[[
89,
777]],
7927:[[
121,
777]],
7928:[[
89,
771]],
7929:[[
121,
771]]},
6911 7936:{
7936:[[
945,
787],,{
768:
7938,
769:
7940,
834:
7942,
837:
8064}],
7937:[[
945,
788],,{
768:
7939,
769:
7941,
834:
7943,
837:
8065}],
7938:[[
7936,
768],,{
837:
8066}],
7939:[[
7937,
768],,{
837:
8067}],
7940:[[
7936,
769],,{
837:
8068}],
7941:[[
7937,
769],,{
837:
8069}],
7942:[[
7936,
834],,{
837:
8070}],
7943:[[
7937,
834],,{
837:
8071}],
7944:[[
913,
787],,{
768:
7946,
769:
7948,
834:
7950,
837:
8072}],
7945:[[
913,
788],,{
768:
7947,
769:
7949,
834:
7951,
837:
8073}],
7946:[[
7944,
768],,{
837:
8074}],
7947:[[
7945,
768],,{
837:
8075}],
7948:[[
7944,
769],,{
837:
8076}],
7949:[[
7945,
769],,{
837:
8077}],
7950:[[
7944,
834],,{
837:
8078}],
7951:[[
7945,
834],,{
837:
8079}],
7952:[[
949,
787],,{
768:
7954,
769:
7956}],
7953:[[
949,
788],,{
768:
7955,
769:
7957}],
7954:[[
7952,
768]],
7955:[[
7953,
768]],
7956:[[
7952,
769]],
7957:[[
7953,
769]],
7960:[[
917,
787],,{
768:
7962,
769:
7964}],
7961:[[
917,
788],,{
768:
7963,
769:
7965}],
7962:[[
7960,
768]],
7963:[[
7961,
768]],
7964:[[
7960,
769]],
7965:[[
7961,
769]],
7968:[[
951,
787],,{
768:
7970,
769:
7972,
834:
7974,
837:
8080}],
7969:[[
951,
788],,{
768:
7971,
769:
7973,
834:
7975,
837:
8081}],
7970:[[
7968,
768],,{
837:
8082}],
7971:[[
7969,
768],,{
837:
8083}],
7972:[[
7968,
769],,{
837:
8084}],
7973:[[
7969,
769],,{
837:
8085}],
7974:[[
7968,
834],,{
837:
8086}],
7975:[[
7969,
834],,{
837:
8087}],
7976:[[
919,
787],,{
768:
7978,
769:
7980,
834:
7982,
837:
8088}],
7977:[[
919,
788],,{
768:
7979,
769:
7981,
834:
7983,
837:
8089}],
7978:[[
7976,
768],,{
837:
8090}],
7979:[[
7977,
768],,{
837:
8091}],
7980:[[
7976,
769],,{
837:
8092}],
7981:[[
7977,
769],,{
837:
8093}],
7982:[[
7976,
834],,{
837:
8094}],
7983:[[
7977,
834],,{
837:
8095}],
7984:[[
953,
787],,{
768:
7986,
769:
7988,
834:
7990}],
7985:[[
953,
788],,{
768:
7987,
769:
7989,
834:
7991}],
7986:[[
7984,
768]],
7987:[[
7985,
768]],
7988:[[
7984,
769]],
7989:[[
7985,
769]],
7990:[[
7984,
834]],
7991:[[
7985,
834]],
7992:[[
921,
787],,{
768:
7994,
769:
7996,
834:
7998}],
7993:[[
921,
788],,{
768:
7995,
769:
7997,
834:
7999}],
7994:[[
7992,
768]],
7995:[[
7993,
768]],
7996:[[
7992,
769]],
7997:[[
7993,
769]],
7998:[[
7992,
834]],
7999:[[
7993,
834]],
8000:[[
959,
787],,{
768:
8002,
769:
8004}],
8001:[[
959,
788],,{
768:
8003,
769:
8005}],
8002:[[
8000,
768]],
8003:[[
8001,
768]],
8004:[[
8000,
769]],
8005:[[
8001,
769]],
8008:[[
927,
787],,{
768:
8010,
769:
8012}],
8009:[[
927,
788],,{
768:
8011,
769:
8013}],
8010:[[
8008,
768]],
8011:[[
8009,
768]],
8012:[[
8008,
769]],
8013:[[
8009,
769]],
8016:[[
965,
787],,{
768:
8018,
769:
8020,
834:
8022}],
8017:[[
965,
788],,{
768:
8019,
769:
8021,
834:
8023}],
8018:[[
8016,
768]],
8019:[[
8017,
768]],
8020:[[
8016,
769]],
8021:[[
8017,
769]],
8022:[[
8016,
834]],
8023:[[
8017,
834]],
8025:[[
933,
788],,{
768:
8027,
769:
8029,
834:
8031}],
8027:[[
8025,
768]],
8029:[[
8025,
769]],
8031:[[
8025,
834]],
8032:[[
969,
787],,{
768:
8034,
769:
8036,
834:
8038,
837:
8096}],
8033:[[
969,
788],,{
768:
8035,
769:
8037,
834:
8039,
837:
8097}],
8034:[[
8032,
768],,{
837:
8098}],
8035:[[
8033,
768],,{
837:
8099}],
8036:[[
8032,
769],,{
837:
8100}],
8037:[[
8033,
769],,{
837:
8101}],
8038:[[
8032,
834],,{
837:
8102}],
8039:[[
8033,
834],,{
837:
8103}],
8040:[[
937,
787],,{
768:
8042,
769:
8044,
834:
8046,
837:
8104}],
8041:[[
937,
788],,{
768:
8043,
769:
8045,
834:
8047,
837:
8105}],
8042:[[
8040,
768],,{
837:
8106}],
8043:[[
8041,
768],,{
837:
8107}],
8044:[[
8040,
769],,{
837:
8108}],
8045:[[
8041,
769],,{
837:
8109}],
8046:[[
8040,
834],,{
837:
8110}],
8047:[[
8041,
834],,{
837:
8111}],
8048:[[
945,
768],,{
837:
8114}],
8049:[[
940]],
8050:[[
949,
768]],
8051:[[
941]],
8052:[[
951,
768],,{
837:
8130}],
8053:[[
942]],
8054:[[
953,
768]],
8055:[[
943]],
8056:[[
959,
768]],
8057:[[
972]],
8058:[[
965,
768]],
8059:[[
973]],
8060:[[
969,
768],,{
837:
8178}],
8061:[[
974]],
8064:[[
7936,
837]],
8065:[[
7937,
837]],
8066:[[
7938,
837]],
8067:[[
7939,
837]],
8068:[[
7940,
837]],
8069:[[
7941,
837]],
8070:[[
7942,
837]],
8071:[[
7943,
837]],
8072:[[
7944,
837]],
8073:[[
7945,
837]],
8074:[[
7946,
837]],
8075:[[
7947,
837]],
8076:[[
7948,
837]],
8077:[[
7949,
837]],
8078:[[
7950,
837]],
8079:[[
7951,
837]],
8080:[[
7968,
837]],
8081:[[
7969,
837]],
8082:[[
7970,
837]],
8083:[[
7971,
837]],
8084:[[
7972,
837]],
8085:[[
7973,
837]],
8086:[[
7974,
837]],
8087:[[
7975,
837]],
8088:[[
7976,
837]],
8089:[[
7977,
837]],
8090:[[
7978,
837]],
8091:[[
7979,
837]],
8092:[[
7980,
837]],
8093:[[
7981,
837]],
8094:[[
7982,
837]],
8095:[[
7983,
837]],
8096:[[
8032,
837]],
8097:[[
8033,
837]],
8098:[[
8034,
837]],
8099:[[
8035,
837]],
8100:[[
8036,
837]],
8101:[[
8037,
837]],
8102:[[
8038,
837]],
8103:[[
8039,
837]],
8104:[[
8040,
837]],
8105:[[
8041,
837]],
8106:[[
8042,
837]],
8107:[[
8043,
837]],
8108:[[
8044,
837]],
8109:[[
8045,
837]],
8110:[[
8046,
837]],
8111:[[
8047,
837]],
8112:[[
945,
774]],
8113:[[
945,
772]],
8114:[[
8048,
837]],
8115:[[
945,
837]],
8116:[[
940,
837]],
8118:[[
945,
834],,{
837:
8119}],
8119:[[
8118,
837]],
8120:[[
913,
774]],
8121:[[
913,
772]],
8122:[[
913,
768]],
8123:[[
902]],
8124:[[
913,
837]],
8125:[[
32,
787],
256],
8126:[[
953]],
8127:[[
32,
787],
256,{
768:
8141,
769:
8142,
834:
8143}],
8128:[[
32,
834],
256],
8129:[[
168,
834]],
8130:[[
8052,
837]],
8131:[[
951,
837]],
8132:[[
942,
837]],
8134:[[
951,
834],,{
837:
8135}],
8135:[[
8134,
837]],
8136:[[
917,
768]],
8137:[[
904]],
8138:[[
919,
768]],
8139:[[
905]],
8140:[[
919,
837]],
8141:[[
8127,
768]],
8142:[[
8127,
769]],
8143:[[
8127,
834]],
8144:[[
953,
774]],
8145:[[
953,
772]],
8146:[[
970,
768]],
8147:[[
912]],
8150:[[
953,
834]],
8151:[[
970,
834]],
8152:[[
921,
774]],
8153:[[
921,
772]],
8154:[[
921,
768]],
8155:[[
906]],
8157:[[
8190,
768]],
8158:[[
8190,
769]],
8159:[[
8190,
834]],
8160:[[
965,
774]],
8161:[[
965,
772]],
8162:[[
971,
768]],
8163:[[
944]],
8164:[[
961,
787]],
8165:[[
961,
788]],
8166:[[
965,
834]],
8167:[[
971,
834]],
8168:[[
933,
774]],
8169:[[
933,
772]],
8170:[[
933,
768]],
8171:[[
910]],
8172:[[
929,
788]],
8173:[[
168,
768]],
8174:[[
901]],
8175:[[
96]],
8178:[[
8060,
837]],
8179:[[
969,
837]],
8180:[[
974,
837]],
8182:[[
969,
834],,{
837:
8183}],
8183:[[
8182,
837]],
8184:[[
927,
768]],
8185:[[
908]],
8186:[[
937,
768]],
8187:[[
911]],
8188:[[
937,
837]],
8189:[[
180]],
8190:[[
32,
788],
256,{
768:
8157,
769:
8158,
834:
8159}]},
6912 8192:{
8192:[[
8194]],
8193:[[
8195]],
8194:[[
32],
256],
8195:[[
32],
256],
8196:[[
32],
256],
8197:[[
32],
256],
8198:[[
32],
256],
8199:[[
32],
256],
8200:[[
32],
256],
8201:[[
32],
256],
8202:[[
32],
256],
8209:[[
8208],
256],
8215:[[
32,
819],
256],
8228:[[
46],
256],
8229:[[
46,
46],
256],
8230:[[
46,
46,
46],
256],
8239:[[
32],
256],
8243:[[
8242,
8242],
256],
8244:[[
8242,
8242,
8242],
256],
8246:[[
8245,
8245],
256],
8247:[[
8245,
8245,
8245],
256],
8252:[[
33,
33],
256],
8254:[[
32,
773],
256],
8263:[[
63,
63],
256],
8264:[[
63,
33],
256],
8265:[[
33,
63],
256],
8279:[[
8242,
8242,
8242,
8242],
256],
8287:[[
32],
256],
8304:[[
48],
256],
8305:[[
105],
256],
8308:[[
52],
256],
8309:[[
53],
256],
8310:[[
54],
256],
8311:[[
55],
256],
8312:[[
56],
256],
8313:[[
57],
256],
8314:[[
43],
256],
8315:[[
8722],
256],
8316:[[
61],
256],
8317:[[
40],
256],
8318:[[
41],
256],
8319:[[
110],
256],
8320:[[
48],
256],
8321:[[
49],
256],
8322:[[
50],
256],
8323:[[
51],
256],
8324:[[
52],
256],
8325:[[
53],
256],
8326:[[
54],
256],
8327:[[
55],
256],
8328:[[
56],
256],
8329:[[
57],
256],
8330:[[
43],
256],
8331:[[
8722],
256],
8332:[[
61],
256],
8333:[[
40],
256],
8334:[[
41],
256],
8336:[[
97],
256],
8337:[[
101],
256],
8338:[[
111],
256],
8339:[[
120],
256],
8340:[[
601],
256],
8341:[[
104],
256],
8342:[[
107],
256],
8343:[[
108],
256],
8344:[[
109],
256],
8345:[[
110],
256],
8346:[[
112],
256],
8347:[[
115],
256],
8348:[[
116],
256],
8360:[[
82,
115],
256],
8400:[,
230],
8401:[,
230],
8402:[,
1],
8403:[,
1],
8404:[,
230],
8405:[,
230],
8406:[,
230],
8407:[,
230],
8408:[,
1],
8409:[,
1],
8410:[,
1],
8411:[,
230],
8412:[,
230],
8417:[,
230],
8421:[,
1],
8422:[,
1],
8423:[,
230],
8424:[,
220],
8425:[,
230],
8426:[,
1],
8427:[,
1],
8428:[,
220],
8429:[,
220],
8430:[,
220],
8431:[,
220],
8432:[,
230]},
6913 8448:{
8448:[[
97,
47,
99],
256],
8449:[[
97,
47,
115],
256],
8450:[[
67],
256],
8451:[[
176,
67],
256],
8453:[[
99,
47,
111],
256],
8454:[[
99,
47,
117],
256],
8455:[[
400],
256],
8457:[[
176,
70],
256],
8458:[[
103],
256],
8459:[[
72],
256],
8460:[[
72],
256],
8461:[[
72],
256],
8462:[[
104],
256],
8463:[[
295],
256],
8464:[[
73],
256],
8465:[[
73],
256],
8466:[[
76],
256],
8467:[[
108],
256],
8469:[[
78],
256],
8470:[[
78,
111],
256],
8473:[[
80],
256],
8474:[[
81],
256],
8475:[[
82],
256],
8476:[[
82],
256],
8477:[[
82],
256],
8480:[[
83,
77],
256],
8481:[[
84,
69,
76],
256],
8482:[[
84,
77],
256],
8484:[[
90],
256],
8486:[[
937]],
8488:[[
90],
256],
8490:[[
75]],
8491:[[
197]],
8492:[[
66],
256],
8493:[[
67],
256],
8495:[[
101],
256],
8496:[[
69],
256],
8497:[[
70],
256],
8499:[[
77],
256],
8500:[[
111],
256],
8501:[[
1488],
256],
8502:[[
1489],
256],
8503:[[
1490],
256],
8504:[[
1491],
256],
8505:[[
105],
256],
8507:[[
70,
65,
88],
256],
8508:[[
960],
256],
8509:[[
947],
256],
8510:[[
915],
256],
8511:[[
928],
256],
8512:[[
8721],
256],
8517:[[
68],
256],
8518:[[
100],
256],
8519:[[
101],
256],
8520:[[
105],
256],
8521:[[
106],
256],
8528:[[
49,
8260,
55],
256],
8529:[[
49,
8260,
57],
256],
8530:[[
49,
8260,
49,
48],
256],
8531:[[
49,
8260,
51],
256],
8532:[[
50,
8260,
51],
256],
8533:[[
49,
8260,
53],
256],
8534:[[
50,
8260,
53],
256],
8535:[[
51,
8260,
53],
256],
8536:[[
52,
8260,
53],
256],
8537:[[
49,
8260,
54],
256],
8538:[[
53,
8260,
54],
256],
8539:[[
49,
8260,
56],
256],
8540:[[
51,
8260,
56],
256],
8541:[[
53,
8260,
56],
256],
8542:[[
55,
8260,
56],
256],
8543:[[
49,
8260],
256],
8544:[[
73],
256],
8545:[[
73,
73],
256],
8546:[[
73,
73,
73],
256],
8547:[[
73,
86],
256],
8548:[[
86],
256],
8549:[[
86,
73],
256],
8550:[[
86,
73,
73],
256],
8551:[[
86,
73,
73,
73],
256],
8552:[[
73,
88],
256],
8553:[[
88],
256],
8554:[[
88,
73],
256],
8555:[[
88,
73,
73],
256],
8556:[[
76],
256],
8557:[[
67],
256],
8558:[[
68],
256],
8559:[[
77],
256],
8560:[[
105],
256],
8561:[[
105,
105],
256],
8562:[[
105,
105,
105],
256],
8563:[[
105,
118],
256],
8564:[[
118],
256],
8565:[[
118,
105],
256],
8566:[[
118,
105,
105],
256],
8567:[[
118,
105,
105,
105],
256],
8568:[[
105,
120],
256],
8569:[[
120],
256],
8570:[[
120,
105],
256],
8571:[[
120,
105,
105],
256],
8572:[[
108],
256],
8573:[[
99],
256],
8574:[[
100],
256],
8575:[[
109],
256],
8585:[[
48,
8260,
51],
256],
8592:[,,{
824:
8602}],
8594:[,,{
824:
8603}],
8596:[,,{
824:
8622}],
8602:[[
8592,
824]],
8603:[[
8594,
824]],
8622:[[
8596,
824]],
8653:[[
8656,
824]],
8654:[[
8660,
824]],
8655:[[
8658,
824]],
8656:[,,{
824:
8653}],
8658:[,,{
824:
8655}],
8660:[,,{
824:
8654}]},
6914 8704:{
8707:[,,{
824:
8708}],
8708:[[
8707,
824]],
8712:[,,{
824:
8713}],
8713:[[
8712,
824]],
8715:[,,{
824:
8716}],
8716:[[
8715,
824]],
8739:[,,{
824:
8740}],
8740:[[
8739,
824]],
8741:[,,{
824:
8742}],
8742:[[
8741,
824]],
8748:[[
8747,
8747],
256],
8749:[[
8747,
8747,
8747],
256],
8751:[[
8750,
8750],
256],
8752:[[
8750,
8750,
8750],
256],
8764:[,,{
824:
8769}],
8769:[[
8764,
824]],
8771:[,,{
824:
8772}],
8772:[[
8771,
824]],
8773:[,,{
824:
8775}],
8775:[[
8773,
824]],
8776:[,,{
824:
8777}],
8777:[[
8776,
824]],
8781:[,,{
824:
8813}],
8800:[[
61,
824]],
8801:[,,{
824:
8802}],
8802:[[
8801,
824]],
8804:[,,{
824:
8816}],
8805:[,,{
824:
8817}],
8813:[[
8781,
824]],
8814:[[
60,
824]],
8815:[[
62,
824]],
8816:[[
8804,
824]],
8817:[[
8805,
824]],
8818:[,,{
824:
8820}],
8819:[,,{
824:
8821}],
8820:[[
8818,
824]],
8821:[[
8819,
824]],
8822:[,,{
824:
8824}],
8823:[,,{
824:
8825}],
8824:[[
8822,
824]],
8825:[[
8823,
824]],
8826:[,,{
824:
8832}],
8827:[,,{
824:
8833}],
8828:[,,{
824:
8928}],
8829:[,,{
824:
8929}],
8832:[[
8826,
824]],
8833:[[
8827,
824]],
8834:[,,{
824:
8836}],
8835:[,,{
824:
8837}],
8836:[[
8834,
824]],
8837:[[
8835,
824]],
8838:[,,{
824:
8840}],
8839:[,,{
824:
8841}],
8840:[[
8838,
824]],
8841:[[
8839,
824]],
8849:[,,{
824:
8930}],
8850:[,,{
824:
8931}],
8866:[,,{
824:
8876}],
8872:[,,{
824:
8877}],
8873:[,,{
824:
8878}],
8875:[,,{
824:
8879}],
8876:[[
8866,
824]],
8877:[[
8872,
824]],
8878:[[
8873,
824]],
8879:[[
8875,
824]],
8882:[,,{
824:
8938}],
8883:[,,{
824:
8939}],
8884:[,,{
824:
8940}],
8885:[,,{
824:
8941}],
8928:[[
8828,
824]],
8929:[[
8829,
824]],
8930:[[
8849,
824]],
8931:[[
8850,
824]],
8938:[[
8882,
824]],
8939:[[
8883,
824]],
8940:[[
8884,
824]],
8941:[[
8885,
824]]},
6915 8960:{
9001:[[
12296]],
9002:[[
12297]]},
6916 9216:{
9312:[[
49],
256],
9313:[[
50],
256],
9314:[[
51],
256],
9315:[[
52],
256],
9316:[[
53],
256],
9317:[[
54],
256],
9318:[[
55],
256],
9319:[[
56],
256],
9320:[[
57],
256],
9321:[[
49,
48],
256],
9322:[[
49,
49],
256],
9323:[[
49,
50],
256],
9324:[[
49,
51],
256],
9325:[[
49,
52],
256],
9326:[[
49,
53],
256],
9327:[[
49,
54],
256],
9328:[[
49,
55],
256],
9329:[[
49,
56],
256],
9330:[[
49,
57],
256],
9331:[[
50,
48],
256],
9332:[[
40,
49,
41],
256],
9333:[[
40,
50,
41],
256],
9334:[[
40,
51,
41],
256],
9335:[[
40,
52,
41],
256],
9336:[[
40,
53,
41],
256],
9337:[[
40,
54,
41],
256],
9338:[[
40,
55,
41],
256],
9339:[[
40,
56,
41],
256],
9340:[[
40,
57,
41],
256],
9341:[[
40,
49,
48,
41],
256],
9342:[[
40,
49,
49,
41],
256],
9343:[[
40,
49,
50,
41],
256],
9344:[[
40,
49,
51,
41],
256],
9345:[[
40,
49,
52,
41],
256],
9346:[[
40,
49,
53,
41],
256],
9347:[[
40,
49,
54,
41],
256],
9348:[[
40,
49,
55,
41],
256],
9349:[[
40,
49,
56,
41],
256],
9350:[[
40,
49,
57,
41],
256],
9351:[[
40,
50,
48,
41],
256],
9352:[[
49,
46],
256],
9353:[[
50,
46],
256],
9354:[[
51,
46],
256],
9355:[[
52,
46],
256],
9356:[[
53,
46],
256],
9357:[[
54,
46],
256],
9358:[[
55,
46],
256],
9359:[[
56,
46],
256],
9360:[[
57,
46],
256],
9361:[[
49,
48,
46],
256],
9362:[[
49,
49,
46],
256],
9363:[[
49,
50,
46],
256],
9364:[[
49,
51,
46],
256],
9365:[[
49,
52,
46],
256],
9366:[[
49,
53,
46],
256],
9367:[[
49,
54,
46],
256],
9368:[[
49,
55,
46],
256],
9369:[[
49,
56,
46],
256],
9370:[[
49,
57,
46],
256],
9371:[[
50,
48,
46],
256],
9372:[[
40,
97,
41],
256],
9373:[[
40,
98,
41],
256],
9374:[[
40,
99,
41],
256],
9375:[[
40,
100,
41],
256],
9376:[[
40,
101,
41],
256],
9377:[[
40,
102,
41],
256],
9378:[[
40,
103,
41],
256],
9379:[[
40,
104,
41],
256],
9380:[[
40,
105,
41],
256],
9381:[[
40,
106,
41],
256],
9382:[[
40,
107,
41],
256],
9383:[[
40,
108,
41],
256],
9384:[[
40,
109,
41],
256],
9385:[[
40,
110,
41],
256],
9386:[[
40,
111,
41],
256],
9387:[[
40,
112,
41],
256],
9388:[[
40,
113,
41],
256],
9389:[[
40,
114,
41],
256],
9390:[[
40,
115,
41],
256],
9391:[[
40,
116,
41],
256],
9392:[[
40,
117,
41],
256],
9393:[[
40,
118,
41],
256],
9394:[[
40,
119,
41],
256],
9395:[[
40,
120,
41],
256],
9396:[[
40,
121,
41],
256],
9397:[[
40,
122,
41],
256],
9398:[[
65],
256],
9399:[[
66],
256],
9400:[[
67],
256],
9401:[[
68],
256],
9402:[[
69],
256],
9403:[[
70],
256],
9404:[[
71],
256],
9405:[[
72],
256],
9406:[[
73],
256],
9407:[[
74],
256],
9408:[[
75],
256],
9409:[[
76],
256],
9410:[[
77],
256],
9411:[[
78],
256],
9412:[[
79],
256],
9413:[[
80],
256],
9414:[[
81],
256],
9415:[[
82],
256],
9416:[[
83],
256],
9417:[[
84],
256],
9418:[[
85],
256],
9419:[[
86],
256],
9420:[[
87],
256],
9421:[[
88],
256],
9422:[[
89],
256],
9423:[[
90],
256],
9424:[[
97],
256],
9425:[[
98],
256],
9426:[[
99],
256],
9427:[[
100],
256],
9428:[[
101],
256],
9429:[[
102],
256],
9430:[[
103],
256],
9431:[[
104],
256],
9432:[[
105],
256],
9433:[[
106],
256],
9434:[[
107],
256],
9435:[[
108],
256],
9436:[[
109],
256],
9437:[[
110],
256],
9438:[[
111],
256],
9439:[[
112],
256],
9440:[[
113],
256],
9441:[[
114],
256],
9442:[[
115],
256],
9443:[[
116],
256],
9444:[[
117],
256],
9445:[[
118],
256],
9446:[[
119],
256],
9447:[[
120],
256],
9448:[[
121],
256],
9449:[[
122],
256],
9450:[[
48],
256]},
6917 10752:{
10764:[[
8747,
8747,
8747,
8747],
256],
10868:[[
58,
58,
61],
256],
10869:[[
61,
61],
256],
10870:[[
61,
61,
61],
256],
10972:[[
10973,
824],
512]},
6918 11264:{
11388:[[
106],
256],
11389:[[
86],
256],
11503:[,
230],
11504:[,
230],
11505:[,
230]},
6919 11520:{
11631:[[
11617],
256],
11647:[,
9],
11744:[,
230],
11745:[,
230],
11746:[,
230],
11747:[,
230],
11748:[,
230],
11749:[,
230],
11750:[,
230],
11751:[,
230],
11752:[,
230],
11753:[,
230],
11754:[,
230],
11755:[,
230],
11756:[,
230],
11757:[,
230],
11758:[,
230],
11759:[,
230],
11760:[,
230],
11761:[,
230],
11762:[,
230],
11763:[,
230],
11764:[,
230],
11765:[,
230],
11766:[,
230],
11767:[,
230],
11768:[,
230],
11769:[,
230],
11770:[,
230],
11771:[,
230],
11772:[,
230],
11773:[,
230],
11774:[,
230],
11775:[,
230]},
6920 11776:{
11935:[[
27597],
256],
12019:[[
40863],
256]},
6921 12032:{
12032:[[
19968],
256],
12033:[[
20008],
256],
12034:[[
20022],
256],
12035:[[
20031],
256],
12036:[[
20057],
256],
12037:[[
20101],
256],
12038:[[
20108],
256],
12039:[[
20128],
256],
12040:[[
20154],
256],
12041:[[
20799],
256],
12042:[[
20837],
256],
12043:[[
20843],
256],
12044:[[
20866],
256],
12045:[[
20886],
256],
12046:[[
20907],
256],
12047:[[
20960],
256],
12048:[[
20981],
256],
12049:[[
20992],
256],
12050:[[
21147],
256],
12051:[[
21241],
256],
12052:[[
21269],
256],
12053:[[
21274],
256],
12054:[[
21304],
256],
12055:[[
21313],
256],
12056:[[
21340],
256],
12057:[[
21353],
256],
12058:[[
21378],
256],
12059:[[
21430],
256],
12060:[[
21448],
256],
12061:[[
21475],
256],
12062:[[
22231],
256],
12063:[[
22303],
256],
12064:[[
22763],
256],
12065:[[
22786],
256],
12066:[[
22794],
256],
12067:[[
22805],
256],
12068:[[
22823],
256],
12069:[[
22899],
256],
12070:[[
23376],
256],
12071:[[
23424],
256],
12072:[[
23544],
256],
12073:[[
23567],
256],
12074:[[
23586],
256],
12075:[[
23608],
256],
12076:[[
23662],
256],
12077:[[
23665],
256],
12078:[[
24027],
256],
12079:[[
24037],
256],
12080:[[
24049],
256],
12081:[[
24062],
256],
12082:[[
24178],
256],
12083:[[
24186],
256],
12084:[[
24191],
256],
12085:[[
24308],
256],
12086:[[
24318],
256],
12087:[[
24331],
256],
12088:[[
24339],
256],
12089:[[
24400],
256],
12090:[[
24417],
256],
12091:[[
24435],
256],
12092:[[
24515],
256],
12093:[[
25096],
256],
12094:[[
25142],
256],
12095:[[
25163],
256],
12096:[[
25903],
256],
12097:[[
25908],
256],
12098:[[
25991],
256],
12099:[[
26007],
256],
12100:[[
26020],
256],
12101:[[
26041],
256],
12102:[[
26080],
256],
12103:[[
26085],
256],
12104:[[
26352],
256],
12105:[[
26376],
256],
12106:[[
26408],
256],
12107:[[
27424],
256],
12108:[[
27490],
256],
12109:[[
27513],
256],
12110:[[
27571],
256],
12111:[[
27595],
256],
12112:[[
27604],
256],
12113:[[
27611],
256],
12114:[[
27663],
256],
12115:[[
27668],
256],
12116:[[
27700],
256],
12117:[[
28779],
256],
12118:[[
29226],
256],
12119:[[
29238],
256],
12120:[[
29243],
256],
12121:[[
29247],
256],
12122:[[
29255],
256],
12123:[[
29273],
256],
12124:[[
29275],
256],
12125:[[
29356],
256],
12126:[[
29572],
256],
12127:[[
29577],
256],
12128:[[
29916],
256],
12129:[[
29926],
256],
12130:[[
29976],
256],
12131:[[
29983],
256],
12132:[[
29992],
256],
12133:[[
30000],
256],
12134:[[
30091],
256],
12135:[[
30098],
256],
12136:[[
30326],
256],
12137:[[
30333],
256],
12138:[[
30382],
256],
12139:[[
30399],
256],
12140:[[
30446],
256],
12141:[[
30683],
256],
12142:[[
30690],
256],
12143:[[
30707],
256],
12144:[[
31034],
256],
12145:[[
31160],
256],
12146:[[
31166],
256],
12147:[[
31348],
256],
12148:[[
31435],
256],
12149:[[
31481],
256],
12150:[[
31859],
256],
12151:[[
31992],
256],
12152:[[
32566],
256],
12153:[[
32593],
256],
12154:[[
32650],
256],
12155:[[
32701],
256],
12156:[[
32769],
256],
12157:[[
32780],
256],
12158:[[
32786],
256],
12159:[[
32819],
256],
12160:[[
32895],
256],
12161:[[
32905],
256],
12162:[[
33251],
256],
12163:[[
33258],
256],
12164:[[
33267],
256],
12165:[[
33276],
256],
12166:[[
33292],
256],
12167:[[
33307],
256],
12168:[[
33311],
256],
12169:[[
33390],
256],
12170:[[
33394],
256],
12171:[[
33400],
256],
12172:[[
34381],
256],
12173:[[
34411],
256],
12174:[[
34880],
256],
12175:[[
34892],
256],
12176:[[
34915],
256],
12177:[[
35198],
256],
12178:[[
35211],
256],
12179:[[
35282],
256],
12180:[[
35328],
256],
12181:[[
35895],
256],
12182:[[
35910],
256],
12183:[[
35925],
256],
12184:[[
35960],
256],
12185:[[
35997],
256],
12186:[[
36196],
256],
12187:[[
36208],
256],
12188:[[
36275],
256],
12189:[[
36523],
256],
12190:[[
36554],
256],
12191:[[
36763],
256],
12192:[[
36784],
256],
12193:[[
36789],
256],
12194:[[
37009],
256],
12195:[[
37193],
256],
12196:[[
37318],
256],
12197:[[
37324],
256],
12198:[[
37329],
256],
12199:[[
38263],
256],
12200:[[
38272],
256],
12201:[[
38428],
256],
12202:[[
38582],
256],
12203:[[
38585],
256],
12204:[[
38632],
256],
12205:[[
38737],
256],
12206:[[
38750],
256],
12207:[[
38754],
256],
12208:[[
38761],
256],
12209:[[
38859],
256],
12210:[[
38893],
256],
12211:[[
38899],
256],
12212:[[
38913],
256],
12213:[[
39080],
256],
12214:[[
39131],
256],
12215:[[
39135],
256],
12216:[[
39318],
256],
12217:[[
39321],
256],
12218:[[
39340],
256],
12219:[[
39592],
256],
12220:[[
39640],
256],
12221:[[
39647],
256],
12222:[[
39717],
256],
12223:[[
39727],
256],
12224:[[
39730],
256],
12225:[[
39740],
256],
12226:[[
39770],
256],
12227:[[
40165],
256],
12228:[[
40565],
256],
12229:[[
40575],
256],
12230:[[
40613],
256],
12231:[[
40635],
256],
12232:[[
40643],
256],
12233:[[
40653],
256],
12234:[[
40657],
256],
12235:[[
40697],
256],
12236:[[
40701],
256],
12237:[[
40718],
256],
12238:[[
40723],
256],
12239:[[
40736],
256],
12240:[[
40763],
256],
12241:[[
40778],
256],
12242:[[
40786],
256],
12243:[[
40845],
256],
12244:[[
40860],
256],
12245:[[
40864],
256]},
6922 12288:{
12288:[[
32],
256],
12330:[,
218],
12331:[,
228],
12332:[,
232],
12333:[,
222],
12334:[,
224],
12335:[,
224],
12342:[[
12306],
256],
12344:[[
21313],
256],
12345:[[
21316],
256],
12346:[[
21317],
256],
12358:[,,{
12441:
12436}],
12363:[,,{
12441:
12364}],
12364:[[
12363,
12441]],
12365:[,,{
12441:
12366}],
12366:[[
12365,
12441]],
12367:[,,{
12441:
12368}],
12368:[[
12367,
12441]],
12369:[,,{
12441:
12370}],
12370:[[
12369,
12441]],
12371:[,,{
12441:
12372}],
12372:[[
12371,
12441]],
12373:[,,{
12441:
12374}],
12374:[[
12373,
12441]],
12375:[,,{
12441:
12376}],
12376:[[
12375,
12441]],
12377:[,,{
12441:
12378}],
12378:[[
12377,
12441]],
12379:[,,{
12441:
12380}],
12380:[[
12379,
12441]],
12381:[,,{
12441:
12382}],
12382:[[
12381,
12441]],
12383:[,,{
12441:
12384}],
12384:[[
12383,
12441]],
12385:[,,{
12441:
12386}],
12386:[[
12385,
12441]],
12388:[,,{
12441:
12389}],
12389:[[
12388,
12441]],
12390:[,,{
12441:
12391}],
12391:[[
12390,
12441]],
12392:[,,{
12441:
12393}],
12393:[[
12392,
12441]],
12399:[,,{
12441:
12400,
12442:
12401}],
12400:[[
12399,
12441]],
12401:[[
12399,
12442]],
12402:[,,{
12441:
12403,
12442:
12404}],
12403:[[
12402,
12441]],
12404:[[
12402,
12442]],
12405:[,,{
12441:
12406,
12442:
12407}],
12406:[[
12405,
12441]],
12407:[[
12405,
12442]],
12408:[,,{
12441:
12409,
12442:
12410}],
12409:[[
12408,
12441]],
12410:[[
12408,
12442]],
12411:[,,{
12441:
12412,
12442:
12413}],
12412:[[
12411,
12441]],
12413:[[
12411,
12442]],
12436:[[
12358,
12441]],
12441:[,
8],
12442:[,
8],
12443:[[
32,
12441],
256],
12444:[[
32,
12442],
256],
12445:[,,{
12441:
12446}],
12446:[[
12445,
12441]],
12447:[[
12424,
12426],
256],
12454:[,,{
12441:
12532}],
12459:[,,{
12441:
12460}],
12460:[[
12459,
12441]],
12461:[,,{
12441:
12462}],
12462:[[
12461,
12441]],
12463:[,,{
12441:
12464}],
12464:[[
12463,
12441]],
12465:[,,{
12441:
12466}],
12466:[[
12465,
12441]],
12467:[,,{
12441:
12468}],
12468:[[
12467,
12441]],
12469:[,,{
12441:
12470}],
12470:[[
12469,
12441]],
12471:[,,{
12441:
12472}],
12472:[[
12471,
12441]],
12473:[,,{
12441:
12474}],
12474:[[
12473,
12441]],
12475:[,,{
12441:
12476}],
12476:[[
12475,
12441]],
12477:[,,{
12441:
12478}],
12478:[[
12477,
12441]],
12479:[,,{
12441:
12480}],
12480:[[
12479,
12441]],
12481:[,,{
12441:
12482}],
12482:[[
12481,
12441]],
12484:[,,{
12441:
12485}],
12485:[[
12484,
12441]],
12486:[,,{
12441:
12487}],
12487:[[
12486,
12441]],
12488:[,,{
12441:
12489}],
12489:[[
12488,
12441]],
12495:[,,{
12441:
12496,
12442:
12497}],
12496:[[
12495,
12441]],
12497:[[
12495,
12442]],
12498:[,,{
12441:
12499,
12442:
12500}],
12499:[[
12498,
12441]],
12500:[[
12498,
12442]],
12501:[,,{
12441:
12502,
12442:
12503}],
12502:[[
12501,
12441]],
12503:[[
12501,
12442]],
12504:[,,{
12441:
12505,
12442:
12506}],
12505:[[
12504,
12441]],
12506:[[
12504,
12442]],
12507:[,,{
12441:
12508,
12442:
12509}],
12508:[[
12507,
12441]],
12509:[[
12507,
12442]],
12527:[,,{
12441:
12535}],
12528:[,,{
12441:
12536}],
12529:[,,{
12441:
12537}],
12530:[,,{
12441:
12538}],
12532:[[
12454,
12441]],
12535:[[
12527,
12441]],
12536:[[
12528,
12441]],
12537:[[
12529,
12441]],
12538:[[
12530,
12441]],
12541:[,,{
12441:
12542}],
12542:[[
12541,
12441]],
12543:[[
12467,
12488],
256]},
6923 12544:{
12593:[[
4352],
256],
12594:[[
4353],
256],
12595:[[
4522],
256],
12596:[[
4354],
256],
12597:[[
4524],
256],
12598:[[
4525],
256],
12599:[[
4355],
256],
12600:[[
4356],
256],
12601:[[
4357],
256],
12602:[[
4528],
256],
12603:[[
4529],
256],
12604:[[
4530],
256],
12605:[[
4531],
256],
12606:[[
4532],
256],
12607:[[
4533],
256],
12608:[[
4378],
256],
12609:[[
4358],
256],
12610:[[
4359],
256],
12611:[[
4360],
256],
12612:[[
4385],
256],
12613:[[
4361],
256],
12614:[[
4362],
256],
12615:[[
4363],
256],
12616:[[
4364],
256],
12617:[[
4365],
256],
12618:[[
4366],
256],
12619:[[
4367],
256],
12620:[[
4368],
256],
12621:[[
4369],
256],
12622:[[
4370],
256],
12623:[[
4449],
256],
12624:[[
4450],
256],
12625:[[
4451],
256],
12626:[[
4452],
256],
12627:[[
4453],
256],
12628:[[
4454],
256],
12629:[[
4455],
256],
12630:[[
4456],
256],
12631:[[
4457],
256],
12632:[[
4458],
256],
12633:[[
4459],
256],
12634:[[
4460],
256],
12635:[[
4461],
256],
12636:[[
4462],
256],
12637:[[
4463],
256],
12638:[[
4464],
256],
12639:[[
4465],
256],
12640:[[
4466],
256],
12641:[[
4467],
256],
12642:[[
4468],
256],
12643:[[
4469],
256],
12644:[[
4448],
256],
12645:[[
4372],
256],
12646:[[
4373],
256],
12647:[[
4551],
256],
12648:[[
4552],
256],
12649:[[
4556],
256],
12650:[[
4558],
256],
12651:[[
4563],
256],
12652:[[
4567],
256],
12653:[[
4569],
256],
12654:[[
4380],
256],
12655:[[
4573],
256],
12656:[[
4575],
256],
12657:[[
4381],
256],
12658:[[
4382],
256],
12659:[[
4384],
256],
12660:[[
4386],
256],
12661:[[
4387],
256],
12662:[[
4391],
256],
12663:[[
4393],
256],
12664:[[
4395],
256],
12665:[[
4396],
256],
12666:[[
4397],
256],
12667:[[
4398],
256],
12668:[[
4399],
256],
12669:[[
4402],
256],
12670:[[
4406],
256],
12671:[[
4416],
256],
12672:[[
4423],
256],
12673:[[
4428],
256],
12674:[[
4593],
256],
12675:[[
4594],
256],
12676:[[
4439],
256],
12677:[[
4440],
256],
12678:[[
4441],
256],
12679:[[
4484],
256],
12680:[[
4485],
256],
12681:[[
4488],
256],
12682:[[
4497],
256],
12683:[[
4498],
256],
12684:[[
4500],
256],
12685:[[
4510],
256],
12686:[[
4513],
256],
12690:[[
19968],
256],
12691:[[
20108],
256],
12692:[[
19977],
256],
12693:[[
22235],
256],
12694:[[
19978],
256],
12695:[[
20013],
256],
12696:[[
19979],
256],
12697:[[
30002],
256],
12698:[[
20057],
256],
12699:[[
19993],
256],
12700:[[
19969],
256],
12701:[[
22825],
256],
12702:[[
22320],
256],
12703:[[
20154],
256]},
6924 12800:{
12800:[[
40,
4352,
41],
256],
12801:[[
40,
4354,
41],
256],
12802:[[
40,
4355,
41],
256],
12803:[[
40,
4357,
41],
256],
12804:[[
40,
4358,
41],
256],
12805:[[
40,
4359,
41],
256],
12806:[[
40,
4361,
41],
256],
12807:[[
40,
4363,
41],
256],
12808:[[
40,
4364,
41],
256],
12809:[[
40,
4366,
41],
256],
12810:[[
40,
4367,
41],
256],
12811:[[
40,
4368,
41],
256],
12812:[[
40,
4369,
41],
256],
12813:[[
40,
4370,
41],
256],
12814:[[
40,
4352,
4449,
41],
256],
12815:[[
40,
4354,
4449,
41],
256],
12816:[[
40,
4355,
4449,
41],
256],
12817:[[
40,
4357,
4449,
41],
256],
12818:[[
40,
4358,
4449,
41],
256],
12819:[[
40,
4359,
4449,
41],
256],
12820:[[
40,
4361,
4449,
41],
256],
12821:[[
40,
4363,
4449,
41],
256],
12822:[[
40,
4364,
4449,
41],
256],
12823:[[
40,
4366,
4449,
41],
256],
12824:[[
40,
4367,
4449,
41],
256],
12825:[[
40,
4368,
4449,
41],
256],
12826:[[
40,
4369,
4449,
41],
256],
12827:[[
40,
4370,
4449,
41],
256],
12828:[[
40,
4364,
4462,
41],
256],
12829:[[
40,
4363,
4457,
4364,
4453,
4523,
41],
256],
12830:[[
40,
4363,
4457,
4370,
4462,
41],
256],
12832:[[
40,
19968,
41],
256],
12833:[[
40,
20108,
41],
256],
12834:[[
40,
19977,
41],
256],
12835:[[
40,
22235,
41],
256],
12836:[[
40,
20116,
41],
256],
12837:[[
40,
20845,
41],
256],
12838:[[
40,
19971,
41],
256],
12839:[[
40,
20843,
41],
256],
12840:[[
40,
20061,
41],
256],
12841:[[
40,
21313,
41],
256],
12842:[[
40,
26376,
41],
256],
12843:[[
40,
28779,
41],
256],
12844:[[
40,
27700,
41],
256],
12845:[[
40,
26408,
41],
256],
12846:[[
40,
37329,
41],
256],
12847:[[
40,
22303,
41],
256],
12848:[[
40,
26085,
41],
256],
12849:[[
40,
26666,
41],
256],
12850:[[
40,
26377,
41],
256],
12851:[[
40,
31038,
41],
256],
12852:[[
40,
21517,
41],
256],
12853:[[
40,
29305,
41],
256],
12854:[[
40,
36001,
41],
256],
12855:[[
40,
31069,
41],
256],
12856:[[
40,
21172,
41],
256],
12857:[[
40,
20195,
41],
256],
12858:[[
40,
21628,
41],
256],
12859:[[
40,
23398,
41],
256],
12860:[[
40,
30435,
41],
256],
12861:[[
40,
20225,
41],
256],
12862:[[
40,
36039,
41],
256],
12863:[[
40,
21332,
41],
256],
12864:[[
40,
31085,
41],
256],
12865:[[
40,
20241,
41],
256],
12866:[[
40,
33258,
41],
256],
12867:[[
40,
33267,
41],
256],
12868:[[
21839],
256],
12869:[[
24188],
256],
12870:[[
25991],
256],
12871:[[
31631],
256],
12880:[[
80,
84,
69],
256],
12881:[[
50,
49],
256],
12882:[[
50,
50],
256],
12883:[[
50,
51],
256],
12884:[[
50,
52],
256],
12885:[[
50,
53],
256],
12886:[[
50,
54],
256],
12887:[[
50,
55],
256],
12888:[[
50,
56],
256],
12889:[[
50,
57],
256],
12890:[[
51,
48],
256],
12891:[[
51,
49],
256],
12892:[[
51,
50],
256],
12893:[[
51,
51],
256],
12894:[[
51,
52],
256],
12895:[[
51,
53],
256],
12896:[[
4352],
256],
12897:[[
4354],
256],
12898:[[
4355],
256],
12899:[[
4357],
256],
12900:[[
4358],
256],
12901:[[
4359],
256],
12902:[[
4361],
256],
12903:[[
4363],
256],
12904:[[
4364],
256],
12905:[[
4366],
256],
12906:[[
4367],
256],
12907:[[
4368],
256],
12908:[[
4369],
256],
12909:[[
4370],
256],
12910:[[
4352,
4449],
256],
12911:[[
4354,
4449],
256],
12912:[[
4355,
4449],
256],
12913:[[
4357,
4449],
256],
12914:[[
4358,
4449],
256],
12915:[[
4359,
4449],
256],
12916:[[
4361,
4449],
256],
12917:[[
4363,
4449],
256],
12918:[[
4364,
4449],
256],
12919:[[
4366,
4449],
256],
12920:[[
4367,
4449],
256],
12921:[[
4368,
4449],
256],
12922:[[
4369,
4449],
256],
12923:[[
4370,
4449],
256],
12924:[[
4366,
4449,
4535,
4352,
4457],
256],
12925:[[
4364,
4462,
4363,
4468],
256],
12926:[[
4363,
4462],
256],
12928:[[
19968],
256],
12929:[[
20108],
256],
12930:[[
19977],
256],
12931:[[
22235],
256],
12932:[[
20116],
256],
12933:[[
20845],
256],
12934:[[
19971],
256],
12935:[[
20843],
256],
12936:[[
20061],
256],
12937:[[
21313],
256],
12938:[[
26376],
256],
12939:[[
28779],
256],
12940:[[
27700],
256],
12941:[[
26408],
256],
12942:[[
37329],
256],
12943:[[
22303],
256],
12944:[[
26085],
256],
12945:[[
26666],
256],
12946:[[
26377],
256],
12947:[[
31038],
256],
12948:[[
21517],
256],
12949:[[
29305],
256],
12950:[[
36001],
256],
12951:[[
31069],
256],
12952:[[
21172],
256],
12953:[[
31192],
256],
12954:[[
30007],
256],
12955:[[
22899],
256],
12956:[[
36969],
256],
12957:[[
20778],
256],
12958:[[
21360],
256],
12959:[[
27880],
256],
12960:[[
38917],
256],
12961:[[
20241],
256],
12962:[[
20889],
256],
12963:[[
27491],
256],
12964:[[
19978],
256],
12965:[[
20013],
256],
12966:[[
19979],
256],
12967:[[
24038],
256],
12968:[[
21491],
256],
12969:[[
21307],
256],
12970:[[
23447],
256],
12971:[[
23398],
256],
12972:[[
30435],
256],
12973:[[
20225],
256],
12974:[[
36039],
256],
12975:[[
21332],
256],
12976:[[
22812],
256],
12977:[[
51,
54],
256],
12978:[[
51,
55],
256],
12979:[[
51,
56],
256],
12980:[[
51,
57],
256],
12981:[[
52,
48],
256],
12982:[[
52,
49],
256],
12983:[[
52,
50],
256],
12984:[[
52,
51],
256],
12985:[[
52,
52],
256],
12986:[[
52,
53],
256],
12987:[[
52,
54],
256],
12988:[[
52,
55],
256],
12989:[[
52,
56],
256],
12990:[[
52,
57],
256],
12991:[[
53,
48],
256],
12992:[[
49,
26376],
256],
12993:[[
50,
26376],
256],
12994:[[
51,
26376],
256],
12995:[[
52,
26376],
256],
12996:[[
53,
26376],
256],
12997:[[
54,
26376],
256],
12998:[[
55,
26376],
256],
12999:[[
56,
26376],
256],
13000:[[
57,
26376],
256],
13001:[[
49,
48,
26376],
256],
13002:[[
49,
49,
26376],
256],
13003:[[
49,
50,
26376],
256],
13004:[[
72,
103],
256],
13005:[[
101,
114,
103],
256],
13006:[[
101,
86],
256],
13007:[[
76,
84,
68],
256],
13008:[[
12450],
256],
13009:[[
12452],
256],
13010:[[
12454],
256],
13011:[[
12456],
256],
13012:[[
12458],
256],
13013:[[
12459],
256],
13014:[[
12461],
256],
13015:[[
12463],
256],
13016:[[
12465],
256],
13017:[[
12467],
256],
13018:[[
12469],
256],
13019:[[
12471],
256],
13020:[[
12473],
256],
13021:[[
12475],
256],
13022:[[
12477],
256],
13023:[[
12479],
256],
13024:[[
12481],
256],
13025:[[
12484],
256],
13026:[[
12486],
256],
13027:[[
12488],
256],
13028:[[
12490],
256],
13029:[[
12491],
256],
13030:[[
12492],
256],
13031:[[
12493],
256],
13032:[[
12494],
256],
13033:[[
12495],
256],
13034:[[
12498],
256],
13035:[[
12501],
256],
13036:[[
12504],
256],
13037:[[
12507],
256],
13038:[[
12510],
256],
13039:[[
12511],
256],
13040:[[
12512],
256],
13041:[[
12513],
256],
13042:[[
12514],
256],
13043:[[
12516],
256],
13044:[[
12518],
256],
13045:[[
12520],
256],
13046:[[
12521],
256],
13047:[[
12522],
256],
13048:[[
12523],
256],
13049:[[
12524],
256],
13050:[[
12525],
256],
13051:[[
12527],
256],
13052:[[
12528],
256],
13053:[[
12529],
256],
13054:[[
12530],
256]},
6925 13056:{
13056:[[
12450,
12497,
12540,
12488],
256],
13057:[[
12450,
12523,
12501,
12449],
256],
13058:[[
12450,
12531,
12506,
12450],
256],
13059:[[
12450,
12540,
12523],
256],
13060:[[
12452,
12491,
12531,
12464],
256],
13061:[[
12452,
12531,
12481],
256],
13062:[[
12454,
12457,
12531],
256],
13063:[[
12456,
12473,
12463,
12540,
12489],
256],
13064:[[
12456,
12540,
12459,
12540],
256],
13065:[[
12458,
12531,
12473],
256],
13066:[[
12458,
12540,
12512],
256],
13067:[[
12459,
12452,
12522],
256],
13068:[[
12459,
12521,
12483,
12488],
256],
13069:[[
12459,
12525,
12522,
12540],
256],
13070:[[
12460,
12525,
12531],
256],
13071:[[
12460,
12531,
12510],
256],
13072:[[
12462,
12460],
256],
13073:[[
12462,
12491,
12540],
256],
13074:[[
12461,
12517,
12522,
12540],
256],
13075:[[
12462,
12523,
12480,
12540],
256],
13076:[[
12461,
12525],
256],
13077:[[
12461,
12525,
12464,
12521,
12512],
256],
13078:[[
12461,
12525,
12513,
12540,
12488,
12523],
256],
13079:[[
12461,
12525,
12527,
12483,
12488],
256],
13080:[[
12464,
12521,
12512],
256],
13081:[[
12464,
12521,
12512,
12488,
12531],
256],
13082:[[
12463,
12523,
12476,
12452,
12525],
256],
13083:[[
12463,
12525,
12540,
12493],
256],
13084:[[
12465,
12540,
12473],
256],
13085:[[
12467,
12523,
12490],
256],
13086:[[
12467,
12540,
12509],
256],
13087:[[
12469,
12452,
12463,
12523],
256],
13088:[[
12469,
12531,
12481,
12540,
12512],
256],
13089:[[
12471,
12522,
12531,
12464],
256],
13090:[[
12475,
12531,
12481],
256],
13091:[[
12475,
12531,
12488],
256],
13092:[[
12480,
12540,
12473],
256],
13093:[[
12487,
12471],
256],
13094:[[
12489,
12523],
256],
13095:[[
12488,
12531],
256],
13096:[[
12490,
12494],
256],
13097:[[
12494,
12483,
12488],
256],
13098:[[
12495,
12452,
12484],
256],
13099:[[
12497,
12540,
12475,
12531,
12488],
256],
13100:[[
12497,
12540,
12484],
256],
13101:[[
12496,
12540,
12524,
12523],
256],
13102:[[
12500,
12450,
12473,
12488,
12523],
256],
13103:[[
12500,
12463,
12523],
256],
13104:[[
12500,
12467],
256],
13105:[[
12499,
12523],
256],
13106:[[
12501,
12449,
12521,
12483,
12489],
256],
13107:[[
12501,
12451,
12540,
12488],
256],
13108:[[
12502,
12483,
12471,
12455,
12523],
256],
13109:[[
12501,
12521,
12531],
256],
13110:[[
12504,
12463,
12479,
12540,
12523],
256],
13111:[[
12506,
12477],
256],
13112:[[
12506,
12491,
12498],
256],
13113:[[
12504,
12523,
12484],
256],
13114:[[
12506,
12531,
12473],
256],
13115:[[
12506,
12540,
12472],
256],
13116:[[
12505,
12540,
12479],
256],
13117:[[
12509,
12452,
12531,
12488],
256],
13118:[[
12508,
12523,
12488],
256],
13119:[[
12507,
12531],
256],
13120:[[
12509,
12531,
12489],
256],
13121:[[
12507,
12540,
12523],
256],
13122:[[
12507,
12540,
12531],
256],
13123:[[
12510,
12452,
12463,
12525],
256],
13124:[[
12510,
12452,
12523],
256],
13125:[[
12510,
12483,
12495],
256],
13126:[[
12510,
12523,
12463],
256],
13127:[[
12510,
12531,
12471,
12519,
12531],
256],
13128:[[
12511,
12463,
12525,
12531],
256],
13129:[[
12511,
12522],
256],
13130:[[
12511,
12522,
12496,
12540,
12523],
256],
13131:[[
12513,
12460],
256],
13132:[[
12513,
12460,
12488,
12531],
256],
13133:[[
12513,
12540,
12488,
12523],
256],
13134:[[
12516,
12540,
12489],
256],
13135:[[
12516,
12540,
12523],
256],
13136:[[
12518,
12450,
12531],
256],
13137:[[
12522,
12483,
12488,
12523],
256],
13138:[[
12522,
12521],
256],
13139:[[
12523,
12500,
12540],
256],
13140:[[
12523,
12540,
12502,
12523],
256],
13141:[[
12524,
12512],
256],
13142:[[
12524,
12531,
12488,
12466,
12531],
256],
13143:[[
12527,
12483,
12488],
256],
13144:[[
48,
28857],
256],
13145:[[
49,
28857],
256],
13146:[[
50,
28857],
256],
13147:[[
51,
28857],
256],
13148:[[
52,
28857],
256],
13149:[[
53,
28857],
256],
13150:[[
54,
28857],
256],
13151:[[
55,
28857],
256],
13152:[[
56,
28857],
256],
13153:[[
57,
28857],
256],
13154:[[
49,
48,
28857],
256],
13155:[[
49,
49,
28857],
256],
13156:[[
49,
50,
28857],
256],
13157:[[
49,
51,
28857],
256],
13158:[[
49,
52,
28857],
256],
13159:[[
49,
53,
28857],
256],
13160:[[
49,
54,
28857],
256],
13161:[[
49,
55,
28857],
256],
13162:[[
49,
56,
28857],
256],
13163:[[
49,
57,
28857],
256],
13164:[[
50,
48,
28857],
256],
13165:[[
50,
49,
28857],
256],
13166:[[
50,
50,
28857],
256],
13167:[[
50,
51,
28857],
256],
13168:[[
50,
52,
28857],
256],
13169:[[
104,
80,
97],
256],
13170:[[
100,
97],
256],
13171:[[
65,
85],
256],
13172:[[
98,
97,
114],
256],
13173:[[
111,
86],
256],
13174:[[
112,
99],
256],
13175:[[
100,
109],
256],
13176:[[
100,
109,
178],
256],
13177:[[
100,
109,
179],
256],
13178:[[
73,
85],
256],
13179:[[
24179,
25104],
256],
13180:[[
26157,
21644],
256],
13181:[[
22823,
27491],
256],
13182:[[
26126,
27835],
256],
13183:[[
26666,
24335,
20250,
31038],
256],
13184:[[
112,
65],
256],
13185:[[
110,
65],
256],
13186:[[
956,
65],
256],
13187:[[
109,
65],
256],
13188:[[
107,
65],
256],
13189:[[
75,
66],
256],
13190:[[
77,
66],
256],
13191:[[
71,
66],
256],
13192:[[
99,
97,
108],
256],
13193:[[
107,
99,
97,
108],
256],
13194:[[
112,
70],
256],
13195:[[
110,
70],
256],
13196:[[
956,
70],
256],
13197:[[
956,
103],
256],
13198:[[
109,
103],
256],
13199:[[
107,
103],
256],
13200:[[
72,
122],
256],
13201:[[
107,
72,
122],
256],
13202:[[
77,
72,
122],
256],
13203:[[
71,
72,
122],
256],
13204:[[
84,
72,
122],
256],
13205:[[
956,
8467],
256],
13206:[[
109,
8467],
256],
13207:[[
100,
8467],
256],
13208:[[
107,
8467],
256],
13209:[[
102,
109],
256],
13210:[[
110,
109],
256],
13211:[[
956,
109],
256],
13212:[[
109,
109],
256],
13213:[[
99,
109],
256],
13214:[[
107,
109],
256],
13215:[[
109,
109,
178],
256],
13216:[[
99,
109,
178],
256],
13217:[[
109,
178],
256],
13218:[[
107,
109,
178],
256],
13219:[[
109,
109,
179],
256],
13220:[[
99,
109,
179],
256],
13221:[[
109,
179],
256],
13222:[[
107,
109,
179],
256],
13223:[[
109,
8725,
115],
256],
13224:[[
109,
8725,
115,
178],
256],
13225:[[
80,
97],
256],
13226:[[
107,
80,
97],
256],
13227:[[
77,
80,
97],
256],
13228:[[
71,
80,
97],
256],
13229:[[
114,
97,
100],
256],
13230:[[
114,
97,
100,
8725,
115],
256],
13231:[[
114,
97,
100,
8725,
115,
178],
256],
13232:[[
112,
115],
256],
13233:[[
110,
115],
256],
13234:[[
956,
115],
256],
13235:[[
109,
115],
256],
13236:[[
112,
86],
256],
13237:[[
110,
86],
256],
13238:[[
956,
86],
256],
13239:[[
109,
86],
256],
13240:[[
107,
86],
256],
13241:[[
77,
86],
256],
13242:[[
112,
87],
256],
13243:[[
110,
87],
256],
13244:[[
956,
87],
256],
13245:[[
109,
87],
256],
13246:[[
107,
87],
256],
13247:[[
77,
87],
256],
13248:[[
107,
937],
256],
13249:[[
77,
937],
256],
13250:[[
97,
46,
109,
46],
256],
13251:[[
66,
113],
256],
13252:[[
99,
99],
256],
13253:[[
99,
100],
256],
13254:[[
67,
8725,
107,
103],
256],
13255:[[
67,
111,
46],
256],
13256:[[
100,
66],
256],
13257:[[
71,
121],
256],
13258:[[
104,
97],
256],
13259:[[
72,
80],
256],
13260:[[
105,
110],
256],
13261:[[
75,
75],
256],
13262:[[
75,
77],
256],
13263:[[
107,
116],
256],
13264:[[
108,
109],
256],
13265:[[
108,
110],
256],
13266:[[
108,
111,
103],
256],
13267:[[
108,
120],
256],
13268:[[
109,
98],
256],
13269:[[
109,
105,
108],
256],
13270:[[
109,
111,
108],
256],
13271:[[
80,
72],
256],
13272:[[
112,
46,
109,
46],
256],
13273:[[
80,
80,
77],
256],
13274:[[
80,
82],
256],
13275:[[
115,
114],
256],
13276:[[
83,
118],
256],
13277:[[
87,
98],
256],
13278:[[
86,
8725,
109],
256],
13279:[[
65,
8725,
109],
256],
13280:[[
49,
26085],
256],
13281:[[
50,
26085],
256],
13282:[[
51,
26085],
256],
13283:[[
52,
26085],
256],
13284:[[
53,
26085],
256],
13285:[[
54,
26085],
256],
13286:[[
55,
26085],
256],
13287:[[
56,
26085],
256],
13288:[[
57,
26085],
256],
13289:[[
49,
48,
26085],
256],
13290:[[
49,
49,
26085],
256],
13291:[[
49,
50,
26085],
256],
13292:[[
49,
51,
26085],
256],
13293:[[
49,
52,
26085],
256],
13294:[[
49,
53,
26085],
256],
13295:[[
49,
54,
26085],
256],
13296:[[
49,
55,
26085],
256],
13297:[[
49,
56,
26085],
256],
13298:[[
49,
57,
26085],
256],
13299:[[
50,
48,
26085],
256],
13300:[[
50,
49,
26085],
256],
13301:[[
50,
50,
26085],
256],
13302:[[
50,
51,
26085],
256],
13303:[[
50,
52,
26085],
256],
13304:[[
50,
53,
26085],
256],
13305:[[
50,
54,
26085],
256],
13306:[[
50,
55,
26085],
256],
13307:[[
50,
56,
26085],
256],
13308:[[
50,
57,
26085],
256],
13309:[[
51,
48,
26085],
256],
13310:[[
51,
49,
26085],
256],
13311:[[
103,
97,
108],
256]},
6926 27136:{
92912:[,
1],
92913:[,
1],
92914:[,
1],
92915:[,
1],
92916:[,
1]},
6927 27392:{
92976:[,
230],
92977:[,
230],
92978:[,
230],
92979:[,
230],
92980:[,
230],
92981:[,
230],
92982:[,
230]},
6928 42496:{
42607:[,
230],
42612:[,
230],
42613:[,
230],
42614:[,
230],
42615:[,
230],
42616:[,
230],
42617:[,
230],
42618:[,
230],
42619:[,
230],
42620:[,
230],
42621:[,
230],
42652:[[
1098],
256],
42653:[[
1100],
256],
42655:[,
230],
42736:[,
230],
42737:[,
230]},
6929 42752:{
42864:[[
42863],
256],
43000:[[
294],
256],
43001:[[
339],
256]},
6930 43008:{
43014:[,
9],
43204:[,
9],
43232:[,
230],
43233:[,
230],
43234:[,
230],
43235:[,
230],
43236:[,
230],
43237:[,
230],
43238:[,
230],
43239:[,
230],
43240:[,
230],
43241:[,
230],
43242:[,
230],
43243:[,
230],
43244:[,
230],
43245:[,
230],
43246:[,
230],
43247:[,
230],
43248:[,
230],
43249:[,
230]},
6931 43264:{
43307:[,
220],
43308:[,
220],
43309:[,
220],
43347:[,
9],
43443:[,
7],
43456:[,
9]},
6932 43520:{
43696:[,
230],
43698:[,
230],
43699:[,
230],
43700:[,
220],
43703:[,
230],
43704:[,
230],
43710:[,
230],
43711:[,
230],
43713:[,
230],
43766:[,
9]},
6933 43776:{
43868:[[
42791],
256],
43869:[[
43831],
256],
43870:[[
619],
256],
43871:[[
43858],
256],
44013:[,
9]},
6934 48128:{
113822:[,
1]},
6935 53504:{
119134:[[
119127,
119141],
512],
119135:[[
119128,
119141],
512],
119136:[[
119135,
119150],
512],
119137:[[
119135,
119151],
512],
119138:[[
119135,
119152],
512],
119139:[[
119135,
119153],
512],
119140:[[
119135,
119154],
512],
119141:[,
216],
119142:[,
216],
119143:[,
1],
119144:[,
1],
119145:[,
1],
119149:[,
226],
119150:[,
216],
119151:[,
216],
119152:[,
216],
119153:[,
216],
119154:[,
216],
119163:[,
220],
119164:[,
220],
119165:[,
220],
119166:[,
220],
119167:[,
220],
119168:[,
220],
119169:[,
220],
119170:[,
220],
119173:[,
230],
119174:[,
230],
119175:[,
230],
119176:[,
230],
119177:[,
230],
119178:[,
220],
119179:[,
220],
119210:[,
230],
119211:[,
230],
119212:[,
230],
119213:[,
230],
119227:[[
119225,
119141],
512],
119228:[[
119226,
119141],
512],
119229:[[
119227,
119150],
512],
119230:[[
119228,
119150],
512],
119231:[[
119227,
119151],
512],
119232:[[
119228,
119151],
512]},
6936 53760:{
119362:[,
230],
119363:[,
230],
119364:[,
230]},
6937 54272:{
119808:[[
65],
256],
119809:[[
66],
256],
119810:[[
67],
256],
119811:[[
68],
256],
119812:[[
69],
256],
119813:[[
70],
256],
119814:[[
71],
256],
119815:[[
72],
256],
119816:[[
73],
256],
119817:[[
74],
256],
119818:[[
75],
256],
119819:[[
76],
256],
119820:[[
77],
256],
119821:[[
78],
256],
119822:[[
79],
256],
119823:[[
80],
256],
119824:[[
81],
256],
119825:[[
82],
256],
119826:[[
83],
256],
119827:[[
84],
256],
119828:[[
85],
256],
119829:[[
86],
256],
119830:[[
87],
256],
119831:[[
88],
256],
119832:[[
89],
256],
119833:[[
90],
256],
119834:[[
97],
256],
119835:[[
98],
256],
119836:[[
99],
256],
119837:[[
100],
256],
119838:[[
101],
256],
119839:[[
102],
256],
119840:[[
103],
256],
119841:[[
104],
256],
119842:[[
105],
256],
119843:[[
106],
256],
119844:[[
107],
256],
119845:[[
108],
256],
119846:[[
109],
256],
119847:[[
110],
256],
119848:[[
111],
256],
119849:[[
112],
256],
119850:[[
113],
256],
119851:[[
114],
256],
119852:[[
115],
256],
119853:[[
116],
256],
119854:[[
117],
256],
119855:[[
118],
256],
119856:[[
119],
256],
119857:[[
120],
256],
119858:[[
121],
256],
119859:[[
122],
256],
119860:[[
65],
256],
119861:[[
66],
256],
119862:[[
67],
256],
119863:[[
68],
256],
119864:[[
69],
256],
119865:[[
70],
256],
119866:[[
71],
256],
119867:[[
72],
256],
119868:[[
73],
256],
119869:[[
74],
256],
119870:[[
75],
256],
119871:[[
76],
256],
119872:[[
77],
256],
119873:[[
78],
256],
119874:[[
79],
256],
119875:[[
80],
256],
119876:[[
81],
256],
119877:[[
82],
256],
119878:[[
83],
256],
119879:[[
84],
256],
119880:[[
85],
256],
119881:[[
86],
256],
119882:[[
87],
256],
119883:[[
88],
256],
119884:[[
89],
256],
119885:[[
90],
256],
119886:[[
97],
256],
119887:[[
98],
256],
119888:[[
99],
256],
119889:[[
100],
256],
119890:[[
101],
256],
119891:[[
102],
256],
119892:[[
103],
256],
119894:[[
105],
256],
119895:[[
106],
256],
119896:[[
107],
256],
119897:[[
108],
256],
119898:[[
109],
256],
119899:[[
110],
256],
119900:[[
111],
256],
119901:[[
112],
256],
119902:[[
113],
256],
119903:[[
114],
256],
119904:[[
115],
256],
119905:[[
116],
256],
119906:[[
117],
256],
119907:[[
118],
256],
119908:[[
119],
256],
119909:[[
120],
256],
119910:[[
121],
256],
119911:[[
122],
256],
119912:[[
65],
256],
119913:[[
66],
256],
119914:[[
67],
256],
119915:[[
68],
256],
119916:[[
69],
256],
119917:[[
70],
256],
119918:[[
71],
256],
119919:[[
72],
256],
119920:[[
73],
256],
119921:[[
74],
256],
119922:[[
75],
256],
119923:[[
76],
256],
119924:[[
77],
256],
119925:[[
78],
256],
119926:[[
79],
256],
119927:[[
80],
256],
119928:[[
81],
256],
119929:[[
82],
256],
119930:[[
83],
256],
119931:[[
84],
256],
119932:[[
85],
256],
119933:[[
86],
256],
119934:[[
87],
256],
119935:[[
88],
256],
119936:[[
89],
256],
119937:[[
90],
256],
119938:[[
97],
256],
119939:[[
98],
256],
119940:[[
99],
256],
119941:[[
100],
256],
119942:[[
101],
256],
119943:[[
102],
256],
119944:[[
103],
256],
119945:[[
104],
256],
119946:[[
105],
256],
119947:[[
106],
256],
119948:[[
107],
256],
119949:[[
108],
256],
119950:[[
109],
256],
119951:[[
110],
256],
119952:[[
111],
256],
119953:[[
112],
256],
119954:[[
113],
256],
119955:[[
114],
256],
119956:[[
115],
256],
119957:[[
116],
256],
119958:[[
117],
256],
119959:[[
118],
256],
119960:[[
119],
256],
119961:[[
120],
256],
119962:[[
121],
256],
119963:[[
122],
256],
119964:[[
65],
256],
119966:[[
67],
256],
119967:[[
68],
256],
119970:[[
71],
256],
119973:[[
74],
256],
119974:[[
75],
256],
119977:[[
78],
256],
119978:[[
79],
256],
119979:[[
80],
256],
119980:[[
81],
256],
119982:[[
83],
256],
119983:[[
84],
256],
119984:[[
85],
256],
119985:[[
86],
256],
119986:[[
87],
256],
119987:[[
88],
256],
119988:[[
89],
256],
119989:[[
90],
256],
119990:[[
97],
256],
119991:[[
98],
256],
119992:[[
99],
256],
119993:[[
100],
256],
119995:[[
102],
256],
119997:[[
104],
256],
119998:[[
105],
256],
119999:[[
106],
256],
120000:[[
107],
256],
120001:[[
108],
256],
120002:[[
109],
256],
120003:[[
110],
256],
120005:[[
112],
256],
120006:[[
113],
256],
120007:[[
114],
256],
120008:[[
115],
256],
120009:[[
116],
256],
120010:[[
117],
256],
120011:[[
118],
256],
120012:[[
119],
256],
120013:[[
120],
256],
120014:[[
121],
256],
120015:[[
122],
256],
120016:[[
65],
256],
120017:[[
66],
256],
120018:[[
67],
256],
120019:[[
68],
256],
120020:[[
69],
256],
120021:[[
70],
256],
120022:[[
71],
256],
120023:[[
72],
256],
120024:[[
73],
256],
120025:[[
74],
256],
120026:[[
75],
256],
120027:[[
76],
256],
120028:[[
77],
256],
120029:[[
78],
256],
120030:[[
79],
256],
120031:[[
80],
256],
120032:[[
81],
256],
120033:[[
82],
256],
120034:[[
83],
256],
120035:[[
84],
256],
120036:[[
85],
256],
120037:[[
86],
256],
120038:[[
87],
256],
120039:[[
88],
256],
120040:[[
89],
256],
120041:[[
90],
256],
120042:[[
97],
256],
120043:[[
98],
256],
120044:[[
99],
256],
120045:[[
100],
256],
120046:[[
101],
256],
120047:[[
102],
256],
120048:[[
103],
256],
120049:[[
104],
256],
120050:[[
105],
256],
120051:[[
106],
256],
120052:[[
107],
256],
120053:[[
108],
256],
120054:[[
109],
256],
120055:[[
110],
256],
120056:[[
111],
256],
120057:[[
112],
256],
120058:[[
113],
256],
120059:[[
114],
256],
120060:[[
115],
256],
120061:[[
116],
256],
120062:[[
117],
256],
120063:[[
118],
256]},
6938 54528:{
120064:[[
119],
256],
120065:[[
120],
256],
120066:[[
121],
256],
120067:[[
122],
256],
120068:[[
65],
256],
120069:[[
66],
256],
120071:[[
68],
256],
120072:[[
69],
256],
120073:[[
70],
256],
120074:[[
71],
256],
120077:[[
74],
256],
120078:[[
75],
256],
120079:[[
76],
256],
120080:[[
77],
256],
120081:[[
78],
256],
120082:[[
79],
256],
120083:[[
80],
256],
120084:[[
81],
256],
120086:[[
83],
256],
120087:[[
84],
256],
120088:[[
85],
256],
120089:[[
86],
256],
120090:[[
87],
256],
120091:[[
88],
256],
120092:[[
89],
256],
120094:[[
97],
256],
120095:[[
98],
256],
120096:[[
99],
256],
120097:[[
100],
256],
120098:[[
101],
256],
120099:[[
102],
256],
120100:[[
103],
256],
120101:[[
104],
256],
120102:[[
105],
256],
120103:[[
106],
256],
120104:[[
107],
256],
120105:[[
108],
256],
120106:[[
109],
256],
120107:[[
110],
256],
120108:[[
111],
256],
120109:[[
112],
256],
120110:[[
113],
256],
120111:[[
114],
256],
120112:[[
115],
256],
120113:[[
116],
256],
120114:[[
117],
256],
120115:[[
118],
256],
120116:[[
119],
256],
120117:[[
120],
256],
120118:[[
121],
256],
120119:[[
122],
256],
120120:[[
65],
256],
120121:[[
66],
256],
120123:[[
68],
256],
120124:[[
69],
256],
120125:[[
70],
256],
120126:[[
71],
256],
120128:[[
73],
256],
120129:[[
74],
256],
120130:[[
75],
256],
120131:[[
76],
256],
120132:[[
77],
256],
120134:[[
79],
256],
120138:[[
83],
256],
120139:[[
84],
256],
120140:[[
85],
256],
120141:[[
86],
256],
120142:[[
87],
256],
120143:[[
88],
256],
120144:[[
89],
256],
120146:[[
97],
256],
120147:[[
98],
256],
120148:[[
99],
256],
120149:[[
100],
256],
120150:[[
101],
256],
120151:[[
102],
256],
120152:[[
103],
256],
120153:[[
104],
256],
120154:[[
105],
256],
120155:[[
106],
256],
120156:[[
107],
256],
120157:[[
108],
256],
120158:[[
109],
256],
120159:[[
110],
256],
120160:[[
111],
256],
120161:[[
112],
256],
120162:[[
113],
256],
120163:[[
114],
256],
120164:[[
115],
256],
120165:[[
116],
256],
120166:[[
117],
256],
120167:[[
118],
256],
120168:[[
119],
256],
120169:[[
120],
256],
120170:[[
121],
256],
120171:[[
122],
256],
120172:[[
65],
256],
120173:[[
66],
256],
120174:[[
67],
256],
120175:[[
68],
256],
120176:[[
69],
256],
120177:[[
70],
256],
120178:[[
71],
256],
120179:[[
72],
256],
120180:[[
73],
256],
120181:[[
74],
256],
120182:[[
75],
256],
120183:[[
76],
256],
120184:[[
77],
256],
120185:[[
78],
256],
120186:[[
79],
256],
120187:[[
80],
256],
120188:[[
81],
256],
120189:[[
82],
256],
120190:[[
83],
256],
120191:[[
84],
256],
120192:[[
85],
256],
120193:[[
86],
256],
120194:[[
87],
256],
120195:[[
88],
256],
120196:[[
89],
256],
120197:[[
90],
256],
120198:[[
97],
256],
120199:[[
98],
256],
120200:[[
99],
256],
120201:[[
100],
256],
120202:[[
101],
256],
120203:[[
102],
256],
120204:[[
103],
256],
120205:[[
104],
256],
120206:[[
105],
256],
120207:[[
106],
256],
120208:[[
107],
256],
120209:[[
108],
256],
120210:[[
109],
256],
120211:[[
110],
256],
120212:[[
111],
256],
120213:[[
112],
256],
120214:[[
113],
256],
120215:[[
114],
256],
120216:[[
115],
256],
120217:[[
116],
256],
120218:[[
117],
256],
120219:[[
118],
256],
120220:[[
119],
256],
120221:[[
120],
256],
120222:[[
121],
256],
120223:[[
122],
256],
120224:[[
65],
256],
120225:[[
66],
256],
120226:[[
67],
256],
120227:[[
68],
256],
120228:[[
69],
256],
120229:[[
70],
256],
120230:[[
71],
256],
120231:[[
72],
256],
120232:[[
73],
256],
120233:[[
74],
256],
120234:[[
75],
256],
120235:[[
76],
256],
120236:[[
77],
256],
120237:[[
78],
256],
120238:[[
79],
256],
120239:[[
80],
256],
120240:[[
81],
256],
120241:[[
82],
256],
120242:[[
83],
256],
120243:[[
84],
256],
120244:[[
85],
256],
120245:[[
86],
256],
120246:[[
87],
256],
120247:[[
88],
256],
120248:[[
89],
256],
120249:[[
90],
256],
120250:[[
97],
256],
120251:[[
98],
256],
120252:[[
99],
256],
120253:[[
100],
256],
120254:[[
101],
256],
120255:[[
102],
256],
120256:[[
103],
256],
120257:[[
104],
256],
120258:[[
105],
256],
120259:[[
106],
256],
120260:[[
107],
256],
120261:[[
108],
256],
120262:[[
109],
256],
120263:[[
110],
256],
120264:[[
111],
256],
120265:[[
112],
256],
120266:[[
113],
256],
120267:[[
114],
256],
120268:[[
115],
256],
120269:[[
116],
256],
120270:[[
117],
256],
120271:[[
118],
256],
120272:[[
119],
256],
120273:[[
120],
256],
120274:[[
121],
256],
120275:[[
122],
256],
120276:[[
65],
256],
120277:[[
66],
256],
120278:[[
67],
256],
120279:[[
68],
256],
120280:[[
69],
256],
120281:[[
70],
256],
120282:[[
71],
256],
120283:[[
72],
256],
120284:[[
73],
256],
120285:[[
74],
256],
120286:[[
75],
256],
120287:[[
76],
256],
120288:[[
77],
256],
120289:[[
78],
256],
120290:[[
79],
256],
120291:[[
80],
256],
120292:[[
81],
256],
120293:[[
82],
256],
120294:[[
83],
256],
120295:[[
84],
256],
120296:[[
85],
256],
120297:[[
86],
256],
120298:[[
87],
256],
120299:[[
88],
256],
120300:[[
89],
256],
120301:[[
90],
256],
120302:[[
97],
256],
120303:[[
98],
256],
120304:[[
99],
256],
120305:[[
100],
256],
120306:[[
101],
256],
120307:[[
102],
256],
120308:[[
103],
256],
120309:[[
104],
256],
120310:[[
105],
256],
120311:[[
106],
256],
120312:[[
107],
256],
120313:[[
108],
256],
120314:[[
109],
256],
120315:[[
110],
256],
120316:[[
111],
256],
120317:[[
112],
256],
120318:[[
113],
256],
120319:[[
114],
256]},
6939 54784:{
120320:[[
115],
256],
120321:[[
116],
256],
120322:[[
117],
256],
120323:[[
118],
256],
120324:[[
119],
256],
120325:[[
120],
256],
120326:[[
121],
256],
120327:[[
122],
256],
120328:[[
65],
256],
120329:[[
66],
256],
120330:[[
67],
256],
120331:[[
68],
256],
120332:[[
69],
256],
120333:[[
70],
256],
120334:[[
71],
256],
120335:[[
72],
256],
120336:[[
73],
256],
120337:[[
74],
256],
120338:[[
75],
256],
120339:[[
76],
256],
120340:[[
77],
256],
120341:[[
78],
256],
120342:[[
79],
256],
120343:[[
80],
256],
120344:[[
81],
256],
120345:[[
82],
256],
120346:[[
83],
256],
120347:[[
84],
256],
120348:[[
85],
256],
120349:[[
86],
256],
120350:[[
87],
256],
120351:[[
88],
256],
120352:[[
89],
256],
120353:[[
90],
256],
120354:[[
97],
256],
120355:[[
98],
256],
120356:[[
99],
256],
120357:[[
100],
256],
120358:[[
101],
256],
120359:[[
102],
256],
120360:[[
103],
256],
120361:[[
104],
256],
120362:[[
105],
256],
120363:[[
106],
256],
120364:[[
107],
256],
120365:[[
108],
256],
120366:[[
109],
256],
120367:[[
110],
256],
120368:[[
111],
256],
120369:[[
112],
256],
120370:[[
113],
256],
120371:[[
114],
256],
120372:[[
115],
256],
120373:[[
116],
256],
120374:[[
117],
256],
120375:[[
118],
256],
120376:[[
119],
256],
120377:[[
120],
256],
120378:[[
121],
256],
120379:[[
122],
256],
120380:[[
65],
256],
120381:[[
66],
256],
120382:[[
67],
256],
120383:[[
68],
256],
120384:[[
69],
256],
120385:[[
70],
256],
120386:[[
71],
256],
120387:[[
72],
256],
120388:[[
73],
256],
120389:[[
74],
256],
120390:[[
75],
256],
120391:[[
76],
256],
120392:[[
77],
256],
120393:[[
78],
256],
120394:[[
79],
256],
120395:[[
80],
256],
120396:[[
81],
256],
120397:[[
82],
256],
120398:[[
83],
256],
120399:[[
84],
256],
120400:[[
85],
256],
120401:[[
86],
256],
120402:[[
87],
256],
120403:[[
88],
256],
120404:[[
89],
256],
120405:[[
90],
256],
120406:[[
97],
256],
120407:[[
98],
256],
120408:[[
99],
256],
120409:[[
100],
256],
120410:[[
101],
256],
120411:[[
102],
256],
120412:[[
103],
256],
120413:[[
104],
256],
120414:[[
105],
256],
120415:[[
106],
256],
120416:[[
107],
256],
120417:[[
108],
256],
120418:[[
109],
256],
120419:[[
110],
256],
120420:[[
111],
256],
120421:[[
112],
256],
120422:[[
113],
256],
120423:[[
114],
256],
120424:[[
115],
256],
120425:[[
116],
256],
120426:[[
117],
256],
120427:[[
118],
256],
120428:[[
119],
256],
120429:[[
120],
256],
120430:[[
121],
256],
120431:[[
122],
256],
120432:[[
65],
256],
120433:[[
66],
256],
120434:[[
67],
256],
120435:[[
68],
256],
120436:[[
69],
256],
120437:[[
70],
256],
120438:[[
71],
256],
120439:[[
72],
256],
120440:[[
73],
256],
120441:[[
74],
256],
120442:[[
75],
256],
120443:[[
76],
256],
120444:[[
77],
256],
120445:[[
78],
256],
120446:[[
79],
256],
120447:[[
80],
256],
120448:[[
81],
256],
120449:[[
82],
256],
120450:[[
83],
256],
120451:[[
84],
256],
120452:[[
85],
256],
120453:[[
86],
256],
120454:[[
87],
256],
120455:[[
88],
256],
120456:[[
89],
256],
120457:[[
90],
256],
120458:[[
97],
256],
120459:[[
98],
256],
120460:[[
99],
256],
120461:[[
100],
256],
120462:[[
101],
256],
120463:[[
102],
256],
120464:[[
103],
256],
120465:[[
104],
256],
120466:[[
105],
256],
120467:[[
106],
256],
120468:[[
107],
256],
120469:[[
108],
256],
120470:[[
109],
256],
120471:[[
110],
256],
120472:[[
111],
256],
120473:[[
112],
256],
120474:[[
113],
256],
120475:[[
114],
256],
120476:[[
115],
256],
120477:[[
116],
256],
120478:[[
117],
256],
120479:[[
118],
256],
120480:[[
119],
256],
120481:[[
120],
256],
120482:[[
121],
256],
120483:[[
122],
256],
120484:[[
305],
256],
120485:[[
567],
256],
120488:[[
913],
256],
120489:[[
914],
256],
120490:[[
915],
256],
120491:[[
916],
256],
120492:[[
917],
256],
120493:[[
918],
256],
120494:[[
919],
256],
120495:[[
920],
256],
120496:[[
921],
256],
120497:[[
922],
256],
120498:[[
923],
256],
120499:[[
924],
256],
120500:[[
925],
256],
120501:[[
926],
256],
120502:[[
927],
256],
120503:[[
928],
256],
120504:[[
929],
256],
120505:[[
1012],
256],
120506:[[
931],
256],
120507:[[
932],
256],
120508:[[
933],
256],
120509:[[
934],
256],
120510:[[
935],
256],
120511:[[
936],
256],
120512:[[
937],
256],
120513:[[
8711],
256],
120514:[[
945],
256],
120515:[[
946],
256],
120516:[[
947],
256],
120517:[[
948],
256],
120518:[[
949],
256],
120519:[[
950],
256],
120520:[[
951],
256],
120521:[[
952],
256],
120522:[[
953],
256],
120523:[[
954],
256],
120524:[[
955],
256],
120525:[[
956],
256],
120526:[[
957],
256],
120527:[[
958],
256],
120528:[[
959],
256],
120529:[[
960],
256],
120530:[[
961],
256],
120531:[[
962],
256],
120532:[[
963],
256],
120533:[[
964],
256],
120534:[[
965],
256],
120535:[[
966],
256],
120536:[[
967],
256],
120537:[[
968],
256],
120538:[[
969],
256],
120539:[[
8706],
256],
120540:[[
1013],
256],
120541:[[
977],
256],
120542:[[
1008],
256],
120543:[[
981],
256],
120544:[[
1009],
256],
120545:[[
982],
256],
120546:[[
913],
256],
120547:[[
914],
256],
120548:[[
915],
256],
120549:[[
916],
256],
120550:[[
917],
256],
120551:[[
918],
256],
120552:[[
919],
256],
120553:[[
920],
256],
120554:[[
921],
256],
120555:[[
922],
256],
120556:[[
923],
256],
120557:[[
924],
256],
120558:[[
925],
256],
120559:[[
926],
256],
120560:[[
927],
256],
120561:[[
928],
256],
120562:[[
929],
256],
120563:[[
1012],
256],
120564:[[
931],
256],
120565:[[
932],
256],
120566:[[
933],
256],
120567:[[
934],
256],
120568:[[
935],
256],
120569:[[
936],
256],
120570:[[
937],
256],
120571:[[
8711],
256],
120572:[[
945],
256],
120573:[[
946],
256],
120574:[[
947],
256],
120575:[[
948],
256]},
6940 55040:{
120576:[[
949],
256],
120577:[[
950],
256],
120578:[[
951],
256],
120579:[[
952],
256],
120580:[[
953],
256],
120581:[[
954],
256],
120582:[[
955],
256],
120583:[[
956],
256],
120584:[[
957],
256],
120585:[[
958],
256],
120586:[[
959],
256],
120587:[[
960],
256],
120588:[[
961],
256],
120589:[[
962],
256],
120590:[[
963],
256],
120591:[[
964],
256],
120592:[[
965],
256],
120593:[[
966],
256],
120594:[[
967],
256],
120595:[[
968],
256],
120596:[[
969],
256],
120597:[[
8706],
256],
120598:[[
1013],
256],
120599:[[
977],
256],
120600:[[
1008],
256],
120601:[[
981],
256],
120602:[[
1009],
256],
120603:[[
982],
256],
120604:[[
913],
256],
120605:[[
914],
256],
120606:[[
915],
256],
120607:[[
916],
256],
120608:[[
917],
256],
120609:[[
918],
256],
120610:[[
919],
256],
120611:[[
920],
256],
120612:[[
921],
256],
120613:[[
922],
256],
120614:[[
923],
256],
120615:[[
924],
256],
120616:[[
925],
256],
120617:[[
926],
256],
120618:[[
927],
256],
120619:[[
928],
256],
120620:[[
929],
256],
120621:[[
1012],
256],
120622:[[
931],
256],
120623:[[
932],
256],
120624:[[
933],
256],
120625:[[
934],
256],
120626:[[
935],
256],
120627:[[
936],
256],
120628:[[
937],
256],
120629:[[
8711],
256],
120630:[[
945],
256],
120631:[[
946],
256],
120632:[[
947],
256],
120633:[[
948],
256],
120634:[[
949],
256],
120635:[[
950],
256],
120636:[[
951],
256],
120637:[[
952],
256],
120638:[[
953],
256],
120639:[[
954],
256],
120640:[[
955],
256],
120641:[[
956],
256],
120642:[[
957],
256],
120643:[[
958],
256],
120644:[[
959],
256],
120645:[[
960],
256],
120646:[[
961],
256],
120647:[[
962],
256],
120648:[[
963],
256],
120649:[[
964],
256],
120650:[[
965],
256],
120651:[[
966],
256],
120652:[[
967],
256],
120653:[[
968],
256],
120654:[[
969],
256],
120655:[[
8706],
256],
120656:[[
1013],
256],
120657:[[
977],
256],
120658:[[
1008],
256],
120659:[[
981],
256],
120660:[[
1009],
256],
120661:[[
982],
256],
120662:[[
913],
256],
120663:[[
914],
256],
120664:[[
915],
256],
120665:[[
916],
256],
120666:[[
917],
256],
120667:[[
918],
256],
120668:[[
919],
256],
120669:[[
920],
256],
120670:[[
921],
256],
120671:[[
922],
256],
120672:[[
923],
256],
120673:[[
924],
256],
120674:[[
925],
256],
120675:[[
926],
256],
120676:[[
927],
256],
120677:[[
928],
256],
120678:[[
929],
256],
120679:[[
1012],
256],
120680:[[
931],
256],
120681:[[
932],
256],
120682:[[
933],
256],
120683:[[
934],
256],
120684:[[
935],
256],
120685:[[
936],
256],
120686:[[
937],
256],
120687:[[
8711],
256],
120688:[[
945],
256],
120689:[[
946],
256],
120690:[[
947],
256],
120691:[[
948],
256],
120692:[[
949],
256],
120693:[[
950],
256],
120694:[[
951],
256],
120695:[[
952],
256],
120696:[[
953],
256],
120697:[[
954],
256],
120698:[[
955],
256],
120699:[[
956],
256],
120700:[[
957],
256],
120701:[[
958],
256],
120702:[[
959],
256],
120703:[[
960],
256],
120704:[[
961],
256],
120705:[[
962],
256],
120706:[[
963],
256],
120707:[[
964],
256],
120708:[[
965],
256],
120709:[[
966],
256],
120710:[[
967],
256],
120711:[[
968],
256],
120712:[[
969],
256],
120713:[[
8706],
256],
120714:[[
1013],
256],
120715:[[
977],
256],
120716:[[
1008],
256],
120717:[[
981],
256],
120718:[[
1009],
256],
120719:[[
982],
256],
120720:[[
913],
256],
120721:[[
914],
256],
120722:[[
915],
256],
120723:[[
916],
256],
120724:[[
917],
256],
120725:[[
918],
256],
120726:[[
919],
256],
120727:[[
920],
256],
120728:[[
921],
256],
120729:[[
922],
256],
120730:[[
923],
256],
120731:[[
924],
256],
120732:[[
925],
256],
120733:[[
926],
256],
120734:[[
927],
256],
120735:[[
928],
256],
120736:[[
929],
256],
120737:[[
1012],
256],
120738:[[
931],
256],
120739:[[
932],
256],
120740:[[
933],
256],
120741:[[
934],
256],
120742:[[
935],
256],
120743:[[
936],
256],
120744:[[
937],
256],
120745:[[
8711],
256],
120746:[[
945],
256],
120747:[[
946],
256],
120748:[[
947],
256],
120749:[[
948],
256],
120750:[[
949],
256],
120751:[[
950],
256],
120752:[[
951],
256],
120753:[[
952],
256],
120754:[[
953],
256],
120755:[[
954],
256],
120756:[[
955],
256],
120757:[[
956],
256],
120758:[[
957],
256],
120759:[[
958],
256],
120760:[[
959],
256],
120761:[[
960],
256],
120762:[[
961],
256],
120763:[[
962],
256],
120764:[[
963],
256],
120765:[[
964],
256],
120766:[[
965],
256],
120767:[[
966],
256],
120768:[[
967],
256],
120769:[[
968],
256],
120770:[[
969],
256],
120771:[[
8706],
256],
120772:[[
1013],
256],
120773:[[
977],
256],
120774:[[
1008],
256],
120775:[[
981],
256],
120776:[[
1009],
256],
120777:[[
982],
256],
120778:[[
988],
256],
120779:[[
989],
256],
120782:[[
48],
256],
120783:[[
49],
256],
120784:[[
50],
256],
120785:[[
51],
256],
120786:[[
52],
256],
120787:[[
53],
256],
120788:[[
54],
256],
120789:[[
55],
256],
120790:[[
56],
256],
120791:[[
57],
256],
120792:[[
48],
256],
120793:[[
49],
256],
120794:[[
50],
256],
120795:[[
51],
256],
120796:[[
52],
256],
120797:[[
53],
256],
120798:[[
54],
256],
120799:[[
55],
256],
120800:[[
56],
256],
120801:[[
57],
256],
120802:[[
48],
256],
120803:[[
49],
256],
120804:[[
50],
256],
120805:[[
51],
256],
120806:[[
52],
256],
120807:[[
53],
256],
120808:[[
54],
256],
120809:[[
55],
256],
120810:[[
56],
256],
120811:[[
57],
256],
120812:[[
48],
256],
120813:[[
49],
256],
120814:[[
50],
256],
120815:[[
51],
256],
120816:[[
52],
256],
120817:[[
53],
256],
120818:[[
54],
256],
120819:[[
55],
256],
120820:[[
56],
256],
120821:[[
57],
256],
120822:[[
48],
256],
120823:[[
49],
256],
120824:[[
50],
256],
120825:[[
51],
256],
120826:[[
52],
256],
120827:[[
53],
256],
120828:[[
54],
256],
120829:[[
55],
256],
120830:[[
56],
256],
120831:[[
57],
256]},
6941 59392:{
125136:[,
220],
125137:[,
220],
125138:[,
220],
125139:[,
220],
125140:[,
220],
125141:[,
220],
125142:[,
220]},
6942 60928:{
126464:[[
1575],
256],
126465:[[
1576],
256],
126466:[[
1580],
256],
126467:[[
1583],
256],
126469:[[
1608],
256],
126470:[[
1586],
256],
126471:[[
1581],
256],
126472:[[
1591],
256],
126473:[[
1610],
256],
126474:[[
1603],
256],
126475:[[
1604],
256],
126476:[[
1605],
256],
126477:[[
1606],
256],
126478:[[
1587],
256],
126479:[[
1593],
256],
126480:[[
1601],
256],
126481:[[
1589],
256],
126482:[[
1602],
256],
126483:[[
1585],
256],
126484:[[
1588],
256],
126485:[[
1578],
256],
126486:[[
1579],
256],
126487:[[
1582],
256],
126488:[[
1584],
256],
126489:[[
1590],
256],
126490:[[
1592],
256],
126491:[[
1594],
256],
126492:[[
1646],
256],
126493:[[
1722],
256],
126494:[[
1697],
256],
126495:[[
1647],
256],
126497:[[
1576],
256],
126498:[[
1580],
256],
126500:[[
1607],
256],
126503:[[
1581],
256],
126505:[[
1610],
256],
126506:[[
1603],
256],
126507:[[
1604],
256],
126508:[[
1605],
256],
126509:[[
1606],
256],
126510:[[
1587],
256],
126511:[[
1593],
256],
126512:[[
1601],
256],
126513:[[
1589],
256],
126514:[[
1602],
256],
126516:[[
1588],
256],
126517:[[
1578],
256],
126518:[[
1579],
256],
126519:[[
1582],
256],
126521:[[
1590],
256],
126523:[[
1594],
256],
126530:[[
1580],
256],
126535:[[
1581],
256],
126537:[[
1610],
256],
126539:[[
1604],
256],
126541:[[
1606],
256],
126542:[[
1587],
256],
126543:[[
1593],
256],
126545:[[
1589],
256],
126546:[[
1602],
256],
126548:[[
1588],
256],
126551:[[
1582],
256],
126553:[[
1590],
256],
126555:[[
1594],
256],
126557:[[
1722],
256],
126559:[[
1647],
256],
126561:[[
1576],
256],
126562:[[
1580],
256],
126564:[[
1607],
256],
126567:[[
1581],
256],
126568:[[
1591],
256],
126569:[[
1610],
256],
126570:[[
1603],
256],
126572:[[
1605],
256],
126573:[[
1606],
256],
126574:[[
1587],
256],
126575:[[
1593],
256],
126576:[[
1601],
256],
126577:[[
1589],
256],
126578:[[
1602],
256],
126580:[[
1588],
256],
126581:[[
1578],
256],
126582:[[
1579],
256],
126583:[[
1582],
256],
126585:[[
1590],
256],
126586:[[
1592],
256],
126587:[[
1594],
256],
126588:[[
1646],
256],
126590:[[
1697],
256],
126592:[[
1575],
256],
126593:[[
1576],
256],
126594:[[
1580],
256],
126595:[[
1583],
256],
126596:[[
1607],
256],
126597:[[
1608],
256],
126598:[[
1586],
256],
126599:[[
1581],
256],
126600:[[
1591],
256],
126601:[[
1610],
256],
126603:[[
1604],
256],
126604:[[
1605],
256],
126605:[[
1606],
256],
126606:[[
1587],
256],
126607:[[
1593],
256],
126608:[[
1601],
256],
126609:[[
1589],
256],
126610:[[
1602],
256],
126611:[[
1585],
256],
126612:[[
1588],
256],
126613:[[
1578],
256],
126614:[[
1579],
256],
126615:[[
1582],
256],
126616:[[
1584],
256],
126617:[[
1590],
256],
126618:[[
1592],
256],
126619:[[
1594],
256],
126625:[[
1576],
256],
126626:[[
1580],
256],
126627:[[
1583],
256],
126629:[[
1608],
256],
126630:[[
1586],
256],
126631:[[
1581],
256],
126632:[[
1591],
256],
126633:[[
1610],
256],
126635:[[
1604],
256],
126636:[[
1605],
256],
126637:[[
1606],
256],
126638:[[
1587],
256],
126639:[[
1593],
256],
126640:[[
1601],
256],
126641:[[
1589],
256],
126642:[[
1602],
256],
126643:[[
1585],
256],
126644:[[
1588],
256],
126645:[[
1578],
256],
126646:[[
1579],
256],
126647:[[
1582],
256],
126648:[[
1584],
256],
126649:[[
1590],
256],
126650:[[
1592],
256],
126651:[[
1594],
256]},
6943 61696:{
127232:[[
48,
46],
256],
127233:[[
48,
44],
256],
127234:[[
49,
44],
256],
127235:[[
50,
44],
256],
127236:[[
51,
44],
256],
127237:[[
52,
44],
256],
127238:[[
53,
44],
256],
127239:[[
54,
44],
256],
127240:[[
55,
44],
256],
127241:[[
56,
44],
256],
127242:[[
57,
44],
256],
127248:[[
40,
65,
41],
256],
127249:[[
40,
66,
41],
256],
127250:[[
40,
67,
41],
256],
127251:[[
40,
68,
41],
256],
127252:[[
40,
69,
41],
256],
127253:[[
40,
70,
41],
256],
127254:[[
40,
71,
41],
256],
127255:[[
40,
72,
41],
256],
127256:[[
40,
73,
41],
256],
127257:[[
40,
74,
41],
256],
127258:[[
40,
75,
41],
256],
127259:[[
40,
76,
41],
256],
127260:[[
40,
77,
41],
256],
127261:[[
40,
78,
41],
256],
127262:[[
40,
79,
41],
256],
127263:[[
40,
80,
41],
256],
127264:[[
40,
81,
41],
256],
127265:[[
40,
82,
41],
256],
127266:[[
40,
83,
41],
256],
127267:[[
40,
84,
41],
256],
127268:[[
40,
85,
41],
256],
127269:[[
40,
86,
41],
256],
127270:[[
40,
87,
41],
256],
127271:[[
40,
88,
41],
256],
127272:[[
40,
89,
41],
256],
127273:[[
40,
90,
41],
256],
127274:[[
12308,
83,
12309],
256],
127275:[[
67],
256],
127276:[[
82],
256],
127277:[[
67,
68],
256],
127278:[[
87,
90],
256],
127280:[[
65],
256],
127281:[[
66],
256],
127282:[[
67],
256],
127283:[[
68],
256],
127284:[[
69],
256],
127285:[[
70],
256],
127286:[[
71],
256],
127287:[[
72],
256],
127288:[[
73],
256],
127289:[[
74],
256],
127290:[[
75],
256],
127291:[[
76],
256],
127292:[[
77],
256],
127293:[[
78],
256],
127294:[[
79],
256],
127295:[[
80],
256],
127296:[[
81],
256],
127297:[[
82],
256],
127298:[[
83],
256],
127299:[[
84],
256],
127300:[[
85],
256],
127301:[[
86],
256],
127302:[[
87],
256],
127303:[[
88],
256],
127304:[[
89],
256],
127305:[[
90],
256],
127306:[[
72,
86],
256],
127307:[[
77,
86],
256],
127308:[[
83,
68],
256],
127309:[[
83,
83],
256],
127310:[[
80,
80,
86],
256],
127311:[[
87,
67],
256],
127338:[[
77,
67],
256],
127339:[[
77,
68],
256],
127376:[[
68,
74],
256]},
6944 61952:{
127488:[[
12411,
12363],
256],
127489:[[
12467,
12467],
256],
127490:[[
12469],
256],
127504:[[
25163],
256],
127505:[[
23383],
256],
127506:[[
21452],
256],
127507:[[
12487],
256],
127508:[[
20108],
256],
127509:[[
22810],
256],
127510:[[
35299],
256],
127511:[[
22825],
256],
127512:[[
20132],
256],
127513:[[
26144],
256],
127514:[[
28961],
256],
127515:[[
26009],
256],
127516:[[
21069],
256],
127517:[[
24460],
256],
127518:[[
20877],
256],
127519:[[
26032],
256],
127520:[[
21021],
256],
127521:[[
32066],
256],
127522:[[
29983],
256],
127523:[[
36009],
256],
127524:[[
22768],
256],
127525:[[
21561],
256],
127526:[[
28436],
256],
127527:[[
25237],
256],
127528:[[
25429],
256],
127529:[[
19968],
256],
127530:[[
19977],
256],
127531:[[
36938],
256],
127532:[[
24038],
256],
127533:[[
20013],
256],
127534:[[
21491],
256],
127535:[[
25351],
256],
127536:[[
36208],
256],
127537:[[
25171],
256],
127538:[[
31105],
256],
127539:[[
31354],
256],
127540:[[
21512],
256],
127541:[[
28288],
256],
127542:[[
26377],
256],
127543:[[
26376],
256],
127544:[[
30003],
256],
127545:[[
21106],
256],
127546:[[
21942],
256],
127552:[[
12308,
26412,
12309],
256],
127553:[[
12308,
19977,
12309],
256],
127554:[[
12308,
20108,
12309],
256],
127555:[[
12308,
23433,
12309],
256],
127556:[[
12308,
28857,
12309],
256],
127557:[[
12308,
25171,
12309],
256],
127558:[[
12308,
30423,
12309],
256],
127559:[[
12308,
21213,
12309],
256],
127560:[[
12308,
25943,
12309],
256],
127568:[[
24471],
256],
127569:[[
21487],
256]},
6945 63488:{
194560:[[
20029]],
194561:[[
20024]],
194562:[[
20033]],
194563:[[
131362]],
194564:[[
20320]],
194565:[[
20398]],
194566:[[
20411]],
194567:[[
20482]],
194568:[[
20602]],
194569:[[
20633]],
194570:[[
20711]],
194571:[[
20687]],
194572:[[
13470]],
194573:[[
132666]],
194574:[[
20813]],
194575:[[
20820]],
194576:[[
20836]],
194577:[[
20855]],
194578:[[
132380]],
194579:[[
13497]],
194580:[[
20839]],
194581:[[
20877]],
194582:[[
132427]],
194583:[[
20887]],
194584:[[
20900]],
194585:[[
20172]],
194586:[[
20908]],
194587:[[
20917]],
194588:[[
168415]],
194589:[[
20981]],
194590:[[
20995]],
194591:[[
13535]],
194592:[[
21051]],
194593:[[
21062]],
194594:[[
21106]],
194595:[[
21111]],
194596:[[
13589]],
194597:[[
21191]],
194598:[[
21193]],
194599:[[
21220]],
194600:[[
21242]],
194601:[[
21253]],
194602:[[
21254]],
194603:[[
21271]],
194604:[[
21321]],
194605:[[
21329]],
194606:[[
21338]],
194607:[[
21363]],
194608:[[
21373]],
194609:[[
21375]],
194610:[[
21375]],
194611:[[
21375]],
194612:[[
133676]],
194613:[[
28784]],
194614:[[
21450]],
194615:[[
21471]],
194616:[[
133987]],
194617:[[
21483]],
194618:[[
21489]],
194619:[[
21510]],
194620:[[
21662]],
194621:[[
21560]],
194622:[[
21576]],
194623:[[
21608]],
194624:[[
21666]],
194625:[[
21750]],
194626:[[
21776]],
194627:[[
21843]],
194628:[[
21859]],
194629:[[
21892]],
194630:[[
21892]],
194631:[[
21913]],
194632:[[
21931]],
194633:[[
21939]],
194634:[[
21954]],
194635:[[
22294]],
194636:[[
22022]],
194637:[[
22295]],
194638:[[
22097]],
194639:[[
22132]],
194640:[[
20999]],
194641:[[
22766]],
194642:[[
22478]],
194643:[[
22516]],
194644:[[
22541]],
194645:[[
22411]],
194646:[[
22578]],
194647:[[
22577]],
194648:[[
22700]],
194649:[[
136420]],
194650:[[
22770]],
194651:[[
22775]],
194652:[[
22790]],
194653:[[
22810]],
194654:[[
22818]],
194655:[[
22882]],
194656:[[
136872]],
194657:[[
136938]],
194658:[[
23020]],
194659:[[
23067]],
194660:[[
23079]],
194661:[[
23000]],
194662:[[
23142]],
194663:[[
14062]],
194664:[[
14076]],
194665:[[
23304]],
194666:[[
23358]],
194667:[[
23358]],
194668:[[
137672]],
194669:[[
23491]],
194670:[[
23512]],
194671:[[
23527]],
194672:[[
23539]],
194673:[[
138008]],
194674:[[
23551]],
194675:[[
23558]],
194676:[[
24403]],
194677:[[
23586]],
194678:[[
14209]],
194679:[[
23648]],
194680:[[
23662]],
194681:[[
23744]],
194682:[[
23693]],
194683:[[
138724]],
194684:[[
23875]],
194685:[[
138726]],
194686:[[
23918]],
194687:[[
23915]],
194688:[[
23932]],
194689:[[
24033]],
194690:[[
24034]],
194691:[[
14383]],
194692:[[
24061]],
194693:[[
24104]],
194694:[[
24125]],
194695:[[
24169]],
194696:[[
14434]],
194697:[[
139651]],
194698:[[
14460]],
194699:[[
24240]],
194700:[[
24243]],
194701:[[
24246]],
194702:[[
24266]],
194703:[[
172946]],
194704:[[
24318]],
194705:[[
140081]],
194706:[[
140081]],
194707:[[
33281]],
194708:[[
24354]],
194709:[[
24354]],
194710:[[
14535]],
194711:[[
144056]],
194712:[[
156122]],
194713:[[
24418]],
194714:[[
24427]],
194715:[[
14563]],
194716:[[
24474]],
194717:[[
24525]],
194718:[[
24535]],
194719:[[
24569]],
194720:[[
24705]],
194721:[[
14650]],
194722:[[
14620]],
194723:[[
24724]],
194724:[[
141012]],
194725:[[
24775]],
194726:[[
24904]],
194727:[[
24908]],
194728:[[
24910]],
194729:[[
24908]],
194730:[[
24954]],
194731:[[
24974]],
194732:[[
25010]],
194733:[[
24996]],
194734:[[
25007]],
194735:[[
25054]],
194736:[[
25074]],
194737:[[
25078]],
194738:[[
25104]],
194739:[[
25115]],
194740:[[
25181]],
194741:[[
25265]],
194742:[[
25300]],
194743:[[
25424]],
194744:[[
142092]],
194745:[[
25405]],
194746:[[
25340]],
194747:[[
25448]],
194748:[[
25475]],
194749:[[
25572]],
194750:[[
142321]],
194751:[[
25634]],
194752:[[
25541]],
194753:[[
25513]],
194754:[[
14894]],
194755:[[
25705]],
194756:[[
25726]],
194757:[[
25757]],
194758:[[
25719]],
194759:[[
14956]],
194760:[[
25935]],
194761:[[
25964]],
194762:[[
143370]],
194763:[[
26083]],
194764:[[
26360]],
194765:[[
26185]],
194766:[[
15129]],
194767:[[
26257]],
194768:[[
15112]],
194769:[[
15076]],
194770:[[
20882]],
194771:[[
20885]],
194772:[[
26368]],
194773:[[
26268]],
194774:[[
32941]],
194775:[[
17369]],
194776:[[
26391]],
194777:[[
26395]],
194778:[[
26401]],
194779:[[
26462]],
194780:[[
26451]],
194781:[[
144323]],
194782:[[
15177]],
194783:[[
26618]],
194784:[[
26501]],
194785:[[
26706]],
194786:[[
26757]],
194787:[[
144493]],
194788:[[
26766]],
194789:[[
26655]],
194790:[[
26900]],
194791:[[
15261]],
194792:[[
26946]],
194793:[[
27043]],
194794:[[
27114]],
194795:[[
27304]],
194796:[[
145059]],
194797:[[
27355]],
194798:[[
15384]],
194799:[[
27425]],
194800:[[
145575]],
194801:[[
27476]],
194802:[[
15438]],
194803:[[
27506]],
194804:[[
27551]],
194805:[[
27578]],
194806:[[
27579]],
194807:[[
146061]],
194808:[[
138507]],
194809:[[
146170]],
194810:[[
27726]],
194811:[[
146620]],
194812:[[
27839]],
194813:[[
27853]],
194814:[[
27751]],
194815:[[
27926]]},
6946 63744:{
63744:[[
35912]],
63745:[[
26356]],
63746:[[
36554]],
63747:[[
36040]],
63748:[[
28369]],
63749:[[
20018]],
63750:[[
21477]],
63751:[[
40860]],
63752:[[
40860]],
63753:[[
22865]],
63754:[[
37329]],
63755:[[
21895]],
63756:[[
22856]],
63757:[[
25078]],
63758:[[
30313]],
63759:[[
32645]],
63760:[[
34367]],
63761:[[
34746]],
63762:[[
35064]],
63763:[[
37007]],
63764:[[
27138]],
63765:[[
27931]],
63766:[[
28889]],
63767:[[
29662]],
63768:[[
33853]],
63769:[[
37226]],
63770:[[
39409]],
63771:[[
20098]],
63772:[[
21365]],
63773:[[
27396]],
63774:[[
29211]],
63775:[[
34349]],
63776:[[
40478]],
63777:[[
23888]],
63778:[[
28651]],
63779:[[
34253]],
63780:[[
35172]],
63781:[[
25289]],
63782:[[
33240]],
63783:[[
34847]],
63784:[[
24266]],
63785:[[
26391]],
63786:[[
28010]],
63787:[[
29436]],
63788:[[
37070]],
63789:[[
20358]],
63790:[[
20919]],
63791:[[
21214]],
63792:[[
25796]],
63793:[[
27347]],
63794:[[
29200]],
63795:[[
30439]],
63796:[[
32769]],
63797:[[
34310]],
63798:[[
34396]],
63799:[[
36335]],
63800:[[
38706]],
63801:[[
39791]],
63802:[[
40442]],
63803:[[
30860]],
63804:[[
31103]],
63805:[[
32160]],
63806:[[
33737]],
63807:[[
37636]],
63808:[[
40575]],
63809:[[
35542]],
63810:[[
22751]],
63811:[[
24324]],
63812:[[
31840]],
63813:[[
32894]],
63814:[[
29282]],
63815:[[
30922]],
63816:[[
36034]],
63817:[[
38647]],
63818:[[
22744]],
63819:[[
23650]],
63820:[[
27155]],
63821:[[
28122]],
63822:[[
28431]],
63823:[[
32047]],
63824:[[
32311]],
63825:[[
38475]],
63826:[[
21202]],
63827:[[
32907]],
63828:[[
20956]],
63829:[[
20940]],
63830:[[
31260]],
63831:[[
32190]],
63832:[[
33777]],
63833:[[
38517]],
63834:[[
35712]],
63835:[[
25295]],
63836:[[
27138]],
63837:[[
35582]],
63838:[[
20025]],
63839:[[
23527]],
63840:[[
24594]],
63841:[[
29575]],
63842:[[
30064]],
63843:[[
21271]],
63844:[[
30971]],
63845:[[
20415]],
63846:[[
24489]],
63847:[[
19981]],
63848:[[
27852]],
63849:[[
25976]],
63850:[[
32034]],
63851:[[
21443]],
63852:[[
22622]],
63853:[[
30465]],
63854:[[
33865]],
63855:[[
35498]],
63856:[[
27578]],
63857:[[
36784]],
63858:[[
27784]],
63859:[[
25342]],
63860:[[
33509]],
63861:[[
25504]],
63862:[[
30053]],
63863:[[
20142]],
63864:[[
20841]],
63865:[[
20937]],
63866:[[
26753]],
63867:[[
31975]],
63868:[[
33391]],
63869:[[
35538]],
63870:[[
37327]],
63871:[[
21237]],
63872:[[
21570]],
63873:[[
22899]],
63874:[[
24300]],
63875:[[
26053]],
63876:[[
28670]],
63877:[[
31018]],
63878:[[
38317]],
63879:[[
39530]],
63880:[[
40599]],
63881:[[
40654]],
63882:[[
21147]],
63883:[[
26310]],
63884:[[
27511]],
63885:[[
36706]],
63886:[[
24180]],
63887:[[
24976]],
63888:[[
25088]],
63889:[[
25754]],
63890:[[
28451]],
63891:[[
29001]],
63892:[[
29833]],
63893:[[
31178]],
63894:[[
32244]],
63895:[[
32879]],
63896:[[
36646]],
63897:[[
34030]],
63898:[[
36899]],
63899:[[
37706]],
63900:[[
21015]],
63901:[[
21155]],
63902:[[
21693]],
63903:[[
28872]],
63904:[[
35010]],
63905:[[
35498]],
63906:[[
24265]],
63907:[[
24565]],
63908:[[
25467]],
63909:[[
27566]],
63910:[[
31806]],
63911:[[
29557]],
63912:[[
20196]],
63913:[[
22265]],
63914:[[
23527]],
63915:[[
23994]],
63916:[[
24604]],
63917:[[
29618]],
63918:[[
29801]],
63919:[[
32666]],
63920:[[
32838]],
63921:[[
37428]],
63922:[[
38646]],
63923:[[
38728]],
63924:[[
38936]],
63925:[[
20363]],
63926:[[
31150]],
63927:[[
37300]],
63928:[[
38584]],
63929:[[
24801]],
63930:[[
20102]],
63931:[[
20698]],
63932:[[
23534]],
63933:[[
23615]],
63934:[[
26009]],
63935:[[
27138]],
63936:[[
29134]],
63937:[[
30274]],
63938:[[
34044]],
63939:[[
36988]],
63940:[[
40845]],
63941:[[
26248]],
63942:[[
38446]],
63943:[[
21129]],
63944:[[
26491]],
63945:[[
26611]],
63946:[[
27969]],
63947:[[
28316]],
63948:[[
29705]],
63949:[[
30041]],
63950:[[
30827]],
63951:[[
32016]],
63952:[[
39006]],
63953:[[
20845]],
63954:[[
25134]],
63955:[[
38520]],
63956:[[
20523]],
63957:[[
23833]],
63958:[[
28138]],
63959:[[
36650]],
63960:[[
24459]],
63961:[[
24900]],
63962:[[
26647]],
63963:[[
29575]],
63964:[[
38534]],
63965:[[
21033]],
63966:[[
21519]],
63967:[[
23653]],
63968:[[
26131]],
63969:[[
26446]],
63970:[[
26792]],
63971:[[
27877]],
63972:[[
29702]],
63973:[[
30178]],
63974:[[
32633]],
63975:[[
35023]],
63976:[[
35041]],
63977:[[
37324]],
63978:[[
38626]],
63979:[[
21311]],
63980:[[
28346]],
63981:[[
21533]],
63982:[[
29136]],
63983:[[
29848]],
63984:[[
34298]],
63985:[[
38563]],
63986:[[
40023]],
63987:[[
40607]],
63988:[[
26519]],
63989:[[
28107]],
63990:[[
33256]],
63991:[[
31435]],
63992:[[
31520]],
63993:[[
31890]],
63994:[[
29376]],
63995:[[
28825]],
63996:[[
35672]],
63997:[[
20160]],
63998:[[
33590]],
63999:[[
21050]],
194816:[[
27966]],
194817:[[
28023]],
194818:[[
27969]],
194819:[[
28009]],
194820:[[
28024]],
194821:[[
28037]],
194822:[[
146718]],
194823:[[
27956]],
194824:[[
28207]],
194825:[[
28270]],
194826:[[
15667]],
194827:[[
28363]],
194828:[[
28359]],
194829:[[
147153]],
194830:[[
28153]],
194831:[[
28526]],
194832:[[
147294]],
194833:[[
147342]],
194834:[[
28614]],
194835:[[
28729]],
194836:[[
28702]],
194837:[[
28699]],
194838:[[
15766]],
194839:[[
28746]],
194840:[[
28797]],
194841:[[
28791]],
194842:[[
28845]],
194843:[[
132389]],
194844:[[
28997]],
194845:[[
148067]],
194846:[[
29084]],
194847:[[
148395]],
194848:[[
29224]],
194849:[[
29237]],
194850:[[
29264]],
194851:[[
149000]],
194852:[[
29312]],
194853:[[
29333]],
194854:[[
149301]],
194855:[[
149524]],
194856:[[
29562]],
194857:[[
29579]],
194858:[[
16044]],
194859:[[
29605]],
194860:[[
16056]],
194861:[[
16056]],
194862:[[
29767]],
194863:[[
29788]],
194864:[[
29809]],
194865:[[
29829]],
194866:[[
29898]],
194867:[[
16155]],
194868:[[
29988]],
194869:[[
150582]],
194870:[[
30014]],
194871:[[
150674]],
194872:[[
30064]],
194873:[[
139679]],
194874:[[
30224]],
194875:[[
151457]],
194876:[[
151480]],
194877:[[
151620]],
194878:[[
16380]],
194879:[[
16392]],
194880:[[
30452]],
194881:[[
151795]],
194882:[[
151794]],
194883:[[
151833]],
194884:[[
151859]],
194885:[[
30494]],
194886:[[
30495]],
194887:[[
30495]],
194888:[[
30538]],
194889:[[
16441]],
194890:[[
30603]],
194891:[[
16454]],
194892:[[
16534]],
194893:[[
152605]],
194894:[[
30798]],
194895:[[
30860]],
194896:[[
30924]],
194897:[[
16611]],
194898:[[
153126]],
194899:[[
31062]],
194900:[[
153242]],
194901:[[
153285]],
194902:[[
31119]],
194903:[[
31211]],
194904:[[
16687]],
194905:[[
31296]],
194906:[[
31306]],
194907:[[
31311]],
194908:[[
153980]],
194909:[[
154279]],
194910:[[
154279]],
194911:[[
31470]],
194912:[[
16898]],
194913:[[
154539]],
194914:[[
31686]],
194915:[[
31689]],
194916:[[
16935]],
194917:[[
154752]],
194918:[[
31954]],
194919:[[
17056]],
194920:[[
31976]],
194921:[[
31971]],
194922:[[
32000]],
194923:[[
155526]],
194924:[[
32099]],
194925:[[
17153]],
194926:[[
32199]],
194927:[[
32258]],
194928:[[
32325]],
194929:[[
17204]],
194930:[[
156200]],
194931:[[
156231]],
194932:[[
17241]],
194933:[[
156377]],
194934:[[
32634]],
194935:[[
156478]],
194936:[[
32661]],
194937:[[
32762]],
194938:[[
32773]],
194939:[[
156890]],
194940:[[
156963]],
194941:[[
32864]],
194942:[[
157096]],
194943:[[
32880]],
194944:[[
144223]],
194945:[[
17365]],
194946:[[
32946]],
194947:[[
33027]],
194948:[[
17419]],
194949:[[
33086]],
194950:[[
23221]],
194951:[[
157607]],
194952:[[
157621]],
194953:[[
144275]],
194954:[[
144284]],
194955:[[
33281]],
194956:[[
33284]],
194957:[[
36766]],
194958:[[
17515]],
194959:[[
33425]],
194960:[[
33419]],
194961:[[
33437]],
194962:[[
21171]],
194963:[[
33457]],
194964:[[
33459]],
194965:[[
33469]],
194966:[[
33510]],
194967:[[
158524]],
194968:[[
33509]],
194969:[[
33565]],
194970:[[
33635]],
194971:[[
33709]],
194972:[[
33571]],
194973:[[
33725]],
194974:[[
33767]],
194975:[[
33879]],
194976:[[
33619]],
194977:[[
33738]],
194978:[[
33740]],
194979:[[
33756]],
194980:[[
158774]],
194981:[[
159083]],
194982:[[
158933]],
194983:[[
17707]],
194984:[[
34033]],
194985:[[
34035]],
194986:[[
34070]],
194987:[[
160714]],
194988:[[
34148]],
194989:[[
159532]],
194990:[[
17757]],
194991:[[
17761]],
194992:[[
159665]],
194993:[[
159954]],
194994:[[
17771]],
194995:[[
34384]],
194996:[[
34396]],
194997:[[
34407]],
194998:[[
34409]],
194999:[[
34473]],
195000:[[
34440]],
195001:[[
34574]],
195002:[[
34530]],
195003:[[
34681]],
195004:[[
34600]],
195005:[[
34667]],
195006:[[
34694]],
195007:[[
17879]],
195008:[[
34785]],
195009:[[
34817]],
195010:[[
17913]],
195011:[[
34912]],
195012:[[
34915]],
195013:[[
161383]],
195014:[[
35031]],
195015:[[
35038]],
195016:[[
17973]],
195017:[[
35066]],
195018:[[
13499]],
195019:[[
161966]],
195020:[[
162150]],
195021:[[
18110]],
195022:[[
18119]],
195023:[[
35488]],
195024:[[
35565]],
195025:[[
35722]],
195026:[[
35925]],
195027:[[
162984]],
195028:[[
36011]],
195029:[[
36033]],
195030:[[
36123]],
195031:[[
36215]],
195032:[[
163631]],
195033:[[
133124]],
195034:[[
36299]],
195035:[[
36284]],
195036:[[
36336]],
195037:[[
133342]],
195038:[[
36564]],
195039:[[
36664]],
195040:[[
165330]],
195041:[[
165357]],
195042:[[
37012]],
195043:[[
37105]],
195044:[[
37137]],
195045:[[
165678]],
195046:[[
37147]],
195047:[[
37432]],
195048:[[
37591]],
195049:[[
37592]],
195050:[[
37500]],
195051:[[
37881]],
195052:[[
37909]],
195053:[[
166906]],
195054:[[
38283]],
195055:[[
18837]],
195056:[[
38327]],
195057:[[
167287]],
195058:[[
18918]],
195059:[[
38595]],
195060:[[
23986]],
195061:[[
38691]],
195062:[[
168261]],
195063:[[
168474]],
195064:[[
19054]],
195065:[[
19062]],
195066:[[
38880]],
195067:[[
168970]],
195068:[[
19122]],
195069:[[
169110]],
195070:[[
38923]],
195071:[[
38923]]},
6947 64000:{
64000:[[
20999]],
64001:[[
24230]],
64002:[[
25299]],
64003:[[
31958]],
64004:[[
23429]],
64005:[[
27934]],
64006:[[
26292]],
64007:[[
36667]],
64008:[[
34892]],
64009:[[
38477]],
64010:[[
35211]],
64011:[[
24275]],
64012:[[
20800]],
64013:[[
21952]],
64016:[[
22618]],
64018:[[
26228]],
64021:[[
20958]],
64022:[[
29482]],
64023:[[
30410]],
64024:[[
31036]],
64025:[[
31070]],
64026:[[
31077]],
64027:[[
31119]],
64028:[[
38742]],
64029:[[
31934]],
64030:[[
32701]],
64032:[[
34322]],
64034:[[
35576]],
64037:[[
36920]],
64038:[[
37117]],
64042:[[
39151]],
64043:[[
39164]],
64044:[[
39208]],
64045:[[
40372]],
64046:[[
37086]],
64047:[[
38583]],
64048:[[
20398]],
64049:[[
20711]],
64050:[[
20813]],
64051:[[
21193]],
64052:[[
21220]],
64053:[[
21329]],
64054:[[
21917]],
64055:[[
22022]],
64056:[[
22120]],
64057:[[
22592]],
64058:[[
22696]],
64059:[[
23652]],
64060:[[
23662]],
64061:[[
24724]],
64062:[[
24936]],
64063:[[
24974]],
64064:[[
25074]],
64065:[[
25935]],
64066:[[
26082]],
64067:[[
26257]],
64068:[[
26757]],
64069:[[
28023]],
64070:[[
28186]],
64071:[[
28450]],
64072:[[
29038]],
64073:[[
29227]],
64074:[[
29730]],
64075:[[
30865]],
64076:[[
31038]],
64077:[[
31049]],
64078:[[
31048]],
64079:[[
31056]],
64080:[[
31062]],
64081:[[
31069]],
64082:[[
31117]],
64083:[[
31118]],
64084:[[
31296]],
64085:[[
31361]],
64086:[[
31680]],
64087:[[
32244]],
64088:[[
32265]],
64089:[[
32321]],
64090:[[
32626]],
64091:[[
32773]],
64092:[[
33261]],
64093:[[
33401]],
64094:[[
33401]],
64095:[[
33879]],
64096:[[
35088]],
64097:[[
35222]],
64098:[[
35585]],
64099:[[
35641]],
64100:[[
36051]],
64101:[[
36104]],
64102:[[
36790]],
64103:[[
36920]],
64104:[[
38627]],
64105:[[
38911]],
64106:[[
38971]],
64107:[[
24693]],
64108:[[
148206]],
64109:[[
33304]],
64112:[[
20006]],
64113:[[
20917]],
64114:[[
20840]],
64115:[[
20352]],
64116:[[
20805]],
64117:[[
20864]],
64118:[[
21191]],
64119:[[
21242]],
64120:[[
21917]],
64121:[[
21845]],
64122:[[
21913]],
64123:[[
21986]],
64124:[[
22618]],
64125:[[
22707]],
64126:[[
22852]],
64127:[[
22868]],
64128:[[
23138]],
64129:[[
23336]],
64130:[[
24274]],
64131:[[
24281]],
64132:[[
24425]],
64133:[[
24493]],
64134:[[
24792]],
64135:[[
24910]],
64136:[[
24840]],
64137:[[
24974]],
64138:[[
24928]],
64139:[[
25074]],
64140:[[
25140]],
64141:[[
25540]],
64142:[[
25628]],
64143:[[
25682]],
64144:[[
25942]],
64145:[[
26228]],
64146:[[
26391]],
64147:[[
26395]],
64148:[[
26454]],
64149:[[
27513]],
64150:[[
27578]],
64151:[[
27969]],
64152:[[
28379]],
64153:[[
28363]],
64154:[[
28450]],
64155:[[
28702]],
64156:[[
29038]],
64157:[[
30631]],
64158:[[
29237]],
64159:[[
29359]],
64160:[[
29482]],
64161:[[
29809]],
64162:[[
29958]],
64163:[[
30011]],
64164:[[
30237]],
64165:[[
30239]],
64166:[[
30410]],
64167:[[
30427]],
64168:[[
30452]],
64169:[[
30538]],
64170:[[
30528]],
64171:[[
30924]],
64172:[[
31409]],
64173:[[
31680]],
64174:[[
31867]],
64175:[[
32091]],
64176:[[
32244]],
64177:[[
32574]],
64178:[[
32773]],
64179:[[
33618]],
64180:[[
33775]],
64181:[[
34681]],
64182:[[
35137]],
64183:[[
35206]],
64184:[[
35222]],
64185:[[
35519]],
64186:[[
35576]],
64187:[[
35531]],
64188:[[
35585]],
64189:[[
35582]],
64190:[[
35565]],
64191:[[
35641]],
64192:[[
35722]],
64193:[[
36104]],
64194:[[
36664]],
64195:[[
36978]],
64196:[[
37273]],
64197:[[
37494]],
64198:[[
38524]],
64199:[[
38627]],
64200:[[
38742]],
64201:[[
38875]],
64202:[[
38911]],
64203:[[
38923]],
64204:[[
38971]],
64205:[[
39698]],
64206:[[
40860]],
64207:[[
141386]],
64208:[[
141380]],
64209:[[
144341]],
64210:[[
15261]],
64211:[[
16408]],
64212:[[
16441]],
64213:[[
152137]],
64214:[[
154832]],
64215:[[
163539]],
64216:[[
40771]],
64217:[[
40846]],
195072:[[
38953]],
195073:[[
169398]],
195074:[[
39138]],
195075:[[
19251]],
195076:[[
39209]],
195077:[[
39335]],
195078:[[
39362]],
195079:[[
39422]],
195080:[[
19406]],
195081:[[
170800]],
195082:[[
39698]],
195083:[[
40000]],
195084:[[
40189]],
195085:[[
19662]],
195086:[[
19693]],
195087:[[
40295]],
195088:[[
172238]],
195089:[[
19704]],
195090:[[
172293]],
195091:[[
172558]],
195092:[[
172689]],
195093:[[
40635]],
195094:[[
19798]],
195095:[[
40697]],
195096:[[
40702]],
195097:[[
40709]],
195098:[[
40719]],
195099:[[
40726]],
195100:[[
40763]],
195101:[[
173568]]},
6948 64256:{
64256:[[
102,
102],
256],
64257:[[
102,
105],
256],
64258:[[
102,
108],
256],
64259:[[
102,
102,
105],
256],
64260:[[
102,
102,
108],
256],
64261:[[
383,
116],
256],
64262:[[
115,
116],
256],
64275:[[
1396,
1398],
256],
64276:[[
1396,
1381],
256],
64277:[[
1396,
1387],
256],
64278:[[
1406,
1398],
256],
64279:[[
1396,
1389],
256],
64285:[[
1497,
1460],
512],
64286:[,
26],
64287:[[
1522,
1463],
512],
64288:[[
1506],
256],
64289:[[
1488],
256],
64290:[[
1491],
256],
64291:[[
1492],
256],
64292:[[
1499],
256],
64293:[[
1500],
256],
64294:[[
1501],
256],
64295:[[
1512],
256],
64296:[[
1514],
256],
64297:[[
43],
256],
64298:[[
1513,
1473],
512],
64299:[[
1513,
1474],
512],
64300:[[
64329,
1473],
512],
64301:[[
64329,
1474],
512],
64302:[[
1488,
1463],
512],
64303:[[
1488,
1464],
512],
64304:[[
1488,
1468],
512],
64305:[[
1489,
1468],
512],
64306:[[
1490,
1468],
512],
64307:[[
1491,
1468],
512],
64308:[[
1492,
1468],
512],
64309:[[
1493,
1468],
512],
64310:[[
1494,
1468],
512],
64312:[[
1496,
1468],
512],
64313:[[
1497,
1468],
512],
64314:[[
1498,
1468],
512],
64315:[[
1499,
1468],
512],
64316:[[
1500,
1468],
512],
64318:[[
1502,
1468],
512],
64320:[[
1504,
1468],
512],
64321:[[
1505,
1468],
512],
64323:[[
1507,
1468],
512],
64324:[[
1508,
1468],
512],
64326:[[
1510,
1468],
512],
64327:[[
1511,
1468],
512],
64328:[[
1512,
1468],
512],
64329:[[
1513,
1468],
512],
64330:[[
1514,
1468],
512],
64331:[[
1493,
1465],
512],
64332:[[
1489,
1471],
512],
64333:[[
1499,
1471],
512],
64334:[[
1508,
1471],
512],
64335:[[
1488,
1500],
256],
64336:[[
1649],
256],
64337:[[
1649],
256],
64338:[[
1659],
256],
64339:[[
1659],
256],
64340:[[
1659],
256],
64341:[[
1659],
256],
64342:[[
1662],
256],
64343:[[
1662],
256],
64344:[[
1662],
256],
64345:[[
1662],
256],
64346:[[
1664],
256],
64347:[[
1664],
256],
64348:[[
1664],
256],
64349:[[
1664],
256],
64350:[[
1658],
256],
64351:[[
1658],
256],
64352:[[
1658],
256],
64353:[[
1658],
256],
64354:[[
1663],
256],
64355:[[
1663],
256],
64356:[[
1663],
256],
64357:[[
1663],
256],
64358:[[
1657],
256],
64359:[[
1657],
256],
64360:[[
1657],
256],
64361:[[
1657],
256],
64362:[[
1700],
256],
64363:[[
1700],
256],
64364:[[
1700],
256],
64365:[[
1700],
256],
64366:[[
1702],
256],
64367:[[
1702],
256],
64368:[[
1702],
256],
64369:[[
1702],
256],
64370:[[
1668],
256],
64371:[[
1668],
256],
64372:[[
1668],
256],
64373:[[
1668],
256],
64374:[[
1667],
256],
64375:[[
1667],
256],
64376:[[
1667],
256],
64377:[[
1667],
256],
64378:[[
1670],
256],
64379:[[
1670],
256],
64380:[[
1670],
256],
64381:[[
1670],
256],
64382:[[
1671],
256],
64383:[[
1671],
256],
64384:[[
1671],
256],
64385:[[
1671],
256],
64386:[[
1677],
256],
64387:[[
1677],
256],
64388:[[
1676],
256],
64389:[[
1676],
256],
64390:[[
1678],
256],
64391:[[
1678],
256],
64392:[[
1672],
256],
64393:[[
1672],
256],
64394:[[
1688],
256],
64395:[[
1688],
256],
64396:[[
1681],
256],
64397:[[
1681],
256],
64398:[[
1705],
256],
64399:[[
1705],
256],
64400:[[
1705],
256],
64401:[[
1705],
256],
64402:[[
1711],
256],
64403:[[
1711],
256],
64404:[[
1711],
256],
64405:[[
1711],
256],
64406:[[
1715],
256],
64407:[[
1715],
256],
64408:[[
1715],
256],
64409:[[
1715],
256],
64410:[[
1713],
256],
64411:[[
1713],
256],
64412:[[
1713],
256],
64413:[[
1713],
256],
64414:[[
1722],
256],
64415:[[
1722],
256],
64416:[[
1723],
256],
64417:[[
1723],
256],
64418:[[
1723],
256],
64419:[[
1723],
256],
64420:[[
1728],
256],
64421:[[
1728],
256],
64422:[[
1729],
256],
64423:[[
1729],
256],
64424:[[
1729],
256],
64425:[[
1729],
256],
64426:[[
1726],
256],
64427:[[
1726],
256],
64428:[[
1726],
256],
64429:[[
1726],
256],
64430:[[
1746],
256],
64431:[[
1746],
256],
64432:[[
1747],
256],
64433:[[
1747],
256],
64467:[[
1709],
256],
64468:[[
1709],
256],
64469:[[
1709],
256],
64470:[[
1709],
256],
64471:[[
1735],
256],
64472:[[
1735],
256],
64473:[[
1734],
256],
64474:[[
1734],
256],
64475:[[
1736],
256],
64476:[[
1736],
256],
64477:[[
1655],
256],
64478:[[
1739],
256],
64479:[[
1739],
256],
64480:[[
1733],
256],
64481:[[
1733],
256],
64482:[[
1737],
256],
64483:[[
1737],
256],
64484:[[
1744],
256],
64485:[[
1744],
256],
64486:[[
1744],
256],
64487:[[
1744],
256],
64488:[[
1609],
256],
64489:[[
1609],
256],
64490:[[
1574,
1575],
256],
64491:[[
1574,
1575],
256],
64492:[[
1574,
1749],
256],
64493:[[
1574,
1749],
256],
64494:[[
1574,
1608],
256],
64495:[[
1574,
1608],
256],
64496:[[
1574,
1735],
256],
64497:[[
1574,
1735],
256],
64498:[[
1574,
1734],
256],
64499:[[
1574,
1734],
256],
64500:[[
1574,
1736],
256],
64501:[[
1574,
1736],
256],
64502:[[
1574,
1744],
256],
64503:[[
1574,
1744],
256],
64504:[[
1574,
1744],
256],
64505:[[
1574,
1609],
256],
64506:[[
1574,
1609],
256],
64507:[[
1574,
1609],
256],
64508:[[
1740],
256],
64509:[[
1740],
256],
64510:[[
1740],
256],
64511:[[
1740],
256]},
6949 64512:{
64512:[[
1574,
1580],
256],
64513:[[
1574,
1581],
256],
64514:[[
1574,
1605],
256],
64515:[[
1574,
1609],
256],
64516:[[
1574,
1610],
256],
64517:[[
1576,
1580],
256],
64518:[[
1576,
1581],
256],
64519:[[
1576,
1582],
256],
64520:[[
1576,
1605],
256],
64521:[[
1576,
1609],
256],
64522:[[
1576,
1610],
256],
64523:[[
1578,
1580],
256],
64524:[[
1578,
1581],
256],
64525:[[
1578,
1582],
256],
64526:[[
1578,
1605],
256],
64527:[[
1578,
1609],
256],
64528:[[
1578,
1610],
256],
64529:[[
1579,
1580],
256],
64530:[[
1579,
1605],
256],
64531:[[
1579,
1609],
256],
64532:[[
1579,
1610],
256],
64533:[[
1580,
1581],
256],
64534:[[
1580,
1605],
256],
64535:[[
1581,
1580],
256],
64536:[[
1581,
1605],
256],
64537:[[
1582,
1580],
256],
64538:[[
1582,
1581],
256],
64539:[[
1582,
1605],
256],
64540:[[
1587,
1580],
256],
64541:[[
1587,
1581],
256],
64542:[[
1587,
1582],
256],
64543:[[
1587,
1605],
256],
64544:[[
1589,
1581],
256],
64545:[[
1589,
1605],
256],
64546:[[
1590,
1580],
256],
64547:[[
1590,
1581],
256],
64548:[[
1590,
1582],
256],
64549:[[
1590,
1605],
256],
64550:[[
1591,
1581],
256],
64551:[[
1591,
1605],
256],
64552:[[
1592,
1605],
256],
64553:[[
1593,
1580],
256],
64554:[[
1593,
1605],
256],
64555:[[
1594,
1580],
256],
64556:[[
1594,
1605],
256],
64557:[[
1601,
1580],
256],
64558:[[
1601,
1581],
256],
64559:[[
1601,
1582],
256],
64560:[[
1601,
1605],
256],
64561:[[
1601,
1609],
256],
64562:[[
1601,
1610],
256],
64563:[[
1602,
1581],
256],
64564:[[
1602,
1605],
256],
64565:[[
1602,
1609],
256],
64566:[[
1602,
1610],
256],
64567:[[
1603,
1575],
256],
64568:[[
1603,
1580],
256],
64569:[[
1603,
1581],
256],
64570:[[
1603,
1582],
256],
64571:[[
1603,
1604],
256],
64572:[[
1603,
1605],
256],
64573:[[
1603,
1609],
256],
64574:[[
1603,
1610],
256],
64575:[[
1604,
1580],
256],
64576:[[
1604,
1581],
256],
64577:[[
1604,
1582],
256],
64578:[[
1604,
1605],
256],
64579:[[
1604,
1609],
256],
64580:[[
1604,
1610],
256],
64581:[[
1605,
1580],
256],
64582:[[
1605,
1581],
256],
64583:[[
1605,
1582],
256],
64584:[[
1605,
1605],
256],
64585:[[
1605,
1609],
256],
64586:[[
1605,
1610],
256],
64587:[[
1606,
1580],
256],
64588:[[
1606,
1581],
256],
64589:[[
1606,
1582],
256],
64590:[[
1606,
1605],
256],
64591:[[
1606,
1609],
256],
64592:[[
1606,
1610],
256],
64593:[[
1607,
1580],
256],
64594:[[
1607,
1605],
256],
64595:[[
1607,
1609],
256],
64596:[[
1607,
1610],
256],
64597:[[
1610,
1580],
256],
64598:[[
1610,
1581],
256],
64599:[[
1610,
1582],
256],
64600:[[
1610,
1605],
256],
64601:[[
1610,
1609],
256],
64602:[[
1610,
1610],
256],
64603:[[
1584,
1648],
256],
64604:[[
1585,
1648],
256],
64605:[[
1609,
1648],
256],
64606:[[
32,
1612,
1617],
256],
64607:[[
32,
1613,
1617],
256],
64608:[[
32,
1614,
1617],
256],
64609:[[
32,
1615,
1617],
256],
64610:[[
32,
1616,
1617],
256],
64611:[[
32,
1617,
1648],
256],
64612:[[
1574,
1585],
256],
64613:[[
1574,
1586],
256],
64614:[[
1574,
1605],
256],
64615:[[
1574,
1606],
256],
64616:[[
1574,
1609],
256],
64617:[[
1574,
1610],
256],
64618:[[
1576,
1585],
256],
64619:[[
1576,
1586],
256],
64620:[[
1576,
1605],
256],
64621:[[
1576,
1606],
256],
64622:[[
1576,
1609],
256],
64623:[[
1576,
1610],
256],
64624:[[
1578,
1585],
256],
64625:[[
1578,
1586],
256],
64626:[[
1578,
1605],
256],
64627:[[
1578,
1606],
256],
64628:[[
1578,
1609],
256],
64629:[[
1578,
1610],
256],
64630:[[
1579,
1585],
256],
64631:[[
1579,
1586],
256],
64632:[[
1579,
1605],
256],
64633:[[
1579,
1606],
256],
64634:[[
1579,
1609],
256],
64635:[[
1579,
1610],
256],
64636:[[
1601,
1609],
256],
64637:[[
1601,
1610],
256],
64638:[[
1602,
1609],
256],
64639:[[
1602,
1610],
256],
64640:[[
1603,
1575],
256],
64641:[[
1603,
1604],
256],
64642:[[
1603,
1605],
256],
64643:[[
1603,
1609],
256],
64644:[[
1603,
1610],
256],
64645:[[
1604,
1605],
256],
64646:[[
1604,
1609],
256],
64647:[[
1604,
1610],
256],
64648:[[
1605,
1575],
256],
64649:[[
1605,
1605],
256],
64650:[[
1606,
1585],
256],
64651:[[
1606,
1586],
256],
64652:[[
1606,
1605],
256],
64653:[[
1606,
1606],
256],
64654:[[
1606,
1609],
256],
64655:[[
1606,
1610],
256],
64656:[[
1609,
1648],
256],
64657:[[
1610,
1585],
256],
64658:[[
1610,
1586],
256],
64659:[[
1610,
1605],
256],
64660:[[
1610,
1606],
256],
64661:[[
1610,
1609],
256],
64662:[[
1610,
1610],
256],
64663:[[
1574,
1580],
256],
64664:[[
1574,
1581],
256],
64665:[[
1574,
1582],
256],
64666:[[
1574,
1605],
256],
64667:[[
1574,
1607],
256],
64668:[[
1576,
1580],
256],
64669:[[
1576,
1581],
256],
64670:[[
1576,
1582],
256],
64671:[[
1576,
1605],
256],
64672:[[
1576,
1607],
256],
64673:[[
1578,
1580],
256],
64674:[[
1578,
1581],
256],
64675:[[
1578,
1582],
256],
64676:[[
1578,
1605],
256],
64677:[[
1578,
1607],
256],
64678:[[
1579,
1605],
256],
64679:[[
1580,
1581],
256],
64680:[[
1580,
1605],
256],
64681:[[
1581,
1580],
256],
64682:[[
1581,
1605],
256],
64683:[[
1582,
1580],
256],
64684:[[
1582,
1605],
256],
64685:[[
1587,
1580],
256],
64686:[[
1587,
1581],
256],
64687:[[
1587,
1582],
256],
64688:[[
1587,
1605],
256],
64689:[[
1589,
1581],
256],
64690:[[
1589,
1582],
256],
64691:[[
1589,
1605],
256],
64692:[[
1590,
1580],
256],
64693:[[
1590,
1581],
256],
64694:[[
1590,
1582],
256],
64695:[[
1590,
1605],
256],
64696:[[
1591,
1581],
256],
64697:[[
1592,
1605],
256],
64698:[[
1593,
1580],
256],
64699:[[
1593,
1605],
256],
64700:[[
1594,
1580],
256],
64701:[[
1594,
1605],
256],
64702:[[
1601,
1580],
256],
64703:[[
1601,
1581],
256],
64704:[[
1601,
1582],
256],
64705:[[
1601,
1605],
256],
64706:[[
1602,
1581],
256],
64707:[[
1602,
1605],
256],
64708:[[
1603,
1580],
256],
64709:[[
1603,
1581],
256],
64710:[[
1603,
1582],
256],
64711:[[
1603,
1604],
256],
64712:[[
1603,
1605],
256],
64713:[[
1604,
1580],
256],
64714:[[
1604,
1581],
256],
64715:[[
1604,
1582],
256],
64716:[[
1604,
1605],
256],
64717:[[
1604,
1607],
256],
64718:[[
1605,
1580],
256],
64719:[[
1605,
1581],
256],
64720:[[
1605,
1582],
256],
64721:[[
1605,
1605],
256],
64722:[[
1606,
1580],
256],
64723:[[
1606,
1581],
256],
64724:[[
1606,
1582],
256],
64725:[[
1606,
1605],
256],
64726:[[
1606,
1607],
256],
64727:[[
1607,
1580],
256],
64728:[[
1607,
1605],
256],
64729:[[
1607,
1648],
256],
64730:[[
1610,
1580],
256],
64731:[[
1610,
1581],
256],
64732:[[
1610,
1582],
256],
64733:[[
1610,
1605],
256],
64734:[[
1610,
1607],
256],
64735:[[
1574,
1605],
256],
64736:[[
1574,
1607],
256],
64737:[[
1576,
1605],
256],
64738:[[
1576,
1607],
256],
64739:[[
1578,
1605],
256],
64740:[[
1578,
1607],
256],
64741:[[
1579,
1605],
256],
64742:[[
1579,
1607],
256],
64743:[[
1587,
1605],
256],
64744:[[
1587,
1607],
256],
64745:[[
1588,
1605],
256],
64746:[[
1588,
1607],
256],
64747:[[
1603,
1604],
256],
64748:[[
1603,
1605],
256],
64749:[[
1604,
1605],
256],
64750:[[
1606,
1605],
256],
64751:[[
1606,
1607],
256],
64752:[[
1610,
1605],
256],
64753:[[
1610,
1607],
256],
64754:[[
1600,
1614,
1617],
256],
64755:[[
1600,
1615,
1617],
256],
64756:[[
1600,
1616,
1617],
256],
64757:[[
1591,
1609],
256],
64758:[[
1591,
1610],
256],
64759:[[
1593,
1609],
256],
64760:[[
1593,
1610],
256],
64761:[[
1594,
1609],
256],
64762:[[
1594,
1610],
256],
64763:[[
1587,
1609],
256],
64764:[[
1587,
1610],
256],
64765:[[
1588,
1609],
256],
64766:[[
1588,
1610],
256],
64767:[[
1581,
1609],
256]},
6950 64768:{
64768:[[
1581,
1610],
256],
64769:[[
1580,
1609],
256],
64770:[[
1580,
1610],
256],
64771:[[
1582,
1609],
256],
64772:[[
1582,
1610],
256],
64773:[[
1589,
1609],
256],
64774:[[
1589,
1610],
256],
64775:[[
1590,
1609],
256],
64776:[[
1590,
1610],
256],
64777:[[
1588,
1580],
256],
64778:[[
1588,
1581],
256],
64779:[[
1588,
1582],
256],
64780:[[
1588,
1605],
256],
64781:[[
1588,
1585],
256],
64782:[[
1587,
1585],
256],
64783:[[
1589,
1585],
256],
64784:[[
1590,
1585],
256],
64785:[[
1591,
1609],
256],
64786:[[
1591,
1610],
256],
64787:[[
1593,
1609],
256],
64788:[[
1593,
1610],
256],
64789:[[
1594,
1609],
256],
64790:[[
1594,
1610],
256],
64791:[[
1587,
1609],
256],
64792:[[
1587,
1610],
256],
64793:[[
1588,
1609],
256],
64794:[[
1588,
1610],
256],
64795:[[
1581,
1609],
256],
64796:[[
1581,
1610],
256],
64797:[[
1580,
1609],
256],
64798:[[
1580,
1610],
256],
64799:[[
1582,
1609],
256],
64800:[[
1582,
1610],
256],
64801:[[
1589,
1609],
256],
64802:[[
1589,
1610],
256],
64803:[[
1590,
1609],
256],
64804:[[
1590,
1610],
256],
64805:[[
1588,
1580],
256],
64806:[[
1588,
1581],
256],
64807:[[
1588,
1582],
256],
64808:[[
1588,
1605],
256],
64809:[[
1588,
1585],
256],
64810:[[
1587,
1585],
256],
64811:[[
1589,
1585],
256],
64812:[[
1590,
1585],
256],
64813:[[
1588,
1580],
256],
64814:[[
1588,
1581],
256],
64815:[[
1588,
1582],
256],
64816:[[
1588,
1605],
256],
64817:[[
1587,
1607],
256],
64818:[[
1588,
1607],
256],
64819:[[
1591,
1605],
256],
64820:[[
1587,
1580],
256],
64821:[[
1587,
1581],
256],
64822:[[
1587,
1582],
256],
64823:[[
1588,
1580],
256],
64824:[[
1588,
1581],
256],
64825:[[
1588,
1582],
256],
64826:[[
1591,
1605],
256],
64827:[[
1592,
1605],
256],
64828:[[
1575,
1611],
256],
64829:[[
1575,
1611],
256],
64848:[[
1578,
1580,
1605],
256],
64849:[[
1578,
1581,
1580],
256],
64850:[[
1578,
1581,
1580],
256],
64851:[[
1578,
1581,
1605],
256],
64852:[[
1578,
1582,
1605],
256],
64853:[[
1578,
1605,
1580],
256],
64854:[[
1578,
1605,
1581],
256],
64855:[[
1578,
1605,
1582],
256],
64856:[[
1580,
1605,
1581],
256],
64857:[[
1580,
1605,
1581],
256],
64858:[[
1581,
1605,
1610],
256],
64859:[[
1581,
1605,
1609],
256],
64860:[[
1587,
1581,
1580],
256],
64861:[[
1587,
1580,
1581],
256],
64862:[[
1587,
1580,
1609],
256],
64863:[[
1587,
1605,
1581],
256],
64864:[[
1587,
1605,
1581],
256],
64865:[[
1587,
1605,
1580],
256],
64866:[[
1587,
1605,
1605],
256],
64867:[[
1587,
1605,
1605],
256],
64868:[[
1589,
1581,
1581],
256],
64869:[[
1589,
1581,
1581],
256],
64870:[[
1589,
1605,
1605],
256],
64871:[[
1588,
1581,
1605],
256],
64872:[[
1588,
1581,
1605],
256],
64873:[[
1588,
1580,
1610],
256],
64874:[[
1588,
1605,
1582],
256],
64875:[[
1588,
1605,
1582],
256],
64876:[[
1588,
1605,
1605],
256],
64877:[[
1588,
1605,
1605],
256],
64878:[[
1590,
1581,
1609],
256],
64879:[[
1590,
1582,
1605],
256],
64880:[[
1590,
1582,
1605],
256],
64881:[[
1591,
1605,
1581],
256],
64882:[[
1591,
1605,
1581],
256],
64883:[[
1591,
1605,
1605],
256],
64884:[[
1591,
1605,
1610],
256],
64885:[[
1593,
1580,
1605],
256],
64886:[[
1593,
1605,
1605],
256],
64887:[[
1593,
1605,
1605],
256],
64888:[[
1593,
1605,
1609],
256],
64889:[[
1594,
1605,
1605],
256],
64890:[[
1594,
1605,
1610],
256],
64891:[[
1594,
1605,
1609],
256],
64892:[[
1601,
1582,
1605],
256],
64893:[[
1601,
1582,
1605],
256],
64894:[[
1602,
1605,
1581],
256],
64895:[[
1602,
1605,
1605],
256],
64896:[[
1604,
1581,
1605],
256],
64897:[[
1604,
1581,
1610],
256],
64898:[[
1604,
1581,
1609],
256],
64899:[[
1604,
1580,
1580],
256],
64900:[[
1604,
1580,
1580],
256],
64901:[[
1604,
1582,
1605],
256],
64902:[[
1604,
1582,
1605],
256],
64903:[[
1604,
1605,
1581],
256],
64904:[[
1604,
1605,
1581],
256],
64905:[[
1605,
1581,
1580],
256],
64906:[[
1605,
1581,
1605],
256],
64907:[[
1605,
1581,
1610],
256],
64908:[[
1605,
1580,
1581],
256],
64909:[[
1605,
1580,
1605],
256],
64910:[[
1605,
1582,
1580],
256],
64911:[[
1605,
1582,
1605],
256],
64914:[[
1605,
1580,
1582],
256],
64915:[[
1607,
1605,
1580],
256],
64916:[[
1607,
1605,
1605],
256],
64917:[[
1606,
1581,
1605],
256],
64918:[[
1606,
1581,
1609],
256],
64919:[[
1606,
1580,
1605],
256],
64920:[[
1606,
1580,
1605],
256],
64921:[[
1606,
1580,
1609],
256],
64922:[[
1606,
1605,
1610],
256],
64923:[[
1606,
1605,
1609],
256],
64924:[[
1610,
1605,
1605],
256],
64925:[[
1610,
1605,
1605],
256],
64926:[[
1576,
1582,
1610],
256],
64927:[[
1578,
1580,
1610],
256],
64928:[[
1578,
1580,
1609],
256],
64929:[[
1578,
1582,
1610],
256],
64930:[[
1578,
1582,
1609],
256],
64931:[[
1578,
1605,
1610],
256],
64932:[[
1578,
1605,
1609],
256],
64933:[[
1580,
1605,
1610],
256],
64934:[[
1580,
1581,
1609],
256],
64935:[[
1580,
1605,
1609],
256],
64936:[[
1587,
1582,
1609],
256],
64937:[[
1589,
1581,
1610],
256],
64938:[[
1588,
1581,
1610],
256],
64939:[[
1590,
1581,
1610],
256],
64940:[[
1604,
1580,
1610],
256],
64941:[[
1604,
1605,
1610],
256],
64942:[[
1610,
1581,
1610],
256],
64943:[[
1610,
1580,
1610],
256],
64944:[[
1610,
1605,
1610],
256],
64945:[[
1605,
1605,
1610],
256],
64946:[[
1602,
1605,
1610],
256],
64947:[[
1606,
1581,
1610],
256],
64948:[[
1602,
1605,
1581],
256],
64949:[[
1604,
1581,
1605],
256],
64950:[[
1593,
1605,
1610],
256],
64951:[[
1603,
1605,
1610],
256],
64952:[[
1606,
1580,
1581],
256],
64953:[[
1605,
1582,
1610],
256],
64954:[[
1604,
1580,
1605],
256],
64955:[[
1603,
1605,
1605],
256],
64956:[[
1604,
1580,
1605],
256],
64957:[[
1606,
1580,
1581],
256],
64958:[[
1580,
1581,
1610],
256],
64959:[[
1581,
1580,
1610],
256],
64960:[[
1605,
1580,
1610],
256],
64961:[[
1601,
1605,
1610],
256],
64962:[[
1576,
1581,
1610],
256],
64963:[[
1603,
1605,
1605],
256],
64964:[[
1593,
1580,
1605],
256],
64965:[[
1589,
1605,
1605],
256],
64966:[[
1587,
1582,
1610],
256],
64967:[[
1606,
1580,
1610],
256],
65008:[[
1589,
1604,
1746],
256],
65009:[[
1602,
1604,
1746],
256],
65010:[[
1575,
1604,
1604,
1607],
256],
65011:[[
1575,
1603,
1576,
1585],
256],
65012:[[
1605,
1581,
1605,
1583],
256],
65013:[[
1589,
1604,
1593,
1605],
256],
65014:[[
1585,
1587,
1608,
1604],
256],
65015:[[
1593,
1604,
1610,
1607],
256],
65016:[[
1608,
1587,
1604,
1605],
256],
65017:[[
1589,
1604,
1609],
256],
65018:[[
1589,
1604,
1609,
32,
1575,
1604,
1604,
1607,
32,
1593,
1604,
1610,
1607,
32,
1608,
1587,
1604,
1605],
256],
65019:[[
1580,
1604,
32,
1580,
1604,
1575,
1604,
1607],
256],
65020:[[
1585,
1740,
1575,
1604],
256]},
6951 65024:{
65040:[[
44],
256],
65041:[[
12289],
256],
65042:[[
12290],
256],
65043:[[
58],
256],
65044:[[
59],
256],
65045:[[
33],
256],
65046:[[
63],
256],
65047:[[
12310],
256],
65048:[[
12311],
256],
65049:[[
8230],
256],
65056:[,
230],
65057:[,
230],
65058:[,
230],
65059:[,
230],
65060:[,
230],
65061:[,
230],
65062:[,
230],
65063:[,
220],
65064:[,
220],
65065:[,
220],
65066:[,
220],
65067:[,
220],
65068:[,
220],
65069:[,
220],
65072:[[
8229],
256],
65073:[[
8212],
256],
65074:[[
8211],
256],
65075:[[
95],
256],
65076:[[
95],
256],
65077:[[
40],
256],
65078:[[
41],
256],
65079:[[
123],
256],
65080:[[
125],
256],
65081:[[
12308],
256],
65082:[[
12309],
256],
65083:[[
12304],
256],
65084:[[
12305],
256],
65085:[[
12298],
256],
65086:[[
12299],
256],
65087:[[
12296],
256],
65088:[[
12297],
256],
65089:[[
12300],
256],
65090:[[
12301],
256],
65091:[[
12302],
256],
65092:[[
12303],
256],
65095:[[
91],
256],
65096:[[
93],
256],
65097:[[
8254],
256],
65098:[[
8254],
256],
65099:[[
8254],
256],
65100:[[
8254],
256],
65101:[[
95],
256],
65102:[[
95],
256],
65103:[[
95],
256],
65104:[[
44],
256],
65105:[[
12289],
256],
65106:[[
46],
256],
65108:[[
59],
256],
65109:[[
58],
256],
65110:[[
63],
256],
65111:[[
33],
256],
65112:[[
8212],
256],
65113:[[
40],
256],
65114:[[
41],
256],
65115:[[
123],
256],
65116:[[
125],
256],
65117:[[
12308],
256],
65118:[[
12309],
256],
65119:[[
35],
256],
65120:[[
38],
256],
65121:[[
42],
256],
65122:[[
43],
256],
65123:[[
45],
256],
65124:[[
60],
256],
65125:[[
62],
256],
65126:[[
61],
256],
65128:[[
92],
256],
65129:[[
36],
256],
65130:[[
37],
256],
65131:[[
64],
256],
65136:[[
32,
1611],
256],
65137:[[
1600,
1611],
256],
65138:[[
32,
1612],
256],
65140:[[
32,
1613],
256],
65142:[[
32,
1614],
256],
65143:[[
1600,
1614],
256],
65144:[[
32,
1615],
256],
65145:[[
1600,
1615],
256],
65146:[[
32,
1616],
256],
65147:[[
1600,
1616],
256],
65148:[[
32,
1617],
256],
65149:[[
1600,
1617],
256],
65150:[[
32,
1618],
256],
65151:[[
1600,
1618],
256],
65152:[[
1569],
256],
65153:[[
1570],
256],
65154:[[
1570],
256],
65155:[[
1571],
256],
65156:[[
1571],
256],
65157:[[
1572],
256],
65158:[[
1572],
256],
65159:[[
1573],
256],
65160:[[
1573],
256],
65161:[[
1574],
256],
65162:[[
1574],
256],
65163:[[
1574],
256],
65164:[[
1574],
256],
65165:[[
1575],
256],
65166:[[
1575],
256],
65167:[[
1576],
256],
65168:[[
1576],
256],
65169:[[
1576],
256],
65170:[[
1576],
256],
65171:[[
1577],
256],
65172:[[
1577],
256],
65173:[[
1578],
256],
65174:[[
1578],
256],
65175:[[
1578],
256],
65176:[[
1578],
256],
65177:[[
1579],
256],
65178:[[
1579],
256],
65179:[[
1579],
256],
65180:[[
1579],
256],
65181:[[
1580],
256],
65182:[[
1580],
256],
65183:[[
1580],
256],
65184:[[
1580],
256],
65185:[[
1581],
256],
65186:[[
1581],
256],
65187:[[
1581],
256],
65188:[[
1581],
256],
65189:[[
1582],
256],
65190:[[
1582],
256],
65191:[[
1582],
256],
65192:[[
1582],
256],
65193:[[
1583],
256],
65194:[[
1583],
256],
65195:[[
1584],
256],
65196:[[
1584],
256],
65197:[[
1585],
256],
65198:[[
1585],
256],
65199:[[
1586],
256],
65200:[[
1586],
256],
65201:[[
1587],
256],
65202:[[
1587],
256],
65203:[[
1587],
256],
65204:[[
1587],
256],
65205:[[
1588],
256],
65206:[[
1588],
256],
65207:[[
1588],
256],
65208:[[
1588],
256],
65209:[[
1589],
256],
65210:[[
1589],
256],
65211:[[
1589],
256],
65212:[[
1589],
256],
65213:[[
1590],
256],
65214:[[
1590],
256],
65215:[[
1590],
256],
65216:[[
1590],
256],
65217:[[
1591],
256],
65218:[[
1591],
256],
65219:[[
1591],
256],
65220:[[
1591],
256],
65221:[[
1592],
256],
65222:[[
1592],
256],
65223:[[
1592],
256],
65224:[[
1592],
256],
65225:[[
1593],
256],
65226:[[
1593],
256],
65227:[[
1593],
256],
65228:[[
1593],
256],
65229:[[
1594],
256],
65230:[[
1594],
256],
65231:[[
1594],
256],
65232:[[
1594],
256],
65233:[[
1601],
256],
65234:[[
1601],
256],
65235:[[
1601],
256],
65236:[[
1601],
256],
65237:[[
1602],
256],
65238:[[
1602],
256],
65239:[[
1602],
256],
65240:[[
1602],
256],
65241:[[
1603],
256],
65242:[[
1603],
256],
65243:[[
1603],
256],
65244:[[
1603],
256],
65245:[[
1604],
256],
65246:[[
1604],
256],
65247:[[
1604],
256],
65248:[[
1604],
256],
65249:[[
1605],
256],
65250:[[
1605],
256],
65251:[[
1605],
256],
65252:[[
1605],
256],
65253:[[
1606],
256],
65254:[[
1606],
256],
65255:[[
1606],
256],
65256:[[
1606],
256],
65257:[[
1607],
256],
65258:[[
1607],
256],
65259:[[
1607],
256],
65260:[[
1607],
256],
65261:[[
1608],
256],
65262:[[
1608],
256],
65263:[[
1609],
256],
65264:[[
1609],
256],
65265:[[
1610],
256],
65266:[[
1610],
256],
65267:[[
1610],
256],
65268:[[
1610],
256],
65269:[[
1604,
1570],
256],
65270:[[
1604,
1570],
256],
65271:[[
1604,
1571],
256],
65272:[[
1604,
1571],
256],
65273:[[
1604,
1573],
256],
65274:[[
1604,
1573],
256],
65275:[[
1604,
1575],
256],
65276:[[
1604,
1575],
256]},
6952 65280:{
65281:[[
33],
256],
65282:[[
34],
256],
65283:[[
35],
256],
65284:[[
36],
256],
65285:[[
37],
256],
65286:[[
38],
256],
65287:[[
39],
256],
65288:[[
40],
256],
65289:[[
41],
256],
65290:[[
42],
256],
65291:[[
43],
256],
65292:[[
44],
256],
65293:[[
45],
256],
65294:[[
46],
256],
65295:[[
47],
256],
65296:[[
48],
256],
65297:[[
49],
256],
65298:[[
50],
256],
65299:[[
51],
256],
65300:[[
52],
256],
65301:[[
53],
256],
65302:[[
54],
256],
65303:[[
55],
256],
65304:[[
56],
256],
65305:[[
57],
256],
65306:[[
58],
256],
65307:[[
59],
256],
65308:[[
60],
256],
65309:[[
61],
256],
65310:[[
62],
256],
65311:[[
63],
256],
65312:[[
64],
256],
65313:[[
65],
256],
65314:[[
66],
256],
65315:[[
67],
256],
65316:[[
68],
256],
65317:[[
69],
256],
65318:[[
70],
256],
65319:[[
71],
256],
65320:[[
72],
256],
65321:[[
73],
256],
65322:[[
74],
256],
65323:[[
75],
256],
65324:[[
76],
256],
65325:[[
77],
256],
65326:[[
78],
256],
65327:[[
79],
256],
65328:[[
80],
256],
65329:[[
81],
256],
65330:[[
82],
256],
65331:[[
83],
256],
65332:[[
84],
256],
65333:[[
85],
256],
65334:[[
86],
256],
65335:[[
87],
256],
65336:[[
88],
256],
65337:[[
89],
256],
65338:[[
90],
256],
65339:[[
91],
256],
65340:[[
92],
256],
65341:[[
93],
256],
65342:[[
94],
256],
65343:[[
95],
256],
65344:[[
96],
256],
65345:[[
97],
256],
65346:[[
98],
256],
65347:[[
99],
256],
65348:[[
100],
256],
65349:[[
101],
256],
65350:[[
102],
256],
65351:[[
103],
256],
65352:[[
104],
256],
65353:[[
105],
256],
65354:[[
106],
256],
65355:[[
107],
256],
65356:[[
108],
256],
65357:[[
109],
256],
65358:[[
110],
256],
65359:[[
111],
256],
65360:[[
112],
256],
65361:[[
113],
256],
65362:[[
114],
256],
65363:[[
115],
256],
65364:[[
116],
256],
65365:[[
117],
256],
65366:[[
118],
256],
65367:[[
119],
256],
65368:[[
120],
256],
65369:[[
121],
256],
65370:[[
122],
256],
65371:[[
123],
256],
65372:[[
124],
256],
65373:[[
125],
256],
65374:[[
126],
256],
65375:[[
10629],
256],
65376:[[
10630],
256],
65377:[[
12290],
256],
65378:[[
12300],
256],
65379:[[
12301],
256],
65380:[[
12289],
256],
65381:[[
12539],
256],
65382:[[
12530],
256],
65383:[[
12449],
256],
65384:[[
12451],
256],
65385:[[
12453],
256],
65386:[[
12455],
256],
65387:[[
12457],
256],
65388:[[
12515],
256],
65389:[[
12517],
256],
65390:[[
12519],
256],
65391:[[
12483],
256],
65392:[[
12540],
256],
65393:[[
12450],
256],
65394:[[
12452],
256],
65395:[[
12454],
256],
65396:[[
12456],
256],
65397:[[
12458],
256],
65398:[[
12459],
256],
65399:[[
12461],
256],
65400:[[
12463],
256],
65401:[[
12465],
256],
65402:[[
12467],
256],
65403:[[
12469],
256],
65404:[[
12471],
256],
65405:[[
12473],
256],
65406:[[
12475],
256],
65407:[[
12477],
256],
65408:[[
12479],
256],
65409:[[
12481],
256],
65410:[[
12484],
256],
65411:[[
12486],
256],
65412:[[
12488],
256],
65413:[[
12490],
256],
65414:[[
12491],
256],
65415:[[
12492],
256],
65416:[[
12493],
256],
65417:[[
12494],
256],
65418:[[
12495],
256],
65419:[[
12498],
256],
65420:[[
12501],
256],
65421:[[
12504],
256],
65422:[[
12507],
256],
65423:[[
12510],
256],
65424:[[
12511],
256],
65425:[[
12512],
256],
65426:[[
12513],
256],
65427:[[
12514],
256],
65428:[[
12516],
256],
65429:[[
12518],
256],
65430:[[
12520],
256],
65431:[[
12521],
256],
65432:[[
12522],
256],
65433:[[
12523],
256],
65434:[[
12524],
256],
65435:[[
12525],
256],
65436:[[
12527],
256],
65437:[[
12531],
256],
65438:[[
12441],
256],
65439:[[
12442],
256],
65440:[[
12644],
256],
65441:[[
12593],
256],
65442:[[
12594],
256],
65443:[[
12595],
256],
65444:[[
12596],
256],
65445:[[
12597],
256],
65446:[[
12598],
256],
65447:[[
12599],
256],
65448:[[
12600],
256],
65449:[[
12601],
256],
65450:[[
12602],
256],
65451:[[
12603],
256],
65452:[[
12604],
256],
65453:[[
12605],
256],
65454:[[
12606],
256],
65455:[[
12607],
256],
65456:[[
12608],
256],
65457:[[
12609],
256],
65458:[[
12610],
256],
65459:[[
12611],
256],
65460:[[
12612],
256],
65461:[[
12613],
256],
65462:[[
12614],
256],
65463:[[
12615],
256],
65464:[[
12616],
256],
65465:[[
12617],
256],
65466:[[
12618],
256],
65467:[[
12619],
256],
65468:[[
12620],
256],
65469:[[
12621],
256],
65470:[[
12622],
256],
65474:[[
12623],
256],
65475:[[
12624],
256],
65476:[[
12625],
256],
65477:[[
12626],
256],
65478:[[
12627],
256],
65479:[[
12628],
256],
65482:[[
12629],
256],
65483:[[
12630],
256],
65484:[[
12631],
256],
65485:[[
12632],
256],
65486:[[
12633],
256],
65487:[[
12634],
256],
65490:[[
12635],
256],
65491:[[
12636],
256],
65492:[[
12637],
256],
65493:[[
12638],
256],
65494:[[
12639],
256],
65495:[[
12640],
256],
65498:[[
12641],
256],
65499:[[
12642],
256],
65500:[[
12643],
256],
65504:[[
162],
256],
65505:[[
163],
256],
65506:[[
172],
256],
65507:[[
175],
256],
65508:[[
166],
256],
65509:[[
165],
256],
65510:[[
8361],
256],
65512:[[
9474],
256],
65513:[[
8592],
256],
65514:[[
8593],
256],
65515:[[
8594],
256],
65516:[[
8595],
256],
65517:[[
9632],
256],
65518:[[
9675],
256]}
6956 /***** Module to export */
6964 /*globals module:true,define:true*/
6967 if (typeof module ===
"object") {
6968 module.exports = unorm;
6971 } else if (typeof define ===
"function" && define.amd) {
6972 define(
"unorm", function () {
6981 /***** Export as shim for String::normalize method *****/
6983 http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#november_8_2013_draft_rev_21
6985 21.1.3.12 String.prototype.normalize(
form=
"NFC")
6986 When the normalize method is called with one argument form, the following steps are taken:
6988 1. Let O be CheckObjectCoercible(this value).
6989 2. Let S be ToString(O).
6990 3. ReturnIfAbrupt(S).
6991 4. If form is not provided or undefined let form be
"NFC".
6992 5. Let f be ToString(form).
6993 6. ReturnIfAbrupt(f).
6994 7. If f is not one of
"NFC",
"NFD",
"NFKC", or
"NFKD", then throw a RangeError Exception.
6995 8. Let ns be the String value is the result of normalizing S into the normalization form named by f as specified in Unicode Standard Annex #
15, UnicodeNormalizatoin Forms.
6998 The length property of the normalize method is
0.
7000 *NOTE* The normalize function is intentionally generic; it does not require that its this value be a String object. Therefore it can be transferred to other kinds of objects for use as a method.
7002 unorm.shimApplied = false;
7004 if (!String.prototype.normalize) {
7005 String.prototype.normalize = function(form) {
7006 var str =
"" + this;
7007 form = form === undefined ?
"NFC" : form;
7009 if (form ===
"NFC") {
7010 return unorm.nfc(str);
7011 } else if (form ===
"NFD") {
7012 return unorm.nfd(str);
7013 } else if (form ===
"NFKC") {
7014 return unorm.nfkc(str);
7015 } else if (form ===
"NFKD") {
7016 return unorm.nfkd(str);
7018 throw new RangeError(
"Invalid normalization form: " + form);
7022 unorm.shimApplied = true;
7026 <script>/*! jQuery v2.1
.1 | (c)
2005,
2014 jQuery Foundation, Inc. | jquery.org/license */
7027 !function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!
0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,
m="
2.1.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:
0,toArray:function(){return d.call(this)},get:function(a){return null!=a?
0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(
0)},last:function(){return this.eq(-
1)},eq:function(a){var b=this.length,c=+a+(
0>a?b:
0);return this.pushStack(c
>=
0&&b
>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[
0]||{},h=
1,i=arguments.length,j=!
1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i
>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!
1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void
0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!
0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)
>=
0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!
1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!
1:!
0},isEmptyObject:function(a){var b;for(b in a)return!
1;return!
0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(
1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=
0,f=a.length,g=s(a);if(c){if(g){for(;f
>e;e++)if(d=b.apply(a[e],c),d===!
1)break}else for(e in a)if(d=b.apply(a[e],c),d===!
1)break}else if(g){for(;f
>e;e++)if(d=b.call(a[e],e,a[e]),d===!
1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!
1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-
1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=
0,e=a.length;c
>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=
0,g=a.length,h=!c;g
>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=
0,g=a.length,h=s(a),i=[];if(h)for(;g
>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:
1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,
2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void
0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!
1:
1===a.nodeType&&b?!
0:"array"===c||
0===b||"number"==typeof b&&b
>0&&b-
1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,
u=
"sizzle"+-new Date,v=a.document,w=
0,x=
0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!
0),
0},
C=
"undefined",D=
1<
<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=
0,c=this.length;c
>b;b++)if(this[b]===a)return b;return-
1},
L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
M="[\\x20\\t\\r\\n\\f]",
N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),
P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",
Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([
>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[
>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{
1,
6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var
d="
0x"+b-
65536;return d!==d||c?b:
0>d?String.fromCharCode(d+
65536):String.fromCharCode(d
>>10|
55296,
1023&d|
56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=
0;while(a[c++]=b[d++]);a.length=c-
1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||
"string"!=typeof a)return d;if(
1!==(k=b.nodeType)&&
9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[
1]){if(
9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[
2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[
3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=
9===k&&a,
1===k&&
"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute(
"id"))?s=r.replace(bb,
"\\$&"):b.setAttribute(
"id",s),
s=
"[id='"+s+
"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(
",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute(
"id")}}}return i(a.replace(R,
"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+
" ")
>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!
0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!
1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&
1===a.nodeType&&
1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-
1;return a?
1:-
1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!
1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&
9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!
1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.
className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.
innerHTML="
<div class='a'
></div><div class='a i'
></div>",a.firstChild.className="i
",2===a.getElementsByClassName("i
").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id
")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id
");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*
"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="<select msallowclip=''
><option selected=''
></option></select>",a.querySelectorAll("[msallowclip^='']
").length&&q.push("[*^$]=
"+M+"*(?:''|\
"\")
"),a.querySelectorAll("[selected]
").length||q.push("\\[
"+M+"*(?:value|
"+L+")
"),a.querySelectorAll(":checked
").length||q.push(":checked
")}),ib(function(a){var b=e.createElement("input
");b.setAttribute("type
","hidden
"),a.appendChild(b).setAttribute("name
","D
"),a.querySelectorAll("[name=d]
").length&&q.push("name
"+M+"*[*^$|!~]?=
"),a.querySelectorAll(":enabled
").length||q.push(":enabled
",":disabled
"),a.querySelectorAll("*,:x
"),q.push(",.*:
")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div
"),s.call(a,"[s!='']:x
"),r.push("!=
",Q)}),q=q.length&&new RegExp(q.join("|
")),r=r.length&&new RegExp(r.join("|
")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$
1']
"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression:
"+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string
"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode
",first:!0}," ":{dir:"parentNode
"},"+
":{dir:"previousSibling
",first:!0},"~
":{dir:"previousSibling
"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~=
"===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth
"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even
"===a[3]||"odd
"===a[3])),a[5]=+(a[7]+a[8]||"odd
"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")
",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*
"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|
"+M+")
"+a+"(
"+M+"|$)
"))&&y(a,function(a){return b.test("string
"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class
")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!=
"===b:b?(e+="","=
"===b?e===c:"!=
"===b?e!==c:"^=
"===b?c&&0===e.indexOf(c):"*=
"===b?c&&e.indexOf(c)>-1:"$=
"===b?c&&e.slice(-c.length)===c:"~=
"===b?(" "+e+" ").indexOf(c)>-1:"|=
"===b?e===c||e.slice(0,c.length+1)===c+"-
":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth
"!==a.slice(0,3),g="last
"!==a.slice(-4),h="of-type
"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling
":"previousSibling
",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only
"===a&&!o&&"nextSibling
"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo:
"+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$
1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang:
"+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang
")||b.getAttribute("lang
"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-
");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input
"===b&&!!a.checked||"option
"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input
"===b&&"button
"===a.type||"button
"===b},text:function(a){var b;return"input
"===a.nodeName.toLowerCase()&&"text
"===a.type&&(null==(b=a.getAttribute("type
"))||"text
"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=lb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=mb(b);function pb(){}pb.prototype=d.filters=d.pseudos,d.setFilters=new pb,g=fb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fb.error(a):z(a,i).slice(0)};function qb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(
1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((
1===b.nodeType||e)&&a(b,c,g))return!
0}else while(b=b[d])if(
1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[
0]===w&&h[
1]===f)return j[
2]=h[
2];if(i[d]=j,j[
2]=a(b,c,g))return!
0}}}function sb(a){return a.length
>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!
1;return!
0}:a[
0]}function tb(a,b,c){for(var d=
0,e=b.length;e
>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=
0,i=a.length,j=null!=b;i
>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])
>-
1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[
0].type],h=g||d.relative[" "],i=g?
1:
0,k=rb(function(a){return a===b},h,!
0),l=rb(function(a){return K.call(b,a)
>-
1},h,!
0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f
>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f
>e;e++)if(d.relative[a[e].type])break;return vb(i
>1&&sb(m),i
>1&&qb(a.slice(
0,i-
1).concat({value:
" "===a[i-
2].type?
"*":
""})).replace(R,
"$1"),c,e
>i&&wb(a.slice(i,e)),f
>e&&wb(a=a.slice(e)),f
>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length
>0,e=a.length
>0,f=function(f,g,h,i,k){var l,m,o,p=
0,
q=
"0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG(
"*",k),v=w+=null==t?
1:Math.random()||
.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=
0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=
0;while(o=b[m++])o(r,s,g,h);if(f){if(p
>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length
>0&&p+b.length
>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+
" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,
n=
"function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],
1===o.length){if(j=o[
0]=o[
0].slice(
0),j.length
>2&&
"ID"===(k=j[
0]).type&&c.getById&&
9===b.nodeType&&p&&d.relative[j[
1].type]){if(b=(d.find.ID(k.matches[
0].replace(cb,db),b)||[])[
0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?
0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[
0].replace(cb,db),ab.test(j[
0].type)&&ob(b.parentNode)||b))){if(j.splice(i,
1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split(
"").sort(B).join(
"")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return
1&a.compareDocumentPosition(n.createElement(
"div"))}),ib(function(a){return a.
innerHTML=
"<a href='#'></a>",
"#"===a.firstChild.getAttribute(
"href")})||jb(
"type|href|height|width",function(a,b,c){return c?void
0:a.getAttribute(b,
"type"===b.toLowerCase()?
1:
2)}),c.attributes&&ib(function(a){return a.
innerHTML=
"<input/>",a.firstChild.setAttribute(
"value",
""),
""===a.firstChild.getAttribute(
"value")})||jb(
"value",function(a,b,c){return c||
"input"!==a.nodeName.toLowerCase()?void
0:a.defaultValue}),ib(function(a){return null==a.getAttribute(
"disabled")})||jb(L,function(a,b,c){var d;return c?void
0:a[b]===!
0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);n.find=t,n.expr=t.selectors,n.expr[
":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/
?>(?:<\/\
1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)
>=
0!==c})}n.filter=function(a,b,c){var d=b[
0];return c&&(
a=":not("+a+")"),
1===b.length&&
1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return
1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=
0;c
>b;b++)if(n.contains(e[b],this))return!
0}));for(b=
0;c
>b;b++)n.find(a,e[b],d);return d=this.pushStack(c
>1?n.unique(d):d),d.selector=this.selector?this.selector+
" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!
1))},not:function(a){return this.pushStack(x(this,a||[],!
0))},is:function(a){return!!x(this,
"string"==typeof a&&u.test(a)?n(a):a||[],!
1).length}});var y,z=/^(?:\s*(<[\w\W]+
>)[^
>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(
c="<"===a[
0]&&"
>"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined
"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):
0;e
>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType
<11&&(g?g.index(c)
>-
1:
1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length
>1?n.unique(f):f)},index:function(a){return a?
"string"==typeof a?g.call(n(a),this[
0]):g.call(this,a.jquery?a[
0]:a):this[
0]&&this[
0].parentNode?this.first().prevAll().length:-
1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&
1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&
11!==b.nodeType?b:null},parents:function(a){return n.dir(a,
"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,
"parentNode",c)},next:function(a){return D(a,
"nextSibling")},prev:function(a){return D(a,
"previousSibling")},nextAll:function(a){return n.dir(a,
"nextSibling")},prevAll:function(a){return n.dir(a,
"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,
"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,
"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return
"Until"!==a.slice(-
5)&&(d=c),d&&
"string"==typeof d&&(e=n.filter(d,e)),this.length
>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!
0}),b}n.Callbacks=function(a){
a=
"string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!
0,g=e||
0,e=
0,f=h.length,d=!
0;h&&f
>g;g++)if(h[g].apply(l[
0],l[
1])===!
1&&a.stopOnFalse){b=!
1;break}d=!
1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))
>-
1)h.splice(c,
1),d&&(f
>=c&&f--,g
>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)
>-
1:!(!h||!h.length)},empty:function(){return h=[],f=
0,this},disable:function(){return h=i=b=void
0,this},disabled:function(){return!h},lock:function(){return i=void
0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],
c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[
1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[
0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[
2],h=f[
3];d[f[
1]]=g.add,h&&g.add(function(){c=h},b[
1^a][
2].disable,b[
2][
2].lock),e[f[
0]]=function(){return e[f[
0]+"With"](this===e?d:this,arguments),this},e[f[
0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=
0,c=d.call(arguments),e=c.length,f=
1!==e||a&&n.isFunction(a.promise)?e:
0,g=
1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length
>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e
>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e
>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!
1,readyWait:
1,holdReady:function(a){a?n.readyWait++:n.ready(!
0)},ready:function(a){(a===!
0?--n.readyWait:n.isReady)||(n.isReady=!
0,a!==!
0&&--n.readyWait
>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler(
"ready"),n(l).off(
"ready"))))}});function I(){l.removeEventListener(
"DOMContentLoaded",I,!
1),a.removeEventListener(
"load",I,!
1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),
"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener(
"DOMContentLoaded",I,!
1),a.addEventListener(
"load",I,!
1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=
0,i=a.length,j=null==c;if(
"object"===n.type(c)){e=!
0;for(h in c)n.access(a,b,h,c[h],!
0,f,g)}else if(void
0!==d&&(e=!
0,n.isFunction(d)||(g=!
0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i
>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[
0],c):f};n.acceptData=function(a){return
1===a.nodeType||
9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},
0,{get:function(){return{}}}),this.expando=n.expando+Math.random()}K.uid=
1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return
0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void
0===b?c:c[b]},access:function(a,b,c){var d;return void
0===b||b&&"string"==typeof b&&void
0===c?(d=this.get(a,b),void
0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void
0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void
0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void
0===c&&
1===a.nodeType)if(
d="data-"+b.replace(O,"-$
1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{
c="true"===c?!
0:"false"===c?!
1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void
0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)
7028 },_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[
0],g=f&&f.attributes;if(void
0===a){if(this.length&&(e=M.get(f),
1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,
0===d.indexOf("data-")&&(d=n.camelCase(d.slice(
5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!
0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void
0===b){if(c=M.get(f,a),void
0!==c)return c;if(c=M.get(f,d),void
0!==c)return c;if(c=P(f,d,void
0),void
0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-
1!==a.indexOf("-")&&void
0!==c&&M.set(this,a,b)})},null,b,arguments.length
>1,null,!
0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||
"fx")+
"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void
0},dequeue:function(a,b){b=b||
"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};
"inprogress"===e&&(e=c.shift(),d--),e&&(
"fx"===b&&c.unshift(
"inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+
"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks(
"once memory").add(function(){L.remove(a,[b+
"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=
2;return
"string"!=typeof a&&(b=a,
a=
"fx",c--),arguments.length
<c?n.queue(this[
0],a):void
0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),
"fx"===a&&
"inprogress"!==c[
0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||
"fx",[])},promise:function(a,b){var c,d=
1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};
"string"!=typeof a&&(b=a,a=void
0),a=a||
"fx";while(g--)c=L.get(f[g],a+
"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=[
"Top",
"Right",
"Bottom",
"Left"],S=function(a,b){return a=b||a,
"none"===n.css(a,
"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement(
"div")),c=l.createElement(
"input");c.setAttribute(
"type",
"radio"),c.setAttribute(
"checked",
"checked"),c.setAttribute(
"name",
"t"),b.appendChild(c),k.checkClone=b.cloneNode(!
0).cloneNode(!
0).lastChild.checked,b.
innerHTML=
"<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!
0).lastChild.defaultValue}();var
U=
"undefined";k.
focusinBubbles=
"onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!
0}function $(){return!
1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void
0}),b=(b||
"").match(E)||[
""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[
1],p=(h[
2]||
"").split(
".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(
".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=
0,l.setup&&l.setup.call(a,d,p,g)!==!
1||a.addEventListener&&a.addEventListener(o,g,!
1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,
0,k):m.push(k),n.event.global[o]=!
0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||
"").match(E)||[
""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[
1],p=(h[
2]||
"").split(
".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[
2]&&new RegExp(
"(^|\\.)"+p.join(
"\\.(?:.*\\.|)")+
"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&(
"**"!==d||!k.selector)||(m.splice(f,
1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!
1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!
0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,
"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,
"type")?b.type:b,r=j.call(b,
"namespace")?b.namespace.split(
"."):[];if(g=h=d=d||l,
3!==d.nodeType&&
8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(
".")
>=
0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")
<0&&
"on"+q,b=b[n.expando]?b:new n.Event(q,
"object"==typeof b&&b),b.isTrigger=e?
2:
3,b.namespace=r.join(
"."),b.namespace_re=b.namespace?new RegExp(
"(^|\\.)"+r.join(
"\\.(?:.*\\.|)")+
"(\\.|$)"):null,b.result=void
0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!
1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=
0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f
>1?i:o.bindType||q,m=(L.get(g,
"events")||{})[b.type]&&L.get(g,
"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!
1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!
1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void
0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,
"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[
0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!
1){h=n.event.handlers.call(this,a,j),b=
0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=
0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void
0!==e&&(a.result=e)===!
1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||
"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!
0||
"click"!==a.type){for(d=[],c=
0;h
>c;c++)f=b[c],e=f.selector+" ",void
0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)
>=
0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h
<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:
"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(
" "),fixHooks:{},keyHooks:{props:
"char charCode key keyCode".split(
" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:
"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(
" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||
0)-(d&&d.clientLeft||e&&e.clientLeft||
0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||
0)-(d&&d.clientTop||e&&e.clientTop||
0)),a.which||void
0===f||(a.which=
1&f?
1:
2&f?
3:
4&f?
2:
0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),
3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!
0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!
1):void
0},delegateType:
"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!
1):void
0},delegateType:
"focusout"},click:{trigger:function(){return
"checkbox"===this.type&&this.click&&n.nodeName(this,
"input")?(this.click(),!
1):void
0},_default:function(a){return n.nodeName(a.target,
"a")}},beforeunload:{postDispatch:function(a){void
0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!
0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!
1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void
0===a.defaultPrevented&&a.returnValue===!
1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!
0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:
"mouseover",mouseleave:
"mouseout",pointerenter:
"pointerover",pointerleave:
"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:
"focusin",blur:
"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!
0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!
0),L.access(d,b,(e||
0)+
1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-
1;e?L.access(d,b,e):(d.removeEventListener(a,c,!
0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if(
"object"==typeof a){
"string"!=typeof b&&(c=c||b,b=void
0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void
0):null==d&&(
"string"==typeof b?(d=c,c=void
0):(d=c,c=b,b=void
0)),d===!
1)d=$;else if(!d)return this;return
1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,
1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+
"."+d.namespace:d.origType,d.selector,d.handler),this;if(
"object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!
1||
"function"==typeof b)&&(c=b,b=void
0),c===!
1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[
0];return c?n.event.trigger(a,b,c,!
0):void
0}});var ab=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^
>]*)\
/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)
>\s*$/g,ib={option:[
1,"
<select multiple='multiple'
>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table
")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr
")?a.getElementsByTagName("tbody
")[0]||a.appendChild(a.ownerDocument.createElement("tbody
")):a}function kb(a){return a.type=(null!==a.getAttribute("type
"))+"/
"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type
"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(
1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=
0,d=j[e].length;d
>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void
0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!
0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||
1!==a.nodeType&&
11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=
0,e=f.length;e
>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=
0,e=f.length;e
>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length
>0&&mb(g,!i&&ob(a,
"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=
0,o=a.length;o
>m;m++)if(e=a[m],e||
0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[
1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[
1]+e.replace(ab,"<$
1></$
2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script
"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script
")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string
"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$
1></$
2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string
"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script
"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-
1].ownerDocument,n.map(f,lb),j=
0;g
>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-
1,h=
0;g
>=h;h++)c=h===g?this:this.clone(!
0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[
0]))?d.display:n.css(e[
0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("
<iframe frameborder='
0' width='
0' height='
0'
/>")).appendTo(b.documentElement),b=qb[0].contentDocument,b.write(),b.close(),c=sb(a,b),qb.detach()),rb[a]=c),c}var ub=/^margin/,vb=new RegExp("^(
"+Q+")(?!px)[a-z%]+$
","i
"),wb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)};function xb(a,b,c){var d,e,f,g,h=a.style;return c=c||wb(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),vb.test(g)&&ub.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function yb(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div
"),f=l.createElement("div
");if(f.style){f.style.backgroundClip="content-box
",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box
"===f.style.backgroundClip,e.style.cssText="border:
0;width:
0;height:
0;top:
0;left:-
9999px;margin-top:
1px;position:absolute
",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:
1%;top:
1%;border:
1px;padding:
1px;width:
4px;position:absolute
",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%
"!==g.top,c="4px
"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div
"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:
0;border:
0;padding:
0",c.style.marginRight=c.style.width="0",f.style.width="1px
",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var zb=/^(none|table(?!-c[ea]).+)/,Ab=new RegExp("^(
"+Q+")(.*)$
","i
"),Bb=new RegExp("^([+-])=(
"+Q+")
","i
"),Cb={position:"absolute
",visibility:"hidden
",display:"block
"},Db={letterSpacing:"0",fontWeight:"400"},Eb=["Webkit
","O
","Moz
","ms
"];function Fb(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Eb.length;while(e--)if(b=Eb[e]+c,b in a)return b;return d}function Gb(a,b,c){var d=Ab.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px
"):b}function Hb(a,b,c,d,e){for(var f=c===(d?"border
":"content
")?4:"width
"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!
0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!
0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!
0,e))):(g+=n.css(a,"padding"+R[f],!
0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!
0,e)));return g}function Ib(a,b,c){var d=!
0,
e="width"===b?a.offsetWidth:a.offsetHeight,f=wb(a),
g="border-box"===n.css(a,"boxSizing",!
1,f);if(
0>=e||null==e){if(e=xb(a,b,f),(
0>e||null==e)&&(e=a.style[b]),vb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||
0}return e+Hb(a,b,c||(g?"border":"content"),d,f)+"px"}function Jb(a,b){for(var c,d,e,f=[],g=
0,h=a.length;h
>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.
display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",tb(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=
0;h
>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xb(a,"opacity");return""===c?"
1":c}}}},cssNumber:{columnCount:!
0,fillOpacity:!
0,flexGrow:!
0,flexShrink:!
0,fontWeight:!
0,lineHeight:!
0,opacity:!
0,order:!
0,orphans:!
0,widows:!
0,zIndex:!
0,zoom:!
0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&
3!==a.nodeType&&
8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fb(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void
0===c?g&&"get"in g&&void
0!==(e=g.get(a,!
1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Bb.exec(c))&&(c=(e[
1]+
1)*e[
2]+parseFloat(n.css(a,b)),
f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||
0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void
0===(c=g.set(a,c,d))||(i[b]=c)),void
0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!
0,c)),void
0===e&&(e=xb(a,b,d)),"normal"===e&&b in Db&&(e=Db[b]),""===c||c?(f=parseFloat(e),c===!
0||n.isNumeric(f)?f||
0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?zb.test(n.css(a,"display"))&&
0===a.offsetWidth?n.swap(a,Cb,function(){return Ib(a,b,d)}):Ib(a,b,d):void
0},set:function(a,c,d){var e=d&&wb(a);return Gb(a,c,d?Hb(a,b,d,"border-box"===n.css(a,"boxSizing",!
1,e),e):
0)}}}),n.cssHooks.marginRight=yb(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xb,[a,"marginRight"]):void
0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=
0,e={},
f="string"==typeof c?c.split(" "):[c];
4>d;d++)e[a+R[d]+b]=f[d]||f[d-
2]||f[
0];return e}},ub.test(a)||(n.cssHooks[a+b].set=Gb)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=
0;if(n.isArray(b)){for(d=wb(a),e=b.length;e
>g;g++)f[b[g]]=n.css(a,b[g],!
1,d);return f}return void
0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length
>1)},show:function(){return Jb(this,!
0)},hide:function(){return Jb(this)},toggle:function(a){return
"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Kb(a,b,c,d,e){return new Kb.prototype.init(a,b,c,d,e)}n.Tween=Kb,Kb.prototype={constructor:Kb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||
"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?
"":
"px")},cur:function(){var a=Kb.propHooks[this.prop];return a&&a.get?a.get(this):Kb.propHooks._default.get(this)},run:function(a){var b,c=Kb.propHooks[this.prop];return this.pos=b=this.options.duration?n.easing[this.easing](a,this.options.duration*a,
0,
1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Kb.propHooks._default.set(this),this}},Kb.prototype.init.prototype=Kb.prototype,Kb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,
""),b&&
"auto"!==b?b:
0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Kb.propHooks.scrollTop=Kb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return
.5-Math.cos(a*Math.PI)/
2}},n.fx=Kb.prototype.init,n.fx.step={};var Lb,Mb,Nb=/^(?:toggle|show|hide)$/,Ob=new RegExp(
"^(?:([+-])=|)("+Q+
")([a-z%]*)$",
"i"),Pb=/queueHooks$/,Qb=[Vb],Rb={
"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Ob.exec(b),f=e&&e[
3]||(n.cssNumber[a]?
"":
"px"),g=(n.cssNumber[a]||
"px"!==f&&+d)&&Ob.exec(n.css(c.elem,a)),h=
1,i=
20;if(g&&g[
3]!==f){f=f||g[
3],e=e||[],g=+d||
1;do h=h||
".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&
1!==h&&--i)}return e&&(g=c.start=+g||+d||
0,c.unit=f,c.end=e[
1]?g+(e[
1]+
1)*e[
2]:+e[
2]),c}]};function Sb(){return setTimeout(function(){Lb=void
0}),Lb=n.now()}function Tb(a,b){var c,d=
0,e={height:a};for(b=b?
1:
0;
4>d;d+=
2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ub(a,b,c){for(var d,e=(Rb[b]||[]).concat(Rb["*"]),f=
0,g=e.length;g
>f;f++)if(d=e[f].call(c,b,a))return d}function Vb(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=
0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),
1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),
k="none"===j?L.get(a,"olddisplay")||tb(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.
display="inline-block")),c.overflow&&(o.
overflow="hidden",l.always(function(){o.overflow=c.overflow[
0],o.overflowX=c.overflow[
1],o.overflowY=c.overflow[
2]}));for(d in b)if(e=b[d],Nb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void
0===q[d])continue;p=!
0}m[d]=q&&q[d]||n.style(a,d)}else j=void
0;if(n.isEmptyObject(m))"inline"===("none"===j?tb(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ub(p?q[d]:
0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.
start="width"===d||"height"===d?
1:
0))}}function Wb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[
1],f=a[c]=f[
0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xb(a,b,c){var d,e,f=
0,g=Qb.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!
1;for(var b=Lb||Sb(),c=Math.max(
0,j.startTime+j.duration-b),d=c/j.duration||
0,f=
1-d,g=
0,i=j.tweens.length;i
>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),
1>f&&i?c:(h.resolveWith(a,[j]),!
1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!
0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Lb||Sb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=
0,d=b?j.tweens.length:
0;if(e)return this;for(e=!
0;d
>c;c++)j.tweens[c].run(
1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wb(k,j.opts.specialEasing);g
>f;f++)if(d=Qb[f].call(j,a,k,j.opts))return d;return n.map(k,Ub,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xb,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=
0,e=a.length;e
>d;d++)c=a[d],Rb[c]=Rb[c]||[],Rb[c].unshift(b)},prefilter:function(a,b){b?Qb.unshift(a):Qb.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?
0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!
0)&&(d.
queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",
0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xb(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!
0)};return g.finish=g,e||f.queue===!
1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void
0),b&&a!==!
1&&this.queue(a||"fx",[]),this.each(function(){var b=!
0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!
1,f.splice(e,
1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!
1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:
0;for(c.finish=!
0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!
0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!
0),f.splice(b,
1));for(b=
0;g
>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Tb(b,!
0),a,d,e)}}),n.each({slideDown:Tb("show"),slideUp:Tb("hide"),slideToggle:Tb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=
0,c=n.timers;for(Lb=n.now();b
<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,
1);c.length||n.fx.stop(),Lb=void
0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=
13,n.fx.start=function(){Mb||(Mb=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Mb),Mb=null},n.fx.speeds={slow:
600,fast:
200,_default:
400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||
"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement(
"input"),b=l.createElement(
"select"),c=b.appendChild(l.createElement(
"option"));a.
type=
"checkbox",k.
checkOn=
""!==a.value,k.optSelected=c.selected,b.disabled=!
0,k.optDisabled=!c.disabled,a=l.createElement(
"input"),a.
value=
"t",a.
type=
"radio",k.
radioValue=
"t"===a.value}();var Yb,Zb,$b=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length
>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&
3!==f&&
8!==f&&
2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(
1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Zb:Yb)),void
0===c?d&&
"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void
0:e):null!==c?d&&
"set"in d&&void
0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+
""),c):void n.removeAttr(a,b))
7029 },removeAttr:function(a,b){var c,d,e=
0,f=b&&b.match(E);if(f&&
1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!
1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&
"radio"===b&&n.nodeName(a,
"input")){var c=a.value;return a.setAttribute(
"type",b),c&&(a.value=c),b}}}}}),Zb={set:function(a,b,c){return b===!
1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$b[b]||n.find.attr;$b[b]=function(a,b,d){var e,f;return d||(f=$b[b],$b[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$b[b]=f),e}});var _b=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length
>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{
"for":
"htmlFor",
"class":
"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&
3!==g&&
8!==g&&
2!==g)return f=
1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void
0!==c?e&&
"set"in e&&void
0!==(d=e.set(a,c,b))?d:a[b]=c:e&&
"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute(
"tabindex")||_b.test(a.nodeName)||a.href?a.tabIndex:-
1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each([
"tabIndex",
"readOnly",
"maxLength",
"cellSpacing",
"cellPadding",
"rowSpan",
"colSpan",
"useMap",
"frameBorder",
"contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ac=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,
h=
"string"==typeof a&&a,i=
0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||
"").match(E)||[];j
>i;i++)if(c=this[i],d=
1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):" ")){f=
0;while(e=b[f++])d.indexOf(" "+e+" ")
<0&&(d+=e+
" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=
0===arguments.length||
"string"==typeof a&&a,i=
0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||
"").match(E)||[];j
>i;i++)if(c=this[i],d=
1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):"")){f=
0;while(e=b[f++])while(d.indexOf(" "+e+" ")
>=
0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=
0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!
1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var
b=" "+a+" ",c=
0,d=this.length;d
>c;c++)if(
1===this[c].nodeType&&(" "+this[c].className+" ").replace(ac," ").indexOf(b)
>=
0)return!
0;return!
1}});var bc=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[
0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;
1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?
e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void
0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void
0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,
f="select-one"===a.type||
0>e,g=f?null:[],h=f?e+
1:d.length,i=
0>e?h:f?e:
0;h
>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)
>=
0)&&(c=!
0);return c||(a.selectedIndex=-
1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)
>=
0:void
0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length
>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return
1===arguments.length?this.off(a,
"**"):this.off(b,a||
"**",c)}});var cc=n.now(),dc=/\?/;n.parseJSON=function(a){return JSON.parse(a+
"")},n.parseXML=function(a){var b,c;if(!a||
"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,
"text/xml")}catch(d){b=void
0}return(!b||b.getElementsByTagName(
"parsererror").length)&&n.error(
"Invalid XML: "+a),b};var ec,fc,gc=/#.*$/,hc=/([?&])_=[^&]*/,ic=/^(.*?):[ \t]*([^\r\n]*)$/gm,jc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,kc=/^(?:GET|HEAD)$/,lc=/^\/\//,mc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,nc={},oc={},
pc=
"*/".concat(
"*");try{fc=location.href}catch(qc){fc=l.createElement(
"a"),fc.
href=
"",fc=fc.href}ec=mc.exec(fc.toLowerCase())||[];function rc(a){return function(b,c){
"string"!=typeof b&&(c=b,
b=
"*");var d,e=
0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])
"+"===d[
0]?(d=d.slice(
1)||
"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function sc(a,b,c,d){var e={},f=a===oc;function g(h){var i;return e[h]=!
0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return
"string"!=typeof j||f||e[j]?f?!(i=j):void
0:(b.dataTypes.unshift(j),g(j),!
1)}),i}return g(b.dataTypes[
0])||!e[
"*"]&&g(
"*")}function tc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void
0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!
0,a,d),a}function uc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while(
"*"===i[
0])i.shift(),void
0===d&&(d=a.mimeType||b.getResponseHeader(
"Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[
0]in c)f=i[
0];else{for(e in c){if(!i[
0]||a.converters[e+
" "+i[
0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[
0]&&i.unshift(f),c[f]):void
0}function vc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[
1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if(
"*"===f)f=i;else if(
"*"!==i&&i!==f){if(g=j[i+
" "+f]||j[
"* "+f],!g)for(e in j)if(h=e.split(
" "),h[
1]===f&&(g=j[i+
" "+h[
0]]||j[
"* "+h[
0]])){g===!
0?g=j[e]:j[e]!==!
0&&(f=h[
0],k.unshift(h[
1]));break}if(g!==!
0)if(g&&a[
"throws"])b=g(b);else try{b=g(b)}catch(l){return{state:
"parsererror",error:g?l:
"No conversion from "+i+
" to "+f}}}return{state:
"success",data:b}}n.extend({active:
0,lastModified:{},etag:{},ajaxSettings:{url:fc,type:
"GET",isLocal:jc.test(ec[
1]),global:!
0,processData:!
0,async:!
0,contentType:
"application/x-www-form-urlencoded; charset=UTF-8",accepts:{
"*":pc,text:
"text/plain",html:
"text/html",xml:
"application/xml, text/xml",json:
"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:
"responseXML",text:
"responseText",json:
"responseJSON"},converters:{
"* text":String,
"text html":!
0,
"text json":n.parseJSON,
"text xml":n.parseXML},flatOptions:{url:!
0,context:!
0}},ajaxSetup:function(a,b){return b?tc(tc(a,n.ajaxSettings),b):tc(n.ajaxSettings,a)},ajaxPrefilter:rc(nc),ajaxTransport:rc(oc),ajax:function(a,b){
"object"==typeof a&&(b=a,a=void
0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks(
"once memory"),q=k.statusCode||{},r={},s={},t=
0,
u=
"canceled",v={readyState:
0,getResponseHeader:function(a){var b;if(
2===t){if(!f){f={};while(b=ic.exec(e))f[b[
1].toLowerCase()]=b[
2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return
2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(
2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(
0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||fc)+"").replace(gc,"").replace(lc,ec[
1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=mc.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[
1]===ec[
1]&&h[
2]===ec[
2]&&(h[
3]||("http:"===h[
1]?"
80":"
443"))===(ec[
3]||("http:"===ec[
1]?"
80":"
443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),sc(nc,k,b,v),
2===t)return v;i=k.global,i&&
0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!kc.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(dc.test(d)?"&":"?")+k.data,delete k.data),k.cache===!
1&&(k.url=hc.test(d)?d.replace(hc,"$
1_="+cc++):d+(dc.test(d)?"&":"?")+"
_="+cc++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!
1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[
0]&&k.accepts[k.dataTypes[
0]]?k.accepts[k.dataTypes[
0]]+("*"!==k.dataTypes[
0]?", "+pc+"; q=
0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!
1||
2===t))return v.abort();
u="abort";for(j in{success:
1,error:
1,complete:
1})v[j](k[j]);if(c=sc(oc,k,b,v)){v.readyState=
1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout
>0&&(g=setTimeout(function(){v.abort(
"timeout")},k.timeout));try{t=
1,c.send(r,x)}catch(w){if(!(
2>t))throw w;x(-
1,w)}}else x(-
1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;
2!==t&&(t=
2,g&&clearTimeout(g),c=void
0,e=h||"",v.readyState=a
>0?
4:
0,j=a
>=
200&&
300>a||
304===a,f&&(u=uc(k,v,f)),u=vc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),
204===a||"HEAD"===k.type?
x="nocontent":
304===a?
x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(
x="error",
0>a&&(a=
0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void
0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void
0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void
0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!
1,global:!
1,"throws":!
0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[
0]&&(b=n(a,this[
0].ownerDocument).eq(
0).clone(!
0),this[
0].parentNode&&b.insertBefore(this[
0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=
0&&a.offsetHeight<=
0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var wc=/%
20/g,xc=/\[\]$/,yc=/\r?\n/g,zc=/^(?:submit|button|image|reset|file)$/i,Ac=/^(?:input|select|textarea|keygen)/i;function Bc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||xc.test(a)?d(a,e):Bc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Bc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void
0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Bc(c,a[c],b,e);return d.join("&").replace(wc,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&Ac.test(this.nodeName)&&!zc.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(yc,"\r\n")}}):{name:b.name,value:c.replace(yc,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Cc=
0,Dc={},Ec={
0:
200,
1223:
204},Fc=n.ajaxSettings.xhr();a.ActiveXObject&&n(a).on("unload",function(){for(var a in Dc)Dc[a]()}),k.cors=!!Fc&&"withCredentials"in Fc,k.ajax=Fc=!!Fc,n.ajaxTransport(function(a){var b;return k.cors||Fc&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Cc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Dc[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Ec[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void
0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Dc[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void
0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void
0===a.cache&&(a.cache=!
1),a.crossDomain&&(a.
type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("
<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error
",c=function(a){b.remove(),c=null,a&&e("error
"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Gc=[],Hc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback
",jsonpCallback:function(){var a=Gc.pop()||n.expando+"_
"+cc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp
",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Hc.test(b.url)?"url
":"string
"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded
")&&Hc.test(b.data)&&"data
");return h||"jsonp
"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Hc,"$
1"+e):b.jsonp!==!1&&(b.url+=(dc.test(b.url)?"&
":"?
")+b.jsonp+"=
"+e),b.converters["script json
"]=function(){return g||n.error(e+" was not called
"),g[0]},b.dataTypes[0]="json
",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Gc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script
"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string
"!=typeof a)return null;"boolean
"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Ic=n.fn.load;n.fn.load=function(a,b,c){if("string
"!=typeof a&&Ic)return Ic.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object
"==typeof b&&(e="POST
"),g.length>0&&n.ajax({url:a,type:e,dataType:"html
",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Jc=a.document.documentElement;function Kc(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position
"),l=n(a),m={};"static
"===k&&(a.style.position="relative
"),h=l.offset(),f=n.css(a,"top
"),i=n.css(a,"left
"),j=("absolute
"===k||"fixed
"===k)&&(f+i).indexOf("auto
")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using
"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Kc(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed
"===n.css(c,"position
")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html
")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth
",!0),d.left+=n.css(a[0],"borderLeftWidth
",!0)),{top:b.top-d.top-n.css(c,"marginTop
",!0),left:b.left-d.left-n.css(c,"marginLeft
",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Jc;while(a&&!n.nodeName(a,"html
")&&"static
"===n.css(a,"position
"))a=a.offsetParent;return a||Jc})}}),n.each({scrollLeft:"pageXOffset
",scrollTop:"pageYOffset
"},function(b,c){var d="pageYOffset
"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Kc(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top
","left
"],function(a,b){n.cssHooks[b]=yb(k.pixelPosition,function(a,c){return c?(c=xb(a,b),vb.test(c)?n(a).position()[b]+"px
":c):void 0})}),n.each({Height:"height
",Width:"width
"},function(a,b){n.each({padding:"inner
"+a,content:b,"":"outer
"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean
"!=typeof d),g=c||(d===!0||e===!0?"margin
":"border
");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client
"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll
"+a],e["scroll
"+a],b.body["offset
"+a],e["offset
"+a],e["client
"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function
"==typeof define&&define.amd&&define("jquery
",[],function(){return n});var Lc=a.jQuery,Mc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Mc),b&&a.jQuery===n&&(a.jQuery=Lc),n},typeof b===U&&(a.jQuery=a.$=n),n});
7032 * Bootstrap v3.2.0 (http://getbootstrap.com)
7033 * Copyright 2011-2014 Twitter, Inc.
7034 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7036 if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void
0!==a.style[c])return{end:b[c]};return!
1}a.fn.emulateTransitionEnd=function(b){var c=!
1,d=this;a(this).one("bsTransitionEnd",function(){c=!
0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void
0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[
data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.
VERSION="
3.2.0",d.prototype.close=function(b){function c(){f.detach().trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",c).emulateTransitionEnd(
150):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),
f="object"==typeof b&
&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!
1};c.
VERSION="
3.2.0",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var
c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),d[e](null==f[b]?this.options[b]:f[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!
0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!
1,d.removeClass(c).removeAttr(c))},this),
0)},c.prototype.toggle=function(){var a=!
0,b=this.$element.closest('[
data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!
1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),
g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b).on("keydown.bs.carousel",a.proxy(this.keydown,this)),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.
VERSION="
3.2.0",c.DEFAULTS={interval:
5e3,pause:"hover",wrap:!
0},c.prototype.keydown=function(a){switch(a.which){case
37:this.prev();break;case
39:this.next();break;default:return}a.preventDefault()},c.prototype.cycle=function(b){return b||(this.paused=!
1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.to=function(b){var c=this,d=this.getItemIndex(this.$active=this.$element.find(".item.active"));return b
>this.$items.length-
1||
0>b?void
0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b
>d?"next":"prev",a(this.$items[b]))},c.prototype.pause=function(b){return b||(this.paused=!
0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!
0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void
0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void
0:this.slide("prev")},c.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,
g="next"==b?"left":"right",
h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!
1;var j=e[
0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:g});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!
0,f&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(e)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:g});return a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[
0].offsetWidth,d.addClass(g),e.addClass(g),d.one("bsTransitionEnd",function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!
1,setTimeout(function(){i.$element.trigger(m)},
0)}).emulateTransitionEnd(
1e3*d.css("transition-duration").slice(
0,-
1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!
1,this.$element.trigger(m)),f&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!
1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}}),a(window).on("load",function(){a('[
data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(b=!b),e||d.data("bs.collapse",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};c.
VERSION="
3.2.0",c.DEFAULTS={toggle:!
0},c.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},c.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var c=a.Event("show.bs.collapse");if(this.$element.trigger(c),!c.isDefaultPrevented()){var d=this.$parent&&this.$parent.find("
> .panel
> .in");if(d&&d.length){var e=d.data("bs.collapse");if(e&&e.transitioning)return;b.call(d,"hide"),e||d.data("bs.collapse",null)}var f=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[f](
0),this.transitioning=
1;var g=function(){this.$element.removeClass("collapsing").addClass("collapse in")[f](""),this.transitioning=
0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return g.call(this);var h=a.camelCase(["scroll",f].join("-"));this.$element.one("bsTransitionEnd",a.proxy(g,this)).emulateTransitionEnd(
350)[f](this.$element[
0][h])}}},c.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[
0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=
1;var d=function(){this.transitioning=
0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](
0).one("bsTransitionEnd",a.proxy(d,this)).emulateTransitionEnd(
350):d.call(this)}}},c.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var d=a.fn.collapse;a.fn.collapse=b,a.fn.collapse.Constructor=c,a.fn.collapse.noConflict=function(){return a.fn.collapse=d,this},a(document).on("click.bs.collapse.data-api",'[
data-toggle="collapse"]',function(c){var d,e=a(this),f=e.attr("data-target")||c.preventDefault()||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),g=a(f),h=g.data("bs.collapse"),i=h?"toggle":e.data(),j=e.attr("data-parent"),k=j&&a(j);h&&h.transitioning||(k&&k.find('[
data-toggle="collapse"][
data-parent="'+j+'"]').not(e).addClass("collapsed"),e[g.hasClass("in")?"addClass":"removeClass"]("collapsed")),b.call(g,i)})}(jQuery),+function(a){"use strict";function b(b){b&&
3===b.which||(a(e).remove(),a(f).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var
e=".dropdown-backdrop",f='[
data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.
VERSION="
3.2.0",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('
<div class=
"dropdown-backdrop"/>').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!
1}},g.prototype.keydown=function(b){if(/(
38|
40|
27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g||g&&
27==b.keyCode)return
27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var
h=" li:not(.divider):visible a",i=e.find('[
role="menu"]'+h+', [
role="listbox"]'+h);if(i.length){var j=i.index(i.filter(":focus"));
38==b.keyCode&&j
>0&&j--,
40==b.keyCode&&j
<i.length-
1&&j++,~j||(j=
0),i.eq(j).trigger(
"focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on(
"click.bs.dropdown.data-api",b).on(
"click.bs.dropdown.data-api",
".dropdown form",function(a){a.stopPropagation()}).on(
"click.bs.dropdown.data-api",f,g.prototype.toggle).on(
"keydown.bs.dropdown.data-api",f+', [
role=
"menu"], [
role=
"listbox"]',g.prototype.keydown)}(jQuery),+function(a){
"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data(
"bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),
"object"==typeof b&&b);f||e.data(
"bs.modal",f=new c(this,g)),
"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$backdrop=this.isShown=null,this.scrollbarWidth=
0,this.options.remote&&this.$element.find(
".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger(
"loaded.bs.modal")},this))};c.
VERSION=
"3.2.0",c.DEFAULTS={backdrop:!
0,keyboard:!
0,show:!
0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var c=this,d=a.Event(
"show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!
0,this.checkScrollbar(),this.$body.addClass(
"modal-open"),this.setScrollbar(),this.escape(),this.$element.on(
"click.dismiss.bs.modal",'[
data-dismiss=
"modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass(
"fade");c.$element.parent().length||c.$element.appendTo(c.$body),c.$element.show().scrollTop(
0),d&&c.$element[
0].offsetWidth,c.$element.addClass(
"in").attr(
"aria-hidden",!
1),c.enforceFocus();var e=a.Event(
"shown.bs.modal",{relatedTarget:b});d?c.$element.find(
".modal-dialog").one(
"bsTransitionEnd",function(){c.$element.trigger(
"focus").trigger(e)}).emulateTransitionEnd(
300):c.$element.trigger(
"focus").trigger(e)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event(
"hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!
1,this.$body.removeClass(
"modal-open"),this.resetScrollbar(),this.escape(),a(document).off(
"focusin.bs.modal"),this.$element.removeClass(
"in").attr(
"aria-hidden",!
0).off(
"click.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass(
"fade")?this.$element.one(
"bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(
300):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off(
"focusin.bs.modal").on(
"focusin.bs.modal",a.proxy(function(a){this.$element[
0]===a.target||this.$element.has(a.target).length||this.$element.trigger(
"focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on(
"keyup.dismiss.bs.modal",a.proxy(function(a){
27==a.which&&this.hide()},this)):this.isShown||this.$element.off(
"keyup.dismiss.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$element.trigger(
"hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var c=this,d=this.$element.hasClass(
"fade")?
"fade":
"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&
&d;if(this.$backdrop=a('
<div class=
"modal-backdrop '+d+'" />').appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[
0].focus.call(this.$element[
0]):this.hide.call(this))},this)),e&&this.$backdrop[
0].offsetWidth,this.$backdrop.addClass("in"),!b)return;e?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(
150):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var f=function(){c.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",f).emulateTransitionEnd(
150):f()}else b&&b()},c.prototype.checkScrollbar=function(){document.body.clientWidth
>=window.innerWidth||(this.scrollbarWidth=this.scrollbarWidth||this.measureScrollbar())},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||
0,
10);this.scrollbarWidth&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.
className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[
0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[
data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),
f="object"==typeof b&
&b;(e||"destroy"!=b)&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.
VERSION="
3.2.0",c.DEFAULTS={animation:!
0,placement:"top",selector:!
1,template:'
<div class=
"tooltip" role=
"tooltip"><div class=
"tooltip-arrow"></div><div class=
"tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:
0,html:!
1,container:!
1,viewport:{selector:"body",padding:
0}},c.prototype.init=function(b,c,d){this.enabled=!
0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var
h="hover"==g?"mouseenter":"focusin",
i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.
hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show()},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.
hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var c=a.contains(document.documentElement,this.$element[
0]);if(b.isDefaultPrevented()||!c)return;var d=this,e=this.tip(),f=this.getUID(this.type);this.setContent(),e.attr("id",f),this.$element.attr("aria-describedby",f),this.options.animation&&e.addClass("fade");var
g="function"==typeof this.options.placement?this.options.placement.call(this,e[
0],this.$element[
0]):this.options.placement,h=/\s?auto?\s?/i,i=h.test(g);i&&(g=g.replace(h,"")||"top"),e.detach().css({top:
0,left:
0,display:"block"}).addClass(g).data("bs."+this.type,this),this.options.container?e.appendTo(this.options.container):e.insertAfter(this.$element);var j=this.getPosition(),k=e[
0].offsetWidth,l=e[
0].offsetHeight;if(i){var m=g,n=this.$element.parent(),o=this.getPosition(n);
g="bottom"==g&&j.top+j.height+l-o.scroll
>o.height?"top":"top"==g&&j.top-o.scroll-l
<0?
"bottom":
"right"==g&&j.right+k
>o.width?"left":"left"==g&&j.left-k
<o.left?
"right":g,e.removeClass(m).addClass(g)}var p=this.getCalculatedOffset(g,j,k,l);this.applyPlacement(p,g);var q=function(){d.$element.trigger(
"shown.bs."+d.type),d.hoverState=null};a.support.transition&&this.$tip.hasClass(
"fade")?e.one(
"bsTransitionEnd",q).emulateTransitionEnd(
150):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[
0].offsetWidth,f=d[
0].offsetHeight,g=parseInt(d.css(
"margin-top"),
10),h=parseInt(d.css(
"margin-left"),
10);isNaN(g)&&(g=
0),isNaN(h)&&(h=
0),b.top=b.top+g,b.left=b.left+h,a.offset.setOffset(d[
0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),
0),d.addClass(
"in");var i=d[
0].offsetWidth,j=d[
0].offsetHeight;
"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=k.left?
2*k.left-e+i:
2*k.top-f+j,m=k.left?
"left":
"top",n=k.left?
"offsetWidth":
"offsetHeight";d.offset(b),this.replaceArrow(l,d[
0][n],m)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?
50*(
1-a/b)+
"%":
"")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(
".tooltip-inner")[this.options.html?
"html":
"text"](b),a.removeClass(
"fade in top bottom left right")},c.prototype.hide=function(){function b(){
"in"!=c.hoverState&&d.detach(),c.$element.trigger(
"hidden.bs."+c.type)}var c=this,d=this.tip(),e=a.Event(
"hide.bs."+this.type);return this.$element.removeAttr(
"aria-describedby"),this.$element.trigger(e),e.isDefaultPrevented()?void
0:(d.removeClass(
"in"),a.support.transition&&this.$tip.hasClass(
"fade")?d.one(
"bsTransitionEnd",b).emulateTransitionEnd(
150):b(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr(
"title")||
"string"!=typeof a.attr(
"data-original-title"))&&a.attr(
"data-original-title",a.attr(
"title")||
"").attr(
"title",
"")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[
0],
d=
"BODY"==c.tagName;return a.extend({},
"function"==typeof c.getBoundingClientRect?c.getBoundingClientRect():null,{scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop(),width:d?a(window).width():b.outerWidth(),height:d?a(window).height():b.outerHeight()},d?{top:
0,left:
0}:b.offset())},c.prototype.getCalculatedOffset=function(a,b,c,d){return
"bottom"==a?{top:b.top+b.height,left:b.left+b.width/
2-c/
2}:
"top"==a?{top:b.top-d,left:b.left+b.width/
2-c/
2}:
"left"==a?{top:b.top+b.height/
2-d/
2,left:b.left-c}:{top:b.top+b.height/
2-d/
2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:
0,left:
0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||
0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h
<g.top?e.top=g.top-h:i
>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j
<g.left?e.left=g.left-j:k
>g.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[
0]):c.title)},c.prototype.getUID=function(a){do a+=~~(
1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.validate=function(){this.$element[
0].parentNode||(this.hide(),this.$element=null,this.options=null)},c.prototype.enable=function(){this.enabled=!
0},c.prototype.disable=function(){this.enabled=!
1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),
f="object"==typeof b&
&b;(e||"destroy"!=b)&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.
VERSION="
3.2.0",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'
<div class=
"popover" role=
"tooltip"><div class=
"arrow"></div><h3 class=
"popover-title"></h3><div class=
"popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").empty()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[
0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li
> a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=
0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),
f="object"==typeof c&
&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.
VERSION="
3.2.0",b.DEFAULTS={offset:
10},b.prototype.getScrollHeight=function(){return this.$scrollElement[
0].scrollHeight||Math.max(this.$body[
0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var
b="offset",c=
0;a.isWindow(this.$scrollElement[
0])||(
b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[
0]-b[
0]}).each(function(){d.offsets.push(this[
0]),d.targets.push(this[
1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b
>=d)return g!=(a=f[f.length-
1])&&this.activate(a);if(g&&b<=e[
0])return g!=(a=f[
0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b
>=e[a]&&(!e[a+
1]||b<=e[a+
1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[
data-target="'+b+'"],'+this.selector+'[
href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[
data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.
VERSION="
3.2.0",c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[
0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.closest("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},c.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("
> .dropdown-menu
> .active").removeClass("active"),b.addClass("active"),g?(b[
0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("
> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one("bsTransitionEnd",e).emulateTransitionEnd(
150):e(),f.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this},a(document).on("click.bs.tab.data-api",'[
data-toggle="tab"], [
data-toggle="pill"]',function(c){c.preventDefault(),b.call(a(this),"show")})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),
f="object"==typeof b&
&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.
VERSION="
3.2.0",c.
RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:
0,target:window},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),
1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=a(document).height(),d=this.$target.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!
1:null!=h&&e.top+this.$element.height()
>=b-h?"bottom":null!=g&&g
>=d?"top":!
1;if(this.affixed!==i){null!=this.unpin&&this.$element.css("top","");var
j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.
unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:b-this.$element.height()-h}))}}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[
data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},d.offsetBottom&&(d.offset.bottom=d.offsetBottom),d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
</script>
7037 <script>(function() {
7041 * Extend an Object with another Object's properties.
7043 * The source objects are specified as additional arguments.
7045 * @param dst Object the object to extend.
7047 * @return Object the final object.
7049 var _extend = function(dst) {
7050 var sources = Array.prototype.slice.call(arguments,
1);
7051 for (var i=
0; i
<sources.length; ++i) {
7052 var src = sources[i];
7053 for (var p in src) {
7054 if (src.hasOwnProperty(p)) dst[p] = src[p];
7062 * Defer execution of given function.
7063 * @param {Function} func
7065 var _defer = function(func) {
7066 if (typeof setImmediate === 'function') {
7067 return setImmediate(func);
7069 return setTimeout(func,
0);
7074 * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance.
7078 * Calculate levenshtein distance of the two strings.
7080 * @param str1 String the first string.
7081 * @param str2 String the second string.
7082 * @return Integer the levenshtein distance (
0 and above).
7084 get: function(str1, str2) {
7086 if (str1 === str2) return
0;
7087 if (str1.length ===
0) return str2.length;
7088 if (str2.length ===
0) return str1.length;
7091 var prevRow = new Array(str2.length +
1),
7092 curCol, nextCol, i, j, tmp;
7094 // initialise previous row
7095 for (i=
0; i
<prevRow.length; ++i) {
7099 // calculate current row distance from previous row
7100 for (i=
0; i
<str1.length; ++i) {
7103 for (j=
0; j
<str2.length; ++j) {
7107 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7110 if (nextCol
> tmp) {
7114 tmp = prevRow[j +
1] +
1;
7115 if (nextCol
> tmp) {
7119 // copy current col value into previous (in preparation for next iteration)
7120 prevRow[j] = curCol;
7123 // copy last col value into previous (in preparation for next iteration)
7124 prevRow[j] = nextCol;
7131 * Asynchronously calculate levenshtein distance of the two strings.
7133 * @param str1 String the first string.
7134 * @param str2 String the second string.
7135 * @param cb Function callback function with signature: function(Error err, int distance)
7136 * @param [options] Object additional options.
7137 * @param [options.progress] Function progress callback with signature: function(percentComplete)
7139 getAsync: function(str1, str2, cb, options) {
7140 options = _extend({}, {
7145 if (str1 === str2) return cb(null,
0);
7146 if (str1.length ===
0) return cb(null, str2.length);
7147 if (str2.length ===
0) return cb(null, str1.length);
7150 var prevRow = new Array(str2.length +
1),
7153 startTime, currentTime;
7155 // initialise previous row
7156 for (i=
0; i
<prevRow.length; ++i) {
7164 var __calculate = function() {
7166 startTime = new Date().valueOf();
7167 currentTime = startTime;
7169 // keep going until one second has elapsed
7170 while (currentTime - startTime <
1000) {
7171 // reached end of current row?
7172 if (str2.length <= (++j)) {
7173 // copy current into previous (in preparation for next iteration)
7174 prevRow[j] = nextCol;
7176 // if already done all chars
7177 if (str1.length <= (++i)) {
7178 return cb(null, nextCol);
7180 // else if we have more left to do
7191 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7194 if (nextCol
> tmp) {
7198 tmp = prevRow[j +
1] +
1;
7199 if (nextCol
> tmp) {
7203 // copy current into previous (in preparation for next iteration)
7204 prevRow[j] = curCol;
7207 currentTime = new Date().valueOf();
7210 // send a progress update?
7211 if (null !== options.progress) {
7213 options.progress.call(null, (i *
100.0/ str1.length));
7215 return cb('Progress callback: ' + err.toString());
7220 _defer(__calculate);
7229 if (typeof define !== "undefined" && define !== null && define.amd) {
7235 else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
7236 module.exports = Levenshtein;
7239 else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
7240 self.Levenshtein = Levenshtein;
7242 // browser main thread
7243 else if (typeof window !== "undefined" && window !== null) {
7244 window.Levenshtein = Levenshtein;
7249 <script>(function(r){r.fn.qrcode=function(h){var s;function u(a){this.mode=s;this.data=a}function o(a,c){this.typeNumber=a;this.errorCorrectLevel=c;this.modules=null;this.moduleCount=
0;this.dataCache=null;this.dataList=[]}function q(a,c){if(void
0==a.length)throw Error(a.length+"/"+c);for(var d=
0;d
<a.length&&
0==a[d];)d++;this.num=Array(a.length-d+c);for(var b=
0;b
<a.length-d;b++)this.num[b]=a[b+d]}function p(a,c){this.totalCount=a;this.dataCount=c}function t(){this.buffer=[];this.length=
0}u.prototype={getLength:function(){return this.data.length},
7250 write:function(a){for(var c=
0;c
<this.data.length;c++)a.put(this.data.charCodeAt(c),
8)}};o.prototype={addData:function(a){this.dataList.push(new u(a));this.dataCache=null},isDark:function(a,c){if(
0>a||this.moduleCount<=a||
0>c||this.moduleCount<=c)throw Error(a+","+c);return this.modules[a][c]},getModuleCount:function(){return this.moduleCount},make:function(){if(
1>this.typeNumber){for(var a=
1,a=
1;
40>a;a++){for(var c=p.getRSBlocks(a,this.errorCorrectLevel),d=new t,b=
0,e=
0;e
<c.length;e++)b+=c[e].dataCount;
7251 for(e=
0;e
<this.dataList.length;e++)c=this.dataList[e],d.put(c.mode,
4),d.put(c.getLength(),j.getLengthInBits(c.mode,a)),c.write(d);if(d.getLengthInBits()<=
8*b)break}this.typeNumber=a}this.makeImpl(!
1,this.getBestMaskPattern())},makeImpl:function(a,c){this.moduleCount=
4*this.typeNumber+
17;this.modules=Array(this.moduleCount);for(var d=
0;d
<this.moduleCount;d++){this.modules[d]=Array(this.moduleCount);for(var b=
0;b
<this.moduleCount;b++)this.modules[d][b]=null}this.setupPositionProbePattern(
0,
0);this.setupPositionProbePattern(this.moduleCount-
7252 7,
0);this.setupPositionProbePattern(
0,this.moduleCount-
7);this.setupPositionAdjustPattern();this.setupTimingPattern();this.setupTypeInfo(a,c);
7<=this.typeNumber&&this.setupTypeNumber(a);null==this.dataCache&&(this.dataCache=o.createData(this.typeNumber,this.errorCorrectLevel,this.dataList));this.mapData(this.dataCache,c)},setupPositionProbePattern:function(a,c){for(var d=-
1;
7>=d;d++)if(!(-
1>=a+d||this.moduleCount<=a+d))for(var b=-
1;
7>=b;b++)-
1>=c+b||this.moduleCount<=c+b||(this.modules[a+d][c+b]=
7253 0<=d&&
6>=d&&(
0==b||
6==b)||
0<=b&&
6>=b&&(
0==d||
6==d)||
2<=d&&
4>=d&&
2<=b&&
4>=b?!
0:!
1)},getBestMaskPattern:function(){for(var a=
0,c=
0,d=
0;
8>d;d++){this.makeImpl(!
0,d);var b=j.getLostPoint(this);if(
0==d||a
>b)a=b,c=d}return c},createMovieClip:function(a,c,d){a=a.createEmptyMovieClip(c,d);this.make();for(c=
0;c
<this.modules.length;c++)for(var d=
1*c,b=
0;b
<this.modules[c].length;b++){var e=
1*b;this.modules[c][b]&&(a.beginFill(
0,
100),a.moveTo(e,d),a.lineTo(e+
1,d),a.lineTo(e+
1,d+
1),a.lineTo(e,d+
1),a.endFill())}return a},
7254 setupTimingPattern:function(){for(var a=
8;a
<this.moduleCount-
8;a++)null==this.modules[a][
6]&&(this.modules[a][
6]=
0==a%
2);for(a=
8;a
<this.moduleCount-
8;a++)null==this.modules[
6][a]&&(this.modules[
6][a]=
0==a%
2)},setupPositionAdjustPattern:function(){for(var a=j.getPatternPosition(this.typeNumber),c=
0;c
<a.length;c++)for(var d=
0;d
<a.length;d++){var b=a[c],e=a[d];if(null==this.modules[b][e])for(var f=-
2;
2>=f;f++)for(var i=-
2;
2>=i;i++)this.modules[b+f][e+i]=-
2==f||
2==f||-
2==i||
2==i||
0==f&&
0==i?!
0:!
1}},setupTypeNumber:function(a){for(var c=
7255 j.getBCHTypeNumber(this.typeNumber),d=
0;
18>d;d++){var b=!a&&
1==(c
>>d&
1);this.modules[Math.floor(d/
3)][d%
3+this.moduleCount-
8-
3]=b}for(d=
0;
18>d;d++)b=!a&&
1==(c
>>d&
1),this.modules[d%
3+this.moduleCount-
8-
3][Math.floor(d/
3)]=b},setupTypeInfo:function(a,c){for(var d=j.getBCHTypeInfo(this.errorCorrectLevel<
<3|c),b=
0;
15>b;b++){var e=!a&&
1==(d
>>b&
1);
6>b?this.modules[b][
8]=e:
8>b?this.modules[b+
1][
8]=e:this.modules[this.moduleCount-
15+b][
8]=e}for(b=
0;
15>b;b++)e=!a&&
1==(d
>>b&
1),
8>b?this.modules[
8][this.moduleCount-
7256 b-
1]=e:
9>b?this.modules[
8][
15-b-
1+
1]=e:this.modules[
8][
15-b-
1]=e;this.modules[this.moduleCount-
8][
8]=!a},mapData:function(a,c){for(var d=-
1,b=this.moduleCount-
1,e=
7,f=
0,i=this.moduleCount-
1;
0<i;i-=
2)for(
6==i&&i--;;){for(var g=
0;
2>g;g++)if(null==this.modules[b][i-g]){var n=!
1;f
<a.length&&(n=
1==(a[f]
>>>e&
1));j.getMask(c,b,i-g)&&(n=!n);this.modules[b][i-g]=n;e--; -
1==e&&(f++,e=
7)}b+=d;if(
0>b||this.moduleCount<=b){b-=d;d=-d;break}}}};o.PAD0=
236;o.PAD1=
17;o.createData=function(a,c,d){for(var c=p.getRSBlocks(a,
7257 c),b=new t,e=
0;e
<d.length;e++){var f=d[e];b.put(f.mode,
4);b.put(f.getLength(),j.getLengthInBits(f.mode,a));f.write(b)}for(e=a=
0;e
<c.length;e++)a+=c[e].dataCount;if(b.getLengthInBits()
>8*a)throw Error(
"code length overflow. ("+b.getLengthInBits()+
">"+
8*a+
")");for(b.getLengthInBits()+
4<=
8*a&&b.put(
0,
4);
0!=b.getLengthInBits()%
8;)b.putBit(!
1);for(;!(b.getLengthInBits()
>=
8*a);){b.put(o.PAD0,
8);if(b.getLengthInBits()
>=
8*a)break;b.put(o.PAD1,
8)}return o.createBytes(b,c)};o.createBytes=function(a,c){for(var d=
7258 0,b=
0,e=
0,f=Array(c.length),i=Array(c.length),g=
0;g
<c.length;g++){var n=c[g].dataCount,h=c[g].totalCount-n,b=Math.max(b,n),e=Math.max(e,h);f[g]=Array(n);for(var k=
0;k
<f[g].length;k++)f[g][k]=
255&a.buffer[k+d];d+=n;k=j.getErrorCorrectPolynomial(h);n=(new q(f[g],k.getLength()-
1)).mod(k);i[g]=Array(k.getLength()-
1);for(k=
0;k
<i[g].length;k++)h=k+n.getLength()-i[g].length,i[g][k]=
0<=h?n.get(h):
0}for(k=g=
0;k
<c.length;k++)g+=c[k].totalCount;d=Array(g);for(k=n=
0;k
<b;k++)for(g=
0;g
<c.length;g++)k
<f[g].length&&
7259 (d[n++]=f[g][k]);for(k=
0;k
<e;k++)for(g=
0;g
<c.length;g++)k
<i[g].length&&(d[n++]=i[g][k]);return d};s=
4;for(var j={PATTERN_POSITION_TABLE:[[],[
6,
18],[
6,
22],[
6,
26],[
6,
30],[
6,
34],[
6,
22,
38],[
6,
24,
42],[
6,
26,
46],[
6,
28,
50],[
6,
30,
54],[
6,
32,
58],[
6,
34,
62],[
6,
26,
46,
66],[
6,
26,
48,
70],[
6,
26,
50,
74],[
6,
30,
54,
78],[
6,
30,
56,
82],[
6,
30,
58,
86],[
6,
34,
62,
90],[
6,
28,
50,
72,
94],[
6,
26,
50,
74,
98],[
6,
30,
54,
78,
102],[
6,
28,
54,
80,
106],[
6,
32,
58,
84,
110],[
6,
30,
58,
86,
114],[
6,
34,
62,
90,
118],[
6,
26,
50,
74,
98,
122],[
6,
30,
54,
78,
102,
126],[
6,
26,
52,
7260 78,
104,
130],[
6,
30,
56,
82,
108,
134],[
6,
34,
60,
86,
112,
138],[
6,
30,
58,
86,
114,
142],[
6,
34,
62,
90,
118,
146],[
6,
30,
54,
78,
102,
126,
150],[
6,
24,
50,
76,
102,
128,
154],[
6,
28,
54,
80,
106,
132,
158],[
6,
32,
58,
84,
110,
136,
162],[
6,
26,
54,
82,
110,
138,
166],[
6,
30,
58,
86,
114,
142,
170]],G15:
1335,G18:
7973,G15_MASK:
21522,getBCHTypeInfo:function(a){for(var c=a<
<10;
0<=j.getBCHDigit(c)-j.getBCHDigit(j.G15);)c^=j.G15<
<j.getBCHDigit(c)-j.getBCHDigit(j.G15);return(a<
<10|c)^j.G15_MASK},getBCHTypeNumber:function(a){for(var c=a<
<12;
0<=j.getBCHDigit(c)-
7261 j.getBCHDigit(j.G18);)c^=j.G18<
<j.getBCHDigit(c)-j.getBCHDigit(j.G18);return a<
<12|c},getBCHDigit:function(a){for(var c=
0;
0!=a;)c++,a
>>>=
1;return c},getPatternPosition:function(a){return j.PATTERN_POSITION_TABLE[a-
1]},getMask:function(a,c,d){switch(a){case
0:return
0==(c+d)%
2;case
1:return
0==c%
2;case
2:return
0==d%
3;case
3:return
0==(c+d)%
3;case
4:return
0==(Math.floor(c/
2)+Math.floor(d/
3))%
2;case
5:return
0==c*d%
2+c*d%
3;case
6:return
0==(c*d%
2+c*d%
3)%
2;case
7:return
0==(c*d%
3+(c+d)%
2)%
2;default:throw Error("bad maskPattern:"+
7262 a);}},getErrorCorrectPolynomial:function(a){for(var c=new q([
1],
0),d=
0;d
<a;d++)c=c.multiply(new q([
1,l.gexp(d)],
0));return c},getLengthInBits:function(a,c){if(
1<=c&&
10>c)switch(a){case
1:return
10;case
2:return
9;case s:return
8;case
8:return
8;default:throw Error("mode:"+a);}else if(
27>c)switch(a){case
1:return
12;case
2:return
11;case s:return
16;case
8:return
10;default:throw Error("mode:"+a);}else if(
41>c)switch(a){case
1:return
14;case
2:return
13;case s:return
16;case
8:return
12;default:throw Error("mode:"+
7263 a);}else throw Error("type:"+c);},getLostPoint:function(a){for(var c=a.getModuleCount(),d=
0,b=
0;b
<c;b++)for(var e=
0;e
<c;e++){for(var f=
0,i=a.isDark(b,e),g=-
1;
1>=g;g++)if(!(
0>b+g||c<=b+g))for(var h=-
1;
1>=h;h++)
0>e+h||c<=e+h||
0==g&&
0==h||i==a.isDark(b+g,e+h)&&f++;
5<f&&(d+=
3+f-
5)}for(b=
0;b
<c-1;b++)for(e=
0;e
<c-1;e++)if(f=
0,a.isDark(b,e)&&f++,a.isDark(b+
1,e)&&f++,a.isDark(b,e+
1)&&f++,a.isDark(b+
1,e+
1)&&f++,
0==f||
4==f)d+=
3;for(b=
0;b
<c;b++)for(e=
0;e
<c-6;e++)a.isDark(b,e)&&!a.isDark(b,e+
1)&&a.isDark(b,e+
7264 2)&&a.isDark(b,e+
3)&&a.isDark(b,e+
4)&&!a.isDark(b,e+
5)&&a.isDark(b,e+
6)&&(d+=
40);for(e=
0;e
<c;e++)for(b=
0;b
<c-6;b++)a.isDark(b,e)&&!a.isDark(b+
1,e)&&a.isDark(b+
2,e)&&a.isDark(b+
3,e)&&a.isDark(b+
4,e)&&!a.isDark(b+
5,e)&&a.isDark(b+
6,e)&&(d+=
40);for(e=f=
0;e
<c;e++)for(b=
0;b
<c;b++)a.isDark(b,e)&&f++;a=Math.abs(
100*f/c/c-
50)/
5;return d+
10*a}},l={glog:function(a){if(
1>a)throw Error("glog("+a+")");return l.LOG_TABLE[a]},gexp:function(a){for(;
0>a;)a+=
255;for(;
256<=a;)a-=
255;return l.EXP_TABLE[a]},EXP_TABLE:Array(
256),
7265 LOG_TABLE:Array(
256)},m=
0;
8>m;m++)l.EXP_TABLE[m]=
1<
<m;for(m=
8;
256>m;m++)l.EXP_TABLE[m]=l.EXP_TABLE[m-
4]^l.EXP_TABLE[m-
5]^l.EXP_TABLE[m-
6]^l.EXP_TABLE[m-
8];for(m=
0;
255>m;m++)l.LOG_TABLE[l.EXP_TABLE[m]]=m;q.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var c=Array(this.getLength()+a.getLength()-
1),d=
0;d
<this.getLength();d++)for(var b=
0;b
<a.getLength();b++)c[d+b]^=l.gexp(l.glog(this.get(d))+l.glog(a.get(b)));return new q(c,
0)},mod:function(a){if(
0>
7266 this.getLength()-a.getLength())return this;for(var c=l.glog(this.get(
0))-l.glog(a.get(
0)),d=Array(this.getLength()),b=
0;b
<this.getLength();b++)d[b]=this.get(b);for(b=
0;b
<a.getLength();b++)d[b]^=l.gexp(l.glog(a.get(b))+c);return(new q(d,
0)).mod(a)}};p.RS_BLOCK_TABLE=[[
1,
26,
19],[
1,
26,
16],[
1,
26,
13],[
1,
26,
9],[
1,
44,
34],[
1,
44,
28],[
1,
44,
22],[
1,
44,
16],[
1,
70,
55],[
1,
70,
44],[
2,
35,
17],[
2,
35,
13],[
1,
100,
80],[
2,
50,
32],[
2,
50,
24],[
4,
25,
9],[
1,
134,
108],[
2,
67,
43],[
2,
33,
15,
2,
34,
16],[
2,
33,
11,
2,
34,
12],[
2,
86,
68],[
4,
43,
27],
7267 [
4,
43,
19],[
4,
43,
15],[
2,
98,
78],[
4,
49,
31],[
2,
32,
14,
4,
33,
15],[
4,
39,
13,
1,
40,
14],[
2,
121,
97],[
2,
60,
38,
2,
61,
39],[
4,
40,
18,
2,
41,
19],[
4,
40,
14,
2,
41,
15],[
2,
146,
116],[
3,
58,
36,
2,
59,
37],[
4,
36,
16,
4,
37,
17],[
4,
36,
12,
4,
37,
13],[
2,
86,
68,
2,
87,
69],[
4,
69,
43,
1,
70,
44],[
6,
43,
19,
2,
44,
20],[
6,
43,
15,
2,
44,
16],[
4,
101,
81],[
1,
80,
50,
4,
81,
51],[
4,
50,
22,
4,
51,
23],[
3,
36,
12,
8,
37,
13],[
2,
116,
92,
2,
117,
93],[
6,
58,
36,
2,
59,
37],[
4,
46,
20,
6,
47,
21],[
7,
42,
14,
4,
43,
15],[
4,
133,
107],[
8,
59,
37,
1,
60,
38],[
8,
44,
20,
4,
45,
21],[
12,
33,
11,
4,
34,
12],[
3,
145,
115,
1,
146,
7268 116],[
4,
64,
40,
5,
65,
41],[
11,
36,
16,
5,
37,
17],[
11,
36,
12,
5,
37,
13],[
5,
109,
87,
1,
110,
88],[
5,
65,
41,
5,
66,
42],[
5,
54,
24,
7,
55,
25],[
11,
36,
12],[
5,
122,
98,
1,
123,
99],[
7,
73,
45,
3,
74,
46],[
15,
43,
19,
2,
44,
20],[
3,
45,
15,
13,
46,
16],[
1,
135,
107,
5,
136,
108],[
10,
74,
46,
1,
75,
47],[
1,
50,
22,
15,
51,
23],[
2,
42,
14,
17,
43,
15],[
5,
150,
120,
1,
151,
121],[
9,
69,
43,
4,
70,
44],[
17,
50,
22,
1,
51,
23],[
2,
42,
14,
19,
43,
15],[
3,
141,
113,
4,
142,
114],[
3,
70,
44,
11,
71,
45],[
17,
47,
21,
4,
48,
22],[
9,
39,
13,
16,
40,
14],[
3,
135,
107,
5,
136,
108],[
3,
67,
41,
13,
68,
42],[
15,
54,
24,
5,
55,
25],[
15,
7269 43,
15,
10,
44,
16],[
4,
144,
116,
4,
145,
117],[
17,
68,
42],[
17,
50,
22,
6,
51,
23],[
19,
46,
16,
6,
47,
17],[
2,
139,
111,
7,
140,
112],[
17,
74,
46],[
7,
54,
24,
16,
55,
25],[
34,
37,
13],[
4,
151,
121,
5,
152,
122],[
4,
75,
47,
14,
76,
48],[
11,
54,
24,
14,
55,
25],[
16,
45,
15,
14,
46,
16],[
6,
147,
117,
4,
148,
118],[
6,
73,
45,
14,
74,
46],[
11,
54,
24,
16,
55,
25],[
30,
46,
16,
2,
47,
17],[
8,
132,
106,
4,
133,
107],[
8,
75,
47,
13,
76,
48],[
7,
54,
24,
22,
55,
25],[
22,
45,
15,
13,
46,
16],[
10,
142,
114,
2,
143,
115],[
19,
74,
46,
4,
75,
47],[
28,
50,
22,
6,
51,
23],[
33,
46,
16,
4,
47,
17],[
8,
152,
122,
4,
153,
123],[
22,
73,
45,
7270 3,
74,
46],[
8,
53,
23,
26,
54,
24],[
12,
45,
15,
28,
46,
16],[
3,
147,
117,
10,
148,
118],[
3,
73,
45,
23,
74,
46],[
4,
54,
24,
31,
55,
25],[
11,
45,
15,
31,
46,
16],[
7,
146,
116,
7,
147,
117],[
21,
73,
45,
7,
74,
46],[
1,
53,
23,
37,
54,
24],[
19,
45,
15,
26,
46,
16],[
5,
145,
115,
10,
146,
116],[
19,
75,
47,
10,
76,
48],[
15,
54,
24,
25,
55,
25],[
23,
45,
15,
25,
46,
16],[
13,
145,
115,
3,
146,
116],[
2,
74,
46,
29,
75,
47],[
42,
54,
24,
1,
55,
25],[
23,
45,
15,
28,
46,
16],[
17,
145,
115],[
10,
74,
46,
23,
75,
47],[
10,
54,
24,
35,
55,
25],[
19,
45,
15,
35,
46,
16],[
17,
145,
115,
1,
146,
116],[
14,
74,
46,
21,
75,
47],[
29,
54,
24,
19,
7271 55,
25],[
11,
45,
15,
46,
46,
16],[
13,
145,
115,
6,
146,
116],[
14,
74,
46,
23,
75,
47],[
44,
54,
24,
7,
55,
25],[
59,
46,
16,
1,
47,
17],[
12,
151,
121,
7,
152,
122],[
12,
75,
47,
26,
76,
48],[
39,
54,
24,
14,
55,
25],[
22,
45,
15,
41,
46,
16],[
6,
151,
121,
14,
152,
122],[
6,
75,
47,
34,
76,
48],[
46,
54,
24,
10,
55,
25],[
2,
45,
15,
64,
46,
16],[
17,
152,
122,
4,
153,
123],[
29,
74,
46,
14,
75,
47],[
49,
54,
24,
10,
55,
25],[
24,
45,
15,
46,
46,
16],[
4,
152,
122,
18,
153,
123],[
13,
74,
46,
32,
75,
47],[
48,
54,
24,
14,
55,
25],[
42,
45,
15,
32,
46,
16],[
20,
147,
117,
4,
148,
118],[
40,
75,
47,
7,
76,
48],[
43,
54,
24,
22,
55,
25],[
10,
7272 45,
15,
67,
46,
16],[
19,
148,
118,
6,
149,
119],[
18,
75,
47,
31,
76,
48],[
34,
54,
24,
34,
55,
25],[
20,
45,
15,
61,
46,
16]];p.getRSBlocks=function(a,c){var d=p.getRsBlockTable(a,c);if(void
0==d)throw Error(
"bad rs block @ typeNumber:"+a+
"/errorCorrectLevel:"+c);for(var b=d.length/
3,e=[],f=
0;f
<b;f++)for(var h=d[
3*f+
0],g=d[
3*f+
1],j=d[
3*f+
2],l=
0;l
<h;l++)e.push(new p(g,j));return e};p.getRsBlockTable=function(a,c){switch(c){case
1:return p.RS_BLOCK_TABLE[
4*(a-
1)+
0];case
0:return p.RS_BLOCK_TABLE[
4*(a-
1)+
1];case
3:return p.RS_BLOCK_TABLE[
4*
7273 (a-
1)+
2];case
2:return p.RS_BLOCK_TABLE[
4*(a-
1)+
3]}};t.prototype={get:function(a){return
1==(this.buffer[Math.floor(a/
8)]
>>>7-a%
8&
1)},put:function(a,c){for(var d=
0;d
<c;d++)this.putBit(
1==(a
>>>c-d-
1&
1))},getLengthInBits:function(){return this.length},putBit:function(a){var c=Math.floor(this.length/
8);this.buffer.length<=c&&this.buffer.push(
0);a&&(this.buffer[c]|=
128>>>this.length%
8);this.length++}};"string"===typeof h&&(h={text:h});h=r.extend({},{render:"canvas",width:
256,height:
256,typeNumber:-
1,
7274 correctLevel:
2,background:"#ffffff",foreground:"#
000000"},h);return this.each(function(){var a;if("canvas"==h.render){a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();var c=document.createElement("canvas");c.width=h.width;c.height=h.height;for(var d=c.getContext("
2d"),b=h.width/a.getModuleCount(),e=h.height/a.getModuleCount(),f=
0;f
<a.getModuleCount();f++)for(var i=
0;i
<a.getModuleCount();i++){d.fillStyle=a.isDark(f,i)?h.foreground:h.background;var g=Math.ceil((i+
1)*b)-Math.floor(i*b),
7275 j=Math.ceil((f+
1)*b)-Math.floor(f*b);d.fillRect(Math.round(i*b),Math.round(f*e),g,j)}}else{a=new o(h.typeNumber,h.correctLevel);a.addData(h.text);a.make();c=r(
"<table></table>").css(
"width",h.width+
"px").css(
"height",h.height+
"px").css(
"border",
"0px").css(
"border-collapse",
"collapse").css(
"background-color",h.background);d=h.width/a.getModuleCount();b=h.height/a.getModuleCount();for(e=
0;e
<a.getModuleCount();e++){f=r(
"<tr></tr>").css(
"height",b+
"px").appendTo(c);for(i=
0;i
<a.getModuleCount();i++)r(
"<td></td>").css(
"width",
7276 d+
"px").css(
"background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;$(a).appendTo(this)})}})($);
7278 <script>(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.bitcoinjs = 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
<r.length;o++)s(r[o]);return s})({
1:[function(require,module,exports){
7282 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
7286 * The buffer module from node.js, for the browser.
7288 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
7291 function compare(a, b) {
7299 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
7300 if (a[i] !== b[i]) {
7315 function isBuffer(b) {
7316 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
7317 return global.Buffer.isBuffer(b);
7319 return !!(b != null && b._isBuffer);
7322 // based on node assert, original notice:
7324 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
7326 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
7328 // Originally from narwhal.js (http://narwhaljs.org)
7329 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
7331 // Permission is hereby granted, free of charge, to any person obtaining a copy
7332 // of this software and associated documentation files (the 'Software'), to
7333 // deal in the Software without restriction, including without limitation the
7334 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7335 // sell copies of the Software, and to permit persons to whom the Software is
7336 // furnished to do so, subject to the following conditions:
7338 // The above copyright notice and this permission notice shall be included in
7339 // all copies or substantial portions of the Software.
7341 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
7342 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
7343 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
7344 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
7345 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
7346 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
7348 var util = require('util/');
7349 var hasOwn = Object.prototype.hasOwnProperty;
7350 var pSlice = Array.prototype.slice;
7351 var functionsHaveNames = (function () {
7352 return function foo() {}.name === 'foo';
7354 function pToString (obj) {
7355 return Object.prototype.toString.call(obj);
7357 function isView(arrbuf) {
7358 if (isBuffer(arrbuf)) {
7361 if (typeof global.ArrayBuffer !== 'function') {
7364 if (typeof ArrayBuffer.isView === 'function') {
7365 return ArrayBuffer.isView(arrbuf);
7370 if (arrbuf instanceof DataView) {
7373 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
7378 //
1. The assert module provides functions that throw
7379 // AssertionError's when particular conditions are not met. The
7380 // assert module must conform to the following interface.
7382 var assert = module.exports = ok;
7384 //
2. The AssertionError is defined in assert.
7385 // new assert.AssertionError({ message: message,
7387 // expected: expected })
7389 var regex = /\s*function\s+([^\(\s]*)\s*/;
7390 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
7391 function getName(func) {
7392 if (!util.isFunction(func)) {
7395 if (functionsHaveNames) {
7398 var str = func.toString();
7399 var match = str.match(regex);
7400 return match && match[
1];
7402 assert.AssertionError = function AssertionError(options) {
7403 this.name = 'AssertionError';
7404 this.actual = options.actual;
7405 this.expected = options.expected;
7406 this.operator = options.operator;
7407 if (options.message) {
7408 this.message = options.message;
7409 this.generatedMessage = false;
7411 this.message = getMessage(this);
7412 this.generatedMessage = true;
7414 var stackStartFunction = options.stackStartFunction || fail;
7415 if (Error.captureStackTrace) {
7416 Error.captureStackTrace(this, stackStartFunction);
7418 // non v8 browsers so we can have a stacktrace
7419 var err = new Error();
7421 var out = err.stack;
7423 // try to strip useless frames
7424 var fn_name = getName(stackStartFunction);
7425 var idx = out.indexOf('\n' + fn_name);
7427 // once we have located the function frame
7428 // we need to strip out everything before it (and its line)
7429 var next_line = out.indexOf('\n', idx +
1);
7430 out = out.substring(next_line +
1);
7438 // assert.AssertionError instanceof Error
7439 util.inherits(assert.AssertionError, Error);
7441 function truncate(s, n) {
7442 if (typeof s === 'string') {
7443 return s.length < n ? s : s.slice(
0, n);
7448 function inspect(something) {
7449 if (functionsHaveNames || !util.isFunction(something)) {
7450 return util.inspect(something);
7452 var rawname = getName(something);
7453 var name = rawname ? ': ' + rawname : '';
7454 return '[Function' + name + ']';
7456 function getMessage(self) {
7457 return truncate(inspect(self.actual),
128) + ' ' +
7458 self.operator + ' ' +
7459 truncate(inspect(self.expected),
128);
7462 // At present only the three keys mentioned above are used and
7463 // understood by the spec. Implementations or sub modules can pass
7464 // other keys to the AssertionError's constructor - they will be
7467 //
3. All of the following functions must throw an AssertionError
7468 // when a corresponding condition is not met, with a message that
7469 // may be undefined if not provided. All assertion methods provide
7470 // both the actual and expected values to the assertion error for
7471 // display purposes.
7473 function fail(actual, expected, message, operator, stackStartFunction) {
7474 throw new assert.AssertionError({
7479 stackStartFunction: stackStartFunction
7483 // EXTENSION! allows for well behaved errors defined elsewhere.
7486 //
4. Pure assertion tests whether a value is truthy, as determined
7488 // assert.ok(guard, message_opt);
7489 // This statement is equivalent to assert.equal(true, !!guard,
7490 // message_opt);. To test strictly for the value true, use
7491 // assert.strictEqual(true, guard, message_opt);.
7493 function ok(value, message) {
7494 if (!value) fail(value, true, message, '==', assert.ok);
7498 //
5. The equality assertion tests shallow, coercive equality with
7500 // assert.equal(actual, expected, message_opt);
7502 assert.equal = function equal(actual, expected, message) {
7503 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
7506 //
6. The non-equality assertion tests for whether two objects are not equal
7507 // with != assert.notEqual(actual, expected, message_opt);
7509 assert.notEqual = function notEqual(actual, expected, message) {
7510 if (actual == expected) {
7511 fail(actual, expected, message, '!=', assert.notEqual);
7515 //
7. The equivalence assertion tests a deep equality relation.
7516 // assert.deepEqual(actual, expected, message_opt);
7518 assert.deepEqual = function deepEqual(actual, expected, message) {
7519 if (!_deepEqual(actual, expected, false)) {
7520 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
7524 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
7525 if (!_deepEqual(actual, expected, true)) {
7526 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
7530 function _deepEqual(actual, expected, strict, memos) {
7531 //
7.1. All identical values are equivalent, as determined by ===.
7532 if (actual === expected) {
7534 } else if (isBuffer(actual) && isBuffer(expected)) {
7535 return compare(actual, expected) ===
0;
7537 //
7.2. If the expected value is a Date object, the actual value is
7538 // equivalent if it is also a Date object that refers to the same time.
7539 } else if (util.isDate(actual) && util.isDate(expected)) {
7540 return actual.getTime() === expected.getTime();
7542 //
7.3 If the expected value is a RegExp object, the actual value is
7543 // equivalent if it is also a RegExp object with the same source and
7544 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
7545 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
7546 return actual.source === expected.source &&
7547 actual.global === expected.global &&
7548 actual.multiline === expected.multiline &&
7549 actual.lastIndex === expected.lastIndex &&
7550 actual.ignoreCase === expected.ignoreCase;
7552 //
7.4. Other pairs that do not both pass typeof value == 'object',
7553 // equivalence is determined by ==.
7554 } else if ((actual === null || typeof actual !== 'object') &&
7555 (expected === null || typeof expected !== 'object')) {
7556 return strict ? actual === expected : actual == expected;
7558 // If both values are instances of typed arrays, wrap their underlying
7559 // ArrayBuffers in a Buffer each to increase performance
7560 // This optimization requires the arrays to have the same type as checked by
7561 // Object.prototype.toString (aka pToString). Never perform binary
7562 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
7563 // bit patterns are not identical.
7564 } else if (isView(actual) && isView(expected) &&
7565 pToString(actual) === pToString(expected) &&
7566 !(actual instanceof Float32Array ||
7567 actual instanceof Float64Array)) {
7568 return compare(new Uint8Array(actual.buffer),
7569 new Uint8Array(expected.buffer)) ===
0;
7571 //
7.5 For all other Object pairs, including Array objects, equivalence is
7572 // determined by having the same number of owned properties (as verified
7573 // with Object.prototype.hasOwnProperty.call), the same set of keys
7574 // (although not necessarily the same order), equivalent values for every
7575 // corresponding key, and an identical 'prototype' property. Note: this
7576 // accounts for both named and indexed properties on Arrays.
7577 } else if (isBuffer(actual) !== isBuffer(expected)) {
7580 memos = memos || {actual: [], expected: []};
7582 var actualIndex = memos.actual.indexOf(actual);
7583 if (actualIndex !== -
1) {
7584 if (actualIndex === memos.expected.indexOf(expected)) {
7589 memos.actual.push(actual);
7590 memos.expected.push(expected);
7592 return objEquiv(actual, expected, strict, memos);
7596 function isArguments(object) {
7597 return Object.prototype.toString.call(object) == '[object Arguments]';
7600 function objEquiv(a, b, strict, actualVisitedObjects) {
7601 if (a === null || a === undefined || b === null || b === undefined)
7603 // if one is a primitive, the other must be same
7604 if (util.isPrimitive(a) || util.isPrimitive(b))
7606 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
7608 var aIsArgs = isArguments(a);
7609 var bIsArgs = isArguments(b);
7610 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
7615 return _deepEqual(a, b, strict);
7617 var ka = objectKeys(a);
7618 var kb = objectKeys(b);
7620 // having the same number of owned properties (keys incorporates
7622 if (ka.length !== kb.length)
7624 //the same set of keys (although not necessarily the same order),
7628 for (i = ka.length -
1; i
>=
0; i--) {
7629 if (ka[i] !== kb[i])
7632 //equivalent values for every corresponding key, and
7633 //~~~possibly expensive deep test
7634 for (i = ka.length -
1; i
>=
0; i--) {
7636 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
7642 //
8. The non-equivalence assertion tests for any deep inequality.
7643 // assert.notDeepEqual(actual, expected, message_opt);
7645 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
7646 if (_deepEqual(actual, expected, false)) {
7647 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
7651 assert.notDeepStrictEqual = notDeepStrictEqual;
7652 function notDeepStrictEqual(actual, expected, message) {
7653 if (_deepEqual(actual, expected, true)) {
7654 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
7659 //
9. The strict equality assertion tests strict equality, as determined by ===.
7660 // assert.strictEqual(actual, expected, message_opt);
7662 assert.strictEqual = function strictEqual(actual, expected, message) {
7663 if (actual !== expected) {
7664 fail(actual, expected, message, '===', assert.strictEqual);
7668 //
10. The strict non-equality assertion tests for strict inequality, as
7669 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
7671 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
7672 if (actual === expected) {
7673 fail(actual, expected, message, '!==', assert.notStrictEqual);
7677 function expectedException(actual, expected) {
7678 if (!actual || !expected) {
7682 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
7683 return expected.test(actual);
7687 if (actual instanceof expected) {
7691 // Ignore. The instanceof check doesn't work for arrow functions.
7694 if (Error.isPrototypeOf(expected)) {
7698 return expected.call({}, actual) === true;
7701 function _tryBlock(block) {
7711 function _throws(shouldThrow, block, expected, message) {
7714 if (typeof block !== 'function') {
7715 throw new TypeError('"block" argument must be a function');
7718 if (typeof expected === 'string') {
7723 actual = _tryBlock(block);
7725 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
7726 (message ? ' ' + message : '.');
7728 if (shouldThrow && !actual) {
7729 fail(actual, expected, 'Missing expected exception' + message);
7732 var userProvidedMessage = typeof message === 'string';
7733 var isUnwantedException = !shouldThrow && util.isError(actual);
7734 var isUnexpectedException = !shouldThrow && actual && !expected;
7736 if ((isUnwantedException &&
7737 userProvidedMessage &&
7738 expectedException(actual, expected)) ||
7739 isUnexpectedException) {
7740 fail(actual, expected, 'Got unwanted exception' + message);
7743 if ((shouldThrow && actual && expected &&
7744 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
7749 //
11. Expected to throw an error:
7750 // assert.throws(block, Error_opt, message_opt);
7752 assert.throws = function(block, /*optional*/error, /*optional*/message) {
7753 _throws(true, block, error, message);
7756 // EXTENSION! This is annoying to write outside this module.
7757 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
7758 _throws(false, block, error, message);
7761 assert.ifError = function(err) { if (err) throw err; };
7763 var objectKeys = Object.keys || function (obj) {
7765 for (var key in obj) {
7766 if (hasOwn.call(obj, key)) keys.push(key);
7771 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
7772 },{"util/":
32}],
2:[function(require,module,exports){
7775 exports.byteLength = byteLength
7776 exports.toByteArray = toByteArray
7777 exports.fromByteArray = fromByteArray
7781 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
7783 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
7784 for (var i =
0, len = code.length; i < len; ++i) {
7786 revLookup[code.charCodeAt(i)] = i
7789 revLookup['-'.charCodeAt(
0)] =
62
7790 revLookup['_'.charCodeAt(
0)] =
63
7792 function placeHoldersCount (b64) {
7793 var len = b64.length
7795 throw new Error('Invalid string. Length must be a multiple of
4')
7798 // the number of equal signs (place holders)
7799 // if there are two placeholders, than the two characters before it
7800 // represent one byte
7801 // if there is only one, then the three characters before it represent
2 bytes
7802 // this is just a cheap hack to not do indexOf twice
7803 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
7806 function byteLength (b64) {
7807 // base64 is
4/
3 + up to two characters of the original data
7808 return (b64.length *
3 /
4) - placeHoldersCount(b64)
7811 function toByteArray (b64) {
7812 var i, l, tmp, placeHolders, arr
7813 var len = b64.length
7814 placeHolders = placeHoldersCount(b64)
7816 arr = new Arr((len *
3 /
4) - placeHolders)
7818 // if there are placeholders, only get up to the last complete
4 chars
7819 l = placeHolders
> 0 ? len -
4 : len
7823 for (i =
0; i < l; i +=
4) {
7824 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
7825 arr[L++] = (tmp
>> 16) &
0xFF
7826 arr[L++] = (tmp
>> 8) &
0xFF
7827 arr[L++] = tmp &
0xFF
7830 if (placeHolders ===
2) {
7831 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
7832 arr[L++] = tmp &
0xFF
7833 } else if (placeHolders ===
1) {
7834 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
7835 arr[L++] = (tmp
>> 8) &
0xFF
7836 arr[L++] = tmp &
0xFF
7842 function tripletToBase64 (num) {
7843 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
7846 function encodeChunk (uint8, start, end) {
7849 for (var i = start; i < end; i +=
3) {
7850 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
7851 output.push(tripletToBase64(tmp))
7853 return output.join('')
7856 function fromByteArray (uint8) {
7858 var len = uint8.length
7859 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
7862 var maxChunkLength =
16383 // must be multiple of
3
7864 // go through the array every three bytes, we'll deal with trailing stuff later
7865 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
7866 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
7869 // pad the end with zeros, but make sure to not forget the extra bytes
7870 if (extraBytes ===
1) {
7871 tmp = uint8[len -
1]
7872 output += lookup[tmp
>> 2]
7873 output += lookup[(tmp <<
4) &
0x3F]
7875 } else if (extraBytes ===
2) {
7876 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
7877 output += lookup[tmp
>> 10]
7878 output += lookup[(tmp
>> 4) &
0x3F]
7879 output += lookup[(tmp <<
2) &
0x3F]
7885 return parts.join('')
7888 },{}],
3:[function(require,module,exports){
7890 },{}],
4:[function(require,module,exports){
7892 * The buffer module from node.js, for the browser.
7894 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
7897 /* eslint-disable no-proto */
7901 var base64 = require('base64-js')
7902 var ieee754 = require('ieee754')
7904 exports.Buffer = Buffer
7905 exports.SlowBuffer = SlowBuffer
7906 exports.INSPECT_MAX_BYTES =
50
7908 var K_MAX_LENGTH =
0x7fffffff
7909 exports.kMaxLength = K_MAX_LENGTH
7912 * If `Buffer.TYPED_ARRAY_SUPPORT`:
7913 * === true Use Uint8Array implementation (fastest)
7914 * === false Print warning and recommend using `buffer` v4.x which has an Object
7915 * implementation (most compatible, even IE6)
7917 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
7918 * Opera
11.6+, iOS
4.2+.
7920 * We report that the browser does not support typed arrays if the are not subclassable
7921 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
7922 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
7923 * for __proto__ and has a buggy typed array implementation.
7925 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
7927 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
7928 typeof console.error === 'function') {
7930 'This browser lacks typed array (Uint8Array) support which is required by ' +
7931 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
7935 function typedArraySupport () {
7936 // Can typed array instances can be augmented?
7938 var arr = new Uint8Array(
1)
7939 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
7940 return arr.foo() ===
42
7946 function createBuffer (length) {
7947 if (length
> K_MAX_LENGTH) {
7948 throw new RangeError('Invalid typed array length')
7950 // Return an augmented `Uint8Array` instance
7951 var buf = new Uint8Array(length)
7952 buf.__proto__ = Buffer.prototype
7957 * The Buffer constructor returns instances of `Uint8Array` that have their
7958 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
7959 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
7960 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
7961 * returns a single octet.
7963 * The `Uint8Array` prototype remains unmodified.
7966 function Buffer (arg, encodingOrOffset, length) {
7968 if (typeof arg === 'number') {
7969 if (typeof encodingOrOffset === 'string') {
7971 'If encoding is specified then the first argument must be a string'
7974 return allocUnsafe(arg)
7976 return from(arg, encodingOrOffset, length)
7979 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
7980 if (typeof Symbol !== 'undefined' && Symbol.species &&
7981 Buffer[Symbol.species] === Buffer) {
7982 Object.defineProperty(Buffer, Symbol.species, {
7990 Buffer.poolSize =
8192 // not used by this implementation
7992 function from (value, encodingOrOffset, length) {
7993 if (typeof value === 'number') {
7994 throw new TypeError('"value" argument must not be a number')
7997 if (value instanceof ArrayBuffer) {
7998 return fromArrayBuffer(value, encodingOrOffset, length)
8001 if (typeof value === 'string') {
8002 return fromString(value, encodingOrOffset)
8005 return fromObject(value)
8009 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
8010 * if value is a number.
8011 * Buffer.from(str[, encoding])
8012 * Buffer.from(array)
8013 * Buffer.from(buffer)
8014 * Buffer.from(arrayBuffer[, byteOffset[, length]])
8016 Buffer.from = function (value, encodingOrOffset, length) {
8017 return from(value, encodingOrOffset, length)
8020 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
8021 // https://github.com/feross/buffer/pull/
148
8022 Buffer.prototype.__proto__ = Uint8Array.prototype
8023 Buffer.__proto__ = Uint8Array
8025 function assertSize (size) {
8026 if (typeof size !== 'number') {
8027 throw new TypeError('"size" argument must be a number')
8028 } else if (size <
0) {
8029 throw new RangeError('"size" argument must not be negative')
8033 function alloc (size, fill, encoding) {
8036 return createBuffer(size)
8038 if (fill !== undefined) {
8039 // Only pay attention to encoding if it's a string. This
8040 // prevents accidentally sending in a number that would
8041 // be interpretted as a start offset.
8042 return typeof encoding === 'string'
8043 ? createBuffer(size).fill(fill, encoding)
8044 : createBuffer(size).fill(fill)
8046 return createBuffer(size)
8050 * Creates a new filled Buffer instance.
8051 * alloc(size[, fill[, encoding]])
8053 Buffer.alloc = function (size, fill, encoding) {
8054 return alloc(size, fill, encoding)
8057 function allocUnsafe (size) {
8059 return createBuffer(size <
0 ?
0 : checked(size) |
0)
8063 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
8065 Buffer.allocUnsafe = function (size) {
8066 return allocUnsafe(size)
8069 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
8071 Buffer.allocUnsafeSlow = function (size) {
8072 return allocUnsafe(size)
8075 function fromString (string, encoding) {
8076 if (typeof encoding !== 'string' || encoding === '') {
8080 if (!Buffer.isEncoding(encoding)) {
8081 throw new TypeError('"encoding" must be a valid string encoding')
8084 var length = byteLength(string, encoding) |
0
8085 var buf = createBuffer(length)
8087 var actual = buf.write(string, encoding)
8089 if (actual !== length) {
8090 // Writing a hex string, for example, that contains invalid characters will
8091 // cause everything after the first invalid character to be ignored. (e.g.
8092 // 'abxxcd' will be treated as 'ab')
8093 buf = buf.slice(
0, actual)
8099 function fromArrayLike (array) {
8100 var length = array.length <
0 ?
0 : checked(array.length) |
0
8101 var buf = createBuffer(length)
8102 for (var i =
0; i < length; i +=
1) {
8103 buf[i] = array[i] &
255
8108 function fromArrayBuffer (array, byteOffset, length) {
8109 if (byteOffset <
0 || array.byteLength < byteOffset) {
8110 throw new RangeError('\'offset\' is out of bounds')
8113 if (array.byteLength < byteOffset + (length ||
0)) {
8114 throw new RangeError('\'length\' is out of bounds')
8118 if (byteOffset === undefined && length === undefined) {
8119 buf = new Uint8Array(array)
8120 } else if (length === undefined) {
8121 buf = new Uint8Array(array, byteOffset)
8123 buf = new Uint8Array(array, byteOffset, length)
8126 // Return an augmented `Uint8Array` instance
8127 buf.__proto__ = Buffer.prototype
8131 function fromObject (obj) {
8132 if (Buffer.isBuffer(obj)) {
8133 var len = checked(obj.length) |
0
8134 var buf = createBuffer(len)
8136 if (buf.length ===
0) {
8140 obj.copy(buf,
0,
0, len)
8145 if (isArrayBufferView(obj) || 'length' in obj) {
8146 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
8147 return createBuffer(
0)
8149 return fromArrayLike(obj)
8152 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
8153 return fromArrayLike(obj.data)
8157 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
8160 function checked (length) {
8161 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
8162 // length is NaN (which is otherwise coerced to zero.)
8163 if (length
>= K_MAX_LENGTH) {
8164 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
8165 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
8170 function SlowBuffer (length) {
8171 if (+length != length) { // eslint-disable-line eqeqeq
8174 return Buffer.alloc(+length)
8177 Buffer.isBuffer = function isBuffer (b) {
8178 return b != null && b._isBuffer === true
8181 Buffer.compare = function compare (a, b) {
8182 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
8183 throw new TypeError('Arguments must be Buffers')
8186 if (a === b) return
0
8191 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
8192 if (a[i] !== b[i]) {
8199 if (x < y) return -
1
8204 Buffer.isEncoding = function isEncoding (encoding) {
8205 switch (String(encoding).toLowerCase()) {
8223 Buffer.concat = function concat (list, length) {
8224 if (!Array.isArray(list)) {
8225 throw new TypeError('"list" argument must be an Array of Buffers')
8228 if (list.length ===
0) {
8229 return Buffer.alloc(
0)
8233 if (length === undefined) {
8235 for (i =
0; i < list.length; ++i) {
8236 length += list[i].length
8240 var buffer = Buffer.allocUnsafe(length)
8242 for (i =
0; i < list.length; ++i) {
8244 if (!Buffer.isBuffer(buf)) {
8245 throw new TypeError('"list" argument must be an Array of Buffers')
8247 buf.copy(buffer, pos)
8253 function byteLength (string, encoding) {
8254 if (Buffer.isBuffer(string)) {
8255 return string.length
8257 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
8258 return string.byteLength
8260 if (typeof string !== 'string') {
8261 string = '' + string
8264 var len = string.length
8265 if (len ===
0) return
0
8267 // Use a for loop to avoid recursion
8268 var loweredCase = false
8278 return utf8ToBytes(string).length
8287 return base64ToBytes(string).length
8289 if (loweredCase) return utf8ToBytes(string).length // assume utf8
8290 encoding = ('' + encoding).toLowerCase()
8295 Buffer.byteLength = byteLength
8297 function slowToString (encoding, start, end) {
8298 var loweredCase = false
8300 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
8301 // property of a typed array.
8303 // This behaves neither like String nor Uint8Array in that we set start/end
8304 // to their upper/lower bounds if the value passed is out of range.
8305 // undefined is handled specially as per ECMA-
262 6th Edition,
8306 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
8307 if (start === undefined || start <
0) {
8310 // Return early if start
> this.length. Done here to prevent potential uint32
8311 // coercion fail below.
8312 if (start
> this.length) {
8316 if (end === undefined || end
> this.length) {
8324 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
8332 if (!encoding) encoding = 'utf8'
8337 return hexSlice(this, start, end)
8341 return utf8Slice(this, start, end)
8344 return asciiSlice(this, start, end)
8348 return latin1Slice(this, start, end)
8351 return base64Slice(this, start, end)
8357 return utf16leSlice(this, start, end)
8360 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
8361 encoding = (encoding + '').toLowerCase()
8367 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
8368 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
8369 // reliably in a browserify context because there could be multiple different
8370 // copies of the 'buffer' package in use. This method works even for Buffer
8371 // instances that were created from another copy of the `buffer` package.
8372 // See: https://github.com/feross/buffer/issues/
154
8373 Buffer.prototype._isBuffer = true
8375 function swap (b, n, m) {
8381 Buffer.prototype.swap16 = function swap16 () {
8382 var len = this.length
8383 if (len %
2 !==
0) {
8384 throw new RangeError('Buffer size must be a multiple of
16-bits')
8386 for (var i =
0; i < len; i +=
2) {
8387 swap(this, i, i +
1)
8392 Buffer.prototype.swap32 = function swap32 () {
8393 var len = this.length
8394 if (len %
4 !==
0) {
8395 throw new RangeError('Buffer size must be a multiple of
32-bits')
8397 for (var i =
0; i < len; i +=
4) {
8398 swap(this, i, i +
3)
8399 swap(this, i +
1, i +
2)
8404 Buffer.prototype.swap64 = function swap64 () {
8405 var len = this.length
8406 if (len %
8 !==
0) {
8407 throw new RangeError('Buffer size must be a multiple of
64-bits')
8409 for (var i =
0; i < len; i +=
8) {
8410 swap(this, i, i +
7)
8411 swap(this, i +
1, i +
6)
8412 swap(this, i +
2, i +
5)
8413 swap(this, i +
3, i +
4)
8418 Buffer.prototype.toString = function toString () {
8419 var length = this.length
8420 if (length ===
0) return ''
8421 if (arguments.length ===
0) return utf8Slice(this,
0, length)
8422 return slowToString.apply(this, arguments)
8425 Buffer.prototype.equals = function equals (b) {
8426 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
8427 if (this === b) return true
8428 return Buffer.compare(this, b) ===
0
8431 Buffer.prototype.inspect = function inspect () {
8433 var max = exports.INSPECT_MAX_BYTES
8434 if (this.length
> 0) {
8435 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
8436 if (this.length
> max) str += ' ... '
8438 return '
<Buffer ' + str + '
>'
8441 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
8442 if (!Buffer.isBuffer(target)) {
8443 throw new TypeError('Argument must be a Buffer')
8446 if (start === undefined) {
8449 if (end === undefined) {
8450 end = target ? target.length :
0
8452 if (thisStart === undefined) {
8455 if (thisEnd === undefined) {
8456 thisEnd = this.length
8459 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
8460 throw new RangeError('out of range index')
8463 if (thisStart
>= thisEnd && start
>= end) {
8466 if (thisStart
>= thisEnd) {
8478 if (this === target) return
0
8480 var x = thisEnd - thisStart
8482 var len = Math.min(x, y)
8484 var thisCopy = this.slice(thisStart, thisEnd)
8485 var targetCopy = target.slice(start, end)
8487 for (var i =
0; i < len; ++i) {
8488 if (thisCopy[i] !== targetCopy[i]) {
8495 if (x < y) return -
1
8500 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
8501 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
8504 // - buffer - a Buffer to search
8505 // - val - a string, Buffer, or number
8506 // - byteOffset - an index into `buffer`; will be clamped to an int32
8507 // - encoding - an optional encoding, relevant is val is a string
8508 // - dir - true for indexOf, false for lastIndexOf
8509 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
8510 // Empty buffer means no match
8511 if (buffer.length ===
0) return -
1
8513 // Normalize byteOffset
8514 if (typeof byteOffset === 'string') {
8515 encoding = byteOffset
8517 } else if (byteOffset
> 0x7fffffff) {
8518 byteOffset =
0x7fffffff
8519 } else if (byteOffset < -
0x80000000) {
8520 byteOffset = -
0x80000000
8522 byteOffset = +byteOffset // Coerce to Number.
8523 if (numberIsNaN(byteOffset)) {
8524 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
8525 byteOffset = dir ?
0 : (buffer.length -
1)
8528 // Normalize byteOffset: negative offsets start from the end of the buffer
8529 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
8530 if (byteOffset
>= buffer.length) {
8532 else byteOffset = buffer.length -
1
8533 } else if (byteOffset <
0) {
8534 if (dir) byteOffset =
0
8539 if (typeof val === 'string') {
8540 val = Buffer.from(val, encoding)
8543 // Finally, search either indexOf (if dir is true) or lastIndexOf
8544 if (Buffer.isBuffer(val)) {
8545 // Special case: looking for empty string/buffer always fails
8546 if (val.length ===
0) {
8549 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
8550 } else if (typeof val === 'number') {
8551 val = val &
0xFF // Search for a byte value [
0-
255]
8552 if (typeof Uint8Array.prototype.indexOf === 'function') {
8554 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
8556 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
8559 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
8562 throw new TypeError('val must be string, number or Buffer')
8565 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
8567 var arrLength = arr.length
8568 var valLength = val.length
8570 if (encoding !== undefined) {
8571 encoding = String(encoding).toLowerCase()
8572 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
8573 encoding === 'utf16le' || encoding === 'utf-
16le') {
8574 if (arr.length <
2 || val.length <
2) {
8584 function read (buf, i) {
8585 if (indexSize ===
1) {
8588 return buf.readUInt16BE(i * indexSize)
8595 for (i = byteOffset; i < arrLength; i++) {
8596 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
8597 if (foundIndex === -
1) foundIndex = i
8598 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
8600 if (foundIndex !== -
1) i -= i - foundIndex
8605 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
8606 for (i = byteOffset; i
>=
0; i--) {
8608 for (var j =
0; j < valLength; j++) {
8609 if (read(arr, i + j) !== read(val, j)) {
8621 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
8622 return this.indexOf(val, byteOffset, encoding) !== -
1
8625 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
8626 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
8629 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
8630 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
8633 function hexWrite (buf, string, offset, length) {
8634 offset = Number(offset) ||
0
8635 var remaining = buf.length - offset
8639 length = Number(length)
8640 if (length
> remaining) {
8645 // must be an even number of digits
8646 var strLen = string.length
8647 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
8649 if (length
> strLen /
2) {
8652 for (var i =
0; i < length; ++i) {
8653 var parsed = parseInt(string.substr(i *
2,
2),
16)
8654 if (numberIsNaN(parsed)) return i
8655 buf[offset + i] = parsed
8660 function utf8Write (buf, string, offset, length) {
8661 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
8664 function asciiWrite (buf, string, offset, length) {
8665 return blitBuffer(asciiToBytes(string), buf, offset, length)
8668 function latin1Write (buf, string, offset, length) {
8669 return asciiWrite(buf, string, offset, length)
8672 function base64Write (buf, string, offset, length) {
8673 return blitBuffer(base64ToBytes(string), buf, offset, length)
8676 function ucs2Write (buf, string, offset, length) {
8677 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
8680 Buffer.prototype.write = function write (string, offset, length, encoding) {
8681 // Buffer#write(string)
8682 if (offset === undefined) {
8684 length = this.length
8686 // Buffer#write(string, encoding)
8687 } else if (length === undefined && typeof offset === 'string') {
8689 length = this.length
8691 // Buffer#write(string, offset[, length][, encoding])
8692 } else if (isFinite(offset)) {
8693 offset = offset
>>> 0
8694 if (isFinite(length)) {
8695 length = length
>>> 0
8696 if (encoding === undefined) encoding = 'utf8'
8703 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
8707 var remaining = this.length - offset
8708 if (length === undefined || length
> remaining) length = remaining
8710 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
8711 throw new RangeError('Attempt to write outside buffer bounds')
8714 if (!encoding) encoding = 'utf8'
8716 var loweredCase = false
8720 return hexWrite(this, string, offset, length)
8724 return utf8Write(this, string, offset, length)
8727 return asciiWrite(this, string, offset, length)
8731 return latin1Write(this, string, offset, length)
8734 // Warning: maxLength not taken into account in base64Write
8735 return base64Write(this, string, offset, length)
8741 return ucs2Write(this, string, offset, length)
8744 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
8745 encoding = ('' + encoding).toLowerCase()
8751 Buffer.prototype.toJSON = function toJSON () {
8754 data: Array.prototype.slice.call(this._arr || this,
0)
8758 function base64Slice (buf, start, end) {
8759 if (start ===
0 && end === buf.length) {
8760 return base64.fromByteArray(buf)
8762 return base64.fromByteArray(buf.slice(start, end))
8766 function utf8Slice (buf, start, end) {
8767 end = Math.min(buf.length, end)
8772 var firstByte = buf[i]
8773 var codePoint = null
8774 var bytesPerSequence = (firstByte
> 0xEF) ?
4
8775 : (firstByte
> 0xDF) ?
3
8776 : (firstByte
> 0xBF) ?
2
8779 if (i + bytesPerSequence <= end) {
8780 var secondByte, thirdByte, fourthByte, tempCodePoint
8782 switch (bytesPerSequence) {
8784 if (firstByte <
0x80) {
8785 codePoint = firstByte
8789 secondByte = buf[i +
1]
8790 if ((secondByte &
0xC0) ===
0x80) {
8791 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
8792 if (tempCodePoint
> 0x7F) {
8793 codePoint = tempCodePoint
8798 secondByte = buf[i +
1]
8799 thirdByte = buf[i +
2]
8800 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
8801 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
8802 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
8803 codePoint = tempCodePoint
8808 secondByte = buf[i +
1]
8809 thirdByte = buf[i +
2]
8810 fourthByte = buf[i +
3]
8811 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
8812 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
8813 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
8814 codePoint = tempCodePoint
8820 if (codePoint === null) {
8821 // we did not generate a valid codePoint so insert a
8822 // replacement char (U+FFFD) and advance only
1 byte
8824 bytesPerSequence =
1
8825 } else if (codePoint
> 0xFFFF) {
8826 // encode to utf16 (surrogate pair dance)
8827 codePoint -=
0x10000
8828 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
8829 codePoint =
0xDC00 | codePoint &
0x3FF
8833 i += bytesPerSequence
8836 return decodeCodePointsArray(res)
8839 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
8840 // the lowest limit is Chrome, with
0x10000 args.
8841 // We go
1 magnitude less, for safety
8842 var MAX_ARGUMENTS_LENGTH =
0x1000
8844 function decodeCodePointsArray (codePoints) {
8845 var len = codePoints.length
8846 if (len <= MAX_ARGUMENTS_LENGTH) {
8847 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
8850 // Decode in chunks to avoid
"call stack size exceeded".
8854 res += String.fromCharCode.apply(
8856 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
8862 function asciiSlice (buf, start, end) {
8864 end = Math.min(buf.length, end)
8866 for (var i = start; i < end; ++i) {
8867 ret += String.fromCharCode(buf[i] &
0x7F)
8872 function latin1Slice (buf, start, end) {
8874 end = Math.min(buf.length, end)
8876 for (var i = start; i < end; ++i) {
8877 ret += String.fromCharCode(buf[i])
8882 function hexSlice (buf, start, end) {
8883 var len = buf.length
8885 if (!start || start <
0) start =
0
8886 if (!end || end <
0 || end
> len) end = len
8889 for (var i = start; i < end; ++i) {
8890 out += toHex(buf[i])
8895 function utf16leSlice (buf, start, end) {
8896 var bytes = buf.slice(start, end)
8898 for (var i =
0; i < bytes.length; i +=
2) {
8899 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
8904 Buffer.prototype.slice = function slice (start, end) {
8905 var len = this.length
8907 end = end === undefined ? len : ~~end
8911 if (start <
0) start =
0
8912 } else if (start
> len) {
8918 if (end <
0) end =
0
8919 } else if (end
> len) {
8923 if (end < start) end = start
8925 var newBuf = this.subarray(start, end)
8926 // Return an augmented `Uint8Array` instance
8927 newBuf.__proto__ = Buffer.prototype
8932 * Need to make sure that buffer isn't trying to write out of bounds.
8934 function checkOffset (offset, ext, length) {
8935 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
8936 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
8939 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
8940 offset = offset
>>> 0
8941 byteLength = byteLength
>>> 0
8942 if (!noAssert) checkOffset(offset, byteLength, this.length)
8944 var val = this[offset]
8947 while (++i < byteLength && (mul *=
0x100)) {
8948 val += this[offset + i] * mul
8954 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
8955 offset = offset
>>> 0
8956 byteLength = byteLength
>>> 0
8958 checkOffset(offset, byteLength, this.length)
8961 var val = this[offset + --byteLength]
8963 while (byteLength
> 0 && (mul *=
0x100)) {
8964 val += this[offset + --byteLength] * mul
8970 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
8971 offset = offset
>>> 0
8972 if (!noAssert) checkOffset(offset,
1, this.length)
8976 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
8977 offset = offset
>>> 0
8978 if (!noAssert) checkOffset(offset,
2, this.length)
8979 return this[offset] | (this[offset +
1] <<
8)
8982 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
8983 offset = offset
>>> 0
8984 if (!noAssert) checkOffset(offset,
2, this.length)
8985 return (this[offset] <<
8) | this[offset +
1]
8988 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
8989 offset = offset
>>> 0
8990 if (!noAssert) checkOffset(offset,
4, this.length)
8992 return ((this[offset]) |
8993 (this[offset +
1] <<
8) |
8994 (this[offset +
2] <<
16)) +
8995 (this[offset +
3] *
0x1000000)
8998 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
8999 offset = offset
>>> 0
9000 if (!noAssert) checkOffset(offset,
4, this.length)
9002 return (this[offset] *
0x1000000) +
9003 ((this[offset +
1] <<
16) |
9004 (this[offset +
2] <<
8) |
9008 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
9009 offset = offset
>>> 0
9010 byteLength = byteLength
>>> 0
9011 if (!noAssert) checkOffset(offset, byteLength, this.length)
9013 var val = this[offset]
9016 while (++i < byteLength && (mul *=
0x100)) {
9017 val += this[offset + i] * mul
9021 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
9026 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
9027 offset = offset
>>> 0
9028 byteLength = byteLength
>>> 0
9029 if (!noAssert) checkOffset(offset, byteLength, this.length)
9033 var val = this[offset + --i]
9034 while (i
> 0 && (mul *=
0x100)) {
9035 val += this[offset + --i] * mul
9039 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
9044 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
9045 offset = offset
>>> 0
9046 if (!noAssert) checkOffset(offset,
1, this.length)
9047 if (!(this[offset] &
0x80)) return (this[offset])
9048 return ((
0xff - this[offset] +
1) * -
1)
9051 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
9052 offset = offset
>>> 0
9053 if (!noAssert) checkOffset(offset,
2, this.length)
9054 var val = this[offset] | (this[offset +
1] <<
8)
9055 return (val &
0x8000) ? val |
0xFFFF0000 : val
9058 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
9059 offset = offset
>>> 0
9060 if (!noAssert) checkOffset(offset,
2, this.length)
9061 var val = this[offset +
1] | (this[offset] <<
8)
9062 return (val &
0x8000) ? val |
0xFFFF0000 : val
9065 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
9066 offset = offset
>>> 0
9067 if (!noAssert) checkOffset(offset,
4, this.length)
9069 return (this[offset]) |
9070 (this[offset +
1] <<
8) |
9071 (this[offset +
2] <<
16) |
9072 (this[offset +
3] <<
24)
9075 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
9076 offset = offset
>>> 0
9077 if (!noAssert) checkOffset(offset,
4, this.length)
9079 return (this[offset] <<
24) |
9080 (this[offset +
1] <<
16) |
9081 (this[offset +
2] <<
8) |
9085 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
9086 offset = offset
>>> 0
9087 if (!noAssert) checkOffset(offset,
4, this.length)
9088 return ieee754.read(this, offset, true,
23,
4)
9091 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
9092 offset = offset
>>> 0
9093 if (!noAssert) checkOffset(offset,
4, this.length)
9094 return ieee754.read(this, offset, false,
23,
4)
9097 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
9098 offset = offset
>>> 0
9099 if (!noAssert) checkOffset(offset,
8, this.length)
9100 return ieee754.read(this, offset, true,
52,
8)
9103 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
9104 offset = offset
>>> 0
9105 if (!noAssert) checkOffset(offset,
8, this.length)
9106 return ieee754.read(this, offset, false,
52,
8)
9109 function checkInt (buf, value, offset, ext, max, min) {
9110 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
9111 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
9112 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
9115 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
9117 offset = offset
>>> 0
9118 byteLength = byteLength
>>> 0
9120 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
9121 checkInt(this, value, offset, byteLength, maxBytes,
0)
9126 this[offset] = value &
0xFF
9127 while (++i < byteLength && (mul *=
0x100)) {
9128 this[offset + i] = (value / mul) &
0xFF
9131 return offset + byteLength
9134 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
9136 offset = offset
>>> 0
9137 byteLength = byteLength
>>> 0
9139 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
9140 checkInt(this, value, offset, byteLength, maxBytes,
0)
9143 var i = byteLength -
1
9145 this[offset + i] = value &
0xFF
9146 while (--i
>=
0 && (mul *=
0x100)) {
9147 this[offset + i] = (value / mul) &
0xFF
9150 return offset + byteLength
9153 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
9155 offset = offset
>>> 0
9156 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
9157 this[offset] = (value &
0xff)
9161 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
9163 offset = offset
>>> 0
9164 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
9165 this[offset] = (value &
0xff)
9166 this[offset +
1] = (value
>>> 8)
9170 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
9172 offset = offset
>>> 0
9173 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
9174 this[offset] = (value
>>> 8)
9175 this[offset +
1] = (value &
0xff)
9179 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
9181 offset = offset
>>> 0
9182 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
9183 this[offset +
3] = (value
>>> 24)
9184 this[offset +
2] = (value
>>> 16)
9185 this[offset +
1] = (value
>>> 8)
9186 this[offset] = (value &
0xff)
9190 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
9192 offset = offset
>>> 0
9193 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
9194 this[offset] = (value
>>> 24)
9195 this[offset +
1] = (value
>>> 16)
9196 this[offset +
2] = (value
>>> 8)
9197 this[offset +
3] = (value &
0xff)
9201 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
9203 offset = offset
>>> 0
9205 var limit = Math.pow(
2, (
8 * byteLength) -
1)
9207 checkInt(this, value, offset, byteLength, limit -
1, -limit)
9213 this[offset] = value &
0xFF
9214 while (++i < byteLength && (mul *=
0x100)) {
9215 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
9218 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
9221 return offset + byteLength
9224 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
9226 offset = offset
>>> 0
9228 var limit = Math.pow(
2, (
8 * byteLength) -
1)
9230 checkInt(this, value, offset, byteLength, limit -
1, -limit)
9233 var i = byteLength -
1
9236 this[offset + i] = value &
0xFF
9237 while (--i
>=
0 && (mul *=
0x100)) {
9238 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
9241 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
9244 return offset + byteLength
9247 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
9249 offset = offset
>>> 0
9250 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
9251 if (value <
0) value =
0xff + value +
1
9252 this[offset] = (value &
0xff)
9256 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
9258 offset = offset
>>> 0
9259 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
9260 this[offset] = (value &
0xff)
9261 this[offset +
1] = (value
>>> 8)
9265 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
9267 offset = offset
>>> 0
9268 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
9269 this[offset] = (value
>>> 8)
9270 this[offset +
1] = (value &
0xff)
9274 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
9276 offset = offset
>>> 0
9277 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
9278 this[offset] = (value &
0xff)
9279 this[offset +
1] = (value
>>> 8)
9280 this[offset +
2] = (value
>>> 16)
9281 this[offset +
3] = (value
>>> 24)
9285 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
9287 offset = offset
>>> 0
9288 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
9289 if (value <
0) value =
0xffffffff + value +
1
9290 this[offset] = (value
>>> 24)
9291 this[offset +
1] = (value
>>> 16)
9292 this[offset +
2] = (value
>>> 8)
9293 this[offset +
3] = (value &
0xff)
9297 function checkIEEE754 (buf, value, offset, ext, max, min) {
9298 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
9299 if (offset <
0) throw new RangeError('Index out of range')
9302 function writeFloat (buf, value, offset, littleEndian, noAssert) {
9304 offset = offset
>>> 0
9306 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
9308 ieee754.write(buf, value, offset, littleEndian,
23,
4)
9312 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
9313 return writeFloat(this, value, offset, true, noAssert)
9316 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
9317 return writeFloat(this, value, offset, false, noAssert)
9320 function writeDouble (buf, value, offset, littleEndian, noAssert) {
9322 offset = offset
>>> 0
9324 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
9326 ieee754.write(buf, value, offset, littleEndian,
52,
8)
9330 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
9331 return writeDouble(this, value, offset, true, noAssert)
9334 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
9335 return writeDouble(this, value, offset, false, noAssert)
9338 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
9339 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
9340 if (!start) start =
0
9341 if (!end && end !==
0) end = this.length
9342 if (targetStart
>= target.length) targetStart = target.length
9343 if (!targetStart) targetStart =
0
9344 if (end
> 0 && end < start) end = start
9346 // Copy
0 bytes; we're done
9347 if (end === start) return
0
9348 if (target.length ===
0 || this.length ===
0) return
0
9350 // Fatal error conditions
9351 if (targetStart <
0) {
9352 throw new RangeError('targetStart out of bounds')
9354 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
9355 if (end <
0) throw new RangeError('sourceEnd out of bounds')
9358 if (end
> this.length) end = this.length
9359 if (target.length - targetStart < end - start) {
9360 end = target.length - targetStart + start
9363 var len = end - start
9366 if (this === target && start < targetStart && targetStart < end) {
9367 // descending copy from end
9368 for (i = len -
1; i
>=
0; --i) {
9369 target[i + targetStart] = this[i + start]
9371 } else if (len <
1000) {
9372 // ascending copy from start
9373 for (i =
0; i < len; ++i) {
9374 target[i + targetStart] = this[i + start]
9377 Uint8Array.prototype.set.call(
9379 this.subarray(start, start + len),
9388 // buffer.fill(number[, offset[, end]])
9389 // buffer.fill(buffer[, offset[, end]])
9390 // buffer.fill(string[, offset[, end]][, encoding])
9391 Buffer.prototype.fill = function fill (val, start, end, encoding) {
9392 // Handle string cases:
9393 if (typeof val === 'string') {
9394 if (typeof start === 'string') {
9398 } else if (typeof end === 'string') {
9402 if (val.length ===
1) {
9403 var code = val.charCodeAt(
0)
9408 if (encoding !== undefined && typeof encoding !== 'string') {
9409 throw new TypeError('encoding must be a string')
9411 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
9412 throw new TypeError('Unknown encoding: ' + encoding)
9414 } else if (typeof val === 'number') {
9418 // Invalid ranges are not set to a default, so can range check early.
9419 if (start <
0 || this.length < start || this.length < end) {
9420 throw new RangeError('Out of range index')
9428 end = end === undefined ? this.length : end
>>> 0
9433 if (typeof val === 'number') {
9434 for (i = start; i < end; ++i) {
9438 var bytes = Buffer.isBuffer(val)
9440 : new Buffer(val, encoding)
9441 var len = bytes.length
9442 for (i =
0; i < end - start; ++i) {
9443 this[i + start] = bytes[i % len]
9453 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
9455 function base64clean (str) {
9456 // Node strips out invalid characters like \n and \t from the string, base64-js does not
9457 str = str.trim().replace(INVALID_BASE64_RE, '')
9458 // Node converts strings with length <
2 to ''
9459 if (str.length <
2) return ''
9460 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
9461 while (str.length %
4 !==
0) {
9467 function toHex (n) {
9468 if (n <
16) return '
0' + n.toString(
16)
9469 return n.toString(
16)
9472 function utf8ToBytes (string, units) {
9473 units = units || Infinity
9475 var length = string.length
9476 var leadSurrogate = null
9479 for (var i =
0; i < length; ++i) {
9480 codePoint = string.charCodeAt(i)
9482 // is surrogate component
9483 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
9484 // last char was a lead
9485 if (!leadSurrogate) {
9487 if (codePoint
> 0xDBFF) {
9489 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9491 } else if (i +
1 === length) {
9493 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9498 leadSurrogate = codePoint
9504 if (codePoint <
0xDC00) {
9505 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9506 leadSurrogate = codePoint
9510 // valid surrogate pair
9511 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
9512 } else if (leadSurrogate) {
9513 // valid bmp char, but last char was a lead
9514 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
9517 leadSurrogate = null
9520 if (codePoint <
0x80) {
9521 if ((units -=
1) <
0) break
9522 bytes.push(codePoint)
9523 } else if (codePoint <
0x800) {
9524 if ((units -=
2) <
0) break
9526 codePoint
>> 0x6 |
0xC0,
9527 codePoint &
0x3F |
0x80
9529 } else if (codePoint <
0x10000) {
9530 if ((units -=
3) <
0) break
9532 codePoint
>> 0xC |
0xE0,
9533 codePoint
>> 0x6 &
0x3F |
0x80,
9534 codePoint &
0x3F |
0x80
9536 } else if (codePoint <
0x110000) {
9537 if ((units -=
4) <
0) break
9539 codePoint
>> 0x12 |
0xF0,
9540 codePoint
>> 0xC &
0x3F |
0x80,
9541 codePoint
>> 0x6 &
0x3F |
0x80,
9542 codePoint &
0x3F |
0x80
9545 throw new Error('Invalid code point')
9552 function asciiToBytes (str) {
9554 for (var i =
0; i < str.length; ++i) {
9555 // Node's code seems to be doing this and not &
0x7F..
9556 byteArray.push(str.charCodeAt(i) &
0xFF)
9561 function utf16leToBytes (str, units) {
9564 for (var i =
0; i < str.length; ++i) {
9565 if ((units -=
2) <
0) break
9567 c = str.charCodeAt(i)
9577 function base64ToBytes (str) {
9578 return base64.toByteArray(base64clean(str))
9581 function blitBuffer (src, dst, offset, length) {
9582 for (var i =
0; i < length; ++i) {
9583 if ((i + offset
>= dst.length) || (i
>= src.length)) break
9584 dst[i + offset] = src[i]
9589 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
9590 function isArrayBufferView (obj) {
9591 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
9594 function numberIsNaN (obj) {
9595 return obj !== obj // eslint-disable-line no-self-compare
9598 },{"base64-js":
2,"ieee754":
7}],
5:[function(require,module,exports){
9600 // Copyright Joyent, Inc. and other Node contributors.
9602 // Permission is hereby granted, free of charge, to any person obtaining a
9603 // copy of this software and associated documentation files (the
9604 // "Software"), to deal in the Software without restriction, including
9605 // without limitation the rights to use, copy, modify, merge, publish,
9606 // distribute, sublicense, and/or sell copies of the Software, and to permit
9607 // persons to whom the Software is furnished to do so, subject to the
9608 // following conditions:
9610 // The above copyright notice and this permission notice shall be included
9611 // in all copies or substantial portions of the Software.
9613 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9614 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9615 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9616 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9617 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9618 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9619 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9621 // NOTE: These type checking functions intentionally don't use `instanceof`
9622 // because it is fragile and can be easily faked with `Object.create()`.
9624 function isArray(arg) {
9625 if (Array.isArray) {
9626 return Array.isArray(arg);
9628 return objectToString(arg) === '[object Array]';
9630 exports.isArray = isArray;
9632 function isBoolean(arg) {
9633 return typeof arg === 'boolean';
9635 exports.isBoolean = isBoolean;
9637 function isNull(arg) {
9638 return arg === null;
9640 exports.isNull = isNull;
9642 function isNullOrUndefined(arg) {
9645 exports.isNullOrUndefined = isNullOrUndefined;
9647 function isNumber(arg) {
9648 return typeof arg === 'number';
9650 exports.isNumber = isNumber;
9652 function isString(arg) {
9653 return typeof arg === 'string';
9655 exports.isString = isString;
9657 function isSymbol(arg) {
9658 return typeof arg === 'symbol';
9660 exports.isSymbol = isSymbol;
9662 function isUndefined(arg) {
9663 return arg === void
0;
9665 exports.isUndefined = isUndefined;
9667 function isRegExp(re) {
9668 return objectToString(re) === '[object RegExp]';
9670 exports.isRegExp = isRegExp;
9672 function isObject(arg) {
9673 return typeof arg === 'object' && arg !== null;
9675 exports.isObject = isObject;
9677 function isDate(d) {
9678 return objectToString(d) === '[object Date]';
9680 exports.isDate = isDate;
9682 function isError(e) {
9683 return (objectToString(e) === '[object Error]' || e instanceof Error);
9685 exports.isError = isError;
9687 function isFunction(arg) {
9688 return typeof arg === 'function';
9690 exports.isFunction = isFunction;
9692 function isPrimitive(arg) {
9693 return arg === null ||
9694 typeof arg === 'boolean' ||
9695 typeof arg === 'number' ||
9696 typeof arg === 'string' ||
9697 typeof arg === 'symbol' || // ES6 symbol
9698 typeof arg === 'undefined';
9700 exports.isPrimitive = isPrimitive;
9702 exports.isBuffer = Buffer.isBuffer;
9704 function objectToString(o) {
9705 return Object.prototype.toString.call(o);
9708 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
9709 },{"../../is-buffer/index.js":
9}],
6:[function(require,module,exports){
9710 // Copyright Joyent, Inc. and other Node contributors.
9712 // Permission is hereby granted, free of charge, to any person obtaining a
9713 // copy of this software and associated documentation files (the
9714 // "Software"), to deal in the Software without restriction, including
9715 // without limitation the rights to use, copy, modify, merge, publish,
9716 // distribute, sublicense, and/or sell copies of the Software, and to permit
9717 // persons to whom the Software is furnished to do so, subject to the
9718 // following conditions:
9720 // The above copyright notice and this permission notice shall be included
9721 // in all copies or substantial portions of the Software.
9723 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9724 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9725 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9726 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9727 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9728 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9729 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9731 function EventEmitter() {
9732 this._events = this._events || {};
9733 this._maxListeners = this._maxListeners || undefined;
9735 module.exports = EventEmitter;
9737 // Backwards-compat with node
0.10.x
9738 EventEmitter.EventEmitter = EventEmitter;
9740 EventEmitter.prototype._events = undefined;
9741 EventEmitter.prototype._maxListeners = undefined;
9743 // By default EventEmitters will print a warning if more than
10 listeners are
9744 // added to it. This is a useful default which helps finding memory leaks.
9745 EventEmitter.defaultMaxListeners =
10;
9747 // Obviously not all Emitters should be limited to
10. This function allows
9748 // that to be increased. Set to zero for unlimited.
9749 EventEmitter.prototype.setMaxListeners = function(n) {
9750 if (!isNumber(n) || n <
0 || isNaN(n))
9751 throw TypeError('n must be a positive number');
9752 this._maxListeners = n;
9756 EventEmitter.prototype.emit = function(type) {
9757 var er, handler, len, args, i, listeners;
9762 // If there is no 'error' event listener then throw.
9763 if (type === 'error') {
9764 if (!this._events.error ||
9765 (isObject(this._events.error) && !this._events.error.length)) {
9767 if (er instanceof Error) {
9768 throw er; // Unhandled 'error' event
9770 // At least give some kind of context to the user
9771 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
9778 handler = this._events[type];
9780 if (isUndefined(handler))
9783 if (isFunction(handler)) {
9784 switch (arguments.length) {
9790 handler.call(this, arguments[
1]);
9793 handler.call(this, arguments[
1], arguments[
2]);
9797 args = Array.prototype.slice.call(arguments,
1);
9798 handler.apply(this, args);
9800 } else if (isObject(handler)) {
9801 args = Array.prototype.slice.call(arguments,
1);
9802 listeners = handler.slice();
9803 len = listeners.length;
9804 for (i =
0; i < len; i++)
9805 listeners[i].apply(this, args);
9811 EventEmitter.prototype.addListener = function(type, listener) {
9814 if (!isFunction(listener))
9815 throw TypeError('listener must be a function');
9820 // To avoid recursion in the case that type === "newListener"! Before
9821 // adding it to the listeners, first emit "newListener".
9822 if (this._events.newListener)
9823 this.emit('newListener', type,
9824 isFunction(listener.listener) ?
9825 listener.listener : listener);
9827 if (!this._events[type])
9828 // Optimize the case of one listener. Don't need the extra array object.
9829 this._events[type] = listener;
9830 else if (isObject(this._events[type]))
9831 // If we've already got an array, just append.
9832 this._events[type].push(listener);
9834 // Adding the second element, need to change to array.
9835 this._events[type] = [this._events[type], listener];
9837 // Check for listener leak
9838 if (isObject(this._events[type]) && !this._events[type].warned) {
9839 if (!isUndefined(this._maxListeners)) {
9840 m = this._maxListeners;
9842 m = EventEmitter.defaultMaxListeners;
9845 if (m && m
> 0 && this._events[type].length
> m) {
9846 this._events[type].warned = true;
9847 console.error('(node) warning: possible EventEmitter memory ' +
9848 'leak detected. %d listeners added. ' +
9849 'Use emitter.setMaxListeners() to increase limit.',
9850 this._events[type].length);
9851 if (typeof console.trace === 'function') {
9852 // not supported in IE
10
9861 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
9863 EventEmitter.prototype.once = function(type, listener) {
9864 if (!isFunction(listener))
9865 throw TypeError('listener must be a function');
9870 this.removeListener(type, g);
9874 listener.apply(this, arguments);
9878 g.listener = listener;
9884 // emits a 'removeListener' event iff the listener was removed
9885 EventEmitter.prototype.removeListener = function(type, listener) {
9886 var list, position, length, i;
9888 if (!isFunction(listener))
9889 throw TypeError('listener must be a function');
9891 if (!this._events || !this._events[type])
9894 list = this._events[type];
9895 length = list.length;
9898 if (list === listener ||
9899 (isFunction(list.listener) && list.listener === listener)) {
9900 delete this._events[type];
9901 if (this._events.removeListener)
9902 this.emit('removeListener', type, listener);
9904 } else if (isObject(list)) {
9905 for (i = length; i--
> 0;) {
9906 if (list[i] === listener ||
9907 (list[i].listener && list[i].listener === listener)) {
9916 if (list.length ===
1) {
9918 delete this._events[type];
9920 list.splice(position,
1);
9923 if (this._events.removeListener)
9924 this.emit('removeListener', type, listener);
9930 EventEmitter.prototype.removeAllListeners = function(type) {
9936 // not listening for removeListener, no need to emit
9937 if (!this._events.removeListener) {
9938 if (arguments.length ===
0)
9940 else if (this._events[type])
9941 delete this._events[type];
9945 // emit removeListener for all listeners on all events
9946 if (arguments.length ===
0) {
9947 for (key in this._events) {
9948 if (key === 'removeListener') continue;
9949 this.removeAllListeners(key);
9951 this.removeAllListeners('removeListener');
9956 listeners = this._events[type];
9958 if (isFunction(listeners)) {
9959 this.removeListener(type, listeners);
9960 } else if (listeners) {
9962 while (listeners.length)
9963 this.removeListener(type, listeners[listeners.length -
1]);
9965 delete this._events[type];
9970 EventEmitter.prototype.listeners = function(type) {
9972 if (!this._events || !this._events[type])
9974 else if (isFunction(this._events[type]))
9975 ret = [this._events[type]];
9977 ret = this._events[type].slice();
9981 EventEmitter.prototype.listenerCount = function(type) {
9983 var evlistener = this._events[type];
9985 if (isFunction(evlistener))
9987 else if (evlistener)
9988 return evlistener.length;
9993 EventEmitter.listenerCount = function(emitter, type) {
9994 return emitter.listenerCount(type);
9997 function isFunction(arg) {
9998 return typeof arg === 'function';
10001 function isNumber(arg) {
10002 return typeof arg === 'number';
10005 function isObject(arg) {
10006 return typeof arg === 'object' && arg !== null;
10009 function isUndefined(arg) {
10010 return arg === void
0;
10013 },{}],
7:[function(require,module,exports){
10014 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
10016 var eLen = nBytes *
8 - mLen -
1
10017 var eMax = (
1 << eLen) -
1
10018 var eBias = eMax
>> 1
10020 var i = isLE ? (nBytes -
1) :
0
10021 var d = isLE ? -
1 :
1
10022 var s = buffer[offset + i]
10026 e = s & ((
1 << (-nBits)) -
1)
10029 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10031 m = e & ((
1 << (-nBits)) -
1)
10034 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10038 } else if (e === eMax) {
10039 return m ? NaN : ((s ? -
1 :
1) * Infinity)
10041 m = m + Math.pow(
2, mLen)
10044 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
10047 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
10049 var eLen = nBytes *
8 - mLen -
1
10050 var eMax = (
1 << eLen) -
1
10051 var eBias = eMax
>> 1
10052 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
10053 var i = isLE ?
0 : (nBytes -
1)
10054 var d = isLE ?
1 : -
1
10055 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
10057 value = Math.abs(value)
10059 if (isNaN(value) || value === Infinity) {
10060 m = isNaN(value) ?
1 :
0
10063 e = Math.floor(Math.log(value) / Math.LN2)
10064 if (value * (c = Math.pow(
2, -e)) <
1) {
10068 if (e + eBias
>=
1) {
10071 value += rt * Math.pow(
2,
1 - eBias)
10073 if (value * c
>=
2) {
10078 if (e + eBias
>= eMax) {
10081 } else if (e + eBias
>=
1) {
10082 m = (value * c -
1) * Math.pow(
2, mLen)
10085 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
10090 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
10092 e = (e << mLen) | m
10094 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
10096 buffer[offset + i - d] |= s *
128
10099 },{}],
8:[function(require,module,exports){
10100 if (typeof Object.create === 'function') {
10101 // implementation from standard node.js 'util' module
10102 module.exports = function inherits(ctor, superCtor) {
10103 ctor.super_ = superCtor
10104 ctor.prototype = Object.create(superCtor.prototype, {
10114 // old school shim for old browsers
10115 module.exports = function inherits(ctor, superCtor) {
10116 ctor.super_ = superCtor
10117 var TempCtor = function () {}
10118 TempCtor.prototype = superCtor.prototype
10119 ctor.prototype = new TempCtor()
10120 ctor.prototype.constructor = ctor
10124 },{}],
9:[function(require,module,exports){
10126 * Determine if an object is a Buffer
10128 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
10132 // The _isBuffer check is for Safari
5-
7 support, because it's missing
10133 // Object.prototype.constructor. Remove this eventually
10134 module.exports = function (obj) {
10135 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
10138 function isBuffer (obj) {
10139 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
10142 // For Node v0.10 support. Remove this eventually.
10143 function isSlowBuffer (obj) {
10144 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
10147 },{}],
10:[function(require,module,exports){
10148 var toString = {}.toString;
10150 module.exports = Array.isArray || function (arr) {
10151 return toString.call(arr) == '[object Array]';
10154 },{}],
11:[function(require,module,exports){
10155 (function (process){
10158 if (!process.version ||
10159 process.version.indexOf('v0.') ===
0 ||
10160 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
10161 module.exports = nextTick;
10163 module.exports = process.nextTick;
10166 function nextTick(fn, arg1, arg2, arg3) {
10167 if (typeof fn !== 'function') {
10168 throw new TypeError('"callback" argument must be a function');
10170 var len = arguments.length;
10175 return process.nextTick(fn);
10177 return process.nextTick(function afterTickOne() {
10178 fn.call(null, arg1);
10181 return process.nextTick(function afterTickTwo() {
10182 fn.call(null, arg1, arg2);
10185 return process.nextTick(function afterTickThree() {
10186 fn.call(null, arg1, arg2, arg3);
10189 args = new Array(len -
1);
10191 while (i < args.length) {
10192 args[i++] = arguments[i];
10194 return process.nextTick(function afterTick() {
10195 fn.apply(null, args);
10200 }).call(this,require('_process'))
10201 },{"_process":
12}],
12:[function(require,module,exports){
10202 // shim for using process in browser
10203 var process = module.exports = {};
10205 // cached from whatever global is present so that test runners that stub it
10206 // don't break things. But we need to wrap it in a try catch in case it is
10207 // wrapped in strict mode code which doesn't define any globals. It's inside a
10208 // function because try/catches deoptimize in certain engines.
10210 var cachedSetTimeout;
10211 var cachedClearTimeout;
10213 function defaultSetTimout() {
10214 throw new Error('setTimeout has not been defined');
10216 function defaultClearTimeout () {
10217 throw new Error('clearTimeout has not been defined');
10221 if (typeof setTimeout === 'function') {
10222 cachedSetTimeout = setTimeout;
10224 cachedSetTimeout = defaultSetTimout;
10227 cachedSetTimeout = defaultSetTimout;
10230 if (typeof clearTimeout === 'function') {
10231 cachedClearTimeout = clearTimeout;
10233 cachedClearTimeout = defaultClearTimeout;
10236 cachedClearTimeout = defaultClearTimeout;
10239 function runTimeout(fun) {
10240 if (cachedSetTimeout === setTimeout) {
10241 //normal enviroments in sane situations
10242 return setTimeout(fun,
0);
10244 // if setTimeout wasn't available but was latter defined
10245 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
10246 cachedSetTimeout = setTimeout;
10247 return setTimeout(fun,
0);
10250 // when when somebody has screwed with setTimeout but no I.E. maddness
10251 return cachedSetTimeout(fun,
0);
10254 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
10255 return cachedSetTimeout.call(null, fun,
0);
10257 // 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
10258 return cachedSetTimeout.call(this, fun,
0);
10264 function runClearTimeout(marker) {
10265 if (cachedClearTimeout === clearTimeout) {
10266 //normal enviroments in sane situations
10267 return clearTimeout(marker);
10269 // if clearTimeout wasn't available but was latter defined
10270 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
10271 cachedClearTimeout = clearTimeout;
10272 return clearTimeout(marker);
10275 // when when somebody has screwed with setTimeout but no I.E. maddness
10276 return cachedClearTimeout(marker);
10279 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
10280 return cachedClearTimeout.call(null, marker);
10282 // 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.
10283 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
10284 return cachedClearTimeout.call(this, marker);
10292 var draining = false;
10294 var queueIndex = -
1;
10296 function cleanUpNextTick() {
10297 if (!draining || !currentQueue) {
10301 if (currentQueue.length) {
10302 queue = currentQueue.concat(queue);
10306 if (queue.length) {
10311 function drainQueue() {
10315 var timeout = runTimeout(cleanUpNextTick);
10318 var len = queue.length;
10320 currentQueue = queue;
10322 while (++queueIndex < len) {
10323 if (currentQueue) {
10324 currentQueue[queueIndex].run();
10328 len = queue.length;
10330 currentQueue = null;
10332 runClearTimeout(timeout);
10335 process.nextTick = function (fun) {
10336 var args = new Array(arguments.length -
1);
10337 if (arguments.length
> 1) {
10338 for (var i =
1; i < arguments.length; i++) {
10339 args[i -
1] = arguments[i];
10342 queue.push(new Item(fun, args));
10343 if (queue.length ===
1 && !draining) {
10344 runTimeout(drainQueue);
10348 // v8 likes predictible objects
10349 function Item(fun, array) {
10351 this.array = array;
10353 Item.prototype.run = function () {
10354 this.fun.apply(null, this.array);
10356 process.title = 'browser';
10357 process.browser = true;
10360 process.version = ''; // empty string to avoid regexp issues
10361 process.versions = {};
10366 process.addListener = noop;
10367 process.once = noop;
10368 process.off = noop;
10369 process.removeListener = noop;
10370 process.removeAllListeners = noop;
10371 process.emit = noop;
10372 process.prependListener = noop;
10373 process.prependOnceListener = noop;
10375 process.listeners = function (name) { return [] }
10377 process.binding = function (name) {
10378 throw new Error('process.binding is not supported');
10381 process.cwd = function () { return '/' };
10382 process.chdir = function (dir) {
10383 throw new Error('process.chdir is not supported');
10385 process.umask = function() { return
0; };
10387 },{}],
13:[function(require,module,exports){
10388 module.exports = require('./lib/_stream_duplex.js');
10390 },{
"./lib/_stream_duplex.js":
14}],
14:[function(require,module,exports){
10391 // Copyright Joyent, Inc. and other Node contributors.
10393 // Permission is hereby granted, free of charge, to any person obtaining a
10394 // copy of this software and associated documentation files (the
10395 //
"Software"), to deal in the Software without restriction, including
10396 // without limitation the rights to use, copy, modify, merge, publish,
10397 // distribute, sublicense, and/or sell copies of the Software, and to permit
10398 // persons to whom the Software is furnished to do so, subject to the
10399 // following conditions:
10401 // The above copyright notice and this permission notice shall be included
10402 // in all copies or substantial portions of the Software.
10404 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10405 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10406 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10407 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10408 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10409 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10410 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10412 // a duplex stream is just a stream that is both readable and writable.
10413 // Since JS doesn't have multiple prototypal inheritance, this class
10414 // prototypally inherits from Readable, and then parasitically from
10421 var processNextTick = require('process-nextick-args');
10425 var objectKeys = Object.keys || function (obj) {
10427 for (var key in obj) {
10433 module.exports = Duplex;
10436 var util = require('core-util-is');
10437 util.inherits = require('inherits');
10440 var Readable = require('./_stream_readable');
10441 var Writable = require('./_stream_writable');
10443 util.inherits(Duplex, Readable);
10445 var keys = objectKeys(Writable.prototype);
10446 for (var v =
0; v < keys.length; v++) {
10447 var method = keys[v];
10448 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
10451 function Duplex(options) {
10452 if (!(this instanceof Duplex)) return new Duplex(options);
10454 Readable.call(this, options);
10455 Writable.call(this, options);
10457 if (options && options.readable === false) this.readable = false;
10459 if (options && options.writable === false) this.writable = false;
10461 this.allowHalfOpen = true;
10462 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
10464 this.once('end', onend);
10467 // the no-half-open enforcer
10469 // if we allow half-open state, or if the writable side ended,
10471 if (this.allowHalfOpen || this._writableState.ended) return;
10473 // no more data can be written.
10474 // But allow more writes to happen in this tick.
10475 processNextTick(onEndNT, this);
10478 function onEndNT(self) {
10482 Object.defineProperty(Duplex.prototype, 'destroyed', {
10484 if (this._readableState === undefined || this._writableState === undefined) {
10487 return this._readableState.destroyed && this._writableState.destroyed;
10489 set: function (value) {
10490 // we ignore the value if the stream
10491 // has not been initialized yet
10492 if (this._readableState === undefined || this._writableState === undefined) {
10496 // backward compatibility, the user is explicitly
10497 // managing destroyed
10498 this._readableState.destroyed = value;
10499 this._writableState.destroyed = value;
10503 Duplex.prototype._destroy = function (err, cb) {
10507 processNextTick(cb, err);
10510 function forEach(xs, f) {
10511 for (var i =
0, l = xs.length; i < l; i++) {
10515 },{"./_stream_readable":
16,"./_stream_writable":
18,"core-util-is":
5,"inherits":
8,"process-nextick-args":
11}],
15:[function(require,module,exports){
10516 // Copyright Joyent, Inc. and other Node contributors.
10518 // Permission is hereby granted, free of charge, to any person obtaining a
10519 // copy of this software and associated documentation files (the
10520 // "Software"), to deal in the Software without restriction, including
10521 // without limitation the rights to use, copy, modify, merge, publish,
10522 // distribute, sublicense, and/or sell copies of the Software, and to permit
10523 // persons to whom the Software is furnished to do so, subject to the
10524 // following conditions:
10526 // The above copyright notice and this permission notice shall be included
10527 // in all copies or substantial portions of the Software.
10529 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10530 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10531 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10532 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10533 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10534 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10535 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10537 // a passthrough stream.
10538 // basically just the most minimal sort of Transform stream.
10539 // Every written chunk gets output as-is.
10543 module.exports = PassThrough;
10545 var Transform = require('./_stream_transform');
10548 var util = require('core-util-is');
10549 util.inherits = require('inherits');
10552 util.inherits(PassThrough, Transform);
10554 function PassThrough(options) {
10555 if (!(this instanceof PassThrough)) return new PassThrough(options);
10557 Transform.call(this, options);
10560 PassThrough.prototype._transform = function (chunk, encoding, cb) {
10563 },{"./_stream_transform":
17,"core-util-is":
5,"inherits":
8}],
16:[function(require,module,exports){
10564 (function (process,global){
10565 // Copyright Joyent, Inc. and other Node contributors.
10567 // Permission is hereby granted, free of charge, to any person obtaining a
10568 // copy of this software and associated documentation files (the
10569 // "Software"), to deal in the Software without restriction, including
10570 // without limitation the rights to use, copy, modify, merge, publish,
10571 // distribute, sublicense, and/or sell copies of the Software, and to permit
10572 // persons to whom the Software is furnished to do so, subject to the
10573 // following conditions:
10575 // The above copyright notice and this permission notice shall be included
10576 // in all copies or substantial portions of the Software.
10578 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10579 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10580 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10581 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10582 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10583 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10584 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10590 var processNextTick = require('process-nextick-args');
10593 module.exports = Readable;
10596 var isArray = require('isarray');
10603 Readable.ReadableState = ReadableState;
10606 var EE = require('events').EventEmitter;
10608 var EElistenerCount = function (emitter, type) {
10609 return emitter.listeners(type).length;
10614 var Stream = require('./internal/streams/stream');
10617 // TODO(bmeurer): Change this back to const once hole checks are
10618 // properly optimized away early in Ignition+TurboFan.
10620 var Buffer = require('safe-buffer').Buffer;
10621 var OurUint8Array = global.Uint8Array || function () {};
10622 function _uint8ArrayToBuffer(chunk) {
10623 return Buffer.from(chunk);
10625 function _isUint8Array(obj) {
10626 return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
10631 var util = require('core-util-is');
10632 util.inherits = require('inherits');
10636 var debugUtil = require('util');
10637 var debug = void
0;
10638 if (debugUtil && debugUtil.debuglog) {
10639 debug = debugUtil.debuglog('stream');
10641 debug = function () {};
10645 var BufferList = require('./internal/streams/BufferList');
10646 var destroyImpl = require('./internal/streams/destroy');
10649 util.inherits(Readable, Stream);
10651 var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
10653 function prependListener(emitter, event, fn) {
10654 // Sadly this is not cacheable as some libraries bundle their own
10655 // event emitter implementation with them.
10656 if (typeof emitter.prependListener === 'function') {
10657 return emitter.prependListener(event, fn);
10659 // This is a hack to make sure that our error handler is attached before any
10660 // userland ones. NEVER DO THIS. This is here only because this code needs
10661 // to continue to work with older versions of Node.js that do not include
10662 // the prependListener() method. The goal is to eventually remove this hack.
10663 if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
10667 function ReadableState(options, stream) {
10668 Duplex = Duplex || require('./_stream_duplex');
10670 options = options || {};
10672 // object stream flag. Used to make read(n) ignore n and to
10673 // make all the buffer merging and length checks go away
10674 this.objectMode = !!options.objectMode;
10676 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
10678 // the point at which it stops calling _read() to fill the buffer
10679 // Note:
0 is a valid value, means "don't call _read preemptively ever"
10680 var hwm = options.highWaterMark;
10681 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
10682 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
10685 this.highWaterMark = Math.floor(this.highWaterMark);
10687 // A linked list is used to store data chunks instead of an array because the
10688 // linked list can remove elements from the beginning faster than
10690 this.buffer = new BufferList();
10693 this.pipesCount =
0;
10694 this.flowing = null;
10695 this.ended = false;
10696 this.endEmitted = false;
10697 this.reading = false;
10699 // a flag to be able to tell if the event 'readable'/'data' is emitted
10700 // immediately, or on a later tick. We set this to true at first, because
10701 // any actions that shouldn't happen until "later" should generally also
10702 // not happen before the first read call.
10705 // whenever we return null, then we set a flag to say
10706 // that we're awaiting a 'readable' event emission.
10707 this.needReadable = false;
10708 this.emittedReadable = false;
10709 this.readableListening = false;
10710 this.resumeScheduled = false;
10712 // has it been destroyed
10713 this.destroyed = false;
10715 // Crypto is kind of old and crusty. Historically, its default string
10716 // encoding is 'binary' so we have to make this configurable.
10717 // Everything else in the universe uses 'utf8', though.
10718 this.defaultEncoding = options.defaultEncoding || 'utf8';
10720 // the number of writers that are awaiting a drain event in .pipe()s
10721 this.awaitDrain =
0;
10723 // if true, a maybeReadMore has been scheduled
10724 this.readingMore = false;
10726 this.decoder = null;
10727 this.encoding = null;
10728 if (options.encoding) {
10729 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
10730 this.decoder = new StringDecoder(options.encoding);
10731 this.encoding = options.encoding;
10735 function Readable(options) {
10736 Duplex = Duplex || require('./_stream_duplex');
10738 if (!(this instanceof Readable)) return new Readable(options);
10740 this._readableState = new ReadableState(options, this);
10743 this.readable = true;
10746 if (typeof options.read === 'function') this._read = options.read;
10748 if (typeof options.destroy === 'function') this._destroy = options.destroy;
10754 Object.defineProperty(Readable.prototype, 'destroyed', {
10756 if (this._readableState === undefined) {
10759 return this._readableState.destroyed;
10761 set: function (value) {
10762 // we ignore the value if the stream
10763 // has not been initialized yet
10764 if (!this._readableState) {
10768 // backward compatibility, the user is explicitly
10769 // managing destroyed
10770 this._readableState.destroyed = value;
10774 Readable.prototype.destroy = destroyImpl.destroy;
10775 Readable.prototype._undestroy = destroyImpl.undestroy;
10776 Readable.prototype._destroy = function (err, cb) {
10781 // Manually shove something into the read() buffer.
10782 // This returns true if the highWaterMark has not been hit yet,
10783 // similar to how Writable.write() returns true if you should
10784 // write() some more.
10785 Readable.prototype.push = function (chunk, encoding) {
10786 var state = this._readableState;
10787 var skipChunkCheck;
10789 if (!state.objectMode) {
10790 if (typeof chunk === 'string') {
10791 encoding = encoding || state.defaultEncoding;
10792 if (encoding !== state.encoding) {
10793 chunk = Buffer.from(chunk, encoding);
10796 skipChunkCheck = true;
10799 skipChunkCheck = true;
10802 return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);
10805 // Unshift should *always* be something directly out of read()
10806 Readable.prototype.unshift = function (chunk) {
10807 return readableAddChunk(this, chunk, null, true, false);
10810 function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {
10811 var state = stream._readableState;
10812 if (chunk === null) {
10813 state.reading = false;
10814 onEofChunk(stream, state);
10817 if (!skipChunkCheck) er = chunkInvalid(state, chunk);
10819 stream.emit('error', er);
10820 } else if (state.objectMode || chunk && chunk.length
> 0) {
10821 if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {
10822 chunk = _uint8ArrayToBuffer(chunk);
10826 if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);
10827 } else if (state.ended) {
10828 stream.emit('error', new Error('stream.push() after EOF'));
10830 state.reading = false;
10831 if (state.decoder && !encoding) {
10832 chunk = state.decoder.write(chunk);
10833 if (state.objectMode || chunk.length !==
0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);
10835 addChunk(stream, state, chunk, false);
10838 } else if (!addToFront) {
10839 state.reading = false;
10843 return needMoreData(state);
10846 function addChunk(stream, state, chunk, addToFront) {
10847 if (state.flowing && state.length ===
0 && !state.sync) {
10848 stream.emit('data', chunk);
10851 // update the buffer info.
10852 state.length += state.objectMode ?
1 : chunk.length;
10853 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
10855 if (state.needReadable) emitReadable(stream);
10857 maybeReadMore(stream, state);
10860 function chunkInvalid(state, chunk) {
10862 if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
10863 er = new TypeError('Invalid non-string/buffer chunk');
10868 // if it's past the high water mark, we can push in some more.
10869 // Also, if we have no data yet, we can stand some
10870 // more bytes. This is to work around cases where hwm=
0,
10871 // such as the repl. Also, if the push() triggered a
10872 // readable event, and the user called read(largeNumber) such that
10873 // needReadable was set, then we ought to push more, so that another
10874 // 'readable' event will be triggered.
10875 function needMoreData(state) {
10876 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
10879 Readable.prototype.isPaused = function () {
10880 return this._readableState.flowing === false;
10883 // backwards compatibility.
10884 Readable.prototype.setEncoding = function (enc) {
10885 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
10886 this._readableState.decoder = new StringDecoder(enc);
10887 this._readableState.encoding = enc;
10891 // Don't raise the hwm
> 8MB
10892 var MAX_HWM =
0x800000;
10893 function computeNewHighWaterMark(n) {
10894 if (n
>= MAX_HWM) {
10897 // Get the next highest power of
2 to prevent increasing hwm excessively in
10910 // This function is designed to be inlinable, so please take care when making
10911 // changes to the function body.
10912 function howMuchToRead(n, state) {
10913 if (n <=
0 || state.length ===
0 && state.ended) return
0;
10914 if (state.objectMode) return
1;
10916 // Only flow one buffer at a time
10917 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
10919 // If we're asking for more than the current hwm, then raise the hwm.
10920 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
10921 if (n <= state.length) return n;
10922 // Don't have enough
10923 if (!state.ended) {
10924 state.needReadable = true;
10927 return state.length;
10930 // you can override either this method, or the async _read(n) below.
10931 Readable.prototype.read = function (n) {
10933 n = parseInt(n,
10);
10934 var state = this._readableState;
10937 if (n !==
0) state.emittedReadable = false;
10939 // if we're doing read(
0) to trigger a readable event, but we
10940 // already have a bunch of data in the buffer, then just trigger
10941 // the 'readable' event and move on.
10942 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
10943 debug('read: emitReadable', state.length, state.ended);
10944 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
10948 n = howMuchToRead(n, state);
10950 // if we've ended, and we're now clear, then finish it up.
10951 if (n ===
0 && state.ended) {
10952 if (state.length ===
0) endReadable(this);
10956 // All the actual chunk generation logic needs to be
10957 // *below* the call to _read. The reason is that in certain
10958 // synthetic stream cases, such as passthrough streams, _read
10959 // may be a completely synchronous operation which may change
10960 // the state of the read buffer, providing enough data when
10961 // before there was *not* enough.
10963 // So, the steps are:
10964 //
1. Figure out what the state of things will be after we do
10965 // a read from the buffer.
10967 //
2. If that resulting state will trigger a _read, then call _read.
10968 // Note that this may be asynchronous, or synchronous. Yes, it is
10969 // deeply ugly to write APIs this way, but that still doesn't mean
10970 // that the Readable class should behave improperly, as streams are
10971 // designed to be sync/async agnostic.
10972 // Take note if the _read call is sync or async (ie, if the read call
10973 // has returned yet), so that we know whether or not it's safe to emit
10976 //
3. Actually pull the requested chunks out of the buffer and return.
10978 // if we need a readable event, then we need to do some reading.
10979 var doRead = state.needReadable;
10980 debug('need readable', doRead);
10982 // if we currently have less than the highWaterMark, then also read some
10983 if (state.length ===
0 || state.length - n < state.highWaterMark) {
10985 debug('length less than watermark', doRead);
10988 // however, if we've ended, then there's no point, and if we're already
10989 // reading, then it's unnecessary.
10990 if (state.ended || state.reading) {
10992 debug('reading or ended', doRead);
10993 } else if (doRead) {
10995 state.reading = true;
10997 // if the length is currently zero, then we *need* a readable event.
10998 if (state.length ===
0) state.needReadable = true;
10999 // call internal read method
11000 this._read(state.highWaterMark);
11001 state.sync = false;
11002 // If _read pushed data synchronously, then `reading` will be false,
11003 // and we need to re-evaluate how much data we can return to the user.
11004 if (!state.reading) n = howMuchToRead(nOrig, state);
11008 if (n
> 0) ret = fromList(n, state);else ret = null;
11010 if (ret === null) {
11011 state.needReadable = true;
11017 if (state.length ===
0) {
11018 // If we have nothing in the buffer, then we want to know
11019 // as soon as we *do* get something into the buffer.
11020 if (!state.ended) state.needReadable = true;
11022 // If we tried to read() past the EOF, then emit end on the next tick.
11023 if (nOrig !== n && state.ended) endReadable(this);
11026 if (ret !== null) this.emit('data', ret);
11031 function onEofChunk(stream, state) {
11032 if (state.ended) return;
11033 if (state.decoder) {
11034 var chunk = state.decoder.end();
11035 if (chunk && chunk.length) {
11036 state.buffer.push(chunk);
11037 state.length += state.objectMode ?
1 : chunk.length;
11040 state.ended = true;
11042 // emit 'readable' now to make sure it gets picked up.
11043 emitReadable(stream);
11046 // Don't emit readable right away in sync mode, because this can trigger
11047 // another read() call =
> stack overflow. This way, it might trigger
11048 // a nextTick recursion warning, but that's not so bad.
11049 function emitReadable(stream) {
11050 var state = stream._readableState;
11051 state.needReadable = false;
11052 if (!state.emittedReadable) {
11053 debug('emitReadable', state.flowing);
11054 state.emittedReadable = true;
11055 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
11059 function emitReadable_(stream) {
11060 debug('emit readable');
11061 stream.emit('readable');
11065 // at this point, the user has presumably seen the 'readable' event,
11066 // and called read() to consume some data. that may have triggered
11067 // in turn another _read(n) call, in which case reading = true if
11068 // it's in progress.
11069 // However, if we're not ended, or reading, and the length < hwm,
11070 // then go ahead and try to read some more preemptively.
11071 function maybeReadMore(stream, state) {
11072 if (!state.readingMore) {
11073 state.readingMore = true;
11074 processNextTick(maybeReadMore_, stream, state);
11078 function maybeReadMore_(stream, state) {
11079 var len = state.length;
11080 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
11081 debug('maybeReadMore read
0');
11083 if (len === state.length)
11084 // didn't get any data, stop spinning.
11085 break;else len = state.length;
11087 state.readingMore = false;
11090 // abstract method. to be overridden in specific implementation classes.
11091 // call cb(er, data) where data is <= n in length.
11092 // for virtual (non-string, non-buffer) streams, "length" is somewhat
11093 // arbitrary, and perhaps not very meaningful.
11094 Readable.prototype._read = function (n) {
11095 this.emit('error', new Error('_read() is not implemented'));
11098 Readable.prototype.pipe = function (dest, pipeOpts) {
11100 var state = this._readableState;
11102 switch (state.pipesCount) {
11104 state.pipes = dest;
11107 state.pipes = [state.pipes, dest];
11110 state.pipes.push(dest);
11113 state.pipesCount +=
1;
11114 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
11116 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
11118 var endFn = doEnd ? onend : unpipe;
11119 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
11121 dest.on('unpipe', onunpipe);
11122 function onunpipe(readable, unpipeInfo) {
11124 if (readable === src) {
11125 if (unpipeInfo && unpipeInfo.hasUnpiped === false) {
11126 unpipeInfo.hasUnpiped = true;
11137 // when the dest drains, it reduces the awaitDrain counter
11138 // on the source. This would be more elegant with a .once()
11139 // handler in flow(), but adding and removing repeatedly is
11141 var ondrain = pipeOnDrain(src);
11142 dest.on('drain', ondrain);
11144 var cleanedUp = false;
11145 function cleanup() {
11147 // cleanup event handlers once the pipe is broken
11148 dest.removeListener('close', onclose);
11149 dest.removeListener('finish', onfinish);
11150 dest.removeListener('drain', ondrain);
11151 dest.removeListener('error', onerror);
11152 dest.removeListener('unpipe', onunpipe);
11153 src.removeListener('end', onend);
11154 src.removeListener('end', unpipe);
11155 src.removeListener('data', ondata);
11159 // if the reader is waiting for a drain event from this
11160 // specific writer, then it would cause it to never start
11162 // So, if this is awaiting a drain, then we just call it now.
11163 // If we don't know, then assume that we are waiting for one.
11164 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
11167 // If the user pushes more data while we're writing to dest then we'll end up
11168 // in ondata again. However, we only want to increase awaitDrain once because
11169 // dest will only emit one 'drain' event for the multiple writes.
11170 // =
> Introduce a guard on increasing awaitDrain.
11171 var increasedAwaitDrain = false;
11172 src.on('data', ondata);
11173 function ondata(chunk) {
11175 increasedAwaitDrain = false;
11176 var ret = dest.write(chunk);
11177 if (false === ret && !increasedAwaitDrain) {
11178 // If the user unpiped during `dest.write()`, it is possible
11179 // to get stuck in a permanently paused state if that write
11180 // also returned false.
11181 // =
> Check whether `dest` is still a piping destination.
11182 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
11183 debug('false write response, pause', src._readableState.awaitDrain);
11184 src._readableState.awaitDrain++;
11185 increasedAwaitDrain = true;
11191 // if the dest has an error, then stop piping into it.
11192 // however, don't suppress the throwing behavior for this.
11193 function onerror(er) {
11194 debug('onerror', er);
11196 dest.removeListener('error', onerror);
11197 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
11200 // Make sure our error handler is attached before userland ones.
11201 prependListener(dest, 'error', onerror);
11203 // Both close and finish should trigger unpipe, but only once.
11204 function onclose() {
11205 dest.removeListener('finish', onfinish);
11208 dest.once('close', onclose);
11209 function onfinish() {
11211 dest.removeListener('close', onclose);
11214 dest.once('finish', onfinish);
11216 function unpipe() {
11221 // tell the dest that it's being piped to
11222 dest.emit('pipe', src);
11224 // start the flow if it hasn't been started already.
11225 if (!state.flowing) {
11226 debug('pipe resume');
11233 function pipeOnDrain(src) {
11234 return function () {
11235 var state = src._readableState;
11236 debug('pipeOnDrain', state.awaitDrain);
11237 if (state.awaitDrain) state.awaitDrain--;
11238 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
11239 state.flowing = true;
11245 Readable.prototype.unpipe = function (dest) {
11246 var state = this._readableState;
11247 var unpipeInfo = { hasUnpiped: false };
11249 // if we're not piping anywhere, then do nothing.
11250 if (state.pipesCount ===
0) return this;
11252 // just one destination. most common case.
11253 if (state.pipesCount ===
1) {
11254 // passed in one, but it's not the right one.
11255 if (dest && dest !== state.pipes) return this;
11257 if (!dest) dest = state.pipes;
11260 state.pipes = null;
11261 state.pipesCount =
0;
11262 state.flowing = false;
11263 if (dest) dest.emit('unpipe', this, unpipeInfo);
11267 // slow case. multiple pipe destinations.
11271 var dests = state.pipes;
11272 var len = state.pipesCount;
11273 state.pipes = null;
11274 state.pipesCount =
0;
11275 state.flowing = false;
11277 for (var i =
0; i < len; i++) {
11278 dests[i].emit('unpipe', this, unpipeInfo);
11282 // try to find the right one.
11283 var index = indexOf(state.pipes, dest);
11284 if (index === -
1) return this;
11286 state.pipes.splice(index,
1);
11287 state.pipesCount -=
1;
11288 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
11290 dest.emit('unpipe', this, unpipeInfo);
11295 // set up data events if they are asked for
11296 // Ensure readable listeners eventually get something
11297 Readable.prototype.on = function (ev, fn) {
11298 var res = Stream.prototype.on.call(this, ev, fn);
11300 if (ev === 'data') {
11301 // Start flowing on next tick if stream isn't explicitly paused
11302 if (this._readableState.flowing !== false) this.resume();
11303 } else if (ev === 'readable') {
11304 var state = this._readableState;
11305 if (!state.endEmitted && !state.readableListening) {
11306 state.readableListening = state.needReadable = true;
11307 state.emittedReadable = false;
11308 if (!state.reading) {
11309 processNextTick(nReadingNextTick, this);
11310 } else if (state.length) {
11311 emitReadable(this);
11318 Readable.prototype.addListener = Readable.prototype.on;
11320 function nReadingNextTick(self) {
11321 debug('readable nexttick read
0');
11325 // pause() and resume() are remnants of the legacy readable stream API
11326 // If the user uses them, then switch into old mode.
11327 Readable.prototype.resume = function () {
11328 var state = this._readableState;
11329 if (!state.flowing) {
11331 state.flowing = true;
11332 resume(this, state);
11337 function resume(stream, state) {
11338 if (!state.resumeScheduled) {
11339 state.resumeScheduled = true;
11340 processNextTick(resume_, stream, state);
11344 function resume_(stream, state) {
11345 if (!state.reading) {
11346 debug('resume read
0');
11350 state.resumeScheduled = false;
11351 state.awaitDrain =
0;
11352 stream.emit('resume');
11354 if (state.flowing && !state.reading) stream.read(
0);
11357 Readable.prototype.pause = function () {
11358 debug('call pause flowing=%j', this._readableState.flowing);
11359 if (false !== this._readableState.flowing) {
11361 this._readableState.flowing = false;
11362 this.emit('pause');
11367 function flow(stream) {
11368 var state = stream._readableState;
11369 debug('flow', state.flowing);
11370 while (state.flowing && stream.read() !== null) {}
11373 // wrap an old-style stream as the async data source.
11374 // This is *not* part of the readable stream interface.
11375 // It is an ugly unfortunate mess of history.
11376 Readable.prototype.wrap = function (stream) {
11377 var state = this._readableState;
11378 var paused = false;
11381 stream.on('end', function () {
11382 debug('wrapped end');
11383 if (state.decoder && !state.ended) {
11384 var chunk = state.decoder.end();
11385 if (chunk && chunk.length) self.push(chunk);
11391 stream.on('data', function (chunk) {
11392 debug('wrapped data');
11393 if (state.decoder) chunk = state.decoder.write(chunk);
11395 // don't skip over falsy values in objectMode
11396 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
11398 var ret = self.push(chunk);
11405 // proxy all the other methods.
11406 // important when wrapping filters and duplexes.
11407 for (var i in stream) {
11408 if (this[i] === undefined && typeof stream[i] === 'function') {
11409 this[i] = function (method) {
11410 return function () {
11411 return stream[method].apply(stream, arguments);
11417 // proxy certain important events.
11418 for (var n =
0; n < kProxyEvents.length; n++) {
11419 stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n]));
11422 // when we try to consume some more bytes, simply unpause the
11423 // underlying stream.
11424 self._read = function (n) {
11425 debug('wrapped _read', n);
11435 // exposed for testing purposes only.
11436 Readable._fromList = fromList;
11438 // Pluck off n bytes from an array of buffers.
11439 // Length is the combined lengths of all the buffers in the list.
11440 // This function is designed to be inlinable, so please take care when making
11441 // changes to the function body.
11442 function fromList(n, state) {
11443 // nothing buffered
11444 if (state.length ===
0) return null;
11447 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
11448 // read it all, truncate the list
11449 if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length ===
1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
11450 state.buffer.clear();
11452 // read part of list
11453 ret = fromListPartial(n, state.buffer, state.decoder);
11459 // Extracts only enough buffered data to satisfy the amount requested.
11460 // This function is designed to be inlinable, so please take care when making
11461 // changes to the function body.
11462 function fromListPartial(n, list, hasStrings) {
11464 if (n < list.head.data.length) {
11465 // slice is the same for buffers and strings
11466 ret = list.head.data.slice(
0, n);
11467 list.head.data = list.head.data.slice(n);
11468 } else if (n === list.head.data.length) {
11469 // first chunk is a perfect match
11470 ret = list.shift();
11472 // result spans more than one buffer
11473 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
11478 // Copies a specified amount of characters from the list of buffered data
11480 // This function is designed to be inlinable, so please take care when making
11481 // changes to the function body.
11482 function copyFromBufferString(n, list) {
11487 while (p = p.next) {
11489 var nb = n
> str.length ? str.length : n;
11490 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
11493 if (nb === str.length) {
11495 if (p.next) list.head = p.next;else list.head = list.tail = null;
11498 p.data = str.slice(nb);
11508 // Copies a specified amount of bytes from the list of buffered data chunks.
11509 // This function is designed to be inlinable, so please take care when making
11510 // changes to the function body.
11511 function copyFromBuffer(n, list) {
11512 var ret = Buffer.allocUnsafe(n);
11516 n -= p.data.length;
11517 while (p = p.next) {
11519 var nb = n
> buf.length ? buf.length : n;
11520 buf.copy(ret, ret.length - n,
0, nb);
11523 if (nb === buf.length) {
11525 if (p.next) list.head = p.next;else list.head = list.tail = null;
11528 p.data = buf.slice(nb);
11538 function endReadable(stream) {
11539 var state = stream._readableState;
11541 // If we get here before consuming all the bytes, then that is a
11542 // bug in node. Should never happen.
11543 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
11545 if (!state.endEmitted) {
11546 state.ended = true;
11547 processNextTick(endReadableNT, state, stream);
11551 function endReadableNT(state, stream) {
11552 // Check that we didn't get one last unshift.
11553 if (!state.endEmitted && state.length ===
0) {
11554 state.endEmitted = true;
11555 stream.readable = false;
11556 stream.emit('end');
11560 function forEach(xs, f) {
11561 for (var i =
0, l = xs.length; i < l; i++) {
11566 function indexOf(xs, x) {
11567 for (var i =
0, l = xs.length; i < l; i++) {
11568 if (xs[i] === x) return i;
11572 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
11573 },{
"./_stream_duplex":
14,
"./internal/streams/BufferList":
19,
"./internal/streams/destroy":
20,
"./internal/streams/stream":
21,
"_process":
12,
"core-util-is":
5,
"events":
6,
"inherits":
8,
"isarray":
10,
"process-nextick-args":
11,
"safe-buffer":
26,
"string_decoder/":
28,
"util":
3}],
17:[function(require,module,exports){
11574 // Copyright Joyent, Inc. and other Node contributors.
11576 // Permission is hereby granted, free of charge, to any person obtaining a
11577 // copy of this software and associated documentation files (the
11578 //
"Software"), to deal in the Software without restriction, including
11579 // without limitation the rights to use, copy, modify, merge, publish,
11580 // distribute, sublicense, and/or sell copies of the Software, and to permit
11581 // persons to whom the Software is furnished to do so, subject to the
11582 // following conditions:
11584 // The above copyright notice and this permission notice shall be included
11585 // in all copies or substantial portions of the Software.
11587 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11588 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11589 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11590 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11591 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11592 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11593 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11595 // a transform stream is a readable/writable stream where you do
11596 // something with the data. Sometimes it's called a
"filter",
11597 // but that's not a great name for it, since that implies a thing where
11598 // some bits pass through, and others are simply ignored. (That would
11599 // be a valid example of a transform, of course.)
11601 // While the output is causally related to the input, it's not a
11602 // necessarily symmetric or synchronous transformation. For example,
11603 // a zlib stream might take multiple plain-text writes(), and then
11604 // emit a single compressed chunk some time in the future.
11606 // Here's how this works:
11608 // The Transform stream has all the aspects of the readable and writable
11609 // stream classes. When you write(chunk), that calls _write(chunk,cb)
11610 // internally, and returns false if there's a lot of pending writes
11611 // buffered up. When you call read(), that calls _read(n) until
11612 // there's enough pending readable data buffered up.
11614 // In a transform stream, the written data is placed in a buffer. When
11615 // _read(n) is called, it transforms the queued up data, calling the
11616 // buffered _write cb's as it consumes chunks. If consuming a single
11617 // written chunk would result in multiple output chunks, then the first
11618 // outputted bit calls the readcb, and subsequent chunks just go into
11619 // the read buffer, and will cause it to emit 'readable' if necessary.
11621 // This way, back-pressure is actually determined by the reading side,
11622 // since _read has to be called to start processing a new chunk. However,
11623 // a pathological inflate type of transform can cause excessive buffering
11624 // here. For example, imagine a stream where every byte of input is
11625 // interpreted as an integer from
0-
255, and then results in that many
11626 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
11627 //
1kb of data being output. In this case, you could write a very small
11628 // amount of input, and end up with a very large amount of output. In
11629 // such a pathological inflating mechanism, there'd be no way to tell
11630 // the system to stop doing the transform. A single
4MB write could
11631 // cause the system to run out of memory.
11633 // However, even in such a pathological case, only a single written chunk
11634 // would be consumed, and then the rest would wait (un-transformed) until
11635 // the results of the previous transformed chunk were consumed.
11639 module.exports = Transform;
11641 var Duplex = require('./_stream_duplex');
11644 var util = require('core-util-is');
11645 util.inherits = require('inherits');
11648 util.inherits(Transform, Duplex);
11650 function TransformState(stream) {
11651 this.afterTransform = function (er, data) {
11652 return afterTransform(stream, er, data);
11655 this.needTransform = false;
11656 this.transforming = false;
11657 this.writecb = null;
11658 this.writechunk = null;
11659 this.writeencoding = null;
11662 function afterTransform(stream, er, data) {
11663 var ts = stream._transformState;
11664 ts.transforming = false;
11666 var cb = ts.writecb;
11669 return stream.emit('error', new Error('write callback called multiple times'));
11672 ts.writechunk = null;
11675 if (data !== null && data !== undefined) stream.push(data);
11679 var rs = stream._readableState;
11680 rs.reading = false;
11681 if (rs.needReadable || rs.length < rs.highWaterMark) {
11682 stream._read(rs.highWaterMark);
11686 function Transform(options) {
11687 if (!(this instanceof Transform)) return new Transform(options);
11689 Duplex.call(this, options);
11691 this._transformState = new TransformState(this);
11695 // start out asking for a readable event once data is transformed.
11696 this._readableState.needReadable = true;
11698 // we have implemented the _read method, and done the other things
11699 // that Readable wants before the first _read call, so unset the
11700 // sync guard flag.
11701 this._readableState.sync = false;
11704 if (typeof options.transform === 'function') this._transform = options.transform;
11706 if (typeof options.flush === 'function') this._flush = options.flush;
11709 // When the writable side finishes, then flush out anything remaining.
11710 this.once('prefinish', function () {
11711 if (typeof this._flush === 'function') this._flush(function (er, data) {
11712 done(stream, er, data);
11713 });else done(stream);
11717 Transform.prototype.push = function (chunk, encoding) {
11718 this._transformState.needTransform = false;
11719 return Duplex.prototype.push.call(this, chunk, encoding);
11722 // This is the part where you do stuff!
11723 // override this function in implementation classes.
11724 // 'chunk' is an input chunk.
11726 // Call `push(newChunk)` to pass along transformed output
11727 // to the readable side. You may call 'push' zero or more times.
11729 // Call `cb(err)` when you are done with this chunk. If you pass
11730 // an error, then that'll put the hurt on the whole operation. If you
11731 // never call cb(), then you'll never get another chunk.
11732 Transform.prototype._transform = function (chunk, encoding, cb) {
11733 throw new Error('_transform() is not implemented');
11736 Transform.prototype._write = function (chunk, encoding, cb) {
11737 var ts = this._transformState;
11739 ts.writechunk = chunk;
11740 ts.writeencoding = encoding;
11741 if (!ts.transforming) {
11742 var rs = this._readableState;
11743 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
11747 // Doesn't matter what the args are here.
11748 // _transform does all the work.
11749 // That we got here means that the readable side wants more data.
11750 Transform.prototype._read = function (n) {
11751 var ts = this._transformState;
11753 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
11754 ts.transforming = true;
11755 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
11757 // mark that we need a transform, so that any data that comes in
11758 // will get processed, now that we've asked for it.
11759 ts.needTransform = true;
11763 Transform.prototype._destroy = function (err, cb) {
11766 Duplex.prototype._destroy.call(this, err, function (err2) {
11768 _this.emit('close');
11772 function done(stream, er, data) {
11773 if (er) return stream.emit('error', er);
11775 if (data !== null && data !== undefined) stream.push(data);
11777 // if there's nothing in the write buffer, then that means
11778 // that nothing more will ever be provided
11779 var ws = stream._writableState;
11780 var ts = stream._transformState;
11782 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
11784 if (ts.transforming) throw new Error('Calling transform done when still transforming');
11786 return stream.push(null);
11788 },{"./_stream_duplex":
14,"core-util-is":
5,"inherits":
8}],
18:[function(require,module,exports){
11789 (function (process,global){
11790 // Copyright Joyent, Inc. and other Node contributors.
11792 // Permission is hereby granted, free of charge, to any person obtaining a
11793 // copy of this software and associated documentation files (the
11794 // "Software"), to deal in the Software without restriction, including
11795 // without limitation the rights to use, copy, modify, merge, publish,
11796 // distribute, sublicense, and/or sell copies of the Software, and to permit
11797 // persons to whom the Software is furnished to do so, subject to the
11798 // following conditions:
11800 // The above copyright notice and this permission notice shall be included
11801 // in all copies or substantial portions of the Software.
11803 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11804 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11805 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11806 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11807 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11808 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11809 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11811 // A bit simpler than readable streams.
11812 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
11813 // the drain event emission and buffering.
11819 var processNextTick = require('process-nextick-args');
11822 module.exports = Writable;
11824 /*
<replacement> */
11825 function WriteReq(chunk, encoding, cb) {
11826 this.chunk = chunk;
11827 this.encoding = encoding;
11828 this.callback = cb;
11832 // It seems a linked list but it is not
11833 // there will be only
2 of these for each stream
11834 function CorkedRequest(state) {
11839 this.finish = function () {
11840 onCorkedFinish(_this, state);
11843 /*
</replacement> */
11846 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
11853 Writable.WritableState = WritableState;
11856 var util = require('core-util-is');
11857 util.inherits = require('inherits');
11861 var internalUtil = {
11862 deprecate: require('util-deprecate')
11867 var Stream = require('./internal/streams/stream');
11871 var Buffer = require('safe-buffer').Buffer;
11872 var OurUint8Array = global.Uint8Array || function () {};
11873 function _uint8ArrayToBuffer(chunk) {
11874 return Buffer.from(chunk);
11876 function _isUint8Array(obj) {
11877 return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
11881 var destroyImpl = require('./internal/streams/destroy');
11883 util.inherits(Writable, Stream);
11887 function WritableState(options, stream) {
11888 Duplex = Duplex || require('./_stream_duplex');
11890 options = options || {};
11892 // object stream flag to indicate whether or not this stream
11893 // contains buffers or objects.
11894 this.objectMode = !!options.objectMode;
11896 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
11898 // the point at which write() starts returning false
11899 // Note:
0 is a valid value, means that we always return false if
11900 // the entire buffer is not flushed immediately on write()
11901 var hwm = options.highWaterMark;
11902 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
11903 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
11906 this.highWaterMark = Math.floor(this.highWaterMark);
11908 // if _final has been called
11909 this.finalCalled = false;
11911 // drain event flag.
11912 this.needDrain = false;
11913 // at the start of calling end()
11914 this.ending = false;
11915 // when end() has been called, and returned
11916 this.ended = false;
11917 // when 'finish' is emitted
11918 this.finished = false;
11920 // has it been destroyed
11921 this.destroyed = false;
11923 // should we decode strings into buffers before passing to _write?
11924 // this is here so that some node-core streams can optimize string
11925 // handling at a lower level.
11926 var noDecode = options.decodeStrings === false;
11927 this.decodeStrings = !noDecode;
11929 // Crypto is kind of old and crusty. Historically, its default string
11930 // encoding is 'binary' so we have to make this configurable.
11931 // Everything else in the universe uses 'utf8', though.
11932 this.defaultEncoding = options.defaultEncoding || 'utf8';
11934 // not an actual buffer we keep track of, but a measurement
11935 // of how much we're waiting to get pushed to some underlying
11939 // a flag to see when we're in the middle of a write.
11940 this.writing = false;
11942 // when true all writes will be buffered until .uncork() call
11945 // a flag to be able to tell if the onwrite cb is called immediately,
11946 // or on a later tick. We set this to true at first, because any
11947 // actions that shouldn't happen until "later" should generally also
11948 // not happen before the first write call.
11951 // a flag to know if we're processing previously buffered items, which
11952 // may call the _write() callback in the same tick, so that we don't
11953 // end up in an overlapped onwrite situation.
11954 this.bufferProcessing = false;
11956 // the callback that's passed to _write(chunk,cb)
11957 this.onwrite = function (er) {
11958 onwrite(stream, er);
11961 // the callback that the user supplies to write(chunk,encoding,cb)
11962 this.writecb = null;
11964 // the amount that is being written when _write is called.
11967 this.bufferedRequest = null;
11968 this.lastBufferedRequest = null;
11970 // number of pending user-supplied write callbacks
11971 // this must be
0 before 'finish' can be emitted
11972 this.pendingcb =
0;
11974 // emit prefinish if the only thing we're waiting for is _write cbs
11975 // This is relevant for synchronous Transform streams
11976 this.prefinished = false;
11978 // True if the error was already emitted and should not be thrown again
11979 this.errorEmitted = false;
11981 // count buffered requests
11982 this.bufferedRequestCount =
0;
11984 // allocate the first CorkedRequest, there is always
11985 // one allocated and free to use, and we maintain at most two
11986 this.corkedRequestsFree = new CorkedRequest(this);
11989 WritableState.prototype.getBuffer = function getBuffer() {
11990 var current = this.bufferedRequest;
11994 current = current.next;
12001 Object.defineProperty(WritableState.prototype, 'buffer', {
12002 get: internalUtil.deprecate(function () {
12003 return this.getBuffer();
12004 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')
12009 // Test _writableState for inheritance to account for Duplex streams,
12010 // whose prototype chain only points to Readable.
12011 var realHasInstance;
12012 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
12013 realHasInstance = Function.prototype[Symbol.hasInstance];
12014 Object.defineProperty(Writable, Symbol.hasInstance, {
12015 value: function (object) {
12016 if (realHasInstance.call(this, object)) return true;
12018 return object && object._writableState instanceof WritableState;
12022 realHasInstance = function (object) {
12023 return object instanceof this;
12027 function Writable(options) {
12028 Duplex = Duplex || require('./_stream_duplex');
12030 // Writable ctor is applied to Duplexes, too.
12031 // `realHasInstance` is necessary because using plain `instanceof`
12032 // would return false, as no `_writableState` property is attached.
12034 // Trying to use the custom `instanceof` for Writable here will also break the
12035 // Node.js LazyTransform implementation, which has a non-trivial getter for
12036 // `_writableState` that would lead to infinite recursion.
12037 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
12038 return new Writable(options);
12041 this._writableState = new WritableState(options, this);
12044 this.writable = true;
12047 if (typeof options.write === 'function') this._write = options.write;
12049 if (typeof options.writev === 'function') this._writev = options.writev;
12051 if (typeof options.destroy === 'function') this._destroy = options.destroy;
12053 if (typeof options.final === 'function') this._final = options.final;
12059 // Otherwise people can pipe Writable streams, which is just wrong.
12060 Writable.prototype.pipe = function () {
12061 this.emit('error', new Error('Cannot pipe, not readable'));
12064 function writeAfterEnd(stream, cb) {
12065 var er = new Error('write after end');
12066 // TODO: defer error events consistently everywhere, not just the cb
12067 stream.emit('error', er);
12068 processNextTick(cb, er);
12071 // Checks that a user-supplied chunk is valid, especially for the particular
12072 // mode the stream is in. Currently this means that `null` is never accepted
12073 // and undefined/non-string values are only allowed in object mode.
12074 function validChunk(stream, state, chunk, cb) {
12078 if (chunk === null) {
12079 er = new TypeError('May not write null values to stream');
12080 } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
12081 er = new TypeError('Invalid non-string/buffer chunk');
12084 stream.emit('error', er);
12085 processNextTick(cb, er);
12091 Writable.prototype.write = function (chunk, encoding, cb) {
12092 var state = this._writableState;
12094 var isBuf = _isUint8Array(chunk) && !state.objectMode;
12096 if (isBuf && !Buffer.isBuffer(chunk)) {
12097 chunk = _uint8ArrayToBuffer(chunk);
12100 if (typeof encoding === 'function') {
12105 if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
12107 if (typeof cb !== 'function') cb = nop;
12109 if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {
12111 ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);
12117 Writable.prototype.cork = function () {
12118 var state = this._writableState;
12123 Writable.prototype.uncork = function () {
12124 var state = this._writableState;
12126 if (state.corked) {
12129 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
12133 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
12134 // node::ParseEncoding() requires lower case.
12135 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
12136 if (!(['hex', 'utf8', 'utf-
8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-
2', 'utf16le', 'utf-
16le', 'raw'].indexOf((encoding + '').toLowerCase())
> -
1)) throw new TypeError('Unknown encoding: ' + encoding);
12137 this._writableState.defaultEncoding = encoding;
12141 function decodeChunk(state, chunk, encoding) {
12142 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
12143 chunk = Buffer.from(chunk, encoding);
12148 // if we're already writing something, then just put this
12149 // in the queue, and wait our turn. Otherwise, call _write
12150 // If we return false, then we need a drain event, so set that flag.
12151 function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {
12153 var newChunk = decodeChunk(state, chunk, encoding);
12154 if (chunk !== newChunk) {
12156 encoding = 'buffer';
12160 var len = state.objectMode ?
1 : chunk.length;
12162 state.length += len;
12164 var ret = state.length < state.highWaterMark;
12165 // we must ensure that previous needDrain will not be reset to false.
12166 if (!ret) state.needDrain = true;
12168 if (state.writing || state.corked) {
12169 var last = state.lastBufferedRequest;
12170 state.lastBufferedRequest = {
12172 encoding: encoding,
12178 last.next = state.lastBufferedRequest;
12180 state.bufferedRequest = state.lastBufferedRequest;
12182 state.bufferedRequestCount +=
1;
12184 doWrite(stream, state, false, len, chunk, encoding, cb);
12190 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
12191 state.writelen = len;
12192 state.writecb = cb;
12193 state.writing = true;
12195 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
12196 state.sync = false;
12199 function onwriteError(stream, state, sync, er, cb) {
12203 // defer the callback if we are being called synchronously
12204 // to avoid piling up things on the stack
12205 processNextTick(cb, er);
12206 // this can emit finish, and it will always happen
12208 processNextTick(finishMaybe, stream, state);
12209 stream._writableState.errorEmitted = true;
12210 stream.emit('error', er);
12212 // the caller expect this to happen before if
12215 stream._writableState.errorEmitted = true;
12216 stream.emit('error', er);
12217 // this can emit finish, but finish must
12218 // always follow error
12219 finishMaybe(stream, state);
12223 function onwriteStateUpdate(state) {
12224 state.writing = false;
12225 state.writecb = null;
12226 state.length -= state.writelen;
12227 state.writelen =
0;
12230 function onwrite(stream, er) {
12231 var state = stream._writableState;
12232 var sync = state.sync;
12233 var cb = state.writecb;
12235 onwriteStateUpdate(state);
12237 if (er) onwriteError(stream, state, sync, er, cb);else {
12238 // Check if we're actually ready to finish, but don't emit yet
12239 var finished = needFinish(state);
12241 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
12242 clearBuffer(stream, state);
12247 asyncWrite(afterWrite, stream, state, finished, cb);
12250 afterWrite(stream, state, finished, cb);
12255 function afterWrite(stream, state, finished, cb) {
12256 if (!finished) onwriteDrain(stream, state);
12259 finishMaybe(stream, state);
12262 // Must force callback to be called on nextTick, so that we don't
12263 // emit 'drain' before the write() consumer gets the 'false' return
12264 // value, and has a chance to attach a 'drain' listener.
12265 function onwriteDrain(stream, state) {
12266 if (state.length ===
0 && state.needDrain) {
12267 state.needDrain = false;
12268 stream.emit('drain');
12272 // if there's something in the buffer waiting, then process it
12273 function clearBuffer(stream, state) {
12274 state.bufferProcessing = true;
12275 var entry = state.bufferedRequest;
12277 if (stream._writev && entry && entry.next) {
12278 // Fast case, write everything using _writev()
12279 var l = state.bufferedRequestCount;
12280 var buffer = new Array(l);
12281 var holder = state.corkedRequestsFree;
12282 holder.entry = entry;
12285 var allBuffers = true;
12287 buffer[count] = entry;
12288 if (!entry.isBuf) allBuffers = false;
12289 entry = entry.next;
12292 buffer.allBuffers = allBuffers;
12294 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
12296 // doWrite is almost always async, defer these to save a bit of time
12297 // as the hot path ends with doWrite
12299 state.lastBufferedRequest = null;
12301 state.corkedRequestsFree = holder.next;
12302 holder.next = null;
12304 state.corkedRequestsFree = new CorkedRequest(state);
12307 // Slow case, write chunks one-by-one
12309 var chunk = entry.chunk;
12310 var encoding = entry.encoding;
12311 var cb = entry.callback;
12312 var len = state.objectMode ?
1 : chunk.length;
12314 doWrite(stream, state, false, len, chunk, encoding, cb);
12315 entry = entry.next;
12316 // if we didn't call the onwrite immediately, then
12317 // it means that we need to wait until it does.
12318 // also, that means that the chunk and cb are currently
12319 // being processed, so move the buffer counter past them.
12320 if (state.writing) {
12325 if (entry === null) state.lastBufferedRequest = null;
12328 state.bufferedRequestCount =
0;
12329 state.bufferedRequest = entry;
12330 state.bufferProcessing = false;
12333 Writable.prototype._write = function (chunk, encoding, cb) {
12334 cb(new Error('_write() is not implemented'));
12337 Writable.prototype._writev = null;
12339 Writable.prototype.end = function (chunk, encoding, cb) {
12340 var state = this._writableState;
12342 if (typeof chunk === 'function') {
12346 } else if (typeof encoding === 'function') {
12351 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
12353 // .end() fully uncorks
12354 if (state.corked) {
12359 // ignore unnecessary end() calls.
12360 if (!state.ending && !state.finished) endWritable(this, state, cb);
12363 function needFinish(state) {
12364 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
12366 function callFinal(stream, state) {
12367 stream._final(function (err) {
12370 stream.emit('error', err);
12372 state.prefinished = true;
12373 stream.emit('prefinish');
12374 finishMaybe(stream, state);
12377 function prefinish(stream, state) {
12378 if (!state.prefinished && !state.finalCalled) {
12379 if (typeof stream._final === 'function') {
12381 state.finalCalled = true;
12382 processNextTick(callFinal, stream, state);
12384 state.prefinished = true;
12385 stream.emit('prefinish');
12390 function finishMaybe(stream, state) {
12391 var need = needFinish(state);
12393 prefinish(stream, state);
12394 if (state.pendingcb ===
0) {
12395 state.finished = true;
12396 stream.emit('finish');
12402 function endWritable(stream, state, cb) {
12403 state.ending = true;
12404 finishMaybe(stream, state);
12406 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
12408 state.ended = true;
12409 stream.writable = false;
12412 function onCorkedFinish(corkReq, state, err) {
12413 var entry = corkReq.entry;
12414 corkReq.entry = null;
12416 var cb = entry.callback;
12419 entry = entry.next;
12421 if (state.corkedRequestsFree) {
12422 state.corkedRequestsFree.next = corkReq;
12424 state.corkedRequestsFree = corkReq;
12428 Object.defineProperty(Writable.prototype, 'destroyed', {
12430 if (this._writableState === undefined) {
12433 return this._writableState.destroyed;
12435 set: function (value) {
12436 // we ignore the value if the stream
12437 // has not been initialized yet
12438 if (!this._writableState) {
12442 // backward compatibility, the user is explicitly
12443 // managing destroyed
12444 this._writableState.destroyed = value;
12448 Writable.prototype.destroy = destroyImpl.destroy;
12449 Writable.prototype._undestroy = destroyImpl.undestroy;
12450 Writable.prototype._destroy = function (err, cb) {
12454 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
12455 },{"./_stream_duplex":
14,"./internal/streams/destroy":
20,"./internal/streams/stream":
21,"_process":
12,"core-util-is":
5,"inherits":
8,"process-nextick-args":
11,"safe-buffer":
26,"util-deprecate":
29}],
19:[function(require,module,exports){
12460 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12462 var Buffer = require('safe-buffer').Buffer;
12465 function copyBuffer(src, target, offset) {
12466 src.copy(target, offset);
12469 module.exports = function () {
12470 function BufferList() {
12471 _classCallCheck(this, BufferList);
12478 BufferList.prototype.push = function push(v) {
12479 var entry = { data: v, next: null };
12480 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
12485 BufferList.prototype.unshift = function unshift(v) {
12486 var entry = { data: v, next: this.head };
12487 if (this.length ===
0) this.tail = entry;
12492 BufferList.prototype.shift = function shift() {
12493 if (this.length ===
0) return;
12494 var ret = this.head.data;
12495 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
12500 BufferList.prototype.clear = function clear() {
12501 this.head = this.tail = null;
12505 BufferList.prototype.join = function join(s) {
12506 if (this.length ===
0) return '';
12508 var ret = '' + p.data;
12509 while (p = p.next) {
12514 BufferList.prototype.concat = function concat(n) {
12515 if (this.length ===
0) return Buffer.alloc(
0);
12516 if (this.length ===
1) return this.head.data;
12517 var ret = Buffer.allocUnsafe(n
>>> 0);
12521 copyBuffer(p.data, ret, i);
12522 i += p.data.length;
12530 },{
"safe-buffer":
26}],
20:[function(require,module,exports){
12535 var processNextTick = require('process-nextick-args');
12538 // undocumented cb() API, needed for core, not for public API
12539 function destroy(err, cb) {
12542 var readableDestroyed = this._readableState && this._readableState.destroyed;
12543 var writableDestroyed = this._writableState && this._writableState.destroyed;
12545 if (readableDestroyed || writableDestroyed) {
12548 } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {
12549 processNextTick(emitErrorNT, this, err);
12554 // we set destroyed to true before firing error callbacks in order
12555 // to make it re-entrance safe in case destroy() is called within callbacks
12557 if (this._readableState) {
12558 this._readableState.destroyed = true;
12561 // if this is a duplex stream mark the writable part as destroyed as well
12562 if (this._writableState) {
12563 this._writableState.destroyed = true;
12566 this._destroy(err || null, function (err) {
12568 processNextTick(emitErrorNT, _this, err);
12569 if (_this._writableState) {
12570 _this._writableState.errorEmitted = true;
12578 function undestroy() {
12579 if (this._readableState) {
12580 this._readableState.destroyed = false;
12581 this._readableState.reading = false;
12582 this._readableState.ended = false;
12583 this._readableState.endEmitted = false;
12586 if (this._writableState) {
12587 this._writableState.destroyed = false;
12588 this._writableState.ended = false;
12589 this._writableState.ending = false;
12590 this._writableState.finished = false;
12591 this._writableState.errorEmitted = false;
12595 function emitErrorNT(self, err) {
12596 self.emit('error', err);
12601 undestroy: undestroy
12603 },{"process-nextick-args":
11}],
21:[function(require,module,exports){
12604 module.exports = require('events').EventEmitter;
12606 },{"events":
6}],
22:[function(require,module,exports){
12607 module.exports = require('./readable').PassThrough
12609 },{"./readable":
23}],
23:[function(require,module,exports){
12610 exports = module.exports = require('./lib/_stream_readable.js');
12611 exports.Stream = exports;
12612 exports.Readable = exports;
12613 exports.Writable = require('./lib/_stream_writable.js');
12614 exports.Duplex = require('./lib/_stream_duplex.js');
12615 exports.Transform = require('./lib/_stream_transform.js');
12616 exports.PassThrough = require('./lib/_stream_passthrough.js');
12618 },{"./lib/_stream_duplex.js":
14,"./lib/_stream_passthrough.js":
15,"./lib/_stream_readable.js":
16,"./lib/_stream_transform.js":
17,"./lib/_stream_writable.js":
18}],
24:[function(require,module,exports){
12619 module.exports = require('./readable').Transform
12621 },{"./readable":
23}],
25:[function(require,module,exports){
12622 module.exports = require('./lib/_stream_writable.js');
12624 },{"./lib/_stream_writable.js":
18}],
26:[function(require,module,exports){
12625 /* eslint-disable node/no-deprecated-api */
12626 var buffer = require('buffer')
12627 var Buffer = buffer.Buffer
12629 // alternative to using Object.keys for old browsers
12630 function copyProps (src, dst) {
12631 for (var key in src) {
12632 dst[key] = src[key]
12635 if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {
12636 module.exports = buffer
12638 // Copy properties from require('buffer')
12639 copyProps(buffer, exports)
12640 exports.Buffer = SafeBuffer
12643 function SafeBuffer (arg, encodingOrOffset, length) {
12644 return Buffer(arg, encodingOrOffset, length)
12647 // Copy static methods from Buffer
12648 copyProps(Buffer, SafeBuffer)
12650 SafeBuffer.from = function (arg, encodingOrOffset, length) {
12651 if (typeof arg === 'number') {
12652 throw new TypeError('Argument must not be a number')
12654 return Buffer(arg, encodingOrOffset, length)
12657 SafeBuffer.alloc = function (size, fill, encoding) {
12658 if (typeof size !== 'number') {
12659 throw new TypeError('Argument must be a number')
12661 var buf = Buffer(size)
12662 if (fill !== undefined) {
12663 if (typeof encoding === 'string') {
12664 buf.fill(fill, encoding)
12674 SafeBuffer.allocUnsafe = function (size) {
12675 if (typeof size !== 'number') {
12676 throw new TypeError('Argument must be a number')
12678 return Buffer(size)
12681 SafeBuffer.allocUnsafeSlow = function (size) {
12682 if (typeof size !== 'number') {
12683 throw new TypeError('Argument must be a number')
12685 return buffer.SlowBuffer(size)
12688 },{"buffer":
4}],
27:[function(require,module,exports){
12689 // Copyright Joyent, Inc. and other Node contributors.
12691 // Permission is hereby granted, free of charge, to any person obtaining a
12692 // copy of this software and associated documentation files (the
12693 // "Software"), to deal in the Software without restriction, including
12694 // without limitation the rights to use, copy, modify, merge, publish,
12695 // distribute, sublicense, and/or sell copies of the Software, and to permit
12696 // persons to whom the Software is furnished to do so, subject to the
12697 // following conditions:
12699 // The above copyright notice and this permission notice shall be included
12700 // in all copies or substantial portions of the Software.
12702 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
12703 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
12704 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
12705 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
12706 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
12707 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
12708 // USE OR OTHER DEALINGS IN THE SOFTWARE.
12710 module.exports = Stream;
12712 var EE = require('events').EventEmitter;
12713 var inherits = require('inherits');
12715 inherits(Stream, EE);
12716 Stream.Readable = require('readable-stream/readable.js');
12717 Stream.Writable = require('readable-stream/writable.js');
12718 Stream.Duplex = require('readable-stream/duplex.js');
12719 Stream.Transform = require('readable-stream/transform.js');
12720 Stream.PassThrough = require('readable-stream/passthrough.js');
12722 // Backwards-compat with node
0.4.x
12723 Stream.Stream = Stream;
12727 // old-style streams. Note that the pipe method (the only relevant
12728 // part of this class) is overridden in the Readable class.
12730 function Stream() {
12734 Stream.prototype.pipe = function(dest, options) {
12737 function ondata(chunk) {
12738 if (dest.writable) {
12739 if (false === dest.write(chunk) && source.pause) {
12745 source.on('data', ondata);
12747 function ondrain() {
12748 if (source.readable && source.resume) {
12753 dest.on('drain', ondrain);
12755 // If the 'end' option is not supplied, dest.end() will be called when
12756 // source gets the 'end' or 'close' events. Only dest.end() once.
12757 if (!dest._isStdio && (!options || options.end !== false)) {
12758 source.on('end', onend);
12759 source.on('close', onclose);
12762 var didOnEnd = false;
12764 if (didOnEnd) return;
12771 function onclose() {
12772 if (didOnEnd) return;
12775 if (typeof dest.destroy === 'function') dest.destroy();
12778 // don't leave dangling pipes when there are errors.
12779 function onerror(er) {
12781 if (EE.listenerCount(this, 'error') ===
0) {
12782 throw er; // Unhandled stream error in pipe.
12786 source.on('error', onerror);
12787 dest.on('error', onerror);
12789 // remove all the event listeners that were added.
12790 function cleanup() {
12791 source.removeListener('data', ondata);
12792 dest.removeListener('drain', ondrain);
12794 source.removeListener('end', onend);
12795 source.removeListener('close', onclose);
12797 source.removeListener('error', onerror);
12798 dest.removeListener('error', onerror);
12800 source.removeListener('end', cleanup);
12801 source.removeListener('close', cleanup);
12803 dest.removeListener('close', cleanup);
12806 source.on('end', cleanup);
12807 source.on('close', cleanup);
12809 dest.on('close', cleanup);
12811 dest.emit('pipe', source);
12813 // Allow for unix-like usage: A.pipe(B).pipe(C)
12817 },{"events":
6,"inherits":
8,"readable-stream/duplex.js":
13,"readable-stream/passthrough.js":
22,"readable-stream/readable.js":
23,"readable-stream/transform.js":
24,"readable-stream/writable.js":
25}],
28:[function(require,module,exports){
12820 var Buffer = require('safe-buffer').Buffer;
12822 var isEncoding = Buffer.isEncoding || function (encoding) {
12823 encoding = '' + encoding;
12824 switch (encoding && encoding.toLowerCase()) {
12825 case 'hex':case 'utf8':case 'utf-
8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-
2':case 'utf16le':case 'utf-
16le':case 'raw':
12832 function _normalizeEncoding(enc) {
12833 if (!enc) return 'utf8';
12853 if (retried) return; // undefined
12854 enc = ('' + enc).toLowerCase();
12860 // Do not cache `Buffer.isEncoding` when checking encoding names as some
12861 // modules monkey-patch it to support additional encodings
12862 function normalizeEncoding(enc) {
12863 var nenc = _normalizeEncoding(enc);
12864 if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);
12865 return nenc || enc;
12868 // StringDecoder provides an interface for efficiently splitting a series of
12869 // buffers into a series of JS strings without breaking apart multi-byte
12871 exports.StringDecoder = StringDecoder;
12872 function StringDecoder(encoding) {
12873 this.encoding = normalizeEncoding(encoding);
12875 switch (this.encoding) {
12877 this.text = utf16Text;
12878 this.end = utf16End;
12882 this.fillLast = utf8FillLast;
12886 this.text = base64Text;
12887 this.end = base64End;
12891 this.write = simpleWrite;
12892 this.end = simpleEnd;
12896 this.lastTotal =
0;
12897 this.lastChar = Buffer.allocUnsafe(nb);
12900 StringDecoder.prototype.write = function (buf) {
12901 if (buf.length ===
0) return '';
12904 if (this.lastNeed) {
12905 r = this.fillLast(buf);
12906 if (r === undefined) return '';
12912 if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);
12916 StringDecoder.prototype.end = utf8End;
12918 // Returns only complete characters in a Buffer
12919 StringDecoder.prototype.text = utf8Text;
12921 // Attempts to complete a partial non-UTF-
8 character using bytes from a Buffer
12922 StringDecoder.prototype.fillLast = function (buf) {
12923 if (this.lastNeed <= buf.length) {
12924 buf.copy(this.lastChar, this.lastTotal - this.lastNeed,
0, this.lastNeed);
12925 return this.lastChar.toString(this.encoding,
0, this.lastTotal);
12927 buf.copy(this.lastChar, this.lastTotal - this.lastNeed,
0, buf.length);
12928 this.lastNeed -= buf.length;
12931 // Checks the type of a UTF-
8 byte, whether it's ASCII, a leading byte, or a
12932 // continuation byte.
12933 function utf8CheckByte(byte) {
12934 if (byte <=
0x7F) return
0;else if (byte
>> 5 ===
0x06) return
2;else if (byte
>> 4 ===
0x0E) return
3;else if (byte
>> 3 ===
0x1E) return
4;
12938 // Checks at most
3 bytes at the end of a Buffer in order to detect an
12939 // incomplete multi-byte UTF-
8 character. The total number of bytes (
2,
3, or
4)
12940 // needed to complete the UTF-
8 character (if applicable) are returned.
12941 function utf8CheckIncomplete(self, buf, i) {
12942 var j = buf.length -
1;
12943 if (j < i) return
0;
12944 var nb = utf8CheckByte(buf[j]);
12946 if (nb
> 0) self.lastNeed = nb -
1;
12949 if (--j < i) return
0;
12950 nb = utf8CheckByte(buf[j]);
12952 if (nb
> 0) self.lastNeed = nb -
2;
12955 if (--j < i) return
0;
12956 nb = utf8CheckByte(buf[j]);
12959 if (nb ===
2) nb =
0;else self.lastNeed = nb -
3;
12966 // Validates as many continuation bytes for a multi-byte UTF-
8 character as
12967 // needed or are available. If we see a non-continuation byte where we expect
12968 // one, we
"replace" the validated continuation bytes we've seen so far with
12969 // UTF-
8 replacement characters ('\ufffd'), to match v8's UTF-
8 decoding
12970 // behavior. The continuation byte check is included three times in the case
12971 // where all of the continuation bytes for a character exist in the same buffer.
12972 // It is also done this way as a slight performance increase instead of using a
12974 function utf8CheckExtraBytes(self, buf, p) {
12975 if ((buf[
0] &
0xC0) !==
0x80) {
12977 return '\ufffd'.repeat(p);
12979 if (self.lastNeed
> 1 && buf.length
> 1) {
12980 if ((buf[
1] &
0xC0) !==
0x80) {
12982 return '\ufffd'.repeat(p +
1);
12984 if (self.lastNeed
> 2 && buf.length
> 2) {
12985 if ((buf[
2] &
0xC0) !==
0x80) {
12987 return '\ufffd'.repeat(p +
2);
12993 // Attempts to complete a multi-byte UTF-
8 character using bytes from a Buffer.
12994 function utf8FillLast(buf) {
12995 var p = this.lastTotal - this.lastNeed;
12996 var r = utf8CheckExtraBytes(this, buf, p);
12997 if (r !== undefined) return r;
12998 if (this.lastNeed <= buf.length) {
12999 buf.copy(this.lastChar, p,
0, this.lastNeed);
13000 return this.lastChar.toString(this.encoding,
0, this.lastTotal);
13002 buf.copy(this.lastChar, p,
0, buf.length);
13003 this.lastNeed -= buf.length;
13006 // Returns all complete UTF-
8 characters in a Buffer. If the Buffer ended on a
13007 // partial character, the character's bytes are buffered until the required
13008 // number of bytes are available.
13009 function utf8Text(buf, i) {
13010 var total = utf8CheckIncomplete(this, buf, i);
13011 if (!this.lastNeed) return buf.toString('utf8', i);
13012 this.lastTotal = total;
13013 var end = buf.length - (total - this.lastNeed);
13014 buf.copy(this.lastChar,
0, end);
13015 return buf.toString('utf8', i, end);
13018 // For UTF-
8, a replacement character for each buffered byte of a (partial)
13019 // character needs to be added to the output.
13020 function utf8End(buf) {
13021 var r = buf && buf.length ? this.write(buf) : '';
13022 if (this.lastNeed) return r + '\ufffd'.repeat(this.lastTotal - this.lastNeed);
13026 // UTF-
16LE typically needs two bytes per character, but even if we have an even
13027 // number of bytes available, we need to check if we end on a leading/high
13028 // surrogate. In that case, we need to wait for the next two bytes in order to
13029 // decode the last character properly.
13030 function utf16Text(buf, i) {
13031 if ((buf.length - i) %
2 ===
0) {
13032 var r = buf.toString('utf16le', i);
13034 var c = r.charCodeAt(r.length -
1);
13035 if (c
>=
0xD800 && c <=
0xDBFF) {
13037 this.lastTotal =
4;
13038 this.lastChar[
0] = buf[buf.length -
2];
13039 this.lastChar[
1] = buf[buf.length -
1];
13040 return r.slice(
0, -
1);
13046 this.lastTotal =
2;
13047 this.lastChar[
0] = buf[buf.length -
1];
13048 return buf.toString('utf16le', i, buf.length -
1);
13051 // For UTF-
16LE we do not explicitly append special replacement characters if we
13052 // end on a partial character, we simply let v8 handle that.
13053 function utf16End(buf) {
13054 var r = buf && buf.length ? this.write(buf) : '';
13055 if (this.lastNeed) {
13056 var end = this.lastTotal - this.lastNeed;
13057 return r + this.lastChar.toString('utf16le',
0, end);
13062 function base64Text(buf, i) {
13063 var n = (buf.length - i) %
3;
13064 if (n ===
0) return buf.toString('base64', i);
13065 this.lastNeed =
3 - n;
13066 this.lastTotal =
3;
13068 this.lastChar[
0] = buf[buf.length -
1];
13070 this.lastChar[
0] = buf[buf.length -
2];
13071 this.lastChar[
1] = buf[buf.length -
1];
13073 return buf.toString('base64', i, buf.length - n);
13076 function base64End(buf) {
13077 var r = buf && buf.length ? this.write(buf) : '';
13078 if (this.lastNeed) return r + this.lastChar.toString('base64',
0,
3 - this.lastNeed);
13082 // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)
13083 function simpleWrite(buf) {
13084 return buf.toString(this.encoding);
13087 function simpleEnd(buf) {
13088 return buf && buf.length ? this.write(buf) : '';
13090 },{"safe-buffer":
26}],
29:[function(require,module,exports){
13091 (function (global){
13097 module.exports = deprecate;
13100 * Mark that a method should not be used.
13101 * Returns a modified function which warns once by default.
13103 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
13105 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
13106 * will throw an Error when invoked.
13108 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
13109 * will invoke `console.trace()` instead of `console.error()`.
13111 * @param {Function} fn - the function to deprecate
13112 * @param {String} msg - the string to print to the console when `fn` is invoked
13113 * @returns {Function} a new "deprecated" version of `fn`
13117 function deprecate (fn, msg) {
13118 if (config('noDeprecation')) {
13122 var warned = false;
13123 function deprecated() {
13125 if (config('throwDeprecation')) {
13126 throw new Error(msg);
13127 } else if (config('traceDeprecation')) {
13128 console.trace(msg);
13134 return fn.apply(this, arguments);
13141 * Checks `localStorage` for boolean values for the given `name`.
13143 * @param {String} name
13144 * @returns {Boolean}
13148 function config (name) {
13149 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
13151 if (!global.localStorage) return false;
13155 var val = global.localStorage[name];
13156 if (null == val) return false;
13157 return String(val).toLowerCase() === 'true';
13160 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
13161 },{}],
30:[function(require,module,exports){
13162 arguments[
4][
8][
0].apply(exports,arguments)
13163 },{"dup":
8}],
31:[function(require,module,exports){
13164 module.exports = function isBuffer(arg) {
13165 return arg && typeof arg === 'object'
13166 && typeof arg.copy === 'function'
13167 && typeof arg.fill === 'function'
13168 && typeof arg.readUInt8 === 'function';
13170 },{}],
32:[function(require,module,exports){
13171 (function (process,global){
13172 // Copyright Joyent, Inc. and other Node contributors.
13174 // Permission is hereby granted, free of charge, to any person obtaining a
13175 // copy of this software and associated documentation files (the
13176 // "Software"), to deal in the Software without restriction, including
13177 // without limitation the rights to use, copy, modify, merge, publish,
13178 // distribute, sublicense, and/or sell copies of the Software, and to permit
13179 // persons to whom the Software is furnished to do so, subject to the
13180 // following conditions:
13182 // The above copyright notice and this permission notice shall be included
13183 // in all copies or substantial portions of the Software.
13185 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13186 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13187 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13188 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13189 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13190 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13191 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13193 var formatRegExp = /%[sdj%]/g;
13194 exports.format = function(f) {
13195 if (!isString(f)) {
13197 for (var i =
0; i < arguments.length; i++) {
13198 objects.push(inspect(arguments[i]));
13200 return objects.join(' ');
13204 var args = arguments;
13205 var len = args.length;
13206 var str = String(f).replace(formatRegExp, function(x) {
13207 if (x === '%%') return '%';
13208 if (i
>= len) return x;
13210 case '%s': return String(args[i++]);
13211 case '%d': return Number(args[i++]);
13214 return JSON.stringify(args[i++]);
13216 return '[Circular]';
13222 for (var x = args[i]; i < len; x = args[++i]) {
13223 if (isNull(x) || !isObject(x)) {
13226 str += ' ' + inspect(x);
13233 // Mark that a method should not be used.
13234 // Returns a modified function which warns once by default.
13235 // If --no-deprecation is set, then it is a no-op.
13236 exports.deprecate = function(fn, msg) {
13237 // Allow for deprecating things in the process of starting up.
13238 if (isUndefined(global.process)) {
13239 return function() {
13240 return exports.deprecate(fn, msg).apply(this, arguments);
13244 if (process.noDeprecation === true) {
13248 var warned = false;
13249 function deprecated() {
13251 if (process.throwDeprecation) {
13252 throw new Error(msg);
13253 } else if (process.traceDeprecation) {
13254 console.trace(msg);
13256 console.error(msg);
13260 return fn.apply(this, arguments);
13269 exports.debuglog = function(set) {
13270 if (isUndefined(debugEnviron))
13271 debugEnviron = process.env.NODE_DEBUG || '';
13272 set = set.toUpperCase();
13273 if (!debugs[set]) {
13274 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
13275 var pid = process.pid;
13276 debugs[set] = function() {
13277 var msg = exports.format.apply(exports, arguments);
13278 console.error('%s %d: %s', set, pid, msg);
13281 debugs[set] = function() {};
13284 return debugs[set];
13289 * Echos the value of a value. Trys to print the value out
13290 * in the best way possible given the different types.
13292 * @param {Object} obj The object to print out.
13293 * @param {Object} opts Optional options object that alters the output.
13295 /* legacy: obj, showHidden, depth, colors*/
13296 function inspect(obj, opts) {
13300 stylize: stylizeNoColor
13303 if (arguments.length
>=
3) ctx.depth = arguments[
2];
13304 if (arguments.length
>=
4) ctx.colors = arguments[
3];
13305 if (isBoolean(opts)) {
13307 ctx.showHidden = opts;
13309 // got an "options" object
13310 exports._extend(ctx, opts);
13312 // set default options
13313 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
13314 if (isUndefined(ctx.depth)) ctx.depth =
2;
13315 if (isUndefined(ctx.colors)) ctx.colors = false;
13316 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
13317 if (ctx.colors) ctx.stylize = stylizeWithColor;
13318 return formatValue(ctx, obj, ctx.depth);
13320 exports.inspect = inspect;
13323 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
13326 'italic' : [
3,
23],
13327 'underline' : [
4,
24],
13328 'inverse' : [
7,
27],
13329 'white' : [
37,
39],
13331 'black' : [
30,
39],
13334 'green' : [
32,
39],
13335 'magenta' : [
35,
39],
13337 'yellow' : [
33,
39]
13340 // Don't use 'blue' not visible on cmd.exe
13343 'number': 'yellow',
13344 'boolean': 'yellow',
13345 'undefined': 'grey',
13349 // "name": intentionally not styling
13354 function stylizeWithColor(str, styleType) {
13355 var style = inspect.styles[styleType];
13358 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
13359 '\u001b[' + inspect.colors[style][
1] + 'm';
13366 function stylizeNoColor(str, styleType) {
13371 function arrayToHash(array) {
13374 array.forEach(function(val, idx) {
13382 function formatValue(ctx, value, recurseTimes) {
13383 // Provide a hook for user-specified inspect functions.
13384 // Check that value is an object with an inspect function on it
13385 if (ctx.customInspect &&
13387 isFunction(value.inspect) &&
13388 // Filter out the util module, it's inspect function is special
13389 value.inspect !== exports.inspect &&
13390 // Also filter out any prototype objects using the circular check.
13391 !(value.constructor && value.constructor.prototype === value)) {
13392 var ret = value.inspect(recurseTimes, ctx);
13393 if (!isString(ret)) {
13394 ret = formatValue(ctx, ret, recurseTimes);
13399 // Primitive types cannot have properties
13400 var primitive = formatPrimitive(ctx, value);
13405 // Look up the keys of the object.
13406 var keys = Object.keys(value);
13407 var visibleKeys = arrayToHash(keys);
13409 if (ctx.showHidden) {
13410 keys = Object.getOwnPropertyNames(value);
13413 // IE doesn't make error fields non-enumerable
13414 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
13416 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
13417 return formatError(value);
13420 // Some type of object without properties can be shortcutted.
13421 if (keys.length ===
0) {
13422 if (isFunction(value)) {
13423 var name = value.name ? ': ' + value.name : '';
13424 return ctx.stylize('[Function' + name + ']', 'special');
13426 if (isRegExp(value)) {
13427 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13429 if (isDate(value)) {
13430 return ctx.stylize(Date.prototype.toString.call(value), 'date');
13432 if (isError(value)) {
13433 return formatError(value);
13437 var base = '', array = false, braces = ['{', '}'];
13439 // Make Array say that they are Array
13440 if (isArray(value)) {
13442 braces = ['[', ']'];
13445 // Make functions say that they are functions
13446 if (isFunction(value)) {
13447 var n = value.name ? ': ' + value.name : '';
13448 base = ' [Function' + n + ']';
13451 // Make RegExps say that they are RegExps
13452 if (isRegExp(value)) {
13453 base = ' ' + RegExp.prototype.toString.call(value);
13456 // Make dates with properties first say the date
13457 if (isDate(value)) {
13458 base = ' ' + Date.prototype.toUTCString.call(value);
13461 // Make error with message first say the error
13462 if (isError(value)) {
13463 base = ' ' + formatError(value);
13466 if (keys.length ===
0 && (!array || value.length ==
0)) {
13467 return braces[
0] + base + braces[
1];
13470 if (recurseTimes <
0) {
13471 if (isRegExp(value)) {
13472 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13474 return ctx.stylize('[Object]', 'special');
13478 ctx.seen.push(value);
13482 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
13484 output = keys.map(function(key) {
13485 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
13491 return reduceToSingleString(output, base, braces);
13495 function formatPrimitive(ctx, value) {
13496 if (isUndefined(value))
13497 return ctx.stylize('undefined', 'undefined');
13498 if (isString(value)) {
13499 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
13500 .replace(/'/g, "\\'")
13501 .replace(/\\"/g, '"') + '\'';
13502 return ctx.stylize(simple, 'string');
13504 if (isNumber(value))
13505 return ctx.stylize('' + value, 'number');
13506 if (isBoolean(value))
13507 return ctx.stylize('' + value, 'boolean');
13508 // For some reason typeof null is "object", so special case here.
13510 return ctx.stylize('null', 'null');
13514 function formatError(value) {
13515 return '[' + Error.prototype.toString.call(value) + ']';
13519 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
13521 for (var i =
0, l = value.length; i < l; ++i) {
13522 if (hasOwnProperty(value, String(i))) {
13523 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
13529 keys.forEach(function(key) {
13530 if (!key.match(/^\d+$/)) {
13531 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
13539 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
13540 var name, str, desc;
13541 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
13544 str = ctx.stylize('[Getter/Setter]', 'special');
13546 str = ctx.stylize('[Getter]', 'special');
13550 str = ctx.stylize('[Setter]', 'special');
13553 if (!hasOwnProperty(visibleKeys, key)) {
13554 name = '[' + key + ']';
13557 if (ctx.seen.indexOf(desc.value) <
0) {
13558 if (isNull(recurseTimes)) {
13559 str = formatValue(ctx, desc.value, null);
13561 str = formatValue(ctx, desc.value, recurseTimes -
1);
13563 if (str.indexOf('\n')
> -
1) {
13565 str = str.split('\n').map(function(line) {
13567 }).join('\n').substr(
2);
13569 str = '\n' + str.split('\n').map(function(line) {
13575 str = ctx.stylize('[Circular]', 'special');
13578 if (isUndefined(name)) {
13579 if (array && key.match(/^\d+$/)) {
13582 name = JSON.stringify('' + key);
13583 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
13584 name = name.substr(
1, name.length -
2);
13585 name = ctx.stylize(name, 'name');
13587 name = name.replace(/'/g, "\\'")
13588 .replace(/\\"/g, '"')
13589 .replace(/(^"|"$)/g, "'");
13590 name = ctx.stylize(name, 'string');
13594 return name + ': ' + str;
13598 function reduceToSingleString(output, base, braces) {
13599 var numLinesEst =
0;
13600 var length = output.reduce(function(prev, cur) {
13602 if (cur.indexOf('\n')
>=
0) numLinesEst++;
13603 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
13608 (base === '' ? '' : base + '\n ') +
13610 output.join(',\n ') +
13615 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
13619 // NOTE: These type checking functions intentionally don't use `instanceof`
13620 // because it is fragile and can be easily faked with `Object.create()`.
13621 function isArray(ar) {
13622 return Array.isArray(ar);
13624 exports.isArray = isArray;
13626 function isBoolean(arg) {
13627 return typeof arg === 'boolean';
13629 exports.isBoolean = isBoolean;
13631 function isNull(arg) {
13632 return arg === null;
13634 exports.isNull = isNull;
13636 function isNullOrUndefined(arg) {
13637 return arg == null;
13639 exports.isNullOrUndefined = isNullOrUndefined;
13641 function isNumber(arg) {
13642 return typeof arg === 'number';
13644 exports.isNumber = isNumber;
13646 function isString(arg) {
13647 return typeof arg === 'string';
13649 exports.isString = isString;
13651 function isSymbol(arg) {
13652 return typeof arg === 'symbol';
13654 exports.isSymbol = isSymbol;
13656 function isUndefined(arg) {
13657 return arg === void
0;
13659 exports.isUndefined = isUndefined;
13661 function isRegExp(re) {
13662 return isObject(re) && objectToString(re) === '[object RegExp]';
13664 exports.isRegExp = isRegExp;
13666 function isObject(arg) {
13667 return typeof arg === 'object' && arg !== null;
13669 exports.isObject = isObject;
13671 function isDate(d) {
13672 return isObject(d) && objectToString(d) === '[object Date]';
13674 exports.isDate = isDate;
13676 function isError(e) {
13677 return isObject(e) &&
13678 (objectToString(e) === '[object Error]' || e instanceof Error);
13680 exports.isError = isError;
13682 function isFunction(arg) {
13683 return typeof arg === 'function';
13685 exports.isFunction = isFunction;
13687 function isPrimitive(arg) {
13688 return arg === null ||
13689 typeof arg === 'boolean' ||
13690 typeof arg === 'number' ||
13691 typeof arg === 'string' ||
13692 typeof arg === 'symbol' || // ES6 symbol
13693 typeof arg === 'undefined';
13695 exports.isPrimitive = isPrimitive;
13697 exports.isBuffer = require('./support/isBuffer');
13699 function objectToString(o) {
13700 return Object.prototype.toString.call(o);
13705 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
13709 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
13710 'Oct', 'Nov', 'Dec'];
13713 function timestamp() {
13714 var d = new Date();
13715 var time = [pad(d.getHours()),
13716 pad(d.getMinutes()),
13717 pad(d.getSeconds())].join(':');
13718 return [d.getDate(), months[d.getMonth()], time].join(' ');
13722 // log is just a thin wrapper to console.log that prepends a timestamp
13723 exports.log = function() {
13724 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
13729 * Inherit the prototype methods from one constructor into another.
13731 * The Function.prototype.inherits from lang.js rewritten as a standalone
13732 * function (not on Function.prototype). NOTE: If this file is to be loaded
13733 * during bootstrapping this function needs to be rewritten using some native
13734 * functions as prototype setup using normal JavaScript does not work as
13735 * expected during bootstrapping (see mirror.js in r114903).
13737 * @param {function} ctor Constructor function which needs to inherit the
13739 * @param {function} superCtor Constructor function to inherit prototype from.
13741 exports.inherits = require('inherits');
13743 exports._extend = function(origin, add) {
13744 // Don't do anything if add isn't an object
13745 if (!add || !isObject(add)) return origin;
13747 var keys = Object.keys(add);
13748 var i = keys.length;
13750 origin[keys[i]] = add[keys[i]];
13755 function hasOwnProperty(obj, prop) {
13756 return Object.prototype.hasOwnProperty.call(obj, prop);
13759 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
13760 },{
"./support/isBuffer":
31,
"_process":
12,
"inherits":
30}],
33:[function(require,module,exports){
13762 base58: require('bs58'),
13763 bitcoin: require('bitcoinjs-lib'),
13764 ecurve: require('ecurve'),
13765 BigInteger: require('bigi')
13768 },{
"bigi":
37,
"bitcoinjs-lib":
50,
"bs58":
79,
"ecurve":
89}],
34:[function(require,module,exports){
13770 // Forked from https://github.com/cryptocoinjs/bs58
13771 // Originally written by Mike Hearn for BitcoinJ
13772 // Copyright (c)
2011 Google Inc
13773 // Ported to JavaScript by Stefan Thomas
13774 // Merged Buffer refactorings from base58-native by Stephen Pair
13775 // Copyright (c)
2013 BitPay Inc
13777 var Buffer = require('safe-buffer').Buffer
13779 module.exports = function base (ALPHABET) {
13780 var ALPHABET_MAP = {}
13781 var BASE = ALPHABET.length
13782 var LEADER = ALPHABET.charAt(
0)
13784 // pre-compute lookup table
13785 for (var z =
0; z < ALPHABET.length; z++) {
13786 var x = ALPHABET.charAt(z)
13788 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
13789 ALPHABET_MAP[x] = z
13792 function encode (source) {
13793 if (source.length ===
0) return ''
13796 for (var i =
0; i < source.length; ++i) {
13797 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
13798 carry += digits[j] <<
8
13799 digits[j] = carry % BASE
13800 carry = (carry / BASE) |
0
13803 while (carry
> 0) {
13804 digits.push(carry % BASE)
13805 carry = (carry / BASE) |
0
13811 // deal with leading zeros
13812 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
13813 // convert digits to a string
13814 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
13819 function decodeUnsafe (string) {
13820 if (string.length ===
0) return Buffer.allocUnsafe(
0)
13823 for (var i =
0; i < string.length; i++) {
13824 var value = ALPHABET_MAP[string[i]]
13825 if (value === undefined) return
13827 for (var j =
0, carry = value; j < bytes.length; ++j) {
13828 carry += bytes[j] * BASE
13829 bytes[j] = carry &
0xff
13833 while (carry
> 0) {
13834 bytes.push(carry &
0xff)
13839 // deal with leading zeros
13840 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
13844 return Buffer.from(bytes.reverse())
13847 function decode (string) {
13848 var buffer = decodeUnsafe(string)
13849 if (buffer) return buffer
13851 throw new Error('Non-base' + BASE + ' character')
13856 decodeUnsafe: decodeUnsafe,
13861 },{"safe-buffer":
98}],
35:[function(require,module,exports){
13862 // (public) Constructor
13863 function BigInteger(a, b, c) {
13864 if (!(this instanceof BigInteger))
13865 return new BigInteger(a, b, c)
13868 if ("number" == typeof a) this.fromNumber(a, b, c)
13869 else if (b == null && "string" != typeof a) this.fromString(a,
256)
13870 else this.fromString(a, b)
13874 var proto = BigInteger.prototype
13876 // duck-typed isBigInteger
13877 proto.__bigi = require('../package.json').version
13878 BigInteger.isBigInteger = function (obj, check_ver) {
13879 return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)
13885 // am: Compute w_j += (x*this_i), propagate carries,
13886 // c is initial carry, returns final carry.
13887 // c <
3*dvalue, x <
2*dvalue, this_i < dvalue
13888 // We need to select the fastest one that works in this environment.
13890 // am1: use a single mult and divide to get the high bits,
13891 // max digit bits should be
26 because
13892 // max internal value =
2*dvalue^
2-
2*dvalue (<
2^
53)
13893 function am1(i, x, w, j, c, n) {
13895 var v = x * this[i++] + w[j] + c
13896 c = Math.floor(v /
0x4000000)
13897 w[j++] = v &
0x3ffffff
13901 // am2 avoids a big mult-and-extract completely.
13902 // Max digit bits should be <=
30 because we do bitwise ops
13903 // on values up to
2*hdvalue^
2-hdvalue-
1 (<
2^
31)
13904 function am2(i, x, w, j, c, n) {
13905 var xl = x &
0x7fff,
13908 var l = this[i] &
0x7fff
13909 var h = this[i++]
>> 15
13910 var m = xh * l + h * xl
13911 l = xl * l + ((m &
0x7fff) <<
15) + w[j] + (c &
0x3fffffff)
13912 c = (l
>>> 30) + (m
>>> 15) + xh * h + (c
>>> 30)
13913 w[j++] = l &
0x3fffffff
13917 // Alternately, set max digit bits to
28 since some
13918 // browsers slow down when dealing with
32-bit numbers.
13919 function am3(i, x, w, j, c, n) {
13920 var xl = x &
0x3fff,
13923 var l = this[i] &
0x3fff
13924 var h = this[i++]
>> 14
13925 var m = xh * l + h * xl
13926 l = xl * l + ((m &
0x3fff) <<
14) + w[j] + c
13927 c = (l
>> 28) + (m
>> 14) + xh * h
13928 w[j++] = l &
0xfffffff
13934 BigInteger.prototype.am = am1
13937 BigInteger.prototype.DB = dbits
13938 BigInteger.prototype.DM = ((
1 << dbits) -
1)
13939 var DV = BigInteger.prototype.DV = (
1 << dbits)
13942 BigInteger.prototype.FV = Math.pow(
2, BI_FP)
13943 BigInteger.prototype.F1 = BI_FP - dbits
13944 BigInteger.prototype.F2 =
2 * dbits - BI_FP
13946 // Digit conversions
13947 var BI_RM =
"0123456789abcdefghijklmnopqrstuvwxyz"
13948 var BI_RC = new Array()
13950 rr =
"0".charCodeAt(
0)
13951 for (vv =
0; vv <=
9; ++vv) BI_RC[rr++] = vv
13952 rr =
"a".charCodeAt(
0)
13953 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
13954 rr =
"A".charCodeAt(
0)
13955 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
13957 function int2char(n) {
13958 return BI_RM.charAt(n)
13961 function intAt(s, i) {
13962 var c = BI_RC[s.charCodeAt(i)]
13963 return (c == null) ? -
1 : c
13966 // (protected) copy this to r
13967 function bnpCopyTo(r) {
13968 for (var i = this.t -
1; i
>=
0; --i) r[i] = this[i]
13973 // (protected) set from integer value x, -DV <= x < DV
13974 function bnpFromInt(x) {
13976 this.s = (x <
0) ? -
1 :
0
13977 if (x
> 0) this[
0] = x
13978 else if (x < -
1) this[
0] = x + DV
13982 // return bigint initialized to value
13984 var r = new BigInteger()
13989 // (protected) set from string and radix
13990 function bnpFromString(s, b) {
13995 else if (b ==
8) k =
3
13996 else if (b ==
256) k =
8; // byte array
13997 else if (b ==
2) k =
1
13998 else if (b ==
32) k =
5
13999 else if (b ==
4) k =
2
14001 self.fromRadix(s, b)
14010 var x = (k ==
8) ? s[i] &
0xff : intAt(s, i)
14012 if (s.charAt(i) == "-") mi = true
14018 else if (sh + k
> self.DB) {
14019 self[self.t -
1] |= (x & ((
1 << (self.DB - sh)) -
1)) << sh
14020 self[self.t++] = (x
>> (self.DB - sh))
14022 self[self.t -
1] |= x << sh
14024 if (sh
>= self.DB) sh -= self.DB
14026 if (k ==
8 && (s[
0] &
0x80) !=
0) {
14028 if (sh
> 0) self[self.t -
1] |= ((
1 << (self.DB - sh)) -
1) << sh
14031 if (mi) BigInteger.ZERO.subTo(self, self)
14034 // (protected) clamp off excess high words
14035 function bnpClamp() {
14036 var c = this.s & this.DM
14037 while (this.t
> 0 && this[this.t -
1] == c)--this.t
14040 // (public) return string representation in given radix
14041 function bnToString(b) {
14043 if (self.s <
0) return
"-" + self.negate()
14047 else if (b ==
8) k =
3
14048 else if (b ==
2) k =
1
14049 else if (b ==
32) k =
5
14050 else if (b ==
4) k =
2
14051 else return self.toRadix(b)
14052 var km = (
1 << k) -
1,
14056 var p = self.DB - (i * self.DB) % k
14058 if (p < self.DB && (d = self[i]
>> p)
> 0) {
14064 d = (self[i] & ((
1 << p) -
1)) << (k - p)
14065 d |= self[--i]
>> (p += self.DB - k)
14067 d = (self[i]
>> (p -= k)) & km
14073 if (d
> 0) m = true
14074 if (m) r += int2char(d)
14081 function bnNegate() {
14082 var r = new BigInteger()
14083 BigInteger.ZERO.subTo(this, r)
14089 return (this.s <
0) ? this.negate() : this
14092 // (public) return + if this
> a, - if this < a,
0 if equal
14093 function bnCompareTo(a) {
14094 var r = this.s - a.s
14095 if (r !=
0) return r
14098 if (r !=
0) return (this.s <
0) ? -r : r
14100 if ((r = this[i] - a[i]) !=
0) return r
14104 // returns bit length of the integer x
14105 function nbits(x) {
14108 if ((t = x
>>> 16) !=
0) {
14112 if ((t = x
>> 8) !=
0) {
14116 if ((t = x
>> 4) !=
0) {
14120 if ((t = x
>> 2) !=
0) {
14124 if ((t = x
>> 1) !=
0) {
14131 // (public) return the number of bits in
"this"
14132 function bnBitLength() {
14133 if (this.t <=
0) return
0
14134 return this.DB * (this.t -
1) + nbits(this[this.t -
1] ^ (this.s & this.DM))
14137 // (public) return the number of bytes in
"this"
14138 function bnByteLength() {
14139 return this.bitLength()
>> 3
14142 // (protected) r = this << n*DB
14143 function bnpDLShiftTo(n, r) {
14145 for (i = this.t -
1; i
>=
0; --i) r[i + n] = this[i]
14146 for (i = n -
1; i
>=
0; --i) r[i] =
0
14151 // (protected) r = this
>> n*DB
14152 function bnpDRShiftTo(n, r) {
14153 for (var i = n; i < this.t; ++i) r[i - n] = this[i]
14154 r.t = Math.max(this.t - n,
0)
14158 // (protected) r = this << n
14159 function bnpLShiftTo(n, r) {
14161 var bs = n % self.DB
14162 var cbs = self.DB - bs
14163 var bm = (
1 << cbs) -
1
14164 var ds = Math.floor(n / self.DB),
14165 c = (self.s << bs) & self.DM,
14167 for (i = self.t -
1; i
>=
0; --i) {
14168 r[i + ds +
1] = (self[i]
>> cbs) | c
14169 c = (self[i] & bm) << bs
14171 for (i = ds -
1; i
>=
0; --i) r[i] =
0
14173 r.t = self.t + ds +
1
14178 // (protected) r = this
>> n
14179 function bnpRShiftTo(n, r) {
14182 var ds = Math.floor(n / self.DB)
14183 if (ds
>= self.t) {
14187 var bs = n % self.DB
14188 var cbs = self.DB - bs
14189 var bm = (
1 << bs) -
1
14190 r[
0] = self[ds]
>> bs
14191 for (var i = ds +
1; i < self.t; ++i) {
14192 r[i - ds -
1] |= (self[i] & bm) << cbs
14193 r[i - ds] = self[i]
>> bs
14195 if (bs
> 0) r[self.t - ds -
1] |= (self.s & bm) << cbs
14200 // (protected) r = this - a
14201 function bnpSubTo(a, r) {
14205 m = Math.min(a.t, self.t)
14207 c += self[i] - a[i]
14208 r[i++] = c & self.DM
14211 if (a.t < self.t) {
14213 while (i < self.t) {
14215 r[i++] = c & self.DM
14223 r[i++] = c & self.DM
14228 r.s = (c <
0) ? -
1 :
0
14229 if (c < -
1) r[i++] = self.DV + c
14230 else if (c
> 0) r[i++] = c
14235 // (protected) r = this * a, r != this,a (HAC
14.12)
14236 //
"this" should be the larger one if appropriate.
14237 function bnpMultiplyTo(a, r) {
14238 var x = this.abs(),
14242 while (--i
>=
0) r[i] =
0
14243 for (i =
0; i < y.t; ++i) r[i + x.t] = x.am(
0, y[i], r, i,
0, x.t)
14246 if (this.s != a.s) BigInteger.ZERO.subTo(r, r)
14249 // (protected) r = this^
2, r != this (HAC
14.16)
14250 function bnpSquareTo(r) {
14252 var i = r.t =
2 * x.t
14253 while (--i
>=
0) r[i] =
0
14254 for (i =
0; i < x.t -
1; ++i) {
14255 var c = x.am(i, x[i], r,
2 * i,
0,
1)
14256 if ((r[i + x.t] += x.am(i +
1,
2 * x[i], r,
2 * i +
1, c, x.t - i -
1))
>= x.DV) {
14261 if (r.t
> 0) r[r.t -
1] += x.am(i, x[i], r,
2 * i,
0,
1)
14266 // (protected) divide this by m, quotient and remainder to q, r (HAC
14.20)
14267 // r != q, this != m. q or r may be null.
14268 function bnpDivRemTo(m, q, r) {
14271 if (pm.t <=
0) return
14272 var pt = self.abs()
14274 if (q != null) q.fromInt(
0)
14275 if (r != null) self.copyTo(r)
14278 if (r == null) r = new BigInteger()
14279 var y = new BigInteger(),
14282 var nsh = self.DB - nbits(pm[pm.t -
1]); // normalize modulus
14284 pm.lShiftTo(nsh, y)
14285 pt.lShiftTo(nsh, r)
14292 if (y0 ==
0) return
14293 var yt = y0 * (
1 << self.F1) + ((ys
> 1) ? y[ys -
2]
>> self.F2 :
0)
14294 var d1 = self.FV / yt,
14295 d2 = (
1 << self.F1) / yt,
14299 t = (q == null) ? new BigInteger() : q
14301 if (r.compareTo(t)
>=
0) {
14305 BigInteger.ONE.dlShiftTo(ys, t)
14306 t.subTo(y, y); // "negative" y so we can replace sub with am later
14307 while (y.t < ys) y[y.t++] =
0
14309 // Estimate quotient digit
14310 var qd = (r[--i] == y0) ? self.DM : Math.floor(r[i] * d1 + (r[i -
1] + e) * d2)
14311 if ((r[i] += y.am(
0, qd, r, j,
0, ys)) < qd) { // Try it out
14314 while (r[i] < --qd) r.subTo(t, r)
14319 if (ts != ms) BigInteger.ZERO.subTo(q, q)
14323 if (nsh
> 0) r.rShiftTo(nsh, r); // Denormalize remainder
14324 if (ts <
0) BigInteger.ZERO.subTo(r, r)
14327 // (public) this mod a
14328 function bnMod(a) {
14329 var r = new BigInteger()
14331 .divRemTo(a, null, r)
14332 if (this.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) a.subTo(r, r)
14336 // Modular reduction using
"classic" algorithm
14337 function Classic(m) {
14341 function cConvert(x) {
14342 if (x.s <
0 || x.compareTo(this.m)
>=
0) return x.mod(this.m)
14346 function cRevert(x) {
14350 function cReduce(x) {
14351 x.divRemTo(this.m, null, x)
14354 function cMulTo(x, y, r) {
14359 function cSqrTo(x, r) {
14364 Classic.prototype.convert = cConvert
14365 Classic.prototype.revert = cRevert
14366 Classic.prototype.reduce = cReduce
14367 Classic.prototype.mulTo = cMulTo
14368 Classic.prototype.sqrTo = cSqrTo
14370 // (protected) return "-
1/this %
2^DB"; useful for Mont. reduction
14374 // xy(
2-xy) = (
1+km)(
1-km)
14375 // x[y(
2-xy)] =
1-k^
2m^
2
14376 // x[y(
2-xy)] ==
1 (mod m^
2)
14377 // if y is
1/x mod m, then y(
2-xy) is
1/x mod m^
2
14378 // should reduce x and y(
2-xy) by m^
2 at each step to keep size bounded.
14379 // JS multiply "overflows" differently from C/C++, so care is needed here.
14380 function bnpInvDigit() {
14381 if (this.t <
1) return
0
14383 if ((x &
1) ==
0) return
0
14384 var y = x &
3; // y ==
1/x mod
2^
2
14385 y = (y * (
2 - (x &
0xf) * y)) &
0xf; // y ==
1/x mod
2^
4
14386 y = (y * (
2 - (x &
0xff) * y)) &
0xff; // y ==
1/x mod
2^
8
14387 y = (y * (
2 - (((x &
0xffff) * y) &
0xffff))) &
0xffff; // y ==
1/x mod
2^
16
14388 // last step - calculate inverse mod DV directly
14389 // assumes
16 < DB <=
32 and assumes ability to handle
48-bit ints
14390 y = (y * (
2 - x * y % this.DV)) % this.DV; // y ==
1/x mod
2^dbits
14391 // we really want the negative inverse, and -DV < y < DV
14392 return (y
> 0) ? this.DV - y : -y
14395 // Montgomery reduction
14396 function Montgomery(m) {
14398 this.mp = m.invDigit()
14399 this.mpl = this.mp &
0x7fff
14400 this.mph = this.mp
>> 15
14401 this.um = (
1 << (m.DB -
15)) -
1
14406 function montConvert(x) {
14407 var r = new BigInteger()
14409 .dlShiftTo(this.m.t, r)
14410 r.divRemTo(this.m, null, r)
14411 if (x.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) this.m.subTo(r, r)
14416 function montRevert(x) {
14417 var r = new BigInteger()
14423 // x = x/R mod m (HAC
14.32)
14424 function montReduce(x) {
14425 while (x.t <= this.mt2) // pad x so am has enough room later
14427 for (var i =
0; i < this.m.t; ++i) {
14428 // faster way of calculating u0 = x[i]*mp mod DV
14429 var j = x[i] &
0x7fff
14430 var u0 = (j * this.mpl + (((j * this.mph + (x[i]
>> 15) * this.mpl) & this.um) <<
15)) & x.DM
14431 // use am to combine the multiply-shift-add into one call
14433 x[j] += this.m.am(
0, u0, x, i,
0, this.m.t)
14435 while (x[j]
>= x.DV) {
14441 x.drShiftTo(this.m.t, x)
14442 if (x.compareTo(this.m)
>=
0) x.subTo(this.m, x)
14445 // r = "x^
2/R mod m"; x != r
14446 function montSqrTo(x, r) {
14451 // r = "xy/R mod m"; x,y != r
14452 function montMulTo(x, y, r) {
14457 Montgomery.prototype.convert = montConvert
14458 Montgomery.prototype.revert = montRevert
14459 Montgomery.prototype.reduce = montReduce
14460 Montgomery.prototype.mulTo = montMulTo
14461 Montgomery.prototype.sqrTo = montSqrTo
14463 // (protected) true iff this is even
14464 function bnpIsEven() {
14465 return ((this.t
> 0) ? (this[
0] &
1) : this.s) ==
0
14468 // (protected) this^e, e <
2^
32, doing sqr and mul with
"r" (HAC
14.79)
14469 function bnpExp(e, z) {
14470 if (e
> 0xffffffff || e <
1) return BigInteger.ONE
14471 var r = new BigInteger(),
14472 r2 = new BigInteger(),
14473 g = z.convert(this),
14478 if ((e & (
1 << i))
> 0) z.mulTo(r2, g, r)
14488 // (public) this^e % m,
0 <= e <
2^
32
14489 function bnModPowInt(e, m) {
14491 if (e <
256 || m.isEven()) z = new Classic(m)
14492 else z = new Montgomery(m)
14493 return this.exp(e, z)
14497 proto.copyTo = bnpCopyTo
14498 proto.fromInt = bnpFromInt
14499 proto.fromString = bnpFromString
14500 proto.clamp = bnpClamp
14501 proto.dlShiftTo = bnpDLShiftTo
14502 proto.drShiftTo = bnpDRShiftTo
14503 proto.lShiftTo = bnpLShiftTo
14504 proto.rShiftTo = bnpRShiftTo
14505 proto.subTo = bnpSubTo
14506 proto.multiplyTo = bnpMultiplyTo
14507 proto.squareTo = bnpSquareTo
14508 proto.divRemTo = bnpDivRemTo
14509 proto.invDigit = bnpInvDigit
14510 proto.isEven = bnpIsEven
14514 proto.toString = bnToString
14515 proto.negate = bnNegate
14517 proto.compareTo = bnCompareTo
14518 proto.bitLength = bnBitLength
14519 proto.byteLength = bnByteLength
14521 proto.modPowInt = bnModPowInt
14524 function bnClone() {
14525 var r = new BigInteger()
14530 // (public) return value as integer
14531 function bnIntValue() {
14533 if (this.t ==
1) return this[
0] - this.DV
14534 else if (this.t ==
0) return -
1
14535 } else if (this.t ==
1) return this[
0]
14536 else if (this.t ==
0) return
0
14537 // assumes
16 < DB <
32
14538 return ((this[
1] & ((
1 << (
32 - this.DB)) -
1)) << this.DB) | this[
0]
14541 // (public) return value as byte
14542 function bnByteValue() {
14543 return (this.t ==
0) ? this.s : (this[
0] <<
24)
>> 24
14546 // (public) return value as short (assumes DB
>=
16)
14547 function bnShortValue() {
14548 return (this.t ==
0) ? this.s : (this[
0] <<
16)
>> 16
14551 // (protected) return x s.t. r^x < DV
14552 function bnpChunkSize(r) {
14553 return Math.floor(Math.LN2 * this.DB / Math.log(r))
14556 // (public)
0 if this ==
0,
1 if this
> 0
14557 function bnSigNum() {
14558 if (this.s <
0) return -
1
14559 else if (this.t <=
0 || (this.t ==
1 && this[
0] <=
0)) return
0
14563 // (protected) convert to radix string
14564 function bnpToRadix(b) {
14565 if (b == null) b =
10
14566 if (this.signum() ==
0 || b <
2 || b
> 36) return
"0"
14567 var cs = this.chunkSize(b)
14568 var a = Math.pow(b, cs)
14570 y = new BigInteger(),
14571 z = new BigInteger(),
14573 this.divRemTo(d, y, z)
14574 while (y.signum()
> 0) {
14575 r = (a + z.intValue())
14578 y.divRemTo(d, y, z)
14580 return z.intValue()
14584 // (protected) convert from radix string
14585 function bnpFromRadix(s, b) {
14588 if (b == null) b =
10
14589 var cs = self.chunkSize(b)
14590 var d = Math.pow(b, cs),
14594 for (var i =
0; i < s.length; ++i) {
14595 var x = intAt(s, i)
14597 if (s.charAt(i) ==
"-" && self.signum() ==
0) mi = true
14603 self.dAddOffset(w,
0)
14609 self.dMultiply(Math.pow(b, j))
14610 self.dAddOffset(w,
0)
14612 if (mi) BigInteger.ZERO.subTo(self, self)
14615 // (protected) alternate constructor
14616 function bnpFromNumber(a, b, c) {
14618 if (
"number" == typeof b) {
14619 // new BigInteger(int,int,RNG)
14620 if (a <
2) self.fromInt(
1)
14622 self.fromNumber(a, c)
14623 if (!self.testBit(a -
1)) // force MSB set
14624 self.bitwiseTo(BigInteger.ONE.shiftLeft(a -
1), op_or, self)
14625 if (self.isEven()) self.dAddOffset(
1,
0); // force odd
14626 while (!self.isProbablePrime(b)) {
14627 self.dAddOffset(
2,
0)
14628 if (self.bitLength()
> a) self.subTo(BigInteger.ONE.shiftLeft(a -
1), self)
14632 // new BigInteger(int,RNG)
14633 var x = new Array(),
14635 x.length = (a
>> 3) +
1
14637 if (t
> 0) x[
0] &= ((
1 << t) -
1)
14639 self.fromString(x,
256)
14643 // (public) convert to bigendian byte array
14644 function bnToByteArray() {
14649 var p = self.DB - (i * self.DB) %
8,
14652 if (p < self.DB && (d = self[i]
>> p) != (self.s & self.DM)
>> p)
14653 r[k++] = d | (self.s << (self.DB - p))
14656 d = (self[i] & ((
1 << p) -
1)) << (
8 - p)
14657 d |= self[--i]
>> (p += self.DB -
8)
14659 d = (self[i]
>> (p -=
8)) &
0xff
14665 if ((d &
0x80) !=
0) d |= -
256
14666 if (k ===
0 && (self.s &
0x80) != (d &
0x80))++k
14667 if (k
> 0 || d != self.s) r[k++] = d
14673 function bnEquals(a) {
14674 return (this.compareTo(a) ==
0)
14677 function bnMin(a) {
14678 return (this.compareTo(a) <
0) ? this : a
14681 function bnMax(a) {
14682 return (this.compareTo(a)
> 0) ? this : a
14685 // (protected) r = this op a (bitwise)
14686 function bnpBitwiseTo(a, op, r) {
14688 var i, f, m = Math.min(a.t, self.t)
14689 for (i =
0; i < m; ++i) r[i] = op(self[i], a[i])
14690 if (a.t < self.t) {
14692 for (i = m; i < self.t; ++i) r[i] = op(self[i], f)
14695 f = self.s & self.DM
14696 for (i = m; i < a.t; ++i) r[i] = op(f, a[i])
14699 r.s = op(self.s, a.s)
14703 // (public) this & a
14704 function op_and(x, y) {
14708 function bnAnd(a) {
14709 var r = new BigInteger()
14710 this.bitwiseTo(a, op_and, r)
14714 // (public) this | a
14715 function op_or(x, y) {
14720 var r = new BigInteger()
14721 this.bitwiseTo(a, op_or, r)
14725 // (public) this ^ a
14726 function op_xor(x, y) {
14730 function bnXor(a) {
14731 var r = new BigInteger()
14732 this.bitwiseTo(a, op_xor, r)
14736 // (public) this & ~a
14737 function op_andnot(x, y) {
14741 function bnAndNot(a) {
14742 var r = new BigInteger()
14743 this.bitwiseTo(a, op_andnot, r)
14749 var r = new BigInteger()
14750 for (var i =
0; i < this.t; ++i) r[i] = this.DM & ~this[i]
14756 // (public) this << n
14757 function bnShiftLeft(n) {
14758 var r = new BigInteger()
14759 if (n <
0) this.rShiftTo(-n, r)
14760 else this.lShiftTo(n, r)
14764 // (public) this
>> n
14765 function bnShiftRight(n) {
14766 var r = new BigInteger()
14767 if (n <
0) this.lShiftTo(-n, r)
14768 else this.rShiftTo(n, r)
14772 // return index of lowest
1-bit in x, x <
2^
31
14774 if (x ==
0) return -
1
14776 if ((x &
0xffff) ==
0) {
14780 if ((x &
0xff) ==
0) {
14784 if ((x &
0xf) ==
0) {
14788 if ((x &
3) ==
0) {
14792 if ((x &
1) ==
0)++r
14796 // (public) returns index of lowest
1-bit (or -
1 if none)
14797 function bnGetLowestSetBit() {
14798 for (var i =
0; i < this.t; ++i)
14799 if (this[i] !=
0) return i * this.DB + lbit(this[i])
14800 if (this.s <
0) return this.t * this.DB
14804 // return number of
1 bits in x
14814 // (public) return number of set bits
14815 function bnBitCount() {
14817 x = this.s & this.DM
14818 for (var i =
0; i < this.t; ++i) r += cbit(this[i] ^ x)
14822 // (public) true iff nth bit is set
14823 function bnTestBit(n) {
14824 var j = Math.floor(n / this.DB)
14825 if (j
>= this.t) return (this.s !=
0)
14826 return ((this[j] & (
1 << (n % this.DB))) !=
0)
14829 // (protected) this op (
1<
<n)
14830 function bnpChangeBit(n, op) {
14831 var r = BigInteger.ONE.shiftLeft(n)
14832 this.bitwiseTo(r, op, r)
14836 // (public) this | (
1<
<n)
14837 function bnSetBit(n) {
14838 return this.changeBit(n, op_or)
14841 // (public) this & ~(
1<
<n)
14842 function bnClearBit(n) {
14843 return this.changeBit(n, op_andnot)
14846 // (public) this ^ (
1<
<n)
14847 function bnFlipBit(n) {
14848 return this.changeBit(n, op_xor)
14851 // (protected) r = this + a
14852 function bnpAddTo(a, r) {
14857 m = Math.min(a.t, self.t)
14859 c += self[i] + a[i]
14860 r[i++] = c & self.DM
14863 if (a.t < self.t) {
14865 while (i < self.t) {
14867 r[i++] = c & self.DM
14875 r[i++] = c & self.DM
14880 r.s = (c <
0) ? -
1 :
0
14881 if (c
> 0) r[i++] = c
14882 else if (c < -
1) r[i++] = self.DV + c
14887 // (public) this + a
14888 function bnAdd(a) {
14889 var r = new BigInteger()
14894 // (public) this - a
14895 function bnSubtract(a) {
14896 var r = new BigInteger()
14901 // (public) this * a
14902 function bnMultiply(a) {
14903 var r = new BigInteger()
14904 this.multiplyTo(a, r)
14909 function bnSquare() {
14910 var r = new BigInteger()
14915 // (public) this / a
14916 function bnDivide(a) {
14917 var r = new BigInteger()
14918 this.divRemTo(a, r, null)
14922 // (public) this % a
14923 function bnRemainder(a) {
14924 var r = new BigInteger()
14925 this.divRemTo(a, null, r)
14929 // (public) [this/a,this%a]
14930 function bnDivideAndRemainder(a) {
14931 var q = new BigInteger(),
14932 r = new BigInteger()
14933 this.divRemTo(a, q, r)
14934 return new Array(q, r)
14937 // (protected) this *= n, this
>=
0,
1 < n < DV
14938 function bnpDMultiply(n) {
14939 this[this.t] = this.am(
0, n -
1, this,
0,
0, this.t)
14944 // (protected) this += n << w words, this
>=
0
14945 function bnpDAddOffset(n, w) {
14947 while (this.t <= w) this[this.t++] =
0
14949 while (this[w]
>= this.DV) {
14951 if (++w
>= this.t) this[this.t++] =
0
14956 // A "null" reducer
14957 function NullExp() {}
14963 function nMulTo(x, y, r) {
14967 function nSqrTo(x, r) {
14971 NullExp.prototype.convert = nNop
14972 NullExp.prototype.revert = nNop
14973 NullExp.prototype.mulTo = nMulTo
14974 NullExp.prototype.sqrTo = nSqrTo
14977 function bnPow(e) {
14978 return this.exp(e, new NullExp())
14981 // (protected) r = lower n words of "this * a", a.t <= n
14982 // "this" should be the larger one if appropriate.
14983 function bnpMultiplyLowerTo(a, n, r) {
14984 var i = Math.min(this.t + a.t, n)
14985 r.s =
0; // assumes a,this
>=
0
14987 while (i
> 0) r[--i] =
0
14989 for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(
0, a[i], r, i,
0, this.t)
14990 for (j = Math.min(a.t, n); i < j; ++i) this.am(
0, a[i], r, i,
0, n - i)
14994 // (protected) r =
"this * a" without lower n words, n
> 0
14995 //
"this" should be the larger one if appropriate.
14996 function bnpMultiplyUpperTo(a, n, r) {
14998 var i = r.t = this.t + a.t - n
14999 r.s =
0; // assumes a,this
>=
0
15000 while (--i
>=
0) r[i] =
0
15001 for (i = Math.max(n - this.t,
0); i < a.t; ++i)
15002 r[this.t + i - n] = this.am(n - i, a[i], r,
0,
0, this.t + i - n)
15007 // Barrett modular reduction
15008 function Barrett(m) {
15010 this.r2 = new BigInteger()
15011 this.q3 = new BigInteger()
15012 BigInteger.ONE.dlShiftTo(
2 * m.t, this.r2)
15013 this.mu = this.r2.divide(m)
15017 function barrettConvert(x) {
15018 if (x.s <
0 || x.t
> 2 * this.m.t) return x.mod(this.m)
15019 else if (x.compareTo(this.m) <
0) return x
15021 var r = new BigInteger()
15028 function barrettRevert(x) {
15032 // x = x mod m (HAC
14.42)
15033 function barrettReduce(x) {
15035 x.drShiftTo(self.m.t -
1, self.r2)
15036 if (x.t
> self.m.t +
1) {
15040 self.mu.multiplyUpperTo(self.r2, self.m.t +
1, self.q3)
15041 self.m.multiplyLowerTo(self.q3, self.m.t +
1, self.r2)
15042 while (x.compareTo(self.r2) <
0) x.dAddOffset(
1, self.m.t +
1)
15043 x.subTo(self.r2, x)
15044 while (x.compareTo(self.m)
>=
0) x.subTo(self.m, x)
15047 // r = x^
2 mod m; x != r
15048 function barrettSqrTo(x, r) {
15053 // r = x*y mod m; x,y != r
15054 function barrettMulTo(x, y, r) {
15059 Barrett.prototype.convert = barrettConvert
15060 Barrett.prototype.revert = barrettRevert
15061 Barrett.prototype.reduce = barrettReduce
15062 Barrett.prototype.mulTo = barrettMulTo
15063 Barrett.prototype.sqrTo = barrettSqrTo
15065 // (public) this^e % m (HAC
14.85)
15066 function bnModPow(e, m) {
15067 var i = e.bitLength(),
15070 if (i <=
0) return r
15071 else if (i <
18) k =
1
15072 else if (i <
48) k =
3
15073 else if (i <
144) k =
4
15074 else if (i <
768) k =
5
15078 else if (m.isEven())
15081 z = new Montgomery(m)
15084 var g = new Array(),
15088 g[
1] = z.convert(this)
15090 var g2 = new BigInteger()
15093 g[n] = new BigInteger()
15094 z.mulTo(g2, g[n -
2], g[n])
15101 r2 = new BigInteger(),
15103 i = nbits(e[j]) -
1
15105 if (i
>= k1) w = (e[j]
>> (i - k1)) & km
15107 w = (e[j] & ((
1 << (i +
1)) -
1)) << (k1 - i)
15108 if (j
> 0) w |= e[j -
1]
>> (this.DB + i - k1)
15112 while ((w &
1) ==
0) {
15116 if ((i -= n) <
0) {
15120 if (is1) { // ret ==
1, don't bother squaring or multiplying it
15129 if (n
> 0) z.sqrTo(r, r2)
15135 z.mulTo(r2, g[w], r)
15138 while (j
>=
0 && (e[j] & (
1 << i)) ==
0) {
15152 // (public) gcd(this,a) (HAC
14.54)
15153 function bnGCD(a) {
15154 var x = (this.s <
0) ? this.negate() : this.clone()
15155 var y = (a.s <
0) ? a.negate() : a.clone()
15156 if (x.compareTo(y) <
0) {
15161 var i = x.getLowestSetBit(),
15162 g = y.getLowestSetBit()
15163 if (g <
0) return x
15169 while (x.signum()
> 0) {
15170 if ((i = x.getLowestSetBit())
> 0) x.rShiftTo(i, x)
15171 if ((i = y.getLowestSetBit())
> 0) y.rShiftTo(i, y)
15172 if (x.compareTo(y)
>=
0) {
15180 if (g
> 0) y.lShiftTo(g, y)
15184 // (protected) this % n, n <
2^
26
15185 function bnpModInt(n) {
15186 if (n <=
0) return
0
15187 var d = this.DV % n,
15188 r = (this.s <
0) ? n -
1 :
0
15190 if (d ==
0) r = this[
0] % n
15192 for (var i = this.t -
1; i
>=
0; --i) r = (d * r + this[i]) % n
15196 // (public)
1/this % m (HAC
14.61)
15197 function bnModInverse(m) {
15198 var ac = m.isEven()
15199 if (this.signum() ===
0) throw new Error('division by zero')
15200 if ((this.isEven() && ac) || m.signum() ==
0) return BigInteger.ZERO
15207 while (u.signum() !=
0) {
15208 while (u.isEven()) {
15211 if (!a.isEven() || !b.isEven()) {
15216 } else if (!b.isEven()) b.subTo(m, b)
15219 while (v.isEven()) {
15222 if (!c.isEven() || !d.isEven()) {
15227 } else if (!d.isEven()) d.subTo(m, d)
15230 if (u.compareTo(v)
>=
0) {
15232 if (ac) a.subTo(c, a)
15236 if (ac) c.subTo(a, c)
15240 if (v.compareTo(BigInteger.ONE) !=
0) return BigInteger.ZERO
15241 while (d.compareTo(m)
>=
0) d.subTo(m, d)
15242 while (d.signum() <
0) d.addTo(m, d)
15247 2,
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47,
53,
59,
61,
67,
71,
15248 73,
79,
83,
89,
97,
101,
103,
107,
109,
113,
127,
131,
137,
139,
149,
151,
15249 157,
163,
167,
173,
179,
181,
191,
193,
197,
199,
211,
223,
227,
229,
233,
15250 239,
241,
251,
257,
263,
269,
271,
277,
281,
283,
293,
307,
311,
313,
317,
15251 331,
337,
347,
349,
353,
359,
367,
373,
379,
383,
389,
397,
401,
409,
419,
15252 421,
431,
433,
439,
443,
449,
457,
461,
463,
467,
479,
487,
491,
499,
503,
15253 509,
521,
523,
541,
547,
557,
563,
569,
571,
577,
587,
593,
599,
601,
607,
15254 613,
617,
619,
631,
641,
643,
647,
653,
659,
661,
673,
677,
683,
691,
701,
15255 709,
719,
727,
733,
739,
743,
751,
757,
761,
769,
773,
787,
797,
809,
811,
15256 821,
823,
827,
829,
839,
853,
857,
859,
863,
877,
881,
883,
887,
907,
911,
15257 919,
929,
937,
941,
947,
953,
967,
971,
977,
983,
991,
997
15260 var lplim = (
1 <<
26) / lowprimes[lowprimes.length -
1]
15262 // (public) test primality with certainty
>=
1-
.5^t
15263 function bnIsProbablePrime(t) {
15264 var i, x = this.abs()
15265 if (x.t ==
1 && x[
0] <= lowprimes[lowprimes.length -
1]) {
15266 for (i =
0; i < lowprimes.length; ++i)
15267 if (x[
0] == lowprimes[i]) return true
15270 if (x.isEven()) return false
15272 while (i < lowprimes.length) {
15273 var m = lowprimes[i],
15275 while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
15277 while (i < j) if (m % lowprimes[i++] ==
0) return false
15279 return x.millerRabin(t)
15282 // (protected) true if probably prime (HAC
4.24, Miller-Rabin)
15283 function bnpMillerRabin(t) {
15284 var n1 = this.subtract(BigInteger.ONE)
15285 var k = n1.getLowestSetBit()
15286 if (k <=
0) return false
15287 var r = n1.shiftRight(k)
15289 if (t
> lowprimes.length) t = lowprimes.length
15290 var a = new BigInteger(null)
15292 for (var i =
0; i < t; ++i) {
15294 j = lowprimes[Math.floor(Math.random() * lowprimes.length)]
15295 if (bases.indexOf(j) == -
1) break
15299 var y = a.modPow(r, this)
15300 if (y.compareTo(BigInteger.ONE) !=
0 && y.compareTo(n1) !=
0) {
15302 while (j++ < k && y.compareTo(n1) !=
0) {
15303 y = y.modPowInt(
2, this)
15304 if (y.compareTo(BigInteger.ONE) ==
0) return false
15306 if (y.compareTo(n1) !=
0) return false
15313 proto.chunkSize = bnpChunkSize
15314 proto.toRadix = bnpToRadix
15315 proto.fromRadix = bnpFromRadix
15316 proto.fromNumber = bnpFromNumber
15317 proto.bitwiseTo = bnpBitwiseTo
15318 proto.changeBit = bnpChangeBit
15319 proto.addTo = bnpAddTo
15320 proto.dMultiply = bnpDMultiply
15321 proto.dAddOffset = bnpDAddOffset
15322 proto.multiplyLowerTo = bnpMultiplyLowerTo
15323 proto.multiplyUpperTo = bnpMultiplyUpperTo
15324 proto.modInt = bnpModInt
15325 proto.millerRabin = bnpMillerRabin
15328 proto.clone = bnClone
15329 proto.intValue = bnIntValue
15330 proto.byteValue = bnByteValue
15331 proto.shortValue = bnShortValue
15332 proto.signum = bnSigNum
15333 proto.toByteArray = bnToByteArray
15334 proto.equals = bnEquals
15340 proto.andNot = bnAndNot
15342 proto.shiftLeft = bnShiftLeft
15343 proto.shiftRight = bnShiftRight
15344 proto.getLowestSetBit = bnGetLowestSetBit
15345 proto.bitCount = bnBitCount
15346 proto.testBit = bnTestBit
15347 proto.setBit = bnSetBit
15348 proto.clearBit = bnClearBit
15349 proto.flipBit = bnFlipBit
15351 proto.subtract = bnSubtract
15352 proto.multiply = bnMultiply
15353 proto.divide = bnDivide
15354 proto.remainder = bnRemainder
15355 proto.divideAndRemainder = bnDivideAndRemainder
15356 proto.modPow = bnModPow
15357 proto.modInverse = bnModInverse
15360 proto.isProbablePrime = bnIsProbablePrime
15362 // JSBN-specific extension
15363 proto.square = bnSquare
15366 BigInteger.ZERO = nbv(
0)
15367 BigInteger.ONE = nbv(
1)
15368 BigInteger.valueOf = nbv
15370 module.exports = BigInteger
15372 },{"../package.json":
38}],
36:[function(require,module,exports){
15373 (function (Buffer){
15374 // FIXME: Kind of a weird way to throw exceptions, consider removing
15375 var assert = require('assert')
15376 var BigInteger = require('./bigi')
15379 * Turns a byte array into a big integer.
15381 * This function will interpret a byte array as a big integer in big
15384 BigInteger.fromByteArrayUnsigned = function(byteArray) {
15385 // BigInteger expects a DER integer conformant byte array
15386 if (byteArray[
0] &
0x80) {
15387 return new BigInteger([
0].concat(byteArray))
15390 return new BigInteger(byteArray)
15394 * Returns a byte array representation of the big integer.
15396 * This returns the absolute of the contained value in big endian
15397 * form. A value of zero results in an empty array.
15399 BigInteger.prototype.toByteArrayUnsigned = function() {
15400 var byteArray = this.toByteArray()
15401 return byteArray[
0] ===
0 ? byteArray.slice(
1) : byteArray
15404 BigInteger.fromDERInteger = function(byteArray) {
15405 return new BigInteger(byteArray)
15409 * Converts BigInteger to a DER integer representation.
15411 * The format for this value uses the most significant bit as a sign
15412 * bit. If the most significant bit is already set and the integer is
15413 * positive, a
0x00 is prepended.
15428 *
62300 =
> 0x00f35c
15429 * -
62300 =
> 0xff0ca4
15431 BigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray
15433 BigInteger.fromBuffer = function(buffer) {
15434 // BigInteger expects a DER integer conformant byte array
15435 if (buffer[
0] &
0x80) {
15436 var byteArray = Array.prototype.slice.call(buffer)
15438 return new BigInteger([
0].concat(byteArray))
15441 return new BigInteger(buffer)
15444 BigInteger.fromHex = function(hex) {
15445 if (hex === '') return BigInteger.ZERO
15447 assert.equal(hex, hex.match(/^[A-Fa-f0-
9]+/), 'Invalid hex string')
15448 assert.equal(hex.length %
2,
0, 'Incomplete hex')
15449 return new BigInteger(hex,
16)
15452 BigInteger.prototype.toBuffer = function(size) {
15453 var byteArray = this.toByteArrayUnsigned()
15456 var padding = size - byteArray.length
15457 while (zeros.length < padding) zeros.push(
0)
15459 return new Buffer(zeros.concat(byteArray))
15462 BigInteger.prototype.toHex = function(size) {
15463 return this.toBuffer(size).toString('hex')
15466 }).call(this,require(
"buffer").Buffer)
15467 },{
"./bigi":
35,
"assert":
1,
"buffer":
4}],
37:[function(require,module,exports){
15468 var BigInteger = require('./bigi')
15471 require('./convert')
15473 module.exports = BigInteger
15474 },{
"./bigi":
35,
"./convert":
36}],
38:[function(require,module,exports){
15479 "/home/ian/git/bitcoin/bitcoinjs-lib-browser"
15482 "_from":
"bigi@latest",
15483 "_id":
"bigi@1.4.2",
15485 "_installable": true,
15486 "_location":
"/bigi",
15487 "_nodeVersion":
"6.1.0",
15488 "_npmOperationalInternal": {
15489 "host":
"packages-12-west.internal.npmjs.com",
15490 "tmp":
"tmp/bigi-1.4.2.tgz_1469584192413_0.6801238611806184"
15493 "email":
"jprichardson@gmail.com",
15494 "name":
"jprichardson"
15496 "_npmVersion":
"3.8.6",
15497 "_phantomChildren": {},
15511 "_resolved":
"https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz",
15512 "_shasum":
"9c665a95f88b8b08fc05cfd731f561859d725825",
15513 "_shrinkwrap": null,
15515 "_where":
"/home/ian/git/bitcoin/bitcoinjs-lib-browser",
15517 "url":
"https://github.com/cryptocoinjs/bigi/issues"
15519 "dependencies": {},
15520 "description":
"Big integers.",
15521 "devDependencies": {
15522 "coveralls":
"^2.11.2",
15523 "istanbul":
"^0.3.5",
15524 "jshint":
"^2.5.1",
15526 "mochify":
"^2.1.0"
15530 "shasum":
"9c665a95f88b8b08fc05cfd731f561859d725825",
15531 "tarball":
"https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz"
15533 "gitHead":
"c25308081c896ff84702303722bf5ecd8b3f78e3",
15534 "homepage":
"https://github.com/cryptocoinjs/bigi#readme",
15552 "main":
"./lib/index.js",
15555 "email":
"boydb@midnightdesign.ws",
15556 "name":
"midnightlightning"
15559 "email":
"sidazhang89@gmail.com",
15560 "name":
"sidazhang"
15563 "email":
"npm@shesek.info",
15567 "email":
"jprichardson@gmail.com",
15568 "name":
"jprichardson"
15572 "optionalDependencies": {},
15573 "readme":
"ERROR: No README data found!",
15576 "url":
"git+https://github.com/cryptocoinjs/bigi.git"
15579 "browser-test":
"mochify --wd -R spec",
15580 "coverage":
"istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
15581 "coveralls":
"npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info",
15582 "jshint":
"jshint --config jshint.json lib/*.js ; true",
15583 "test":
"_mocha -- test/*.js",
15591 "safari/6.0..latest",
15592 "iphone/6.0..latest",
15593 "android-browser/4.2..latest"
15595 "files":
"test/*.js",
15601 },{}],
39:[function(require,module,exports){
15602 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
15603 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
15604 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
15606 var Buffer = require('safe-buffer').Buffer
15608 function check (buffer) {
15609 if (buffer.length <
8) return false
15610 if (buffer.length
> 72) return false
15611 if (buffer[
0] !==
0x30) return false
15612 if (buffer[
1] !== buffer.length -
2) return false
15613 if (buffer[
2] !==
0x02) return false
15615 var lenR = buffer[
3]
15616 if (lenR ===
0) return false
15617 if (
5 + lenR
>= buffer.length) return false
15618 if (buffer[
4 + lenR] !==
0x02) return false
15620 var lenS = buffer[
5 + lenR]
15621 if (lenS ===
0) return false
15622 if ((
6 + lenR + lenS) !== buffer.length) return false
15624 if (buffer[
4] &
0x80) return false
15625 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
15627 if (buffer[lenR +
6] &
0x80) return false
15628 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
15632 function decode (buffer) {
15633 if (buffer.length <
8) throw new Error('DER sequence length is too short')
15634 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
15635 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
15636 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
15637 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
15639 var lenR = buffer[
3]
15640 if (lenR ===
0) throw new Error('R length is zero')
15641 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
15642 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
15644 var lenS = buffer[
5 + lenR]
15645 if (lenS ===
0) throw new Error('S length is zero')
15646 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
15648 if (buffer[
4] &
0x80) throw new Error('R value is negative')
15649 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
15651 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
15652 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
15654 // non-BIP66 - extract R, S values
15656 r: buffer.slice(
4,
4 + lenR),
15657 s: buffer.slice(
6 + lenR)
15662 * Expects r and s to be positive DER integers.
15664 * The DER format uses the most significant bit as a sign bit (&
0x80).
15665 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
15680 *
62300 =
> 0x00f35c
15681 * -
62300 =
> 0xff0ca4
15683 function encode (r, s) {
15684 var lenR = r.length
15685 var lenS = s.length
15686 if (lenR ===
0) throw new Error('R length is zero')
15687 if (lenS ===
0) throw new Error('S length is zero')
15688 if (lenR
> 33) throw new Error('R length is too long')
15689 if (lenS
> 33) throw new Error('S length is too long')
15690 if (r[
0] &
0x80) throw new Error('R value is negative')
15691 if (s[
0] &
0x80) throw new Error('S value is negative')
15692 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
15693 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
15695 var signature = Buffer.allocUnsafe(
6 + lenR + lenS)
15697 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
15698 signature[
0] =
0x30
15699 signature[
1] = signature.length -
2
15700 signature[
2] =
0x02
15701 signature[
3] = r.length
15702 r.copy(signature,
4)
15703 signature[
4 + lenR] =
0x02
15704 signature[
5 + lenR] = s.length
15705 s.copy(signature,
6 + lenR)
15716 },{
"safe-buffer":
98}],
40:[function(require,module,exports){
15720 "OP_PUSHDATA1":
76,
15721 "OP_PUSHDATA2":
77,
15722 "OP_PUSHDATA4":
78,
15748 "OP_VERNOTIF":
102,
15754 "OP_TOALTSTACK":
107,
15755 "OP_FROMALTSTACK":
108,
15785 "OP_EQUALVERIFY":
136,
15786 "OP_RESERVED1":
137,
15787 "OP_RESERVED2":
138,
15796 "OP_0NOTEQUAL":
146,
15807 "OP_NUMEQUAL":
156,
15808 "OP_NUMEQUALVERIFY":
157,
15809 "OP_NUMNOTEQUAL":
158,
15810 "OP_LESSTHAN":
159,
15811 "OP_GREATERTHAN":
160,
15812 "OP_LESSTHANOREQUAL":
161,
15813 "OP_GREATERTHANOREQUAL":
162,
15819 "OP_RIPEMD160":
166,
15824 "OP_CODESEPARATOR":
171,
15825 "OP_CHECKSIG":
172,
15826 "OP_CHECKSIGVERIFY":
173,
15827 "OP_CHECKMULTISIG":
174,
15828 "OP_CHECKMULTISIGVERIFY":
175,
15832 "OP_CHECKLOCKTIMEVERIFY":
177,
15843 "OP_PUBKEYHASH":
253,
15845 "OP_INVALIDOPCODE":
255
15848 },{}],
41:[function(require,module,exports){
15849 var OPS = require('./index.json')
15852 for (var op in OPS) {
15857 module.exports = map
15859 },{
"./index.json":
40}],
42:[function(require,module,exports){
15860 var Buffer = require('safe-buffer').Buffer
15861 var bs58check = require('bs58check')
15862 var bscript = require('./script')
15863 var networks = require('./networks')
15864 var typeforce = require('typeforce')
15865 var types = require('./types')
15867 function fromBase58Check (address) {
15868 var payload = bs58check.decode(address)
15869 if (payload.length <
21) throw new TypeError(address + ' is too short')
15870 if (payload.length
> 21) throw new TypeError(address + ' is too long')
15872 var version = payload.readUInt8(
0)
15873 var hash = payload.slice(
1)
15875 return { hash: hash, version: version }
15878 function toBase58Check (hash, version) {
15879 typeforce(types.tuple(types.Hash160bit, types.UInt8), arguments)
15881 var payload = Buffer.allocUnsafe(
21)
15882 payload.writeUInt8(version,
0)
15883 hash.copy(payload,
1)
15885 return bs58check.encode(payload)
15888 function fromOutputScript (outputScript, network) {
15889 network = network || networks.bitcoin
15891 if (bscript.pubKeyHash.output.check(outputScript)) return toBase58Check(bscript.compile(outputScript).slice(
3,
23), network.pubKeyHash)
15892 if (bscript.scriptHash.output.check(outputScript)) return toBase58Check(bscript.compile(outputScript).slice(
2,
22), network.scriptHash)
15894 throw new Error(bscript.toASM(outputScript) + ' has no matching Address')
15897 function toOutputScript (address, network) {
15898 network = network || networks.bitcoin
15900 var decode = fromBase58Check(address)
15901 if (decode.version === network.pubKeyHash) return bscript.pubKeyHash.output.encode(decode.hash)
15902 if (decode.version === network.scriptHash) return bscript.scriptHash.output.encode(decode.hash)
15904 throw new Error(address + ' has no matching Script')
15908 fromBase58Check: fromBase58Check,
15909 fromOutputScript: fromOutputScript,
15910 toBase58Check: toBase58Check,
15911 toOutputScript: toOutputScript
15914 },{
"./networks":
51,
"./script":
52,
"./types":
78,
"bs58check":
80,
"safe-buffer":
98,
"typeforce":
109}],
43:[function(require,module,exports){
15915 var Buffer = require('safe-buffer').Buffer
15916 var bcrypto = require('./crypto')
15917 var fastMerkleRoot = require('merkle-lib/fastRoot')
15918 var typeforce = require('typeforce')
15919 var types = require('./types')
15920 var varuint = require('varuint-bitcoin')
15922 var Transaction = require('./transaction')
15924 function Block () {
15926 this.prevHash = null
15927 this.merkleRoot = null
15933 Block.fromBuffer = function (buffer) {
15934 if (buffer.length <
80) throw new Error('Buffer too small (<
80 bytes)')
15937 function readSlice (n) {
15939 return buffer.slice(offset - n, offset)
15942 function readUInt32 () {
15943 var i = buffer.readUInt32LE(offset)
15948 function readInt32 () {
15949 var i = buffer.readInt32LE(offset)
15954 var block = new Block()
15955 block.version = readInt32()
15956 block.prevHash = readSlice(
32)
15957 block.merkleRoot = readSlice(
32)
15958 block.timestamp = readUInt32()
15959 block.bits = readUInt32()
15960 block.nonce = readUInt32()
15962 if (buffer.length ===
80) return block
15964 function readVarInt () {
15965 var vi = varuint.decode(buffer, offset)
15966 offset += varuint.decode.bytes
15970 function readTransaction () {
15971 var tx = Transaction.fromBuffer(buffer.slice(offset), true)
15972 offset += tx.byteLength()
15976 var nTransactions = readVarInt()
15977 block.transactions = []
15979 for (var i =
0; i < nTransactions; ++i) {
15980 var tx = readTransaction()
15981 block.transactions.push(tx)
15987 Block.prototype.byteLength = function (headersOnly) {
15988 if (headersOnly || !this.transactions) return
80
15990 return
80 + varuint.encodingLength(this.transactions.length) + this.transactions.reduce(function (a, x) {
15991 return a + x.byteLength()
15995 Block.fromHex = function (hex) {
15996 return Block.fromBuffer(Buffer.from(hex, 'hex'))
15999 Block.prototype.getHash = function () {
16000 return bcrypto.hash256(this.toBuffer(true))
16003 Block.prototype.getId = function () {
16004 return this.getHash().reverse().toString('hex')
16007 Block.prototype.getUTCDate = function () {
16008 var date = new Date(
0) // epoch
16009 date.setUTCSeconds(this.timestamp)
16014 // TODO: buffer, offset compatibility
16015 Block.prototype.toBuffer = function (headersOnly) {
16016 var buffer = Buffer.allocUnsafe(this.byteLength(headersOnly))
16019 function writeSlice (slice) {
16020 slice.copy(buffer, offset)
16021 offset += slice.length
16024 function writeInt32 (i) {
16025 buffer.writeInt32LE(i, offset)
16028 function writeUInt32 (i) {
16029 buffer.writeUInt32LE(i, offset)
16033 writeInt32(this.version)
16034 writeSlice(this.prevHash)
16035 writeSlice(this.merkleRoot)
16036 writeUInt32(this.timestamp)
16037 writeUInt32(this.bits)
16038 writeUInt32(this.nonce)
16040 if (headersOnly || !this.transactions) return buffer
16042 varuint.encode(this.transactions.length, buffer, offset)
16043 offset += varuint.encode.bytes
16045 this.transactions.forEach(function (tx) {
16046 var txSize = tx.byteLength() // TODO: extract from toBuffer?
16047 tx.toBuffer(buffer, offset)
16054 Block.prototype.toHex = function (headersOnly) {
16055 return this.toBuffer(headersOnly).toString('hex')
16058 Block.calculateTarget = function (bits) {
16059 var exponent = ((bits &
0xff000000)
>> 24) -
3
16060 var mantissa = bits &
0x007fffff
16061 var target = Buffer.alloc(
32,
0)
16062 target.writeUInt32BE(mantissa,
28 - exponent)
16066 Block.calculateMerkleRoot = function (transactions) {
16067 typeforce([{ getHash: types.Function }], transactions)
16068 if (transactions.length ===
0) throw TypeError('Cannot compute merkle root for zero transactions')
16070 var hashes = transactions.map(function (transaction) {
16071 return transaction.getHash()
16074 return fastMerkleRoot(hashes, bcrypto.hash256)
16077 Block.prototype.checkMerkleRoot = function () {
16078 if (!this.transactions) return false
16080 var actualMerkleRoot = Block.calculateMerkleRoot(this.transactions)
16081 return this.merkleRoot.compare(actualMerkleRoot) ===
0
16084 Block.prototype.checkProofOfWork = function () {
16085 var hash = this.getHash().reverse()
16086 var target = Block.calculateTarget(this.bits)
16088 return hash.compare(target) <=
0
16091 module.exports = Block
16093 },{
"./crypto":
45,
"./transaction":
76,
"./types":
78,
"merkle-lib/fastRoot":
94,
"safe-buffer":
98,
"typeforce":
109,
"varuint-bitcoin":
111}],
44:[function(require,module,exports){
16094 var pushdata = require('pushdata-bitcoin')
16095 var varuint = require('varuint-bitcoin')
16097 // https://github.com/feross/buffer/blob/master/index.js#L1127
16098 function verifuint (value, max) {
16099 if (typeof value !== 'number') throw new Error('cannot write a non-number as a number')
16100 if (value <
0) throw new Error('specified a negative value for writing an unsigned value')
16101 if (value
> max) throw new Error('RangeError: value out of range')
16102 if (Math.floor(value) !== value) throw new Error('value has a fractional component')
16105 function readUInt64LE (buffer, offset) {
16106 var a = buffer.readUInt32LE(offset)
16107 var b = buffer.readUInt32LE(offset +
4)
16110 verifuint(b + a,
0x001fffffffffffff)
16115 function writeUInt64LE (buffer, value, offset) {
16116 verifuint(value,
0x001fffffffffffff)
16118 buffer.writeInt32LE(value & -
1, offset)
16119 buffer.writeUInt32LE(Math.floor(value /
0x100000000), offset +
4)
16123 // TODO: remove in
4.0.0?
16124 function readVarInt (buffer, offset) {
16125 var result = varuint.decode(buffer, offset)
16129 size: varuint.decode.bytes
16133 // TODO: remove in
4.0.0?
16134 function writeVarInt (buffer, number, offset) {
16135 varuint.encode(number, buffer, offset)
16136 return varuint.encode.bytes
16140 pushDataSize: pushdata.encodingLength,
16141 readPushDataInt: pushdata.decode,
16142 readUInt64LE: readUInt64LE,
16143 readVarInt: readVarInt,
16144 varIntBuffer: varuint.encode,
16145 varIntSize: varuint.encodingLength,
16146 writePushDataInt: pushdata.encode,
16147 writeUInt64LE: writeUInt64LE,
16148 writeVarInt: writeVarInt
16151 },{"pushdata-bitcoin":
95,"varuint-bitcoin":
111}],
45:[function(require,module,exports){
16152 var createHash = require('create-hash')
16154 function ripemd160 (buffer) {
16155 return createHash('rmd160').update(buffer).digest()
16158 function sha1 (buffer) {
16159 return createHash('sha1').update(buffer).digest()
16162 function sha256 (buffer) {
16163 return createHash('sha256').update(buffer).digest()
16166 function hash160 (buffer) {
16167 return ripemd160(sha256(buffer))
16170 function hash256 (buffer) {
16171 return sha256(sha256(buffer))
16177 ripemd160: ripemd160,
16182 },{"create-hash":
82}],
46:[function(require,module,exports){
16183 var Buffer = require('safe-buffer').Buffer
16184 var createHmac = require('create-hmac')
16185 var typeforce = require('typeforce')
16186 var types = require('./types')
16188 var BigInteger = require('bigi')
16189 var ECSignature = require('./ecsignature')
16191 var ZERO = Buffer.alloc(
1,
0)
16192 var ONE = Buffer.alloc(
1,
1)
16194 var ecurve = require('ecurve')
16195 var secp256k1 = ecurve.getCurveByName('secp256k1')
16197 // https://tools.ietf.org/html/rfc6979#section-
3.2
16198 function deterministicGenerateK (hash, x, checkSig) {
16199 typeforce(types.tuple(
16201 types.Buffer256bit,
16205 // Step A, ignored as hash already provided
16208 var k = Buffer.alloc(
32,
0)
16209 var v = Buffer.alloc(
32,
1)
16212 k = createHmac('sha256', k)
16220 v = createHmac('sha256', k).update(v).digest()
16223 k = createHmac('sha256', k)
16231 v = createHmac('sha256', k).update(v).digest()
16233 // Step H1/H2a, ignored as tlen === qlen (
256 bit)
16235 v = createHmac('sha256', k).update(v).digest()
16237 var T = BigInteger.fromBuffer(v)
16239 // Step H3, repeat until T is within the interval [
1, n -
1] and is suitable for ECDSA
16240 while (T.signum() <=
0 || T.compareTo(secp256k1.n)
>=
0 || !checkSig(T)) {
16241 k = createHmac('sha256', k)
16246 v = createHmac('sha256', k).update(v).digest()
16248 // Step H1/H2a, again, ignored as tlen === qlen (
256 bit)
16250 v = createHmac('sha256', k).update(v).digest()
16251 T = BigInteger.fromBuffer(v)
16257 var N_OVER_TWO = secp256k1.n.shiftRight(
1)
16259 function sign (hash, d) {
16260 typeforce(types.tuple(types.Hash256bit, types.BigInt), arguments)
16262 var x = d.toBuffer(
32)
16263 var e = BigInteger.fromBuffer(hash)
16264 var n = secp256k1.n
16265 var G = secp256k1.G
16268 deterministicGenerateK(hash, x, function (k) {
16269 var Q = G.multiply(k)
16271 if (secp256k1.isInfinity(Q)) return false
16273 r = Q.affineX.mod(n)
16274 if (r.signum() ===
0) return false
16276 s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
16277 if (s.signum() ===
0) return false
16282 // enforce low S values, see bip62: 'low s values in signatures'
16283 if (s.compareTo(N_OVER_TWO)
> 0) {
16287 return new ECSignature(r, s)
16290 function verify (hash, signature, Q) {
16291 typeforce(types.tuple(
16297 var n = secp256k1.n
16298 var G = secp256k1.G
16300 var r = signature.r
16301 var s = signature.s
16303 //
1.4.1 Enforce r and s are both integers in the interval [
1, n −
1]
16304 if (r.signum() <=
0 || r.compareTo(n)
>=
0) return false
16305 if (s.signum() <=
0 || s.compareTo(n)
>=
0) return false
16307 //
1.4.2 H = Hash(M), already done by the user
16309 var e = BigInteger.fromBuffer(hash)
16312 var sInv = s.modInverse(n)
16314 //
1.4.4 Compute u1 = es^−
1 mod n
16315 // u2 = rs^−
1 mod n
16316 var u1 = e.multiply(sInv).mod(n)
16317 var u2 = r.multiply(sInv).mod(n)
16319 //
1.4.5 Compute R = (xR, yR)
16321 var R = G.multiplyTwo(u1, Q, u2)
16323 //
1.4.5 (cont.) Enforce R is not at infinity
16324 if (secp256k1.isInfinity(R)) return false
16326 //
1.4.6 Convert the field element R.x to an integer
16329 //
1.4.7 Set v = xR mod n
16332 //
1.4.8 If v = r, output "valid", and if v != r, output "invalid"
16337 deterministicGenerateK: deterministicGenerateK,
16345 },{"./ecsignature":
48,"./types":
78,"bigi":
37,"create-hmac":
85,"ecurve":
89,"safe-buffer":
98,"typeforce":
109}],
47:[function(require,module,exports){
16346 var baddress = require('./address')
16347 var bcrypto = require('./crypto')
16348 var ecdsa = require('./ecdsa')
16349 var randomBytes = require('randombytes')
16350 var typeforce = require('typeforce')
16351 var types = require('./types')
16352 var wif = require('wif')
16354 var NETWORKS = require('./networks')
16355 var BigInteger = require('bigi')
16357 var ecurve = require('ecurve')
16358 var secp256k1 = ecdsa.__curve
16360 function ECPair (d, Q, options) {
16363 compressed: types.maybe(types.Boolean),
16364 network: types.maybe(types.Network)
16368 options = options || {}
16371 if (d.signum() <=
0) throw new Error('Private key must be greater than
0')
16372 if (d.compareTo(secp256k1.n)
>=
0) throw new Error('Private key must be less than the curve order')
16373 if (Q) throw new TypeError('Unexpected publicKey parameter')
16377 typeforce(types.ECPoint, Q)
16382 this.compressed = options.compressed === undefined ? true : options.compressed
16383 this.network = options.network || NETWORKS.bitcoin
16386 Object.defineProperty(ECPair.prototype, 'Q', {
16388 if (!this.__Q && this.d) {
16389 this.__Q = secp256k1.G.multiply(this.d)
16396 ECPair.fromPublicKeyBuffer = function (buffer, network) {
16397 var Q = ecurve.Point.decodeFrom(secp256k1, buffer)
16399 return new ECPair(null, Q, {
16400 compressed: Q.compressed,
16405 ECPair.fromWIF = function (string, network) {
16406 var decoded = wif.decode(string)
16407 var version = decoded.version
16409 // list of networks?
16410 if (types.Array(network)) {
16411 network = network.filter(function (x) {
16412 return version === x.wif
16415 if (!network) throw new Error('Unknown network version')
16417 // otherwise, assume a network object (or default to bitcoin)
16419 network = network || NETWORKS.bitcoin
16421 if (version !== network.wif) throw new Error('Invalid network version')
16424 var d = BigInteger.fromBuffer(decoded.privateKey)
16426 return new ECPair(d, null, {
16427 compressed: decoded.compressed,
16432 ECPair.makeRandom = function (options) {
16433 options = options || {}
16435 var rng = options.rng || randomBytes
16439 var buffer = rng(
32)
16440 typeforce(types.Buffer256bit, buffer)
16442 d = BigInteger.fromBuffer(buffer)
16443 } while (d.signum() <=
0 || d.compareTo(secp256k1.n)
>=
0)
16445 return new ECPair(d, null, options)
16448 ECPair.prototype.getAddress = function () {
16449 return baddress.toBase58Check(bcrypto.hash160(this.getPublicKeyBuffer()), this.getNetwork().pubKeyHash)
16452 ECPair.prototype.getNetwork = function () {
16453 return this.network
16456 ECPair.prototype.getPublicKeyBuffer = function () {
16457 return this.Q.getEncoded(this.compressed)
16460 ECPair.prototype.sign = function (hash) {
16461 if (!this.d) throw new Error('Missing private key')
16463 return ecdsa.sign(hash, this.d)
16466 ECPair.prototype.toWIF = function () {
16467 if (!this.d) throw new Error('Missing private key')
16469 return wif.encode(this.network.wif, this.d.toBuffer(
32), this.compressed)
16472 ECPair.prototype.verify = function (hash, signature) {
16473 return ecdsa.verify(hash, signature, this.Q)
16476 module.exports = ECPair
16478 },{"./address":
42,"./crypto":
45,"./ecdsa":
46,"./networks":
51,"./types":
78,"bigi":
37,"ecurve":
89,"randombytes":
96,"typeforce":
109,"wif":
112}],
48:[function(require,module,exports){
16479 (function (Buffer){
16480 var bip66 = require('bip66')
16481 var typeforce = require('typeforce')
16482 var types = require('./types')
16484 var BigInteger = require('bigi')
16486 function ECSignature (r, s) {
16487 typeforce(types.tuple(types.BigInt, types.BigInt), arguments)
16493 ECSignature.parseCompact = function (buffer) {
16494 if (buffer.length !==
65) throw new Error('Invalid signature length')
16496 var flagByte = buffer.readUInt8(
0) -
27
16497 if (flagByte !== (flagByte &
7)) throw new Error('Invalid signature parameter')
16499 var compressed = !!(flagByte &
4)
16500 var recoveryParam = flagByte &
3
16502 var r = BigInteger.fromBuffer(buffer.slice(
1,
33))
16503 var s = BigInteger.fromBuffer(buffer.slice(
33))
16506 compressed: compressed,
16508 signature: new ECSignature(r, s)
16512 ECSignature.fromDER = function (buffer) {
16513 var decode = bip66.decode(buffer)
16514 var r = BigInteger.fromDERInteger(decode.r)
16515 var s = BigInteger.fromDERInteger(decode.s)
16517 return new ECSignature(r, s)
16520 // BIP62:
1 byte hashType flag (only
0x01,
0x02,
0x03,
0x81,
0x82 and
0x83 are allowed)
16521 ECSignature.parseScriptSignature = function (buffer) {
16522 var hashType = buffer.readUInt8(buffer.length -
1)
16523 var hashTypeMod = hashType & ~
0x80
16525 if (hashTypeMod <=
0x00 || hashTypeMod
>=
0x04) throw new Error('Invalid hashType ' + hashType)
16528 signature: ECSignature.fromDER(buffer.slice(
0, -
1)),
16533 ECSignature.prototype.toCompact = function (i, compressed) {
16540 var buffer = Buffer.alloc(
65)
16541 buffer.writeUInt8(i,
0)
16542 this.r.toBuffer(
32).copy(buffer,
1)
16543 this.s.toBuffer(
32).copy(buffer,
33)
16548 ECSignature.prototype.toDER = function () {
16549 var r = Buffer.from(this.r.toDERInteger())
16550 var s = Buffer.from(this.s.toDERInteger())
16552 return bip66.encode(r, s)
16555 ECSignature.prototype.toScriptSignature = function (hashType) {
16556 var hashTypeMod = hashType & ~
0x80
16557 if (hashTypeMod <=
0 || hashTypeMod
>=
4) throw new Error('Invalid hashType ' + hashType)
16559 var hashTypeBuffer = Buffer.alloc(
1)
16560 hashTypeBuffer.writeUInt8(hashType,
0)
16562 return Buffer.concat([this.toDER(), hashTypeBuffer])
16565 module.exports = ECSignature
16567 }).call(this,require("buffer").Buffer)
16568 },{"./types":
78,"bigi":
37,"bip66":
39,"buffer":
4,"typeforce":
109}],
49:[function(require,module,exports){
16569 var Buffer = require('safe-buffer').Buffer
16570 var base58check = require('bs58check')
16571 var bcrypto = require('./crypto')
16572 var createHmac = require('create-hmac')
16573 var typeforce = require('typeforce')
16574 var types = require('./types')
16575 var NETWORKS = require('./networks')
16577 var BigInteger = require('bigi')
16578 var ECPair = require('./ecpair')
16580 var ecurve = require('ecurve')
16581 var curve = ecurve.getCurveByName('secp256k1')
16583 function HDNode (keyPair, chainCode) {
16584 typeforce(types.tuple('ECPair', types.Buffer256bit), arguments)
16586 if (!keyPair.compressed) throw new TypeError('BIP32 only allows compressed keyPairs')
16588 this.keyPair = keyPair
16589 this.chainCode = chainCode
16592 this.parentFingerprint =
0x00000000
16595 HDNode.HIGHEST_BIT =
0x80000000
16597 HDNode.MASTER_SECRET = Buffer.from('Bitcoin seed', 'utf8')
16599 HDNode.fromSeedBuffer = function (seed, network) {
16600 typeforce(types.tuple(types.Buffer, types.maybe(types.Network)), arguments)
16602 if (seed.length <
16) throw new TypeError('Seed should be at least
128 bits')
16603 if (seed.length
> 64) throw new TypeError('Seed should be at most
512 bits')
16605 var I = createHmac('sha512', HDNode.MASTER_SECRET).update(seed).digest()
16606 var IL = I.slice(
0,
32)
16607 var IR = I.slice(
32)
16609 // In case IL is
0 or
>= n, the master key is invalid
16610 // This is handled by the ECPair constructor
16611 var pIL = BigInteger.fromBuffer(IL)
16612 var keyPair = new ECPair(pIL, null, {
16616 return new HDNode(keyPair, IR)
16619 HDNode.fromSeedHex = function (hex, network) {
16620 return HDNode.fromSeedBuffer(Buffer.from(hex, 'hex'), network)
16623 HDNode.fromBase58 = function (string, networks) {
16624 var buffer = base58check.decode(string)
16625 if (buffer.length !==
78) throw new Error('Invalid buffer length')
16627 //
4 bytes: version bytes
16628 var version = buffer.readUInt32BE(
0)
16631 // list of networks?
16632 if (Array.isArray(networks)) {
16633 network = networks.filter(function (x) {
16634 return version === x.bip32.private ||
16635 version === x.bip32.public
16638 if (!network) throw new Error('Unknown network version')
16640 // otherwise, assume a network object (or default to bitcoin)
16642 network = networks || NETWORKS.bitcoin
16645 if (version !== network.bip32.private &&
16646 version !== network.bip32.public) throw new Error('Invalid network version')
16648 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ...
16649 var depth = buffer[
4]
16651 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
16652 var parentFingerprint = buffer.readUInt32BE(
5)
16654 if (parentFingerprint !==
0x00000000) throw new Error('Invalid parent fingerprint')
16657 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
16658 // This is encoded in MSB order. (
0x00000000 if master key)
16659 var index = buffer.readUInt32BE(
9)
16660 if (depth ===
0 && index !==
0) throw new Error('Invalid index')
16662 //
32 bytes: the chain code
16663 var chainCode = buffer.slice(
13,
45)
16666 //
33 bytes: private key data (
0x00 + k)
16667 if (version === network.bip32.private) {
16668 if (buffer.readUInt8(
45) !==
0x00) throw new Error('Invalid private key')
16670 var d = BigInteger.fromBuffer(buffer.slice(
46,
78))
16671 keyPair = new ECPair(d, null, { network: network })
16673 //
33 bytes: public key data (
0x02 + X or
0x03 + X)
16675 var Q = ecurve.Point.decodeFrom(curve, buffer.slice(
45,
78))
16676 // Q.compressed is assumed, if somehow this assumption is broken, `new HDNode` will throw
16678 // Verify that the X coordinate in the public point corresponds to a point on the curve.
16679 // If not, the extended public key is invalid.
16682 keyPair = new ECPair(null, Q, { network: network })
16685 var hd = new HDNode(keyPair, chainCode)
16688 hd.parentFingerprint = parentFingerprint
16693 HDNode.prototype.getAddress = function () {
16694 return this.keyPair.getAddress()
16697 HDNode.prototype.getIdentifier = function () {
16698 return bcrypto.hash160(this.keyPair.getPublicKeyBuffer())
16701 HDNode.prototype.getFingerprint = function () {
16702 return this.getIdentifier().slice(
0,
4)
16705 HDNode.prototype.getNetwork = function () {
16706 return this.keyPair.getNetwork()
16709 HDNode.prototype.getPublicKeyBuffer = function () {
16710 return this.keyPair.getPublicKeyBuffer()
16713 HDNode.prototype.neutered = function () {
16714 var neuteredKeyPair = new ECPair(null, this.keyPair.Q, {
16715 network: this.keyPair.network
16718 var neutered = new HDNode(neuteredKeyPair, this.chainCode)
16719 neutered.depth = this.depth
16720 neutered.index = this.index
16721 neutered.parentFingerprint = this.parentFingerprint
16726 HDNode.prototype.sign = function (hash) {
16727 return this.keyPair.sign(hash)
16730 HDNode.prototype.verify = function (hash, signature) {
16731 return this.keyPair.verify(hash, signature)
16734 HDNode.prototype.toBase58 = function (__isPrivate) {
16735 if (__isPrivate !== undefined) throw new TypeError('Unsupported argument in
2.0.0')
16738 var network = this.keyPair.network
16739 var version = (!this.isNeutered()) ? network.bip32.private : network.bip32.public
16740 var buffer = Buffer.allocUnsafe(
78)
16742 //
4 bytes: version bytes
16743 buffer.writeUInt32BE(version,
0)
16745 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ....
16746 buffer.writeUInt8(this.depth,
4)
16748 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
16749 buffer.writeUInt32BE(this.parentFingerprint,
5)
16751 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
16752 // This is encoded in big endian. (
0x00000000 if master key)
16753 buffer.writeUInt32BE(this.index,
9)
16755 //
32 bytes: the chain code
16756 this.chainCode.copy(buffer,
13)
16758 //
33 bytes: the public key or private key data
16759 if (!this.isNeutered()) {
16760 //
0x00 + k for private keys
16761 buffer.writeUInt8(
0,
45)
16762 this.keyPair.d.toBuffer(
32).copy(buffer,
46)
16764 //
33 bytes: the public key
16766 // X9.62 encoding for public keys
16767 this.keyPair.getPublicKeyBuffer().copy(buffer,
45)
16770 return base58check.encode(buffer)
16773 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#child-key-derivation-ckd-functions
16774 HDNode.prototype.derive = function (index) {
16775 typeforce(types.UInt32, index)
16777 var isHardened = index
>= HDNode.HIGHEST_BIT
16778 var data = Buffer.allocUnsafe(
37)
16782 if (this.isNeutered()) throw new TypeError('Could not derive hardened child key')
16784 // data =
0x00 || ser256(kpar) || ser32(index)
16786 this.keyPair.d.toBuffer(
32).copy(data,
1)
16787 data.writeUInt32BE(index,
33)
16791 // data = serP(point(kpar)) || ser32(index)
16792 // = serP(Kpar) || ser32(index)
16793 this.keyPair.getPublicKeyBuffer().copy(data,
0)
16794 data.writeUInt32BE(index,
33)
16797 var I = createHmac('sha512', this.chainCode).update(data).digest()
16798 var IL = I.slice(
0,
32)
16799 var IR = I.slice(
32)
16801 var pIL = BigInteger.fromBuffer(IL)
16803 // In case parse256(IL)
>= n, proceed with the next value for i
16804 if (pIL.compareTo(curve.n)
>=
0) {
16805 return this.derive(index +
1)
16808 // Private parent key -
> private child key
16810 if (!this.isNeutered()) {
16811 // ki = parse256(IL) + kpar (mod n)
16812 var ki = pIL.add(this.keyPair.d).mod(curve.n)
16814 // In case ki ==
0, proceed with the next value for i
16815 if (ki.signum() ===
0) {
16816 return this.derive(index +
1)
16819 derivedKeyPair = new ECPair(ki, null, {
16820 network: this.keyPair.network
16823 // Public parent key -
> public child key
16825 // Ki = point(parse256(IL)) + Kpar
16827 var Ki = curve.G.multiply(pIL).add(this.keyPair.Q)
16829 // In case Ki is the point at infinity, proceed with the next value for i
16830 if (curve.isInfinity(Ki)) {
16831 return this.derive(index +
1)
16834 derivedKeyPair = new ECPair(null, Ki, {
16835 network: this.keyPair.network
16839 var hd = new HDNode(derivedKeyPair, IR)
16840 hd.depth = this.depth +
1
16842 hd.parentFingerprint = this.getFingerprint().readUInt32BE(
0)
16847 HDNode.prototype.deriveHardened = function (index) {
16848 typeforce(types.UInt31, index)
16850 // Only derives hardened private keys by default
16851 return this.derive(index + HDNode.HIGHEST_BIT)
16854 // Private === not neutered
16855 // Public === neutered
16856 HDNode.prototype.isNeutered = function () {
16857 return !(this.keyPair.d)
16860 HDNode.prototype.derivePath = function (path) {
16861 typeforce(types.BIP32Path, path)
16863 var splitPath = path.split('/')
16864 if (splitPath[
0] === 'm') {
16865 if (this.parentFingerprint) {
16866 throw new Error('Not a master node')
16869 splitPath = splitPath.slice(
1)
16872 return splitPath.reduce(function (prevHd, indexStr) {
16874 if (indexStr.slice(-
1) === "'") {
16875 index = parseInt(indexStr.slice(
0, -
1),
10)
16876 return prevHd.deriveHardened(index)
16878 index = parseInt(indexStr,
10)
16879 return prevHd.derive(index)
16884 module.exports = HDNode
16886 },{"./crypto":
45,"./ecpair":
47,"./networks":
51,"./types":
78,"bigi":
37,"bs58check":
80,"create-hmac":
85,"ecurve":
89,"safe-buffer":
98,"typeforce":
109}],
50:[function(require,module,exports){
16888 Block: require('./block'),
16889 ECPair: require('./ecpair'),
16890 ECSignature: require('./ecsignature'),
16891 HDNode: require('./hdnode'),
16892 Transaction: require('./transaction'),
16893 TransactionBuilder: require('./transaction_builder'),
16895 address: require('./address'),
16896 bufferutils: require('./bufferutils'), // TODO: remove in
4.0.0
16897 crypto: require('./crypto'),
16898 networks: require('./networks'),
16899 opcodes: require('bitcoin-ops'),
16900 script: require('./script')
16903 },{"./address":
42,"./block":
43,"./bufferutils":
44,"./crypto":
45,"./ecpair":
47,"./ecsignature":
48,"./hdnode":
49,"./networks":
51,"./script":
52,"./transaction":
76,"./transaction_builder":
77,"bitcoin-ops":
40}],
51:[function(require,module,exports){
16904 // https://en.bitcoin.it/wiki/List_of_address_prefixes
16905 // Dogecoin BIP32 is a proposed standard: https://bitcointalk.org/index.php?topic=
409731
16909 messagePrefix: '\x18Bitcoin Signed Message:\n',
16911 public:
0x0488b21e,
16912 private:
0x0488ade4
16919 messagePrefix: '\x18Bitcoin Signed Message:\n',
16921 public:
0x043587cf,
16922 private:
0x04358394
16929 messagePrefix: '\x19Litecoin Signed Message:\n',
16931 public:
0x019da462,
16932 private:
0x019d9cfe
16940 },{}],
52:[function(require,module,exports){
16941 var Buffer = require('safe-buffer').Buffer
16942 var bip66 = require('bip66')
16943 var pushdata = require('pushdata-bitcoin')
16944 var typeforce = require('typeforce')
16945 var types = require('./types')
16946 var scriptNumber = require('./script_number')
16948 var OPS = require('bitcoin-ops')
16949 var REVERSE_OPS = require('bitcoin-ops/map')
16950 var OP_INT_BASE = OPS.OP_RESERVED // OP_1 -
1
16952 function isOPInt (value) {
16953 return types.Number(value) &&
16954 ((value === OPS.OP_0) ||
16955 (value
>= OPS.OP_1 && value <= OPS.OP_16) ||
16956 (value === OPS.OP_1NEGATE))
16959 function isPushOnlyChunk (value) {
16960 return types.Buffer(value) || isOPInt(value)
16963 function isPushOnly (value) {
16964 return types.Array(value) && value.every(isPushOnlyChunk)
16967 function compile (chunks) {
16969 if (Buffer.isBuffer(chunks)) return chunks
16971 typeforce(types.Array, chunks)
16973 var bufferSize = chunks.reduce(function (accum, chunk) {
16975 if (Buffer.isBuffer(chunk)) {
16976 // adhere to BIP62.3, minimal push policy
16977 if (chunk.length ===
1 && (chunk[
0] ===
0x81 || (chunk[
0]
>=
1 && chunk[
0] <=
16))) {
16981 return accum + pushdata.encodingLength(chunk.length) + chunk.length
16988 var buffer = Buffer.allocUnsafe(bufferSize)
16991 chunks.forEach(function (chunk) {
16993 if (Buffer.isBuffer(chunk)) {
16994 // adhere to BIP62.3, minimal push policy
16995 if (chunk.length ===
1 && chunk[
0]
>=
1 && chunk[
0] <=
16) {
16996 var opcode = OP_INT_BASE + chunk[
0]
16997 buffer.writeUInt8(opcode, offset)
17002 if (chunk.length ===
1 && chunk[
0] ===
0x81) {
17003 buffer.writeUInt8(OPS.OP_1NEGATE, offset)
17008 offset += pushdata.encode(buffer, chunk.length, offset)
17010 chunk.copy(buffer, offset)
17011 offset += chunk.length
17015 buffer.writeUInt8(chunk, offset)
17020 if (offset !== buffer.length) throw new Error('Could not decode chunks')
17024 function decompile (buffer) {
17026 if (types.Array(buffer)) return buffer
17028 typeforce(types.Buffer, buffer)
17033 while (i < buffer.length) {
17034 var opcode = buffer[i]
17037 if ((opcode
> OPS.OP_0) && (opcode <= OPS.OP_PUSHDATA4)) {
17038 var d = pushdata.decode(buffer, i)
17040 // did reading a pushDataInt fail? empty script
17041 if (d === null) return []
17044 // attempt to read too much data? empty script
17045 if (i + d.number
> buffer.length) return []
17047 var data = buffer.slice(i, i + d.number)
17054 chunks.push(opcode)
17063 function toASM (chunks) {
17064 if (Buffer.isBuffer(chunks)) {
17065 chunks = decompile(chunks)
17068 return chunks.map(function (chunk) {
17070 if (Buffer.isBuffer(chunk)) return chunk.toString('hex')
17073 return REVERSE_OPS[chunk]
17077 function fromASM (asm) {
17078 typeforce(types.String, asm)
17080 return compile(asm.split(' ').map(function (chunkStr) {
17082 if (OPS[chunkStr] !== undefined) return OPS[chunkStr]
17083 typeforce(types.Hex, chunkStr)
17086 return Buffer.from(chunkStr, 'hex')
17090 function toStack (chunks) {
17091 chunks = decompile(chunks)
17092 typeforce(isPushOnly, chunks)
17094 return chunks.map(function (op) {
17095 if (Buffer.isBuffer(op)) return op
17096 if (op === OPS.OP_0) return Buffer.allocUnsafe(
0)
17098 return scriptNumber.encode(op - OP_INT_BASE)
17102 function isCanonicalPubKey (buffer) {
17103 if (!Buffer.isBuffer(buffer)) return false
17104 if (buffer.length <
33) return false
17106 switch (buffer[
0]) {
17109 return buffer.length ===
33
17111 return buffer.length ===
65
17117 function isDefinedHashType (hashType) {
17118 var hashTypeMod = hashType & ~
0x80
17120 // return hashTypeMod
> SIGHASH_ALL && hashTypeMod < SIGHASH_SINGLE
17121 return hashTypeMod
> 0x00 && hashTypeMod <
0x04
17124 function isCanonicalSignature (buffer) {
17125 if (!Buffer.isBuffer(buffer)) return false
17126 if (!isDefinedHashType(buffer[buffer.length -
1])) return false
17128 return bip66.check(buffer.slice(
0, -
1))
17133 decompile: decompile,
17138 number: require('./script_number'),
17140 isCanonicalPubKey: isCanonicalPubKey,
17141 isCanonicalSignature: isCanonicalSignature,
17142 isPushOnly: isPushOnly,
17143 isDefinedHashType: isDefinedHashType
17146 var templates = require('./templates')
17147 for (var key in templates) {
17148 module.exports[key] = templates[key]
17151 },{
"./script_number":
53,
"./templates":
54,
"./types":
78,
"bip66":
39,
"bitcoin-ops":
40,
"bitcoin-ops/map":
41,
"pushdata-bitcoin":
95,
"safe-buffer":
98,
"typeforce":
109}],
53:[function(require,module,exports){
17152 var Buffer = require('safe-buffer').Buffer
17154 function decode (buffer, maxLength, minimal) {
17155 maxLength = maxLength ||
4
17156 minimal = minimal === undefined ? true : minimal
17158 var length = buffer.length
17159 if (length ===
0) return
0
17160 if (length
> maxLength) throw new TypeError('Script number overflow')
17162 if ((buffer[length -
1] &
0x7f) ===
0) {
17163 if (length <=
1 || (buffer[length -
2] &
0x80) ===
0) throw new Error('Non-minimally encoded script number')
17168 if (length ===
5) {
17169 var a = buffer.readUInt32LE(
0)
17170 var b = buffer.readUInt8(
4)
17172 if (b &
0x80) return -(((b & ~
0x80) *
0x100000000) + a)
17173 return (b *
0x100000000) + a
17178 //
32-bit /
24-bit /
16-bit /
8-bit
17179 for (var i =
0; i < length; ++i) {
17180 result |= buffer[i] << (
8 * i)
17183 if (buffer[length -
1] &
0x80) return -(result & ~(
0x80 << (
8 * (length -
1))))
17187 function scriptNumSize (i) {
17188 return i
> 0x7fffffff ?
5
17196 function encode (number) {
17197 var value = Math.abs(number)
17198 var size = scriptNumSize(value)
17199 var buffer = Buffer.allocUnsafe(size)
17200 var negative = number <
0
17202 for (var i =
0; i < size; ++i) {
17203 buffer.writeUInt8(value &
0xff, i)
17207 if (buffer[size -
1] &
0x80) {
17208 buffer.writeUInt8(negative ?
0x80 :
0x00, size -
1)
17209 } else if (negative) {
17210 buffer[size -
1] |=
0x80
17221 },{"safe-buffer":
98}],
54:[function(require,module,exports){
17222 var decompile = require('../script').decompile
17223 var multisig = require('./multisig')
17224 var nullData = require('./nulldata')
17225 var pubKey = require('./pubkey')
17226 var pubKeyHash = require('./pubkeyhash')
17227 var scriptHash = require('./scripthash')
17228 var witnessPubKeyHash = require('./witnesspubkeyhash')
17229 var witnessScriptHash = require('./witnessscripthash')
17230 var witnessCommitment = require('./witnesscommitment')
17233 MULTISIG: 'multisig',
17234 NONSTANDARD: 'nonstandard',
17235 NULLDATA: 'nulldata',
17237 P2PKH: 'pubkeyhash',
17238 P2SH: 'scripthash',
17239 P2WPKH: 'witnesspubkeyhash',
17240 P2WSH: 'witnessscripthash',
17241 WITNESS_COMMITMENT: 'witnesscommitment'
17244 function classifyOutput (script) {
17245 if (witnessPubKeyHash.output.check(script)) return types.P2WPKH
17246 if (witnessScriptHash.output.check(script)) return types.P2WSH
17247 if (pubKeyHash.output.check(script)) return types.P2PKH
17248 if (scriptHash.output.check(script)) return types.P2SH
17250 // XXX: optimization, below functions .decompile before use
17251 var chunks = decompile(script)
17252 if (multisig.output.check(chunks)) return types.MULTISIG
17253 if (pubKey.output.check(chunks)) return types.P2PK
17254 if (witnessCommitment.output.check(chunks)) return types.WITNESS_COMMITMENT
17255 if (nullData.output.check(chunks)) return types.NULLDATA
17257 return types.NONSTANDARD
17260 function classifyInput (script, allowIncomplete) {
17261 // XXX: optimization, below functions .decompile before use
17262 var chunks = decompile(script)
17264 if (pubKeyHash.input.check(chunks)) return types.P2PKH
17265 if (scriptHash.input.check(chunks, allowIncomplete)) return types.P2SH
17266 if (multisig.input.check(chunks, allowIncomplete)) return types.MULTISIG
17267 if (pubKey.input.check(chunks)) return types.P2PK
17269 return types.NONSTANDARD
17272 function classifyWitness (script, allowIncomplete) {
17273 // XXX: optimization, below functions .decompile before use
17274 var chunks = decompile(script)
17276 if (witnessPubKeyHash.input.check(chunks)) return types.P2WPKH
17277 if (witnessScriptHash.input.check(chunks, allowIncomplete)) return types.P2WSH
17279 return types.NONSTANDARD
17283 classifyInput: classifyInput,
17284 classifyOutput: classifyOutput,
17285 classifyWitness: classifyWitness,
17286 multisig: multisig,
17287 nullData: nullData,
17289 pubKeyHash: pubKeyHash,
17290 scriptHash: scriptHash,
17291 witnessPubKeyHash: witnessPubKeyHash,
17292 witnessScriptHash: witnessScriptHash,
17293 witnessCommitment: witnessCommitment,
17297 },{"../script":
52,"./multisig":
55,"./nulldata":
58,"./pubkey":
59,"./pubkeyhash":
62,"./scripthash":
65,"./witnesscommitment":
68,"./witnesspubkeyhash":
70,"./witnessscripthash":
73}],
55:[function(require,module,exports){
17299 input: require('./input'),
17300 output: require('./output')
17303 },{"./input":
56,"./output":
57}],
56:[function(require,module,exports){
17304 // OP_0 [signatures ...]
17306 var Buffer = require('safe-buffer').Buffer
17307 var bscript = require('../../script')
17308 var typeforce = require('typeforce')
17309 var OPS = require('bitcoin-ops')
17311 function partialSignature (value) {
17312 return value === OPS.OP_0 || bscript.isCanonicalSignature(value)
17315 function check (script, allowIncomplete) {
17316 var chunks = bscript.decompile(script)
17317 if (chunks.length <
2) return false
17318 if (chunks[
0] !== OPS.OP_0) return false
17320 if (allowIncomplete) {
17321 return chunks.slice(
1).every(partialSignature)
17324 return chunks.slice(
1).every(bscript.isCanonicalSignature)
17326 check.toJSON = function () { return 'multisig input' }
17328 var EMPTY_BUFFER = Buffer.allocUnsafe(
0)
17330 function encodeStack (signatures, scriptPubKey) {
17331 typeforce([partialSignature], signatures)
17333 if (scriptPubKey) {
17334 var scriptData = bscript.multisig.output.decode(scriptPubKey)
17336 if (signatures.length < scriptData.m) {
17337 throw new TypeError('Not enough signatures provided')
17340 if (signatures.length
> scriptData.pubKeys.length) {
17341 throw new TypeError('Too many signatures provided')
17345 return [].concat(EMPTY_BUFFER, signatures)
17348 function encode (signatures, scriptPubKey) {
17349 return bscript.compile(encodeStack(signatures, scriptPubKey))
17352 function decodeStack (stack, allowIncomplete) {
17353 typeforce(check, stack, allowIncomplete)
17354 return stack.slice(
1)
17357 function decode (buffer, allowIncomplete) {
17358 var stack = bscript.decompile(buffer)
17359 return decodeStack(stack, allowIncomplete)
17365 decodeStack: decodeStack,
17367 encodeStack: encodeStack
17370 },{"../../script":
52,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109}],
57:[function(require,module,exports){
17371 // m [pubKeys ...] n OP_CHECKMULTISIG
17373 var bscript = require('../../script')
17374 var types = require('../../types')
17375 var typeforce = require('typeforce')
17376 var OPS = require('bitcoin-ops')
17377 var OP_INT_BASE = OPS.OP_RESERVED // OP_1 -
1
17379 function check (script, allowIncomplete) {
17380 var chunks = bscript.decompile(script)
17382 if (chunks.length <
4) return false
17383 if (chunks[chunks.length -
1] !== OPS.OP_CHECKMULTISIG) return false
17384 if (!types.Number(chunks[
0])) return false
17385 if (!types.Number(chunks[chunks.length -
2])) return false
17386 var m = chunks[
0] - OP_INT_BASE
17387 var n = chunks[chunks.length -
2] - OP_INT_BASE
17389 if (m <=
0) return false
17390 if (n
> 16) return false
17391 if (m
> n) return false
17392 if (n !== chunks.length -
3) return false
17393 if (allowIncomplete) return true
17395 var keys = chunks.slice(
1, -
2)
17396 return keys.every(bscript.isCanonicalPubKey)
17398 check.toJSON = function () { return 'multi-sig output' }
17400 function encode (m, pubKeys) {
17403 pubKeys: [bscript.isCanonicalPubKey]
17409 var n = pubKeys.length
17410 if (n < m) throw new TypeError('Not enough pubKeys provided')
17412 return bscript.compile([].concat(
17416 OPS.OP_CHECKMULTISIG
17420 function decode (buffer, allowIncomplete) {
17421 var chunks = bscript.decompile(buffer)
17422 typeforce(check, chunks, allowIncomplete)
17425 m: chunks[
0] - OP_INT_BASE,
17426 pubKeys: chunks.slice(
1, -
2)
17436 },{"../../script":
52,"../../types":
78,"bitcoin-ops":
40,"typeforce":
109}],
58:[function(require,module,exports){
17437 // OP_RETURN {data}
17439 var bscript = require('../script')
17440 var types = require('../types')
17441 var typeforce = require('typeforce')
17442 var OPS = require('bitcoin-ops')
17444 function check (script) {
17445 var buffer = bscript.compile(script)
17447 return buffer.length
> 1 &&
17448 buffer[
0] === OPS.OP_RETURN
17450 check.toJSON = function () { return 'null data output' }
17452 function encode (data) {
17453 typeforce(types.Buffer, data)
17455 return bscript.compile([OPS.OP_RETURN, data])
17458 function decode (buffer) {
17459 typeforce(check, buffer)
17461 return buffer.slice(
2)
17472 },{
"../script":
52,
"../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
59:[function(require,module,exports){
17473 arguments[
4][
55][
0].apply(exports,arguments)
17474 },{
"./input":
60,
"./output":
61,
"dup":
55}],
60:[function(require,module,exports){
17477 var bscript = require('../../script')
17478 var types = require('../../types')
17479 var typeforce = require('typeforce')
17481 function check (script) {
17482 var chunks = bscript.decompile(script)
17484 return chunks.length ===
1 &&
17485 bscript.isCanonicalSignature(chunks[
0])
17487 check.toJSON = function () { return 'pubKey input' }
17489 function encodeStack (signature) {
17490 typeforce(types.Buffer, signature)
17494 function encode (signature) {
17495 return bscript.compile(encodeStack(signature))
17498 function decodeStack (stack) {
17499 typeforce(check, stack)
17503 function decode (buffer) {
17504 var stack = bscript.decompile(buffer)
17505 return decodeStack(stack)
17511 decodeStack: decodeStack,
17513 encodeStack: encodeStack
17516 },{
"../../script":
52,
"../../types":
78,
"typeforce":
109}],
61:[function(require,module,exports){
17517 // {pubKey} OP_CHECKSIG
17519 var bscript = require('../../script')
17520 var typeforce = require('typeforce')
17521 var OPS = require('bitcoin-ops')
17523 function check (script) {
17524 var chunks = bscript.decompile(script)
17526 return chunks.length ===
2 &&
17527 bscript.isCanonicalPubKey(chunks[
0]) &&
17528 chunks[
1] === OPS.OP_CHECKSIG
17530 check.toJSON = function () { return 'pubKey output' }
17532 function encode (pubKey) {
17533 typeforce(bscript.isCanonicalPubKey, pubKey)
17535 return bscript.compile([pubKey, OPS.OP_CHECKSIG])
17538 function decode (buffer) {
17539 var chunks = bscript.decompile(buffer)
17540 typeforce(check, chunks)
17551 },{
"../../script":
52,
"bitcoin-ops":
40,
"typeforce":
109}],
62:[function(require,module,exports){
17552 arguments[
4][
55][
0].apply(exports,arguments)
17553 },{
"./input":
63,
"./output":
64,
"dup":
55}],
63:[function(require,module,exports){
17554 // {signature} {pubKey}
17556 var bscript = require('../../script')
17557 var types = require('../../types')
17558 var typeforce = require('typeforce')
17560 function check (script) {
17561 var chunks = bscript.decompile(script)
17563 return chunks.length ===
2 &&
17564 bscript.isCanonicalSignature(chunks[
0]) &&
17565 bscript.isCanonicalPubKey(chunks[
1])
17567 check.toJSON = function () { return 'pubKeyHash input' }
17569 function encodeStack (signature, pubKey) {
17571 signature: types.Buffer, pubKey: types.Buffer
17573 signature: signature, pubKey: pubKey
17576 return [signature, pubKey]
17579 function encode (signature, pubKey) {
17580 return bscript.compile(encodeStack(signature, pubKey))
17583 function decodeStack (stack) {
17584 typeforce(check, stack)
17587 signature: stack[
0],
17592 function decode (buffer) {
17593 var stack = bscript.decompile(buffer)
17594 return decodeStack(stack)
17600 decodeStack: decodeStack,
17602 encodeStack: encodeStack
17605 },{
"../../script":
52,
"../../types":
78,
"typeforce":
109}],
64:[function(require,module,exports){
17606 // OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
17608 var bscript = require('../../script')
17609 var types = require('../../types')
17610 var typeforce = require('typeforce')
17611 var OPS = require('bitcoin-ops')
17613 function check (script) {
17614 var buffer = bscript.compile(script)
17616 return buffer.length ===
25 &&
17617 buffer[
0] === OPS.OP_DUP &&
17618 buffer[
1] === OPS.OP_HASH160 &&
17619 buffer[
2] ===
0x14 &&
17620 buffer[
23] === OPS.OP_EQUALVERIFY &&
17621 buffer[
24] === OPS.OP_CHECKSIG
17623 check.toJSON = function () { return 'pubKeyHash output' }
17625 function encode (pubKeyHash) {
17626 typeforce(types.Hash160bit, pubKeyHash)
17628 return bscript.compile([
17632 OPS.OP_EQUALVERIFY,
17637 function decode (buffer) {
17638 typeforce(check, buffer)
17640 return buffer.slice(
3,
23)
17649 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
65:[function(require,module,exports){
17650 arguments[
4][
55][
0].apply(exports,arguments)
17651 },{
"./input":
66,
"./output":
67,
"dup":
55}],
66:[function(require,module,exports){
17652 //
<scriptSig> {serialized scriptPubKey script}
17654 var Buffer = require('safe-buffer').Buffer
17655 var bscript = require('../../script')
17656 var typeforce = require('typeforce')
17658 function check (script, allowIncomplete) {
17659 var chunks = bscript.decompile(script)
17660 if (chunks.length <
1) return false
17662 var lastChunk = chunks[chunks.length -
1]
17663 if (!Buffer.isBuffer(lastChunk)) return false
17665 var scriptSigChunks = bscript.decompile(bscript.compile(chunks.slice(
0, -
1)))
17666 var redeemScriptChunks = bscript.decompile(lastChunk)
17668 // is redeemScript a valid script?
17669 if (redeemScriptChunks.length ===
0) return false
17671 // is redeemScriptSig push only?
17672 if (!bscript.isPushOnly(scriptSigChunks)) return false
17674 var inputType = bscript.classifyInput(scriptSigChunks, allowIncomplete)
17675 var outputType = bscript.classifyOutput(redeemScriptChunks)
17676 if (chunks.length ===
1) {
17677 return outputType === bscript.types.P2WSH || outputType === bscript.types.P2WPKH
17679 return inputType === outputType
17681 check.toJSON = function () { return 'scriptHash input' }
17683 function encodeStack (redeemScriptStack, redeemScript) {
17684 var serializedScriptPubKey = bscript.compile(redeemScript)
17686 return [].concat(redeemScriptStack, serializedScriptPubKey)
17689 function encode (redeemScriptSig, redeemScript) {
17690 var redeemScriptStack = bscript.decompile(redeemScriptSig)
17692 return bscript.compile(encodeStack(redeemScriptStack, redeemScript))
17695 function decodeStack (stack) {
17696 typeforce(check, stack)
17699 redeemScriptStack: stack.slice(
0, -
1),
17700 redeemScript: stack[stack.length -
1]
17704 function decode (buffer) {
17705 var stack = bscript.decompile(buffer)
17706 var result = decodeStack(stack)
17707 result.redeemScriptSig = bscript.compile(result.redeemScriptStack)
17708 delete result.redeemScriptStack
17715 decodeStack: decodeStack,
17717 encodeStack: encodeStack
17720 },{"../../script":
52,"safe-buffer":
98,"typeforce":
109}],
67:[function(require,module,exports){
17721 // OP_HASH160 {scriptHash} OP_EQUAL
17723 var bscript = require('../../script')
17724 var types = require('../../types')
17725 var typeforce = require('typeforce')
17726 var OPS = require('bitcoin-ops')
17728 function check (script) {
17729 var buffer = bscript.compile(script)
17731 return buffer.length ===
23 &&
17732 buffer[
0] === OPS.OP_HASH160 &&
17733 buffer[
1] ===
0x14 &&
17734 buffer[
22] === OPS.OP_EQUAL
17736 check.toJSON = function () { return 'scriptHash output' }
17738 function encode (scriptHash) {
17739 typeforce(types.Hash160bit, scriptHash)
17741 return bscript.compile([OPS.OP_HASH160, scriptHash, OPS.OP_EQUAL])
17744 function decode (buffer) {
17745 typeforce(check, buffer)
17747 return buffer.slice(
2,
22)
17756 },{"../../script":
52,"../../types":
78,"bitcoin-ops":
40,"typeforce":
109}],
68:[function(require,module,exports){
17758 output: require('./output')
17761 },{"./output":
69}],
69:[function(require,module,exports){
17762 // OP_RETURN {aa21a9ed} {commitment}
17764 var Buffer = require('safe-buffer').Buffer
17765 var bscript = require('../../script')
17766 var types = require('../../types')
17767 var typeforce = require('typeforce')
17768 var OPS = require('bitcoin-ops')
17770 var HEADER = Buffer.from('aa21a9ed', 'hex')
17772 function check (script) {
17773 var buffer = bscript.compile(script)
17775 return buffer.length
> 37 &&
17776 buffer[
0] === OPS.OP_RETURN &&
17777 buffer[
1] ===
0x24 &&
17778 buffer.slice(
2,
6).equals(HEADER)
17781 check.toJSON = function () { return 'Witness commitment output' }
17783 function encode (commitment) {
17784 typeforce(types.Hash256bit, commitment)
17786 var buffer = Buffer.allocUnsafe(
36)
17787 HEADER.copy(buffer,
0)
17788 commitment.copy(buffer,
4)
17790 return bscript.compile([OPS.OP_RETURN, buffer])
17793 function decode (buffer) {
17794 typeforce(check, buffer)
17796 return bscript.decompile(buffer)[
1].slice(
4,
36)
17805 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"safe-buffer":
98,
"typeforce":
109}],
70:[function(require,module,exports){
17806 arguments[
4][
55][
0].apply(exports,arguments)
17807 },{
"./input":
71,
"./output":
72,
"dup":
55}],
71:[function(require,module,exports){
17808 // {signature} {pubKey}
17810 var pkh = require('../pubkeyhash/input')
17814 decodeStack: pkh.decodeStack,
17815 encodeStack: pkh.encodeStack
17818 },{
"../pubkeyhash/input":
63}],
72:[function(require,module,exports){
17819 // OP_0 {pubKeyHash}
17821 var bscript = require('../../script')
17822 var types = require('../../types')
17823 var typeforce = require('typeforce')
17824 var OPS = require('bitcoin-ops')
17826 function check (script) {
17827 var buffer = bscript.compile(script)
17829 return buffer.length ===
22 &&
17830 buffer[
0] === OPS.OP_0 &&
17833 check.toJSON = function () { return 'Witness pubKeyHash output' }
17835 function encode (pubKeyHash) {
17836 typeforce(types.Hash160bit, pubKeyHash)
17838 return bscript.compile([OPS.OP_0, pubKeyHash])
17841 function decode (buffer) {
17842 typeforce(check, buffer)
17844 return buffer.slice(
2)
17853 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
73:[function(require,module,exports){
17854 arguments[
4][
55][
0].apply(exports,arguments)
17855 },{
"./input":
74,
"./output":
75,
"dup":
55}],
74:[function(require,module,exports){
17856 // {signature} {pubKey}
17858 var p2sh = require('../scripthash/input')
17862 decodeStack: p2sh.decodeStack,
17863 encodeStack: p2sh.encodeStack
17866 },{
"../scripthash/input":
66}],
75:[function(require,module,exports){
17867 // OP_0 {scriptHash}
17869 var bscript = require('../../script')
17870 var types = require('../../types')
17871 var typeforce = require('typeforce')
17872 var OPS = require('bitcoin-ops')
17874 function check (script) {
17875 var buffer = bscript.compile(script)
17877 return buffer.length ===
34 &&
17878 buffer[
0] === OPS.OP_0 &&
17881 check.toJSON = function () { return 'Witness scriptHash output' }
17883 function encode (scriptHash) {
17884 typeforce(types.Hash256bit, scriptHash)
17886 return bscript.compile([OPS.OP_0, scriptHash])
17889 function decode (buffer) {
17890 typeforce(check, buffer)
17892 return buffer.slice(
2)
17901 },{
"../../script":
52,
"../../types":
78,
"bitcoin-ops":
40,
"typeforce":
109}],
76:[function(require,module,exports){
17902 var Buffer = require('safe-buffer').Buffer
17903 var bcrypto = require('./crypto')
17904 var bscript = require('./script')
17905 var bufferutils = require('./bufferutils')
17906 var opcodes = require('bitcoin-ops')
17907 var typeforce = require('typeforce')
17908 var types = require('./types')
17909 var varuint = require('varuint-bitcoin')
17911 function varSliceSize (someScript) {
17912 var length = someScript.length
17914 return varuint.encodingLength(length) + length
17917 function vectorSize (someVector) {
17918 var length = someVector.length
17920 return varuint.encodingLength(length) + someVector.reduce(function (sum, witness) {
17921 return sum + varSliceSize(witness)
17925 function Transaction () {
17932 Transaction.DEFAULT_SEQUENCE =
0xffffffff
17933 Transaction.SIGHASH_ALL =
0x01
17934 Transaction.SIGHASH_NONE =
0x02
17935 Transaction.SIGHASH_SINGLE =
0x03
17936 Transaction.SIGHASH_ANYONECANPAY =
0x80
17937 Transaction.ADVANCED_TRANSACTION_MARKER =
0x00
17938 Transaction.ADVANCED_TRANSACTION_FLAG =
0x01
17940 var EMPTY_SCRIPT = Buffer.allocUnsafe(
0)
17941 var EMPTY_WITNESS = []
17942 var ZERO = Buffer.from('
0000000000000000000000000000000000000000000000000000000000000000', 'hex')
17943 var ONE = Buffer.from('
0000000000000000000000000000000000000000000000000000000000000001', 'hex')
17944 var VALUE_UINT64_MAX = Buffer.from('ffffffffffffffff', 'hex')
17945 var BLANK_OUTPUT = {
17946 script: EMPTY_SCRIPT,
17947 valueBuffer: VALUE_UINT64_MAX
17950 Transaction.fromBuffer = function (buffer, __noStrict) {
17952 function readSlice (n) {
17954 return buffer.slice(offset - n, offset)
17957 function readUInt32 () {
17958 var i = buffer.readUInt32LE(offset)
17963 function readInt32 () {
17964 var i = buffer.readInt32LE(offset)
17969 function readUInt64 () {
17970 var i = bufferutils.readUInt64LE(buffer, offset)
17975 function readVarInt () {
17976 var vi = varuint.decode(buffer, offset)
17977 offset += varuint.decode.bytes
17981 function readVarSlice () {
17982 return readSlice(readVarInt())
17985 function readVector () {
17986 var count = readVarInt()
17988 for (var i =
0; i < count; i++) vector.push(readVarSlice())
17992 var tx = new Transaction()
17993 tx.version = readInt32()
17995 var marker = buffer.readUInt8(offset)
17996 var flag = buffer.readUInt8(offset +
1)
17998 var hasWitnesses = false
17999 if (marker === Transaction.ADVANCED_TRANSACTION_MARKER &&
18000 flag === Transaction.ADVANCED_TRANSACTION_FLAG) {
18002 hasWitnesses = true
18005 var vinLen = readVarInt()
18006 for (var i =
0; i < vinLen; ++i) {
18008 hash: readSlice(
32),
18009 index: readUInt32(),
18010 script: readVarSlice(),
18011 sequence: readUInt32(),
18012 witness: EMPTY_WITNESS
18016 var voutLen = readVarInt()
18017 for (i =
0; i < voutLen; ++i) {
18019 value: readUInt64(),
18020 script: readVarSlice()
18024 if (hasWitnesses) {
18025 for (i =
0; i < vinLen; ++i) {
18026 tx.ins[i].witness = readVector()
18029 // was this pointless?
18030 if (!tx.hasWitnesses()) throw new Error('Transaction has superfluous witness data')
18033 tx.locktime = readUInt32()
18035 if (__noStrict) return tx
18036 if (offset !== buffer.length) throw new Error('Transaction has unexpected data')
18041 Transaction.fromHex = function (hex) {
18042 return Transaction.fromBuffer(Buffer.from(hex, 'hex'))
18045 Transaction.isCoinbaseHash = function (buffer) {
18046 typeforce(types.Hash256bit, buffer)
18047 for (var i =
0; i <
32; ++i) {
18048 if (buffer[i] !==
0) return false
18053 Transaction.prototype.isCoinbase = function () {
18054 return this.ins.length ===
1 && Transaction.isCoinbaseHash(this.ins[
0].hash)
18057 Transaction.prototype.addInput = function (hash, index, sequence, scriptSig) {
18058 typeforce(types.tuple(
18061 types.maybe(types.UInt32),
18062 types.maybe(types.Buffer)
18065 if (types.Null(sequence)) {
18066 sequence = Transaction.DEFAULT_SEQUENCE
18069 // Add the input and return the input's index
18070 return (this.ins.push({
18073 script: scriptSig || EMPTY_SCRIPT,
18074 sequence: sequence,
18075 witness: EMPTY_WITNESS
18079 Transaction.prototype.addOutput = function (scriptPubKey, value) {
18080 typeforce(types.tuple(types.Buffer, types.Satoshi), arguments)
18082 // Add the output and return the output's index
18083 return (this.outs.push({
18084 script: scriptPubKey,
18089 Transaction.prototype.hasWitnesses = function () {
18090 return this.ins.some(function (x) {
18091 return x.witness.length !==
0
18095 Transaction.prototype.weight = function () {
18096 var base = this.__byteLength(false)
18097 var total = this.__byteLength(true)
18098 return base *
3 + total
18101 Transaction.prototype.virtualSize = function () {
18102 return Math.ceil(this.weight() /
4)
18105 Transaction.prototype.byteLength = function () {
18106 return this.__byteLength(true)
18109 Transaction.prototype.__byteLength = function (__allowWitness) {
18110 var hasWitnesses = __allowWitness && this.hasWitnesses()
18113 (hasWitnesses ?
10 :
8) +
18114 varuint.encodingLength(this.ins.length) +
18115 varuint.encodingLength(this.outs.length) +
18116 this.ins.reduce(function (sum, input) { return sum +
40 + varSliceSize(input.script) },
0) +
18117 this.outs.reduce(function (sum, output) { return sum +
8 + varSliceSize(output.script) },
0) +
18118 (hasWitnesses ? this.ins.reduce(function (sum, input) { return sum + vectorSize(input.witness) },
0) :
0)
18122 Transaction.prototype.clone = function () {
18123 var newTx = new Transaction()
18124 newTx.version = this.version
18125 newTx.locktime = this.locktime
18127 newTx.ins = this.ins.map(function (txIn) {
18131 script: txIn.script,
18132 sequence: txIn.sequence,
18133 witness: txIn.witness
18137 newTx.outs = this.outs.map(function (txOut) {
18139 script: txOut.script,
18148 * Hash transaction for signing a specific input.
18150 * Bitcoin uses a different hash for each signed transaction input.
18151 * This method copies the transaction, makes the necessary changes based on the
18152 * hashType, and then hashes the result.
18153 * This hash can then be used to sign the provided transaction input.
18155 Transaction.prototype.hashForSignature = function (inIndex, prevOutScript, hashType) {
18156 typeforce(types.tuple(types.UInt32, types.Buffer, /* types.UInt8 */ types.Number), arguments)
18158 // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L29
18159 if (inIndex
>= this.ins.length) return ONE
18161 // ignore OP_CODESEPARATOR
18162 var ourScript = bscript.compile(bscript.decompile(prevOutScript).filter(function (x) {
18163 return x !== opcodes.OP_CODESEPARATOR
18166 var txTmp = this.clone()
18168 // SIGHASH_NONE: ignore all outputs? (wildcard payee)
18169 if ((hashType &
0x1f) === Transaction.SIGHASH_NONE) {
18172 // ignore sequence numbers (except at inIndex)
18173 txTmp.ins.forEach(function (input, i) {
18174 if (i === inIndex) return
18179 // SIGHASH_SINGLE: ignore all outputs, except at the same index?
18180 } else if ((hashType &
0x1f) === Transaction.SIGHASH_SINGLE) {
18181 // https://github.com/bitcoin/bitcoin/blob/master/src/test/sighash_tests.cpp#L60
18182 if (inIndex
>= this.outs.length) return ONE
18184 // truncate outputs after
18185 txTmp.outs.length = inIndex +
1
18187 // "blank" outputs before
18188 for (var i =
0; i < inIndex; i++) {
18189 txTmp.outs[i] = BLANK_OUTPUT
18192 // ignore sequence numbers (except at inIndex)
18193 txTmp.ins.forEach(function (input, y) {
18194 if (y === inIndex) return
18200 // SIGHASH_ANYONECANPAY: ignore inputs entirely?
18201 if (hashType & Transaction.SIGHASH_ANYONECANPAY) {
18202 txTmp.ins = [txTmp.ins[inIndex]]
18203 txTmp.ins[
0].script = ourScript
18205 // SIGHASH_ALL: only ignore input scripts
18207 // "blank" others input scripts
18208 txTmp.ins.forEach(function (input) { input.script = EMPTY_SCRIPT })
18209 txTmp.ins[inIndex].script = ourScript
18212 // serialize and hash
18213 var buffer = Buffer.allocUnsafe(txTmp.__byteLength(false) +
4)
18214 buffer.writeInt32LE(hashType, buffer.length -
4)
18215 txTmp.__toBuffer(buffer,
0, false)
18217 return bcrypto.hash256(buffer)
18220 Transaction.prototype.hashForWitnessV0 = function (inIndex, prevOutScript, value, hashType) {
18221 typeforce(types.tuple(types.UInt32, types.Buffer, types.Satoshi, types.UInt32), arguments)
18223 var tbuffer, toffset
18224 function writeSlice (slice) { toffset += slice.copy(tbuffer, toffset) }
18225 function writeUInt32 (i) { toffset = tbuffer.writeUInt32LE(i, toffset) }
18226 function writeUInt64 (i) { toffset = bufferutils.writeUInt64LE(tbuffer, i, toffset) }
18227 function writeVarInt (i) {
18228 varuint.encode(i, tbuffer, toffset)
18229 toffset += varuint.encode.bytes
18231 function writeVarSlice (slice) { writeVarInt(slice.length); writeSlice(slice) }
18233 var hashOutputs = ZERO
18234 var hashPrevouts = ZERO
18235 var hashSequence = ZERO
18237 if (!(hashType & Transaction.SIGHASH_ANYONECANPAY)) {
18238 tbuffer = Buffer.allocUnsafe(
36 * this.ins.length)
18241 this.ins.forEach(function (txIn) {
18242 writeSlice(txIn.hash)
18243 writeUInt32(txIn.index)
18246 hashPrevouts = bcrypto.hash256(tbuffer)
18249 if (!(hashType & Transaction.SIGHASH_ANYONECANPAY) &&
18250 (hashType &
0x1f) !== Transaction.SIGHASH_SINGLE &&
18251 (hashType &
0x1f) !== Transaction.SIGHASH_NONE) {
18252 tbuffer = Buffer.allocUnsafe(
4 * this.ins.length)
18255 this.ins.forEach(function (txIn) {
18256 writeUInt32(txIn.sequence)
18259 hashSequence = bcrypto.hash256(tbuffer)
18262 if ((hashType &
0x1f) !== Transaction.SIGHASH_SINGLE &&
18263 (hashType &
0x1f) !== Transaction.SIGHASH_NONE) {
18264 var txOutsSize = this.outs.reduce(function (sum, output) {
18265 return sum +
8 + varSliceSize(output.script)
18268 tbuffer = Buffer.allocUnsafe(txOutsSize)
18271 this.outs.forEach(function (out) {
18272 writeUInt64(out.value)
18273 writeVarSlice(out.script)
18276 hashOutputs = bcrypto.hash256(tbuffer)
18277 } else if ((hashType &
0x1f) === Transaction.SIGHASH_SINGLE && inIndex < this.outs.length) {
18278 var output = this.outs[inIndex]
18280 tbuffer = Buffer.allocUnsafe(
8 + varSliceSize(output.script))
18282 writeUInt64(output.value)
18283 writeVarSlice(output.script)
18285 hashOutputs = bcrypto.hash256(tbuffer)
18288 tbuffer = Buffer.allocUnsafe(
156 + varSliceSize(prevOutScript))
18291 var input = this.ins[inIndex]
18292 writeUInt32(this.version)
18293 writeSlice(hashPrevouts)
18294 writeSlice(hashSequence)
18295 writeSlice(input.hash)
18296 writeUInt32(input.index)
18297 writeVarSlice(prevOutScript)
18299 writeUInt32(input.sequence)
18300 writeSlice(hashOutputs)
18301 writeUInt32(this.locktime)
18302 writeUInt32(hashType)
18303 return bcrypto.hash256(tbuffer)
18306 Transaction.prototype.getHash = function () {
18307 return bcrypto.hash256(this.__toBuffer(undefined, undefined, false))
18310 Transaction.prototype.getId = function () {
18311 // transaction hash's are displayed in reverse order
18312 return this.getHash().reverse().toString('hex')
18315 Transaction.prototype.toBuffer = function (buffer, initialOffset) {
18316 return this.__toBuffer(buffer, initialOffset, true)
18319 Transaction.prototype.__toBuffer = function (buffer, initialOffset, __allowWitness) {
18320 if (!buffer) buffer = Buffer.allocUnsafe(this.__byteLength(__allowWitness))
18322 var offset = initialOffset ||
0
18323 function writeSlice (slice) { offset += slice.copy(buffer, offset) }
18324 function writeUInt8 (i) { offset = buffer.writeUInt8(i, offset) }
18325 function writeUInt32 (i) { offset = buffer.writeUInt32LE(i, offset) }
18326 function writeInt32 (i) { offset = buffer.writeInt32LE(i, offset) }
18327 function writeUInt64 (i) { offset = bufferutils.writeUInt64LE(buffer, i, offset) }
18328 function writeVarInt (i) {
18329 varuint.encode(i, buffer, offset)
18330 offset += varuint.encode.bytes
18332 function writeVarSlice (slice) { writeVarInt(slice.length); writeSlice(slice) }
18333 function writeVector (vector) { writeVarInt(vector.length); vector.forEach(writeVarSlice) }
18335 writeInt32(this.version)
18337 var hasWitnesses = __allowWitness && this.hasWitnesses()
18339 if (hasWitnesses) {
18340 writeUInt8(Transaction.ADVANCED_TRANSACTION_MARKER)
18341 writeUInt8(Transaction.ADVANCED_TRANSACTION_FLAG)
18344 writeVarInt(this.ins.length)
18346 this.ins.forEach(function (txIn) {
18347 writeSlice(txIn.hash)
18348 writeUInt32(txIn.index)
18349 writeVarSlice(txIn.script)
18350 writeUInt32(txIn.sequence)
18353 writeVarInt(this.outs.length)
18354 this.outs.forEach(function (txOut) {
18355 if (!txOut.valueBuffer) {
18356 writeUInt64(txOut.value)
18358 writeSlice(txOut.valueBuffer)
18361 writeVarSlice(txOut.script)
18364 if (hasWitnesses) {
18365 this.ins.forEach(function (input) {
18366 writeVector(input.witness)
18370 writeUInt32(this.locktime)
18372 // avoid slicing unless necessary
18373 if (initialOffset !== undefined) return buffer.slice(initialOffset, offset)
18377 Transaction.prototype.toHex = function () {
18378 return this.toBuffer().toString('hex')
18381 Transaction.prototype.setInputScript = function (index, scriptSig) {
18382 typeforce(types.tuple(types.Number, types.Buffer), arguments)
18384 this.ins[index].script = scriptSig
18387 Transaction.prototype.setWitness = function (index, witness) {
18388 typeforce(types.tuple(types.Number, [types.Buffer]), arguments)
18390 this.ins[index].witness = witness
18393 module.exports = Transaction
18395 },{"./bufferutils":
44,"./crypto":
45,"./script":
52,"./types":
78,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109,"varuint-bitcoin":
111}],
77:[function(require,module,exports){
18396 var Buffer = require('safe-buffer').Buffer
18397 var baddress = require('./address')
18398 var bcrypto = require('./crypto')
18399 var bscript = require('./script')
18400 var networks = require('./networks')
18401 var ops = require('bitcoin-ops')
18402 var typeforce = require('typeforce')
18403 var types = require('./types')
18404 var scriptTypes = bscript.types
18405 var SIGNABLE = [bscript.types.P2PKH, bscript.types.P2PK, bscript.types.MULTISIG]
18406 var P2SH = SIGNABLE.concat([bscript.types.P2WPKH, bscript.types.P2WSH])
18408 var ECPair = require('./ecpair')
18409 var ECSignature = require('./ecsignature')
18410 var Transaction = require('./transaction')
18412 function extractChunks (type, chunks, script) {
18414 var signatures = []
18416 case scriptTypes.P2PKH:
18417 // if (redeemScript) throw new Error('Nonstandard... P2SH(P2PKH)')
18418 pubKeys = chunks.slice(
1)
18419 signatures = chunks.slice(
0,
1)
18422 case scriptTypes.P2PK:
18423 pubKeys[
0] = script ? bscript.pubKey.output.decode(script) : undefined
18424 signatures = chunks.slice(
0,
1)
18427 case scriptTypes.MULTISIG:
18429 var multisig = bscript.multisig.output.decode(script)
18430 pubKeys = multisig.pubKeys
18433 signatures = chunks.slice(
1).map(function (chunk) {
18434 return chunk.length ===
0 ? undefined : chunk
18441 signatures: signatures
18444 function expandInput (scriptSig, witnessStack) {
18445 if (scriptSig.length ===
0 && witnessStack.length ===
0) return {}
18453 var witnessScriptType
18454 var redeemScriptType
18455 var witness = false
18461 var scriptSigChunks = bscript.decompile(scriptSig)
18462 var sigType = bscript.classifyInput(scriptSigChunks, true)
18463 if (sigType === scriptTypes.P2SH) {
18465 redeemScript = scriptSigChunks[scriptSigChunks.length -
1]
18466 redeemScriptType = bscript.classifyOutput(redeemScript)
18467 prevOutScript = bscript.scriptHash.output.encode(bcrypto.hash160(redeemScript))
18468 prevOutType = scriptTypes.P2SH
18469 script = redeemScript
18472 var classifyWitness = bscript.classifyWitness(witnessStack)
18473 if (classifyWitness === scriptTypes.P2WSH) {
18474 witnessScript = witnessStack[witnessStack.length -
1]
18475 witnessScriptType = bscript.classifyOutput(witnessScript)
18477 if (scriptSig.length ===
0) {
18478 prevOutScript = bscript.witnessScriptHash.output.encode(bcrypto.sha256(witnessScript))
18479 prevOutType = scriptTypes.P2WSH
18480 if (typeof redeemScript !== 'undefined') {
18481 throw new Error('Redeem script given when unnecessary')
18485 if (!redeemScript) {
18486 throw new Error('No redeemScript provided for P2WSH, but scriptSig non-empty')
18488 witnessProgram = bscript.witnessScriptHash.output.encode(bcrypto.sha256(witnessScript))
18489 if (!redeemScript.equals(witnessProgram)) {
18490 throw new Error('Redeem script didn\'t match witnessScript')
18494 if (SIGNABLE.indexOf(bscript.classifyOutput(witnessScript)) === -
1) {
18495 throw new Error('unsupported witness script')
18497 script = witnessScript
18498 scriptType = witnessScriptType
18499 chunks = witnessStack.slice(
0, -
1)
18500 } else if (classifyWitness === scriptTypes.P2WPKH) {
18501 var key = witnessStack[witnessStack.length -
1]
18502 var keyHash = bcrypto.hash160(key)
18503 if (scriptSig.length ===
0) {
18504 prevOutScript = bscript.witnessPubKeyHash.output.encode(keyHash)
18505 prevOutType = scriptTypes.P2WPKH
18506 if (typeof redeemScript !== 'undefined') {
18507 throw new Error('Redeem script given when unnecessary')
18510 if (!redeemScript) {
18511 throw new Error('No redeemScript provided for P2WPKH, but scriptSig wasn\'t empty')
18513 witnessProgram = bscript.witnessPubKeyHash.output.encode(keyHash)
18514 if (!redeemScript.equals(witnessProgram)) {
18515 throw new Error('Redeem script did not have the right witness program')
18519 scriptType = scriptTypes.P2PKH
18520 chunks = witnessStack
18521 } else if (redeemScript) {
18522 if (P2SH.indexOf(redeemScriptType) === -
1) {
18523 throw new Error('Bad redeemscript!')
18526 script = redeemScript
18527 scriptType = redeemScriptType
18528 chunks = scriptSigChunks.slice(
0, -
1)
18530 prevOutType = scriptType = bscript.classifyInput(scriptSig)
18531 chunks = scriptSigChunks
18534 var expanded = extractChunks(scriptType, chunks, script)
18537 pubKeys: expanded.pubKeys,
18538 signatures: expanded.signatures,
18539 prevOutScript: prevOutScript,
18540 prevOutType: prevOutType,
18541 signType: scriptType,
18542 signScript: script,
18543 witness: Boolean(witness)
18547 result.redeemScript = redeemScript
18548 result.redeemScriptType = redeemScriptType
18552 result.witnessScript = witnessScript
18553 result.witnessScriptType = witnessScriptType
18559 // could be done in expandInput, but requires the original Transaction for hashForSignature
18560 function fixMultisigOrder (input, transaction, vin) {
18561 if (input.redeemScriptType !== scriptTypes.MULTISIG || !input.redeemScript) return
18562 if (input.pubKeys.length === input.signatures.length) return
18564 var unmatched = input.signatures.concat()
18566 input.signatures = input.pubKeys.map(function (pubKey) {
18567 var keyPair = ECPair.fromPublicKeyBuffer(pubKey)
18570 // check for a signature
18571 unmatched.some(function (signature, i) {
18572 // skip if undefined || OP_0
18573 if (!signature) return false
18575 // TODO: avoid O(n) hashForSignature
18576 var parsed = ECSignature.parseScriptSignature(signature)
18577 var hash = transaction.hashForSignature(vin, input.redeemScript, parsed.hashType)
18579 // skip if signature does not match pubKey
18580 if (!keyPair.verify(hash, parsed.signature)) return false
18582 // remove matched signature from unmatched
18583 unmatched[i] = undefined
18593 function expandOutput (script, scriptType, ourPubKey) {
18594 typeforce(types.Buffer, script)
18596 var scriptChunks = bscript.decompile(script)
18598 scriptType = bscript.classifyOutput(script)
18603 switch (scriptType) {
18604 // does our hash160(pubKey) match the output scripts?
18605 case scriptTypes.P2PKH:
18606 if (!ourPubKey) break
18608 var pkh1 = scriptChunks[
2]
18609 var pkh2 = bcrypto.hash160(ourPubKey)
18610 if (pkh1.equals(pkh2)) pubKeys = [ourPubKey]
18613 // does our hash160(pubKey) match the output scripts?
18614 case scriptTypes.P2WPKH:
18615 if (!ourPubKey) break
18617 var wpkh1 = scriptChunks[
1]
18618 var wpkh2 = bcrypto.hash160(ourPubKey)
18619 if (wpkh1.equals(wpkh2)) pubKeys = [ourPubKey]
18622 case scriptTypes.P2PK:
18623 pubKeys = scriptChunks.slice(
0,
1)
18626 case scriptTypes.MULTISIG:
18627 pubKeys = scriptChunks.slice(
1, -
2)
18630 default: return { scriptType: scriptType }
18635 scriptType: scriptType,
18636 signatures: pubKeys.map(function () { return undefined })
18640 function checkP2shInput (input, redeemScriptHash) {
18641 if (input.prevOutType) {
18642 if (input.prevOutType !== scriptTypes.P2SH) throw new Error('PrevOutScript must be P2SH')
18644 var prevOutScriptScriptHash = bscript.decompile(input.prevOutScript)[
1]
18645 if (!prevOutScriptScriptHash.equals(redeemScriptHash)) throw new Error('Inconsistent hash160(RedeemScript)')
18649 function checkP2WSHInput (input, witnessScriptHash) {
18650 if (input.prevOutType) {
18651 if (input.prevOutType !== scriptTypes.P2WSH) throw new Error('PrevOutScript must be P2WSH')
18653 var scriptHash = bscript.decompile(input.prevOutScript)[
1]
18654 if (!scriptHash.equals(witnessScriptHash)) throw new Error('Inconsistent sha25(WitnessScript)')
18658 function prepareInput (input, kpPubKey, redeemScript, witnessValue, witnessScript) {
18665 var redeemScriptHash
18667 var witness = false
18670 var witnessScriptHash
18675 if (redeemScript && witnessScript) {
18676 redeemScriptHash = bcrypto.hash160(redeemScript)
18677 witnessScriptHash = bcrypto.sha256(witnessScript)
18678 checkP2shInput(input, redeemScriptHash)
18680 if (!redeemScript.equals(bscript.witnessScriptHash.output.encode(witnessScriptHash))) throw new Error('Witness script inconsistent with redeem script')
18682 expanded = expandOutput(witnessScript, undefined, kpPubKey)
18683 if (!expanded.pubKeys) throw new Error('WitnessScript not supported "' + bscript.toASM(redeemScript) + '"')
18684 prevOutType = bscript.types.P2SH
18685 prevOutScript = bscript.scriptHash.output.encode(redeemScriptHash)
18686 p2sh = witness = p2wsh = true
18687 p2shType = bscript.types.P2WSH
18688 signType = witnessType = expanded.scriptType
18689 signScript = witnessScript
18690 } else if (redeemScript) {
18691 redeemScriptHash = bcrypto.hash160(redeemScript)
18692 checkP2shInput(input, redeemScriptHash)
18694 expanded = expandOutput(redeemScript, undefined, kpPubKey)
18695 if (!expanded.pubKeys) throw new Error('RedeemScript not supported "' + bscript.toASM(redeemScript) + '"')
18697 prevOutType = bscript.types.P2SH
18698 prevOutScript = bscript.scriptHash.output.encode(redeemScriptHash)
18700 signType = p2shType = expanded.scriptType
18701 signScript = redeemScript
18702 witness = signType === bscript.types.P2WPKH
18703 } else if (witnessScript) {
18704 witnessScriptHash = bcrypto.sha256(witnessScript)
18705 checkP2WSHInput(input, witnessScriptHash)
18707 expanded = expandOutput(witnessScript, undefined, kpPubKey)
18708 if (!expanded.pubKeys) throw new Error('WitnessScript not supported "' + bscript.toASM(redeemScript) + '"')
18710 prevOutType = bscript.types.P2WSH
18711 prevOutScript = bscript.witnessScriptHash.output.encode(witnessScriptHash)
18712 witness = p2wsh = true
18713 signType = witnessType = expanded.scriptType
18714 signScript = witnessScript
18715 } else if (input.prevOutType) {
18716 // embedded scripts are not possible without a redeemScript
18717 if (input.prevOutType === scriptTypes.P2SH ||
18718 input.prevOutType === scriptTypes.P2WSH) {
18719 throw new Error('PrevOutScript is ' + input.prevOutType + ', requires redeemScript')
18722 prevOutType = input.prevOutType
18723 prevOutScript = input.prevOutScript
18724 expanded = expandOutput(input.prevOutScript, input.prevOutType, kpPubKey)
18725 if (!expanded.pubKeys) return
18727 witness = (input.prevOutType === scriptTypes.P2WPKH)
18728 signType = prevOutType
18729 signScript = prevOutScript
18731 prevOutScript = bscript.pubKeyHash.output.encode(bcrypto.hash160(kpPubKey))
18732 expanded = expandOutput(prevOutScript, scriptTypes.P2PKH, kpPubKey)
18733 prevOutType = scriptTypes.P2PKH
18735 signType = prevOutType
18736 signScript = prevOutScript
18739 if (witness && !types.Satoshi(witnessValue)) {
18740 throw new Error('Input was witness but not given witness value')
18743 if (signType === scriptTypes.P2WPKH) {
18744 signScript = bscript.pubKeyHash.output.encode(bscript.witnessPubKeyHash.output.decode(signScript))
18748 input.redeemScript = redeemScript
18749 input.redeemScriptType = p2shType
18753 input.witnessScript = witnessScript
18754 input.witnessScriptType = witnessType
18757 input.pubKeys = expanded.pubKeys
18758 input.signatures = expanded.signatures
18759 input.signScript = signScript
18760 input.signType = signType
18761 input.prevOutScript = prevOutScript
18762 input.prevOutType = prevOutType
18763 input.witness = witness
18766 function buildStack (type, signatures, pubKeys, allowIncomplete) {
18767 if (type === scriptTypes.P2PKH) {
18768 if (signatures.length ===
1 && Buffer.isBuffer(signatures[
0]) && pubKeys.length ===
1) return bscript.pubKeyHash.input.encodeStack(signatures[
0], pubKeys[
0])
18769 } else if (type === scriptTypes.P2PK) {
18770 if (signatures.length ===
1 && Buffer.isBuffer(signatures[
0])) return bscript.pubKey.input.encodeStack(signatures[
0])
18771 } else if (type === scriptTypes.MULTISIG) {
18772 if (signatures.length
> 0) {
18773 signatures = signatures.map(function (signature) {
18774 return signature || ops.OP_0
18776 if (!allowIncomplete) {
18777 // remove blank signatures
18778 signatures = signatures.filter(function (x) { return x !== ops.OP_0 })
18781 return bscript.multisig.input.encodeStack(signatures /* see if it's necessary first */)
18784 throw new Error('Not yet supported')
18787 if (!allowIncomplete) throw new Error('Not enough signatures provided')
18792 function buildInput (input, allowIncomplete) {
18793 var scriptType = input.prevOutType
18796 if (SIGNABLE.indexOf(scriptType) !== -
1) {
18797 sig = buildStack(scriptType, input.signatures, input.pubKeys, allowIncomplete)
18801 if (scriptType === bscript.types.P2SH) {
18802 // We can remove this error later when we have a guarantee prepareInput
18803 // rejects unsignable scripts - it MUST be signable at this point.
18804 if (P2SH.indexOf(input.redeemScriptType) === -
1) {
18805 throw new Error('Impossible to sign this type')
18808 if (SIGNABLE.indexOf(input.redeemScriptType) !== -
1) {
18809 sig = buildStack(input.redeemScriptType, input.signatures, input.pubKeys, allowIncomplete)
18811 // If it wasn't SIGNABLE, it's witness, defer to that
18812 scriptType = input.redeemScriptType
18815 if (scriptType === bscript.types.P2WPKH) {
18816 // P2WPKH is a special case of P2PKH
18817 witness = buildStack(bscript.types.P2PKH, input.signatures, input.pubKeys, allowIncomplete)
18818 } else if (scriptType === bscript.types.P2WSH) {
18819 // We can remove this check later
18820 if (SIGNABLE.indexOf(input.witnessScriptType) !== -
1) {
18821 witness = buildStack(input.witnessScriptType, input.signatures, input.pubKeys, allowIncomplete)
18822 witness.push(input.witnessScript)
18824 // We can remove this error later when we have a guarantee prepareInput
18825 // rejects unsignble scripts - it MUST be signable at this point.
18829 scriptType = input.witnessScriptType
18832 // append redeemScript if necessary
18834 sig.push(input.redeemScript)
18839 script: bscript.compile(sig),
18844 function TransactionBuilder (network, maximumFeeRate) {
18845 this.prevTxMap = {}
18846 this.network = network || networks.bitcoin
18848 // WARNING: This is __NOT__ to be relied on, its just another potential safety mechanism (safety in-depth)
18849 this.maximumFeeRate = maximumFeeRate ||
1000
18852 this.tx = new Transaction()
18855 TransactionBuilder.prototype.setLockTime = function (locktime) {
18856 typeforce(types.UInt32, locktime)
18858 // if any signatures exist, throw
18859 if (this.inputs.some(function (input) {
18860 if (!input.signatures) return false
18862 return input.signatures.some(function (s) { return s })
18864 throw new Error('No, this would invalidate signatures')
18867 this.tx.locktime = locktime
18870 TransactionBuilder.prototype.setVersion = function (version) {
18871 typeforce(types.UInt32, version)
18873 // XXX: this might eventually become more complex depending on what the versions represent
18874 this.tx.version = version
18877 TransactionBuilder.fromTransaction = function (transaction, network) {
18878 var txb = new TransactionBuilder(network)
18880 // Copy transaction fields
18881 txb.setVersion(transaction.version)
18882 txb.setLockTime(transaction.locktime)
18884 // Copy outputs (done first to avoid signature invalidation)
18885 transaction.outs.forEach(function (txOut) {
18886 txb.addOutput(txOut.script, txOut.value)
18890 transaction.ins.forEach(function (txIn) {
18891 txb.__addInputUnsafe(txIn.hash, txIn.index, {
18892 sequence: txIn.sequence,
18893 script: txIn.script,
18894 witness: txIn.witness
18898 // fix some things not possible through the public API
18899 txb.inputs.forEach(function (input, i) {
18900 fixMultisigOrder(input, transaction, i)
18906 TransactionBuilder.prototype.addInput = function (txHash, vout, sequence, prevOutScript) {
18907 if (!this.__canModifyInputs()) {
18908 throw new Error('No, this would invalidate signatures')
18913 // is it a hex string?
18914 if (typeof txHash === 'string') {
18915 // transaction hashs's are displayed in reverse order, un-reverse it
18916 txHash = Buffer.from(txHash, 'hex').reverse()
18918 // is it a Transaction object?
18919 } else if (txHash instanceof Transaction) {
18920 var txOut = txHash.outs[vout]
18921 prevOutScript = txOut.script
18922 value = txOut.value
18924 txHash = txHash.getHash()
18927 return this.__addInputUnsafe(txHash, vout, {
18928 sequence: sequence,
18929 prevOutScript: prevOutScript,
18934 TransactionBuilder.prototype.__addInputUnsafe = function (txHash, vout, options) {
18935 if (Transaction.isCoinbaseHash(txHash)) {
18936 throw new Error('coinbase inputs not supported')
18939 var prevTxOut = txHash.toString('hex') + ':' + vout
18940 if (this.prevTxMap[prevTxOut] !== undefined) throw new Error('Duplicate TxOut: ' + prevTxOut)
18944 // derive what we can from the scriptSig
18945 if (options.script !== undefined) {
18946 input = expandInput(options.script, options.witness || [])
18949 // if an input value was given, retain it
18950 if (options.value !== undefined) {
18951 input.value = options.value
18954 // derive what we can from the previous transactions output script
18955 if (!input.prevOutScript && options.prevOutScript) {
18958 if (!input.pubKeys && !input.signatures) {
18959 var expanded = expandOutput(options.prevOutScript)
18961 if (expanded.pubKeys) {
18962 input.pubKeys = expanded.pubKeys
18963 input.signatures = expanded.signatures
18966 prevOutType = expanded.scriptType
18969 input.prevOutScript = options.prevOutScript
18970 input.prevOutType = prevOutType || bscript.classifyOutput(options.prevOutScript)
18973 var vin = this.tx.addInput(txHash, vout, options.sequence, options.scriptSig)
18974 this.inputs[vin] = input
18975 this.prevTxMap[prevTxOut] = vin
18980 TransactionBuilder.prototype.addOutput = function (scriptPubKey, value) {
18981 if (!this.__canModifyOutputs()) {
18982 throw new Error('No, this would invalidate signatures')
18985 // Attempt to get a script if it's a base58 address string
18986 if (typeof scriptPubKey === 'string') {
18987 scriptPubKey = baddress.toOutputScript(scriptPubKey, this.network)
18990 return this.tx.addOutput(scriptPubKey, value)
18993 TransactionBuilder.prototype.build = function () {
18994 return this.__build(false)
18996 TransactionBuilder.prototype.buildIncomplete = function () {
18997 return this.__build(true)
19000 TransactionBuilder.prototype.__build = function (allowIncomplete) {
19001 if (!allowIncomplete) {
19002 if (!this.tx.ins.length) throw new Error('Transaction has no inputs')
19003 if (!this.tx.outs.length) throw new Error('Transaction has no outputs')
19006 var tx = this.tx.clone()
19007 // Create script signatures from inputs
19008 this.inputs.forEach(function (input, i) {
19009 var scriptType = input.witnessScriptType || input.redeemScriptType || input.prevOutType
19010 if (!scriptType && !allowIncomplete) throw new Error('Transaction is not complete')
19011 var result = buildInput(input, allowIncomplete)
19013 // skip if no result
19014 if (!allowIncomplete) {
19015 if (SIGNABLE.indexOf(result.type) === -
1 && result.type !== bscript.types.P2WPKH) {
19016 throw new Error(result.type + ' not supported')
19020 tx.setInputScript(i, result.script)
19021 tx.setWitness(i, result.witness)
19024 if (!allowIncomplete) {
19025 // do not rely on this, its merely a last resort
19026 if (this.__overMaximumFees(tx.byteLength())) {
19027 throw new Error('Transaction has absurd fees')
19034 function canSign (input) {
19035 return input.prevOutScript !== undefined &&
19036 input.signScript !== undefined &&
19037 input.pubKeys !== undefined &&
19038 input.signatures !== undefined &&
19039 input.signatures.length === input.pubKeys.length &&
19040 input.pubKeys.length
> 0 &&
19041 input.witness !== undefined
19044 TransactionBuilder.prototype.sign = function (vin, keyPair, redeemScript, hashType, witnessValue, witnessScript) {
19045 if (keyPair.network !== this.network) throw new Error('Inconsistent network')
19046 if (!this.inputs[vin]) throw new Error('No input at index: ' + vin)
19047 hashType = hashType || Transaction.SIGHASH_ALL
19049 var input = this.inputs[vin]
19051 // if redeemScript was previously provided, enforce consistency
19052 if (input.redeemScript !== undefined &&
19054 !input.redeemScript.equals(redeemScript)) {
19055 throw new Error('Inconsistent redeemScript')
19058 var kpPubKey = keyPair.getPublicKeyBuffer()
19059 if (!canSign(input)) {
19060 prepareInput(input, kpPubKey, redeemScript, witnessValue, witnessScript)
19061 if (!canSign(input)) throw Error(input.prevOutType + ' not supported')
19066 if (input.witness) {
19067 signatureHash = this.tx.hashForWitnessV0(vin, input.signScript, witnessValue, hashType)
19069 signatureHash = this.tx.hashForSignature(vin, input.signScript, hashType)
19071 // enforce in order signing of public keys
19072 var signed = input.pubKeys.some(function (pubKey, i) {
19073 if (!kpPubKey.equals(pubKey)) return false
19074 if (input.signatures[i]) throw new Error('Signature already exists')
19076 input.signatures[i] = keyPair.sign(signatureHash).toScriptSignature(hashType)
19080 if (!signed) throw new Error('Key pair cannot sign for this input')
19083 function signatureHashType (buffer) {
19084 return buffer.readUInt8(buffer.length -
1)
19087 TransactionBuilder.prototype.__canModifyInputs = function () {
19088 return this.inputs.every(function (input) {
19090 if (input.signatures === undefined) return true
19092 return input.signatures.every(function (signature) {
19093 if (!signature) return true
19094 var hashType = signatureHashType(signature)
19096 // if SIGHASH_ANYONECANPAY is set, signatures would not
19097 // be invalidated by more inputs
19098 return hashType & Transaction.SIGHASH_ANYONECANPAY
19103 TransactionBuilder.prototype.__canModifyOutputs = function () {
19104 var nInputs = this.tx.ins.length
19105 var nOutputs = this.tx.outs.length
19107 return this.inputs.every(function (input) {
19108 if (input.signatures === undefined) return true
19110 return input.signatures.every(function (signature) {
19111 if (!signature) return true
19112 var hashType = signatureHashType(signature)
19114 var hashTypeMod = hashType &
0x1f
19115 if (hashTypeMod === Transaction.SIGHASH_NONE) return true
19116 if (hashTypeMod === Transaction.SIGHASH_SINGLE) {
19117 // if SIGHASH_SINGLE is set, and nInputs
> nOutputs
19118 // some signatures would be invalidated by the addition
19120 return nInputs <= nOutputs
19126 TransactionBuilder.prototype.__overMaximumFees = function (bytes) {
19127 // not all inputs will have .value defined
19128 var incoming = this.inputs.reduce(function (a, x) { return a + (x.value
>>> 0) },
0)
19130 // but all outputs do, and if we have any input value
19131 // we can immediately determine if the outputs are too small
19132 var outgoing = this.tx.outs.reduce(function (a, x) { return a + x.value },
0)
19133 var fee = incoming - outgoing
19134 var feeRate = fee / bytes
19136 return feeRate
> this.maximumFeeRate
19139 module.exports = TransactionBuilder
19141 },{"./address":
42,"./crypto":
45,"./ecpair":
47,"./ecsignature":
48,"./networks":
51,"./script":
52,"./transaction":
76,"./types":
78,"bitcoin-ops":
40,"safe-buffer":
98,"typeforce":
109}],
78:[function(require,module,exports){
19142 var typeforce = require('typeforce')
19144 var UINT31_MAX = Math.pow(
2,
31) -
1
19145 function UInt31 (value) {
19146 return typeforce.UInt32(value) && value <= UINT31_MAX
19149 function BIP32Path (value) {
19150 return typeforce.String(value) && value.match(/^(m\/)?(\d+'?\/)*\d+'?$/)
19152 BIP32Path.toJSON = function () { return 'BIP32 derivation path' }
19154 var SATOSHI_MAX =
21 *
1e14
19155 function Satoshi (value) {
19156 return typeforce.UInt53(value) && value <= SATOSHI_MAX
19159 // external dependent types
19160 var BigInt = typeforce.quacksLike('BigInteger')
19161 var ECPoint = typeforce.quacksLike('Point')
19163 // exposed, external API
19164 var ECSignature = typeforce.compile({ r: BigInt, s: BigInt })
19165 var Network = typeforce.compile({
19166 messagePrefix: typeforce.oneOf(typeforce.Buffer, typeforce.String),
19168 public: typeforce.UInt32,
19169 private: typeforce.UInt32
19171 pubKeyHash: typeforce.UInt8,
19172 scriptHash: typeforce.UInt8,
19173 wif: typeforce.UInt8
19176 // extend typeforce types with ours
19179 BIP32Path: BIP32Path,
19180 Buffer256bit: typeforce.BufferN(
32),
19182 ECSignature: ECSignature,
19183 Hash160bit: typeforce.BufferN(
20),
19184 Hash256bit: typeforce.BufferN(
32),
19190 for (var typeName in typeforce) {
19191 types[typeName] = typeforce[typeName]
19194 module.exports = types
19196 },{"typeforce":
109}],
79:[function(require,module,exports){
19197 var basex = require('base-x')
19198 var ALPHABET = '
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
19200 module.exports = basex(ALPHABET)
19202 },{"base-x":
34}],
80:[function(require,module,exports){
19203 (function (Buffer){
19206 var base58 = require('bs58')
19207 var createHash = require('create-hash')
19209 // SHA256(SHA256(buffer))
19210 function sha256x2 (buffer) {
19211 var tmp = createHash('sha256').update(buffer).digest()
19212 return createHash('sha256').update(tmp).digest()
19215 // Encode a buffer as a base58-check encoded string
19216 function encode (payload) {
19217 var checksum = sha256x2(payload)
19219 return base58.encode(Buffer.concat([
19222 ], payload.length +
4))
19225 function decodeRaw (buffer) {
19226 var payload = buffer.slice(
0, -
4)
19227 var checksum = buffer.slice(-
4)
19228 var newChecksum = sha256x2(payload)
19230 if (checksum[
0] ^ newChecksum[
0] |
19231 checksum[
1] ^ newChecksum[
1] |
19232 checksum[
2] ^ newChecksum[
2] |
19233 checksum[
3] ^ newChecksum[
3]) return
19238 // Decode a base58-check encoded string to a buffer, no result if checksum is wrong
19239 function decodeUnsafe (string) {
19240 var buffer = base58.decodeUnsafe(string)
19241 if (!buffer) return
19243 return decodeRaw(buffer)
19246 function decode (string) {
19247 var buffer = base58.decode(string)
19248 var payload = decodeRaw(buffer)
19249 if (!payload) throw new Error('Invalid checksum')
19256 decodeUnsafe: decodeUnsafe
19259 }).call(this,require("buffer").Buffer)
19260 },{"bs58":
79,"buffer":
4,"create-hash":
82}],
81:[function(require,module,exports){
19261 var Buffer = require('safe-buffer').Buffer
19262 var Transform = require('stream').Transform
19263 var StringDecoder = require('string_decoder').StringDecoder
19264 var inherits = require('inherits')
19266 function CipherBase (hashMode) {
19267 Transform.call(this)
19268 this.hashMode = typeof hashMode === 'string'
19269 if (this.hashMode) {
19270 this[hashMode] = this._finalOrDigest
19272 this.final = this._finalOrDigest
19275 this.__final = this._final
19278 this._decoder = null
19279 this._encoding = null
19281 inherits(CipherBase, Transform)
19283 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
19284 if (typeof data === 'string') {
19285 data = Buffer.from(data, inputEnc)
19288 var outData = this._update(data)
19289 if (this.hashMode) return this
19292 outData = this._toString(outData, outputEnc)
19298 CipherBase.prototype.setAutoPadding = function () {}
19299 CipherBase.prototype.getAuthTag = function () {
19300 throw new Error('trying to get auth tag in unsupported state')
19303 CipherBase.prototype.setAuthTag = function () {
19304 throw new Error('trying to set auth tag in unsupported state')
19307 CipherBase.prototype.setAAD = function () {
19308 throw new Error('trying to set aad in unsupported state')
19311 CipherBase.prototype._transform = function (data, _, next) {
19314 if (this.hashMode) {
19317 this.push(this._update(data))
19325 CipherBase.prototype._flush = function (done) {
19328 this.push(this.__final())
19335 CipherBase.prototype._finalOrDigest = function (outputEnc) {
19336 var outData = this.__final() || Buffer.alloc(
0)
19338 outData = this._toString(outData, outputEnc, true)
19343 CipherBase.prototype._toString = function (value, enc, fin) {
19344 if (!this._decoder) {
19345 this._decoder = new StringDecoder(enc)
19346 this._encoding = enc
19349 if (this._encoding !== enc) throw new Error('can\'t switch encodings')
19351 var out = this._decoder.write(value)
19353 out += this._decoder.end()
19359 module.exports = CipherBase
19361 },{"inherits":
93,"safe-buffer":
98,"stream":
27,"string_decoder":
28}],
82:[function(require,module,exports){
19362 (function (Buffer){
19364 var inherits = require('inherits')
19365 var md5 = require('./md5')
19366 var RIPEMD160 = require('ripemd160')
19367 var sha = require('sha.js')
19369 var Base = require('cipher-base')
19371 function HashNoConstructor (hash) {
19372 Base.call(this, 'digest')
19378 inherits(HashNoConstructor, Base)
19380 HashNoConstructor.prototype._update = function (data) {
19381 this.buffers.push(data)
19384 HashNoConstructor.prototype._final = function () {
19385 var buf = Buffer.concat(this.buffers)
19386 var r = this._hash(buf)
19387 this.buffers = null
19392 function Hash (hash) {
19393 Base.call(this, 'digest')
19398 inherits(Hash, Base)
19400 Hash.prototype._update = function (data) {
19401 this._hash.update(data)
19404 Hash.prototype._final = function () {
19405 return this._hash.digest()
19408 module.exports = function createHash (alg) {
19409 alg = alg.toLowerCase()
19410 if (alg === 'md5') return new HashNoConstructor(md5)
19411 if (alg === 'rmd160' || alg === 'ripemd160') return new Hash(new RIPEMD160())
19413 return new Hash(sha(alg))
19416 }).call(this,require("buffer").Buffer)
19417 },{"./md5":
84,"buffer":
4,"cipher-base":
81,"inherits":
93,"ripemd160":
97,"sha.js":
100}],
83:[function(require,module,exports){
19418 (function (Buffer){
19421 var zeroBuffer = new Buffer(intSize)
19427 function toArray (buf) {
19428 if ((buf.length % intSize) !==
0) {
19429 var len = buf.length + (intSize - (buf.length % intSize))
19430 buf = Buffer.concat([buf, zeroBuffer], len)
19433 var arr = new Array(buf.length
>>> 2)
19434 for (var i =
0, j =
0; i < buf.length; i += intSize, j++) {
19435 arr[j] = buf.readInt32LE(i)
19441 module.exports = function hash (buf, fn) {
19442 var arr = fn(toArray(buf), buf.length * charSize)
19443 buf = new Buffer(hashSize)
19444 for (var i =
0; i < arr.length; i++) {
19445 buf.writeInt32LE(arr[i], i <<
2, true)
19450 }).call(this,require(
"buffer").Buffer)
19451 },{
"buffer":
4}],
84:[function(require,module,exports){
19454 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
19455 * Digest Algorithm, as defined in RFC
1321.
19456 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
19457 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
19458 * Distributed under the BSD License
19459 * See http://pajhome.org.uk/crypt/md5 for more info.
19462 var makeHash = require('./make-hash')
19465 * Calculate the MD5 of an array of little-endian words, and a bit length
19467 function core_md5 (x, len) {
19468 /* append padding */
19469 x[len
>> 5] |=
0x80 << ((len) %
32)
19470 x[(((len +
64)
>>> 9) <<
4) +
14] = len
19474 var c = -
1732584194
19477 for (var i =
0; i < x.length; i +=
16) {
19483 a = md5_ff(a, b, c, d, x[i +
0],
7, -
680876936)
19484 d = md5_ff(d, a, b, c, x[i +
1],
12, -
389564586)
19485 c = md5_ff(c, d, a, b, x[i +
2],
17,
606105819)
19486 b = md5_ff(b, c, d, a, x[i +
3],
22, -
1044525330)
19487 a = md5_ff(a, b, c, d, x[i +
4],
7, -
176418897)
19488 d = md5_ff(d, a, b, c, x[i +
5],
12,
1200080426)
19489 c = md5_ff(c, d, a, b, x[i +
6],
17, -
1473231341)
19490 b = md5_ff(b, c, d, a, x[i +
7],
22, -
45705983)
19491 a = md5_ff(a, b, c, d, x[i +
8],
7,
1770035416)
19492 d = md5_ff(d, a, b, c, x[i +
9],
12, -
1958414417)
19493 c = md5_ff(c, d, a, b, x[i +
10],
17, -
42063)
19494 b = md5_ff(b, c, d, a, x[i +
11],
22, -
1990404162)
19495 a = md5_ff(a, b, c, d, x[i +
12],
7,
1804603682)
19496 d = md5_ff(d, a, b, c, x[i +
13],
12, -
40341101)
19497 c = md5_ff(c, d, a, b, x[i +
14],
17, -
1502002290)
19498 b = md5_ff(b, c, d, a, x[i +
15],
22,
1236535329)
19500 a = md5_gg(a, b, c, d, x[i +
1],
5, -
165796510)
19501 d = md5_gg(d, a, b, c, x[i +
6],
9, -
1069501632)
19502 c = md5_gg(c, d, a, b, x[i +
11],
14,
643717713)
19503 b = md5_gg(b, c, d, a, x[i +
0],
20, -
373897302)
19504 a = md5_gg(a, b, c, d, x[i +
5],
5, -
701558691)
19505 d = md5_gg(d, a, b, c, x[i +
10],
9,
38016083)
19506 c = md5_gg(c, d, a, b, x[i +
15],
14, -
660478335)
19507 b = md5_gg(b, c, d, a, x[i +
4],
20, -
405537848)
19508 a = md5_gg(a, b, c, d, x[i +
9],
5,
568446438)
19509 d = md5_gg(d, a, b, c, x[i +
14],
9, -
1019803690)
19510 c = md5_gg(c, d, a, b, x[i +
3],
14, -
187363961)
19511 b = md5_gg(b, c, d, a, x[i +
8],
20,
1163531501)
19512 a = md5_gg(a, b, c, d, x[i +
13],
5, -
1444681467)
19513 d = md5_gg(d, a, b, c, x[i +
2],
9, -
51403784)
19514 c = md5_gg(c, d, a, b, x[i +
7],
14,
1735328473)
19515 b = md5_gg(b, c, d, a, x[i +
12],
20, -
1926607734)
19517 a = md5_hh(a, b, c, d, x[i +
5],
4, -
378558)
19518 d = md5_hh(d, a, b, c, x[i +
8],
11, -
2022574463)
19519 c = md5_hh(c, d, a, b, x[i +
11],
16,
1839030562)
19520 b = md5_hh(b, c, d, a, x[i +
14],
23, -
35309556)
19521 a = md5_hh(a, b, c, d, x[i +
1],
4, -
1530992060)
19522 d = md5_hh(d, a, b, c, x[i +
4],
11,
1272893353)
19523 c = md5_hh(c, d, a, b, x[i +
7],
16, -
155497632)
19524 b = md5_hh(b, c, d, a, x[i +
10],
23, -
1094730640)
19525 a = md5_hh(a, b, c, d, x[i +
13],
4,
681279174)
19526 d = md5_hh(d, a, b, c, x[i +
0],
11, -
358537222)
19527 c = md5_hh(c, d, a, b, x[i +
3],
16, -
722521979)
19528 b = md5_hh(b, c, d, a, x[i +
6],
23,
76029189)
19529 a = md5_hh(a, b, c, d, x[i +
9],
4, -
640364487)
19530 d = md5_hh(d, a, b, c, x[i +
12],
11, -
421815835)
19531 c = md5_hh(c, d, a, b, x[i +
15],
16,
530742520)
19532 b = md5_hh(b, c, d, a, x[i +
2],
23, -
995338651)
19534 a = md5_ii(a, b, c, d, x[i +
0],
6, -
198630844)
19535 d = md5_ii(d, a, b, c, x[i +
7],
10,
1126891415)
19536 c = md5_ii(c, d, a, b, x[i +
14],
15, -
1416354905)
19537 b = md5_ii(b, c, d, a, x[i +
5],
21, -
57434055)
19538 a = md5_ii(a, b, c, d, x[i +
12],
6,
1700485571)
19539 d = md5_ii(d, a, b, c, x[i +
3],
10, -
1894986606)
19540 c = md5_ii(c, d, a, b, x[i +
10],
15, -
1051523)
19541 b = md5_ii(b, c, d, a, x[i +
1],
21, -
2054922799)
19542 a = md5_ii(a, b, c, d, x[i +
8],
6,
1873313359)
19543 d = md5_ii(d, a, b, c, x[i +
15],
10, -
30611744)
19544 c = md5_ii(c, d, a, b, x[i +
6],
15, -
1560198380)
19545 b = md5_ii(b, c, d, a, x[i +
13],
21,
1309151649)
19546 a = md5_ii(a, b, c, d, x[i +
4],
6, -
145523070)
19547 d = md5_ii(d, a, b, c, x[i +
11],
10, -
1120210379)
19548 c = md5_ii(c, d, a, b, x[i +
2],
15,
718787259)
19549 b = md5_ii(b, c, d, a, x[i +
9],
21, -
343485551)
19551 a = safe_add(a, olda)
19552 b = safe_add(b, oldb)
19553 c = safe_add(c, oldc)
19554 d = safe_add(d, oldd)
19557 return [a, b, c, d]
19561 * These functions implement the four basic operations the algorithm uses.
19563 function md5_cmn (q, a, b, x, s, t) {
19564 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b)
19567 function md5_ff (a, b, c, d, x, s, t) {
19568 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t)
19571 function md5_gg (a, b, c, d, x, s, t) {
19572 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t)
19575 function md5_hh (a, b, c, d, x, s, t) {
19576 return md5_cmn(b ^ c ^ d, a, b, x, s, t)
19579 function md5_ii (a, b, c, d, x, s, t) {
19580 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t)
19584 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
19585 * to work around bugs in some JS interpreters.
19587 function safe_add (x, y) {
19588 var lsw = (x &
0xFFFF) + (y &
0xFFFF)
19589 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16)
19590 return (msw <<
16) | (lsw &
0xFFFF)
19594 * Bitwise rotate a
32-bit number to the left.
19596 function bit_rol (num, cnt) {
19597 return (num << cnt) | (num
>>> (
32 - cnt))
19600 module.exports = function md5 (buf) {
19601 return makeHash(buf, core_md5)
19604 },{"./make-hash":
83}],
85:[function(require,module,exports){
19606 var inherits = require('inherits')
19607 var Legacy = require('./legacy')
19608 var Base = require('cipher-base')
19609 var Buffer = require('safe-buffer').Buffer
19610 var md5 = require('create-hash/md5')
19611 var RIPEMD160 = require('ripemd160')
19613 var sha = require('sha.js')
19615 var ZEROS = Buffer.alloc(
128)
19617 function Hmac (alg, key) {
19618 Base.call(this, 'digest')
19619 if (typeof key === 'string') {
19620 key = Buffer.from(key)
19623 var blocksize = (alg === 'sha512' || alg === 'sha384') ?
128 :
64
19627 if (key.length
> blocksize) {
19628 var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
19629 key = hash.update(key).digest()
19630 } else if (key.length < blocksize) {
19631 key = Buffer.concat([key, ZEROS], blocksize)
19634 var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
19635 var opad = this._opad = Buffer.allocUnsafe(blocksize)
19637 for (var i =
0; i < blocksize; i++) {
19638 ipad[i] = key[i] ^
0x36
19639 opad[i] = key[i] ^
0x5C
19641 this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)
19642 this._hash.update(ipad)
19645 inherits(Hmac, Base)
19647 Hmac.prototype._update = function (data) {
19648 this._hash.update(data)
19651 Hmac.prototype._final = function () {
19652 var h = this._hash.digest()
19653 var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)
19654 return hash.update(this._opad).update(h).digest()
19657 module.exports = function createHmac (alg, key) {
19658 alg = alg.toLowerCase()
19659 if (alg === 'rmd160' || alg === 'ripemd160') {
19660 return new Hmac('rmd160', key)
19662 if (alg === 'md5') {
19663 return new Legacy(md5, key)
19665 return new Hmac(alg, key)
19668 },{"./legacy":
86,"cipher-base":
81,"create-hash/md5":
84,"inherits":
93,"ripemd160":
97,"safe-buffer":
98,"sha.js":
100}],
86:[function(require,module,exports){
19670 var inherits = require('inherits')
19671 var Buffer = require('safe-buffer').Buffer
19673 var Base = require('cipher-base')
19675 var ZEROS = Buffer.alloc(
128)
19678 function Hmac (alg, key) {
19679 Base.call(this, 'digest')
19680 if (typeof key === 'string') {
19681 key = Buffer.from(key)
19687 if (key.length
> blocksize) {
19689 } else if (key.length < blocksize) {
19690 key = Buffer.concat([key, ZEROS], blocksize)
19693 var ipad = this._ipad = Buffer.allocUnsafe(blocksize)
19694 var opad = this._opad = Buffer.allocUnsafe(blocksize)
19696 for (var i =
0; i < blocksize; i++) {
19697 ipad[i] = key[i] ^
0x36
19698 opad[i] = key[i] ^
0x5C
19701 this._hash = [ipad]
19704 inherits(Hmac, Base)
19706 Hmac.prototype._update = function (data) {
19707 this._hash.push(data)
19710 Hmac.prototype._final = function () {
19711 var h = this._alg(Buffer.concat(this._hash))
19712 return this._alg(Buffer.concat([this._opad, h]))
19714 module.exports = Hmac
19716 },{"cipher-base":
81,"inherits":
93,"safe-buffer":
98}],
87:[function(require,module,exports){
19717 var assert = require('assert')
19718 var BigInteger = require('bigi')
19720 var Point = require('./point')
19722 function Curve (p, a, b, Gx, Gy, n, h) {
19726 this.G = Point.fromAffine(this, Gx, Gy)
19730 this.infinity = new Point(this, null, null, BigInteger.ZERO)
19733 this.pOverFour = p.add(BigInteger.ONE).shiftRight(
2)
19735 // determine size of p in bytes
19736 this.pLength = Math.floor((this.p.bitLength() +
7) /
8)
19739 Curve.prototype.pointFromX = function (isOdd, x) {
19740 var alpha = x.pow(
3).add(this.a.multiply(x)).add(this.b).mod(this.p)
19741 var beta = alpha.modPow(this.pOverFour, this.p) // XXX: not compatible with all curves
19744 if (beta.isEven() ^ !isOdd) {
19745 y = this.p.subtract(y) // -y % p
19748 return Point.fromAffine(this, x, y)
19751 Curve.prototype.isInfinity = function (Q) {
19752 if (Q === this.infinity) return true
19754 return Q.z.signum() ===
0 && Q.y.signum() !==
0
19757 Curve.prototype.isOnCurve = function (Q) {
19758 if (this.isInfinity(Q)) return true
19766 // Check that xQ and yQ are integers in the interval [
0, p -
1]
19767 if (x.signum() <
0 || x.compareTo(p)
>=
0) return false
19768 if (y.signum() <
0 || y.compareTo(p)
>=
0) return false
19770 // and check that y^
2 = x^
3 + ax + b (mod p)
19771 var lhs = y.square().mod(p)
19772 var rhs = x.pow(
3).add(a.multiply(x)).add(b).mod(p)
19773 return lhs.equals(rhs)
19777 * Validate an elliptic curve point.
19779 * See SEC
1, section
3.2.2.1: Elliptic Curve Public Key Validation Primitive
19781 Curve.prototype.validate = function (Q) {
19783 assert(!this.isInfinity(Q), 'Point is at infinity')
19784 assert(this.isOnCurve(Q), 'Point is not on the curve')
19786 // Check nQ = O (where Q is a scalar multiple of G)
19787 var nQ = Q.multiply(this.n)
19788 assert(this.isInfinity(nQ), 'Point is not a scalar multiple of G')
19793 module.exports = Curve
19795 },{"./point":
91,"assert":
1,"bigi":
37}],
88:[function(require,module,exports){
19798 "p": "fffffffdffffffffffffffffffffffff",
19799 "a": "fffffffdfffffffffffffffffffffffc",
19800 "b": "e87579c11079f43dd824993c2cee5ed3",
19801 "n": "fffffffe0000000075a30d1b9038a115",
19803 "Gx": "
161ff7528b899b2d0c28607ca52c5b86",
19804 "Gy": "cf5ac8395bafeb13c02da292dded7a83"
19807 "p": "fffffffffffffffffffffffffffffffeffffac73",
19810 "n": "
0100000000000000000001b8fa16dfab9aca16b6b3",
19812 "Gx": "
3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",
19813 "Gy": "
938cf935318fdced6bc28286531733c3f03c4fee"
19816 "p": "ffffffffffffffffffffffffffffffff7fffffff",
19817 "a": "ffffffffffffffffffffffffffffffff7ffffffc",
19818 "b": "
1c97befc54bd7a8b65acf89f81d4d4adc565fa45",
19819 "n": "
0100000000000000000001f4c8f927aed3ca752257",
19821 "Gx": "
4a96b5688ef573284664698968c38bb913cbfc82",
19822 "Gy": "
23a628553168947d59dcc912042351377ac5fb32"
19825 "p": "fffffffffffffffffffffffffffffffffffffffeffffee37",
19828 "n": "fffffffffffffffffffffffe26f2fc170f69466a74defd8d",
19830 "Gx": "db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",
19831 "Gy": "
9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"
19834 "p": "fffffffffffffffffffffffffffffffeffffffffffffffff",
19835 "a": "fffffffffffffffffffffffffffffffefffffffffffffffc",
19836 "b": "
64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",
19837 "n": "ffffffffffffffffffffffff99def836146bc9b1b4d22831",
19839 "Gx": "
188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",
19840 "Gy": "
07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
19843 "p": "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",
19846 "n": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",
19848 "Gx": "
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
19849 "Gy": "
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
19852 "p": "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
19853 "a": "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",
19854 "b": "
5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",
19855 "n": "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
19857 "Gx": "
6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",
19858 "Gy": "
4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"
19862 },{}],
89:[function(require,module,exports){
19863 var Point = require('./point')
19864 var Curve = require('./curve')
19866 var getCurveByName = require('./names')
19871 getCurveByName: getCurveByName
19874 },{"./curve":
87,"./names":
90,"./point":
91}],
90:[function(require,module,exports){
19875 var BigInteger = require('bigi')
19877 var curves = require('./curves.json')
19878 var Curve = require('./curve')
19880 function getCurveByName (name) {
19881 var curve = curves[name]
19882 if (!curve) return null
19884 var p = new BigInteger(curve.p,
16)
19885 var a = new BigInteger(curve.a,
16)
19886 var b = new BigInteger(curve.b,
16)
19887 var n = new BigInteger(curve.n,
16)
19888 var h = new BigInteger(curve.h,
16)
19889 var Gx = new BigInteger(curve.Gx,
16)
19890 var Gy = new BigInteger(curve.Gy,
16)
19892 return new Curve(p, a, b, Gx, Gy, n, h)
19895 module.exports = getCurveByName
19897 },{"./curve":
87,"./curves.json":
88,"bigi":
37}],
91:[function(require,module,exports){
19898 (function (Buffer){
19899 var assert = require('assert')
19900 var BigInteger = require('bigi')
19902 var THREE = BigInteger.valueOf(
3)
19904 function Point (curve, x, y, z) {
19905 assert.notStrictEqual(z, undefined, 'Missing Z coordinate')
19913 this.compressed = true
19916 Object.defineProperty(Point.prototype, 'zInv', {
19918 if (this._zInv === null) {
19919 this._zInv = this.z.modInverse(this.curve.p)
19926 Object.defineProperty(Point.prototype, 'affineX', {
19928 return this.x.multiply(this.zInv).mod(this.curve.p)
19932 Object.defineProperty(Point.prototype, 'affineY', {
19934 return this.y.multiply(this.zInv).mod(this.curve.p)
19938 Point.fromAffine = function (curve, x, y) {
19939 return new Point(curve, x, y, BigInteger.ONE)
19942 Point.prototype.equals = function (other) {
19943 if (other === this) return true
19944 if (this.curve.isInfinity(this)) return this.curve.isInfinity(other)
19945 if (this.curve.isInfinity(other)) return this.curve.isInfinity(this)
19947 // u = Y2 * Z1 - Y1 * Z2
19948 var u = other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p)
19950 if (u.signum() !==
0) return false
19952 // v = X2 * Z1 - X1 * Z2
19953 var v = other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p)
19955 return v.signum() ===
0
19958 Point.prototype.negate = function () {
19959 var y = this.curve.p.subtract(this.y)
19961 return new Point(this.curve, this.x, y, this.z)
19964 Point.prototype.add = function (b) {
19965 if (this.curve.isInfinity(this)) return b
19966 if (this.curve.isInfinity(b)) return this
19973 // u = Y2 * Z1 - Y1 * Z2
19974 var u = y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p)
19975 // v = X2 * Z1 - X1 * Z2
19976 var v = x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p)
19978 if (v.signum() ===
0) {
19979 if (u.signum() ===
0) {
19980 return this.twice() // this == b, so double
19983 return this.curve.infinity // this = -b, so infinity
19986 var v2 = v.square()
19987 var v3 = v2.multiply(v)
19988 var x1v2 = x1.multiply(v2)
19989 var zu2 = u.square().multiply(this.z)
19991 // x3 = v * (z2 * (z1 * u^
2 -
2 * x1 * v^
2) - v^
3)
19992 var x3 = zu2.subtract(x1v2.shiftLeft(
1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p)
19993 // y3 = z2 * (
3 * x1 * u * v^
2 - y1 * v^
3 - z1 * u^
3) + u * v^
3
19994 var y3 = x1v2.multiply(THREE).multiply(u).subtract(y1.multiply(v3)).subtract(zu2.multiply(u)).multiply(b.z).add(u.multiply(v3)).mod(this.curve.p)
19995 // z3 = v^
3 * z1 * z2
19996 var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.p)
19998 return new Point(this.curve, x3, y3, z3)
20001 Point.prototype.twice = function () {
20002 if (this.curve.isInfinity(this)) return this
20003 if (this.y.signum() ===
0) return this.curve.infinity
20008 var y1z1 = y1.multiply(this.z).mod(this.curve.p)
20009 var y1sqz1 = y1z1.multiply(y1).mod(this.curve.p)
20010 var a = this.curve.a
20012 // w =
3 * x1^
2 + a * z1^
2
20013 var w = x1.square().multiply(THREE)
20015 if (a.signum() !==
0) {
20016 w = w.add(this.z.square().multiply(a))
20019 w = w.mod(this.curve.p)
20020 // x3 =
2 * y1 * z1 * (w^
2 -
8 * x1 * y1^
2 * z1)
20021 var x3 = w.square().subtract(x1.shiftLeft(
3).multiply(y1sqz1)).shiftLeft(
1).multiply(y1z1).mod(this.curve.p)
20022 // y3 =
4 * y1^
2 * z1 * (
3 * w * x1 -
2 * y1^
2 * z1) - w^
3
20023 var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(
1)).shiftLeft(
2).multiply(y1sqz1).subtract(w.pow(
3)).mod(this.curve.p)
20024 // z3 =
8 * (y1 * z1)^
3
20025 var z3 = y1z1.pow(
3).shiftLeft(
3).mod(this.curve.p)
20027 return new Point(this.curve, x3, y3, z3)
20030 // Simple NAF (Non-Adjacent Form) multiplication algorithm
20031 // TODO: modularize the multiplication algorithm
20032 Point.prototype.multiply = function (k) {
20033 if (this.curve.isInfinity(this)) return this
20034 if (k.signum() ===
0) return this.curve.infinity
20037 var h = e.multiply(THREE)
20039 var neg = this.negate()
20042 for (var i = h.bitLength() -
2; i
> 0; --i) {
20043 var hBit = h.testBit(i)
20044 var eBit = e.testBit(i)
20048 if (hBit !== eBit) {
20049 R = R.add(hBit ? this : neg)
20056 // Compute this*j + x*k (simultaneous multiplication)
20057 Point.prototype.multiplyTwo = function (j, x, k) {
20058 var i = Math.max(j.bitLength(), k.bitLength()) -
1
20059 var R = this.curve.infinity
20060 var both = this.add(x)
20063 var jBit = j.testBit(i)
20064 var kBit = k.testBit(i)
20083 Point.prototype.getEncoded = function (compressed) {
20084 if (compressed == null) compressed = this.compressed
20085 if (this.curve.isInfinity(this)) return new Buffer('
00', 'hex') // Infinity point encoded is simply '
00'
20087 var x = this.affineX
20088 var y = this.affineY
20089 var byteLength = this.curve.pLength
20094 buffer = new Buffer(
1 + byteLength)
20095 buffer.writeUInt8(y.isEven() ?
0x02 :
0x03,
0)
20099 buffer = new Buffer(
1 + byteLength + byteLength)
20100 buffer.writeUInt8(
0x04,
0)
20102 y.toBuffer(byteLength).copy(buffer,
1 + byteLength)
20105 x.toBuffer(byteLength).copy(buffer,
1)
20110 Point.decodeFrom = function (curve, buffer) {
20111 var type = buffer.readUInt8(
0)
20112 var compressed = (type !==
4)
20114 var byteLength = Math.floor((curve.p.bitLength() +
7) /
8)
20115 var x = BigInteger.fromBuffer(buffer.slice(
1,
1 + byteLength))
20119 assert.equal(buffer.length, byteLength +
1, 'Invalid sequence length')
20120 assert(type ===
0x02 || type ===
0x03, 'Invalid sequence tag')
20122 var isOdd = (type ===
0x03)
20123 Q = curve.pointFromX(isOdd, x)
20125 assert.equal(buffer.length,
1 + byteLength + byteLength, 'Invalid sequence length')
20127 var y = BigInteger.fromBuffer(buffer.slice(
1 + byteLength))
20128 Q = Point.fromAffine(curve, x, y)
20131 Q.compressed = compressed
20135 Point.prototype.toString = function () {
20136 if (this.curve.isInfinity(this)) return '(INFINITY)'
20138 return '(' + this.affineX.toString() + ',' + this.affineY.toString() + ')'
20141 module.exports = Point
20143 }).call(this,require("buffer").Buffer)
20144 },{"assert":
1,"bigi":
37,"buffer":
4}],
92:[function(require,module,exports){
20145 (function (Buffer){
20147 var Transform = require('stream').Transform
20148 var inherits = require('inherits')
20150 function HashBase (blockSize) {
20151 Transform.call(this)
20153 this._block = new Buffer(blockSize)
20154 this._blockSize = blockSize
20155 this._blockOffset =
0
20156 this._length = [
0,
0,
0,
0]
20158 this._finalized = false
20161 inherits(HashBase, Transform)
20163 HashBase.prototype._transform = function (chunk, encoding, callback) {
20166 if (encoding !== 'buffer') chunk = new Buffer(chunk, encoding)
20175 HashBase.prototype._flush = function (callback) {
20178 this.push(this._digest())
20186 HashBase.prototype.update = function (data, encoding) {
20187 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
20188 if (this._finalized) throw new Error('Digest already called')
20189 if (!Buffer.isBuffer(data)) data = new Buffer(data, encoding || 'binary')
20192 var block = this._block
20194 while (this._blockOffset + data.length - offset
>= this._blockSize) {
20195 for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]
20197 this._blockOffset =
0
20199 while (offset < data.length) block[this._blockOffset++] = data[offset++]
20202 for (var j =
0, carry = data.length *
8; carry
> 0; ++j) {
20203 this._length[j] += carry
20204 carry = (this._length[j] /
0x0100000000) |
0
20205 if (carry
> 0) this._length[j] -=
0x0100000000 * carry
20211 HashBase.prototype._update = function (data) {
20212 throw new Error('_update is not implemented')
20215 HashBase.prototype.digest = function (encoding) {
20216 if (this._finalized) throw new Error('Digest already called')
20217 this._finalized = true
20219 var digest = this._digest()
20220 if (encoding !== undefined) digest = digest.toString(encoding)
20224 HashBase.prototype._digest = function () {
20225 throw new Error('_digest is not implemented')
20228 module.exports = HashBase
20230 }).call(this,require(
"buffer").Buffer)
20231 },{
"buffer":
4,
"inherits":
93,
"stream":
27}],
93:[function(require,module,exports){
20232 arguments[
4][
8][
0].apply(exports,arguments)
20233 },{
"dup":
8}],
94:[function(require,module,exports){
20234 (function (Buffer){
20235 // constant-space merkle root calculation algorithm
20236 module.exports = function fastRoot (values, digestFn) {
20237 if (!Array.isArray(values)) throw TypeError('Expected values Array')
20238 if (typeof digestFn !== 'function') throw TypeError('Expected digest Function')
20240 var length = values.length
20241 var results = values.concat()
20243 while (length
> 1) {
20246 for (var i =
0; i < length; i +=
2, ++j) {
20247 var left = results[i]
20248 var right = i +
1 === length ? left : results[i +
1]
20249 var data = Buffer.concat([left, right])
20251 results[j] = digestFn(data)
20260 }).call(this,require(
"buffer").Buffer)
20261 },{
"buffer":
4}],
95:[function(require,module,exports){
20262 var OPS = require('bitcoin-ops')
20264 function encodingLength (i) {
20265 return i < OPS.OP_PUSHDATA1 ?
1
20271 function encode (buffer, number, offset) {
20272 var size = encodingLength(number)
20276 buffer.writeUInt8(number, offset)
20279 } else if (size ===
2) {
20280 buffer.writeUInt8(OPS.OP_PUSHDATA1, offset)
20281 buffer.writeUInt8(number, offset +
1)
20284 } else if (size ===
3) {
20285 buffer.writeUInt8(OPS.OP_PUSHDATA2, offset)
20286 buffer.writeUInt16LE(number, offset +
1)
20290 buffer.writeUInt8(OPS.OP_PUSHDATA4, offset)
20291 buffer.writeUInt32LE(number, offset +
1)
20297 function decode (buffer, offset) {
20298 var opcode = buffer.readUInt8(offset)
20302 if (opcode < OPS.OP_PUSHDATA1) {
20307 } else if (opcode === OPS.OP_PUSHDATA1) {
20308 if (offset +
2 > buffer.length) return null
20309 number = buffer.readUInt8(offset +
1)
20313 } else if (opcode === OPS.OP_PUSHDATA2) {
20314 if (offset +
3 > buffer.length) return null
20315 number = buffer.readUInt16LE(offset +
1)
20320 if (offset +
5 > buffer.length) return null
20321 if (opcode !== OPS.OP_PUSHDATA4) throw new Error('Unexpected opcode')
20323 number = buffer.readUInt32LE(offset +
1)
20335 encodingLength: encodingLength,
20340 },{"bitcoin-ops":
40}],
96:[function(require,module,exports){
20341 (function (process,global){
20344 function oldBrowser () {
20345 throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer
11')
20348 var Buffer = require('safe-buffer').Buffer
20349 var crypto = global.crypto || global.msCrypto
20351 if (crypto && crypto.getRandomValues) {
20352 module.exports = randomBytes
20354 module.exports = oldBrowser
20357 function randomBytes (size, cb) {
20358 // phantomjs needs to throw
20359 if (size
> 65536) throw new Error('requested too many random bytes')
20360 // in case browserify isn't using the Uint8Array version
20361 var rawBytes = new global.Uint8Array(size)
20363 // This will not work in older browsers.
20364 // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
20365 if (size
> 0) { // getRandomValues fails on IE if size ==
0
20366 crypto.getRandomValues(rawBytes)
20369 // XXX: phantomjs doesn't like a buffer being passed here
20370 var bytes = Buffer.from(rawBytes.buffer)
20372 if (typeof cb === 'function') {
20373 return process.nextTick(function () {
20381 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
20382 },{
"_process":
12,
"safe-buffer":
98}],
97:[function(require,module,exports){
20383 (function (Buffer){
20385 var inherits = require('inherits')
20386 var HashBase = require('hash-base')
20388 function RIPEMD160 () {
20389 HashBase.call(this,
64)
20392 this._a =
0x67452301
20393 this._b =
0xefcdab89
20394 this._c =
0x98badcfe
20395 this._d =
0x10325476
20396 this._e =
0xc3d2e1f0
20399 inherits(RIPEMD160, HashBase)
20401 RIPEMD160.prototype._update = function () {
20402 var m = new Array(
16)
20403 for (var i =
0; i <
16; ++i) m[i] = this._block.readInt32LE(i *
4)
20411 // Mj =
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15
20413 // Sj =
11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8
20414 al = fn1(al, bl, cl, dl, el, m[
0],
0x00000000,
11); cl = rotl(cl,
10)
20415 el = fn1(el, al, bl, cl, dl, m[
1],
0x00000000,
14); bl = rotl(bl,
10)
20416 dl = fn1(dl, el, al, bl, cl, m[
2],
0x00000000,
15); al = rotl(al,
10)
20417 cl = fn1(cl, dl, el, al, bl, m[
3],
0x00000000,
12); el = rotl(el,
10)
20418 bl = fn1(bl, cl, dl, el, al, m[
4],
0x00000000,
5); dl = rotl(dl,
10)
20419 al = fn1(al, bl, cl, dl, el, m[
5],
0x00000000,
8); cl = rotl(cl,
10)
20420 el = fn1(el, al, bl, cl, dl, m[
6],
0x00000000,
7); bl = rotl(bl,
10)
20421 dl = fn1(dl, el, al, bl, cl, m[
7],
0x00000000,
9); al = rotl(al,
10)
20422 cl = fn1(cl, dl, el, al, bl, m[
8],
0x00000000,
11); el = rotl(el,
10)
20423 bl = fn1(bl, cl, dl, el, al, m[
9],
0x00000000,
13); dl = rotl(dl,
10)
20424 al = fn1(al, bl, cl, dl, el, m[
10],
0x00000000,
14); cl = rotl(cl,
10)
20425 el = fn1(el, al, bl, cl, dl, m[
11],
0x00000000,
15); bl = rotl(bl,
10)
20426 dl = fn1(dl, el, al, bl, cl, m[
12],
0x00000000,
6); al = rotl(al,
10)
20427 cl = fn1(cl, dl, el, al, bl, m[
13],
0x00000000,
7); el = rotl(el,
10)
20428 bl = fn1(bl, cl, dl, el, al, m[
14],
0x00000000,
9); dl = rotl(dl,
10)
20429 al = fn1(al, bl, cl, dl, el, m[
15],
0x00000000,
8); cl = rotl(cl,
10)
20431 // Mj =
7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8
20433 // Sj =
7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12
20434 el = fn2(el, al, bl, cl, dl, m[
7],
0x5a827999,
7); bl = rotl(bl,
10)
20435 dl = fn2(dl, el, al, bl, cl, m[
4],
0x5a827999,
6); al = rotl(al,
10)
20436 cl = fn2(cl, dl, el, al, bl, m[
13],
0x5a827999,
8); el = rotl(el,
10)
20437 bl = fn2(bl, cl, dl, el, al, m[
1],
0x5a827999,
13); dl = rotl(dl,
10)
20438 al = fn2(al, bl, cl, dl, el, m[
10],
0x5a827999,
11); cl = rotl(cl,
10)
20439 el = fn2(el, al, bl, cl, dl, m[
6],
0x5a827999,
9); bl = rotl(bl,
10)
20440 dl = fn2(dl, el, al, bl, cl, m[
15],
0x5a827999,
7); al = rotl(al,
10)
20441 cl = fn2(cl, dl, el, al, bl, m[
3],
0x5a827999,
15); el = rotl(el,
10)
20442 bl = fn2(bl, cl, dl, el, al, m[
12],
0x5a827999,
7); dl = rotl(dl,
10)
20443 al = fn2(al, bl, cl, dl, el, m[
0],
0x5a827999,
12); cl = rotl(cl,
10)
20444 el = fn2(el, al, bl, cl, dl, m[
9],
0x5a827999,
15); bl = rotl(bl,
10)
20445 dl = fn2(dl, el, al, bl, cl, m[
5],
0x5a827999,
9); al = rotl(al,
10)
20446 cl = fn2(cl, dl, el, al, bl, m[
2],
0x5a827999,
11); el = rotl(el,
10)
20447 bl = fn2(bl, cl, dl, el, al, m[
14],
0x5a827999,
7); dl = rotl(dl,
10)
20448 al = fn2(al, bl, cl, dl, el, m[
11],
0x5a827999,
13); cl = rotl(cl,
10)
20449 el = fn2(el, al, bl, cl, dl, m[
8],
0x5a827999,
12); bl = rotl(bl,
10)
20451 // Mj =
3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12
20453 // Sj =
11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5
20454 dl = fn3(dl, el, al, bl, cl, m[
3],
0x6ed9eba1,
11); al = rotl(al,
10)
20455 cl = fn3(cl, dl, el, al, bl, m[
10],
0x6ed9eba1,
13); el = rotl(el,
10)
20456 bl = fn3(bl, cl, dl, el, al, m[
14],
0x6ed9eba1,
6); dl = rotl(dl,
10)
20457 al = fn3(al, bl, cl, dl, el, m[
4],
0x6ed9eba1,
7); cl = rotl(cl,
10)
20458 el = fn3(el, al, bl, cl, dl, m[
9],
0x6ed9eba1,
14); bl = rotl(bl,
10)
20459 dl = fn3(dl, el, al, bl, cl, m[
15],
0x6ed9eba1,
9); al = rotl(al,
10)
20460 cl = fn3(cl, dl, el, al, bl, m[
8],
0x6ed9eba1,
13); el = rotl(el,
10)
20461 bl = fn3(bl, cl, dl, el, al, m[
1],
0x6ed9eba1,
15); dl = rotl(dl,
10)
20462 al = fn3(al, bl, cl, dl, el, m[
2],
0x6ed9eba1,
14); cl = rotl(cl,
10)
20463 el = fn3(el, al, bl, cl, dl, m[
7],
0x6ed9eba1,
8); bl = rotl(bl,
10)
20464 dl = fn3(dl, el, al, bl, cl, m[
0],
0x6ed9eba1,
13); al = rotl(al,
10)
20465 cl = fn3(cl, dl, el, al, bl, m[
6],
0x6ed9eba1,
6); el = rotl(el,
10)
20466 bl = fn3(bl, cl, dl, el, al, m[
13],
0x6ed9eba1,
5); dl = rotl(dl,
10)
20467 al = fn3(al, bl, cl, dl, el, m[
11],
0x6ed9eba1,
12); cl = rotl(cl,
10)
20468 el = fn3(el, al, bl, cl, dl, m[
5],
0x6ed9eba1,
7); bl = rotl(bl,
10)
20469 dl = fn3(dl, el, al, bl, cl, m[
12],
0x6ed9eba1,
5); al = rotl(al,
10)
20471 // Mj =
1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2
20473 // Sj =
11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12
20474 cl = fn4(cl, dl, el, al, bl, m[
1],
0x8f1bbcdc,
11); el = rotl(el,
10)
20475 bl = fn4(bl, cl, dl, el, al, m[
9],
0x8f1bbcdc,
12); dl = rotl(dl,
10)
20476 al = fn4(al, bl, cl, dl, el, m[
11],
0x8f1bbcdc,
14); cl = rotl(cl,
10)
20477 el = fn4(el, al, bl, cl, dl, m[
10],
0x8f1bbcdc,
15); bl = rotl(bl,
10)
20478 dl = fn4(dl, el, al, bl, cl, m[
0],
0x8f1bbcdc,
14); al = rotl(al,
10)
20479 cl = fn4(cl, dl, el, al, bl, m[
8],
0x8f1bbcdc,
15); el = rotl(el,
10)
20480 bl = fn4(bl, cl, dl, el, al, m[
12],
0x8f1bbcdc,
9); dl = rotl(dl,
10)
20481 al = fn4(al, bl, cl, dl, el, m[
4],
0x8f1bbcdc,
8); cl = rotl(cl,
10)
20482 el = fn4(el, al, bl, cl, dl, m[
13],
0x8f1bbcdc,
9); bl = rotl(bl,
10)
20483 dl = fn4(dl, el, al, bl, cl, m[
3],
0x8f1bbcdc,
14); al = rotl(al,
10)
20484 cl = fn4(cl, dl, el, al, bl, m[
7],
0x8f1bbcdc,
5); el = rotl(el,
10)
20485 bl = fn4(bl, cl, dl, el, al, m[
15],
0x8f1bbcdc,
6); dl = rotl(dl,
10)
20486 al = fn4(al, bl, cl, dl, el, m[
14],
0x8f1bbcdc,
8); cl = rotl(cl,
10)
20487 el = fn4(el, al, bl, cl, dl, m[
5],
0x8f1bbcdc,
6); bl = rotl(bl,
10)
20488 dl = fn4(dl, el, al, bl, cl, m[
6],
0x8f1bbcdc,
5); al = rotl(al,
10)
20489 cl = fn4(cl, dl, el, al, bl, m[
2],
0x8f1bbcdc,
12); el = rotl(el,
10)
20491 // Mj =
4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
20493 // Sj =
9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
20494 bl = fn5(bl, cl, dl, el, al, m[
4],
0xa953fd4e,
9); dl = rotl(dl,
10)
20495 al = fn5(al, bl, cl, dl, el, m[
0],
0xa953fd4e,
15); cl = rotl(cl,
10)
20496 el = fn5(el, al, bl, cl, dl, m[
5],
0xa953fd4e,
5); bl = rotl(bl,
10)
20497 dl = fn5(dl, el, al, bl, cl, m[
9],
0xa953fd4e,
11); al = rotl(al,
10)
20498 cl = fn5(cl, dl, el, al, bl, m[
7],
0xa953fd4e,
6); el = rotl(el,
10)
20499 bl = fn5(bl, cl, dl, el, al, m[
12],
0xa953fd4e,
8); dl = rotl(dl,
10)
20500 al = fn5(al, bl, cl, dl, el, m[
2],
0xa953fd4e,
13); cl = rotl(cl,
10)
20501 el = fn5(el, al, bl, cl, dl, m[
10],
0xa953fd4e,
12); bl = rotl(bl,
10)
20502 dl = fn5(dl, el, al, bl, cl, m[
14],
0xa953fd4e,
5); al = rotl(al,
10)
20503 cl = fn5(cl, dl, el, al, bl, m[
1],
0xa953fd4e,
12); el = rotl(el,
10)
20504 bl = fn5(bl, cl, dl, el, al, m[
3],
0xa953fd4e,
13); dl = rotl(dl,
10)
20505 al = fn5(al, bl, cl, dl, el, m[
8],
0xa953fd4e,
14); cl = rotl(cl,
10)
20506 el = fn5(el, al, bl, cl, dl, m[
11],
0xa953fd4e,
11); bl = rotl(bl,
10)
20507 dl = fn5(dl, el, al, bl, cl, m[
6],
0xa953fd4e,
8); al = rotl(al,
10)
20508 cl = fn5(cl, dl, el, al, bl, m[
15],
0xa953fd4e,
5); el = rotl(el,
10)
20509 bl = fn5(bl, cl, dl, el, al, m[
13],
0xa953fd4e,
6); dl = rotl(dl,
10)
20517 // M'j =
5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12
20519 // S'j =
8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6
20520 ar = fn5(ar, br, cr, dr, er, m[
5],
0x50a28be6,
8); cr = rotl(cr,
10)
20521 er = fn5(er, ar, br, cr, dr, m[
14],
0x50a28be6,
9); br = rotl(br,
10)
20522 dr = fn5(dr, er, ar, br, cr, m[
7],
0x50a28be6,
9); ar = rotl(ar,
10)
20523 cr = fn5(cr, dr, er, ar, br, m[
0],
0x50a28be6,
11); er = rotl(er,
10)
20524 br = fn5(br, cr, dr, er, ar, m[
9],
0x50a28be6,
13); dr = rotl(dr,
10)
20525 ar = fn5(ar, br, cr, dr, er, m[
2],
0x50a28be6,
15); cr = rotl(cr,
10)
20526 er = fn5(er, ar, br, cr, dr, m[
11],
0x50a28be6,
15); br = rotl(br,
10)
20527 dr = fn5(dr, er, ar, br, cr, m[
4],
0x50a28be6,
5); ar = rotl(ar,
10)
20528 cr = fn5(cr, dr, er, ar, br, m[
13],
0x50a28be6,
7); er = rotl(er,
10)
20529 br = fn5(br, cr, dr, er, ar, m[
6],
0x50a28be6,
7); dr = rotl(dr,
10)
20530 ar = fn5(ar, br, cr, dr, er, m[
15],
0x50a28be6,
8); cr = rotl(cr,
10)
20531 er = fn5(er, ar, br, cr, dr, m[
8],
0x50a28be6,
11); br = rotl(br,
10)
20532 dr = fn5(dr, er, ar, br, cr, m[
1],
0x50a28be6,
14); ar = rotl(ar,
10)
20533 cr = fn5(cr, dr, er, ar, br, m[
10],
0x50a28be6,
14); er = rotl(er,
10)
20534 br = fn5(br, cr, dr, er, ar, m[
3],
0x50a28be6,
12); dr = rotl(dr,
10)
20535 ar = fn5(ar, br, cr, dr, er, m[
12],
0x50a28be6,
6); cr = rotl(cr,
10)
20537 // M'j =
6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2
20539 // S'j =
9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11
20540 er = fn4(er, ar, br, cr, dr, m[
6],
0x5c4dd124,
9); br = rotl(br,
10)
20541 dr = fn4(dr, er, ar, br, cr, m[
11],
0x5c4dd124,
13); ar = rotl(ar,
10)
20542 cr = fn4(cr, dr, er, ar, br, m[
3],
0x5c4dd124,
15); er = rotl(er,
10)
20543 br = fn4(br, cr, dr, er, ar, m[
7],
0x5c4dd124,
7); dr = rotl(dr,
10)
20544 ar = fn4(ar, br, cr, dr, er, m[
0],
0x5c4dd124,
12); cr = rotl(cr,
10)
20545 er = fn4(er, ar, br, cr, dr, m[
13],
0x5c4dd124,
8); br = rotl(br,
10)
20546 dr = fn4(dr, er, ar, br, cr, m[
5],
0x5c4dd124,
9); ar = rotl(ar,
10)
20547 cr = fn4(cr, dr, er, ar, br, m[
10],
0x5c4dd124,
11); er = rotl(er,
10)
20548 br = fn4(br, cr, dr, er, ar, m[
14],
0x5c4dd124,
7); dr = rotl(dr,
10)
20549 ar = fn4(ar, br, cr, dr, er, m[
15],
0x5c4dd124,
7); cr = rotl(cr,
10)
20550 er = fn4(er, ar, br, cr, dr, m[
8],
0x5c4dd124,
12); br = rotl(br,
10)
20551 dr = fn4(dr, er, ar, br, cr, m[
12],
0x5c4dd124,
7); ar = rotl(ar,
10)
20552 cr = fn4(cr, dr, er, ar, br, m[
4],
0x5c4dd124,
6); er = rotl(er,
10)
20553 br = fn4(br, cr, dr, er, ar, m[
9],
0x5c4dd124,
15); dr = rotl(dr,
10)
20554 ar = fn4(ar, br, cr, dr, er, m[
1],
0x5c4dd124,
13); cr = rotl(cr,
10)
20555 er = fn4(er, ar, br, cr, dr, m[
2],
0x5c4dd124,
11); br = rotl(br,
10)
20557 // M'j =
15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13
20559 // S'j =
9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5
20560 dr = fn3(dr, er, ar, br, cr, m[
15],
0x6d703ef3,
9); ar = rotl(ar,
10)
20561 cr = fn3(cr, dr, er, ar, br, m[
5],
0x6d703ef3,
7); er = rotl(er,
10)
20562 br = fn3(br, cr, dr, er, ar, m[
1],
0x6d703ef3,
15); dr = rotl(dr,
10)
20563 ar = fn3(ar, br, cr, dr, er, m[
3],
0x6d703ef3,
11); cr = rotl(cr,
10)
20564 er = fn3(er, ar, br, cr, dr, m[
7],
0x6d703ef3,
8); br = rotl(br,
10)
20565 dr = fn3(dr, er, ar, br, cr, m[
14],
0x6d703ef3,
6); ar = rotl(ar,
10)
20566 cr = fn3(cr, dr, er, ar, br, m[
6],
0x6d703ef3,
6); er = rotl(er,
10)
20567 br = fn3(br, cr, dr, er, ar, m[
9],
0x6d703ef3,
14); dr = rotl(dr,
10)
20568 ar = fn3(ar, br, cr, dr, er, m[
11],
0x6d703ef3,
12); cr = rotl(cr,
10)
20569 er = fn3(er, ar, br, cr, dr, m[
8],
0x6d703ef3,
13); br = rotl(br,
10)
20570 dr = fn3(dr, er, ar, br, cr, m[
12],
0x6d703ef3,
5); ar = rotl(ar,
10)
20571 cr = fn3(cr, dr, er, ar, br, m[
2],
0x6d703ef3,
14); er = rotl(er,
10)
20572 br = fn3(br, cr, dr, er, ar, m[
10],
0x6d703ef3,
13); dr = rotl(dr,
10)
20573 ar = fn3(ar, br, cr, dr, er, m[
0],
0x6d703ef3,
13); cr = rotl(cr,
10)
20574 er = fn3(er, ar, br, cr, dr, m[
4],
0x6d703ef3,
7); br = rotl(br,
10)
20575 dr = fn3(dr, er, ar, br, cr, m[
13],
0x6d703ef3,
5); ar = rotl(ar,
10)
20577 // M'j =
8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14
20579 // S'j =
15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8
20580 cr = fn2(cr, dr, er, ar, br, m[
8],
0x7a6d76e9,
15); er = rotl(er,
10)
20581 br = fn2(br, cr, dr, er, ar, m[
6],
0x7a6d76e9,
5); dr = rotl(dr,
10)
20582 ar = fn2(ar, br, cr, dr, er, m[
4],
0x7a6d76e9,
8); cr = rotl(cr,
10)
20583 er = fn2(er, ar, br, cr, dr, m[
1],
0x7a6d76e9,
11); br = rotl(br,
10)
20584 dr = fn2(dr, er, ar, br, cr, m[
3],
0x7a6d76e9,
14); ar = rotl(ar,
10)
20585 cr = fn2(cr, dr, er, ar, br, m[
11],
0x7a6d76e9,
14); er = rotl(er,
10)
20586 br = fn2(br, cr, dr, er, ar, m[
15],
0x7a6d76e9,
6); dr = rotl(dr,
10)
20587 ar = fn2(ar, br, cr, dr, er, m[
0],
0x7a6d76e9,
14); cr = rotl(cr,
10)
20588 er = fn2(er, ar, br, cr, dr, m[
5],
0x7a6d76e9,
6); br = rotl(br,
10)
20589 dr = fn2(dr, er, ar, br, cr, m[
12],
0x7a6d76e9,
9); ar = rotl(ar,
10)
20590 cr = fn2(cr, dr, er, ar, br, m[
2],
0x7a6d76e9,
12); er = rotl(er,
10)
20591 br = fn2(br, cr, dr, er, ar, m[
13],
0x7a6d76e9,
9); dr = rotl(dr,
10)
20592 ar = fn2(ar, br, cr, dr, er, m[
9],
0x7a6d76e9,
12); cr = rotl(cr,
10)
20593 er = fn2(er, ar, br, cr, dr, m[
7],
0x7a6d76e9,
5); br = rotl(br,
10)
20594 dr = fn2(dr, er, ar, br, cr, m[
10],
0x7a6d76e9,
15); ar = rotl(ar,
10)
20595 cr = fn2(cr, dr, er, ar, br, m[
14],
0x7a6d76e9,
8); er = rotl(er,
10)
20597 // M'j =
12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
20599 // S'j =
8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
20600 br = fn1(br, cr, dr, er, ar, m[
12],
0x00000000,
8); dr = rotl(dr,
10)
20601 ar = fn1(ar, br, cr, dr, er, m[
15],
0x00000000,
5); cr = rotl(cr,
10)
20602 er = fn1(er, ar, br, cr, dr, m[
10],
0x00000000,
12); br = rotl(br,
10)
20603 dr = fn1(dr, er, ar, br, cr, m[
4],
0x00000000,
9); ar = rotl(ar,
10)
20604 cr = fn1(cr, dr, er, ar, br, m[
1],
0x00000000,
12); er = rotl(er,
10)
20605 br = fn1(br, cr, dr, er, ar, m[
5],
0x00000000,
5); dr = rotl(dr,
10)
20606 ar = fn1(ar, br, cr, dr, er, m[
8],
0x00000000,
14); cr = rotl(cr,
10)
20607 er = fn1(er, ar, br, cr, dr, m[
7],
0x00000000,
6); br = rotl(br,
10)
20608 dr = fn1(dr, er, ar, br, cr, m[
6],
0x00000000,
8); ar = rotl(ar,
10)
20609 cr = fn1(cr, dr, er, ar, br, m[
2],
0x00000000,
13); er = rotl(er,
10)
20610 br = fn1(br, cr, dr, er, ar, m[
13],
0x00000000,
6); dr = rotl(dr,
10)
20611 ar = fn1(ar, br, cr, dr, er, m[
14],
0x00000000,
5); cr = rotl(cr,
10)
20612 er = fn1(er, ar, br, cr, dr, m[
0],
0x00000000,
15); br = rotl(br,
10)
20613 dr = fn1(dr, er, ar, br, cr, m[
3],
0x00000000,
13); ar = rotl(ar,
10)
20614 cr = fn1(cr, dr, er, ar, br, m[
9],
0x00000000,
11); er = rotl(er,
10)
20615 br = fn1(br, cr, dr, er, ar, m[
11],
0x00000000,
11); dr = rotl(dr,
10)
20618 var t = (this._b + cl + dr) |
0
20619 this._b = (this._c + dl + er) |
0
20620 this._c = (this._d + el + ar) |
0
20621 this._d = (this._e + al + br) |
0
20622 this._e = (this._a + bl + cr) |
0
20626 RIPEMD160.prototype._digest = function () {
20627 // create padding and handle blocks
20628 this._block[this._blockOffset++] =
0x80
20629 if (this._blockOffset
> 56) {
20630 this._block.fill(
0, this._blockOffset,
64)
20632 this._blockOffset =
0
20635 this._block.fill(
0, this._blockOffset,
56)
20636 this._block.writeUInt32LE(this._length[
0],
56)
20637 this._block.writeUInt32LE(this._length[
1],
60)
20641 var buffer = new Buffer(
20)
20642 buffer.writeInt32LE(this._a,
0)
20643 buffer.writeInt32LE(this._b,
4)
20644 buffer.writeInt32LE(this._c,
8)
20645 buffer.writeInt32LE(this._d,
12)
20646 buffer.writeInt32LE(this._e,
16)
20650 function rotl (x, n) {
20651 return (x << n) | (x
>>> (
32 - n))
20654 function fn1 (a, b, c, d, e, m, k, s) {
20655 return (rotl((a + (b ^ c ^ d) + m + k) |
0, s) + e) |
0
20658 function fn2 (a, b, c, d, e, m, k, s) {
20659 return (rotl((a + ((b & c) | ((~b) & d)) + m + k) |
0, s) + e) |
0
20662 function fn3 (a, b, c, d, e, m, k, s) {
20663 return (rotl((a + ((b | (~c)) ^ d) + m + k) |
0, s) + e) |
0
20666 function fn4 (a, b, c, d, e, m, k, s) {
20667 return (rotl((a + ((b & d) | (c & (~d))) + m + k) |
0, s) + e) |
0
20670 function fn5 (a, b, c, d, e, m, k, s) {
20671 return (rotl((a + (b ^ (c | (~d))) + m + k) |
0, s) + e) |
0
20674 module.exports = RIPEMD160
20676 }).call(this,require("buffer").Buffer)
20677 },{"buffer":
4,"hash-base":
92,"inherits":
93}],
98:[function(require,module,exports){
20678 arguments[
4][
26][
0].apply(exports,arguments)
20679 },{"buffer":
4,"dup":
26}],
99:[function(require,module,exports){
20680 (function (Buffer){
20681 // prototype class for hash functions
20682 function Hash (blockSize, finalSize) {
20683 this._block = new Buffer(blockSize)
20684 this._finalSize = finalSize
20685 this._blockSize = blockSize
20690 Hash.prototype.update = function (data, enc) {
20691 if (typeof data === 'string') {
20692 enc = enc || 'utf8'
20693 data = new Buffer(data, enc)
20696 var l = this._len += data.length
20697 var s = this._s ||
0
20699 var buffer = this._block
20702 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
20705 for (var i =
0; i < ch; i++) {
20706 buffer[(s % this._blockSize) + i] = data[i + f]
20712 if ((s % this._blockSize) ===
0) {
20713 this._update(buffer)
20721 Hash.prototype.digest = function (enc) {
20722 // Suppose the length of the message M, in bits, is l
20723 var l = this._len *
8
20725 // Append the bit
1 to the end of the message
20726 this._block[this._len % this._blockSize] =
0x80
20728 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
20729 this._block.fill(
0, this._len % this._blockSize +
1)
20731 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
20732 this._update(this._block)
20733 this._block.fill(
0)
20736 // to this append the block which is equal to the number l written in binary
20737 // TODO: handle case where l is
> Math.pow(
2,
29)
20738 this._block.writeInt32BE(l, this._blockSize -
4)
20740 var hash = this._update(this._block) || this._hash()
20742 return enc ? hash.toString(enc) : hash
20745 Hash.prototype._update = function () {
20746 throw new Error('_update must be implemented by subclass')
20749 module.exports = Hash
20751 }).call(this,require("buffer").Buffer)
20752 },{"buffer":
4}],
100:[function(require,module,exports){
20753 var exports = module.exports = function SHA (algorithm) {
20754 algorithm = algorithm.toLowerCase()
20756 var Algorithm = exports[algorithm]
20757 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
20759 return new Algorithm()
20762 exports.sha = require('./sha')
20763 exports.sha1 = require('./sha1')
20764 exports.sha224 = require('./sha224')
20765 exports.sha256 = require('./sha256')
20766 exports.sha384 = require('./sha384')
20767 exports.sha512 = require('./sha512')
20769 },{"./sha":
101,"./sha1":
102,"./sha224":
103,"./sha256":
104,"./sha384":
105,"./sha512":
106}],
101:[function(require,module,exports){
20770 (function (Buffer){
20772 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
20773 * in FIPS PUB
180-
1
20774 * This source code is derived from sha1.js of the same repository.
20775 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
20776 * operation was added.
20779 var inherits = require('inherits')
20780 var Hash = require('./hash')
20783 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
20786 var W = new Array(
80)
20792 Hash.call(this,
64,
56)
20795 inherits(Sha, Hash)
20797 Sha.prototype.init = function () {
20798 this._a =
0x67452301
20799 this._b =
0xefcdab89
20800 this._c =
0x98badcfe
20801 this._d =
0x10325476
20802 this._e =
0xc3d2e1f0
20807 function rotl5 (num) {
20808 return (num <<
5) | (num
>>> 27)
20811 function rotl30 (num) {
20812 return (num <<
30) | (num
>>> 2)
20815 function ft (s, b, c, d) {
20816 if (s ===
0) return (b & c) | ((~b) & d)
20817 if (s ===
2) return (b & c) | (b & d) | (c & d)
20821 Sha.prototype._update = function (M) {
20824 var a = this._a |
0
20825 var b = this._b |
0
20826 var c = this._c |
0
20827 var d = this._d |
0
20828 var e = this._e |
0
20830 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
20831 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
20833 for (var j =
0; j <
80; ++j) {
20835 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
20844 this._a = (a + this._a) |
0
20845 this._b = (b + this._b) |
0
20846 this._c = (c + this._c) |
0
20847 this._d = (d + this._d) |
0
20848 this._e = (e + this._e) |
0
20851 Sha.prototype._hash = function () {
20852 var H = new Buffer(
20)
20854 H.writeInt32BE(this._a |
0,
0)
20855 H.writeInt32BE(this._b |
0,
4)
20856 H.writeInt32BE(this._c |
0,
8)
20857 H.writeInt32BE(this._d |
0,
12)
20858 H.writeInt32BE(this._e |
0,
16)
20863 module.exports = Sha
20865 }).call(this,require(
"buffer").Buffer)
20866 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
102:[function(require,module,exports){
20867 (function (Buffer){
20869 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
20870 * in FIPS PUB
180-
1
20871 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
20872 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
20873 * Distributed under the BSD License
20874 * See http://pajhome.org.uk/crypt/md5 for details.
20877 var inherits = require('inherits')
20878 var Hash = require('./hash')
20881 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
20884 var W = new Array(
80)
20890 Hash.call(this,
64,
56)
20893 inherits(Sha1, Hash)
20895 Sha1.prototype.init = function () {
20896 this._a =
0x67452301
20897 this._b =
0xefcdab89
20898 this._c =
0x98badcfe
20899 this._d =
0x10325476
20900 this._e =
0xc3d2e1f0
20905 function rotl1 (num) {
20906 return (num <<
1) | (num
>>> 31)
20909 function rotl5 (num) {
20910 return (num <<
5) | (num
>>> 27)
20913 function rotl30 (num) {
20914 return (num <<
30) | (num
>>> 2)
20917 function ft (s, b, c, d) {
20918 if (s ===
0) return (b & c) | ((~b) & d)
20919 if (s ===
2) return (b & c) | (b & d) | (c & d)
20923 Sha1.prototype._update = function (M) {
20926 var a = this._a |
0
20927 var b = this._b |
0
20928 var c = this._c |
0
20929 var d = this._d |
0
20930 var e = this._e |
0
20932 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
20933 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
20935 for (var j =
0; j <
80; ++j) {
20937 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
20946 this._a = (a + this._a) |
0
20947 this._b = (b + this._b) |
0
20948 this._c = (c + this._c) |
0
20949 this._d = (d + this._d) |
0
20950 this._e = (e + this._e) |
0
20953 Sha1.prototype._hash = function () {
20954 var H = new Buffer(
20)
20956 H.writeInt32BE(this._a |
0,
0)
20957 H.writeInt32BE(this._b |
0,
4)
20958 H.writeInt32BE(this._c |
0,
8)
20959 H.writeInt32BE(this._d |
0,
12)
20960 H.writeInt32BE(this._e |
0,
16)
20965 module.exports = Sha1
20967 }).call(this,require(
"buffer").Buffer)
20968 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
103:[function(require,module,exports){
20969 (function (Buffer){
20971 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
20973 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
20974 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
20978 var inherits = require('inherits')
20979 var Sha256 = require('./sha256')
20980 var Hash = require('./hash')
20982 var W = new Array(
64)
20984 function Sha224 () {
20987 this._w = W // new Array(
64)
20989 Hash.call(this,
64,
56)
20992 inherits(Sha224, Sha256)
20994 Sha224.prototype.init = function () {
20995 this._a =
0xc1059ed8
20996 this._b =
0x367cd507
20997 this._c =
0x3070dd17
20998 this._d =
0xf70e5939
20999 this._e =
0xffc00b31
21000 this._f =
0x68581511
21001 this._g =
0x64f98fa7
21002 this._h =
0xbefa4fa4
21007 Sha224.prototype._hash = function () {
21008 var H = new Buffer(
28)
21010 H.writeInt32BE(this._a,
0)
21011 H.writeInt32BE(this._b,
4)
21012 H.writeInt32BE(this._c,
8)
21013 H.writeInt32BE(this._d,
12)
21014 H.writeInt32BE(this._e,
16)
21015 H.writeInt32BE(this._f,
20)
21016 H.writeInt32BE(this._g,
24)
21021 module.exports = Sha224
21023 }).call(this,require(
"buffer").Buffer)
21024 },{
"./hash":
99,
"./sha256":
104,
"buffer":
4,
"inherits":
93}],
104:[function(require,module,exports){
21025 (function (Buffer){
21027 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
21029 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
21030 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
21034 var inherits = require('inherits')
21035 var Hash = require('./hash')
21038 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
21039 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
21040 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
21041 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
21042 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
21043 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
21044 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
21045 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
21046 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
21047 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
21048 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
21049 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
21050 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
21051 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
21052 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
21053 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
21056 var W = new Array(
64)
21058 function Sha256 () {
21061 this._w = W // new Array(
64)
21063 Hash.call(this,
64,
56)
21066 inherits(Sha256, Hash)
21068 Sha256.prototype.init = function () {
21069 this._a =
0x6a09e667
21070 this._b =
0xbb67ae85
21071 this._c =
0x3c6ef372
21072 this._d =
0xa54ff53a
21073 this._e =
0x510e527f
21074 this._f =
0x9b05688c
21075 this._g =
0x1f83d9ab
21076 this._h =
0x5be0cd19
21081 function ch (x, y, z) {
21082 return z ^ (x & (y ^ z))
21085 function maj (x, y, z) {
21086 return (x & y) | (z & (x | y))
21089 function sigma0 (x) {
21090 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
21093 function sigma1 (x) {
21094 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
21097 function gamma0 (x) {
21098 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
21101 function gamma1 (x) {
21102 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
21105 Sha256.prototype._update = function (M) {
21108 var a = this._a |
0
21109 var b = this._b |
0
21110 var c = this._c |
0
21111 var d = this._d |
0
21112 var e = this._e |
0
21113 var f = this._f |
0
21114 var g = this._g |
0
21115 var h = this._h |
0
21117 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
21118 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
21120 for (var j =
0; j <
64; ++j) {
21121 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
21122 var T2 = (sigma0(a) + maj(a, b, c)) |
0
21134 this._a = (a + this._a) |
0
21135 this._b = (b + this._b) |
0
21136 this._c = (c + this._c) |
0
21137 this._d = (d + this._d) |
0
21138 this._e = (e + this._e) |
0
21139 this._f = (f + this._f) |
0
21140 this._g = (g + this._g) |
0
21141 this._h = (h + this._h) |
0
21144 Sha256.prototype._hash = function () {
21145 var H = new Buffer(
32)
21147 H.writeInt32BE(this._a,
0)
21148 H.writeInt32BE(this._b,
4)
21149 H.writeInt32BE(this._c,
8)
21150 H.writeInt32BE(this._d,
12)
21151 H.writeInt32BE(this._e,
16)
21152 H.writeInt32BE(this._f,
20)
21153 H.writeInt32BE(this._g,
24)
21154 H.writeInt32BE(this._h,
28)
21159 module.exports = Sha256
21161 }).call(this,require(
"buffer").Buffer)
21162 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
105:[function(require,module,exports){
21163 (function (Buffer){
21164 var inherits = require('inherits')
21165 var SHA512 = require('./sha512')
21166 var Hash = require('./hash')
21168 var W = new Array(
160)
21170 function Sha384 () {
21174 Hash.call(this,
128,
112)
21177 inherits(Sha384, SHA512)
21179 Sha384.prototype.init = function () {
21180 this._ah =
0xcbbb9d5d
21181 this._bh =
0x629a292a
21182 this._ch =
0x9159015a
21183 this._dh =
0x152fecd8
21184 this._eh =
0x67332667
21185 this._fh =
0x8eb44a87
21186 this._gh =
0xdb0c2e0d
21187 this._hh =
0x47b5481d
21189 this._al =
0xc1059ed8
21190 this._bl =
0x367cd507
21191 this._cl =
0x3070dd17
21192 this._dl =
0xf70e5939
21193 this._el =
0xffc00b31
21194 this._fl =
0x68581511
21195 this._gl =
0x64f98fa7
21196 this._hl =
0xbefa4fa4
21201 Sha384.prototype._hash = function () {
21202 var H = new Buffer(
48)
21204 function writeInt64BE (h, l, offset) {
21205 H.writeInt32BE(h, offset)
21206 H.writeInt32BE(l, offset +
4)
21209 writeInt64BE(this._ah, this._al,
0)
21210 writeInt64BE(this._bh, this._bl,
8)
21211 writeInt64BE(this._ch, this._cl,
16)
21212 writeInt64BE(this._dh, this._dl,
24)
21213 writeInt64BE(this._eh, this._el,
32)
21214 writeInt64BE(this._fh, this._fl,
40)
21219 module.exports = Sha384
21221 }).call(this,require(
"buffer").Buffer)
21222 },{
"./hash":
99,
"./sha512":
106,
"buffer":
4,
"inherits":
93}],
106:[function(require,module,exports){
21223 (function (Buffer){
21224 var inherits = require('inherits')
21225 var Hash = require('./hash')
21228 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
21229 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
21230 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
21231 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
21232 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
21233 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
21234 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
21235 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
21236 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
21237 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
21238 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
21239 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
21240 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
21241 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
21242 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
21243 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
21244 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
21245 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
21246 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
21247 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
21248 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
21249 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
21250 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
21251 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
21252 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
21253 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
21254 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
21255 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
21256 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
21257 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
21258 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
21259 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
21260 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
21261 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
21262 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
21263 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
21264 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
21265 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
21266 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
21267 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
21270 var W = new Array(
160)
21272 function Sha512 () {
21276 Hash.call(this,
128,
112)
21279 inherits(Sha512, Hash)
21281 Sha512.prototype.init = function () {
21282 this._ah =
0x6a09e667
21283 this._bh =
0xbb67ae85
21284 this._ch =
0x3c6ef372
21285 this._dh =
0xa54ff53a
21286 this._eh =
0x510e527f
21287 this._fh =
0x9b05688c
21288 this._gh =
0x1f83d9ab
21289 this._hh =
0x5be0cd19
21291 this._al =
0xf3bcc908
21292 this._bl =
0x84caa73b
21293 this._cl =
0xfe94f82b
21294 this._dl =
0x5f1d36f1
21295 this._el =
0xade682d1
21296 this._fl =
0x2b3e6c1f
21297 this._gl =
0xfb41bd6b
21298 this._hl =
0x137e2179
21303 function Ch (x, y, z) {
21304 return z ^ (x & (y ^ z))
21307 function maj (x, y, z) {
21308 return (x & y) | (z & (x | y))
21311 function sigma0 (x, xl) {
21312 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
21315 function sigma1 (x, xl) {
21316 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
21319 function Gamma0 (x, xl) {
21320 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
21323 function Gamma0l (x, xl) {
21324 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
21327 function Gamma1 (x, xl) {
21328 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
21331 function Gamma1l (x, xl) {
21332 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
21335 function getCarry (a, b) {
21336 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
21339 Sha512.prototype._update = function (M) {
21342 var ah = this._ah |
0
21343 var bh = this._bh |
0
21344 var ch = this._ch |
0
21345 var dh = this._dh |
0
21346 var eh = this._eh |
0
21347 var fh = this._fh |
0
21348 var gh = this._gh |
0
21349 var hh = this._hh |
0
21351 var al = this._al |
0
21352 var bl = this._bl |
0
21353 var cl = this._cl |
0
21354 var dl = this._dl |
0
21355 var el = this._el |
0
21356 var fl = this._fl |
0
21357 var gl = this._gl |
0
21358 var hl = this._hl |
0
21360 for (var i =
0; i <
32; i +=
2) {
21361 W[i] = M.readInt32BE(i *
4)
21362 W[i +
1] = M.readInt32BE(i *
4 +
4)
21364 for (; i <
160; i +=
2) {
21365 var xh = W[i -
15 *
2]
21366 var xl = W[i -
15 *
2 +
1]
21367 var gamma0 = Gamma0(xh, xl)
21368 var gamma0l = Gamma0l(xl, xh)
21371 xl = W[i -
2 *
2 +
1]
21372 var gamma1 = Gamma1(xh, xl)
21373 var gamma1l = Gamma1l(xl, xh)
21375 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
21376 var Wi7h = W[i -
7 *
2]
21377 var Wi7l = W[i -
7 *
2 +
1]
21379 var Wi16h = W[i -
16 *
2]
21380 var Wi16l = W[i -
16 *
2 +
1]
21382 var Wil = (gamma0l + Wi7l) |
0
21383 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
21384 Wil = (Wil + gamma1l) |
0
21385 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
21386 Wil = (Wil + Wi16l) |
0
21387 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
21393 for (var j =
0; j <
160; j +=
2) {
21397 var majh = maj(ah, bh, ch)
21398 var majl = maj(al, bl, cl)
21400 var sigma0h = sigma0(ah, al)
21401 var sigma0l = sigma0(al, ah)
21402 var sigma1h = sigma1(eh, el)
21403 var sigma1l = sigma1(el, eh)
21405 // t1 = h + sigma1 + ch + K[j] + W[j]
21409 var chh = Ch(eh, fh, gh)
21410 var chl = Ch(el, fl, gl)
21412 var t1l = (hl + sigma1l) |
0
21413 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
21414 t1l = (t1l + chl) |
0
21415 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
21416 t1l = (t1l + Kil) |
0
21417 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
21418 t1l = (t1l + Wil) |
0
21419 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
21421 // t2 = sigma0 + maj
21422 var t2l = (sigma0l + majl) |
0
21423 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
21431 el = (dl + t1l) |
0
21432 eh = (dh + t1h + getCarry(el, dl)) |
0
21439 al = (t1l + t2l) |
0
21440 ah = (t1h + t2h + getCarry(al, t1l)) |
0
21443 this._al = (this._al + al) |
0
21444 this._bl = (this._bl + bl) |
0
21445 this._cl = (this._cl + cl) |
0
21446 this._dl = (this._dl + dl) |
0
21447 this._el = (this._el + el) |
0
21448 this._fl = (this._fl + fl) |
0
21449 this._gl = (this._gl + gl) |
0
21450 this._hl = (this._hl + hl) |
0
21452 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
21453 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
21454 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
21455 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
21456 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
21457 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
21458 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
21459 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
21462 Sha512.prototype._hash = function () {
21463 var H = new Buffer(
64)
21465 function writeInt64BE (h, l, offset) {
21466 H.writeInt32BE(h, offset)
21467 H.writeInt32BE(l, offset +
4)
21470 writeInt64BE(this._ah, this._al,
0)
21471 writeInt64BE(this._bh, this._bl,
8)
21472 writeInt64BE(this._ch, this._cl,
16)
21473 writeInt64BE(this._dh, this._dl,
24)
21474 writeInt64BE(this._eh, this._el,
32)
21475 writeInt64BE(this._fh, this._fl,
40)
21476 writeInt64BE(this._gh, this._gl,
48)
21477 writeInt64BE(this._hh, this._hl,
56)
21482 module.exports = Sha512
21484 }).call(this,require(
"buffer").Buffer)
21485 },{
"./hash":
99,
"buffer":
4,
"inherits":
93}],
107:[function(require,module,exports){
21486 var inherits = require('inherits')
21487 var native = require('./native')
21489 function TfTypeError (type, value, valueTypeName) {
21490 this.__error = Error.call(this)
21492 this.__value = value
21493 this.__valueTypeName = valueTypeName
21496 Object.defineProperty(this, 'message', {
21499 if (message) return message
21501 valueTypeName = valueTypeName || getValueTypeName(value)
21502 message = tfErrorString(type, value, valueTypeName)
21509 function TfPropertyTypeError (type, property, label, value, error, valueTypeName) {
21510 this.__error = error || Error.call(this)
21511 this.__label = label
21512 this.__property = property
21514 this.__value = value
21515 this.__valueTypeName = valueTypeName
21518 Object.defineProperty(this, 'message', {
21521 if (message) return message
21523 valueTypeName = valueTypeName || getValueTypeName(value)
21524 message = tfPropertyErrorString(type, label, property, value, valueTypeName)
21526 message = 'Unexpected property
"' + property + '"'
21534 // inherit from Error, assign stack
21535 [TfTypeError, TfPropertyTypeError].forEach(function (tfErrorType) {
21536 inherits(tfErrorType, Error)
21537 Object.defineProperty(tfErrorType, 'stack', {
21538 get: function () { return this.__error.stack }
21542 function tfCustomError (expected, actual) {
21543 return new TfTypeError(expected, {}, actual)
21546 function tfSubError (e, property, label) {
21548 if (e instanceof TfPropertyTypeError) {
21549 property = property + '.' + e.__property
21552 return new TfPropertyTypeError(
21553 e.__type, property, label, e.__value, e.__error, e.__valueTypeName
21558 if (e instanceof TfTypeError) {
21559 return new TfPropertyTypeError(
21560 e.__type, property, label, e.__value, e.__error, e.__valueTypeName
21567 function getTypeName (fn) {
21568 return fn.name || fn.toString().match(/function (.*?)\s*\(/)[
1]
21571 function getValueTypeName (value) {
21572 return native.Nil(value) ? '' : getTypeName(value.constructor)
21575 function getValue (value) {
21576 if (native.Function(value)) return ''
21577 if (native.String(value)) return JSON.stringify(value)
21578 if (value && native.Object(value)) return ''
21582 function tfJSON (type) {
21583 if (native.Function(type)) return type.toJSON ? type.toJSON() : getTypeName(type)
21584 if (native.Array(type)) return 'Array'
21585 if (type && native.Object(type)) return 'Object'
21587 return type !== undefined ? type : ''
21590 function tfErrorString (type, value, valueTypeName) {
21591 var valueJson = getValue(value)
21593 return 'Expected ' + tfJSON(type) + ', got' +
21594 (valueTypeName !== '' ? ' ' + valueTypeName : '') +
21595 (valueJson !== '' ? ' ' + valueJson : '')
21598 function tfPropertyErrorString (type, label, name, value, valueTypeName) {
21599 var description = '
" of type '
21600 if (label === 'key') description = '" with key type '
21602 return tfErrorString('property
"' + tfJSON(name) + description + tfJSON(type), value, valueTypeName)
21606 TfTypeError: TfTypeError,
21607 TfPropertyTypeError: TfPropertyTypeError,
21608 tfCustomError: tfCustomError,
21609 tfSubError: tfSubError,
21611 getValueTypeName: getValueTypeName
21614 },{"./native
":110,"inherits
":93}],108:[function(require,module,exports){
21615 (function (Buffer){
21616 var NATIVE = require('./native')
21617 var ERRORS = require('./errors')
21619 function _Buffer (value) {
21620 return Buffer.isBuffer(value)
21623 function Hex (value) {
21624 return typeof value === 'string' && /^([0-9a-f]{2})+$/i.test(value)
21627 function _LengthN (type, length) {
21628 var name = type.toJSON()
21630 function Length (value) {
21631 if (!type(value)) return false
21632 if (value.length === length) return true
21634 throw ERRORS.tfCustomError(name + '(Length: ' + length + ')', name + '(Length: ' + value.length + ')')
21636 Length.toJSON = function () { return name }
21641 var _ArrayN = _LengthN.bind(null, NATIVE.Array)
21642 var _BufferN = _LengthN.bind(null, _Buffer)
21643 var _HexN = _LengthN.bind(null, Hex)
21645 var UINT53_MAX = Math.pow(2, 53) - 1
21647 function Finite (value) {
21648 return typeof value === 'number' && isFinite(value)
21650 function Int8 (value) { return ((value << 24) >> 24) === value }
21651 function Int16 (value) { return ((value << 16) >> 16) === value }
21652 function Int32 (value) { return (value | 0) === value }
21653 function UInt8 (value) { return (value & 0xff) === value }
21654 function UInt16 (value) { return (value & 0xffff) === value }
21655 function UInt32 (value) { return (value >>> 0) === value }
21656 function UInt53 (value) {
21657 return typeof value === 'number' &&
21659 value <= UINT53_MAX &&
21660 Math.floor(value) === value
21679 for (var typeName in types) {
21680 types[typeName].toJSON = function (t) {
21682 }.bind(null, typeName)
21685 module.exports = types
21687 }).call(this,{"isBuffer
":require("../../../../../.nvm/versions/node/v6.0
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js
")})
21688 },{"../../../../../.nvm/versions/node/v6.0
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js
":9,"./errors
":107,"./native
":110}],109:[function(require,module,exports){
21689 var ERRORS = require('./errors')
21690 var NATIVE = require('./native')
21693 var tfJSON = ERRORS.tfJSON
21694 var TfTypeError = ERRORS.TfTypeError
21695 var TfPropertyTypeError = ERRORS.TfPropertyTypeError
21696 var tfSubError = ERRORS.tfSubError
21697 var getValueTypeName = ERRORS.getValueTypeName
21700 arrayOf: function arrayOf (type) {
21701 type = compile(type)
21703 function _arrayOf (array, strict) {
21704 if (!NATIVE.Array(array)) return false
21706 return array.every(function (value, i) {
21708 return typeforce(type, value, strict)
21710 throw tfSubError(e, i)
21714 _arrayOf.toJSON = function () { return '[' + tfJSON(type) + ']' }
21719 maybe: function maybe (type) {
21720 type = compile(type)
21722 function _maybe (value, strict) {
21723 return NATIVE.Nil(value) || type(value, strict, maybe)
21725 _maybe.toJSON = function () { return '?' + tfJSON(type) }
21730 map: function map (propertyType, propertyKeyType) {
21731 propertyType = compile(propertyType)
21732 if (propertyKeyType) propertyKeyType = compile(propertyKeyType)
21734 function _map (value, strict) {
21735 if (!NATIVE.Object(value, strict)) return false
21736 if (NATIVE.Nil(value, strict)) return false
21738 for (var propertyName in value) {
21740 if (propertyKeyType) {
21741 typeforce(propertyKeyType, propertyName, strict)
21744 throw tfSubError(e, propertyName, 'key')
21748 var propertyValue = value[propertyName]
21749 typeforce(propertyType, propertyValue, strict)
21751 throw tfSubError(e, propertyName)
21758 if (propertyKeyType) {
21759 _map.toJSON = function () {
21760 return '{' + tfJSON(propertyKeyType) + ': ' + tfJSON(propertyType) + '}'
21763 _map.toJSON = function () { return '{' + tfJSON(propertyType) + '}' }
21769 object: function object (uncompiled) {
21772 for (var typePropertyName in uncompiled) {
21773 type[typePropertyName] = compile(uncompiled[typePropertyName])
21776 function _object (value, strict) {
21777 if (!NATIVE.Object(value)) return false
21778 if (NATIVE.Nil(value)) return false
21783 for (propertyName in type) {
21784 var propertyType = type[propertyName]
21785 var propertyValue = value[propertyName]
21787 typeforce(propertyType, propertyValue, strict)
21790 throw tfSubError(e, propertyName)
21794 for (propertyName in value) {
21795 if (type[propertyName]) continue
21797 throw new TfPropertyTypeError(undefined, propertyName)
21803 _object.toJSON = function () { return tfJSON(type) }
21808 oneOf: function oneOf () {
21809 var types = [].slice.call(arguments).map(compile)
21811 function _oneOf (value, strict) {
21812 return types.some(function (type) {
21814 return typeforce(type, value, strict)
21820 _oneOf.toJSON = function () { return types.map(tfJSON).join('|') }
21825 quacksLike: function quacksLike (type) {
21826 function _quacksLike (value) {
21827 return type === getValueTypeName(value)
21829 _quacksLike.toJSON = function () { return type }
21834 tuple: function tuple () {
21835 var types = [].slice.call(arguments).map(compile)
21837 function _tuple (values, strict) {
21838 return types.every(function (type, i) {
21840 return typeforce(type, values[i], strict)
21842 throw tfSubError(e, i)
21844 }) && (!strict || values.length === arguments.length)
21846 _tuple.toJSON = function () { return '(' + types.map(tfJSON).join(', ') + ')' }
21851 value: function value (expected) {
21852 function _value (actual) {
21853 return actual === expected
21855 _value.toJSON = function () { return expected }
21861 function compile (type) {
21862 if (NATIVE.String(type)) {
21863 if (type[0] === '?') return TYPES.maybe(compile(type.slice(1)))
21865 return NATIVE[type] || TYPES.quacksLike(type)
21866 } else if (type && NATIVE.Object(type)) {
21867 if (NATIVE.Array(type)) return TYPES.arrayOf(compile(type[0]))
21869 return TYPES.object(type)
21870 } else if (NATIVE.Function(type)) {
21874 return TYPES.value(type)
21877 function typeforce (type, value, strict, surrogate) {
21878 if (NATIVE.Function(type)) {
21879 if (type(value, strict)) return true
21881 throw new TfTypeError(surrogate || type, value)
21885 return typeforce(compile(type), value, strict)
21888 // assign types to typeforce function
21889 for (var typeName in NATIVE) {
21890 typeforce[typeName] = NATIVE[typeName]
21893 for (typeName in TYPES) {
21894 typeforce[typeName] = TYPES[typeName]
21897 var EXTRA = require('./extra')
21898 for (typeName in EXTRA) {
21899 typeforce[typeName] = EXTRA[typeName]
21903 function __async (type, value, strict, callback) {
21904 // default to falsy strict if using shorthand overload
21905 if (typeof strict === 'function') return __async(type, value, false, strict)
21908 typeforce(type, value, strict)
21916 typeforce.async = __async
21917 typeforce.compile = compile
21918 typeforce.TfTypeError = TfTypeError
21919 typeforce.TfPropertyTypeError = TfPropertyTypeError
21921 module.exports = typeforce
21923 },{"./errors
":107,"./extra
":108,"./native
":110}],110:[function(require,module,exports){
21925 Array: function (value) { return value !== null && value !== undefined && value.constructor === Array },
21926 Boolean: function (value) { return typeof value === 'boolean' },
21927 Function: function (value) { return typeof value === 'function' },
21928 Nil: function (value) { return value === undefined || value === null },
21929 Number: function (value) { return typeof value === 'number' },
21930 Object: function (value) { return typeof value === 'object' },
21931 String: function (value) { return typeof value === 'string' },
21932 '': function () { return true }
21936 types.Null = types.Nil
21938 for (var typeName in types) {
21939 types[typeName].toJSON = function (t) {
21941 }.bind(null, typeName)
21944 module.exports = types
21946 },{}],111:[function(require,module,exports){
21947 (function (Buffer){
21950 // Number.MAX_SAFE_INTEGER
21951 var MAX_SAFE_INTEGER = 9007199254740991
21953 function checkUInt53 (n) {
21954 if (n < 0 || n > MAX_SAFE_INTEGER || n % 1 !== 0) throw new RangeError('value out of range')
21957 function encode (number, buffer, offset) {
21958 checkUInt53(number)
21960 if (!buffer) buffer = new Buffer(encodingLength(number))
21961 if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')
21962 if (!offset) offset = 0
21965 if (number < 0xfd) {
21966 buffer.writeUInt8(number, offset)
21970 } else if (number <= 0xffff) {
21971 buffer.writeUInt8(0xfd, offset)
21972 buffer.writeUInt16LE(number, offset + 1)
21976 } else if (number <= 0xffffffff) {
21977 buffer.writeUInt8(0xfe, offset)
21978 buffer.writeUInt32LE(number, offset + 1)
21983 buffer.writeUInt8(0xff, offset)
21984 buffer.writeUInt32LE(number >>> 0, offset + 1)
21985 buffer.writeUInt32LE((number / 0x100000000) | 0, offset + 5)
21992 function decode (buffer, offset) {
21993 if (!Buffer.isBuffer(buffer)) throw new TypeError('buffer must be a Buffer instance')
21994 if (!offset) offset = 0
21996 var first = buffer.readUInt8(offset)
21999 if (first < 0xfd) {
22004 } else if (first === 0xfd) {
22006 return buffer.readUInt16LE(offset + 1)
22009 } else if (first === 0xfe) {
22011 return buffer.readUInt32LE(offset + 1)
22016 var lo = buffer.readUInt32LE(offset + 1)
22017 var hi = buffer.readUInt32LE(offset + 5)
22018 var number = hi * 0x0100000000 + lo
22019 checkUInt53(number)
22025 function encodingLength (number) {
22026 checkUInt53(number)
22030 : number <= 0xffff ? 3
22031 : number <= 0xffffffff ? 5
22036 module.exports = { encode: encode, decode: decode, encodingLength: encodingLength }
22038 }).call(this,require("buffer
").Buffer)
22039 },{"buffer
":4}],112:[function(require,module,exports){
22040 (function (Buffer){
22041 var bs58check = require('bs58check')
22043 function decodeRaw (buffer, version) {
22044 // check version only if defined
22045 if (version !== undefined && buffer[0] !== version) throw new Error('Invalid network version')
22048 if (buffer.length === 33) {
22050 version: buffer[0],
22051 privateKey: buffer.slice(1, 33),
22057 if (buffer.length !== 34) throw new Error('Invalid WIF length')
22059 // invalid compression flag
22060 if (buffer[33] !== 0x01) throw new Error('Invalid compression flag')
22063 version: buffer[0],
22064 privateKey: buffer.slice(1, 33),
22069 function encodeRaw (version, privateKey, compressed) {
22070 var result = new Buffer(compressed ? 34 : 33)
22072 result.writeUInt8(version, 0)
22073 privateKey.copy(result, 1)
22082 function decode (string, version) {
22083 return decodeRaw(bs58check.decode(string), version)
22086 function encode (version, privateKey, compressed) {
22087 if (typeof version === 'number') return bs58check.encode(encodeRaw(version, privateKey, compressed))
22089 return bs58check.encode(
22092 version.privateKey,
22100 decodeRaw: decodeRaw,
22102 encodeRaw: encodeRaw
22105 }).call(this,require("buffer
").Buffer)
22106 },{"bs58check
":80,"buffer
":4}]},{},[33])(33)
22108 <script>bitcoinjs.bitcoin.networks.shadow = {
22109 messagePrefix: "unused",
22111 public:
0xEE80286A,
22112 private:
0xEE8031E8
22119 bitcoinjs.bitcoin.networks.shadowtn = {
22120 messagePrefix: "unused",
22122 public:
0x76C0FDFB,
22123 private:
0x76C1077A
22130 bitcoinjs.bitcoin.networks.clam = {
22131 messagePrefix: "unused",
22133 public:
0xa8c26d64,
22134 private:
0xa8c17826
22137 scriptHash:
0x00, // TODO set this correctly
22141 bitcoinjs.bitcoin.networks.crown = {
22142 messagePrefix: "unused",
22144 public:
0x0488b21e,
22145 private:
0x0488ade4
22152 bitcoinjs.bitcoin.networks.dash = {
22153 messagePrefix: "unused",
22155 public:
0x0488b21e,
22156 private:
0x0488ade4
22163 bitcoinjs.bitcoin.networks.dashtn = {
22164 messagePrefix: "unused",
22166 public:
0x043587cf,
22167 private:
0x04358394
22174 bitcoinjs.bitcoin.networks.game = {
22175 messagePrefix: "unused",
22177 public:
0x0488b21e,
22178 private:
0x0488ade4
22185 bitcoinjs.bitcoin.networks.namecoin = {
22186 messagePrefix: "unused",
22188 public:
0x0488b21e,
22189 private:
0x0488ade4
22192 scriptHash:
0x00, // TODO set this correctly
22196 bitcoinjs.bitcoin.networks.peercoin = {
22197 messagePrefix: "unused",
22199 public:
0x0488b21e,
22200 private:
0x0488ade4
22203 scriptHash:
0x00, // TODO set this correctly
22207 bitcoinjs.bitcoin.networks.slimcoin = {
22208 messagePrefix: "unused",
22210 public:
0xef6adf10,
22211 private:
0xef69ea80
22218 bitcoinjs.bitcoin.networks.slimcointn = {
22219 messagePrefix: "unused",
22221 public:
0x043587CF,
22222 private:
0x04358394
22229 bitcoinjs.bitcoin.networks.dogecoin = {
22230 messagePrefix: '\x19Dogecoin Signed Message:\n',
22232 public:
0x02facafd,
22233 private:
0x02fac398
22240 bitcoinjs.bitcoin.networks.viacoin = {
22241 messagePrefix: '\x18Viacoin Signed Message:\n',
22243 public:
0x0488b21e,
22244 private:
0x0488ade4
22251 bitcoinjs.bitcoin.networks.viacointestnet = {
22252 messagePrefix: '\x18Viacoin Signed Message:\n',
22254 public:
0x043587cf,
22255 private:
0x04358394
22262 bitcoinjs.bitcoin.networks.gamerscoin = {
22263 messagePrefix: '\x19Gamerscoin Signed Message:\n',
22265 public:
0x019da462,
22266 private:
0x019d9cfe
22273 bitcoinjs.bitcoin.networks.jumbucks = {
22274 messagePrefix: '\x19Jumbucks Signed Message:\n',
22276 public:
0x037a689a,
22277 private:
0x037a6460
22284 bitcoinjs.bitcoin.networks.zetacoin = {
22285 messagePrefix: '\x18Zetacoin Signed Message:\n',
22287 public:
0x0488b21e,
22288 private:
0x0488ade4
22295 bitcoinjs.bitcoin.networks.myriadcoin = {
22296 messagePrefix: "unused",
22298 public:
0x0488b21e,
22299 private:
0x0488ade4
22302 scriptHash:
0x00, // TODO set this correctly
22306 bitcoinjs.bitcoin.networks.pivx = {
22307 messagePrefix: "unused",
22309 public:
0x022d2533,
22310 private:
0x0221312b
22317 bitcoinjs.bitcoin.networks.pivxtestnet = {
22318 messagePrefix: "unused",
22320 public:
0x3a8061a0,
22321 private:
0x3a805837
22328 <script>(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.ethUtil = 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
<r.length;o++)s(r[o]);return s})({
1:[function(require,module,exports){
22329 (function (global){
22332 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
22333 // original notice:
22336 * The buffer module from node.js, for the browser.
22338 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
22341 function compare(a, b) {
22349 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
22350 if (a[i] !== b[i]) {
22365 function isBuffer(b) {
22366 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
22367 return global.Buffer.isBuffer(b);
22369 return !!(b != null && b._isBuffer);
22372 // based on node assert, original notice:
22374 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
22376 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
22378 // Originally from narwhal.js (http://narwhaljs.org)
22379 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
22381 // Permission is hereby granted, free of charge, to any person obtaining a copy
22382 // of this software and associated documentation files (the 'Software'), to
22383 // deal in the Software without restriction, including without limitation the
22384 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
22385 // sell copies of the Software, and to permit persons to whom the Software is
22386 // furnished to do so, subject to the following conditions:
22388 // The above copyright notice and this permission notice shall be included in
22389 // all copies or substantial portions of the Software.
22391 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22392 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22393 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22394 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
22395 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22396 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22398 var util = require('util/');
22399 var hasOwn = Object.prototype.hasOwnProperty;
22400 var pSlice = Array.prototype.slice;
22401 var functionsHaveNames = (function () {
22402 return function foo() {}.name === 'foo';
22404 function pToString (obj) {
22405 return Object.prototype.toString.call(obj);
22407 function isView(arrbuf) {
22408 if (isBuffer(arrbuf)) {
22411 if (typeof global.ArrayBuffer !== 'function') {
22414 if (typeof ArrayBuffer.isView === 'function') {
22415 return ArrayBuffer.isView(arrbuf);
22420 if (arrbuf instanceof DataView) {
22423 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
22428 //
1. The assert module provides functions that throw
22429 // AssertionError's when particular conditions are not met. The
22430 // assert module must conform to the following interface.
22432 var assert = module.exports = ok;
22434 //
2. The AssertionError is defined in assert.
22435 // new assert.AssertionError({ message: message,
22437 // expected: expected })
22439 var regex = /\s*function\s+([^\(\s]*)\s*/;
22440 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
22441 function getName(func) {
22442 if (!util.isFunction(func)) {
22445 if (functionsHaveNames) {
22448 var str = func.toString();
22449 var match = str.match(regex);
22450 return match && match[
1];
22452 assert.AssertionError = function AssertionError(options) {
22453 this.name = 'AssertionError';
22454 this.actual = options.actual;
22455 this.expected = options.expected;
22456 this.operator = options.operator;
22457 if (options.message) {
22458 this.message = options.message;
22459 this.generatedMessage = false;
22461 this.message = getMessage(this);
22462 this.generatedMessage = true;
22464 var stackStartFunction = options.stackStartFunction || fail;
22465 if (Error.captureStackTrace) {
22466 Error.captureStackTrace(this, stackStartFunction);
22468 // non v8 browsers so we can have a stacktrace
22469 var err = new Error();
22471 var out = err.stack;
22473 // try to strip useless frames
22474 var fn_name = getName(stackStartFunction);
22475 var idx = out.indexOf('\n' + fn_name);
22477 // once we have located the function frame
22478 // we need to strip out everything before it (and its line)
22479 var next_line = out.indexOf('\n', idx +
1);
22480 out = out.substring(next_line +
1);
22488 // assert.AssertionError instanceof Error
22489 util.inherits(assert.AssertionError, Error);
22491 function truncate(s, n) {
22492 if (typeof s === 'string') {
22493 return s.length < n ? s : s.slice(
0, n);
22498 function inspect(something) {
22499 if (functionsHaveNames || !util.isFunction(something)) {
22500 return util.inspect(something);
22502 var rawname = getName(something);
22503 var name = rawname ? ': ' + rawname : '';
22504 return '[Function' + name + ']';
22506 function getMessage(self) {
22507 return truncate(inspect(self.actual),
128) + ' ' +
22508 self.operator + ' ' +
22509 truncate(inspect(self.expected),
128);
22512 // At present only the three keys mentioned above are used and
22513 // understood by the spec. Implementations or sub modules can pass
22514 // other keys to the AssertionError's constructor - they will be
22517 //
3. All of the following functions must throw an AssertionError
22518 // when a corresponding condition is not met, with a message that
22519 // may be undefined if not provided. All assertion methods provide
22520 // both the actual and expected values to the assertion error for
22521 // display purposes.
22523 function fail(actual, expected, message, operator, stackStartFunction) {
22524 throw new assert.AssertionError({
22527 expected: expected,
22528 operator: operator,
22529 stackStartFunction: stackStartFunction
22533 // EXTENSION! allows for well behaved errors defined elsewhere.
22534 assert.fail = fail;
22536 //
4. Pure assertion tests whether a value is truthy, as determined
22538 // assert.ok(guard, message_opt);
22539 // This statement is equivalent to assert.equal(true, !!guard,
22540 // message_opt);. To test strictly for the value true, use
22541 // assert.strictEqual(true, guard, message_opt);.
22543 function ok(value, message) {
22544 if (!value) fail(value, true, message, '==', assert.ok);
22548 //
5. The equality assertion tests shallow, coercive equality with
22550 // assert.equal(actual, expected, message_opt);
22552 assert.equal = function equal(actual, expected, message) {
22553 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
22556 //
6. The non-equality assertion tests for whether two objects are not equal
22557 // with != assert.notEqual(actual, expected, message_opt);
22559 assert.notEqual = function notEqual(actual, expected, message) {
22560 if (actual == expected) {
22561 fail(actual, expected, message, '!=', assert.notEqual);
22565 //
7. The equivalence assertion tests a deep equality relation.
22566 // assert.deepEqual(actual, expected, message_opt);
22568 assert.deepEqual = function deepEqual(actual, expected, message) {
22569 if (!_deepEqual(actual, expected, false)) {
22570 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
22574 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
22575 if (!_deepEqual(actual, expected, true)) {
22576 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
22580 function _deepEqual(actual, expected, strict, memos) {
22581 //
7.1. All identical values are equivalent, as determined by ===.
22582 if (actual === expected) {
22584 } else if (isBuffer(actual) && isBuffer(expected)) {
22585 return compare(actual, expected) ===
0;
22587 //
7.2. If the expected value is a Date object, the actual value is
22588 // equivalent if it is also a Date object that refers to the same time.
22589 } else if (util.isDate(actual) && util.isDate(expected)) {
22590 return actual.getTime() === expected.getTime();
22592 //
7.3 If the expected value is a RegExp object, the actual value is
22593 // equivalent if it is also a RegExp object with the same source and
22594 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
22595 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
22596 return actual.source === expected.source &&
22597 actual.global === expected.global &&
22598 actual.multiline === expected.multiline &&
22599 actual.lastIndex === expected.lastIndex &&
22600 actual.ignoreCase === expected.ignoreCase;
22602 //
7.4. Other pairs that do not both pass typeof value == 'object',
22603 // equivalence is determined by ==.
22604 } else if ((actual === null || typeof actual !== 'object') &&
22605 (expected === null || typeof expected !== 'object')) {
22606 return strict ? actual === expected : actual == expected;
22608 // If both values are instances of typed arrays, wrap their underlying
22609 // ArrayBuffers in a Buffer each to increase performance
22610 // This optimization requires the arrays to have the same type as checked by
22611 // Object.prototype.toString (aka pToString). Never perform binary
22612 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
22613 // bit patterns are not identical.
22614 } else if (isView(actual) && isView(expected) &&
22615 pToString(actual) === pToString(expected) &&
22616 !(actual instanceof Float32Array ||
22617 actual instanceof Float64Array)) {
22618 return compare(new Uint8Array(actual.buffer),
22619 new Uint8Array(expected.buffer)) ===
0;
22621 //
7.5 For all other Object pairs, including Array objects, equivalence is
22622 // determined by having the same number of owned properties (as verified
22623 // with Object.prototype.hasOwnProperty.call), the same set of keys
22624 // (although not necessarily the same order), equivalent values for every
22625 // corresponding key, and an identical 'prototype' property. Note: this
22626 // accounts for both named and indexed properties on Arrays.
22627 } else if (isBuffer(actual) !== isBuffer(expected)) {
22630 memos = memos || {actual: [], expected: []};
22632 var actualIndex = memos.actual.indexOf(actual);
22633 if (actualIndex !== -
1) {
22634 if (actualIndex === memos.expected.indexOf(expected)) {
22639 memos.actual.push(actual);
22640 memos.expected.push(expected);
22642 return objEquiv(actual, expected, strict, memos);
22646 function isArguments(object) {
22647 return Object.prototype.toString.call(object) == '[object Arguments]';
22650 function objEquiv(a, b, strict, actualVisitedObjects) {
22651 if (a === null || a === undefined || b === null || b === undefined)
22653 // if one is a primitive, the other must be same
22654 if (util.isPrimitive(a) || util.isPrimitive(b))
22656 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
22658 var aIsArgs = isArguments(a);
22659 var bIsArgs = isArguments(b);
22660 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
22663 a = pSlice.call(a);
22664 b = pSlice.call(b);
22665 return _deepEqual(a, b, strict);
22667 var ka = objectKeys(a);
22668 var kb = objectKeys(b);
22670 // having the same number of owned properties (keys incorporates
22672 if (ka.length !== kb.length)
22674 //the same set of keys (although not necessarily the same order),
22677 //~~~cheap key test
22678 for (i = ka.length -
1; i
>=
0; i--) {
22679 if (ka[i] !== kb[i])
22682 //equivalent values for every corresponding key, and
22683 //~~~possibly expensive deep test
22684 for (i = ka.length -
1; i
>=
0; i--) {
22686 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
22692 //
8. The non-equivalence assertion tests for any deep inequality.
22693 // assert.notDeepEqual(actual, expected, message_opt);
22695 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
22696 if (_deepEqual(actual, expected, false)) {
22697 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
22701 assert.notDeepStrictEqual = notDeepStrictEqual;
22702 function notDeepStrictEqual(actual, expected, message) {
22703 if (_deepEqual(actual, expected, true)) {
22704 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
22709 //
9. The strict equality assertion tests strict equality, as determined by ===.
22710 // assert.strictEqual(actual, expected, message_opt);
22712 assert.strictEqual = function strictEqual(actual, expected, message) {
22713 if (actual !== expected) {
22714 fail(actual, expected, message, '===', assert.strictEqual);
22718 //
10. The strict non-equality assertion tests for strict inequality, as
22719 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
22721 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
22722 if (actual === expected) {
22723 fail(actual, expected, message, '!==', assert.notStrictEqual);
22727 function expectedException(actual, expected) {
22728 if (!actual || !expected) {
22732 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
22733 return expected.test(actual);
22737 if (actual instanceof expected) {
22741 // Ignore. The instanceof check doesn't work for arrow functions.
22744 if (Error.isPrototypeOf(expected)) {
22748 return expected.call({}, actual) === true;
22751 function _tryBlock(block) {
22761 function _throws(shouldThrow, block, expected, message) {
22764 if (typeof block !== 'function') {
22765 throw new TypeError('"block" argument must be a function');
22768 if (typeof expected === 'string') {
22769 message = expected;
22773 actual = _tryBlock(block);
22775 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
22776 (message ? ' ' + message : '.');
22778 if (shouldThrow && !actual) {
22779 fail(actual, expected, 'Missing expected exception' + message);
22782 var userProvidedMessage = typeof message === 'string';
22783 var isUnwantedException = !shouldThrow && util.isError(actual);
22784 var isUnexpectedException = !shouldThrow && actual && !expected;
22786 if ((isUnwantedException &&
22787 userProvidedMessage &&
22788 expectedException(actual, expected)) ||
22789 isUnexpectedException) {
22790 fail(actual, expected, 'Got unwanted exception' + message);
22793 if ((shouldThrow && actual && expected &&
22794 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
22799 //
11. Expected to throw an error:
22800 // assert.throws(block, Error_opt, message_opt);
22802 assert.throws = function(block, /*optional*/error, /*optional*/message) {
22803 _throws(true, block, error, message);
22806 // EXTENSION! This is annoying to write outside this module.
22807 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
22808 _throws(false, block, error, message);
22811 assert.ifError = function(err) { if (err) throw err; };
22813 var objectKeys = Object.keys || function (obj) {
22815 for (var key in obj) {
22816 if (hasOwn.call(obj, key)) keys.push(key);
22821 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
22822 },{"util/":
30}],
2:[function(require,module,exports){
22825 exports.byteLength = byteLength
22826 exports.toByteArray = toByteArray
22827 exports.fromByteArray = fromByteArray
22831 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
22833 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
22834 for (var i =
0, len = code.length; i < len; ++i) {
22835 lookup[i] = code[i]
22836 revLookup[code.charCodeAt(i)] = i
22839 revLookup['-'.charCodeAt(
0)] =
62
22840 revLookup['_'.charCodeAt(
0)] =
63
22842 function placeHoldersCount (b64) {
22843 var len = b64.length
22845 throw new Error('Invalid string. Length must be a multiple of
4')
22848 // the number of equal signs (place holders)
22849 // if there are two placeholders, than the two characters before it
22850 // represent one byte
22851 // if there is only one, then the three characters before it represent
2 bytes
22852 // this is just a cheap hack to not do indexOf twice
22853 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
22856 function byteLength (b64) {
22857 // base64 is
4/
3 + up to two characters of the original data
22858 return b64.length *
3 /
4 - placeHoldersCount(b64)
22861 function toByteArray (b64) {
22862 var i, j, l, tmp, placeHolders, arr
22863 var len = b64.length
22864 placeHolders = placeHoldersCount(b64)
22866 arr = new Arr(len *
3 /
4 - placeHolders)
22868 // if there are placeholders, only get up to the last complete
4 chars
22869 l = placeHolders
> 0 ? len -
4 : len
22873 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
22874 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
22875 arr[L++] = (tmp
>> 16) &
0xFF
22876 arr[L++] = (tmp
>> 8) &
0xFF
22877 arr[L++] = tmp &
0xFF
22880 if (placeHolders ===
2) {
22881 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
22882 arr[L++] = tmp &
0xFF
22883 } else if (placeHolders ===
1) {
22884 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
22885 arr[L++] = (tmp
>> 8) &
0xFF
22886 arr[L++] = tmp &
0xFF
22892 function tripletToBase64 (num) {
22893 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
22896 function encodeChunk (uint8, start, end) {
22899 for (var i = start; i < end; i +=
3) {
22900 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
22901 output.push(tripletToBase64(tmp))
22903 return output.join('')
22906 function fromByteArray (uint8) {
22908 var len = uint8.length
22909 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
22912 var maxChunkLength =
16383 // must be multiple of
3
22914 // go through the array every three bytes, we'll deal with trailing stuff later
22915 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
22916 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
22919 // pad the end with zeros, but make sure to not forget the extra bytes
22920 if (extraBytes ===
1) {
22921 tmp = uint8[len -
1]
22922 output += lookup[tmp
>> 2]
22923 output += lookup[(tmp <<
4) &
0x3F]
22925 } else if (extraBytes ===
2) {
22926 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
22927 output += lookup[tmp
>> 10]
22928 output += lookup[(tmp
>> 4) &
0x3F]
22929 output += lookup[(tmp <<
2) &
0x3F]
22935 return parts.join('')
22938 },{}],
3:[function(require,module,exports){
22940 },{}],
4:[function(require,module,exports){
22941 (function (global){
22944 var buffer = require('buffer');
22945 var Buffer = buffer.Buffer;
22946 var SlowBuffer = buffer.SlowBuffer;
22947 var MAX_LEN = buffer.kMaxLength ||
2147483647;
22948 exports.alloc = function alloc(size, fill, encoding) {
22949 if (typeof Buffer.alloc === 'function') {
22950 return Buffer.alloc(size, fill, encoding);
22952 if (typeof encoding === 'number') {
22953 throw new TypeError('encoding must not be number');
22955 if (typeof size !== 'number') {
22956 throw new TypeError('size must be a number');
22958 if (size
> MAX_LEN) {
22959 throw new RangeError('size is too large');
22961 var enc = encoding;
22963 if (_fill === undefined) {
22967 var buf = new Buffer(size);
22968 if (typeof _fill === 'string') {
22969 var fillBuf = new Buffer(_fill, enc);
22970 var flen = fillBuf.length;
22972 while (++i < size) {
22973 buf[i] = fillBuf[i % flen];
22980 exports.allocUnsafe = function allocUnsafe(size) {
22981 if (typeof Buffer.allocUnsafe === 'function') {
22982 return Buffer.allocUnsafe(size);
22984 if (typeof size !== 'number') {
22985 throw new TypeError('size must be a number');
22987 if (size
> MAX_LEN) {
22988 throw new RangeError('size is too large');
22990 return new Buffer(size);
22992 exports.from = function from(value, encodingOrOffset, length) {
22993 if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
22994 return Buffer.from(value, encodingOrOffset, length);
22996 if (typeof value === 'number') {
22997 throw new TypeError('"value" argument must not be a number');
22999 if (typeof value === 'string') {
23000 return new Buffer(value, encodingOrOffset);
23002 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
23003 var offset = encodingOrOffset;
23004 if (arguments.length ===
1) {
23005 return new Buffer(value);
23007 if (typeof offset === 'undefined') {
23011 if (typeof len === 'undefined') {
23012 len = value.byteLength - offset;
23014 if (offset
>= value.byteLength) {
23015 throw new RangeError('\'offset\' is out of bounds');
23017 if (len
> value.byteLength - offset) {
23018 throw new RangeError('\'length\' is out of bounds');
23020 return new Buffer(value.slice(offset, offset + len));
23022 if (Buffer.isBuffer(value)) {
23023 var out = new Buffer(value.length);
23024 value.copy(out,
0,
0, value.length);
23028 if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
23029 return new Buffer(value);
23031 if (value.type === 'Buffer' && Array.isArray(value.data)) {
23032 return new Buffer(value.data);
23036 throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
23038 exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
23039 if (typeof Buffer.allocUnsafeSlow === 'function') {
23040 return Buffer.allocUnsafeSlow(size);
23042 if (typeof size !== 'number') {
23043 throw new TypeError('size must be a number');
23045 if (size
>= MAX_LEN) {
23046 throw new RangeError('size is too large');
23048 return new SlowBuffer(size);
23051 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
23052 },{"buffer":
5}],
5:[function(require,module,exports){
23054 * The buffer module from node.js, for the browser.
23056 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
23059 /* eslint-disable no-proto */
23063 var base64 = require('base64-js')
23064 var ieee754 = require('ieee754')
23066 exports.Buffer = Buffer
23067 exports.SlowBuffer = SlowBuffer
23068 exports.INSPECT_MAX_BYTES =
50
23070 var K_MAX_LENGTH =
0x7fffffff
23071 exports.kMaxLength = K_MAX_LENGTH
23074 * If `Buffer.TYPED_ARRAY_SUPPORT`:
23075 * === true Use Uint8Array implementation (fastest)
23076 * === false Print warning and recommend using `buffer` v4.x which has an Object
23077 * implementation (most compatible, even IE6)
23079 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
23080 * Opera
11.6+, iOS
4.2+.
23082 * We report that the browser does not support typed arrays if the are not subclassable
23083 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
23084 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
23085 * for __proto__ and has a buggy typed array implementation.
23087 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
23089 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
23090 typeof console.error === 'function') {
23092 'This browser lacks typed array (Uint8Array) support which is required by ' +
23093 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
23097 function typedArraySupport () {
23098 // Can typed array instances can be augmented?
23100 var arr = new Uint8Array(
1)
23101 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
23102 return arr.foo() ===
42
23108 function createBuffer (length) {
23109 if (length
> K_MAX_LENGTH) {
23110 throw new RangeError('Invalid typed array length')
23112 // Return an augmented `Uint8Array` instance
23113 var buf = new Uint8Array(length)
23114 buf.__proto__ = Buffer.prototype
23119 * The Buffer constructor returns instances of `Uint8Array` that have their
23120 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
23121 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
23122 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
23123 * returns a single octet.
23125 * The `Uint8Array` prototype remains unmodified.
23128 function Buffer (arg, encodingOrOffset, length) {
23130 if (typeof arg === 'number') {
23131 if (typeof encodingOrOffset === 'string') {
23133 'If encoding is specified then the first argument must be a string'
23136 return allocUnsafe(arg)
23138 return from(arg, encodingOrOffset, length)
23141 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
23142 if (typeof Symbol !== 'undefined' && Symbol.species &&
23143 Buffer[Symbol.species] === Buffer) {
23144 Object.defineProperty(Buffer, Symbol.species, {
23146 configurable: true,
23152 Buffer.poolSize =
8192 // not used by this implementation
23154 function from (value, encodingOrOffset, length) {
23155 if (typeof value === 'number') {
23156 throw new TypeError('"value" argument must not be a number')
23159 if (value instanceof ArrayBuffer) {
23160 return fromArrayBuffer(value, encodingOrOffset, length)
23163 if (typeof value === 'string') {
23164 return fromString(value, encodingOrOffset)
23167 return fromObject(value)
23171 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
23172 * if value is a number.
23173 * Buffer.from(str[, encoding])
23174 * Buffer.from(array)
23175 * Buffer.from(buffer)
23176 * Buffer.from(arrayBuffer[, byteOffset[, length]])
23178 Buffer.from = function (value, encodingOrOffset, length) {
23179 return from(value, encodingOrOffset, length)
23182 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
23183 // https://github.com/feross/buffer/pull/
148
23184 Buffer.prototype.__proto__ = Uint8Array.prototype
23185 Buffer.__proto__ = Uint8Array
23187 function assertSize (size) {
23188 if (typeof size !== 'number') {
23189 throw new TypeError('"size" argument must be a number')
23190 } else if (size <
0) {
23191 throw new RangeError('"size" argument must not be negative')
23195 function alloc (size, fill, encoding) {
23198 return createBuffer(size)
23200 if (fill !== undefined) {
23201 // Only pay attention to encoding if it's a string. This
23202 // prevents accidentally sending in a number that would
23203 // be interpretted as a start offset.
23204 return typeof encoding === 'string'
23205 ? createBuffer(size).fill(fill, encoding)
23206 : createBuffer(size).fill(fill)
23208 return createBuffer(size)
23212 * Creates a new filled Buffer instance.
23213 * alloc(size[, fill[, encoding]])
23215 Buffer.alloc = function (size, fill, encoding) {
23216 return alloc(size, fill, encoding)
23219 function allocUnsafe (size) {
23221 return createBuffer(size <
0 ?
0 : checked(size) |
0)
23225 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
23227 Buffer.allocUnsafe = function (size) {
23228 return allocUnsafe(size)
23231 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
23233 Buffer.allocUnsafeSlow = function (size) {
23234 return allocUnsafe(size)
23237 function fromString (string, encoding) {
23238 if (typeof encoding !== 'string' || encoding === '') {
23242 if (!Buffer.isEncoding(encoding)) {
23243 throw new TypeError('"encoding" must be a valid string encoding')
23246 var length = byteLength(string, encoding) |
0
23247 var buf = createBuffer(length)
23249 var actual = buf.write(string, encoding)
23251 if (actual !== length) {
23252 // Writing a hex string, for example, that contains invalid characters will
23253 // cause everything after the first invalid character to be ignored. (e.g.
23254 // 'abxxcd' will be treated as 'ab')
23255 buf = buf.slice(
0, actual)
23261 function fromArrayLike (array) {
23262 var length = array.length <
0 ?
0 : checked(array.length) |
0
23263 var buf = createBuffer(length)
23264 for (var i =
0; i < length; i +=
1) {
23265 buf[i] = array[i] &
255
23270 function fromArrayBuffer (array, byteOffset, length) {
23271 if (byteOffset <
0 || array.byteLength < byteOffset) {
23272 throw new RangeError('\'offset\' is out of bounds')
23275 if (array.byteLength < byteOffset + (length ||
0)) {
23276 throw new RangeError('\'length\' is out of bounds')
23280 if (byteOffset === undefined && length === undefined) {
23281 buf = new Uint8Array(array)
23282 } else if (length === undefined) {
23283 buf = new Uint8Array(array, byteOffset)
23285 buf = new Uint8Array(array, byteOffset, length)
23288 // Return an augmented `Uint8Array` instance
23289 buf.__proto__ = Buffer.prototype
23293 function fromObject (obj) {
23294 if (Buffer.isBuffer(obj)) {
23295 var len = checked(obj.length) |
0
23296 var buf = createBuffer(len)
23298 if (buf.length ===
0) {
23302 obj.copy(buf,
0,
0, len)
23307 if (ArrayBuffer.isView(obj) || 'length' in obj) {
23308 if (typeof obj.length !== 'number' || isnan(obj.length)) {
23309 return createBuffer(
0)
23311 return fromArrayLike(obj)
23314 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
23315 return fromArrayLike(obj.data)
23319 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
23322 function checked (length) {
23323 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
23324 // length is NaN (which is otherwise coerced to zero.)
23325 if (length
>= K_MAX_LENGTH) {
23326 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
23327 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
23332 function SlowBuffer (length) {
23333 if (+length != length) { // eslint-disable-line eqeqeq
23336 return Buffer.alloc(+length)
23339 Buffer.isBuffer = function isBuffer (b) {
23340 return b != null && b._isBuffer === true
23343 Buffer.compare = function compare (a, b) {
23344 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
23345 throw new TypeError('Arguments must be Buffers')
23348 if (a === b) return
0
23353 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
23354 if (a[i] !== b[i]) {
23361 if (x < y) return -
1
23362 if (y < x) return
1
23366 Buffer.isEncoding = function isEncoding (encoding) {
23367 switch (String(encoding).toLowerCase()) {
23385 Buffer.concat = function concat (list, length) {
23386 if (!Array.isArray(list)) {
23387 throw new TypeError('"list" argument must be an Array of Buffers')
23390 if (list.length ===
0) {
23391 return Buffer.alloc(
0)
23395 if (length === undefined) {
23397 for (i =
0; i < list.length; ++i) {
23398 length += list[i].length
23402 var buffer = Buffer.allocUnsafe(length)
23404 for (i =
0; i < list.length; ++i) {
23406 if (!Buffer.isBuffer(buf)) {
23407 throw new TypeError('"list" argument must be an Array of Buffers')
23409 buf.copy(buffer, pos)
23415 function byteLength (string, encoding) {
23416 if (Buffer.isBuffer(string)) {
23417 return string.length
23419 if (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) {
23420 return string.byteLength
23422 if (typeof string !== 'string') {
23423 string = '' + string
23426 var len = string.length
23427 if (len ===
0) return
0
23429 // Use a for loop to avoid recursion
23430 var loweredCase = false
23432 switch (encoding) {
23440 return utf8ToBytes(string).length
23449 return base64ToBytes(string).length
23451 if (loweredCase) return utf8ToBytes(string).length // assume utf8
23452 encoding = ('' + encoding).toLowerCase()
23457 Buffer.byteLength = byteLength
23459 function slowToString (encoding, start, end) {
23460 var loweredCase = false
23462 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
23463 // property of a typed array.
23465 // This behaves neither like String nor Uint8Array in that we set start/end
23466 // to their upper/lower bounds if the value passed is out of range.
23467 // undefined is handled specially as per ECMA-
262 6th Edition,
23468 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
23469 if (start === undefined || start <
0) {
23472 // Return early if start
> this.length. Done here to prevent potential uint32
23473 // coercion fail below.
23474 if (start
> this.length) {
23478 if (end === undefined || end
> this.length) {
23486 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
23490 if (end <= start) {
23494 if (!encoding) encoding = 'utf8'
23497 switch (encoding) {
23499 return hexSlice(this, start, end)
23503 return utf8Slice(this, start, end)
23506 return asciiSlice(this, start, end)
23510 return latin1Slice(this, start, end)
23513 return base64Slice(this, start, end)
23519 return utf16leSlice(this, start, end)
23522 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
23523 encoding = (encoding + '').toLowerCase()
23529 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
23530 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
23531 // reliably in a browserify context because there could be multiple different
23532 // copies of the 'buffer' package in use. This method works even for Buffer
23533 // instances that were created from another copy of the `buffer` package.
23534 // See: https://github.com/feross/buffer/issues/
154
23535 Buffer.prototype._isBuffer = true
23537 function swap (b, n, m) {
23543 Buffer.prototype.swap16 = function swap16 () {
23544 var len = this.length
23545 if (len %
2 !==
0) {
23546 throw new RangeError('Buffer size must be a multiple of
16-bits')
23548 for (var i =
0; i < len; i +=
2) {
23549 swap(this, i, i +
1)
23554 Buffer.prototype.swap32 = function swap32 () {
23555 var len = this.length
23556 if (len %
4 !==
0) {
23557 throw new RangeError('Buffer size must be a multiple of
32-bits')
23559 for (var i =
0; i < len; i +=
4) {
23560 swap(this, i, i +
3)
23561 swap(this, i +
1, i +
2)
23566 Buffer.prototype.swap64 = function swap64 () {
23567 var len = this.length
23568 if (len %
8 !==
0) {
23569 throw new RangeError('Buffer size must be a multiple of
64-bits')
23571 for (var i =
0; i < len; i +=
8) {
23572 swap(this, i, i +
7)
23573 swap(this, i +
1, i +
6)
23574 swap(this, i +
2, i +
5)
23575 swap(this, i +
3, i +
4)
23580 Buffer.prototype.toString = function toString () {
23581 var length = this.length
23582 if (length ===
0) return ''
23583 if (arguments.length ===
0) return utf8Slice(this,
0, length)
23584 return slowToString.apply(this, arguments)
23587 Buffer.prototype.equals = function equals (b) {
23588 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
23589 if (this === b) return true
23590 return Buffer.compare(this, b) ===
0
23593 Buffer.prototype.inspect = function inspect () {
23595 var max = exports.INSPECT_MAX_BYTES
23596 if (this.length
> 0) {
23597 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
23598 if (this.length
> max) str += ' ... '
23600 return '
<Buffer ' + str + '
>'
23603 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
23604 if (!Buffer.isBuffer(target)) {
23605 throw new TypeError('Argument must be a Buffer')
23608 if (start === undefined) {
23611 if (end === undefined) {
23612 end = target ? target.length :
0
23614 if (thisStart === undefined) {
23617 if (thisEnd === undefined) {
23618 thisEnd = this.length
23621 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
23622 throw new RangeError('out of range index')
23625 if (thisStart
>= thisEnd && start
>= end) {
23628 if (thisStart
>= thisEnd) {
23631 if (start
>= end) {
23640 if (this === target) return
0
23642 var x = thisEnd - thisStart
23643 var y = end - start
23644 var len = Math.min(x, y)
23646 var thisCopy = this.slice(thisStart, thisEnd)
23647 var targetCopy = target.slice(start, end)
23649 for (var i =
0; i < len; ++i) {
23650 if (thisCopy[i] !== targetCopy[i]) {
23657 if (x < y) return -
1
23658 if (y < x) return
1
23662 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
23663 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
23666 // - buffer - a Buffer to search
23667 // - val - a string, Buffer, or number
23668 // - byteOffset - an index into `buffer`; will be clamped to an int32
23669 // - encoding - an optional encoding, relevant is val is a string
23670 // - dir - true for indexOf, false for lastIndexOf
23671 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
23672 // Empty buffer means no match
23673 if (buffer.length ===
0) return -
1
23675 // Normalize byteOffset
23676 if (typeof byteOffset === 'string') {
23677 encoding = byteOffset
23679 } else if (byteOffset
> 0x7fffffff) {
23680 byteOffset =
0x7fffffff
23681 } else if (byteOffset < -
0x80000000) {
23682 byteOffset = -
0x80000000
23684 byteOffset = +byteOffset // Coerce to Number.
23685 if (isNaN(byteOffset)) {
23686 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
23687 byteOffset = dir ?
0 : (buffer.length -
1)
23690 // Normalize byteOffset: negative offsets start from the end of the buffer
23691 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
23692 if (byteOffset
>= buffer.length) {
23694 else byteOffset = buffer.length -
1
23695 } else if (byteOffset <
0) {
23696 if (dir) byteOffset =
0
23701 if (typeof val === 'string') {
23702 val = Buffer.from(val, encoding)
23705 // Finally, search either indexOf (if dir is true) or lastIndexOf
23706 if (Buffer.isBuffer(val)) {
23707 // Special case: looking for empty string/buffer always fails
23708 if (val.length ===
0) {
23711 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
23712 } else if (typeof val === 'number') {
23713 val = val &
0xFF // Search for a byte value [
0-
255]
23714 if (typeof Uint8Array.prototype.indexOf === 'function') {
23716 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
23718 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
23721 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
23724 throw new TypeError('val must be string, number or Buffer')
23727 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
23729 var arrLength = arr.length
23730 var valLength = val.length
23732 if (encoding !== undefined) {
23733 encoding = String(encoding).toLowerCase()
23734 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
23735 encoding === 'utf16le' || encoding === 'utf-
16le') {
23736 if (arr.length <
2 || val.length <
2) {
23746 function read (buf, i) {
23747 if (indexSize ===
1) {
23750 return buf.readUInt16BE(i * indexSize)
23756 var foundIndex = -
1
23757 for (i = byteOffset; i < arrLength; i++) {
23758 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
23759 if (foundIndex === -
1) foundIndex = i
23760 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
23762 if (foundIndex !== -
1) i -= i - foundIndex
23767 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
23768 for (i = byteOffset; i
>=
0; i--) {
23770 for (var j =
0; j < valLength; j++) {
23771 if (read(arr, i + j) !== read(val, j)) {
23776 if (found) return i
23783 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
23784 return this.indexOf(val, byteOffset, encoding) !== -
1
23787 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
23788 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
23791 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
23792 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
23795 function hexWrite (buf, string, offset, length) {
23796 offset = Number(offset) ||
0
23797 var remaining = buf.length - offset
23801 length = Number(length)
23802 if (length
> remaining) {
23807 // must be an even number of digits
23808 var strLen = string.length
23809 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
23811 if (length
> strLen /
2) {
23812 length = strLen /
2
23814 for (var i =
0; i < length; ++i) {
23815 var parsed = parseInt(string.substr(i *
2,
2),
16)
23816 if (isNaN(parsed)) return i
23817 buf[offset + i] = parsed
23822 function utf8Write (buf, string, offset, length) {
23823 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
23826 function asciiWrite (buf, string, offset, length) {
23827 return blitBuffer(asciiToBytes(string), buf, offset, length)
23830 function latin1Write (buf, string, offset, length) {
23831 return asciiWrite(buf, string, offset, length)
23834 function base64Write (buf, string, offset, length) {
23835 return blitBuffer(base64ToBytes(string), buf, offset, length)
23838 function ucs2Write (buf, string, offset, length) {
23839 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
23842 Buffer.prototype.write = function write (string, offset, length, encoding) {
23843 // Buffer#write(string)
23844 if (offset === undefined) {
23846 length = this.length
23848 // Buffer#write(string, encoding)
23849 } else if (length === undefined && typeof offset === 'string') {
23851 length = this.length
23853 // Buffer#write(string, offset[, length][, encoding])
23854 } else if (isFinite(offset)) {
23855 offset = offset
>>> 0
23856 if (isFinite(length)) {
23857 length = length
>>> 0
23858 if (encoding === undefined) encoding = 'utf8'
23865 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
23869 var remaining = this.length - offset
23870 if (length === undefined || length
> remaining) length = remaining
23872 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
23873 throw new RangeError('Attempt to write outside buffer bounds')
23876 if (!encoding) encoding = 'utf8'
23878 var loweredCase = false
23880 switch (encoding) {
23882 return hexWrite(this, string, offset, length)
23886 return utf8Write(this, string, offset, length)
23889 return asciiWrite(this, string, offset, length)
23893 return latin1Write(this, string, offset, length)
23896 // Warning: maxLength not taken into account in base64Write
23897 return base64Write(this, string, offset, length)
23903 return ucs2Write(this, string, offset, length)
23906 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
23907 encoding = ('' + encoding).toLowerCase()
23913 Buffer.prototype.toJSON = function toJSON () {
23916 data: Array.prototype.slice.call(this._arr || this,
0)
23920 function base64Slice (buf, start, end) {
23921 if (start ===
0 && end === buf.length) {
23922 return base64.fromByteArray(buf)
23924 return base64.fromByteArray(buf.slice(start, end))
23928 function utf8Slice (buf, start, end) {
23929 end = Math.min(buf.length, end)
23934 var firstByte = buf[i]
23935 var codePoint = null
23936 var bytesPerSequence = (firstByte
> 0xEF) ?
4
23937 : (firstByte
> 0xDF) ?
3
23938 : (firstByte
> 0xBF) ?
2
23941 if (i + bytesPerSequence <= end) {
23942 var secondByte, thirdByte, fourthByte, tempCodePoint
23944 switch (bytesPerSequence) {
23946 if (firstByte <
0x80) {
23947 codePoint = firstByte
23951 secondByte = buf[i +
1]
23952 if ((secondByte &
0xC0) ===
0x80) {
23953 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
23954 if (tempCodePoint
> 0x7F) {
23955 codePoint = tempCodePoint
23960 secondByte = buf[i +
1]
23961 thirdByte = buf[i +
2]
23962 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
23963 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
23964 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
23965 codePoint = tempCodePoint
23970 secondByte = buf[i +
1]
23971 thirdByte = buf[i +
2]
23972 fourthByte = buf[i +
3]
23973 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
23974 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
23975 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
23976 codePoint = tempCodePoint
23982 if (codePoint === null) {
23983 // we did not generate a valid codePoint so insert a
23984 // replacement char (U+FFFD) and advance only
1 byte
23986 bytesPerSequence =
1
23987 } else if (codePoint
> 0xFFFF) {
23988 // encode to utf16 (surrogate pair dance)
23989 codePoint -=
0x10000
23990 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
23991 codePoint =
0xDC00 | codePoint &
0x3FF
23994 res.push(codePoint)
23995 i += bytesPerSequence
23998 return decodeCodePointsArray(res)
24001 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
24002 // the lowest limit is Chrome, with
0x10000 args.
24003 // We go
1 magnitude less, for safety
24004 var MAX_ARGUMENTS_LENGTH =
0x1000
24006 function decodeCodePointsArray (codePoints) {
24007 var len = codePoints.length
24008 if (len <= MAX_ARGUMENTS_LENGTH) {
24009 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
24012 // Decode in chunks to avoid
"call stack size exceeded".
24016 res += String.fromCharCode.apply(
24018 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
24024 function asciiSlice (buf, start, end) {
24026 end = Math.min(buf.length, end)
24028 for (var i = start; i < end; ++i) {
24029 ret += String.fromCharCode(buf[i] &
0x7F)
24034 function latin1Slice (buf, start, end) {
24036 end = Math.min(buf.length, end)
24038 for (var i = start; i < end; ++i) {
24039 ret += String.fromCharCode(buf[i])
24044 function hexSlice (buf, start, end) {
24045 var len = buf.length
24047 if (!start || start <
0) start =
0
24048 if (!end || end <
0 || end
> len) end = len
24051 for (var i = start; i < end; ++i) {
24052 out += toHex(buf[i])
24057 function utf16leSlice (buf, start, end) {
24058 var bytes = buf.slice(start, end)
24060 for (var i =
0; i < bytes.length; i +=
2) {
24061 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
24066 Buffer.prototype.slice = function slice (start, end) {
24067 var len = this.length
24069 end = end === undefined ? len : ~~end
24073 if (start <
0) start =
0
24074 } else if (start
> len) {
24080 if (end <
0) end =
0
24081 } else if (end
> len) {
24085 if (end < start) end = start
24087 var newBuf = this.subarray(start, end)
24088 // Return an augmented `Uint8Array` instance
24089 newBuf.__proto__ = Buffer.prototype
24094 * Need to make sure that buffer isn't trying to write out of bounds.
24096 function checkOffset (offset, ext, length) {
24097 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
24098 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
24101 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
24102 offset = offset
>>> 0
24103 byteLength = byteLength
>>> 0
24104 if (!noAssert) checkOffset(offset, byteLength, this.length)
24106 var val = this[offset]
24109 while (++i < byteLength && (mul *=
0x100)) {
24110 val += this[offset + i] * mul
24116 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
24117 offset = offset
>>> 0
24118 byteLength = byteLength
>>> 0
24120 checkOffset(offset, byteLength, this.length)
24123 var val = this[offset + --byteLength]
24125 while (byteLength
> 0 && (mul *=
0x100)) {
24126 val += this[offset + --byteLength] * mul
24132 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
24133 offset = offset
>>> 0
24134 if (!noAssert) checkOffset(offset,
1, this.length)
24135 return this[offset]
24138 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
24139 offset = offset
>>> 0
24140 if (!noAssert) checkOffset(offset,
2, this.length)
24141 return this[offset] | (this[offset +
1] <<
8)
24144 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
24145 offset = offset
>>> 0
24146 if (!noAssert) checkOffset(offset,
2, this.length)
24147 return (this[offset] <<
8) | this[offset +
1]
24150 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
24151 offset = offset
>>> 0
24152 if (!noAssert) checkOffset(offset,
4, this.length)
24154 return ((this[offset]) |
24155 (this[offset +
1] <<
8) |
24156 (this[offset +
2] <<
16)) +
24157 (this[offset +
3] *
0x1000000)
24160 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
24161 offset = offset
>>> 0
24162 if (!noAssert) checkOffset(offset,
4, this.length)
24164 return (this[offset] *
0x1000000) +
24165 ((this[offset +
1] <<
16) |
24166 (this[offset +
2] <<
8) |
24170 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
24171 offset = offset
>>> 0
24172 byteLength = byteLength
>>> 0
24173 if (!noAssert) checkOffset(offset, byteLength, this.length)
24175 var val = this[offset]
24178 while (++i < byteLength && (mul *=
0x100)) {
24179 val += this[offset + i] * mul
24183 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
24188 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
24189 offset = offset
>>> 0
24190 byteLength = byteLength
>>> 0
24191 if (!noAssert) checkOffset(offset, byteLength, this.length)
24195 var val = this[offset + --i]
24196 while (i
> 0 && (mul *=
0x100)) {
24197 val += this[offset + --i] * mul
24201 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
24206 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
24207 offset = offset
>>> 0
24208 if (!noAssert) checkOffset(offset,
1, this.length)
24209 if (!(this[offset] &
0x80)) return (this[offset])
24210 return ((
0xff - this[offset] +
1) * -
1)
24213 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
24214 offset = offset
>>> 0
24215 if (!noAssert) checkOffset(offset,
2, this.length)
24216 var val = this[offset] | (this[offset +
1] <<
8)
24217 return (val &
0x8000) ? val |
0xFFFF0000 : val
24220 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
24221 offset = offset
>>> 0
24222 if (!noAssert) checkOffset(offset,
2, this.length)
24223 var val = this[offset +
1] | (this[offset] <<
8)
24224 return (val &
0x8000) ? val |
0xFFFF0000 : val
24227 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
24228 offset = offset
>>> 0
24229 if (!noAssert) checkOffset(offset,
4, this.length)
24231 return (this[offset]) |
24232 (this[offset +
1] <<
8) |
24233 (this[offset +
2] <<
16) |
24234 (this[offset +
3] <<
24)
24237 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
24238 offset = offset
>>> 0
24239 if (!noAssert) checkOffset(offset,
4, this.length)
24241 return (this[offset] <<
24) |
24242 (this[offset +
1] <<
16) |
24243 (this[offset +
2] <<
8) |
24247 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
24248 offset = offset
>>> 0
24249 if (!noAssert) checkOffset(offset,
4, this.length)
24250 return ieee754.read(this, offset, true,
23,
4)
24253 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
24254 offset = offset
>>> 0
24255 if (!noAssert) checkOffset(offset,
4, this.length)
24256 return ieee754.read(this, offset, false,
23,
4)
24259 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
24260 offset = offset
>>> 0
24261 if (!noAssert) checkOffset(offset,
8, this.length)
24262 return ieee754.read(this, offset, true,
52,
8)
24265 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
24266 offset = offset
>>> 0
24267 if (!noAssert) checkOffset(offset,
8, this.length)
24268 return ieee754.read(this, offset, false,
52,
8)
24271 function checkInt (buf, value, offset, ext, max, min) {
24272 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
24273 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
24274 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
24277 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
24279 offset = offset
>>> 0
24280 byteLength = byteLength
>>> 0
24282 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
24283 checkInt(this, value, offset, byteLength, maxBytes,
0)
24288 this[offset] = value &
0xFF
24289 while (++i < byteLength && (mul *=
0x100)) {
24290 this[offset + i] = (value / mul) &
0xFF
24293 return offset + byteLength
24296 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
24298 offset = offset
>>> 0
24299 byteLength = byteLength
>>> 0
24301 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
24302 checkInt(this, value, offset, byteLength, maxBytes,
0)
24305 var i = byteLength -
1
24307 this[offset + i] = value &
0xFF
24308 while (--i
>=
0 && (mul *=
0x100)) {
24309 this[offset + i] = (value / mul) &
0xFF
24312 return offset + byteLength
24315 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
24317 offset = offset
>>> 0
24318 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
24319 this[offset] = (value &
0xff)
24323 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
24325 offset = offset
>>> 0
24326 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
24327 this[offset] = (value &
0xff)
24328 this[offset +
1] = (value
>>> 8)
24332 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
24334 offset = offset
>>> 0
24335 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
24336 this[offset] = (value
>>> 8)
24337 this[offset +
1] = (value &
0xff)
24341 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
24343 offset = offset
>>> 0
24344 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
24345 this[offset +
3] = (value
>>> 24)
24346 this[offset +
2] = (value
>>> 16)
24347 this[offset +
1] = (value
>>> 8)
24348 this[offset] = (value &
0xff)
24352 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
24354 offset = offset
>>> 0
24355 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
24356 this[offset] = (value
>>> 24)
24357 this[offset +
1] = (value
>>> 16)
24358 this[offset +
2] = (value
>>> 8)
24359 this[offset +
3] = (value &
0xff)
24363 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
24365 offset = offset
>>> 0
24367 var limit = Math.pow(
2, (
8 * byteLength) -
1)
24369 checkInt(this, value, offset, byteLength, limit -
1, -limit)
24375 this[offset] = value &
0xFF
24376 while (++i < byteLength && (mul *=
0x100)) {
24377 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
24380 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
24383 return offset + byteLength
24386 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
24388 offset = offset
>>> 0
24390 var limit = Math.pow(
2, (
8 * byteLength) -
1)
24392 checkInt(this, value, offset, byteLength, limit -
1, -limit)
24395 var i = byteLength -
1
24398 this[offset + i] = value &
0xFF
24399 while (--i
>=
0 && (mul *=
0x100)) {
24400 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
24403 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
24406 return offset + byteLength
24409 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
24411 offset = offset
>>> 0
24412 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
24413 if (value <
0) value =
0xff + value +
1
24414 this[offset] = (value &
0xff)
24418 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
24420 offset = offset
>>> 0
24421 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
24422 this[offset] = (value &
0xff)
24423 this[offset +
1] = (value
>>> 8)
24427 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
24429 offset = offset
>>> 0
24430 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
24431 this[offset] = (value
>>> 8)
24432 this[offset +
1] = (value &
0xff)
24436 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
24438 offset = offset
>>> 0
24439 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
24440 this[offset] = (value &
0xff)
24441 this[offset +
1] = (value
>>> 8)
24442 this[offset +
2] = (value
>>> 16)
24443 this[offset +
3] = (value
>>> 24)
24447 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
24449 offset = offset
>>> 0
24450 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
24451 if (value <
0) value =
0xffffffff + value +
1
24452 this[offset] = (value
>>> 24)
24453 this[offset +
1] = (value
>>> 16)
24454 this[offset +
2] = (value
>>> 8)
24455 this[offset +
3] = (value &
0xff)
24459 function checkIEEE754 (buf, value, offset, ext, max, min) {
24460 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
24461 if (offset <
0) throw new RangeError('Index out of range')
24464 function writeFloat (buf, value, offset, littleEndian, noAssert) {
24466 offset = offset
>>> 0
24468 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
24470 ieee754.write(buf, value, offset, littleEndian,
23,
4)
24474 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
24475 return writeFloat(this, value, offset, true, noAssert)
24478 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
24479 return writeFloat(this, value, offset, false, noAssert)
24482 function writeDouble (buf, value, offset, littleEndian, noAssert) {
24484 offset = offset
>>> 0
24486 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
24488 ieee754.write(buf, value, offset, littleEndian,
52,
8)
24492 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
24493 return writeDouble(this, value, offset, true, noAssert)
24496 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
24497 return writeDouble(this, value, offset, false, noAssert)
24500 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
24501 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
24502 if (!start) start =
0
24503 if (!end && end !==
0) end = this.length
24504 if (targetStart
>= target.length) targetStart = target.length
24505 if (!targetStart) targetStart =
0
24506 if (end
> 0 && end < start) end = start
24508 // Copy
0 bytes; we're done
24509 if (end === start) return
0
24510 if (target.length ===
0 || this.length ===
0) return
0
24512 // Fatal error conditions
24513 if (targetStart <
0) {
24514 throw new RangeError('targetStart out of bounds')
24516 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
24517 if (end <
0) throw new RangeError('sourceEnd out of bounds')
24520 if (end
> this.length) end = this.length
24521 if (target.length - targetStart < end - start) {
24522 end = target.length - targetStart + start
24525 var len = end - start
24528 if (this === target && start < targetStart && targetStart < end) {
24529 // descending copy from end
24530 for (i = len -
1; i
>=
0; --i) {
24531 target[i + targetStart] = this[i + start]
24533 } else if (len <
1000) {
24534 // ascending copy from start
24535 for (i =
0; i < len; ++i) {
24536 target[i + targetStart] = this[i + start]
24539 Uint8Array.prototype.set.call(
24541 this.subarray(start, start + len),
24550 // buffer.fill(number[, offset[, end]])
24551 // buffer.fill(buffer[, offset[, end]])
24552 // buffer.fill(string[, offset[, end]][, encoding])
24553 Buffer.prototype.fill = function fill (val, start, end, encoding) {
24554 // Handle string cases:
24555 if (typeof val === 'string') {
24556 if (typeof start === 'string') {
24560 } else if (typeof end === 'string') {
24564 if (val.length ===
1) {
24565 var code = val.charCodeAt(
0)
24570 if (encoding !== undefined && typeof encoding !== 'string') {
24571 throw new TypeError('encoding must be a string')
24573 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
24574 throw new TypeError('Unknown encoding: ' + encoding)
24576 } else if (typeof val === 'number') {
24580 // Invalid ranges are not set to a default, so can range check early.
24581 if (start <
0 || this.length < start || this.length < end) {
24582 throw new RangeError('Out of range index')
24585 if (end <= start) {
24589 start = start
>>> 0
24590 end = end === undefined ? this.length : end
>>> 0
24595 if (typeof val === 'number') {
24596 for (i = start; i < end; ++i) {
24600 var bytes = Buffer.isBuffer(val)
24602 : new Buffer(val, encoding)
24603 var len = bytes.length
24604 for (i =
0; i < end - start; ++i) {
24605 this[i + start] = bytes[i % len]
24612 // HELPER FUNCTIONS
24613 // ================
24615 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
24617 function base64clean (str) {
24618 // Node strips out invalid characters like \n and \t from the string, base64-js does not
24619 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
24620 // Node converts strings with length <
2 to ''
24621 if (str.length <
2) return ''
24622 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
24623 while (str.length %
4 !==
0) {
24629 function stringtrim (str) {
24630 if (str.trim) return str.trim()
24631 return str.replace(/^\s+|\s+$/g, '')
24634 function toHex (n) {
24635 if (n <
16) return '
0' + n.toString(
16)
24636 return n.toString(
16)
24639 function utf8ToBytes (string, units) {
24640 units = units || Infinity
24642 var length = string.length
24643 var leadSurrogate = null
24646 for (var i =
0; i < length; ++i) {
24647 codePoint = string.charCodeAt(i)
24649 // is surrogate component
24650 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
24651 // last char was a lead
24652 if (!leadSurrogate) {
24654 if (codePoint
> 0xDBFF) {
24655 // unexpected trail
24656 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24658 } else if (i +
1 === length) {
24660 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24665 leadSurrogate = codePoint
24670 //
2 leads in a row
24671 if (codePoint <
0xDC00) {
24672 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24673 leadSurrogate = codePoint
24677 // valid surrogate pair
24678 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
24679 } else if (leadSurrogate) {
24680 // valid bmp char, but last char was a lead
24681 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
24684 leadSurrogate = null
24687 if (codePoint <
0x80) {
24688 if ((units -=
1) <
0) break
24689 bytes.push(codePoint)
24690 } else if (codePoint <
0x800) {
24691 if ((units -=
2) <
0) break
24693 codePoint
>> 0x6 |
0xC0,
24694 codePoint &
0x3F |
0x80
24696 } else if (codePoint <
0x10000) {
24697 if ((units -=
3) <
0) break
24699 codePoint
>> 0xC |
0xE0,
24700 codePoint
>> 0x6 &
0x3F |
0x80,
24701 codePoint &
0x3F |
0x80
24703 } else if (codePoint <
0x110000) {
24704 if ((units -=
4) <
0) break
24706 codePoint
>> 0x12 |
0xF0,
24707 codePoint
>> 0xC &
0x3F |
0x80,
24708 codePoint
>> 0x6 &
0x3F |
0x80,
24709 codePoint &
0x3F |
0x80
24712 throw new Error('Invalid code point')
24719 function asciiToBytes (str) {
24721 for (var i =
0; i < str.length; ++i) {
24722 // Node's code seems to be doing this and not &
0x7F..
24723 byteArray.push(str.charCodeAt(i) &
0xFF)
24728 function utf16leToBytes (str, units) {
24731 for (var i =
0; i < str.length; ++i) {
24732 if ((units -=
2) <
0) break
24734 c = str.charCodeAt(i)
24744 function base64ToBytes (str) {
24745 return base64.toByteArray(base64clean(str))
24748 function blitBuffer (src, dst, offset, length) {
24749 for (var i =
0; i < length; ++i) {
24750 if ((i + offset
>= dst.length) || (i
>= src.length)) break
24751 dst[i + offset] = src[i]
24756 function isnan (val) {
24757 return val !== val // eslint-disable-line no-self-compare
24760 },{"base64-js":
2,"ieee754":
8}],
6:[function(require,module,exports){
24761 (function (Buffer){
24762 // Copyright Joyent, Inc. and other Node contributors.
24764 // Permission is hereby granted, free of charge, to any person obtaining a
24765 // copy of this software and associated documentation files (the
24766 // "Software"), to deal in the Software without restriction, including
24767 // without limitation the rights to use, copy, modify, merge, publish,
24768 // distribute, sublicense, and/or sell copies of the Software, and to permit
24769 // persons to whom the Software is furnished to do so, subject to the
24770 // following conditions:
24772 // The above copyright notice and this permission notice shall be included
24773 // in all copies or substantial portions of the Software.
24775 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24776 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24777 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
24778 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
24779 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24780 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
24781 // USE OR OTHER DEALINGS IN THE SOFTWARE.
24783 // NOTE: These type checking functions intentionally don't use `instanceof`
24784 // because it is fragile and can be easily faked with `Object.create()`.
24786 function isArray(arg) {
24787 if (Array.isArray) {
24788 return Array.isArray(arg);
24790 return objectToString(arg) === '[object Array]';
24792 exports.isArray = isArray;
24794 function isBoolean(arg) {
24795 return typeof arg === 'boolean';
24797 exports.isBoolean = isBoolean;
24799 function isNull(arg) {
24800 return arg === null;
24802 exports.isNull = isNull;
24804 function isNullOrUndefined(arg) {
24805 return arg == null;
24807 exports.isNullOrUndefined = isNullOrUndefined;
24809 function isNumber(arg) {
24810 return typeof arg === 'number';
24812 exports.isNumber = isNumber;
24814 function isString(arg) {
24815 return typeof arg === 'string';
24817 exports.isString = isString;
24819 function isSymbol(arg) {
24820 return typeof arg === 'symbol';
24822 exports.isSymbol = isSymbol;
24824 function isUndefined(arg) {
24825 return arg === void
0;
24827 exports.isUndefined = isUndefined;
24829 function isRegExp(re) {
24830 return objectToString(re) === '[object RegExp]';
24832 exports.isRegExp = isRegExp;
24834 function isObject(arg) {
24835 return typeof arg === 'object' && arg !== null;
24837 exports.isObject = isObject;
24839 function isDate(d) {
24840 return objectToString(d) === '[object Date]';
24842 exports.isDate = isDate;
24844 function isError(e) {
24845 return (objectToString(e) === '[object Error]' || e instanceof Error);
24847 exports.isError = isError;
24849 function isFunction(arg) {
24850 return typeof arg === 'function';
24852 exports.isFunction = isFunction;
24854 function isPrimitive(arg) {
24855 return arg === null ||
24856 typeof arg === 'boolean' ||
24857 typeof arg === 'number' ||
24858 typeof arg === 'string' ||
24859 typeof arg === 'symbol' || // ES6 symbol
24860 typeof arg === 'undefined';
24862 exports.isPrimitive = isPrimitive;
24864 exports.isBuffer = Buffer.isBuffer;
24866 function objectToString(o) {
24867 return Object.prototype.toString.call(o);
24870 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
24871 },{"../../is-buffer/index.js":
10}],
7:[function(require,module,exports){
24872 // Copyright Joyent, Inc. and other Node contributors.
24874 // Permission is hereby granted, free of charge, to any person obtaining a
24875 // copy of this software and associated documentation files (the
24876 // "Software"), to deal in the Software without restriction, including
24877 // without limitation the rights to use, copy, modify, merge, publish,
24878 // distribute, sublicense, and/or sell copies of the Software, and to permit
24879 // persons to whom the Software is furnished to do so, subject to the
24880 // following conditions:
24882 // The above copyright notice and this permission notice shall be included
24883 // in all copies or substantial portions of the Software.
24885 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24886 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24887 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
24888 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
24889 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24890 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
24891 // USE OR OTHER DEALINGS IN THE SOFTWARE.
24893 function EventEmitter() {
24894 this._events = this._events || {};
24895 this._maxListeners = this._maxListeners || undefined;
24897 module.exports = EventEmitter;
24899 // Backwards-compat with node
0.10.x
24900 EventEmitter.EventEmitter = EventEmitter;
24902 EventEmitter.prototype._events = undefined;
24903 EventEmitter.prototype._maxListeners = undefined;
24905 // By default EventEmitters will print a warning if more than
10 listeners are
24906 // added to it. This is a useful default which helps finding memory leaks.
24907 EventEmitter.defaultMaxListeners =
10;
24909 // Obviously not all Emitters should be limited to
10. This function allows
24910 // that to be increased. Set to zero for unlimited.
24911 EventEmitter.prototype.setMaxListeners = function(n) {
24912 if (!isNumber(n) || n <
0 || isNaN(n))
24913 throw TypeError('n must be a positive number');
24914 this._maxListeners = n;
24918 EventEmitter.prototype.emit = function(type) {
24919 var er, handler, len, args, i, listeners;
24924 // If there is no 'error' event listener then throw.
24925 if (type === 'error') {
24926 if (!this._events.error ||
24927 (isObject(this._events.error) && !this._events.error.length)) {
24929 if (er instanceof Error) {
24930 throw er; // Unhandled 'error' event
24932 // At least give some kind of context to the user
24933 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
24940 handler = this._events[type];
24942 if (isUndefined(handler))
24945 if (isFunction(handler)) {
24946 switch (arguments.length) {
24949 handler.call(this);
24952 handler.call(this, arguments[
1]);
24955 handler.call(this, arguments[
1], arguments[
2]);
24959 args = Array.prototype.slice.call(arguments,
1);
24960 handler.apply(this, args);
24962 } else if (isObject(handler)) {
24963 args = Array.prototype.slice.call(arguments,
1);
24964 listeners = handler.slice();
24965 len = listeners.length;
24966 for (i =
0; i < len; i++)
24967 listeners[i].apply(this, args);
24973 EventEmitter.prototype.addListener = function(type, listener) {
24976 if (!isFunction(listener))
24977 throw TypeError('listener must be a function');
24982 // To avoid recursion in the case that type === "newListener"! Before
24983 // adding it to the listeners, first emit "newListener".
24984 if (this._events.newListener)
24985 this.emit('newListener', type,
24986 isFunction(listener.listener) ?
24987 listener.listener : listener);
24989 if (!this._events[type])
24990 // Optimize the case of one listener. Don't need the extra array object.
24991 this._events[type] = listener;
24992 else if (isObject(this._events[type]))
24993 // If we've already got an array, just append.
24994 this._events[type].push(listener);
24996 // Adding the second element, need to change to array.
24997 this._events[type] = [this._events[type], listener];
24999 // Check for listener leak
25000 if (isObject(this._events[type]) && !this._events[type].warned) {
25001 if (!isUndefined(this._maxListeners)) {
25002 m = this._maxListeners;
25004 m = EventEmitter.defaultMaxListeners;
25007 if (m && m
> 0 && this._events[type].length
> m) {
25008 this._events[type].warned = true;
25009 console.error('(node) warning: possible EventEmitter memory ' +
25010 'leak detected. %d listeners added. ' +
25011 'Use emitter.setMaxListeners() to increase limit.',
25012 this._events[type].length);
25013 if (typeof console.trace === 'function') {
25014 // not supported in IE
10
25023 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
25025 EventEmitter.prototype.once = function(type, listener) {
25026 if (!isFunction(listener))
25027 throw TypeError('listener must be a function');
25032 this.removeListener(type, g);
25036 listener.apply(this, arguments);
25040 g.listener = listener;
25046 // emits a 'removeListener' event iff the listener was removed
25047 EventEmitter.prototype.removeListener = function(type, listener) {
25048 var list, position, length, i;
25050 if (!isFunction(listener))
25051 throw TypeError('listener must be a function');
25053 if (!this._events || !this._events[type])
25056 list = this._events[type];
25057 length = list.length;
25060 if (list === listener ||
25061 (isFunction(list.listener) && list.listener === listener)) {
25062 delete this._events[type];
25063 if (this._events.removeListener)
25064 this.emit('removeListener', type, listener);
25066 } else if (isObject(list)) {
25067 for (i = length; i--
> 0;) {
25068 if (list[i] === listener ||
25069 (list[i].listener && list[i].listener === listener)) {
25078 if (list.length ===
1) {
25080 delete this._events[type];
25082 list.splice(position,
1);
25085 if (this._events.removeListener)
25086 this.emit('removeListener', type, listener);
25092 EventEmitter.prototype.removeAllListeners = function(type) {
25093 var key, listeners;
25098 // not listening for removeListener, no need to emit
25099 if (!this._events.removeListener) {
25100 if (arguments.length ===
0)
25102 else if (this._events[type])
25103 delete this._events[type];
25107 // emit removeListener for all listeners on all events
25108 if (arguments.length ===
0) {
25109 for (key in this._events) {
25110 if (key === 'removeListener') continue;
25111 this.removeAllListeners(key);
25113 this.removeAllListeners('removeListener');
25118 listeners = this._events[type];
25120 if (isFunction(listeners)) {
25121 this.removeListener(type, listeners);
25122 } else if (listeners) {
25124 while (listeners.length)
25125 this.removeListener(type, listeners[listeners.length -
1]);
25127 delete this._events[type];
25132 EventEmitter.prototype.listeners = function(type) {
25134 if (!this._events || !this._events[type])
25136 else if (isFunction(this._events[type]))
25137 ret = [this._events[type]];
25139 ret = this._events[type].slice();
25143 EventEmitter.prototype.listenerCount = function(type) {
25144 if (this._events) {
25145 var evlistener = this._events[type];
25147 if (isFunction(evlistener))
25149 else if (evlistener)
25150 return evlistener.length;
25155 EventEmitter.listenerCount = function(emitter, type) {
25156 return emitter.listenerCount(type);
25159 function isFunction(arg) {
25160 return typeof arg === 'function';
25163 function isNumber(arg) {
25164 return typeof arg === 'number';
25167 function isObject(arg) {
25168 return typeof arg === 'object' && arg !== null;
25171 function isUndefined(arg) {
25172 return arg === void
0;
25175 },{}],
8:[function(require,module,exports){
25176 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
25178 var eLen = nBytes *
8 - mLen -
1
25179 var eMax = (
1 << eLen) -
1
25180 var eBias = eMax
>> 1
25182 var i = isLE ? (nBytes -
1) :
0
25183 var d = isLE ? -
1 :
1
25184 var s = buffer[offset + i]
25188 e = s & ((
1 << (-nBits)) -
1)
25191 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
25193 m = e & ((
1 << (-nBits)) -
1)
25196 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
25200 } else if (e === eMax) {
25201 return m ? NaN : ((s ? -
1 :
1) * Infinity)
25203 m = m + Math.pow(
2, mLen)
25206 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
25209 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
25211 var eLen = nBytes *
8 - mLen -
1
25212 var eMax = (
1 << eLen) -
1
25213 var eBias = eMax
>> 1
25214 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
25215 var i = isLE ?
0 : (nBytes -
1)
25216 var d = isLE ?
1 : -
1
25217 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
25219 value = Math.abs(value)
25221 if (isNaN(value) || value === Infinity) {
25222 m = isNaN(value) ?
1 :
0
25225 e = Math.floor(Math.log(value) / Math.LN2)
25226 if (value * (c = Math.pow(
2, -e)) <
1) {
25230 if (e + eBias
>=
1) {
25233 value += rt * Math.pow(
2,
1 - eBias)
25235 if (value * c
>=
2) {
25240 if (e + eBias
>= eMax) {
25243 } else if (e + eBias
>=
1) {
25244 m = (value * c -
1) * Math.pow(
2, mLen)
25247 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
25252 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
25254 e = (e << mLen) | m
25256 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
25258 buffer[offset + i - d] |= s *
128
25261 },{}],
9:[function(require,module,exports){
25262 if (typeof Object.create === 'function') {
25263 // implementation from standard node.js 'util' module
25264 module.exports = function inherits(ctor, superCtor) {
25265 ctor.super_ = superCtor
25266 ctor.prototype = Object.create(superCtor.prototype, {
25276 // old school shim for old browsers
25277 module.exports = function inherits(ctor, superCtor) {
25278 ctor.super_ = superCtor
25279 var TempCtor = function () {}
25280 TempCtor.prototype = superCtor.prototype
25281 ctor.prototype = new TempCtor()
25282 ctor.prototype.constructor = ctor
25286 },{}],
10:[function(require,module,exports){
25288 * Determine if an object is a Buffer
25290 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
25294 // The _isBuffer check is for Safari
5-
7 support, because it's missing
25295 // Object.prototype.constructor. Remove this eventually
25296 module.exports = function (obj) {
25297 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
25300 function isBuffer (obj) {
25301 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
25304 // For Node v0.10 support. Remove this eventually.
25305 function isSlowBuffer (obj) {
25306 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
25309 },{}],
11:[function(require,module,exports){
25310 var toString = {}.toString;
25312 module.exports = Array.isArray || function (arr) {
25313 return toString.call(arr) == '[object Array]';
25316 },{}],
12:[function(require,module,exports){
25317 (function (process){
25320 if (!process.version ||
25321 process.version.indexOf('v0.') ===
0 ||
25322 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
25323 module.exports = nextTick;
25325 module.exports = process.nextTick;
25328 function nextTick(fn, arg1, arg2, arg3) {
25329 if (typeof fn !== 'function') {
25330 throw new TypeError('"callback" argument must be a function');
25332 var len = arguments.length;
25337 return process.nextTick(fn);
25339 return process.nextTick(function afterTickOne() {
25340 fn.call(null, arg1);
25343 return process.nextTick(function afterTickTwo() {
25344 fn.call(null, arg1, arg2);
25347 return process.nextTick(function afterTickThree() {
25348 fn.call(null, arg1, arg2, arg3);
25351 args = new Array(len -
1);
25353 while (i < args.length) {
25354 args[i++] = arguments[i];
25356 return process.nextTick(function afterTick() {
25357 fn.apply(null, args);
25362 }).call(this,require('_process'))
25363 },{"_process":
13}],
13:[function(require,module,exports){
25364 // shim for using process in browser
25365 var process = module.exports = {};
25367 // cached from whatever global is present so that test runners that stub it
25368 // don't break things. But we need to wrap it in a try catch in case it is
25369 // wrapped in strict mode code which doesn't define any globals. It's inside a
25370 // function because try/catches deoptimize in certain engines.
25372 var cachedSetTimeout;
25373 var cachedClearTimeout;
25375 function defaultSetTimout() {
25376 throw new Error('setTimeout has not been defined');
25378 function defaultClearTimeout () {
25379 throw new Error('clearTimeout has not been defined');
25383 if (typeof setTimeout === 'function') {
25384 cachedSetTimeout = setTimeout;
25386 cachedSetTimeout = defaultSetTimout;
25389 cachedSetTimeout = defaultSetTimout;
25392 if (typeof clearTimeout === 'function') {
25393 cachedClearTimeout = clearTimeout;
25395 cachedClearTimeout = defaultClearTimeout;
25398 cachedClearTimeout = defaultClearTimeout;
25401 function runTimeout(fun) {
25402 if (cachedSetTimeout === setTimeout) {
25403 //normal enviroments in sane situations
25404 return setTimeout(fun,
0);
25406 // if setTimeout wasn't available but was latter defined
25407 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
25408 cachedSetTimeout = setTimeout;
25409 return setTimeout(fun,
0);
25412 // when when somebody has screwed with setTimeout but no I.E. maddness
25413 return cachedSetTimeout(fun,
0);
25416 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
25417 return cachedSetTimeout.call(null, fun,
0);
25419 // 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
25420 return cachedSetTimeout.call(this, fun,
0);
25426 function runClearTimeout(marker) {
25427 if (cachedClearTimeout === clearTimeout) {
25428 //normal enviroments in sane situations
25429 return clearTimeout(marker);
25431 // if clearTimeout wasn't available but was latter defined
25432 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
25433 cachedClearTimeout = clearTimeout;
25434 return clearTimeout(marker);
25437 // when when somebody has screwed with setTimeout but no I.E. maddness
25438 return cachedClearTimeout(marker);
25441 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
25442 return cachedClearTimeout.call(null, marker);
25444 // 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.
25445 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
25446 return cachedClearTimeout.call(this, marker);
25454 var draining = false;
25456 var queueIndex = -
1;
25458 function cleanUpNextTick() {
25459 if (!draining || !currentQueue) {
25463 if (currentQueue.length) {
25464 queue = currentQueue.concat(queue);
25468 if (queue.length) {
25473 function drainQueue() {
25477 var timeout = runTimeout(cleanUpNextTick);
25480 var len = queue.length;
25482 currentQueue = queue;
25484 while (++queueIndex < len) {
25485 if (currentQueue) {
25486 currentQueue[queueIndex].run();
25490 len = queue.length;
25492 currentQueue = null;
25494 runClearTimeout(timeout);
25497 process.nextTick = function (fun) {
25498 var args = new Array(arguments.length -
1);
25499 if (arguments.length
> 1) {
25500 for (var i =
1; i < arguments.length; i++) {
25501 args[i -
1] = arguments[i];
25504 queue.push(new Item(fun, args));
25505 if (queue.length ===
1 && !draining) {
25506 runTimeout(drainQueue);
25510 // v8 likes predictible objects
25511 function Item(fun, array) {
25513 this.array = array;
25515 Item.prototype.run = function () {
25516 this.fun.apply(null, this.array);
25518 process.title = 'browser';
25519 process.browser = true;
25522 process.version = ''; // empty string to avoid regexp issues
25523 process.versions = {};
25528 process.addListener = noop;
25529 process.once = noop;
25530 process.off = noop;
25531 process.removeListener = noop;
25532 process.removeAllListeners = noop;
25533 process.emit = noop;
25535 process.binding = function (name) {
25536 throw new Error('process.binding is not supported');
25539 process.cwd = function () { return '/' };
25540 process.chdir = function (dir) {
25541 throw new Error('process.chdir is not supported');
25543 process.umask = function() { return
0; };
25545 },{}],
14:[function(require,module,exports){
25546 module.exports = require(
"./lib/_stream_duplex.js")
25548 },{
"./lib/_stream_duplex.js":
15}],
15:[function(require,module,exports){
25549 // a duplex stream is just a stream that is both readable and writable.
25550 // Since JS doesn't have multiple prototypal inheritance, this class
25551 // prototypally inherits from Readable, and then parasitically from
25558 var objectKeys = Object.keys || function (obj) {
25560 for (var key in obj) {
25566 module.exports = Duplex;
25569 var processNextTick = require('process-nextick-args');
25573 var util = require('core-util-is');
25574 util.inherits = require('inherits');
25577 var Readable = require('./_stream_readable');
25578 var Writable = require('./_stream_writable');
25580 util.inherits(Duplex, Readable);
25582 var keys = objectKeys(Writable.prototype);
25583 for (var v =
0; v < keys.length; v++) {
25584 var method = keys[v];
25585 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
25588 function Duplex(options) {
25589 if (!(this instanceof Duplex)) return new Duplex(options);
25591 Readable.call(this, options);
25592 Writable.call(this, options);
25594 if (options && options.readable === false) this.readable = false;
25596 if (options && options.writable === false) this.writable = false;
25598 this.allowHalfOpen = true;
25599 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
25601 this.once('end', onend);
25604 // the no-half-open enforcer
25606 // if we allow half-open state, or if the writable side ended,
25608 if (this.allowHalfOpen || this._writableState.ended) return;
25610 // no more data can be written.
25611 // But allow more writes to happen in this tick.
25612 processNextTick(onEndNT, this);
25615 function onEndNT(self) {
25619 function forEach(xs, f) {
25620 for (var i =
0, l = xs.length; i < l; i++) {
25624 },{"./_stream_readable":
17,"./_stream_writable":
19,"core-util-is":
6,"inherits":
9,"process-nextick-args":
12}],
16:[function(require,module,exports){
25625 // a passthrough stream.
25626 // basically just the most minimal sort of Transform stream.
25627 // Every written chunk gets output as-is.
25631 module.exports = PassThrough;
25633 var Transform = require('./_stream_transform');
25636 var util = require('core-util-is');
25637 util.inherits = require('inherits');
25640 util.inherits(PassThrough, Transform);
25642 function PassThrough(options) {
25643 if (!(this instanceof PassThrough)) return new PassThrough(options);
25645 Transform.call(this, options);
25648 PassThrough.prototype._transform = function (chunk, encoding, cb) {
25651 },{"./_stream_transform":
18,"core-util-is":
6,"inherits":
9}],
17:[function(require,module,exports){
25652 (function (process){
25655 module.exports = Readable;
25658 var processNextTick = require('process-nextick-args');
25662 var isArray = require('isarray');
25669 Readable.ReadableState = ReadableState;
25672 var EE = require('events').EventEmitter;
25674 var EElistenerCount = function (emitter, type) {
25675 return emitter.listeners(type).length;
25683 Stream = require('st' + 'ream');
25684 } catch (_) {} finally {
25685 if (!Stream) Stream = require('events').EventEmitter;
25690 var Buffer = require('buffer').Buffer;
25692 var bufferShim = require('buffer-shims');
25696 var util = require('core-util-is');
25697 util.inherits = require('inherits');
25701 var debugUtil = require('util');
25702 var debug = void
0;
25703 if (debugUtil && debugUtil.debuglog) {
25704 debug = debugUtil.debuglog('stream');
25706 debug = function () {};
25710 var BufferList = require('./internal/streams/BufferList');
25713 util.inherits(Readable, Stream);
25715 function prependListener(emitter, event, fn) {
25716 // Sadly this is not cacheable as some libraries bundle their own
25717 // event emitter implementation with them.
25718 if (typeof emitter.prependListener === 'function') {
25719 return emitter.prependListener(event, fn);
25721 // This is a hack to make sure that our error handler is attached before any
25722 // userland ones. NEVER DO THIS. This is here only because this code needs
25723 // to continue to work with older versions of Node.js that do not include
25724 // the prependListener() method. The goal is to eventually remove this hack.
25725 if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
25729 function ReadableState(options, stream) {
25730 Duplex = Duplex || require('./_stream_duplex');
25732 options = options || {};
25734 // object stream flag. Used to make read(n) ignore n and to
25735 // make all the buffer merging and length checks go away
25736 this.objectMode = !!options.objectMode;
25738 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
25740 // the point at which it stops calling _read() to fill the buffer
25741 // Note:
0 is a valid value, means "don't call _read preemptively ever"
25742 var hwm = options.highWaterMark;
25743 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
25744 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
25747 this.highWaterMark = ~ ~this.highWaterMark;
25749 // A linked list is used to store data chunks instead of an array because the
25750 // linked list can remove elements from the beginning faster than
25752 this.buffer = new BufferList();
25755 this.pipesCount =
0;
25756 this.flowing = null;
25757 this.ended = false;
25758 this.endEmitted = false;
25759 this.reading = false;
25761 // a flag to be able to tell if the onwrite cb is called immediately,
25762 // or on a later tick. We set this to true at first, because any
25763 // actions that shouldn't happen until "later" should generally also
25764 // not happen before the first write call.
25767 // whenever we return null, then we set a flag to say
25768 // that we're awaiting a 'readable' event emission.
25769 this.needReadable = false;
25770 this.emittedReadable = false;
25771 this.readableListening = false;
25772 this.resumeScheduled = false;
25774 // Crypto is kind of old and crusty. Historically, its default string
25775 // encoding is 'binary' so we have to make this configurable.
25776 // Everything else in the universe uses 'utf8', though.
25777 this.defaultEncoding = options.defaultEncoding || 'utf8';
25779 // when piping, we only care about 'readable' events that happen
25780 // after read()ing all the bytes and not getting any pushback.
25781 this.ranOut = false;
25783 // the number of writers that are awaiting a drain event in .pipe()s
25784 this.awaitDrain =
0;
25786 // if true, a maybeReadMore has been scheduled
25787 this.readingMore = false;
25789 this.decoder = null;
25790 this.encoding = null;
25791 if (options.encoding) {
25792 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
25793 this.decoder = new StringDecoder(options.encoding);
25794 this.encoding = options.encoding;
25798 function Readable(options) {
25799 Duplex = Duplex || require('./_stream_duplex');
25801 if (!(this instanceof Readable)) return new Readable(options);
25803 this._readableState = new ReadableState(options, this);
25806 this.readable = true;
25808 if (options && typeof options.read === 'function') this._read = options.read;
25813 // Manually shove something into the read() buffer.
25814 // This returns true if the highWaterMark has not been hit yet,
25815 // similar to how Writable.write() returns true if you should
25816 // write() some more.
25817 Readable.prototype.push = function (chunk, encoding) {
25818 var state = this._readableState;
25820 if (!state.objectMode && typeof chunk === 'string') {
25821 encoding = encoding || state.defaultEncoding;
25822 if (encoding !== state.encoding) {
25823 chunk = bufferShim.from(chunk, encoding);
25828 return readableAddChunk(this, state, chunk, encoding, false);
25831 // Unshift should *always* be something directly out of read()
25832 Readable.prototype.unshift = function (chunk) {
25833 var state = this._readableState;
25834 return readableAddChunk(this, state, chunk, '', true);
25837 Readable.prototype.isPaused = function () {
25838 return this._readableState.flowing === false;
25841 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
25842 var er = chunkInvalid(state, chunk);
25844 stream.emit('error', er);
25845 } else if (chunk === null) {
25846 state.reading = false;
25847 onEofChunk(stream, state);
25848 } else if (state.objectMode || chunk && chunk.length
> 0) {
25849 if (state.ended && !addToFront) {
25850 var e = new Error('stream.push() after EOF');
25851 stream.emit('error', e);
25852 } else if (state.endEmitted && addToFront) {
25853 var _e = new Error('stream.unshift() after end event');
25854 stream.emit('error', _e);
25857 if (state.decoder && !addToFront && !encoding) {
25858 chunk = state.decoder.write(chunk);
25859 skipAdd = !state.objectMode && chunk.length ===
0;
25862 if (!addToFront) state.reading = false;
25864 // Don't add to the buffer if we've decoded to an empty string chunk and
25865 // we're not in object mode
25867 // if we want the data now, just emit it.
25868 if (state.flowing && state.length ===
0 && !state.sync) {
25869 stream.emit('data', chunk);
25872 // update the buffer info.
25873 state.length += state.objectMode ?
1 : chunk.length;
25874 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
25876 if (state.needReadable) emitReadable(stream);
25880 maybeReadMore(stream, state);
25882 } else if (!addToFront) {
25883 state.reading = false;
25886 return needMoreData(state);
25889 // if it's past the high water mark, we can push in some more.
25890 // Also, if we have no data yet, we can stand some
25891 // more bytes. This is to work around cases where hwm=
0,
25892 // such as the repl. Also, if the push() triggered a
25893 // readable event, and the user called read(largeNumber) such that
25894 // needReadable was set, then we ought to push more, so that another
25895 // 'readable' event will be triggered.
25896 function needMoreData(state) {
25897 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
25900 // backwards compatibility.
25901 Readable.prototype.setEncoding = function (enc) {
25902 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
25903 this._readableState.decoder = new StringDecoder(enc);
25904 this._readableState.encoding = enc;
25908 // Don't raise the hwm
> 8MB
25909 var MAX_HWM =
0x800000;
25910 function computeNewHighWaterMark(n) {
25911 if (n
>= MAX_HWM) {
25914 // Get the next highest power of
2 to prevent increasing hwm excessively in
25927 // This function is designed to be inlinable, so please take care when making
25928 // changes to the function body.
25929 function howMuchToRead(n, state) {
25930 if (n <=
0 || state.length ===
0 && state.ended) return
0;
25931 if (state.objectMode) return
1;
25933 // Only flow one buffer at a time
25934 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
25936 // If we're asking for more than the current hwm, then raise the hwm.
25937 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
25938 if (n <= state.length) return n;
25939 // Don't have enough
25940 if (!state.ended) {
25941 state.needReadable = true;
25944 return state.length;
25947 // you can override either this method, or the async _read(n) below.
25948 Readable.prototype.read = function (n) {
25950 n = parseInt(n,
10);
25951 var state = this._readableState;
25954 if (n !==
0) state.emittedReadable = false;
25956 // if we're doing read(
0) to trigger a readable event, but we
25957 // already have a bunch of data in the buffer, then just trigger
25958 // the 'readable' event and move on.
25959 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
25960 debug('read: emitReadable', state.length, state.ended);
25961 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
25965 n = howMuchToRead(n, state);
25967 // if we've ended, and we're now clear, then finish it up.
25968 if (n ===
0 && state.ended) {
25969 if (state.length ===
0) endReadable(this);
25973 // All the actual chunk generation logic needs to be
25974 // *below* the call to _read. The reason is that in certain
25975 // synthetic stream cases, such as passthrough streams, _read
25976 // may be a completely synchronous operation which may change
25977 // the state of the read buffer, providing enough data when
25978 // before there was *not* enough.
25980 // So, the steps are:
25981 //
1. Figure out what the state of things will be after we do
25982 // a read from the buffer.
25984 //
2. If that resulting state will trigger a _read, then call _read.
25985 // Note that this may be asynchronous, or synchronous. Yes, it is
25986 // deeply ugly to write APIs this way, but that still doesn't mean
25987 // that the Readable class should behave improperly, as streams are
25988 // designed to be sync/async agnostic.
25989 // Take note if the _read call is sync or async (ie, if the read call
25990 // has returned yet), so that we know whether or not it's safe to emit
25993 //
3. Actually pull the requested chunks out of the buffer and return.
25995 // if we need a readable event, then we need to do some reading.
25996 var doRead = state.needReadable;
25997 debug('need readable', doRead);
25999 // if we currently have less than the highWaterMark, then also read some
26000 if (state.length ===
0 || state.length - n < state.highWaterMark) {
26002 debug('length less than watermark', doRead);
26005 // however, if we've ended, then there's no point, and if we're already
26006 // reading, then it's unnecessary.
26007 if (state.ended || state.reading) {
26009 debug('reading or ended', doRead);
26010 } else if (doRead) {
26012 state.reading = true;
26014 // if the length is currently zero, then we *need* a readable event.
26015 if (state.length ===
0) state.needReadable = true;
26016 // call internal read method
26017 this._read(state.highWaterMark);
26018 state.sync = false;
26019 // If _read pushed data synchronously, then `reading` will be false,
26020 // and we need to re-evaluate how much data we can return to the user.
26021 if (!state.reading) n = howMuchToRead(nOrig, state);
26025 if (n
> 0) ret = fromList(n, state);else ret = null;
26027 if (ret === null) {
26028 state.needReadable = true;
26034 if (state.length ===
0) {
26035 // If we have nothing in the buffer, then we want to know
26036 // as soon as we *do* get something into the buffer.
26037 if (!state.ended) state.needReadable = true;
26039 // If we tried to read() past the EOF, then emit end on the next tick.
26040 if (nOrig !== n && state.ended) endReadable(this);
26043 if (ret !== null) this.emit('data', ret);
26048 function chunkInvalid(state, chunk) {
26050 if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
26051 er = new TypeError('Invalid non-string/buffer chunk');
26056 function onEofChunk(stream, state) {
26057 if (state.ended) return;
26058 if (state.decoder) {
26059 var chunk = state.decoder.end();
26060 if (chunk && chunk.length) {
26061 state.buffer.push(chunk);
26062 state.length += state.objectMode ?
1 : chunk.length;
26065 state.ended = true;
26067 // emit 'readable' now to make sure it gets picked up.
26068 emitReadable(stream);
26071 // Don't emit readable right away in sync mode, because this can trigger
26072 // another read() call =
> stack overflow. This way, it might trigger
26073 // a nextTick recursion warning, but that's not so bad.
26074 function emitReadable(stream) {
26075 var state = stream._readableState;
26076 state.needReadable = false;
26077 if (!state.emittedReadable) {
26078 debug('emitReadable', state.flowing);
26079 state.emittedReadable = true;
26080 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
26084 function emitReadable_(stream) {
26085 debug('emit readable');
26086 stream.emit('readable');
26090 // at this point, the user has presumably seen the 'readable' event,
26091 // and called read() to consume some data. that may have triggered
26092 // in turn another _read(n) call, in which case reading = true if
26093 // it's in progress.
26094 // However, if we're not ended, or reading, and the length < hwm,
26095 // then go ahead and try to read some more preemptively.
26096 function maybeReadMore(stream, state) {
26097 if (!state.readingMore) {
26098 state.readingMore = true;
26099 processNextTick(maybeReadMore_, stream, state);
26103 function maybeReadMore_(stream, state) {
26104 var len = state.length;
26105 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
26106 debug('maybeReadMore read
0');
26108 if (len === state.length)
26109 // didn't get any data, stop spinning.
26110 break;else len = state.length;
26112 state.readingMore = false;
26115 // abstract method. to be overridden in specific implementation classes.
26116 // call cb(er, data) where data is <= n in length.
26117 // for virtual (non-string, non-buffer) streams, "length" is somewhat
26118 // arbitrary, and perhaps not very meaningful.
26119 Readable.prototype._read = function (n) {
26120 this.emit('error', new Error('_read() is not implemented'));
26123 Readable.prototype.pipe = function (dest, pipeOpts) {
26125 var state = this._readableState;
26127 switch (state.pipesCount) {
26129 state.pipes = dest;
26132 state.pipes = [state.pipes, dest];
26135 state.pipes.push(dest);
26138 state.pipesCount +=
1;
26139 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
26141 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
26143 var endFn = doEnd ? onend : cleanup;
26144 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
26146 dest.on('unpipe', onunpipe);
26147 function onunpipe(readable) {
26149 if (readable === src) {
26159 // when the dest drains, it reduces the awaitDrain counter
26160 // on the source. This would be more elegant with a .once()
26161 // handler in flow(), but adding and removing repeatedly is
26163 var ondrain = pipeOnDrain(src);
26164 dest.on('drain', ondrain);
26166 var cleanedUp = false;
26167 function cleanup() {
26169 // cleanup event handlers once the pipe is broken
26170 dest.removeListener('close', onclose);
26171 dest.removeListener('finish', onfinish);
26172 dest.removeListener('drain', ondrain);
26173 dest.removeListener('error', onerror);
26174 dest.removeListener('unpipe', onunpipe);
26175 src.removeListener('end', onend);
26176 src.removeListener('end', cleanup);
26177 src.removeListener('data', ondata);
26181 // if the reader is waiting for a drain event from this
26182 // specific writer, then it would cause it to never start
26184 // So, if this is awaiting a drain, then we just call it now.
26185 // If we don't know, then assume that we are waiting for one.
26186 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
26189 // If the user pushes more data while we're writing to dest then we'll end up
26190 // in ondata again. However, we only want to increase awaitDrain once because
26191 // dest will only emit one 'drain' event for the multiple writes.
26192 // =
> Introduce a guard on increasing awaitDrain.
26193 var increasedAwaitDrain = false;
26194 src.on('data', ondata);
26195 function ondata(chunk) {
26197 increasedAwaitDrain = false;
26198 var ret = dest.write(chunk);
26199 if (false === ret && !increasedAwaitDrain) {
26200 // If the user unpiped during `dest.write()`, it is possible
26201 // to get stuck in a permanently paused state if that write
26202 // also returned false.
26203 // =
> Check whether `dest` is still a piping destination.
26204 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
26205 debug('false write response, pause', src._readableState.awaitDrain);
26206 src._readableState.awaitDrain++;
26207 increasedAwaitDrain = true;
26213 // if the dest has an error, then stop piping into it.
26214 // however, don't suppress the throwing behavior for this.
26215 function onerror(er) {
26216 debug('onerror', er);
26218 dest.removeListener('error', onerror);
26219 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
26222 // Make sure our error handler is attached before userland ones.
26223 prependListener(dest, 'error', onerror);
26225 // Both close and finish should trigger unpipe, but only once.
26226 function onclose() {
26227 dest.removeListener('finish', onfinish);
26230 dest.once('close', onclose);
26231 function onfinish() {
26233 dest.removeListener('close', onclose);
26236 dest.once('finish', onfinish);
26238 function unpipe() {
26243 // tell the dest that it's being piped to
26244 dest.emit('pipe', src);
26246 // start the flow if it hasn't been started already.
26247 if (!state.flowing) {
26248 debug('pipe resume');
26255 function pipeOnDrain(src) {
26256 return function () {
26257 var state = src._readableState;
26258 debug('pipeOnDrain', state.awaitDrain);
26259 if (state.awaitDrain) state.awaitDrain--;
26260 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
26261 state.flowing = true;
26267 Readable.prototype.unpipe = function (dest) {
26268 var state = this._readableState;
26270 // if we're not piping anywhere, then do nothing.
26271 if (state.pipesCount ===
0) return this;
26273 // just one destination. most common case.
26274 if (state.pipesCount ===
1) {
26275 // passed in one, but it's not the right one.
26276 if (dest && dest !== state.pipes) return this;
26278 if (!dest) dest = state.pipes;
26281 state.pipes = null;
26282 state.pipesCount =
0;
26283 state.flowing = false;
26284 if (dest) dest.emit('unpipe', this);
26288 // slow case. multiple pipe destinations.
26292 var dests = state.pipes;
26293 var len = state.pipesCount;
26294 state.pipes = null;
26295 state.pipesCount =
0;
26296 state.flowing = false;
26298 for (var i =
0; i < len; i++) {
26299 dests[i].emit('unpipe', this);
26303 // try to find the right one.
26304 var index = indexOf(state.pipes, dest);
26305 if (index === -
1) return this;
26307 state.pipes.splice(index,
1);
26308 state.pipesCount -=
1;
26309 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
26311 dest.emit('unpipe', this);
26316 // set up data events if they are asked for
26317 // Ensure readable listeners eventually get something
26318 Readable.prototype.on = function (ev, fn) {
26319 var res = Stream.prototype.on.call(this, ev, fn);
26321 if (ev === 'data') {
26322 // Start flowing on next tick if stream isn't explicitly paused
26323 if (this._readableState.flowing !== false) this.resume();
26324 } else if (ev === 'readable') {
26325 var state = this._readableState;
26326 if (!state.endEmitted && !state.readableListening) {
26327 state.readableListening = state.needReadable = true;
26328 state.emittedReadable = false;
26329 if (!state.reading) {
26330 processNextTick(nReadingNextTick, this);
26331 } else if (state.length) {
26332 emitReadable(this, state);
26339 Readable.prototype.addListener = Readable.prototype.on;
26341 function nReadingNextTick(self) {
26342 debug('readable nexttick read
0');
26346 // pause() and resume() are remnants of the legacy readable stream API
26347 // If the user uses them, then switch into old mode.
26348 Readable.prototype.resume = function () {
26349 var state = this._readableState;
26350 if (!state.flowing) {
26352 state.flowing = true;
26353 resume(this, state);
26358 function resume(stream, state) {
26359 if (!state.resumeScheduled) {
26360 state.resumeScheduled = true;
26361 processNextTick(resume_, stream, state);
26365 function resume_(stream, state) {
26366 if (!state.reading) {
26367 debug('resume read
0');
26371 state.resumeScheduled = false;
26372 state.awaitDrain =
0;
26373 stream.emit('resume');
26375 if (state.flowing && !state.reading) stream.read(
0);
26378 Readable.prototype.pause = function () {
26379 debug('call pause flowing=%j', this._readableState.flowing);
26380 if (false !== this._readableState.flowing) {
26382 this._readableState.flowing = false;
26383 this.emit('pause');
26388 function flow(stream) {
26389 var state = stream._readableState;
26390 debug('flow', state.flowing);
26391 while (state.flowing && stream.read() !== null) {}
26394 // wrap an old-style stream as the async data source.
26395 // This is *not* part of the readable stream interface.
26396 // It is an ugly unfortunate mess of history.
26397 Readable.prototype.wrap = function (stream) {
26398 var state = this._readableState;
26399 var paused = false;
26402 stream.on('end', function () {
26403 debug('wrapped end');
26404 if (state.decoder && !state.ended) {
26405 var chunk = state.decoder.end();
26406 if (chunk && chunk.length) self.push(chunk);
26412 stream.on('data', function (chunk) {
26413 debug('wrapped data');
26414 if (state.decoder) chunk = state.decoder.write(chunk);
26416 // don't skip over falsy values in objectMode
26417 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
26419 var ret = self.push(chunk);
26426 // proxy all the other methods.
26427 // important when wrapping filters and duplexes.
26428 for (var i in stream) {
26429 if (this[i] === undefined && typeof stream[i] === 'function') {
26430 this[i] = function (method) {
26431 return function () {
26432 return stream[method].apply(stream, arguments);
26438 // proxy certain important events.
26439 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
26440 forEach(events, function (ev) {
26441 stream.on(ev, self.emit.bind(self, ev));
26444 // when we try to consume some more bytes, simply unpause the
26445 // underlying stream.
26446 self._read = function (n) {
26447 debug('wrapped _read', n);
26457 // exposed for testing purposes only.
26458 Readable._fromList = fromList;
26460 // Pluck off n bytes from an array of buffers.
26461 // Length is the combined lengths of all the buffers in the list.
26462 // This function is designed to be inlinable, so please take care when making
26463 // changes to the function body.
26464 function fromList(n, state) {
26465 // nothing buffered
26466 if (state.length ===
0) return null;
26469 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
26470 // read it all, truncate the list
26471 if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length ===
1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);
26472 state.buffer.clear();
26474 // read part of list
26475 ret = fromListPartial(n, state.buffer, state.decoder);
26481 // Extracts only enough buffered data to satisfy the amount requested.
26482 // This function is designed to be inlinable, so please take care when making
26483 // changes to the function body.
26484 function fromListPartial(n, list, hasStrings) {
26486 if (n < list.head.data.length) {
26487 // slice is the same for buffers and strings
26488 ret = list.head.data.slice(
0, n);
26489 list.head.data = list.head.data.slice(n);
26490 } else if (n === list.head.data.length) {
26491 // first chunk is a perfect match
26492 ret = list.shift();
26494 // result spans more than one buffer
26495 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
26500 // Copies a specified amount of characters from the list of buffered data
26502 // This function is designed to be inlinable, so please take care when making
26503 // changes to the function body.
26504 function copyFromBufferString(n, list) {
26509 while (p = p.next) {
26511 var nb = n
> str.length ? str.length : n;
26512 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
26515 if (nb === str.length) {
26517 if (p.next) list.head = p.next;else list.head = list.tail = null;
26520 p.data = str.slice(nb);
26530 // Copies a specified amount of bytes from the list of buffered data chunks.
26531 // This function is designed to be inlinable, so please take care when making
26532 // changes to the function body.
26533 function copyFromBuffer(n, list) {
26534 var ret = bufferShim.allocUnsafe(n);
26538 n -= p.data.length;
26539 while (p = p.next) {
26541 var nb = n
> buf.length ? buf.length : n;
26542 buf.copy(ret, ret.length - n,
0, nb);
26545 if (nb === buf.length) {
26547 if (p.next) list.head = p.next;else list.head = list.tail = null;
26550 p.data = buf.slice(nb);
26560 function endReadable(stream) {
26561 var state = stream._readableState;
26563 // If we get here before consuming all the bytes, then that is a
26564 // bug in node. Should never happen.
26565 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
26567 if (!state.endEmitted) {
26568 state.ended = true;
26569 processNextTick(endReadableNT, state, stream);
26573 function endReadableNT(state, stream) {
26574 // Check that we didn't get one last unshift.
26575 if (!state.endEmitted && state.length ===
0) {
26576 state.endEmitted = true;
26577 stream.readable = false;
26578 stream.emit('end');
26582 function forEach(xs, f) {
26583 for (var i =
0, l = xs.length; i < l; i++) {
26588 function indexOf(xs, x) {
26589 for (var i =
0, l = xs.length; i < l; i++) {
26590 if (xs[i] === x) return i;
26594 }).call(this,require('_process'))
26595 },{
"./_stream_duplex":
15,
"./internal/streams/BufferList":
20,
"_process":
13,
"buffer":
5,
"buffer-shims":
4,
"core-util-is":
6,
"events":
7,
"inherits":
9,
"isarray":
11,
"process-nextick-args":
12,
"string_decoder/":
26,
"util":
3}],
18:[function(require,module,exports){
26596 // a transform stream is a readable/writable stream where you do
26597 // something with the data. Sometimes it's called a
"filter",
26598 // but that's not a great name for it, since that implies a thing where
26599 // some bits pass through, and others are simply ignored. (That would
26600 // be a valid example of a transform, of course.)
26602 // While the output is causally related to the input, it's not a
26603 // necessarily symmetric or synchronous transformation. For example,
26604 // a zlib stream might take multiple plain-text writes(), and then
26605 // emit a single compressed chunk some time in the future.
26607 // Here's how this works:
26609 // The Transform stream has all the aspects of the readable and writable
26610 // stream classes. When you write(chunk), that calls _write(chunk,cb)
26611 // internally, and returns false if there's a lot of pending writes
26612 // buffered up. When you call read(), that calls _read(n) until
26613 // there's enough pending readable data buffered up.
26615 // In a transform stream, the written data is placed in a buffer. When
26616 // _read(n) is called, it transforms the queued up data, calling the
26617 // buffered _write cb's as it consumes chunks. If consuming a single
26618 // written chunk would result in multiple output chunks, then the first
26619 // outputted bit calls the readcb, and subsequent chunks just go into
26620 // the read buffer, and will cause it to emit 'readable' if necessary.
26622 // This way, back-pressure is actually determined by the reading side,
26623 // since _read has to be called to start processing a new chunk. However,
26624 // a pathological inflate type of transform can cause excessive buffering
26625 // here. For example, imagine a stream where every byte of input is
26626 // interpreted as an integer from
0-
255, and then results in that many
26627 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
26628 //
1kb of data being output. In this case, you could write a very small
26629 // amount of input, and end up with a very large amount of output. In
26630 // such a pathological inflating mechanism, there'd be no way to tell
26631 // the system to stop doing the transform. A single
4MB write could
26632 // cause the system to run out of memory.
26634 // However, even in such a pathological case, only a single written chunk
26635 // would be consumed, and then the rest would wait (un-transformed) until
26636 // the results of the previous transformed chunk were consumed.
26640 module.exports = Transform;
26642 var Duplex = require('./_stream_duplex');
26645 var util = require('core-util-is');
26646 util.inherits = require('inherits');
26649 util.inherits(Transform, Duplex);
26651 function TransformState(stream) {
26652 this.afterTransform = function (er, data) {
26653 return afterTransform(stream, er, data);
26656 this.needTransform = false;
26657 this.transforming = false;
26658 this.writecb = null;
26659 this.writechunk = null;
26660 this.writeencoding = null;
26663 function afterTransform(stream, er, data) {
26664 var ts = stream._transformState;
26665 ts.transforming = false;
26667 var cb = ts.writecb;
26669 if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
26671 ts.writechunk = null;
26674 if (data !== null && data !== undefined) stream.push(data);
26678 var rs = stream._readableState;
26679 rs.reading = false;
26680 if (rs.needReadable || rs.length < rs.highWaterMark) {
26681 stream._read(rs.highWaterMark);
26685 function Transform(options) {
26686 if (!(this instanceof Transform)) return new Transform(options);
26688 Duplex.call(this, options);
26690 this._transformState = new TransformState(this);
26694 // start out asking for a readable event once data is transformed.
26695 this._readableState.needReadable = true;
26697 // we have implemented the _read method, and done the other things
26698 // that Readable wants before the first _read call, so unset the
26699 // sync guard flag.
26700 this._readableState.sync = false;
26703 if (typeof options.transform === 'function') this._transform = options.transform;
26705 if (typeof options.flush === 'function') this._flush = options.flush;
26708 // When the writable side finishes, then flush out anything remaining.
26709 this.once('prefinish', function () {
26710 if (typeof this._flush === 'function') this._flush(function (er, data) {
26711 done(stream, er, data);
26712 });else done(stream);
26716 Transform.prototype.push = function (chunk, encoding) {
26717 this._transformState.needTransform = false;
26718 return Duplex.prototype.push.call(this, chunk, encoding);
26721 // This is the part where you do stuff!
26722 // override this function in implementation classes.
26723 // 'chunk' is an input chunk.
26725 // Call `push(newChunk)` to pass along transformed output
26726 // to the readable side. You may call 'push' zero or more times.
26728 // Call `cb(err)` when you are done with this chunk. If you pass
26729 // an error, then that'll put the hurt on the whole operation. If you
26730 // never call cb(), then you'll never get another chunk.
26731 Transform.prototype._transform = function (chunk, encoding, cb) {
26732 throw new Error('_transform() is not implemented');
26735 Transform.prototype._write = function (chunk, encoding, cb) {
26736 var ts = this._transformState;
26738 ts.writechunk = chunk;
26739 ts.writeencoding = encoding;
26740 if (!ts.transforming) {
26741 var rs = this._readableState;
26742 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
26746 // Doesn't matter what the args are here.
26747 // _transform does all the work.
26748 // That we got here means that the readable side wants more data.
26749 Transform.prototype._read = function (n) {
26750 var ts = this._transformState;
26752 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
26753 ts.transforming = true;
26754 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
26756 // mark that we need a transform, so that any data that comes in
26757 // will get processed, now that we've asked for it.
26758 ts.needTransform = true;
26762 function done(stream, er, data) {
26763 if (er) return stream.emit('error', er);
26765 if (data !== null && data !== undefined) stream.push(data);
26767 // if there's nothing in the write buffer, then that means
26768 // that nothing more will ever be provided
26769 var ws = stream._writableState;
26770 var ts = stream._transformState;
26772 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
26774 if (ts.transforming) throw new Error('Calling transform done when still transforming');
26776 return stream.push(null);
26778 },{"./_stream_duplex":
15,"core-util-is":
6,"inherits":
9}],
19:[function(require,module,exports){
26779 (function (process){
26780 // A bit simpler than readable streams.
26781 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
26782 // the drain event emission and buffering.
26786 module.exports = Writable;
26789 var processNextTick = require('process-nextick-args');
26793 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
26800 Writable.WritableState = WritableState;
26803 var util = require('core-util-is');
26804 util.inherits = require('inherits');
26808 var internalUtil = {
26809 deprecate: require('util-deprecate')
26817 Stream = require('st' + 'ream');
26818 } catch (_) {} finally {
26819 if (!Stream) Stream = require('events').EventEmitter;
26824 var Buffer = require('buffer').Buffer;
26826 var bufferShim = require('buffer-shims');
26829 util.inherits(Writable, Stream);
26833 function WriteReq(chunk, encoding, cb) {
26834 this.chunk = chunk;
26835 this.encoding = encoding;
26836 this.callback = cb;
26840 function WritableState(options, stream) {
26841 Duplex = Duplex || require('./_stream_duplex');
26843 options = options || {};
26845 // object stream flag to indicate whether or not this stream
26846 // contains buffers or objects.
26847 this.objectMode = !!options.objectMode;
26849 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
26851 // the point at which write() starts returning false
26852 // Note:
0 is a valid value, means that we always return false if
26853 // the entire buffer is not flushed immediately on write()
26854 var hwm = options.highWaterMark;
26855 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
26856 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
26859 this.highWaterMark = ~ ~this.highWaterMark;
26861 // drain event flag.
26862 this.needDrain = false;
26863 // at the start of calling end()
26864 this.ending = false;
26865 // when end() has been called, and returned
26866 this.ended = false;
26867 // when 'finish' is emitted
26868 this.finished = false;
26870 // should we decode strings into buffers before passing to _write?
26871 // this is here so that some node-core streams can optimize string
26872 // handling at a lower level.
26873 var noDecode = options.decodeStrings === false;
26874 this.decodeStrings = !noDecode;
26876 // Crypto is kind of old and crusty. Historically, its default string
26877 // encoding is 'binary' so we have to make this configurable.
26878 // Everything else in the universe uses 'utf8', though.
26879 this.defaultEncoding = options.defaultEncoding || 'utf8';
26881 // not an actual buffer we keep track of, but a measurement
26882 // of how much we're waiting to get pushed to some underlying
26886 // a flag to see when we're in the middle of a write.
26887 this.writing = false;
26889 // when true all writes will be buffered until .uncork() call
26892 // a flag to be able to tell if the onwrite cb is called immediately,
26893 // or on a later tick. We set this to true at first, because any
26894 // actions that shouldn't happen until "later" should generally also
26895 // not happen before the first write call.
26898 // a flag to know if we're processing previously buffered items, which
26899 // may call the _write() callback in the same tick, so that we don't
26900 // end up in an overlapped onwrite situation.
26901 this.bufferProcessing = false;
26903 // the callback that's passed to _write(chunk,cb)
26904 this.onwrite = function (er) {
26905 onwrite(stream, er);
26908 // the callback that the user supplies to write(chunk,encoding,cb)
26909 this.writecb = null;
26911 // the amount that is being written when _write is called.
26914 this.bufferedRequest = null;
26915 this.lastBufferedRequest = null;
26917 // number of pending user-supplied write callbacks
26918 // this must be
0 before 'finish' can be emitted
26919 this.pendingcb =
0;
26921 // emit prefinish if the only thing we're waiting for is _write cbs
26922 // This is relevant for synchronous Transform streams
26923 this.prefinished = false;
26925 // True if the error was already emitted and should not be thrown again
26926 this.errorEmitted = false;
26928 // count buffered requests
26929 this.bufferedRequestCount =
0;
26931 // allocate the first CorkedRequest, there is always
26932 // one allocated and free to use, and we maintain at most two
26933 this.corkedRequestsFree = new CorkedRequest(this);
26936 WritableState.prototype.getBuffer = function getBuffer() {
26937 var current = this.bufferedRequest;
26941 current = current.next;
26948 Object.defineProperty(WritableState.prototype, 'buffer', {
26949 get: internalUtil.deprecate(function () {
26950 return this.getBuffer();
26951 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
26956 // Test _writableState for inheritance to account for Duplex streams,
26957 // whose prototype chain only points to Readable.
26958 var realHasInstance;
26959 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
26960 realHasInstance = Function.prototype[Symbol.hasInstance];
26961 Object.defineProperty(Writable, Symbol.hasInstance, {
26962 value: function (object) {
26963 if (realHasInstance.call(this, object)) return true;
26965 return object && object._writableState instanceof WritableState;
26969 realHasInstance = function (object) {
26970 return object instanceof this;
26974 function Writable(options) {
26975 Duplex = Duplex || require('./_stream_duplex');
26977 // Writable ctor is applied to Duplexes, too.
26978 // `realHasInstance` is necessary because using plain `instanceof`
26979 // would return false, as no `_writableState` property is attached.
26981 // Trying to use the custom `instanceof` for Writable here will also break the
26982 // Node.js LazyTransform implementation, which has a non-trivial getter for
26983 // `_writableState` that would lead to infinite recursion.
26984 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
26985 return new Writable(options);
26988 this._writableState = new WritableState(options, this);
26991 this.writable = true;
26994 if (typeof options.write === 'function') this._write = options.write;
26996 if (typeof options.writev === 'function') this._writev = options.writev;
27002 // Otherwise people can pipe Writable streams, which is just wrong.
27003 Writable.prototype.pipe = function () {
27004 this.emit('error', new Error('Cannot pipe, not readable'));
27007 function writeAfterEnd(stream, cb) {
27008 var er = new Error('write after end');
27009 // TODO: defer error events consistently everywhere, not just the cb
27010 stream.emit('error', er);
27011 processNextTick(cb, er);
27014 // If we get something that is not a buffer, string, null, or undefined,
27015 // and we're not in objectMode, then that's an error.
27016 // Otherwise stream chunks are all considered to be of length=
1, and the
27017 // watermarks determine how many objects to keep in the buffer, rather than
27018 // how many bytes or characters.
27019 function validChunk(stream, state, chunk, cb) {
27022 // Always throw error if a null is written
27023 // if we are not in object mode then throw
27024 // if it is not a buffer, string, or undefined.
27025 if (chunk === null) {
27026 er = new TypeError('May not write null values to stream');
27027 } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
27028 er = new TypeError('Invalid non-string/buffer chunk');
27031 stream.emit('error', er);
27032 processNextTick(cb, er);
27038 Writable.prototype.write = function (chunk, encoding, cb) {
27039 var state = this._writableState;
27042 if (typeof encoding === 'function') {
27047 if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
27049 if (typeof cb !== 'function') cb = nop;
27051 if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
27053 ret = writeOrBuffer(this, state, chunk, encoding, cb);
27059 Writable.prototype.cork = function () {
27060 var state = this._writableState;
27065 Writable.prototype.uncork = function () {
27066 var state = this._writableState;
27068 if (state.corked) {
27071 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
27075 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
27076 // node::ParseEncoding() requires lower case.
27077 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
27078 if (!(['hex', 'utf8', 'utf-
8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-
2', 'utf16le', 'utf-
16le', 'raw'].indexOf((encoding + '').toLowerCase())
> -
1)) throw new TypeError('Unknown encoding: ' + encoding);
27079 this._writableState.defaultEncoding = encoding;
27083 function decodeChunk(state, chunk, encoding) {
27084 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
27085 chunk = bufferShim.from(chunk, encoding);
27090 // if we're already writing something, then just put this
27091 // in the queue, and wait our turn. Otherwise, call _write
27092 // If we return false, then we need a drain event, so set that flag.
27093 function writeOrBuffer(stream, state, chunk, encoding, cb) {
27094 chunk = decodeChunk(state, chunk, encoding);
27096 if (Buffer.isBuffer(chunk)) encoding = 'buffer';
27097 var len = state.objectMode ?
1 : chunk.length;
27099 state.length += len;
27101 var ret = state.length < state.highWaterMark;
27102 // we must ensure that previous needDrain will not be reset to false.
27103 if (!ret) state.needDrain = true;
27105 if (state.writing || state.corked) {
27106 var last = state.lastBufferedRequest;
27107 state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
27109 last.next = state.lastBufferedRequest;
27111 state.bufferedRequest = state.lastBufferedRequest;
27113 state.bufferedRequestCount +=
1;
27115 doWrite(stream, state, false, len, chunk, encoding, cb);
27121 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
27122 state.writelen = len;
27123 state.writecb = cb;
27124 state.writing = true;
27126 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
27127 state.sync = false;
27130 function onwriteError(stream, state, sync, er, cb) {
27132 if (sync) processNextTick(cb, er);else cb(er);
27134 stream._writableState.errorEmitted = true;
27135 stream.emit('error', er);
27138 function onwriteStateUpdate(state) {
27139 state.writing = false;
27140 state.writecb = null;
27141 state.length -= state.writelen;
27142 state.writelen =
0;
27145 function onwrite(stream, er) {
27146 var state = stream._writableState;
27147 var sync = state.sync;
27148 var cb = state.writecb;
27150 onwriteStateUpdate(state);
27152 if (er) onwriteError(stream, state, sync, er, cb);else {
27153 // Check if we're actually ready to finish, but don't emit yet
27154 var finished = needFinish(state);
27156 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
27157 clearBuffer(stream, state);
27162 asyncWrite(afterWrite, stream, state, finished, cb);
27165 afterWrite(stream, state, finished, cb);
27170 function afterWrite(stream, state, finished, cb) {
27171 if (!finished) onwriteDrain(stream, state);
27174 finishMaybe(stream, state);
27177 // Must force callback to be called on nextTick, so that we don't
27178 // emit 'drain' before the write() consumer gets the 'false' return
27179 // value, and has a chance to attach a 'drain' listener.
27180 function onwriteDrain(stream, state) {
27181 if (state.length ===
0 && state.needDrain) {
27182 state.needDrain = false;
27183 stream.emit('drain');
27187 // if there's something in the buffer waiting, then process it
27188 function clearBuffer(stream, state) {
27189 state.bufferProcessing = true;
27190 var entry = state.bufferedRequest;
27192 if (stream._writev && entry && entry.next) {
27193 // Fast case, write everything using _writev()
27194 var l = state.bufferedRequestCount;
27195 var buffer = new Array(l);
27196 var holder = state.corkedRequestsFree;
27197 holder.entry = entry;
27201 buffer[count] = entry;
27202 entry = entry.next;
27206 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
27208 // doWrite is almost always async, defer these to save a bit of time
27209 // as the hot path ends with doWrite
27211 state.lastBufferedRequest = null;
27213 state.corkedRequestsFree = holder.next;
27214 holder.next = null;
27216 state.corkedRequestsFree = new CorkedRequest(state);
27219 // Slow case, write chunks one-by-one
27221 var chunk = entry.chunk;
27222 var encoding = entry.encoding;
27223 var cb = entry.callback;
27224 var len = state.objectMode ?
1 : chunk.length;
27226 doWrite(stream, state, false, len, chunk, encoding, cb);
27227 entry = entry.next;
27228 // if we didn't call the onwrite immediately, then
27229 // it means that we need to wait until it does.
27230 // also, that means that the chunk and cb are currently
27231 // being processed, so move the buffer counter past them.
27232 if (state.writing) {
27237 if (entry === null) state.lastBufferedRequest = null;
27240 state.bufferedRequestCount =
0;
27241 state.bufferedRequest = entry;
27242 state.bufferProcessing = false;
27245 Writable.prototype._write = function (chunk, encoding, cb) {
27246 cb(new Error('_write() is not implemented'));
27249 Writable.prototype._writev = null;
27251 Writable.prototype.end = function (chunk, encoding, cb) {
27252 var state = this._writableState;
27254 if (typeof chunk === 'function') {
27258 } else if (typeof encoding === 'function') {
27263 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
27265 // .end() fully uncorks
27266 if (state.corked) {
27271 // ignore unnecessary end() calls.
27272 if (!state.ending && !state.finished) endWritable(this, state, cb);
27275 function needFinish(state) {
27276 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
27279 function prefinish(stream, state) {
27280 if (!state.prefinished) {
27281 state.prefinished = true;
27282 stream.emit('prefinish');
27286 function finishMaybe(stream, state) {
27287 var need = needFinish(state);
27289 if (state.pendingcb ===
0) {
27290 prefinish(stream, state);
27291 state.finished = true;
27292 stream.emit('finish');
27294 prefinish(stream, state);
27300 function endWritable(stream, state, cb) {
27301 state.ending = true;
27302 finishMaybe(stream, state);
27304 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
27306 state.ended = true;
27307 stream.writable = false;
27310 // It seems a linked list but it is not
27311 // there will be only
2 of these for each stream
27312 function CorkedRequest(state) {
27318 this.finish = function (err) {
27319 var entry = _this.entry;
27320 _this.entry = null;
27322 var cb = entry.callback;
27325 entry = entry.next;
27327 if (state.corkedRequestsFree) {
27328 state.corkedRequestsFree.next = _this;
27330 state.corkedRequestsFree = _this;
27334 }).call(this,require('_process'))
27335 },{"./_stream_duplex":
15,"_process":
13,"buffer":
5,"buffer-shims":
4,"core-util-is":
6,"events":
7,"inherits":
9,"process-nextick-args":
12,"util-deprecate":
27}],
20:[function(require,module,exports){
27338 var Buffer = require('buffer').Buffer;
27340 var bufferShim = require('buffer-shims');
27343 module.exports = BufferList;
27345 function BufferList() {
27351 BufferList.prototype.push = function (v) {
27352 var entry = { data: v, next: null };
27353 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
27358 BufferList.prototype.unshift = function (v) {
27359 var entry = { data: v, next: this.head };
27360 if (this.length ===
0) this.tail = entry;
27365 BufferList.prototype.shift = function () {
27366 if (this.length ===
0) return;
27367 var ret = this.head.data;
27368 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
27373 BufferList.prototype.clear = function () {
27374 this.head = this.tail = null;
27378 BufferList.prototype.join = function (s) {
27379 if (this.length ===
0) return '';
27381 var ret = '' + p.data;
27382 while (p = p.next) {
27387 BufferList.prototype.concat = function (n) {
27388 if (this.length ===
0) return bufferShim.alloc(
0);
27389 if (this.length ===
1) return this.head.data;
27390 var ret = bufferShim.allocUnsafe(n
>>> 0);
27394 p.data.copy(ret, i);
27395 i += p.data.length;
27400 },{
"buffer":
5,
"buffer-shims":
4}],
21:[function(require,module,exports){
27401 module.exports = require(
"./lib/_stream_passthrough.js")
27403 },{
"./lib/_stream_passthrough.js":
16}],
22:[function(require,module,exports){
27404 (function (process){
27405 var Stream = (function (){
27407 return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
27410 exports = module.exports = require('./lib/_stream_readable.js');
27411 exports.Stream = Stream || exports;
27412 exports.Readable = exports;
27413 exports.Writable = require('./lib/_stream_writable.js');
27414 exports.Duplex = require('./lib/_stream_duplex.js');
27415 exports.Transform = require('./lib/_stream_transform.js');
27416 exports.PassThrough = require('./lib/_stream_passthrough.js');
27418 if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
27419 module.exports = Stream;
27422 }).call(this,require('_process'))
27423 },{
"./lib/_stream_duplex.js":
15,
"./lib/_stream_passthrough.js":
16,
"./lib/_stream_readable.js":
17,
"./lib/_stream_transform.js":
18,
"./lib/_stream_writable.js":
19,
"_process":
13}],
23:[function(require,module,exports){
27424 module.exports = require(
"./lib/_stream_transform.js")
27426 },{
"./lib/_stream_transform.js":
18}],
24:[function(require,module,exports){
27427 module.exports = require(
"./lib/_stream_writable.js")
27429 },{
"./lib/_stream_writable.js":
19}],
25:[function(require,module,exports){
27430 // Copyright Joyent, Inc. and other Node contributors.
27432 // Permission is hereby granted, free of charge, to any person obtaining a
27433 // copy of this software and associated documentation files (the
27434 //
"Software"), to deal in the Software without restriction, including
27435 // without limitation the rights to use, copy, modify, merge, publish,
27436 // distribute, sublicense, and/or sell copies of the Software, and to permit
27437 // persons to whom the Software is furnished to do so, subject to the
27438 // following conditions:
27440 // The above copyright notice and this permission notice shall be included
27441 // in all copies or substantial portions of the Software.
27443 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27444 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27445 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27446 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27447 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27448 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27449 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27451 module.exports = Stream;
27453 var EE = require('events').EventEmitter;
27454 var inherits = require('inherits');
27456 inherits(Stream, EE);
27457 Stream.Readable = require('readable-stream/readable.js');
27458 Stream.Writable = require('readable-stream/writable.js');
27459 Stream.Duplex = require('readable-stream/duplex.js');
27460 Stream.Transform = require('readable-stream/transform.js');
27461 Stream.PassThrough = require('readable-stream/passthrough.js');
27463 // Backwards-compat with node
0.4.x
27464 Stream.Stream = Stream;
27468 // old-style streams. Note that the pipe method (the only relevant
27469 // part of this class) is overridden in the Readable class.
27471 function Stream() {
27475 Stream.prototype.pipe = function(dest, options) {
27478 function ondata(chunk) {
27479 if (dest.writable) {
27480 if (false === dest.write(chunk) && source.pause) {
27486 source.on('data', ondata);
27488 function ondrain() {
27489 if (source.readable && source.resume) {
27494 dest.on('drain', ondrain);
27496 // If the 'end' option is not supplied, dest.end() will be called when
27497 // source gets the 'end' or 'close' events. Only dest.end() once.
27498 if (!dest._isStdio && (!options || options.end !== false)) {
27499 source.on('end', onend);
27500 source.on('close', onclose);
27503 var didOnEnd = false;
27505 if (didOnEnd) return;
27512 function onclose() {
27513 if (didOnEnd) return;
27516 if (typeof dest.destroy === 'function') dest.destroy();
27519 // don't leave dangling pipes when there are errors.
27520 function onerror(er) {
27522 if (EE.listenerCount(this, 'error') ===
0) {
27523 throw er; // Unhandled stream error in pipe.
27527 source.on('error', onerror);
27528 dest.on('error', onerror);
27530 // remove all the event listeners that were added.
27531 function cleanup() {
27532 source.removeListener('data', ondata);
27533 dest.removeListener('drain', ondrain);
27535 source.removeListener('end', onend);
27536 source.removeListener('close', onclose);
27538 source.removeListener('error', onerror);
27539 dest.removeListener('error', onerror);
27541 source.removeListener('end', cleanup);
27542 source.removeListener('close', cleanup);
27544 dest.removeListener('close', cleanup);
27547 source.on('end', cleanup);
27548 source.on('close', cleanup);
27550 dest.on('close', cleanup);
27552 dest.emit('pipe', source);
27554 // Allow for unix-like usage: A.pipe(B).pipe(C)
27558 },{
"events":
7,
"inherits":
9,
"readable-stream/duplex.js":
14,
"readable-stream/passthrough.js":
21,
"readable-stream/readable.js":
22,
"readable-stream/transform.js":
23,
"readable-stream/writable.js":
24}],
26:[function(require,module,exports){
27559 // Copyright Joyent, Inc. and other Node contributors.
27561 // Permission is hereby granted, free of charge, to any person obtaining a
27562 // copy of this software and associated documentation files (the
27563 //
"Software"), to deal in the Software without restriction, including
27564 // without limitation the rights to use, copy, modify, merge, publish,
27565 // distribute, sublicense, and/or sell copies of the Software, and to permit
27566 // persons to whom the Software is furnished to do so, subject to the
27567 // following conditions:
27569 // The above copyright notice and this permission notice shall be included
27570 // in all copies or substantial portions of the Software.
27572 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27573 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27574 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27575 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27576 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27577 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27578 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27580 var Buffer = require('buffer').Buffer;
27582 var isBufferEncoding = Buffer.isEncoding
27583 || function(encoding) {
27584 switch (encoding && encoding.toLowerCase()) {
27585 case 'hex': case 'utf8': case 'utf-
8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-
2': case 'utf16le': case 'utf-
16le': case 'raw': return true;
27586 default: return false;
27591 function assertEncoding(encoding) {
27592 if (encoding && !isBufferEncoding(encoding)) {
27593 throw new Error('Unknown encoding: ' + encoding);
27597 // StringDecoder provides an interface for efficiently splitting a series of
27598 // buffers into a series of JS strings without breaking apart multi-byte
27599 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
27601 // @TODO Handling all encodings inside a single object makes it very difficult
27602 // to reason about this code, so it should be split up in the future.
27603 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
27604 // points as used by CESU-
8.
27605 var StringDecoder = exports.StringDecoder = function(encoding) {
27606 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
27607 assertEncoding(encoding);
27608 switch (this.encoding) {
27610 // CESU-
8 represents each of Surrogate Pair by
3-bytes
27611 this.surrogateSize =
3;
27615 // UTF-
16 represents each of Surrogate Pair by
2-bytes
27616 this.surrogateSize =
2;
27617 this.detectIncompleteChar = utf16DetectIncompleteChar;
27620 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
27621 this.surrogateSize =
3;
27622 this.detectIncompleteChar = base64DetectIncompleteChar;
27625 this.write = passThroughWrite;
27629 // Enough space to store all bytes of a single character. UTF-
8 needs
4
27630 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
27631 this.charBuffer = new Buffer(
6);
27632 // Number of bytes received for the current incomplete multi-byte character.
27633 this.charReceived =
0;
27634 // Number of bytes expected for the current incomplete multi-byte character.
27635 this.charLength =
0;
27639 // write decodes the given buffer and returns it as JS string that is
27640 // guaranteed to not contain any partial multi-byte characters. Any partial
27641 // character found at the end of the buffer is buffered up, and will be
27642 // returned when calling write again with the remaining bytes.
27644 // Note: Converting a Buffer containing an orphan surrogate to a String
27645 // currently works, but converting a String to a Buffer (via `new Buffer`, or
27646 // Buffer#write) will replace incomplete surrogates with the unicode
27647 // replacement character. See https://codereview.chromium.org/
121173009/ .
27648 StringDecoder.prototype.write = function(buffer) {
27650 // if our last write ended with an incomplete multibyte character
27651 while (this.charLength) {
27652 // determine how many remaining bytes this buffer has to offer for this char
27653 var available = (buffer.length
>= this.charLength - this.charReceived) ?
27654 this.charLength - this.charReceived :
27657 // add the new bytes to the char buffer
27658 buffer.copy(this.charBuffer, this.charReceived,
0, available);
27659 this.charReceived += available;
27661 if (this.charReceived < this.charLength) {
27662 // still not enough chars in this buffer? wait for more ...
27666 // remove bytes belonging to the current character from the buffer
27667 buffer = buffer.slice(available, buffer.length);
27669 // get the character that was split
27670 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
27672 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
27673 var charCode = charStr.charCodeAt(charStr.length -
1);
27674 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
27675 this.charLength += this.surrogateSize;
27679 this.charReceived = this.charLength =
0;
27681 // if there are no more bytes in this buffer, just emit our char
27682 if (buffer.length ===
0) {
27688 // determine and set charLength / charReceived
27689 this.detectIncompleteChar(buffer);
27691 var end = buffer.length;
27692 if (this.charLength) {
27693 // buffer the incomplete character bytes we got
27694 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
27695 end -= this.charReceived;
27698 charStr += buffer.toString(this.encoding,
0, end);
27700 var end = charStr.length -
1;
27701 var charCode = charStr.charCodeAt(end);
27702 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
27703 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
27704 var size = this.surrogateSize;
27705 this.charLength += size;
27706 this.charReceived += size;
27707 this.charBuffer.copy(this.charBuffer, size,
0, size);
27708 buffer.copy(this.charBuffer,
0,
0, size);
27709 return charStr.substring(
0, end);
27712 // or just emit the charStr
27716 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
27717 // the end of the given buffer. If so, it sets this.charLength to the byte
27718 // length that character, and sets this.charReceived to the number of bytes
27719 // that are available for this character.
27720 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
27721 // determine how many bytes we have to check at the end of this buffer
27722 var i = (buffer.length
>=
3) ?
3 : buffer.length;
27724 // Figure out if one of the last i bytes of our buffer announces an
27725 // incomplete char.
27726 for (; i
> 0; i--) {
27727 var c = buffer[buffer.length - i];
27729 // See http://en.wikipedia.org/wiki/UTF-
8#Description
27732 if (i ==
1 && c
>> 5 ==
0x06) {
27733 this.charLength =
2;
27738 if (i <=
2 && c
>> 4 ==
0x0E) {
27739 this.charLength =
3;
27744 if (i <=
3 && c
>> 3 ==
0x1E) {
27745 this.charLength =
4;
27749 this.charReceived = i;
27752 StringDecoder.prototype.end = function(buffer) {
27754 if (buffer && buffer.length)
27755 res = this.write(buffer);
27757 if (this.charReceived) {
27758 var cr = this.charReceived;
27759 var buf = this.charBuffer;
27760 var enc = this.encoding;
27761 res += buf.slice(
0, cr).toString(enc);
27767 function passThroughWrite(buffer) {
27768 return buffer.toString(this.encoding);
27771 function utf16DetectIncompleteChar(buffer) {
27772 this.charReceived = buffer.length %
2;
27773 this.charLength = this.charReceived ?
2 :
0;
27776 function base64DetectIncompleteChar(buffer) {
27777 this.charReceived = buffer.length %
3;
27778 this.charLength = this.charReceived ?
3 :
0;
27781 },{
"buffer":
5}],
27:[function(require,module,exports){
27782 (function (global){
27788 module.exports = deprecate;
27791 * Mark that a method should not be used.
27792 * Returns a modified function which warns once by default.
27794 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
27796 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
27797 * will throw an Error when invoked.
27799 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
27800 * will invoke `console.trace()` instead of `console.error()`.
27802 * @param {Function} fn - the function to deprecate
27803 * @param {String} msg - the string to print to the console when `fn` is invoked
27804 * @returns {Function} a new
"deprecated" version of `fn`
27808 function deprecate (fn, msg) {
27809 if (config('noDeprecation')) {
27813 var warned = false;
27814 function deprecated() {
27816 if (config('throwDeprecation')) {
27817 throw new Error(msg);
27818 } else if (config('traceDeprecation')) {
27819 console.trace(msg);
27825 return fn.apply(this, arguments);
27832 * Checks `localStorage` for boolean values for the given `name`.
27834 * @param {String} name
27835 * @returns {Boolean}
27839 function config (name) {
27840 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
27842 if (!global.localStorage) return false;
27846 var val = global.localStorage[name];
27847 if (null == val) return false;
27848 return String(val).toLowerCase() === 'true';
27851 }).call(this,typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
27852 },{}],
28:[function(require,module,exports){
27853 arguments[
4][
9][
0].apply(exports,arguments)
27854 },{
"dup":
9}],
29:[function(require,module,exports){
27855 module.exports = function isBuffer(arg) {
27856 return arg && typeof arg === 'object'
27857 && typeof arg.copy === 'function'
27858 && typeof arg.fill === 'function'
27859 && typeof arg.readUInt8 === 'function';
27861 },{}],
30:[function(require,module,exports){
27862 (function (process,global){
27863 // Copyright Joyent, Inc. and other Node contributors.
27865 // Permission is hereby granted, free of charge, to any person obtaining a
27866 // copy of this software and associated documentation files (the
27867 //
"Software"), to deal in the Software without restriction, including
27868 // without limitation the rights to use, copy, modify, merge, publish,
27869 // distribute, sublicense, and/or sell copies of the Software, and to permit
27870 // persons to whom the Software is furnished to do so, subject to the
27871 // following conditions:
27873 // The above copyright notice and this permission notice shall be included
27874 // in all copies or substantial portions of the Software.
27876 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
27877 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27878 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
27879 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
27880 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
27881 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
27882 // USE OR OTHER DEALINGS IN THE SOFTWARE.
27884 var formatRegExp = /%[sdj%]/g;
27885 exports.format = function(f) {
27886 if (!isString(f)) {
27888 for (var i =
0; i < arguments.length; i++) {
27889 objects.push(inspect(arguments[i]));
27891 return objects.join(' ');
27895 var args = arguments;
27896 var len = args.length;
27897 var str = String(f).replace(formatRegExp, function(x) {
27898 if (x === '%%') return '%';
27899 if (i
>= len) return x;
27901 case '%s': return String(args[i++]);
27902 case '%d': return Number(args[i++]);
27905 return JSON.stringify(args[i++]);
27907 return '[Circular]';
27913 for (var x = args[i]; i < len; x = args[++i]) {
27914 if (isNull(x) || !isObject(x)) {
27917 str += ' ' + inspect(x);
27924 // Mark that a method should not be used.
27925 // Returns a modified function which warns once by default.
27926 // If --no-deprecation is set, then it is a no-op.
27927 exports.deprecate = function(fn, msg) {
27928 // Allow for deprecating things in the process of starting up.
27929 if (isUndefined(global.process)) {
27930 return function() {
27931 return exports.deprecate(fn, msg).apply(this, arguments);
27935 if (process.noDeprecation === true) {
27939 var warned = false;
27940 function deprecated() {
27942 if (process.throwDeprecation) {
27943 throw new Error(msg);
27944 } else if (process.traceDeprecation) {
27945 console.trace(msg);
27947 console.error(msg);
27951 return fn.apply(this, arguments);
27960 exports.debuglog = function(set) {
27961 if (isUndefined(debugEnviron))
27962 debugEnviron = process.env.NODE_DEBUG || '';
27963 set = set.toUpperCase();
27964 if (!debugs[set]) {
27965 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
27966 var pid = process.pid;
27967 debugs[set] = function() {
27968 var msg = exports.format.apply(exports, arguments);
27969 console.error('%s %d: %s', set, pid, msg);
27972 debugs[set] = function() {};
27975 return debugs[set];
27980 * Echos the value of a value. Trys to print the value out
27981 * in the best way possible given the different types.
27983 * @param {Object} obj The object to print out.
27984 * @param {Object} opts Optional options object that alters the output.
27986 /* legacy: obj, showHidden, depth, colors*/
27987 function inspect(obj, opts) {
27991 stylize: stylizeNoColor
27994 if (arguments.length
>=
3) ctx.depth = arguments[
2];
27995 if (arguments.length
>=
4) ctx.colors = arguments[
3];
27996 if (isBoolean(opts)) {
27998 ctx.showHidden = opts;
28000 // got an "options" object
28001 exports._extend(ctx, opts);
28003 // set default options
28004 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
28005 if (isUndefined(ctx.depth)) ctx.depth =
2;
28006 if (isUndefined(ctx.colors)) ctx.colors = false;
28007 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
28008 if (ctx.colors) ctx.stylize = stylizeWithColor;
28009 return formatValue(ctx, obj, ctx.depth);
28011 exports.inspect = inspect;
28014 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
28017 'italic' : [
3,
23],
28018 'underline' : [
4,
24],
28019 'inverse' : [
7,
27],
28020 'white' : [
37,
39],
28022 'black' : [
30,
39],
28025 'green' : [
32,
39],
28026 'magenta' : [
35,
39],
28028 'yellow' : [
33,
39]
28031 // Don't use 'blue' not visible on cmd.exe
28034 'number': 'yellow',
28035 'boolean': 'yellow',
28036 'undefined': 'grey',
28040 // "name": intentionally not styling
28045 function stylizeWithColor(str, styleType) {
28046 var style = inspect.styles[styleType];
28049 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
28050 '\u001b[' + inspect.colors[style][
1] + 'm';
28057 function stylizeNoColor(str, styleType) {
28062 function arrayToHash(array) {
28065 array.forEach(function(val, idx) {
28073 function formatValue(ctx, value, recurseTimes) {
28074 // Provide a hook for user-specified inspect functions.
28075 // Check that value is an object with an inspect function on it
28076 if (ctx.customInspect &&
28078 isFunction(value.inspect) &&
28079 // Filter out the util module, it's inspect function is special
28080 value.inspect !== exports.inspect &&
28081 // Also filter out any prototype objects using the circular check.
28082 !(value.constructor && value.constructor.prototype === value)) {
28083 var ret = value.inspect(recurseTimes, ctx);
28084 if (!isString(ret)) {
28085 ret = formatValue(ctx, ret, recurseTimes);
28090 // Primitive types cannot have properties
28091 var primitive = formatPrimitive(ctx, value);
28096 // Look up the keys of the object.
28097 var keys = Object.keys(value);
28098 var visibleKeys = arrayToHash(keys);
28100 if (ctx.showHidden) {
28101 keys = Object.getOwnPropertyNames(value);
28104 // IE doesn't make error fields non-enumerable
28105 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
28107 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
28108 return formatError(value);
28111 // Some type of object without properties can be shortcutted.
28112 if (keys.length ===
0) {
28113 if (isFunction(value)) {
28114 var name = value.name ? ': ' + value.name : '';
28115 return ctx.stylize('[Function' + name + ']', 'special');
28117 if (isRegExp(value)) {
28118 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
28120 if (isDate(value)) {
28121 return ctx.stylize(Date.prototype.toString.call(value), 'date');
28123 if (isError(value)) {
28124 return formatError(value);
28128 var base = '', array = false, braces = ['{', '}'];
28130 // Make Array say that they are Array
28131 if (isArray(value)) {
28133 braces = ['[', ']'];
28136 // Make functions say that they are functions
28137 if (isFunction(value)) {
28138 var n = value.name ? ': ' + value.name : '';
28139 base = ' [Function' + n + ']';
28142 // Make RegExps say that they are RegExps
28143 if (isRegExp(value)) {
28144 base = ' ' + RegExp.prototype.toString.call(value);
28147 // Make dates with properties first say the date
28148 if (isDate(value)) {
28149 base = ' ' + Date.prototype.toUTCString.call(value);
28152 // Make error with message first say the error
28153 if (isError(value)) {
28154 base = ' ' + formatError(value);
28157 if (keys.length ===
0 && (!array || value.length ==
0)) {
28158 return braces[
0] + base + braces[
1];
28161 if (recurseTimes <
0) {
28162 if (isRegExp(value)) {
28163 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
28165 return ctx.stylize('[Object]', 'special');
28169 ctx.seen.push(value);
28173 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
28175 output = keys.map(function(key) {
28176 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
28182 return reduceToSingleString(output, base, braces);
28186 function formatPrimitive(ctx, value) {
28187 if (isUndefined(value))
28188 return ctx.stylize('undefined', 'undefined');
28189 if (isString(value)) {
28190 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
28191 .replace(/'/g, "\\'")
28192 .replace(/\\"/g, '"') + '\'';
28193 return ctx.stylize(simple, 'string');
28195 if (isNumber(value))
28196 return ctx.stylize('' + value, 'number');
28197 if (isBoolean(value))
28198 return ctx.stylize('' + value, 'boolean');
28199 // For some reason typeof null is "object", so special case here.
28201 return ctx.stylize('null', 'null');
28205 function formatError(value) {
28206 return '[' + Error.prototype.toString.call(value) + ']';
28210 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
28212 for (var i =
0, l = value.length; i < l; ++i) {
28213 if (hasOwnProperty(value, String(i))) {
28214 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
28220 keys.forEach(function(key) {
28221 if (!key.match(/^\d+$/)) {
28222 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
28230 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
28231 var name, str, desc;
28232 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
28235 str = ctx.stylize('[Getter/Setter]', 'special');
28237 str = ctx.stylize('[Getter]', 'special');
28241 str = ctx.stylize('[Setter]', 'special');
28244 if (!hasOwnProperty(visibleKeys, key)) {
28245 name = '[' + key + ']';
28248 if (ctx.seen.indexOf(desc.value) <
0) {
28249 if (isNull(recurseTimes)) {
28250 str = formatValue(ctx, desc.value, null);
28252 str = formatValue(ctx, desc.value, recurseTimes -
1);
28254 if (str.indexOf('\n')
> -
1) {
28256 str = str.split('\n').map(function(line) {
28258 }).join('\n').substr(
2);
28260 str = '\n' + str.split('\n').map(function(line) {
28266 str = ctx.stylize('[Circular]', 'special');
28269 if (isUndefined(name)) {
28270 if (array && key.match(/^\d+$/)) {
28273 name = JSON.stringify('' + key);
28274 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
28275 name = name.substr(
1, name.length -
2);
28276 name = ctx.stylize(name, 'name');
28278 name = name.replace(/'/g, "\\'")
28279 .replace(/\\"/g, '"')
28280 .replace(/(^"|"$)/g, "'");
28281 name = ctx.stylize(name, 'string');
28285 return name + ': ' + str;
28289 function reduceToSingleString(output, base, braces) {
28290 var numLinesEst =
0;
28291 var length = output.reduce(function(prev, cur) {
28293 if (cur.indexOf('\n')
>=
0) numLinesEst++;
28294 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
28299 (base === '' ? '' : base + '\n ') +
28301 output.join(',\n ') +
28306 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
28310 // NOTE: These type checking functions intentionally don't use `instanceof`
28311 // because it is fragile and can be easily faked with `Object.create()`.
28312 function isArray(ar) {
28313 return Array.isArray(ar);
28315 exports.isArray = isArray;
28317 function isBoolean(arg) {
28318 return typeof arg === 'boolean';
28320 exports.isBoolean = isBoolean;
28322 function isNull(arg) {
28323 return arg === null;
28325 exports.isNull = isNull;
28327 function isNullOrUndefined(arg) {
28328 return arg == null;
28330 exports.isNullOrUndefined = isNullOrUndefined;
28332 function isNumber(arg) {
28333 return typeof arg === 'number';
28335 exports.isNumber = isNumber;
28337 function isString(arg) {
28338 return typeof arg === 'string';
28340 exports.isString = isString;
28342 function isSymbol(arg) {
28343 return typeof arg === 'symbol';
28345 exports.isSymbol = isSymbol;
28347 function isUndefined(arg) {
28348 return arg === void
0;
28350 exports.isUndefined = isUndefined;
28352 function isRegExp(re) {
28353 return isObject(re) && objectToString(re) === '[object RegExp]';
28355 exports.isRegExp = isRegExp;
28357 function isObject(arg) {
28358 return typeof arg === 'object' && arg !== null;
28360 exports.isObject = isObject;
28362 function isDate(d) {
28363 return isObject(d) && objectToString(d) === '[object Date]';
28365 exports.isDate = isDate;
28367 function isError(e) {
28368 return isObject(e) &&
28369 (objectToString(e) === '[object Error]' || e instanceof Error);
28371 exports.isError = isError;
28373 function isFunction(arg) {
28374 return typeof arg === 'function';
28376 exports.isFunction = isFunction;
28378 function isPrimitive(arg) {
28379 return arg === null ||
28380 typeof arg === 'boolean' ||
28381 typeof arg === 'number' ||
28382 typeof arg === 'string' ||
28383 typeof arg === 'symbol' || // ES6 symbol
28384 typeof arg === 'undefined';
28386 exports.isPrimitive = isPrimitive;
28388 exports.isBuffer = require('./support/isBuffer');
28390 function objectToString(o) {
28391 return Object.prototype.toString.call(o);
28396 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
28400 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
28401 'Oct', 'Nov', 'Dec'];
28404 function timestamp() {
28405 var d = new Date();
28406 var time = [pad(d.getHours()),
28407 pad(d.getMinutes()),
28408 pad(d.getSeconds())].join(':');
28409 return [d.getDate(), months[d.getMonth()], time].join(' ');
28413 // log is just a thin wrapper to console.log that prepends a timestamp
28414 exports.log = function() {
28415 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
28420 * Inherit the prototype methods from one constructor into another.
28422 * The Function.prototype.inherits from lang.js rewritten as a standalone
28423 * function (not on Function.prototype). NOTE: If this file is to be loaded
28424 * during bootstrapping this function needs to be rewritten using some native
28425 * functions as prototype setup using normal JavaScript does not work as
28426 * expected during bootstrapping (see mirror.js in r114903).
28428 * @param {function} ctor Constructor function which needs to inherit the
28430 * @param {function} superCtor Constructor function to inherit prototype from.
28432 exports.inherits = require('inherits');
28434 exports._extend = function(origin, add) {
28435 // Don't do anything if add isn't an object
28436 if (!add || !isObject(add)) return origin;
28438 var keys = Object.keys(add);
28439 var i = keys.length;
28441 origin[keys[i]] = add[keys[i]];
28446 function hasOwnProperty(obj, prop) {
28447 return Object.prototype.hasOwnProperty.call(obj, prop);
28450 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
28451 },{
"./support/isBuffer":
29,
"_process":
13,
"inherits":
28}],
31:[function(require,module,exports){
28452 (function (Buffer){
28453 const createKeccakHash = require('keccak')
28454 const secp256k1 = require('secp256k1')
28455 const assert = require('assert')
28456 const rlp = require('rlp')
28457 const BN = require('bn.js')
28458 const createHash = require('create-hash')
28459 Object.assign(exports, require('ethjs-util'))
28462 * the max integer that this VM can handle (a ```BN```)
28463 * @var {BN} MAX_INTEGER
28465 exports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
16)
28468 *
2^
256 (a ```BN```)
28469 * @var {BN} TWO_POW256
28471 exports.TWO_POW256 = new BN('
10000000000000000000000000000000000000000000000000000000000000000',
16)
28474 * SHA3-
256 hash of null (a ```String```)
28475 * @var {String} SHA3_NULL_S
28477 exports.SHA3_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
28480 * SHA3-
256 hash of null (a ```Buffer```)
28481 * @var {Buffer} SHA3_NULL
28483 exports.SHA3_NULL = Buffer.from(exports.SHA3_NULL_S, 'hex')
28486 * SHA3-
256 of an RLP of an empty array (a ```String```)
28487 * @var {String} SHA3_RLP_ARRAY_S
28489 exports.SHA3_RLP_ARRAY_S = '
1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'
28492 * SHA3-
256 of an RLP of an empty array (a ```Buffer```)
28493 * @var {Buffer} SHA3_RLP_ARRAY
28495 exports.SHA3_RLP_ARRAY = Buffer.from(exports.SHA3_RLP_ARRAY_S, 'hex')
28498 * SHA3-
256 hash of the RLP of null (a ```String```)
28499 * @var {String} SHA3_RLP_S
28501 exports.SHA3_RLP_S = '
56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'
28504 * SHA3-
256 hash of the RLP of null (a ```Buffer```)
28505 * @var {Buffer} SHA3_RLP
28507 exports.SHA3_RLP = Buffer.from(exports.SHA3_RLP_S, 'hex')
28510 * [`BN`](https://github.com/indutny/bn.js)
28516 * [`rlp`](https://github.com/ethereumjs/rlp)
28522 * [`secp256k1`](https://github.com/cryptocoinjs/secp256k1-node/)
28525 exports.secp256k1 = secp256k1
28528 * Returns a buffer filled with
0s
28530 * @param {Number} bytes the number of bytes the buffer should be
28533 exports.zeros = function (bytes) {
28534 return Buffer.allocUnsafe(bytes).fill(
0)
28538 * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
28539 * Or it truncates the beginning if it exceeds.
28540 * @method lsetLength
28541 * @param {Buffer|Array} msg the value to pad
28542 * @param {Number} length the number of bytes the output should be
28543 * @param {Boolean} [right=false] whether to start padding form the left or right
28544 * @return {Buffer|Array}
28546 exports.setLengthLeft = exports.setLength = function (msg, length, right) {
28547 var buf = exports.zeros(length)
28548 msg = exports.toBuffer(msg)
28550 if (msg.length < length) {
28554 return msg.slice(
0, length)
28556 if (msg.length < length) {
28557 msg.copy(buf, length - msg.length)
28560 return msg.slice(-length)
28565 * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
28566 * Or it truncates the beginning if it exceeds.
28567 * @param {Buffer|Array} msg the value to pad
28568 * @param {Number} length the number of bytes the output should be
28569 * @return {Buffer|Array}
28571 exports.setLengthRight = function (msg, length) {
28572 return exports.setLength(msg, length, true)
28576 * Trims leading zeros from a `Buffer` or an `Array`
28577 * @param {Buffer|Array|String} a
28578 * @return {Buffer|Array|String}
28580 exports.unpad = exports.stripZeros = function (a) {
28581 a = exports.stripHexPrefix(a)
28583 while (a.length
> 0 && first.toString() === '
0') {
28590 * Attempts to turn a value into a `Buffer`. As input it supports `Buffer`, `String`, `Number`, null/undefined, `BN` and other objects with a `toArray()` method.
28591 * @param {*} v the value
28593 exports.toBuffer = function (v) {
28594 if (!Buffer.isBuffer(v)) {
28595 if (Array.isArray(v)) {
28597 } else if (typeof v === 'string') {
28598 if (exports.isHexPrefixed(v)) {
28599 v = Buffer.from(exports.padToEven(exports.stripHexPrefix(v)), 'hex')
28603 } else if (typeof v === 'number') {
28604 v = exports.intToBuffer(v)
28605 } else if (v === null || v === undefined) {
28606 v = Buffer.allocUnsafe(
0)
28607 } else if (v.toArray) {
28608 // converts a BN to a Buffer
28609 v = Buffer.from(v.toArray())
28611 throw new Error('invalid type')
28618 * Converts a `Buffer` to a `Number`
28619 * @param {Buffer} buf
28621 * @throws If the input number exceeds
53 bits.
28623 exports.bufferToInt = function (buf) {
28624 return new BN(exports.toBuffer(buf)).toNumber()
28628 * Converts a `Buffer` into a hex `String`
28629 * @param {Buffer} buf
28632 exports.bufferToHex = function (buf) {
28633 buf = exports.toBuffer(buf)
28634 return '
0x' + buf.toString('hex')
28638 * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes
256-bit numbers.
28639 * @param {Buffer} num
28642 exports.fromSigned = function (num) {
28643 return new BN(num).fromTwos(
256)
28647 * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes
256-bit numbers.
28651 exports.toUnsigned = function (num) {
28652 return Buffer.from(num.toTwos(
256).toArray())
28656 * Creates SHA-
3 hash of the input
28657 * @param {Buffer|Array|String|Number} a the input data
28658 * @param {Number} [bits=
256] the SHA width
28661 exports.sha3 = function (a, bits) {
28662 a = exports.toBuffer(a)
28663 if (!bits) bits =
256
28665 return createKeccakHash('keccak' + bits).update(a).digest()
28669 * Creates SHA256 hash of the input
28670 * @param {Buffer|Array|String|Number} a the input data
28673 exports.sha256 = function (a) {
28674 a = exports.toBuffer(a)
28675 return createHash('sha256').update(a).digest()
28679 * Creates RIPEMD160 hash of the input
28680 * @param {Buffer|Array|String|Number} a the input data
28681 * @param {Boolean} padded whether it should be padded to
256 bits or not
28684 exports.ripemd160 = function (a, padded) {
28685 a = exports.toBuffer(a)
28686 var hash = createHash('rmd160').update(a).digest()
28687 if (padded === true) {
28688 return exports.setLength(hash,
32)
28695 * Creates SHA-
3 hash of the RLP encoded version of the input
28696 * @param {Buffer|Array|String|Number} a the input data
28699 exports.rlphash = function (a) {
28700 return exports.sha3(rlp.encode(a))
28704 * Checks if the private key satisfies the rules of the curve secp256k1.
28705 * @param {Buffer} privateKey
28706 * @return {Boolean}
28708 exports.isValidPrivate = function (privateKey) {
28709 return secp256k1.privateKeyVerify(privateKey)
28713 * Checks if the public key satisfies the rules of the curve secp256k1
28714 * and the requirements of Ethereum.
28715 * @param {Buffer} publicKey The two points of an uncompressed key, unless sanitize is enabled
28716 * @param {Boolean} [sanitize=false] Accept public keys in other formats
28717 * @return {Boolean}
28719 exports.isValidPublic = function (publicKey, sanitize) {
28720 if (publicKey.length ===
64) {
28721 // Convert to SEC1 for secp256k1
28722 return secp256k1.publicKeyVerify(Buffer.concat([ Buffer.from([
4]), publicKey ]))
28729 return secp256k1.publicKeyVerify(publicKey)
28733 * Returns the ethereum address of a given public key.
28734 * Accepts
"Ethereum public keys" and SEC1 encoded keys.
28735 * @param {Buffer} pubKey The two points of an uncompressed key, unless sanitize is enabled
28736 * @param {Boolean} [sanitize=false] Accept public keys in other formats
28739 exports.pubToAddress = exports.publicToAddress = function (pubKey, sanitize) {
28740 pubKey = exports.toBuffer(pubKey)
28741 if (sanitize && (pubKey.length !==
64)) {
28742 pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(
1)
28744 assert(pubKey.length ===
64)
28745 // Only take the lower
160bits of the hash
28746 return exports.sha3(pubKey).slice(-
20)
28750 * Returns the ethereum public key of a given private key
28751 * @param {Buffer} privateKey A private key must be
256 bits wide
28754 var privateToPublic = exports.privateToPublic = function (privateKey) {
28755 privateKey = exports.toBuffer(privateKey)
28756 // skip the type flag and use the X, Y points
28757 return secp256k1.publicKeyCreate(privateKey, false).slice(
1)
28761 * Converts a public key to the Ethereum format.
28762 * @param {Buffer} publicKey
28765 exports.importPublic = function (publicKey) {
28766 publicKey = exports.toBuffer(publicKey)
28767 if (publicKey.length !==
64) {
28768 publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(
1)
28775 * @param {Buffer} msgHash
28776 * @param {Buffer} privateKey
28779 exports.ecsign = function (msgHash, privateKey) {
28780 var sig = secp256k1.sign(msgHash, privateKey)
28783 ret.r = sig.signature.slice(
0,
32)
28784 ret.s = sig.signature.slice(
32,
64)
28785 ret.v = sig.recovery +
27
28790 * Returns the keccak-
256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
28791 * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
28792 * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
28793 * used to produce the signature.
28795 * @returns {Buffer} hash
28797 exports.hashPersonalMessage = function (message) {
28798 var prefix = exports.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString())
28799 return exports.sha3(Buffer.concat([prefix, message]))
28803 * ECDSA public key recovery from signature
28804 * @param {Buffer} msgHash
28805 * @param {Number} v
28806 * @param {Buffer} r
28807 * @param {Buffer} s
28808 * @return {Buffer} publicKey
28810 exports.ecrecover = function (msgHash, v, r, s) {
28811 var signature = Buffer.concat([exports.setLength(r,
32), exports.setLength(s,
32)],
64)
28812 var recovery = v -
27
28813 if (recovery !==
0 && recovery !==
1) {
28814 throw new Error('Invalid signature v value')
28816 var senderPubKey = secp256k1.recover(msgHash, signature, recovery)
28817 return secp256k1.publicKeyConvert(senderPubKey, false).slice(
1)
28821 * Convert signature parameters into the format of `eth_sign` RPC method
28822 * @param {Number} v
28823 * @param {Buffer} r
28824 * @param {Buffer} s
28825 * @return {String} sig
28827 exports.toRpcSig = function (v, r, s) {
28828 // NOTE: with potential introduction of chainId this might need to be updated
28829 if (v !==
27 && v !==
28) {
28830 throw new Error('Invalid recovery id')
28833 // geth (and the RPC eth_sign method) uses the
65 byte format used by Bitcoin
28834 // FIXME: this might change in the future - https://github.com/ethereum/go-ethereum/issues/
2053
28835 return exports.bufferToHex(Buffer.concat([
28836 exports.setLengthLeft(r,
32),
28837 exports.setLengthLeft(s,
32),
28838 exports.toBuffer(v -
27)
28843 * Convert signature format of the `eth_sign` RPC method to signature parameters
28844 * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/
2053
28845 * @param {String} sig
28848 exports.fromRpcSig = function (sig) {
28849 sig = exports.toBuffer(sig)
28851 // NOTE: with potential introduction of chainId this might need to be updated
28852 if (sig.length !==
65) {
28853 throw new Error('Invalid signature length')
28857 // support both versions of `eth_sign` responses
28864 r: sig.slice(
0,
32),
28865 s: sig.slice(
32,
64)
28870 * Returns the ethereum address of a given private key
28871 * @param {Buffer} privateKey A private key must be
256 bits wide
28874 exports.privateToAddress = function (privateKey) {
28875 return exports.publicToAddress(privateToPublic(privateKey))
28879 * Checks if the address is a valid. Accepts checksummed addresses too
28880 * @param {String} address
28881 * @return {Boolean}
28883 exports.isValidAddress = function (address) {
28884 return /^
0x[
0-
9a-fA-F]{
40}$/i.test(address)
28888 * Returns a checksummed address
28889 * @param {String} address
28892 exports.toChecksumAddress = function (address) {
28893 address = exports.stripHexPrefix(address).toLowerCase()
28894 var hash = exports.sha3(address).toString('hex')
28897 for (var i =
0; i < address.length; i++) {
28898 if (parseInt(hash[i],
16)
>=
8) {
28899 ret += address[i].toUpperCase()
28909 * Checks if the address is a valid checksummed address
28910 * @param {Buffer} address
28911 * @return {Boolean}
28913 exports.isValidChecksumAddress = function (address) {
28914 return exports.isValidAddress(address) && (exports.toChecksumAddress(address) === address)
28918 * Generates an address of a newly created contract
28919 * @param {Buffer} from the address which is creating this new address
28920 * @param {Buffer} nonce the nonce of the from account
28923 exports.generateAddress = function (from, nonce) {
28924 from = exports.toBuffer(from)
28925 nonce = new BN(nonce)
28927 if (nonce.isZero()) {
28928 // in RLP we want to encode null in the case of zero nonce
28929 // read the RLP documentation for an answer if you dare
28932 nonce = Buffer.from(nonce.toArray())
28935 // Only take the lower
160bits of the hash
28936 return exports.rlphash([from, nonce]).slice(-
20)
28940 * Returns true if the supplied address belongs to a precompiled account
28941 * @param {Buffer|String} address
28942 * @return {Boolean}
28944 exports.isPrecompiled = function (address) {
28945 var a = exports.unpad(address)
28946 return a.length ===
1 && a[
0]
> 0 && a[
0] <
5
28950 * Adds
"0x" to a given `String` if it does not already start with
"0x"
28951 * @param {String} str
28954 exports.addHexPrefix = function (str) {
28955 if (typeof str !== 'string') {
28959 return exports.isHexPrefixed(str) ? str : '
0x' + str
28963 * Validate ECDSA signature
28964 * @method isValidSignature
28965 * @param {Buffer} v
28966 * @param {Buffer} r
28967 * @param {Buffer} s
28968 * @param {Boolean} [homestead=true]
28969 * @return {Boolean}
28972 exports.isValidSignature = function (v, r, s, homestead) {
28973 const SECP256K1_N_DIV_2 = new BN('
7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0',
16)
28974 const SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141',
16)
28976 if (r.length !==
32 || s.length !==
32) {
28980 if (v !==
27 && v !==
28) {
28987 if (r.isZero() || r.gt(SECP256K1_N) || s.isZero() || s.gt(SECP256K1_N)) {
28991 if ((homestead === false) && (new BN(s).cmp(SECP256K1_N_DIV_2) ===
1)) {
28999 * Converts a `Buffer` or `Array` to JSON
29000 * @param {Buffer|Array} ba
29001 * @return {Array|String|null}
29003 exports.baToJSON = function (ba) {
29004 if (Buffer.isBuffer(ba)) {
29005 return '
0x' + ba.toString('hex')
29006 } else if (ba instanceof Array) {
29008 for (var i =
0; i < ba.length; i++) {
29009 array.push(exports.baToJSON(ba[i]))
29016 * Defines properties on a `Object`. It make the assumption that underlying data is binary.
29017 * @param {Object} self the `Object` to define properties on
29018 * @param {Array} fields an array fields to define. Fields can contain:
29019 * * `name` - the name of the properties
29020 * * `length` - the number of bytes the field can have
29021 * * `allowLess` - if the field can be less than the length
29023 * @param {*} data data to be validated against the definitions
29025 exports.defineProperties = function (self, fields, data) {
29029 // attach the `toJSON`
29030 self.toJSON = function (label) {
29033 self._fields.forEach(function (field) {
29034 obj[field] = '
0x' + self[field].toString('hex')
29038 return exports.baToJSON(this.raw)
29041 self.serialize = function serialize () {
29042 return rlp.encode(self.raw)
29045 fields.forEach(function (field, i) {
29046 self._fields.push(field.name)
29047 function getter () {
29050 function setter (v) {
29051 v = exports.toBuffer(v)
29053 if (v.toString('hex') === '
00' && !field.allowZero) {
29054 v = Buffer.allocUnsafe(
0)
29057 if (field.allowLess && field.length) {
29058 v = exports.stripZeros(v)
29059 assert(field.length
>= v.length, 'The field ' + field.name + ' must not have more ' + field.length + ' bytes')
29060 } else if (!(field.allowZero && v.length ===
0) && field.length) {
29061 assert(field.length === v.length, 'The field ' + field.name + ' must have byte length of ' + field.length)
29067 Object.defineProperty(self, field.name, {
29069 configurable: true,
29074 if (field.default) {
29075 self[field.name] = field.default
29080 Object.defineProperty(self, field.alias, {
29082 configurable: true,
29089 // if the constuctor is passed data
29091 if (typeof data === 'string') {
29092 data = Buffer.from(exports.stripHexPrefix(data), 'hex')
29095 if (Buffer.isBuffer(data)) {
29096 data = rlp.decode(data)
29099 if (Array.isArray(data)) {
29100 if (data.length
> self._fields.length) {
29101 throw (new Error('wrong number of fields in data'))
29104 // make sure all the items are buffers
29105 data.forEach(function (d, i) {
29106 self[self._fields[i]] = exports.toBuffer(d)
29108 } else if (typeof data === 'object') {
29109 const keys = Object.keys(data)
29110 fields.forEach(function (field) {
29111 if (keys.indexOf(field.name) !== -
1) self[field.name] = data[field.name]
29112 if (keys.indexOf(field.alias) !== -
1) self[field.alias] = data[field.alias]
29115 throw new Error('invalid data')
29120 }).call(this,require("buffer").Buffer)
29121 },{"assert":
1,"bn.js":
33,"buffer":
5,"create-hash":
36,"ethjs-util":
56,"keccak":
65,"rlp":
72,"secp256k1":
73}],
32:[function(require,module,exports){
29122 (function (Buffer){
29123 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
29124 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
29125 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
29127 function check (buffer) {
29128 if (buffer.length <
8) return false
29129 if (buffer.length
> 72) return false
29130 if (buffer[
0] !==
0x30) return false
29131 if (buffer[
1] !== buffer.length -
2) return false
29132 if (buffer[
2] !==
0x02) return false
29134 var lenR = buffer[
3]
29135 if (lenR ===
0) return false
29136 if (
5 + lenR
>= buffer.length) return false
29137 if (buffer[
4 + lenR] !==
0x02) return false
29139 var lenS = buffer[
5 + lenR]
29140 if (lenS ===
0) return false
29141 if ((
6 + lenR + lenS) !== buffer.length) return false
29143 if (buffer[
4] &
0x80) return false
29144 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
29146 if (buffer[lenR +
6] &
0x80) return false
29147 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
29151 function decode (buffer) {
29152 if (buffer.length <
8) throw new Error('DER sequence length is too short')
29153 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
29154 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
29155 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
29156 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
29158 var lenR = buffer[
3]
29159 if (lenR ===
0) throw new Error('R length is zero')
29160 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
29161 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
29163 var lenS = buffer[
5 + lenR]
29164 if (lenS ===
0) throw new Error('S length is zero')
29165 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
29167 if (buffer[
4] &
0x80) throw new Error('R value is negative')
29168 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
29170 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
29171 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
29173 // non-BIP66 - extract R, S values
29175 r: buffer.slice(
4,
4 + lenR),
29176 s: buffer.slice(
6 + lenR)
29181 * Expects r and s to be positive DER integers.
29183 * The DER format uses the most significant bit as a sign bit (&
0x80).
29184 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
29199 *
62300 =
> 0x00f35c
29200 * -
62300 =
> 0xff0ca4
29202 function encode (r, s) {
29203 var lenR = r.length
29204 var lenS = s.length
29205 if (lenR ===
0) throw new Error('R length is zero')
29206 if (lenS ===
0) throw new Error('S length is zero')
29207 if (lenR
> 33) throw new Error('R length is too long')
29208 if (lenS
> 33) throw new Error('S length is too long')
29209 if (r[
0] &
0x80) throw new Error('R value is negative')
29210 if (s[
0] &
0x80) throw new Error('S value is negative')
29211 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
29212 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
29214 var signature = new Buffer(
6 + lenR + lenS)
29216 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
29217 signature[
0] =
0x30
29218 signature[
1] = signature.length -
2
29219 signature[
2] =
0x02
29220 signature[
3] = r.length
29221 r.copy(signature,
4)
29222 signature[
4 + lenR] =
0x02
29223 signature[
5 + lenR] = s.length
29224 s.copy(signature,
6 + lenR)
29235 }).call(this,require(
"buffer").Buffer)
29236 },{
"buffer":
5}],
33:[function(require,module,exports){
29237 (function (module, exports) {
29241 function assert (val, msg) {
29242 if (!val) throw new Error(msg || 'Assertion failed');
29245 // Could use `inherits` module, but don't want to move from single file
29246 // architecture yet.
29247 function inherits (ctor, superCtor) {
29248 ctor.super_ = superCtor;
29249 var TempCtor = function () {};
29250 TempCtor.prototype = superCtor.prototype;
29251 ctor.prototype = new TempCtor();
29252 ctor.prototype.constructor = ctor;
29257 function BN (number, base, endian) {
29258 if (BN.isBN(number)) {
29266 // Reduction context
29269 if (number !== null) {
29270 if (base === 'le' || base === 'be') {
29275 this._init(number ||
0, base ||
10, endian || 'be');
29278 if (typeof module === 'object') {
29279 module.exports = BN;
29289 Buffer = require('buf' + 'fer').Buffer;
29293 BN.isBN = function isBN (num) {
29294 if (num instanceof BN) {
29298 return num !== null && typeof num === 'object' &&
29299 num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
29302 BN.max = function max (left, right) {
29303 if (left.cmp(right)
> 0) return left;
29307 BN.min = function min (left, right) {
29308 if (left.cmp(right) <
0) return left;
29312 BN.prototype._init = function init (number, base, endian) {
29313 if (typeof number === 'number') {
29314 return this._initNumber(number, base, endian);
29317 if (typeof number === 'object') {
29318 return this._initArray(number, base, endian);
29321 if (base === 'hex') {
29324 assert(base === (base |
0) && base
>=
2 && base <=
36);
29326 number = number.toString().replace(/\s+/g, '');
29328 if (number[
0] === '-') {
29333 this._parseHex(number, start);
29335 this._parseBase(number, base, start);
29338 if (number[
0] === '-') {
29344 if (endian !== 'le') return;
29346 this._initArray(this.toArray(), base, endian);
29349 BN.prototype._initNumber = function _initNumber (number, base, endian) {
29354 if (number <
0x4000000) {
29355 this.words = [ number &
0x3ffffff ];
29357 } else if (number <
0x10000000000000) {
29359 number &
0x3ffffff,
29360 (number /
0x4000000) &
0x3ffffff
29364 assert(number <
0x20000000000000); //
2 ^
53 (unsafe)
29366 number &
0x3ffffff,
29367 (number /
0x4000000) &
0x3ffffff,
29373 if (endian !== 'le') return;
29375 // Reverse the bytes
29376 this._initArray(this.toArray(), base, endian);
29379 BN.prototype._initArray = function _initArray (number, base, endian) {
29380 // Perhaps a Uint8Array
29381 assert(typeof number.length === 'number');
29382 if (number.length <=
0) {
29383 this.words = [
0 ];
29388 this.length = Math.ceil(number.length /
3);
29389 this.words = new Array(this.length);
29390 for (var i =
0; i < this.length; i++) {
29396 if (endian === 'be') {
29397 for (i = number.length -
1, j =
0; i
>=
0; i -=
3) {
29398 w = number[i] | (number[i -
1] <<
8) | (number[i -
2] <<
16);
29399 this.words[j] |= (w << off) &
0x3ffffff;
29400 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
29407 } else if (endian === 'le') {
29408 for (i =
0, j =
0; i < number.length; i +=
3) {
29409 w = number[i] | (number[i +
1] <<
8) | (number[i +
2] <<
16);
29410 this.words[j] |= (w << off) &
0x3ffffff;
29411 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
29419 return this.strip();
29422 function parseHex (str, start, end) {
29424 var len = Math.min(str.length, end);
29425 for (var i = start; i < len; i++) {
29426 var c = str.charCodeAt(i) -
48;
29431 if (c
>=
49 && c <=
54) {
29435 } else if (c
>=
17 && c <=
22) {
29446 BN.prototype._parseHex = function _parseHex (number, start) {
29447 // Create possibly bigger array to ensure that it fits the number
29448 this.length = Math.ceil((number.length - start) /
6);
29449 this.words = new Array(this.length);
29450 for (var i =
0; i < this.length; i++) {
29455 // Scan
24-bit chunks and add them to the number
29457 for (i = number.length -
6, j =
0; i
>= start; i -=
6) {
29458 w = parseHex(number, i, i +
6);
29459 this.words[j] |= (w << off) &
0x3ffffff;
29460 // NOTE: `
0x3fffff` is intentional here,
26bits max shift +
24bit hex limb
29461 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
29468 if (i +
6 !== start) {
29469 w = parseHex(number, start, i +
6);
29470 this.words[j] |= (w << off) &
0x3ffffff;
29471 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
29476 function parseBase (str, start, end, mul) {
29478 var len = Math.min(str.length, end);
29479 for (var i = start; i < len; i++) {
29480 var c = str.charCodeAt(i) -
48;
29489 } else if (c
>=
17) {
29500 BN.prototype._parseBase = function _parseBase (number, base, start) {
29501 // Initialize as zero
29502 this.words = [
0 ];
29505 // Find length of limb in base
29506 for (var limbLen =
0, limbPow =
1; limbPow <=
0x3ffffff; limbPow *= base) {
29510 limbPow = (limbPow / base) |
0;
29512 var total = number.length - start;
29513 var mod = total % limbLen;
29514 var end = Math.min(total, total - mod) + start;
29517 for (var i = start; i < end; i += limbLen) {
29518 word = parseBase(number, i, i + limbLen, base);
29520 this.imuln(limbPow);
29521 if (this.words[
0] + word <
0x4000000) {
29522 this.words[
0] += word;
29530 word = parseBase(number, i, number.length, base);
29532 for (i =
0; i < mod; i++) {
29537 if (this.words[
0] + word <
0x4000000) {
29538 this.words[
0] += word;
29545 BN.prototype.copy = function copy (dest) {
29546 dest.words = new Array(this.length);
29547 for (var i =
0; i < this.length; i++) {
29548 dest.words[i] = this.words[i];
29550 dest.length = this.length;
29551 dest.negative = this.negative;
29552 dest.red = this.red;
29555 BN.prototype.clone = function clone () {
29556 var r = new BN(null);
29561 BN.prototype._expand = function _expand (size) {
29562 while (this.length < size) {
29563 this.words[this.length++] =
0;
29568 // Remove leading `
0` from `this`
29569 BN.prototype.strip = function strip () {
29570 while (this.length
> 1 && this.words[this.length -
1] ===
0) {
29573 return this._normSign();
29576 BN.prototype._normSign = function _normSign () {
29578 if (this.length ===
1 && this.words[
0] ===
0) {
29584 BN.prototype.inspect = function inspect () {
29585 return (this.red ? '
<BN-R: ' : '
<BN: ') + this.toString(
16) + '
>';
29591 var groupSizes = [];
29592 var groupBases = [];
29596 while (++i < BN.wordSize) {
29605 while (++base <
36 +
1) {
29608 while (groupBase < (
1 << BN.wordSize) / base) {
29612 groupSizes[base] = groupSize;
29613 groupBases[base] = groupBase;
29635 '
0000000000000000',
29636 '
00000000000000000',
29637 '
000000000000000000',
29638 '
0000000000000000000',
29639 '
00000000000000000000',
29640 '
000000000000000000000',
29641 '
0000000000000000000000',
29642 '
00000000000000000000000',
29643 '
000000000000000000000000',
29644 '
0000000000000000000000000'
29649 25,
16,
12,
11,
10,
9,
8,
29650 8,
7,
7,
7,
7,
6,
6,
29651 6,
6,
6,
6,
6,
5,
5,
29652 5,
5,
5,
5,
5,
5,
5,
29653 5,
5,
5,
5,
5,
5,
5
29658 33554432,
43046721,
16777216,
48828125,
60466176,
40353607,
16777216,
29659 43046721,
10000000,
19487171,
35831808,
62748517,
7529536,
11390625,
29660 16777216,
24137569,
34012224,
47045881,
64000000,
4084101,
5153632,
29661 6436343,
7962624,
9765625,
11881376,
14348907,
17210368,
20511149,
29662 24300000,
28629151,
33554432,
39135393,
45435424,
52521875,
60466176
29665 BN.prototype.toString = function toString (base, padding) {
29667 padding = padding |
0 ||
1;
29670 if (base ===
16 || base === 'hex') {
29674 for (var i =
0; i < this.length; i++) {
29675 var w = this.words[i];
29676 var word = (((w << off) | carry) &
0xffffff).toString(
16);
29677 carry = (w
>>> (
24 - off)) &
0xffffff;
29678 if (carry !==
0 || i !== this.length -
1) {
29679 out = zeros[
6 - word.length] + word + out;
29690 out = carry.toString(
16) + out;
29692 while (out.length % padding !==
0) {
29695 if (this.negative !==
0) {
29701 if (base === (base |
0) && base
>=
2 && base <=
36) {
29702 // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
29703 var groupSize = groupSizes[base];
29704 // var groupBase = Math.pow(base, groupSize);
29705 var groupBase = groupBases[base];
29707 var c = this.clone();
29709 while (!c.isZero()) {
29710 var r = c.modn(groupBase).toString(base);
29711 c = c.idivn(groupBase);
29714 out = zeros[groupSize - r.length] + r + out;
29719 if (this.isZero()) {
29722 while (out.length % padding !==
0) {
29725 if (this.negative !==
0) {
29731 assert(false, 'Base should be between
2 and
36');
29734 BN.prototype.toNumber = function toNumber () {
29735 var ret = this.words[
0];
29736 if (this.length ===
2) {
29737 ret += this.words[
1] *
0x4000000;
29738 } else if (this.length ===
3 && this.words[
2] ===
0x01) {
29739 // NOTE: at this stage it is known that the top bit is set
29740 ret +=
0x10000000000000 + (this.words[
1] *
0x4000000);
29741 } else if (this.length
> 2) {
29742 assert(false, 'Number can only safely store up to
53 bits');
29744 return (this.negative !==
0) ? -ret : ret;
29747 BN.prototype.toJSON = function toJSON () {
29748 return this.toString(
16);
29751 BN.prototype.toBuffer = function toBuffer (endian, length) {
29752 assert(typeof Buffer !== 'undefined');
29753 return this.toArrayLike(Buffer, endian, length);
29756 BN.prototype.toArray = function toArray (endian, length) {
29757 return this.toArrayLike(Array, endian, length);
29760 BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
29761 var byteLength = this.byteLength();
29762 var reqLength = length || Math.max(
1, byteLength);
29763 assert(byteLength <= reqLength, 'byte array longer than desired length');
29764 assert(reqLength
> 0, 'Requested array length <=
0');
29767 var littleEndian = endian === 'le';
29768 var res = new ArrayType(reqLength);
29771 var q = this.clone();
29772 if (!littleEndian) {
29773 // Assume big-endian
29774 for (i =
0; i < reqLength - byteLength; i++) {
29778 for (i =
0; !q.isZero(); i++) {
29782 res[reqLength - i -
1] = b;
29785 for (i =
0; !q.isZero(); i++) {
29792 for (; i < reqLength; i++) {
29801 BN.prototype._countBits = function _countBits (w) {
29802 return
32 - Math.clz32(w);
29805 BN.prototype._countBits = function _countBits (w) {
29828 BN.prototype._zeroBits = function _zeroBits (w) {
29830 if (w ===
0) return
26;
29834 if ((t &
0x1fff) ===
0) {
29838 if ((t &
0x7f) ===
0) {
29842 if ((t &
0xf) ===
0) {
29846 if ((t &
0x3) ===
0) {
29850 if ((t &
0x1) ===
0) {
29856 // Return number of used bits in a BN
29857 BN.prototype.bitLength = function bitLength () {
29858 var w = this.words[this.length -
1];
29859 var hi = this._countBits(w);
29860 return (this.length -
1) *
26 + hi;
29863 function toBitArray (num) {
29864 var w = new Array(num.bitLength());
29866 for (var bit =
0; bit < w.length; bit++) {
29867 var off = (bit /
26) |
0;
29868 var wbit = bit %
26;
29870 w[bit] = (num.words[off] & (
1 << wbit))
>>> wbit;
29876 // Number of trailing zero bits
29877 BN.prototype.zeroBits = function zeroBits () {
29878 if (this.isZero()) return
0;
29881 for (var i =
0; i < this.length; i++) {
29882 var b = this._zeroBits(this.words[i]);
29884 if (b !==
26) break;
29889 BN.prototype.byteLength = function byteLength () {
29890 return Math.ceil(this.bitLength() /
8);
29893 BN.prototype.toTwos = function toTwos (width) {
29894 if (this.negative !==
0) {
29895 return this.abs().inotn(width).iaddn(
1);
29897 return this.clone();
29900 BN.prototype.fromTwos = function fromTwos (width) {
29901 if (this.testn(width -
1)) {
29902 return this.notn(width).iaddn(
1).ineg();
29904 return this.clone();
29907 BN.prototype.isNeg = function isNeg () {
29908 return this.negative !==
0;
29911 // Return negative clone of `this`
29912 BN.prototype.neg = function neg () {
29913 return this.clone().ineg();
29916 BN.prototype.ineg = function ineg () {
29917 if (!this.isZero()) {
29918 this.negative ^=
1;
29924 // Or `num` with `this` in-place
29925 BN.prototype.iuor = function iuor (num) {
29926 while (this.length < num.length) {
29927 this.words[this.length++] =
0;
29930 for (var i =
0; i < num.length; i++) {
29931 this.words[i] = this.words[i] | num.words[i];
29934 return this.strip();
29937 BN.prototype.ior = function ior (num) {
29938 assert((this.negative | num.negative) ===
0);
29939 return this.iuor(num);
29942 // Or `num` with `this`
29943 BN.prototype.or = function or (num) {
29944 if (this.length
> num.length) return this.clone().ior(num);
29945 return num.clone().ior(this);
29948 BN.prototype.uor = function uor (num) {
29949 if (this.length
> num.length) return this.clone().iuor(num);
29950 return num.clone().iuor(this);
29953 // And `num` with `this` in-place
29954 BN.prototype.iuand = function iuand (num) {
29955 // b = min-length(num, this)
29957 if (this.length
> num.length) {
29963 for (var i =
0; i < b.length; i++) {
29964 this.words[i] = this.words[i] & num.words[i];
29967 this.length = b.length;
29969 return this.strip();
29972 BN.prototype.iand = function iand (num) {
29973 assert((this.negative | num.negative) ===
0);
29974 return this.iuand(num);
29977 // And `num` with `this`
29978 BN.prototype.and = function and (num) {
29979 if (this.length
> num.length) return this.clone().iand(num);
29980 return num.clone().iand(this);
29983 BN.prototype.uand = function uand (num) {
29984 if (this.length
> num.length) return this.clone().iuand(num);
29985 return num.clone().iuand(this);
29988 // Xor `num` with `this` in-place
29989 BN.prototype.iuxor = function iuxor (num) {
29990 // a.length
> b.length
29993 if (this.length
> num.length) {
30001 for (var i =
0; i < b.length; i++) {
30002 this.words[i] = a.words[i] ^ b.words[i];
30006 for (; i < a.length; i++) {
30007 this.words[i] = a.words[i];
30011 this.length = a.length;
30013 return this.strip();
30016 BN.prototype.ixor = function ixor (num) {
30017 assert((this.negative | num.negative) ===
0);
30018 return this.iuxor(num);
30021 // Xor `num` with `this`
30022 BN.prototype.xor = function xor (num) {
30023 if (this.length
> num.length) return this.clone().ixor(num);
30024 return num.clone().ixor(this);
30027 BN.prototype.uxor = function uxor (num) {
30028 if (this.length
> num.length) return this.clone().iuxor(num);
30029 return num.clone().iuxor(this);
30032 // Not ``this`` with ``width`` bitwidth
30033 BN.prototype.inotn = function inotn (width) {
30034 assert(typeof width === 'number' && width
>=
0);
30036 var bytesNeeded = Math.ceil(width /
26) |
0;
30037 var bitsLeft = width %
26;
30039 // Extend the buffer with leading zeroes
30040 this._expand(bytesNeeded);
30042 if (bitsLeft
> 0) {
30046 // Handle complete words
30047 for (var i =
0; i < bytesNeeded; i++) {
30048 this.words[i] = ~this.words[i] &
0x3ffffff;
30051 // Handle the residue
30052 if (bitsLeft
> 0) {
30053 this.words[i] = ~this.words[i] & (
0x3ffffff >> (
26 - bitsLeft));
30056 // And remove leading zeroes
30057 return this.strip();
30060 BN.prototype.notn = function notn (width) {
30061 return this.clone().inotn(width);
30064 // Set `bit` of `this`
30065 BN.prototype.setn = function setn (bit, val) {
30066 assert(typeof bit === 'number' && bit
>=
0);
30068 var off = (bit /
26) |
0;
30069 var wbit = bit %
26;
30071 this._expand(off +
1);
30074 this.words[off] = this.words[off] | (
1 << wbit);
30076 this.words[off] = this.words[off] & ~(
1 << wbit);
30079 return this.strip();
30082 // Add `num` to `this` in-place
30083 BN.prototype.iadd = function iadd (num) {
30086 // negative + positive
30087 if (this.negative !==
0 && num.negative ===
0) {
30089 r = this.isub(num);
30090 this.negative ^=
1;
30091 return this._normSign();
30093 // positive + negative
30094 } else if (this.negative ===
0 && num.negative !==
0) {
30096 r = this.isub(num);
30098 return r._normSign();
30101 // a.length
> b.length
30103 if (this.length
> num.length) {
30112 for (var i =
0; i < b.length; i++) {
30113 r = (a.words[i] |
0) + (b.words[i] |
0) + carry;
30114 this.words[i] = r &
0x3ffffff;
30117 for (; carry !==
0 && i < a.length; i++) {
30118 r = (a.words[i] |
0) + carry;
30119 this.words[i] = r &
0x3ffffff;
30123 this.length = a.length;
30125 this.words[this.length] = carry;
30127 // Copy the rest of the words
30128 } else if (a !== this) {
30129 for (; i < a.length; i++) {
30130 this.words[i] = a.words[i];
30137 // Add `num` to `this`
30138 BN.prototype.add = function add (num) {
30140 if (num.negative !==
0 && this.negative ===
0) {
30142 res = this.sub(num);
30145 } else if (num.negative ===
0 && this.negative !==
0) {
30147 res = num.sub(this);
30152 if (this.length
> num.length) return this.clone().iadd(num);
30154 return num.clone().iadd(this);
30157 // Subtract `num` from `this` in-place
30158 BN.prototype.isub = function isub (num) {
30159 // this - (-num) = this + num
30160 if (num.negative !==
0) {
30162 var r = this.iadd(num);
30164 return r._normSign();
30166 // -this - num = -(this + num)
30167 } else if (this.negative !==
0) {
30171 return this._normSign();
30174 // At this point both numbers are positive
30175 var cmp = this.cmp(num);
30177 // Optimization - zeroify
30196 for (var i =
0; i < b.length; i++) {
30197 r = (a.words[i] |
0) - (b.words[i] |
0) + carry;
30199 this.words[i] = r &
0x3ffffff;
30201 for (; carry !==
0 && i < a.length; i++) {
30202 r = (a.words[i] |
0) + carry;
30204 this.words[i] = r &
0x3ffffff;
30207 // Copy rest of the words
30208 if (carry ===
0 && i < a.length && a !== this) {
30209 for (; i < a.length; i++) {
30210 this.words[i] = a.words[i];
30214 this.length = Math.max(this.length, i);
30220 return this.strip();
30223 // Subtract `num` from `this`
30224 BN.prototype.sub = function sub (num) {
30225 return this.clone().isub(num);
30228 function smallMulTo (self, num, out) {
30229 out.negative = num.negative ^ self.negative;
30230 var len = (self.length + num.length) |
0;
30232 len = (len -
1) |
0;
30234 // Peel one iteration (compiler can't do it, because of code complexity)
30235 var a = self.words[
0] |
0;
30236 var b = num.words[
0] |
0;
30239 var lo = r &
0x3ffffff;
30240 var carry = (r /
0x4000000) |
0;
30243 for (var k =
1; k < len; k++) {
30244 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
30245 // note that ncarry could be
>=
0x3ffffff
30246 var ncarry = carry
>>> 26;
30247 var rword = carry &
0x3ffffff;
30248 var maxJ = Math.min(k, num.length -
1);
30249 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
30250 var i = (k - j) |
0;
30251 a = self.words[i] |
0;
30252 b = num.words[j] |
0;
30254 ncarry += (r /
0x4000000) |
0;
30255 rword = r &
0x3ffffff;
30257 out.words[k] = rword |
0;
30258 carry = ncarry |
0;
30261 out.words[k] = carry |
0;
30266 return out.strip();
30269 // TODO(indutny): it may be reasonable to omit it for users who don't need
30270 // to work with
256-bit numbers, otherwise it gives
20% improvement for
256-bit
30271 // multiplication (like elliptic secp256k1).
30272 var comb10MulTo = function comb10MulTo (self, num, out) {
30273 var a = self.words;
30281 var al0 = a0 &
0x1fff;
30282 var ah0 = a0
>>> 13;
30284 var al1 = a1 &
0x1fff;
30285 var ah1 = a1
>>> 13;
30287 var al2 = a2 &
0x1fff;
30288 var ah2 = a2
>>> 13;
30290 var al3 = a3 &
0x1fff;
30291 var ah3 = a3
>>> 13;
30293 var al4 = a4 &
0x1fff;
30294 var ah4 = a4
>>> 13;
30296 var al5 = a5 &
0x1fff;
30297 var ah5 = a5
>>> 13;
30299 var al6 = a6 &
0x1fff;
30300 var ah6 = a6
>>> 13;
30302 var al7 = a7 &
0x1fff;
30303 var ah7 = a7
>>> 13;
30305 var al8 = a8 &
0x1fff;
30306 var ah8 = a8
>>> 13;
30308 var al9 = a9 &
0x1fff;
30309 var ah9 = a9
>>> 13;
30311 var bl0 = b0 &
0x1fff;
30312 var bh0 = b0
>>> 13;
30314 var bl1 = b1 &
0x1fff;
30315 var bh1 = b1
>>> 13;
30317 var bl2 = b2 &
0x1fff;
30318 var bh2 = b2
>>> 13;
30320 var bl3 = b3 &
0x1fff;
30321 var bh3 = b3
>>> 13;
30323 var bl4 = b4 &
0x1fff;
30324 var bh4 = b4
>>> 13;
30326 var bl5 = b5 &
0x1fff;
30327 var bh5 = b5
>>> 13;
30329 var bl6 = b6 &
0x1fff;
30330 var bh6 = b6
>>> 13;
30332 var bl7 = b7 &
0x1fff;
30333 var bh7 = b7
>>> 13;
30335 var bl8 = b8 &
0x1fff;
30336 var bh8 = b8
>>> 13;
30338 var bl9 = b9 &
0x1fff;
30339 var bh9 = b9
>>> 13;
30341 out.negative = self.negative ^ num.negative;
30344 lo = Math.imul(al0, bl0);
30345 mid = Math.imul(al0, bh0);
30346 mid = (mid + Math.imul(ah0, bl0)) |
0;
30347 hi = Math.imul(ah0, bh0);
30348 var w0 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30349 c = (((hi + (mid
>>> 13)) |
0) + (w0
>>> 26)) |
0;
30352 lo = Math.imul(al1, bl0);
30353 mid = Math.imul(al1, bh0);
30354 mid = (mid + Math.imul(ah1, bl0)) |
0;
30355 hi = Math.imul(ah1, bh0);
30356 lo = (lo + Math.imul(al0, bl1)) |
0;
30357 mid = (mid + Math.imul(al0, bh1)) |
0;
30358 mid = (mid + Math.imul(ah0, bl1)) |
0;
30359 hi = (hi + Math.imul(ah0, bh1)) |
0;
30360 var w1 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30361 c = (((hi + (mid
>>> 13)) |
0) + (w1
>>> 26)) |
0;
30364 lo = Math.imul(al2, bl0);
30365 mid = Math.imul(al2, bh0);
30366 mid = (mid + Math.imul(ah2, bl0)) |
0;
30367 hi = Math.imul(ah2, bh0);
30368 lo = (lo + Math.imul(al1, bl1)) |
0;
30369 mid = (mid + Math.imul(al1, bh1)) |
0;
30370 mid = (mid + Math.imul(ah1, bl1)) |
0;
30371 hi = (hi + Math.imul(ah1, bh1)) |
0;
30372 lo = (lo + Math.imul(al0, bl2)) |
0;
30373 mid = (mid + Math.imul(al0, bh2)) |
0;
30374 mid = (mid + Math.imul(ah0, bl2)) |
0;
30375 hi = (hi + Math.imul(ah0, bh2)) |
0;
30376 var w2 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30377 c = (((hi + (mid
>>> 13)) |
0) + (w2
>>> 26)) |
0;
30380 lo = Math.imul(al3, bl0);
30381 mid = Math.imul(al3, bh0);
30382 mid = (mid + Math.imul(ah3, bl0)) |
0;
30383 hi = Math.imul(ah3, bh0);
30384 lo = (lo + Math.imul(al2, bl1)) |
0;
30385 mid = (mid + Math.imul(al2, bh1)) |
0;
30386 mid = (mid + Math.imul(ah2, bl1)) |
0;
30387 hi = (hi + Math.imul(ah2, bh1)) |
0;
30388 lo = (lo + Math.imul(al1, bl2)) |
0;
30389 mid = (mid + Math.imul(al1, bh2)) |
0;
30390 mid = (mid + Math.imul(ah1, bl2)) |
0;
30391 hi = (hi + Math.imul(ah1, bh2)) |
0;
30392 lo = (lo + Math.imul(al0, bl3)) |
0;
30393 mid = (mid + Math.imul(al0, bh3)) |
0;
30394 mid = (mid + Math.imul(ah0, bl3)) |
0;
30395 hi = (hi + Math.imul(ah0, bh3)) |
0;
30396 var w3 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30397 c = (((hi + (mid
>>> 13)) |
0) + (w3
>>> 26)) |
0;
30400 lo = Math.imul(al4, bl0);
30401 mid = Math.imul(al4, bh0);
30402 mid = (mid + Math.imul(ah4, bl0)) |
0;
30403 hi = Math.imul(ah4, bh0);
30404 lo = (lo + Math.imul(al3, bl1)) |
0;
30405 mid = (mid + Math.imul(al3, bh1)) |
0;
30406 mid = (mid + Math.imul(ah3, bl1)) |
0;
30407 hi = (hi + Math.imul(ah3, bh1)) |
0;
30408 lo = (lo + Math.imul(al2, bl2)) |
0;
30409 mid = (mid + Math.imul(al2, bh2)) |
0;
30410 mid = (mid + Math.imul(ah2, bl2)) |
0;
30411 hi = (hi + Math.imul(ah2, bh2)) |
0;
30412 lo = (lo + Math.imul(al1, bl3)) |
0;
30413 mid = (mid + Math.imul(al1, bh3)) |
0;
30414 mid = (mid + Math.imul(ah1, bl3)) |
0;
30415 hi = (hi + Math.imul(ah1, bh3)) |
0;
30416 lo = (lo + Math.imul(al0, bl4)) |
0;
30417 mid = (mid + Math.imul(al0, bh4)) |
0;
30418 mid = (mid + Math.imul(ah0, bl4)) |
0;
30419 hi = (hi + Math.imul(ah0, bh4)) |
0;
30420 var w4 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30421 c = (((hi + (mid
>>> 13)) |
0) + (w4
>>> 26)) |
0;
30424 lo = Math.imul(al5, bl0);
30425 mid = Math.imul(al5, bh0);
30426 mid = (mid + Math.imul(ah5, bl0)) |
0;
30427 hi = Math.imul(ah5, bh0);
30428 lo = (lo + Math.imul(al4, bl1)) |
0;
30429 mid = (mid + Math.imul(al4, bh1)) |
0;
30430 mid = (mid + Math.imul(ah4, bl1)) |
0;
30431 hi = (hi + Math.imul(ah4, bh1)) |
0;
30432 lo = (lo + Math.imul(al3, bl2)) |
0;
30433 mid = (mid + Math.imul(al3, bh2)) |
0;
30434 mid = (mid + Math.imul(ah3, bl2)) |
0;
30435 hi = (hi + Math.imul(ah3, bh2)) |
0;
30436 lo = (lo + Math.imul(al2, bl3)) |
0;
30437 mid = (mid + Math.imul(al2, bh3)) |
0;
30438 mid = (mid + Math.imul(ah2, bl3)) |
0;
30439 hi = (hi + Math.imul(ah2, bh3)) |
0;
30440 lo = (lo + Math.imul(al1, bl4)) |
0;
30441 mid = (mid + Math.imul(al1, bh4)) |
0;
30442 mid = (mid + Math.imul(ah1, bl4)) |
0;
30443 hi = (hi + Math.imul(ah1, bh4)) |
0;
30444 lo = (lo + Math.imul(al0, bl5)) |
0;
30445 mid = (mid + Math.imul(al0, bh5)) |
0;
30446 mid = (mid + Math.imul(ah0, bl5)) |
0;
30447 hi = (hi + Math.imul(ah0, bh5)) |
0;
30448 var w5 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30449 c = (((hi + (mid
>>> 13)) |
0) + (w5
>>> 26)) |
0;
30452 lo = Math.imul(al6, bl0);
30453 mid = Math.imul(al6, bh0);
30454 mid = (mid + Math.imul(ah6, bl0)) |
0;
30455 hi = Math.imul(ah6, bh0);
30456 lo = (lo + Math.imul(al5, bl1)) |
0;
30457 mid = (mid + Math.imul(al5, bh1)) |
0;
30458 mid = (mid + Math.imul(ah5, bl1)) |
0;
30459 hi = (hi + Math.imul(ah5, bh1)) |
0;
30460 lo = (lo + Math.imul(al4, bl2)) |
0;
30461 mid = (mid + Math.imul(al4, bh2)) |
0;
30462 mid = (mid + Math.imul(ah4, bl2)) |
0;
30463 hi = (hi + Math.imul(ah4, bh2)) |
0;
30464 lo = (lo + Math.imul(al3, bl3)) |
0;
30465 mid = (mid + Math.imul(al3, bh3)) |
0;
30466 mid = (mid + Math.imul(ah3, bl3)) |
0;
30467 hi = (hi + Math.imul(ah3, bh3)) |
0;
30468 lo = (lo + Math.imul(al2, bl4)) |
0;
30469 mid = (mid + Math.imul(al2, bh4)) |
0;
30470 mid = (mid + Math.imul(ah2, bl4)) |
0;
30471 hi = (hi + Math.imul(ah2, bh4)) |
0;
30472 lo = (lo + Math.imul(al1, bl5)) |
0;
30473 mid = (mid + Math.imul(al1, bh5)) |
0;
30474 mid = (mid + Math.imul(ah1, bl5)) |
0;
30475 hi = (hi + Math.imul(ah1, bh5)) |
0;
30476 lo = (lo + Math.imul(al0, bl6)) |
0;
30477 mid = (mid + Math.imul(al0, bh6)) |
0;
30478 mid = (mid + Math.imul(ah0, bl6)) |
0;
30479 hi = (hi + Math.imul(ah0, bh6)) |
0;
30480 var w6 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30481 c = (((hi + (mid
>>> 13)) |
0) + (w6
>>> 26)) |
0;
30484 lo = Math.imul(al7, bl0);
30485 mid = Math.imul(al7, bh0);
30486 mid = (mid + Math.imul(ah7, bl0)) |
0;
30487 hi = Math.imul(ah7, bh0);
30488 lo = (lo + Math.imul(al6, bl1)) |
0;
30489 mid = (mid + Math.imul(al6, bh1)) |
0;
30490 mid = (mid + Math.imul(ah6, bl1)) |
0;
30491 hi = (hi + Math.imul(ah6, bh1)) |
0;
30492 lo = (lo + Math.imul(al5, bl2)) |
0;
30493 mid = (mid + Math.imul(al5, bh2)) |
0;
30494 mid = (mid + Math.imul(ah5, bl2)) |
0;
30495 hi = (hi + Math.imul(ah5, bh2)) |
0;
30496 lo = (lo + Math.imul(al4, bl3)) |
0;
30497 mid = (mid + Math.imul(al4, bh3)) |
0;
30498 mid = (mid + Math.imul(ah4, bl3)) |
0;
30499 hi = (hi + Math.imul(ah4, bh3)) |
0;
30500 lo = (lo + Math.imul(al3, bl4)) |
0;
30501 mid = (mid + Math.imul(al3, bh4)) |
0;
30502 mid = (mid + Math.imul(ah3, bl4)) |
0;
30503 hi = (hi + Math.imul(ah3, bh4)) |
0;
30504 lo = (lo + Math.imul(al2, bl5)) |
0;
30505 mid = (mid + Math.imul(al2, bh5)) |
0;
30506 mid = (mid + Math.imul(ah2, bl5)) |
0;
30507 hi = (hi + Math.imul(ah2, bh5)) |
0;
30508 lo = (lo + Math.imul(al1, bl6)) |
0;
30509 mid = (mid + Math.imul(al1, bh6)) |
0;
30510 mid = (mid + Math.imul(ah1, bl6)) |
0;
30511 hi = (hi + Math.imul(ah1, bh6)) |
0;
30512 lo = (lo + Math.imul(al0, bl7)) |
0;
30513 mid = (mid + Math.imul(al0, bh7)) |
0;
30514 mid = (mid + Math.imul(ah0, bl7)) |
0;
30515 hi = (hi + Math.imul(ah0, bh7)) |
0;
30516 var w7 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30517 c = (((hi + (mid
>>> 13)) |
0) + (w7
>>> 26)) |
0;
30520 lo = Math.imul(al8, bl0);
30521 mid = Math.imul(al8, bh0);
30522 mid = (mid + Math.imul(ah8, bl0)) |
0;
30523 hi = Math.imul(ah8, bh0);
30524 lo = (lo + Math.imul(al7, bl1)) |
0;
30525 mid = (mid + Math.imul(al7, bh1)) |
0;
30526 mid = (mid + Math.imul(ah7, bl1)) |
0;
30527 hi = (hi + Math.imul(ah7, bh1)) |
0;
30528 lo = (lo + Math.imul(al6, bl2)) |
0;
30529 mid = (mid + Math.imul(al6, bh2)) |
0;
30530 mid = (mid + Math.imul(ah6, bl2)) |
0;
30531 hi = (hi + Math.imul(ah6, bh2)) |
0;
30532 lo = (lo + Math.imul(al5, bl3)) |
0;
30533 mid = (mid + Math.imul(al5, bh3)) |
0;
30534 mid = (mid + Math.imul(ah5, bl3)) |
0;
30535 hi = (hi + Math.imul(ah5, bh3)) |
0;
30536 lo = (lo + Math.imul(al4, bl4)) |
0;
30537 mid = (mid + Math.imul(al4, bh4)) |
0;
30538 mid = (mid + Math.imul(ah4, bl4)) |
0;
30539 hi = (hi + Math.imul(ah4, bh4)) |
0;
30540 lo = (lo + Math.imul(al3, bl5)) |
0;
30541 mid = (mid + Math.imul(al3, bh5)) |
0;
30542 mid = (mid + Math.imul(ah3, bl5)) |
0;
30543 hi = (hi + Math.imul(ah3, bh5)) |
0;
30544 lo = (lo + Math.imul(al2, bl6)) |
0;
30545 mid = (mid + Math.imul(al2, bh6)) |
0;
30546 mid = (mid + Math.imul(ah2, bl6)) |
0;
30547 hi = (hi + Math.imul(ah2, bh6)) |
0;
30548 lo = (lo + Math.imul(al1, bl7)) |
0;
30549 mid = (mid + Math.imul(al1, bh7)) |
0;
30550 mid = (mid + Math.imul(ah1, bl7)) |
0;
30551 hi = (hi + Math.imul(ah1, bh7)) |
0;
30552 lo = (lo + Math.imul(al0, bl8)) |
0;
30553 mid = (mid + Math.imul(al0, bh8)) |
0;
30554 mid = (mid + Math.imul(ah0, bl8)) |
0;
30555 hi = (hi + Math.imul(ah0, bh8)) |
0;
30556 var w8 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30557 c = (((hi + (mid
>>> 13)) |
0) + (w8
>>> 26)) |
0;
30560 lo = Math.imul(al9, bl0);
30561 mid = Math.imul(al9, bh0);
30562 mid = (mid + Math.imul(ah9, bl0)) |
0;
30563 hi = Math.imul(ah9, bh0);
30564 lo = (lo + Math.imul(al8, bl1)) |
0;
30565 mid = (mid + Math.imul(al8, bh1)) |
0;
30566 mid = (mid + Math.imul(ah8, bl1)) |
0;
30567 hi = (hi + Math.imul(ah8, bh1)) |
0;
30568 lo = (lo + Math.imul(al7, bl2)) |
0;
30569 mid = (mid + Math.imul(al7, bh2)) |
0;
30570 mid = (mid + Math.imul(ah7, bl2)) |
0;
30571 hi = (hi + Math.imul(ah7, bh2)) |
0;
30572 lo = (lo + Math.imul(al6, bl3)) |
0;
30573 mid = (mid + Math.imul(al6, bh3)) |
0;
30574 mid = (mid + Math.imul(ah6, bl3)) |
0;
30575 hi = (hi + Math.imul(ah6, bh3)) |
0;
30576 lo = (lo + Math.imul(al5, bl4)) |
0;
30577 mid = (mid + Math.imul(al5, bh4)) |
0;
30578 mid = (mid + Math.imul(ah5, bl4)) |
0;
30579 hi = (hi + Math.imul(ah5, bh4)) |
0;
30580 lo = (lo + Math.imul(al4, bl5)) |
0;
30581 mid = (mid + Math.imul(al4, bh5)) |
0;
30582 mid = (mid + Math.imul(ah4, bl5)) |
0;
30583 hi = (hi + Math.imul(ah4, bh5)) |
0;
30584 lo = (lo + Math.imul(al3, bl6)) |
0;
30585 mid = (mid + Math.imul(al3, bh6)) |
0;
30586 mid = (mid + Math.imul(ah3, bl6)) |
0;
30587 hi = (hi + Math.imul(ah3, bh6)) |
0;
30588 lo = (lo + Math.imul(al2, bl7)) |
0;
30589 mid = (mid + Math.imul(al2, bh7)) |
0;
30590 mid = (mid + Math.imul(ah2, bl7)) |
0;
30591 hi = (hi + Math.imul(ah2, bh7)) |
0;
30592 lo = (lo + Math.imul(al1, bl8)) |
0;
30593 mid = (mid + Math.imul(al1, bh8)) |
0;
30594 mid = (mid + Math.imul(ah1, bl8)) |
0;
30595 hi = (hi + Math.imul(ah1, bh8)) |
0;
30596 lo = (lo + Math.imul(al0, bl9)) |
0;
30597 mid = (mid + Math.imul(al0, bh9)) |
0;
30598 mid = (mid + Math.imul(ah0, bl9)) |
0;
30599 hi = (hi + Math.imul(ah0, bh9)) |
0;
30600 var w9 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30601 c = (((hi + (mid
>>> 13)) |
0) + (w9
>>> 26)) |
0;
30604 lo = Math.imul(al9, bl1);
30605 mid = Math.imul(al9, bh1);
30606 mid = (mid + Math.imul(ah9, bl1)) |
0;
30607 hi = Math.imul(ah9, bh1);
30608 lo = (lo + Math.imul(al8, bl2)) |
0;
30609 mid = (mid + Math.imul(al8, bh2)) |
0;
30610 mid = (mid + Math.imul(ah8, bl2)) |
0;
30611 hi = (hi + Math.imul(ah8, bh2)) |
0;
30612 lo = (lo + Math.imul(al7, bl3)) |
0;
30613 mid = (mid + Math.imul(al7, bh3)) |
0;
30614 mid = (mid + Math.imul(ah7, bl3)) |
0;
30615 hi = (hi + Math.imul(ah7, bh3)) |
0;
30616 lo = (lo + Math.imul(al6, bl4)) |
0;
30617 mid = (mid + Math.imul(al6, bh4)) |
0;
30618 mid = (mid + Math.imul(ah6, bl4)) |
0;
30619 hi = (hi + Math.imul(ah6, bh4)) |
0;
30620 lo = (lo + Math.imul(al5, bl5)) |
0;
30621 mid = (mid + Math.imul(al5, bh5)) |
0;
30622 mid = (mid + Math.imul(ah5, bl5)) |
0;
30623 hi = (hi + Math.imul(ah5, bh5)) |
0;
30624 lo = (lo + Math.imul(al4, bl6)) |
0;
30625 mid = (mid + Math.imul(al4, bh6)) |
0;
30626 mid = (mid + Math.imul(ah4, bl6)) |
0;
30627 hi = (hi + Math.imul(ah4, bh6)) |
0;
30628 lo = (lo + Math.imul(al3, bl7)) |
0;
30629 mid = (mid + Math.imul(al3, bh7)) |
0;
30630 mid = (mid + Math.imul(ah3, bl7)) |
0;
30631 hi = (hi + Math.imul(ah3, bh7)) |
0;
30632 lo = (lo + Math.imul(al2, bl8)) |
0;
30633 mid = (mid + Math.imul(al2, bh8)) |
0;
30634 mid = (mid + Math.imul(ah2, bl8)) |
0;
30635 hi = (hi + Math.imul(ah2, bh8)) |
0;
30636 lo = (lo + Math.imul(al1, bl9)) |
0;
30637 mid = (mid + Math.imul(al1, bh9)) |
0;
30638 mid = (mid + Math.imul(ah1, bl9)) |
0;
30639 hi = (hi + Math.imul(ah1, bh9)) |
0;
30640 var w10 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30641 c = (((hi + (mid
>>> 13)) |
0) + (w10
>>> 26)) |
0;
30644 lo = Math.imul(al9, bl2);
30645 mid = Math.imul(al9, bh2);
30646 mid = (mid + Math.imul(ah9, bl2)) |
0;
30647 hi = Math.imul(ah9, bh2);
30648 lo = (lo + Math.imul(al8, bl3)) |
0;
30649 mid = (mid + Math.imul(al8, bh3)) |
0;
30650 mid = (mid + Math.imul(ah8, bl3)) |
0;
30651 hi = (hi + Math.imul(ah8, bh3)) |
0;
30652 lo = (lo + Math.imul(al7, bl4)) |
0;
30653 mid = (mid + Math.imul(al7, bh4)) |
0;
30654 mid = (mid + Math.imul(ah7, bl4)) |
0;
30655 hi = (hi + Math.imul(ah7, bh4)) |
0;
30656 lo = (lo + Math.imul(al6, bl5)) |
0;
30657 mid = (mid + Math.imul(al6, bh5)) |
0;
30658 mid = (mid + Math.imul(ah6, bl5)) |
0;
30659 hi = (hi + Math.imul(ah6, bh5)) |
0;
30660 lo = (lo + Math.imul(al5, bl6)) |
0;
30661 mid = (mid + Math.imul(al5, bh6)) |
0;
30662 mid = (mid + Math.imul(ah5, bl6)) |
0;
30663 hi = (hi + Math.imul(ah5, bh6)) |
0;
30664 lo = (lo + Math.imul(al4, bl7)) |
0;
30665 mid = (mid + Math.imul(al4, bh7)) |
0;
30666 mid = (mid + Math.imul(ah4, bl7)) |
0;
30667 hi = (hi + Math.imul(ah4, bh7)) |
0;
30668 lo = (lo + Math.imul(al3, bl8)) |
0;
30669 mid = (mid + Math.imul(al3, bh8)) |
0;
30670 mid = (mid + Math.imul(ah3, bl8)) |
0;
30671 hi = (hi + Math.imul(ah3, bh8)) |
0;
30672 lo = (lo + Math.imul(al2, bl9)) |
0;
30673 mid = (mid + Math.imul(al2, bh9)) |
0;
30674 mid = (mid + Math.imul(ah2, bl9)) |
0;
30675 hi = (hi + Math.imul(ah2, bh9)) |
0;
30676 var w11 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30677 c = (((hi + (mid
>>> 13)) |
0) + (w11
>>> 26)) |
0;
30680 lo = Math.imul(al9, bl3);
30681 mid = Math.imul(al9, bh3);
30682 mid = (mid + Math.imul(ah9, bl3)) |
0;
30683 hi = Math.imul(ah9, bh3);
30684 lo = (lo + Math.imul(al8, bl4)) |
0;
30685 mid = (mid + Math.imul(al8, bh4)) |
0;
30686 mid = (mid + Math.imul(ah8, bl4)) |
0;
30687 hi = (hi + Math.imul(ah8, bh4)) |
0;
30688 lo = (lo + Math.imul(al7, bl5)) |
0;
30689 mid = (mid + Math.imul(al7, bh5)) |
0;
30690 mid = (mid + Math.imul(ah7, bl5)) |
0;
30691 hi = (hi + Math.imul(ah7, bh5)) |
0;
30692 lo = (lo + Math.imul(al6, bl6)) |
0;
30693 mid = (mid + Math.imul(al6, bh6)) |
0;
30694 mid = (mid + Math.imul(ah6, bl6)) |
0;
30695 hi = (hi + Math.imul(ah6, bh6)) |
0;
30696 lo = (lo + Math.imul(al5, bl7)) |
0;
30697 mid = (mid + Math.imul(al5, bh7)) |
0;
30698 mid = (mid + Math.imul(ah5, bl7)) |
0;
30699 hi = (hi + Math.imul(ah5, bh7)) |
0;
30700 lo = (lo + Math.imul(al4, bl8)) |
0;
30701 mid = (mid + Math.imul(al4, bh8)) |
0;
30702 mid = (mid + Math.imul(ah4, bl8)) |
0;
30703 hi = (hi + Math.imul(ah4, bh8)) |
0;
30704 lo = (lo + Math.imul(al3, bl9)) |
0;
30705 mid = (mid + Math.imul(al3, bh9)) |
0;
30706 mid = (mid + Math.imul(ah3, bl9)) |
0;
30707 hi = (hi + Math.imul(ah3, bh9)) |
0;
30708 var w12 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30709 c = (((hi + (mid
>>> 13)) |
0) + (w12
>>> 26)) |
0;
30712 lo = Math.imul(al9, bl4);
30713 mid = Math.imul(al9, bh4);
30714 mid = (mid + Math.imul(ah9, bl4)) |
0;
30715 hi = Math.imul(ah9, bh4);
30716 lo = (lo + Math.imul(al8, bl5)) |
0;
30717 mid = (mid + Math.imul(al8, bh5)) |
0;
30718 mid = (mid + Math.imul(ah8, bl5)) |
0;
30719 hi = (hi + Math.imul(ah8, bh5)) |
0;
30720 lo = (lo + Math.imul(al7, bl6)) |
0;
30721 mid = (mid + Math.imul(al7, bh6)) |
0;
30722 mid = (mid + Math.imul(ah7, bl6)) |
0;
30723 hi = (hi + Math.imul(ah7, bh6)) |
0;
30724 lo = (lo + Math.imul(al6, bl7)) |
0;
30725 mid = (mid + Math.imul(al6, bh7)) |
0;
30726 mid = (mid + Math.imul(ah6, bl7)) |
0;
30727 hi = (hi + Math.imul(ah6, bh7)) |
0;
30728 lo = (lo + Math.imul(al5, bl8)) |
0;
30729 mid = (mid + Math.imul(al5, bh8)) |
0;
30730 mid = (mid + Math.imul(ah5, bl8)) |
0;
30731 hi = (hi + Math.imul(ah5, bh8)) |
0;
30732 lo = (lo + Math.imul(al4, bl9)) |
0;
30733 mid = (mid + Math.imul(al4, bh9)) |
0;
30734 mid = (mid + Math.imul(ah4, bl9)) |
0;
30735 hi = (hi + Math.imul(ah4, bh9)) |
0;
30736 var w13 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30737 c = (((hi + (mid
>>> 13)) |
0) + (w13
>>> 26)) |
0;
30740 lo = Math.imul(al9, bl5);
30741 mid = Math.imul(al9, bh5);
30742 mid = (mid + Math.imul(ah9, bl5)) |
0;
30743 hi = Math.imul(ah9, bh5);
30744 lo = (lo + Math.imul(al8, bl6)) |
0;
30745 mid = (mid + Math.imul(al8, bh6)) |
0;
30746 mid = (mid + Math.imul(ah8, bl6)) |
0;
30747 hi = (hi + Math.imul(ah8, bh6)) |
0;
30748 lo = (lo + Math.imul(al7, bl7)) |
0;
30749 mid = (mid + Math.imul(al7, bh7)) |
0;
30750 mid = (mid + Math.imul(ah7, bl7)) |
0;
30751 hi = (hi + Math.imul(ah7, bh7)) |
0;
30752 lo = (lo + Math.imul(al6, bl8)) |
0;
30753 mid = (mid + Math.imul(al6, bh8)) |
0;
30754 mid = (mid + Math.imul(ah6, bl8)) |
0;
30755 hi = (hi + Math.imul(ah6, bh8)) |
0;
30756 lo = (lo + Math.imul(al5, bl9)) |
0;
30757 mid = (mid + Math.imul(al5, bh9)) |
0;
30758 mid = (mid + Math.imul(ah5, bl9)) |
0;
30759 hi = (hi + Math.imul(ah5, bh9)) |
0;
30760 var w14 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30761 c = (((hi + (mid
>>> 13)) |
0) + (w14
>>> 26)) |
0;
30764 lo = Math.imul(al9, bl6);
30765 mid = Math.imul(al9, bh6);
30766 mid = (mid + Math.imul(ah9, bl6)) |
0;
30767 hi = Math.imul(ah9, bh6);
30768 lo = (lo + Math.imul(al8, bl7)) |
0;
30769 mid = (mid + Math.imul(al8, bh7)) |
0;
30770 mid = (mid + Math.imul(ah8, bl7)) |
0;
30771 hi = (hi + Math.imul(ah8, bh7)) |
0;
30772 lo = (lo + Math.imul(al7, bl8)) |
0;
30773 mid = (mid + Math.imul(al7, bh8)) |
0;
30774 mid = (mid + Math.imul(ah7, bl8)) |
0;
30775 hi = (hi + Math.imul(ah7, bh8)) |
0;
30776 lo = (lo + Math.imul(al6, bl9)) |
0;
30777 mid = (mid + Math.imul(al6, bh9)) |
0;
30778 mid = (mid + Math.imul(ah6, bl9)) |
0;
30779 hi = (hi + Math.imul(ah6, bh9)) |
0;
30780 var w15 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30781 c = (((hi + (mid
>>> 13)) |
0) + (w15
>>> 26)) |
0;
30784 lo = Math.imul(al9, bl7);
30785 mid = Math.imul(al9, bh7);
30786 mid = (mid + Math.imul(ah9, bl7)) |
0;
30787 hi = Math.imul(ah9, bh7);
30788 lo = (lo + Math.imul(al8, bl8)) |
0;
30789 mid = (mid + Math.imul(al8, bh8)) |
0;
30790 mid = (mid + Math.imul(ah8, bl8)) |
0;
30791 hi = (hi + Math.imul(ah8, bh8)) |
0;
30792 lo = (lo + Math.imul(al7, bl9)) |
0;
30793 mid = (mid + Math.imul(al7, bh9)) |
0;
30794 mid = (mid + Math.imul(ah7, bl9)) |
0;
30795 hi = (hi + Math.imul(ah7, bh9)) |
0;
30796 var w16 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30797 c = (((hi + (mid
>>> 13)) |
0) + (w16
>>> 26)) |
0;
30800 lo = Math.imul(al9, bl8);
30801 mid = Math.imul(al9, bh8);
30802 mid = (mid + Math.imul(ah9, bl8)) |
0;
30803 hi = Math.imul(ah9, bh8);
30804 lo = (lo + Math.imul(al8, bl9)) |
0;
30805 mid = (mid + Math.imul(al8, bh9)) |
0;
30806 mid = (mid + Math.imul(ah8, bl9)) |
0;
30807 hi = (hi + Math.imul(ah8, bh9)) |
0;
30808 var w17 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30809 c = (((hi + (mid
>>> 13)) |
0) + (w17
>>> 26)) |
0;
30812 lo = Math.imul(al9, bl9);
30813 mid = Math.imul(al9, bh9);
30814 mid = (mid + Math.imul(ah9, bl9)) |
0;
30815 hi = Math.imul(ah9, bh9);
30816 var w18 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
30817 c = (((hi + (mid
>>> 13)) |
0) + (w18
>>> 26)) |
0;
30847 comb10MulTo = smallMulTo;
30850 function bigMulTo (self, num, out) {
30851 out.negative = num.negative ^ self.negative;
30852 out.length = self.length + num.length;
30856 for (var k =
0; k < out.length -
1; k++) {
30857 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
30858 // note that ncarry could be
>=
0x3ffffff
30859 var ncarry = hncarry;
30861 var rword = carry &
0x3ffffff;
30862 var maxJ = Math.min(k, num.length -
1);
30863 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
30865 var a = self.words[i] |
0;
30866 var b = num.words[j] |
0;
30869 var lo = r &
0x3ffffff;
30870 ncarry = (ncarry + ((r /
0x4000000) |
0)) |
0;
30871 lo = (lo + rword) |
0;
30872 rword = lo &
0x3ffffff;
30873 ncarry = (ncarry + (lo
>>> 26)) |
0;
30875 hncarry += ncarry
>>> 26;
30876 ncarry &=
0x3ffffff;
30878 out.words[k] = rword;
30883 out.words[k] = carry;
30888 return out.strip();
30891 function jumboMulTo (self, num, out) {
30892 var fftm = new FFTM();
30893 return fftm.mulp(self, num, out);
30896 BN.prototype.mulTo = function mulTo (num, out) {
30898 var len = this.length + num.length;
30899 if (this.length ===
10 && num.length ===
10) {
30900 res = comb10MulTo(this, num, out);
30901 } else if (len <
63) {
30902 res = smallMulTo(this, num, out);
30903 } else if (len <
1024) {
30904 res = bigMulTo(this, num, out);
30906 res = jumboMulTo(this, num, out);
30912 // Cooley-Tukey algorithm for FFT
30913 // slightly revisited to rely on looping instead of recursion
30915 function FFTM (x, y) {
30920 FFTM.prototype.makeRBT = function makeRBT (N) {
30921 var t = new Array(N);
30922 var l = BN.prototype._countBits(N) -
1;
30923 for (var i =
0; i < N; i++) {
30924 t[i] = this.revBin(i, l, N);
30930 // Returns binary-reversed representation of `x`
30931 FFTM.prototype.revBin = function revBin (x, l, N) {
30932 if (x ===
0 || x === N -
1) return x;
30935 for (var i =
0; i < l; i++) {
30936 rb |= (x &
1) << (l - i -
1);
30943 // Performs "tweedling" phase, therefore 'emulating'
30944 // behaviour of the recursive algorithm
30945 FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
30946 for (var i =
0; i < N; i++) {
30947 rtws[i] = rws[rbt[i]];
30948 itws[i] = iws[rbt[i]];
30952 FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
30953 this.permute(rbt, rws, iws, rtws, itws, N);
30955 for (var s =
1; s < N; s <<=
1) {
30958 var rtwdf = Math.cos(
2 * Math.PI / l);
30959 var itwdf = Math.sin(
2 * Math.PI / l);
30961 for (var p =
0; p < N; p += l) {
30962 var rtwdf_ = rtwdf;
30963 var itwdf_ = itwdf;
30965 for (var j =
0; j < s; j++) {
30966 var re = rtws[p + j];
30967 var ie = itws[p + j];
30969 var ro = rtws[p + j + s];
30970 var io = itws[p + j + s];
30972 var rx = rtwdf_ * ro - itwdf_ * io;
30974 io = rtwdf_ * io + itwdf_ * ro;
30977 rtws[p + j] = re + ro;
30978 itws[p + j] = ie + io;
30980 rtws[p + j + s] = re - ro;
30981 itws[p + j + s] = ie - io;
30983 /* jshint maxdepth : false */
30985 rx = rtwdf * rtwdf_ - itwdf * itwdf_;
30987 itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
30995 FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
30996 var N = Math.max(m, n) |
1;
30999 for (N = N /
2 |
0; N; N = N
>>> 1) {
31003 return
1 << i +
1 + odd;
31006 FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
31007 if (N <=
1) return;
31009 for (var i =
0; i < N /
2; i++) {
31012 rws[i] = rws[N - i -
1];
31013 rws[N - i -
1] = t;
31017 iws[i] = -iws[N - i -
1];
31018 iws[N - i -
1] = -t;
31022 FFTM.prototype.normalize13b = function normalize13b (ws, N) {
31024 for (var i =
0; i < N /
2; i++) {
31025 var w = Math.round(ws[
2 * i +
1] / N) *
0x2000 +
31026 Math.round(ws[
2 * i] / N) +
31029 ws[i] = w &
0x3ffffff;
31031 if (w <
0x4000000) {
31034 carry = w /
0x4000000 |
0;
31041 FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
31043 for (var i =
0; i < len; i++) {
31044 carry = carry + (ws[i] |
0);
31046 rws[
2 * i] = carry &
0x1fff; carry = carry
>>> 13;
31047 rws[
2 * i +
1] = carry &
0x1fff; carry = carry
>>> 13;
31051 for (i =
2 * len; i < N; ++i) {
31055 assert(carry ===
0);
31056 assert((carry & ~
0x1fff) ===
0);
31059 FFTM.prototype.stub = function stub (N) {
31060 var ph = new Array(N);
31061 for (var i =
0; i < N; i++) {
31068 FFTM.prototype.mulp = function mulp (x, y, out) {
31069 var N =
2 * this.guessLen13b(x.length, y.length);
31071 var rbt = this.makeRBT(N);
31073 var _ = this.stub(N);
31075 var rws = new Array(N);
31076 var rwst = new Array(N);
31077 var iwst = new Array(N);
31079 var nrws = new Array(N);
31080 var nrwst = new Array(N);
31081 var niwst = new Array(N);
31083 var rmws = out.words;
31086 this.convert13b(x.words, x.length, rws, N);
31087 this.convert13b(y.words, y.length, nrws, N);
31089 this.transform(rws, _, rwst, iwst, N, rbt);
31090 this.transform(nrws, _, nrwst, niwst, N, rbt);
31092 for (var i =
0; i < N; i++) {
31093 var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
31094 iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
31098 this.conjugate(rwst, iwst, N);
31099 this.transform(rwst, iwst, rmws, _, N, rbt);
31100 this.conjugate(rmws, _, N);
31101 this.normalize13b(rmws, N);
31103 out.negative = x.negative ^ y.negative;
31104 out.length = x.length + y.length;
31105 return out.strip();
31108 // Multiply `this` by `num`
31109 BN.prototype.mul = function mul (num) {
31110 var out = new BN(null);
31111 out.words = new Array(this.length + num.length);
31112 return this.mulTo(num, out);
31115 // Multiply employing FFT
31116 BN.prototype.mulf = function mulf (num) {
31117 var out = new BN(null);
31118 out.words = new Array(this.length + num.length);
31119 return jumboMulTo(this, num, out);
31122 // In-place Multiplication
31123 BN.prototype.imul = function imul (num) {
31124 return this.clone().mulTo(num, this);
31127 BN.prototype.imuln = function imuln (num) {
31128 assert(typeof num === 'number');
31129 assert(num <
0x4000000);
31133 for (var i =
0; i < this.length; i++) {
31134 var w = (this.words[i] |
0) * num;
31135 var lo = (w &
0x3ffffff) + (carry &
0x3ffffff);
31137 carry += (w /
0x4000000) |
0;
31138 // NOTE: lo is
27bit maximum
31139 carry += lo
>>> 26;
31140 this.words[i] = lo &
0x3ffffff;
31144 this.words[i] = carry;
31151 BN.prototype.muln = function muln (num) {
31152 return this.clone().imuln(num);
31156 BN.prototype.sqr = function sqr () {
31157 return this.mul(this);
31160 // `this` * `this` in-place
31161 BN.prototype.isqr = function isqr () {
31162 return this.imul(this.clone());
31165 // Math.pow(`this`, `num`)
31166 BN.prototype.pow = function pow (num) {
31167 var w = toBitArray(num);
31168 if (w.length ===
0) return new BN(
1);
31170 // Skip leading zeroes
31172 for (var i =
0; i < w.length; i++, res = res.sqr()) {
31173 if (w[i] !==
0) break;
31176 if (++i < w.length) {
31177 for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
31178 if (w[i] ===
0) continue;
31187 // Shift-left in-place
31188 BN.prototype.iushln = function iushln (bits) {
31189 assert(typeof bits === 'number' && bits
>=
0);
31191 var s = (bits - r) /
26;
31192 var carryMask = (
0x3ffffff >>> (
26 - r)) << (
26 - r);
31198 for (i =
0; i < this.length; i++) {
31199 var newCarry = this.words[i] & carryMask;
31200 var c = ((this.words[i] |
0) - newCarry) << r;
31201 this.words[i] = c | carry;
31202 carry = newCarry
>>> (
26 - r);
31206 this.words[i] = carry;
31212 for (i = this.length -
1; i
>=
0; i--) {
31213 this.words[i + s] = this.words[i];
31216 for (i =
0; i < s; i++) {
31223 return this.strip();
31226 BN.prototype.ishln = function ishln (bits) {
31227 // TODO(indutny): implement me
31228 assert(this.negative ===
0);
31229 return this.iushln(bits);
31232 // Shift-right in-place
31233 // NOTE: `hint` is a lowest bit before trailing zeroes
31234 // NOTE: if `extended` is present - it will be filled with destroyed bits
31235 BN.prototype.iushrn = function iushrn (bits, hint, extended) {
31236 assert(typeof bits === 'number' && bits
>=
0);
31239 h = (hint - (hint %
26)) /
26;
31245 var s = Math.min((bits - r) /
26, this.length);
31246 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
31247 var maskedWords = extended;
31250 h = Math.max(
0, h);
31252 // Extended mode, copy masked part
31254 for (var i =
0; i < s; i++) {
31255 maskedWords.words[i] = this.words[i];
31257 maskedWords.length = s;
31261 // No-op, we should not move anything at all
31262 } else if (this.length
> s) {
31264 for (i =
0; i < this.length; i++) {
31265 this.words[i] = this.words[i + s];
31273 for (i = this.length -
1; i
>=
0 && (carry !==
0 || i
>= h); i--) {
31274 var word = this.words[i] |
0;
31275 this.words[i] = (carry << (
26 - r)) | (word
>>> r);
31276 carry = word & mask;
31279 // Push carried bits as a mask
31280 if (maskedWords && carry !==
0) {
31281 maskedWords.words[maskedWords.length++] = carry;
31284 if (this.length ===
0) {
31289 return this.strip();
31292 BN.prototype.ishrn = function ishrn (bits, hint, extended) {
31293 // TODO(indutny): implement me
31294 assert(this.negative ===
0);
31295 return this.iushrn(bits, hint, extended);
31299 BN.prototype.shln = function shln (bits) {
31300 return this.clone().ishln(bits);
31303 BN.prototype.ushln = function ushln (bits) {
31304 return this.clone().iushln(bits);
31308 BN.prototype.shrn = function shrn (bits) {
31309 return this.clone().ishrn(bits);
31312 BN.prototype.ushrn = function ushrn (bits) {
31313 return this.clone().iushrn(bits);
31316 // Test if n bit is set
31317 BN.prototype.testn = function testn (bit) {
31318 assert(typeof bit === 'number' && bit
>=
0);
31320 var s = (bit - r) /
26;
31323 // Fast case: bit is much higher than all existing words
31324 if (this.length <= s) return false;
31326 // Check bit and return
31327 var w = this.words[s];
31332 // Return only lowers bits of number (in-place)
31333 BN.prototype.imaskn = function imaskn (bits) {
31334 assert(typeof bits === 'number' && bits
>=
0);
31336 var s = (bits - r) /
26;
31338 assert(this.negative ===
0, 'imaskn works only with positive numbers');
31340 if (this.length <= s) {
31347 this.length = Math.min(s, this.length);
31350 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
31351 this.words[this.length -
1] &= mask;
31354 return this.strip();
31357 // Return only lowers bits of number
31358 BN.prototype.maskn = function maskn (bits) {
31359 return this.clone().imaskn(bits);
31362 // Add plain number `num` to `this`
31363 BN.prototype.iaddn = function iaddn (num) {
31364 assert(typeof num === 'number');
31365 assert(num <
0x4000000);
31366 if (num <
0) return this.isubn(-num);
31368 // Possible sign change
31369 if (this.negative !==
0) {
31370 if (this.length ===
1 && (this.words[
0] |
0) < num) {
31371 this.words[
0] = num - (this.words[
0] |
0);
31382 // Add without checks
31383 return this._iaddn(num);
31386 BN.prototype._iaddn = function _iaddn (num) {
31387 this.words[
0] += num;
31390 for (var i =
0; i < this.length && this.words[i]
>=
0x4000000; i++) {
31391 this.words[i] -=
0x4000000;
31392 if (i === this.length -
1) {
31393 this.words[i +
1] =
1;
31395 this.words[i +
1]++;
31398 this.length = Math.max(this.length, i +
1);
31403 // Subtract plain number `num` from `this`
31404 BN.prototype.isubn = function isubn (num) {
31405 assert(typeof num === 'number');
31406 assert(num <
0x4000000);
31407 if (num <
0) return this.iaddn(-num);
31409 if (this.negative !==
0) {
31416 this.words[
0] -= num;
31418 if (this.length ===
1 && this.words[
0] <
0) {
31419 this.words[
0] = -this.words[
0];
31423 for (var i =
0; i < this.length && this.words[i] <
0; i++) {
31424 this.words[i] +=
0x4000000;
31425 this.words[i +
1] -=
1;
31429 return this.strip();
31432 BN.prototype.addn = function addn (num) {
31433 return this.clone().iaddn(num);
31436 BN.prototype.subn = function subn (num) {
31437 return this.clone().isubn(num);
31440 BN.prototype.iabs = function iabs () {
31446 BN.prototype.abs = function abs () {
31447 return this.clone().iabs();
31450 BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
31451 var len = num.length + shift;
31458 for (i =
0; i < num.length; i++) {
31459 w = (this.words[i + shift] |
0) + carry;
31460 var right = (num.words[i] |
0) * mul;
31461 w -= right &
0x3ffffff;
31462 carry = (w
>> 26) - ((right /
0x4000000) |
0);
31463 this.words[i + shift] = w &
0x3ffffff;
31465 for (; i < this.length - shift; i++) {
31466 w = (this.words[i + shift] |
0) + carry;
31468 this.words[i + shift] = w &
0x3ffffff;
31471 if (carry ===
0) return this.strip();
31473 // Subtraction overflow
31474 assert(carry === -
1);
31476 for (i =
0; i < this.length; i++) {
31477 w = -(this.words[i] |
0) + carry;
31479 this.words[i] = w &
0x3ffffff;
31483 return this.strip();
31486 BN.prototype._wordDiv = function _wordDiv (num, mode) {
31487 var shift = this.length - num.length;
31489 var a = this.clone();
31493 var bhi = b.words[b.length -
1] |
0;
31494 var bhiBits = this._countBits(bhi);
31495 shift =
26 - bhiBits;
31497 b = b.ushln(shift);
31499 bhi = b.words[b.length -
1] |
0;
31502 // Initialize quotient
31503 var m = a.length - b.length;
31506 if (mode !== 'mod') {
31509 q.words = new Array(q.length);
31510 for (var i =
0; i < q.length; i++) {
31515 var diff = a.clone()._ishlnsubmul(b,
1, m);
31516 if (diff.negative ===
0) {
31523 for (var j = m -
1; j
>=
0; j--) {
31524 var qj = (a.words[b.length + j] |
0) *
0x4000000 +
31525 (a.words[b.length + j -
1] |
0);
31527 // NOTE: (qj / bhi) is (
0x3ffffff *
0x4000000 +
0x3ffffff) /
0x2000000 max
31529 qj = Math.min((qj / bhi) |
0,
0x3ffffff);
31531 a._ishlnsubmul(b, qj, j);
31532 while (a.negative !==
0) {
31535 a._ishlnsubmul(b,
1, j);
31550 if (mode !== 'div' && shift !==
0) {
31560 // NOTE:
1) `mode` can be set to `mod` to request mod only,
31561 // to `div` to request div only, or be absent to
31562 // request both div & mod
31563 //
2) `positive` is true if unsigned mod is requested
31564 BN.prototype.divmod = function divmod (num, mode, positive) {
31565 assert(!num.isZero());
31567 if (this.isZero()) {
31575 if (this.negative !==
0 && num.negative ===
0) {
31576 res = this.neg().divmod(num, mode);
31578 if (mode !== 'mod') {
31579 div = res.div.neg();
31582 if (mode !== 'div') {
31583 mod = res.mod.neg();
31584 if (positive && mod.negative !==
0) {
31595 if (this.negative ===
0 && num.negative !==
0) {
31596 res = this.divmod(num.neg(), mode);
31598 if (mode !== 'mod') {
31599 div = res.div.neg();
31608 if ((this.negative & num.negative) !==
0) {
31609 res = this.neg().divmod(num.neg(), mode);
31611 if (mode !== 'div') {
31612 mod = res.mod.neg();
31613 if (positive && mod.negative !==
0) {
31624 // Both numbers are positive at this point
31626 // Strip both numbers to approximate shift value
31627 if (num.length
> this.length || this.cmp(num) <
0) {
31634 // Very short reduction
31635 if (num.length ===
1) {
31636 if (mode === 'div') {
31638 div: this.divn(num.words[
0]),
31643 if (mode === 'mod') {
31646 mod: new BN(this.modn(num.words[
0]))
31651 div: this.divn(num.words[
0]),
31652 mod: new BN(this.modn(num.words[
0]))
31656 return this._wordDiv(num, mode);
31659 // Find `this` / `num`
31660 BN.prototype.div = function div (num) {
31661 return this.divmod(num, 'div', false).div;
31664 // Find `this` % `num`
31665 BN.prototype.mod = function mod (num) {
31666 return this.divmod(num, 'mod', false).mod;
31669 BN.prototype.umod = function umod (num) {
31670 return this.divmod(num, 'mod', true).mod;
31673 // Find Round(`this` / `num`)
31674 BN.prototype.divRound = function divRound (num) {
31675 var dm = this.divmod(num);
31677 // Fast case - exact division
31678 if (dm.mod.isZero()) return dm.div;
31680 var mod = dm.div.negative !==
0 ? dm.mod.isub(num) : dm.mod;
31682 var half = num.ushrn(
1);
31683 var r2 = num.andln(
1);
31684 var cmp = mod.cmp(half);
31687 if (cmp <
0 || r2 ===
1 && cmp ===
0) return dm.div;
31690 return dm.div.negative !==
0 ? dm.div.isubn(
1) : dm.div.iaddn(
1);
31693 BN.prototype.modn = function modn (num) {
31694 assert(num <=
0x3ffffff);
31695 var p = (
1 <<
26) % num;
31698 for (var i = this.length -
1; i
>=
0; i--) {
31699 acc = (p * acc + (this.words[i] |
0)) % num;
31705 // In-place division by number
31706 BN.prototype.idivn = function idivn (num) {
31707 assert(num <=
0x3ffffff);
31710 for (var i = this.length -
1; i
>=
0; i--) {
31711 var w = (this.words[i] |
0) + carry *
0x4000000;
31712 this.words[i] = (w / num) |
0;
31716 return this.strip();
31719 BN.prototype.divn = function divn (num) {
31720 return this.clone().idivn(num);
31723 BN.prototype.egcd = function egcd (p) {
31724 assert(p.negative ===
0);
31725 assert(!p.isZero());
31730 if (x.negative !==
0) {
31736 // A * x + B * y = x
31740 // C * x + D * y = y
31746 while (x.isEven() && y.isEven()) {
31752 var yp = y.clone();
31753 var xp = x.clone();
31755 while (!x.isZero()) {
31756 for (var i =
0, im =
1; (x.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
31760 if (A.isOdd() || B.isOdd()) {
31770 for (var j =
0, jm =
1; (y.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
31774 if (C.isOdd() || D.isOdd()) {
31784 if (x.cmp(y)
>=
0) {
31802 // This is reduced incarnation of the binary EEA
31803 // above, designated to invert members of the
31804 // _prime_ fields F(p) at a maximal speed
31805 BN.prototype._invmp = function _invmp (p) {
31806 assert(p.negative ===
0);
31807 assert(!p.isZero());
31812 if (a.negative !==
0) {
31818 var x1 = new BN(
1);
31819 var x2 = new BN(
0);
31821 var delta = b.clone();
31823 while (a.cmpn(
1)
> 0 && b.cmpn(
1)
> 0) {
31824 for (var i =
0, im =
1; (a.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
31836 for (var j =
0, jm =
1; (b.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
31848 if (a.cmp(b)
>=
0) {
31858 if (a.cmpn(
1) ===
0) {
31864 if (res.cmpn(
0) <
0) {
31871 BN.prototype.gcd = function gcd (num) {
31872 if (this.isZero()) return num.abs();
31873 if (num.isZero()) return this.abs();
31875 var a = this.clone();
31876 var b = num.clone();
31880 // Remove common factor of two
31881 for (var shift =
0; a.isEven() && b.isEven(); shift++) {
31887 while (a.isEven()) {
31890 while (b.isEven()) {
31896 // Swap `a` and `b` to make `a` always bigger than `b`
31900 } else if (r ===
0 || b.cmpn(
1) ===
0) {
31907 return b.iushln(shift);
31910 // Invert number in the field F(num)
31911 BN.prototype.invm = function invm (num) {
31912 return this.egcd(num).a.umod(num);
31915 BN.prototype.isEven = function isEven () {
31916 return (this.words[
0] &
1) ===
0;
31919 BN.prototype.isOdd = function isOdd () {
31920 return (this.words[
0] &
1) ===
1;
31923 // And first word and num
31924 BN.prototype.andln = function andln (num) {
31925 return this.words[
0] & num;
31928 // Increment at the bit position in-line
31929 BN.prototype.bincn = function bincn (bit) {
31930 assert(typeof bit === 'number');
31932 var s = (bit - r) /
26;
31935 // Fast case: bit is much higher than all existing words
31936 if (this.length <= s) {
31937 this._expand(s +
1);
31938 this.words[s] |= q;
31942 // Add bit and propagate, if needed
31944 for (var i = s; carry !==
0 && i < this.length; i++) {
31945 var w = this.words[i] |
0;
31952 this.words[i] = carry;
31958 BN.prototype.isZero = function isZero () {
31959 return this.length ===
1 && this.words[
0] ===
0;
31962 BN.prototype.cmpn = function cmpn (num) {
31963 var negative = num <
0;
31965 if (this.negative !==
0 && !negative) return -
1;
31966 if (this.negative ===
0 && negative) return
1;
31971 if (this.length
> 1) {
31978 assert(num <=
0x3ffffff, 'Number is too big');
31980 var w = this.words[
0] |
0;
31981 res = w === num ?
0 : w < num ? -
1 :
1;
31983 if (this.negative !==
0) return -res |
0;
31987 // Compare two numbers and return:
31988 //
1 - if `this`
> `num`
31989 //
0 - if `this` == `num`
31990 // -
1 - if `this` < `num`
31991 BN.prototype.cmp = function cmp (num) {
31992 if (this.negative !==
0 && num.negative ===
0) return -
1;
31993 if (this.negative ===
0 && num.negative !==
0) return
1;
31995 var res = this.ucmp(num);
31996 if (this.negative !==
0) return -res |
0;
32000 // Unsigned comparison
32001 BN.prototype.ucmp = function ucmp (num) {
32002 // At this point both numbers have the same sign
32003 if (this.length
> num.length) return
1;
32004 if (this.length < num.length) return -
1;
32007 for (var i = this.length -
1; i
>=
0; i--) {
32008 var a = this.words[i] |
0;
32009 var b = num.words[i] |
0;
32011 if (a === b) continue;
32014 } else if (a
> b) {
32022 BN.prototype.gtn = function gtn (num) {
32023 return this.cmpn(num) ===
1;
32026 BN.prototype.gt = function gt (num) {
32027 return this.cmp(num) ===
1;
32030 BN.prototype.gten = function gten (num) {
32031 return this.cmpn(num)
>=
0;
32034 BN.prototype.gte = function gte (num) {
32035 return this.cmp(num)
>=
0;
32038 BN.prototype.ltn = function ltn (num) {
32039 return this.cmpn(num) === -
1;
32042 BN.prototype.lt = function lt (num) {
32043 return this.cmp(num) === -
1;
32046 BN.prototype.lten = function lten (num) {
32047 return this.cmpn(num) <=
0;
32050 BN.prototype.lte = function lte (num) {
32051 return this.cmp(num) <=
0;
32054 BN.prototype.eqn = function eqn (num) {
32055 return this.cmpn(num) ===
0;
32058 BN.prototype.eq = function eq (num) {
32059 return this.cmp(num) ===
0;
32063 // A reduce context, could be using montgomery or something better, depending
32064 // on the `m` itself.
32066 BN.red = function red (num) {
32067 return new Red(num);
32070 BN.prototype.toRed = function toRed (ctx) {
32071 assert(!this.red, 'Already a number in reduction context');
32072 assert(this.negative ===
0, 'red works only with positives');
32073 return ctx.convertTo(this)._forceRed(ctx);
32076 BN.prototype.fromRed = function fromRed () {
32077 assert(this.red, 'fromRed works only with numbers in reduction context');
32078 return this.red.convertFrom(this);
32081 BN.prototype._forceRed = function _forceRed (ctx) {
32086 BN.prototype.forceRed = function forceRed (ctx) {
32087 assert(!this.red, 'Already a number in reduction context');
32088 return this._forceRed(ctx);
32091 BN.prototype.redAdd = function redAdd (num) {
32092 assert(this.red, 'redAdd works only with red numbers');
32093 return this.red.add(this, num);
32096 BN.prototype.redIAdd = function redIAdd (num) {
32097 assert(this.red, 'redIAdd works only with red numbers');
32098 return this.red.iadd(this, num);
32101 BN.prototype.redSub = function redSub (num) {
32102 assert(this.red, 'redSub works only with red numbers');
32103 return this.red.sub(this, num);
32106 BN.prototype.redISub = function redISub (num) {
32107 assert(this.red, 'redISub works only with red numbers');
32108 return this.red.isub(this, num);
32111 BN.prototype.redShl = function redShl (num) {
32112 assert(this.red, 'redShl works only with red numbers');
32113 return this.red.shl(this, num);
32116 BN.prototype.redMul = function redMul (num) {
32117 assert(this.red, 'redMul works only with red numbers');
32118 this.red._verify2(this, num);
32119 return this.red.mul(this, num);
32122 BN.prototype.redIMul = function redIMul (num) {
32123 assert(this.red, 'redMul works only with red numbers');
32124 this.red._verify2(this, num);
32125 return this.red.imul(this, num);
32128 BN.prototype.redSqr = function redSqr () {
32129 assert(this.red, 'redSqr works only with red numbers');
32130 this.red._verify1(this);
32131 return this.red.sqr(this);
32134 BN.prototype.redISqr = function redISqr () {
32135 assert(this.red, 'redISqr works only with red numbers');
32136 this.red._verify1(this);
32137 return this.red.isqr(this);
32140 // Square root over p
32141 BN.prototype.redSqrt = function redSqrt () {
32142 assert(this.red, 'redSqrt works only with red numbers');
32143 this.red._verify1(this);
32144 return this.red.sqrt(this);
32147 BN.prototype.redInvm = function redInvm () {
32148 assert(this.red, 'redInvm works only with red numbers');
32149 this.red._verify1(this);
32150 return this.red.invm(this);
32153 // Return negative clone of `this` % `red modulo`
32154 BN.prototype.redNeg = function redNeg () {
32155 assert(this.red, 'redNeg works only with red numbers');
32156 this.red._verify1(this);
32157 return this.red.neg(this);
32160 BN.prototype.redPow = function redPow (num) {
32161 assert(this.red && !num.red, 'redPow(normalNum)');
32162 this.red._verify1(this);
32163 return this.red.pow(this, num);
32166 // Prime numbers with efficient reduction
32174 // Pseudo-Mersenne prime
32175 function MPrime (name, p) {
32178 this.p = new BN(p,
16);
32179 this.n = this.p.bitLength();
32180 this.k = new BN(
1).iushln(this.n).isub(this.p);
32182 this.tmp = this._tmp();
32185 MPrime.prototype._tmp = function _tmp () {
32186 var tmp = new BN(null);
32187 tmp.words = new Array(Math.ceil(this.n /
13));
32191 MPrime.prototype.ireduce = function ireduce (num) {
32192 // Assumes that `num` is less than `P^
2`
32193 // num = HI * (
2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
32198 this.split(r, this.tmp);
32200 r = r.iadd(this.tmp);
32201 rlen = r.bitLength();
32202 } while (rlen
> this.n);
32204 var cmp = rlen < this.n ? -
1 : r.ucmp(this.p);
32208 } else if (cmp
> 0) {
32217 MPrime.prototype.split = function split (input, out) {
32218 input.iushrn(this.n,
0, out);
32221 MPrime.prototype.imulK = function imulK (num) {
32222 return num.imul(this.k);
32229 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
32231 inherits(K256, MPrime);
32233 K256.prototype.split = function split (input, output) {
32234 //
256 =
9 *
26 +
22
32235 var mask =
0x3fffff;
32237 var outLen = Math.min(input.length,
9);
32238 for (var i =
0; i < outLen; i++) {
32239 output.words[i] = input.words[i];
32241 output.length = outLen;
32243 if (input.length <=
9) {
32244 input.words[
0] =
0;
32249 // Shift by
9 limbs
32250 var prev = input.words[
9];
32251 output.words[output.length++] = prev & mask;
32253 for (i =
10; i < input.length; i++) {
32254 var next = input.words[i] |
0;
32255 input.words[i -
10] = ((next & mask) <<
4) | (prev
>>> 22);
32259 input.words[i -
10] = prev;
32260 if (prev ===
0 && input.length
> 10) {
32261 input.length -=
10;
32267 K256.prototype.imulK = function imulK (num) {
32268 // K =
0x1000003d1 = [
0x40,
0x3d1 ]
32269 num.words[num.length] =
0;
32270 num.words[num.length +
1] =
0;
32273 // bounded at:
0x40 *
0x3ffffff +
0x3d0 =
0x100000390
32275 for (var i =
0; i < num.length; i++) {
32276 var w = num.words[i] |
0;
32278 num.words[i] = lo &
0x3ffffff;
32279 lo = w *
0x40 + ((lo /
0x4000000) |
0);
32282 // Fast length reduction
32283 if (num.words[num.length -
1] ===
0) {
32285 if (num.words[num.length -
1] ===
0) {
32296 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001');
32298 inherits(P224, MPrime);
32304 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
32306 inherits(P192, MPrime);
32308 function P25519 () {
32313 '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
32315 inherits(P25519, MPrime);
32317 P25519.prototype.imulK = function imulK (num) {
32320 for (var i =
0; i < num.length; i++) {
32321 var hi = (num.words[i] |
0) *
0x13 + carry;
32322 var lo = hi &
0x3ffffff;
32329 num.words[num.length++] = carry;
32334 // Exported mostly for testing purposes, use plain name instead
32335 BN._prime = function prime (name) {
32336 // Cached version of prime
32337 if (primes[name]) return primes[name];
32340 if (name === 'k256') {
32341 prime = new K256();
32342 } else if (name === 'p224') {
32343 prime = new P224();
32344 } else if (name === 'p192') {
32345 prime = new P192();
32346 } else if (name === 'p25519') {
32347 prime = new P25519();
32349 throw new Error('Unknown prime ' + name);
32351 primes[name] = prime;
32357 // Base reduction engine
32360 if (typeof m === 'string') {
32361 var prime = BN._prime(m);
32363 this.prime = prime;
32365 assert(m.gtn(
1), 'modulus must be greater than
1');
32371 Red.prototype._verify1 = function _verify1 (a) {
32372 assert(a.negative ===
0, 'red works only with positives');
32373 assert(a.red, 'red works only with red numbers');
32376 Red.prototype._verify2 = function _verify2 (a, b) {
32377 assert((a.negative | b.negative) ===
0, 'red works only with positives');
32378 assert(a.red && a.red === b.red,
32379 'red works only with red numbers');
32382 Red.prototype.imod = function imod (a) {
32383 if (this.prime) return this.prime.ireduce(a)._forceRed(this);
32384 return a.umod(this.m)._forceRed(this);
32387 Red.prototype.neg = function neg (a) {
32392 return this.m.sub(a)._forceRed(this);
32395 Red.prototype.add = function add (a, b) {
32396 this._verify2(a, b);
32398 var res = a.add(b);
32399 if (res.cmp(this.m)
>=
0) {
32402 return res._forceRed(this);
32405 Red.prototype.iadd = function iadd (a, b) {
32406 this._verify2(a, b);
32408 var res = a.iadd(b);
32409 if (res.cmp(this.m)
>=
0) {
32415 Red.prototype.sub = function sub (a, b) {
32416 this._verify2(a, b);
32418 var res = a.sub(b);
32419 if (res.cmpn(
0) <
0) {
32422 return res._forceRed(this);
32425 Red.prototype.isub = function isub (a, b) {
32426 this._verify2(a, b);
32428 var res = a.isub(b);
32429 if (res.cmpn(
0) <
0) {
32435 Red.prototype.shl = function shl (a, num) {
32437 return this.imod(a.ushln(num));
32440 Red.prototype.imul = function imul (a, b) {
32441 this._verify2(a, b);
32442 return this.imod(a.imul(b));
32445 Red.prototype.mul = function mul (a, b) {
32446 this._verify2(a, b);
32447 return this.imod(a.mul(b));
32450 Red.prototype.isqr = function isqr (a) {
32451 return this.imul(a, a.clone());
32454 Red.prototype.sqr = function sqr (a) {
32455 return this.mul(a, a);
32458 Red.prototype.sqrt = function sqrt (a) {
32459 if (a.isZero()) return a.clone();
32461 var mod3 = this.m.andln(
3);
32462 assert(mod3 %
2 ===
1);
32466 var pow = this.m.add(new BN(
1)).iushrn(
2);
32467 return this.pow(a, pow);
32470 // Tonelli-Shanks algorithm (Totally unoptimized and slow)
32472 // Find Q and S, that Q *
2 ^ S = (P -
1)
32473 var q = this.m.subn(
1);
32475 while (!q.isZero() && q.andln(
1) ===
0) {
32479 assert(!q.isZero());
32481 var one = new BN(
1).toRed(this);
32482 var nOne = one.redNeg();
32484 // Find quadratic non-residue
32485 // NOTE: Max is such because of generalized Riemann hypothesis.
32486 var lpow = this.m.subn(
1).iushrn(
1);
32487 var z = this.m.bitLength();
32488 z = new BN(
2 * z * z).toRed(this);
32490 while (this.pow(z, lpow).cmp(nOne) !==
0) {
32494 var c = this.pow(z, q);
32495 var r = this.pow(a, q.addn(
1).iushrn(
1));
32496 var t = this.pow(a, q);
32498 while (t.cmp(one) !==
0) {
32500 for (var i =
0; tmp.cmp(one) !==
0; i++) {
32501 tmp = tmp.redSqr();
32504 var b = this.pow(c, new BN(
1).iushln(m - i -
1));
32515 Red.prototype.invm = function invm (a) {
32516 var inv = a._invmp(this.m);
32517 if (inv.negative !==
0) {
32519 return this.imod(inv).redNeg();
32521 return this.imod(inv);
32525 Red.prototype.pow = function pow (a, num) {
32526 if (num.isZero()) return new BN(
1);
32527 if (num.cmpn(
1) ===
0) return a.clone();
32529 var windowSize =
4;
32530 var wnd = new Array(
1 << windowSize);
32531 wnd[
0] = new BN(
1).toRed(this);
32533 for (var i =
2; i < wnd.length; i++) {
32534 wnd[i] = this.mul(wnd[i -
1], a);
32539 var currentLen =
0;
32540 var start = num.bitLength() %
26;
32545 for (i = num.length -
1; i
>=
0; i--) {
32546 var word = num.words[i];
32547 for (var j = start -
1; j
>=
0; j--) {
32548 var bit = (word
>> j) &
1;
32549 if (res !== wnd[
0]) {
32550 res = this.sqr(res);
32553 if (bit ===
0 && current ===
0) {
32561 if (currentLen !== windowSize && (i !==
0 || j !==
0)) continue;
32563 res = this.mul(res, wnd[current]);
32573 Red.prototype.convertTo = function convertTo (num) {
32574 var r = num.umod(this.m);
32576 return r === num ? r.clone() : r;
32579 Red.prototype.convertFrom = function convertFrom (num) {
32580 var res = num.clone();
32586 // Montgomery method engine
32589 BN.mont = function mont (num) {
32590 return new Mont(num);
32593 function Mont (m) {
32596 this.shift = this.m.bitLength();
32597 if (this.shift %
26 !==
0) {
32598 this.shift +=
26 - (this.shift %
26);
32601 this.r = new BN(
1).iushln(this.shift);
32602 this.r2 = this.imod(this.r.sqr());
32603 this.rinv = this.r._invmp(this.m);
32605 this.minv = this.rinv.mul(this.r).isubn(
1).div(this.m);
32606 this.minv = this.minv.umod(this.r);
32607 this.minv = this.r.sub(this.minv);
32609 inherits(Mont, Red);
32611 Mont.prototype.convertTo = function convertTo (num) {
32612 return this.imod(num.ushln(this.shift));
32615 Mont.prototype.convertFrom = function convertFrom (num) {
32616 var r = this.imod(num.mul(this.rinv));
32621 Mont.prototype.imul = function imul (a, b) {
32622 if (a.isZero() || b.isZero()) {
32629 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
32630 var u = t.isub(c).iushrn(this.shift);
32633 if (u.cmp(this.m)
>=
0) {
32634 res = u.isub(this.m);
32635 } else if (u.cmpn(
0) <
0) {
32636 res = u.iadd(this.m);
32639 return res._forceRed(this);
32642 Mont.prototype.mul = function mul (a, b) {
32643 if (a.isZero() || b.isZero()) return new BN(
0)._forceRed(this);
32646 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
32647 var u = t.isub(c).iushrn(this.shift);
32649 if (u.cmp(this.m)
>=
0) {
32650 res = u.isub(this.m);
32651 } else if (u.cmpn(
0) <
0) {
32652 res = u.iadd(this.m);
32655 return res._forceRed(this);
32658 Mont.prototype.invm = function invm (a) {
32659 // (AR)^-
1 * R^
2 = (A^-
1 * R^-
1) * R^
2 = A^-
1 * R
32660 var res = this.imod(a._invmp(this.m).mul(this.r2));
32661 return res._forceRed(this);
32663 })(typeof module === 'undefined' || module, this);
32665 },{}],
34:[function(require,module,exports){
32668 module.exports = function rand(len) {
32670 r = new Rand(null);
32672 return r.generate(len);
32675 function Rand(rand) {
32678 module.exports.Rand = Rand;
32680 Rand.prototype.generate = function generate(len) {
32681 return this._rand(len);
32684 if (typeof self === 'object') {
32685 if (self.crypto && self.crypto.getRandomValues) {
32687 Rand.prototype._rand = function _rand(n) {
32688 var arr = new Uint8Array(n);
32689 self.crypto.getRandomValues(arr);
32692 } else if (self.msCrypto && self.msCrypto.getRandomValues) {
32694 Rand.prototype._rand = function _rand(n) {
32695 var arr = new Uint8Array(n);
32696 self.msCrypto.getRandomValues(arr);
32701 Rand.prototype._rand = function() {
32702 throw new Error('Not implemented yet');
32706 // Node.js or Web worker with no crypto support
32708 var crypto = require('crypto');
32710 Rand.prototype._rand = function _rand(n) {
32711 return crypto.randomBytes(n);
32714 // Emulate crypto API using randy
32715 Rand.prototype._rand = function _rand(n) {
32716 var res = new Uint8Array(n);
32717 for (var i =
0; i < res.length; i++)
32718 res[i] = this.rand.getByte();
32724 },{"crypto":
3}],
35:[function(require,module,exports){
32725 (function (Buffer){
32726 var Transform = require('stream').Transform
32727 var inherits = require('inherits')
32728 var StringDecoder = require('string_decoder').StringDecoder
32729 module.exports = CipherBase
32730 inherits(CipherBase, Transform)
32731 function CipherBase (hashMode) {
32732 Transform.call(this)
32733 this.hashMode = typeof hashMode === 'string'
32734 if (this.hashMode) {
32735 this[hashMode] = this._finalOrDigest
32737 this.final = this._finalOrDigest
32739 this._decoder = null
32740 this._encoding = null
32742 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
32743 if (typeof data === 'string') {
32744 data = new Buffer(data, inputEnc)
32746 var outData = this._update(data)
32747 if (this.hashMode) {
32751 outData = this._toString(outData, outputEnc)
32756 CipherBase.prototype.setAutoPadding = function () {}
32758 CipherBase.prototype.getAuthTag = function () {
32759 throw new Error('trying to get auth tag in unsupported state')
32762 CipherBase.prototype.setAuthTag = function () {
32763 throw new Error('trying to set auth tag in unsupported state')
32766 CipherBase.prototype.setAAD = function () {
32767 throw new Error('trying to set aad in unsupported state')
32770 CipherBase.prototype._transform = function (data, _, next) {
32773 if (this.hashMode) {
32776 this.push(this._update(data))
32784 CipherBase.prototype._flush = function (done) {
32787 this.push(this._final())
32794 CipherBase.prototype._finalOrDigest = function (outputEnc) {
32795 var outData = this._final() || new Buffer('')
32797 outData = this._toString(outData, outputEnc, true)
32802 CipherBase.prototype._toString = function (value, enc, fin) {
32803 if (!this._decoder) {
32804 this._decoder = new StringDecoder(enc)
32805 this._encoding = enc
32807 if (this._encoding !== enc) {
32808 throw new Error('can\'t switch encodings')
32810 var out = this._decoder.write(value)
32812 out += this._decoder.end()
32817 }).call(this,require("buffer").Buffer)
32818 },{"buffer":
5,"inherits":
63,"stream":
25,"string_decoder":
26}],
36:[function(require,module,exports){
32819 (function (Buffer){
32821 var inherits = require('inherits')
32822 var md5 = require('./md5')
32823 var rmd160 = require('ripemd160')
32824 var sha = require('sha.js')
32826 var Base = require('cipher-base')
32828 function HashNoConstructor(hash) {
32829 Base.call(this, 'digest')
32835 inherits(HashNoConstructor, Base)
32837 HashNoConstructor.prototype._update = function (data) {
32838 this.buffers.push(data)
32841 HashNoConstructor.prototype._final = function () {
32842 var buf = Buffer.concat(this.buffers)
32843 var r = this._hash(buf)
32844 this.buffers = null
32849 function Hash(hash) {
32850 Base.call(this, 'digest')
32855 inherits(Hash, Base)
32857 Hash.prototype._update = function (data) {
32858 this._hash.update(data)
32861 Hash.prototype._final = function () {
32862 return this._hash.digest()
32865 module.exports = function createHash (alg) {
32866 alg = alg.toLowerCase()
32867 if ('md5' === alg) return new HashNoConstructor(md5)
32868 if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)
32870 return new Hash(sha(alg))
32873 }).call(this,require("buffer").Buffer)
32874 },{"./md5":
38,"buffer":
5,"cipher-base":
35,"inherits":
63,"ripemd160":
71,"sha.js":
80}],
37:[function(require,module,exports){
32875 (function (Buffer){
32878 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
32881 function toArray(buf, bigEndian) {
32882 if ((buf.length % intSize) !==
0) {
32883 var len = buf.length + (intSize - (buf.length % intSize));
32884 buf = Buffer.concat([buf, zeroBuffer], len);
32888 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
32889 for (var i =
0; i < buf.length; i += intSize) {
32890 arr.push(fn.call(buf, i));
32895 function toBuffer(arr, size, bigEndian) {
32896 var buf = new Buffer(size);
32897 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
32898 for (var i =
0; i < arr.length; i++) {
32899 fn.call(buf, arr[i], i *
4, true);
32904 function hash(buf, fn, hashSize, bigEndian) {
32905 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
32906 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
32907 return toBuffer(arr, hashSize, bigEndian);
32909 exports.hash = hash;
32910 }).call(this,require("buffer").Buffer)
32911 },{"buffer":
5}],
38:[function(require,module,exports){
32914 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
32915 * Digest Algorithm, as defined in RFC
1321.
32916 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
32917 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
32918 * Distributed under the BSD License
32919 * See http://pajhome.org.uk/crypt/md5 for more info.
32922 var helpers = require('./helpers');
32925 * Calculate the MD5 of an array of little-endian words, and a bit length
32927 function core_md5(x, len)
32929 /* append padding */
32930 x[len
>> 5] |=
0x80 << ((len) %
32);
32931 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
32933 var a =
1732584193;
32934 var b = -
271733879;
32935 var c = -
1732584194;
32938 for(var i =
0; i < x.length; i +=
16)
32945 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
32946 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
32947 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
32948 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
32949 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
32950 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
32951 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
32952 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
32953 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
32954 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
32955 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
32956 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
32957 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
32958 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
32959 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
32960 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
32962 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
32963 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
32964 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
32965 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
32966 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
32967 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
32968 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
32969 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
32970 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
32971 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
32972 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
32973 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
32974 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
32975 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
32976 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
32977 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
32979 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
32980 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
32981 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
32982 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
32983 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
32984 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
32985 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
32986 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
32987 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
32988 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
32989 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
32990 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
32991 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
32992 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
32993 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
32994 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
32996 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
32997 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
32998 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
32999 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
33000 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
33001 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
33002 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
33003 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
33004 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
33005 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
33006 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
33007 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
33008 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
33009 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
33010 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
33011 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
33013 a = safe_add(a, olda);
33014 b = safe_add(b, oldb);
33015 c = safe_add(c, oldc);
33016 d = safe_add(d, oldd);
33018 return Array(a, b, c, d);
33023 * These functions implement the four basic operations the algorithm uses.
33025 function md5_cmn(q, a, b, x, s, t)
33027 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
33029 function md5_ff(a, b, c, d, x, s, t)
33031 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
33033 function md5_gg(a, b, c, d, x, s, t)
33035 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
33037 function md5_hh(a, b, c, d, x, s, t)
33039 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
33041 function md5_ii(a, b, c, d, x, s, t)
33043 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
33047 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
33048 * to work around bugs in some JS interpreters.
33050 function safe_add(x, y)
33052 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
33053 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
33054 return (msw <<
16) | (lsw &
0xFFFF);
33058 * Bitwise rotate a
32-bit number to the left.
33060 function bit_rol(num, cnt)
33062 return (num << cnt) | (num
>>> (
32 - cnt));
33065 module.exports = function md5(buf) {
33066 return helpers.hash(buf, core_md5,
16);
33068 },{"./helpers":
37}],
39:[function(require,module,exports){
33071 var elliptic = exports;
33073 elliptic.version = require('../package.json').version;
33074 elliptic.utils = require('./elliptic/utils');
33075 elliptic.rand = require('brorand');
33076 elliptic.hmacDRBG = require('./elliptic/hmac-drbg');
33077 elliptic.curve = require('./elliptic/curve');
33078 elliptic.curves = require('./elliptic/curves');
33081 elliptic.ec = require('./elliptic/ec');
33082 elliptic.eddsa = require('./elliptic/eddsa');
33084 },{"../package.json":
55,"./elliptic/curve":
42,"./elliptic/curves":
45,"./elliptic/ec":
46,"./elliptic/eddsa":
49,"./elliptic/hmac-drbg":
52,"./elliptic/utils":
54,"brorand":
34}],
40:[function(require,module,exports){
33087 var BN = require('bn.js');
33088 var elliptic = require('../../elliptic');
33089 var utils = elliptic.utils;
33090 var getNAF = utils.getNAF;
33091 var getJSF = utils.getJSF;
33092 var assert = utils.assert;
33094 function BaseCurve(type, conf) {
33096 this.p = new BN(conf.p,
16);
33098 // Use Montgomery, when there is no fast reduction for the prime
33099 this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
33101 // Useful for many curves
33102 this.zero = new BN(
0).toRed(this.red);
33103 this.one = new BN(
1).toRed(this.red);
33104 this.two = new BN(
2).toRed(this.red);
33106 // Curve configuration, optional
33107 this.n = conf.n && new BN(conf.n,
16);
33108 this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
33110 // Temporary arrays
33111 this._wnafT1 = new Array(
4);
33112 this._wnafT2 = new Array(
4);
33113 this._wnafT3 = new Array(
4);
33114 this._wnafT4 = new Array(
4);
33116 // Generalized Greg Maxwell's trick
33117 var adjustCount = this.n && this.p.div(this.n);
33118 if (!adjustCount || adjustCount.cmpn(
100)
> 0) {
33121 this._maxwellTrick = true;
33122 this.redN = this.n.toRed(this.red);
33125 module.exports = BaseCurve;
33127 BaseCurve.prototype.point = function point() {
33128 throw new Error('Not implemented');
33131 BaseCurve.prototype.validate = function validate() {
33132 throw new Error('Not implemented');
33135 BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
33136 assert(p.precomputed);
33137 var doubles = p._getDoubles();
33139 var naf = getNAF(k,
1);
33140 var I = (
1 << (doubles.step +
1)) - (doubles.step %
2 ===
0 ?
2 :
1);
33143 // Translate into more windowed form
33145 for (var j =
0; j < naf.length; j += doubles.step) {
33147 for (var k = j + doubles.step -
1; k
>= j; k--)
33148 nafW = (nafW <<
1) + naf[k];
33152 var a = this.jpoint(null, null, null);
33153 var b = this.jpoint(null, null, null);
33154 for (var i = I; i
> 0; i--) {
33155 for (var j =
0; j < repr.length; j++) {
33156 var nafW = repr[j];
33158 b = b.mixedAdd(doubles.points[j]);
33159 else if (nafW === -i)
33160 b = b.mixedAdd(doubles.points[j].neg());
33167 BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
33170 // Precompute window
33171 var nafPoints = p._getNAFPoints(w);
33173 var wnd = nafPoints.points;
33176 var naf = getNAF(k, w);
33178 // Add `this`*(N+
1) for every w-NAF index
33179 var acc = this.jpoint(null, null, null);
33180 for (var i = naf.length -
1; i
>=
0; i--) {
33182 for (var k =
0; i
>=
0 && naf[i] ===
0; i--)
33192 if (p.type === 'affine') {
33195 acc = acc.mixedAdd(wnd[(z -
1)
>> 1]);
33197 acc = acc.mixedAdd(wnd[(-z -
1)
>> 1].neg());
33201 acc = acc.add(wnd[(z -
1)
>> 1]);
33203 acc = acc.add(wnd[(-z -
1)
>> 1].neg());
33206 return p.type === 'affine' ? acc.toP() : acc;
33209 BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
33214 var wndWidth = this._wnafT1;
33215 var wnd = this._wnafT2;
33216 var naf = this._wnafT3;
33220 for (var i =
0; i < len; i++) {
33222 var nafPoints = p._getNAFPoints(defW);
33223 wndWidth[i] = nafPoints.wnd;
33224 wnd[i] = nafPoints.points;
33227 // Comb small window NAFs
33228 for (var i = len -
1; i
>=
1; i -=
2) {
33231 if (wndWidth[a] !==
1 || wndWidth[b] !==
1) {
33232 naf[a] = getNAF(coeffs[a], wndWidth[a]);
33233 naf[b] = getNAF(coeffs[b], wndWidth[b]);
33234 max = Math.max(naf[a].length, max);
33235 max = Math.max(naf[b].length, max);
33246 // Try to avoid Projective points, if possible
33247 if (points[a].y.cmp(points[b].y) ===
0) {
33248 comb[
1] = points[a].add(points[b]);
33249 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
33250 } else if (points[a].y.cmp(points[b].y.redNeg()) ===
0) {
33251 comb[
1] = points[a].toJ().mixedAdd(points[b]);
33252 comb[
2] = points[a].add(points[b].neg());
33254 comb[
1] = points[a].toJ().mixedAdd(points[b]);
33255 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
33270 var jsf = getJSF(coeffs[a], coeffs[b]);
33271 max = Math.max(jsf[
0].length, max);
33272 naf[a] = new Array(max);
33273 naf[b] = new Array(max);
33274 for (var j =
0; j < max; j++) {
33275 var ja = jsf[
0][j] |
0;
33276 var jb = jsf[
1][j] |
0;
33278 naf[a][j] = index[(ja +
1) *
3 + (jb +
1)];
33284 var acc = this.jpoint(null, null, null);
33285 var tmp = this._wnafT4;
33286 for (var i = max; i
>=
0; i--) {
33291 for (var j =
0; j < len; j++) {
33292 tmp[j] = naf[j][i] |
0;
33307 for (var j =
0; j < len; j++) {
33313 p = wnd[j][(z -
1)
>> 1];
33315 p = wnd[j][(-z -
1)
>> 1].neg();
33317 if (p.type === 'affine')
33318 acc = acc.mixedAdd(p);
33323 // Zeroify references
33324 for (var i =
0; i < len; i++)
33327 if (jacobianResult)
33333 function BasePoint(curve, type) {
33334 this.curve = curve;
33336 this.precomputed = null;
33338 BaseCurve.BasePoint = BasePoint;
33340 BasePoint.prototype.eq = function eq(/*other*/) {
33341 throw new Error('Not implemented');
33344 BasePoint.prototype.validate = function validate() {
33345 return this.curve.validate(this);
33348 BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
33349 bytes = utils.toArray(bytes, enc);
33351 var len = this.p.byteLength();
33353 // uncompressed, hybrid-odd, hybrid-even
33354 if ((bytes[
0] ===
0x04 || bytes[
0] ===
0x06 || bytes[
0] ===
0x07) &&
33355 bytes.length -
1 ===
2 * len) {
33356 if (bytes[
0] ===
0x06)
33357 assert(bytes[bytes.length -
1] %
2 ===
0);
33358 else if (bytes[
0] ===
0x07)
33359 assert(bytes[bytes.length -
1] %
2 ===
1);
33361 var res = this.point(bytes.slice(
1,
1 + len),
33362 bytes.slice(
1 + len,
1 +
2 * len));
33365 } else if ((bytes[
0] ===
0x02 || bytes[
0] ===
0x03) &&
33366 bytes.length -
1 === len) {
33367 return this.pointFromX(bytes.slice(
1,
1 + len), bytes[
0] ===
0x03);
33369 throw new Error('Unknown point format');
33372 BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
33373 return this.encode(enc, true);
33376 BasePoint.prototype._encode = function _encode(compact) {
33377 var len = this.curve.p.byteLength();
33378 var x = this.getX().toArray('be', len);
33381 return [ this.getY().isEven() ?
0x02 :
0x03 ].concat(x);
33383 return [
0x04 ].concat(x, this.getY().toArray('be', len)) ;
33386 BasePoint.prototype.encode = function encode(enc, compact) {
33387 return utils.encode(this._encode(compact), enc);
33390 BasePoint.prototype.precompute = function precompute(power) {
33391 if (this.precomputed)
33394 var precomputed = {
33399 precomputed.naf = this._getNAFPoints(
8);
33400 precomputed.doubles = this._getDoubles(
4, power);
33401 precomputed.beta = this._getBeta();
33402 this.precomputed = precomputed;
33407 BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
33408 if (!this.precomputed)
33411 var doubles = this.precomputed.doubles;
33415 return doubles.points.length
>= Math.ceil((k.bitLength() +
1) / doubles.step);
33418 BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
33419 if (this.precomputed && this.precomputed.doubles)
33420 return this.precomputed.doubles;
33422 var doubles = [ this ];
33424 for (var i =
0; i < power; i += step) {
33425 for (var j =
0; j < step; j++)
33435 BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
33436 if (this.precomputed && this.precomputed.naf)
33437 return this.precomputed.naf;
33439 var res = [ this ];
33440 var max = (
1 << wnd) -
1;
33441 var dbl = max ===
1 ? null : this.dbl();
33442 for (var i =
1; i < max; i++)
33443 res[i] = res[i -
1].add(dbl);
33450 BasePoint.prototype._getBeta = function _getBeta() {
33454 BasePoint.prototype.dblp = function dblp(k) {
33456 for (var i =
0; i < k; i++)
33461 },{"../../elliptic":
39,"bn.js":
33}],
41:[function(require,module,exports){
33464 var curve = require('../curve');
33465 var elliptic = require('../../elliptic');
33466 var BN = require('bn.js');
33467 var inherits = require('inherits');
33468 var Base = curve.base;
33470 var assert = elliptic.utils.assert;
33472 function EdwardsCurve(conf) {
33473 // NOTE: Important as we are creating point in Base.call()
33474 this.twisted = (conf.a |
0) !==
1;
33475 this.mOneA = this.twisted && (conf.a |
0) === -
1;
33476 this.extended = this.mOneA;
33478 Base.call(this, 'edwards', conf);
33480 this.a = new BN(conf.a,
16).umod(this.red.m);
33481 this.a = this.a.toRed(this.red);
33482 this.c = new BN(conf.c,
16).toRed(this.red);
33483 this.c2 = this.c.redSqr();
33484 this.d = new BN(conf.d,
16).toRed(this.red);
33485 this.dd = this.d.redAdd(this.d);
33487 assert(!this.twisted || this.c.fromRed().cmpn(
1) ===
0);
33488 this.oneC = (conf.c |
0) ===
1;
33490 inherits(EdwardsCurve, Base);
33491 module.exports = EdwardsCurve;
33493 EdwardsCurve.prototype._mulA = function _mulA(num) {
33495 return num.redNeg();
33497 return this.a.redMul(num);
33500 EdwardsCurve.prototype._mulC = function _mulC(num) {
33504 return this.c.redMul(num);
33507 // Just for compatibility with Short curve
33508 EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
33509 return this.point(x, y, z, t);
33512 EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
33515 x = x.toRed(this.red);
33517 var x2 = x.redSqr();
33518 var rhs = this.c2.redSub(this.a.redMul(x2));
33519 var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
33521 var y2 = rhs.redMul(lhs.redInvm());
33522 var y = y2.redSqrt();
33523 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
33524 throw new Error('invalid point');
33526 var isOdd = y.fromRed().isOdd();
33527 if (odd && !isOdd || !odd && isOdd)
33530 return this.point(x, y);
33533 EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
33536 y = y.toRed(this.red);
33538 // x^
2 = (y^
2 -
1) / (d y^
2 +
1)
33539 var y2 = y.redSqr();
33540 var lhs = y2.redSub(this.one);
33541 var rhs = y2.redMul(this.d).redAdd(this.one);
33542 var x2 = lhs.redMul(rhs.redInvm());
33544 if (x2.cmp(this.zero) ===
0) {
33546 throw new Error('invalid point');
33548 return this.point(this.zero, y);
33551 var x = x2.redSqrt();
33552 if (x.redSqr().redSub(x2).cmp(this.zero) !==
0)
33553 throw new Error('invalid point');
33555 if (x.isOdd() !== odd)
33558 return this.point(x, y);
33561 EdwardsCurve.prototype.validate = function validate(point) {
33562 if (point.isInfinity())
33565 // Curve: A * X^
2 + Y^
2 = C^
2 * (
1 + D * X^
2 * Y^
2)
33568 var x2 = point.x.redSqr();
33569 var y2 = point.y.redSqr();
33570 var lhs = x2.redMul(this.a).redAdd(y2);
33571 var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
33573 return lhs.cmp(rhs) ===
0;
33576 function Point(curve, x, y, z, t) {
33577 Base.BasePoint.call(this, curve, 'projective');
33578 if (x === null && y === null && z === null) {
33579 this.x = this.curve.zero;
33580 this.y = this.curve.one;
33581 this.z = this.curve.one;
33582 this.t = this.curve.zero;
33585 this.x = new BN(x,
16);
33586 this.y = new BN(y,
16);
33587 this.z = z ? new BN(z,
16) : this.curve.one;
33588 this.t = t && new BN(t,
16);
33590 this.x = this.x.toRed(this.curve.red);
33592 this.y = this.y.toRed(this.curve.red);
33594 this.z = this.z.toRed(this.curve.red);
33595 if (this.t && !this.t.red)
33596 this.t = this.t.toRed(this.curve.red);
33597 this.zOne = this.z === this.curve.one;
33599 // Use extended coordinates
33600 if (this.curve.extended && !this.t) {
33601 this.t = this.x.redMul(this.y);
33603 this.t = this.t.redMul(this.z.redInvm());
33607 inherits(Point, Base.BasePoint);
33609 EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
33610 return Point.fromJSON(this, obj);
33613 EdwardsCurve.prototype.point = function point(x, y, z, t) {
33614 return new Point(this, x, y, z, t);
33617 Point.fromJSON = function fromJSON(curve, obj) {
33618 return new Point(curve, obj[
0], obj[
1], obj[
2]);
33621 Point.prototype.inspect = function inspect() {
33622 if (this.isInfinity())
33623 return '
<EC Point Infinity
>';
33624 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
33625 ' y: ' + this.y.fromRed().toString(
16,
2) +
33626 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
33629 Point.prototype.isInfinity = function isInfinity() {
33630 // XXX This code assumes that zero is always zero in red
33631 return this.x.cmpn(
0) ===
0 &&
33632 this.y.cmp(this.z) ===
0;
33635 Point.prototype._extDbl = function _extDbl() {
33636 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
33637 // #doubling-dbl-
2008-hwcd
33641 var a = this.x.redSqr();
33643 var b = this.y.redSqr();
33645 var c = this.z.redSqr();
33648 var d = this.curve._mulA(a);
33649 // E = (X1 + Y1)^
2 - A - B
33650 var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
33652 var g = d.redAdd(b);
33654 var f = g.redSub(c);
33656 var h = d.redSub(b);
33658 var nx = e.redMul(f);
33660 var ny = g.redMul(h);
33662 var nt = e.redMul(h);
33664 var nz = f.redMul(g);
33665 return this.curve.point(nx, ny, nz, nt);
33668 Point.prototype._projDbl = function _projDbl() {
33669 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
33670 // #doubling-dbl-
2008-bbjlp
33671 // #doubling-dbl-
2007-bl
33673 // Generally
3M +
4S or
2M +
4S
33676 var b = this.x.redAdd(this.y).redSqr();
33678 var c = this.x.redSqr();
33680 var d = this.y.redSqr();
33685 if (this.curve.twisted) {
33687 var e = this.curve._mulA(c);
33689 var f = e.redAdd(d);
33691 // X3 = (B - C - D) * (F -
2)
33692 nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
33693 // Y3 = F * (E - D)
33694 ny = f.redMul(e.redSub(d));
33695 // Z3 = F^
2 -
2 * F
33696 nz = f.redSqr().redSub(f).redSub(f);
33699 var h = this.z.redSqr();
33701 var j = f.redSub(h).redISub(h);
33703 nx = b.redSub(c).redISub(d).redMul(j);
33704 // Y3 = F * (E - D)
33705 ny = f.redMul(e.redSub(d));
33711 var e = c.redAdd(d);
33713 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr();
33715 var j = e.redSub(h).redSub(h);
33716 // X3 = c * (B - E) * J
33717 nx = this.curve._mulC(b.redISub(e)).redMul(j);
33718 // Y3 = c * E * (C - D)
33719 ny = this.curve._mulC(e).redMul(c.redISub(d));
33723 return this.curve.point(nx, ny, nz);
33726 Point.prototype.dbl = function dbl() {
33727 if (this.isInfinity())
33730 // Double in extended coordinates
33731 if (this.curve.extended)
33732 return this._extDbl();
33734 return this._projDbl();
33737 Point.prototype._extAdd = function _extAdd(p) {
33738 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
33739 // #addition-add-
2008-hwcd-
3
33742 // A = (Y1 - X1) * (Y2 - X2)
33743 var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
33744 // B = (Y1 + X1) * (Y2 + X2)
33745 var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
33747 var c = this.t.redMul(this.curve.dd).redMul(p.t);
33749 var d = this.z.redMul(p.z.redAdd(p.z));
33751 var e = b.redSub(a);
33753 var f = d.redSub(c);
33755 var g = d.redAdd(c);
33757 var h = b.redAdd(a);
33759 var nx = e.redMul(f);
33761 var ny = g.redMul(h);
33763 var nt = e.redMul(h);
33765 var nz = f.redMul(g);
33766 return this.curve.point(nx, ny, nz, nt);
33769 Point.prototype._projAdd = function _projAdd(p) {
33770 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
33771 // #addition-add-
2008-bbjlp
33772 // #addition-add-
2007-bl
33776 var a = this.z.redMul(p.z);
33778 var b = a.redSqr();
33780 var c = this.x.redMul(p.x);
33782 var d = this.y.redMul(p.y);
33784 var e = this.curve.d.redMul(c).redMul(d);
33786 var f = b.redSub(e);
33788 var g = b.redAdd(e);
33789 // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
33790 var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
33791 var nx = a.redMul(f).redMul(tmp);
33794 if (this.curve.twisted) {
33795 // Y3 = A * G * (D - a * C)
33796 ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
33800 // Y3 = A * G * (D - C)
33801 ny = a.redMul(g).redMul(d.redSub(c));
33803 nz = this.curve._mulC(f).redMul(g);
33805 return this.curve.point(nx, ny, nz);
33808 Point.prototype.add = function add(p) {
33809 if (this.isInfinity())
33811 if (p.isInfinity())
33814 if (this.curve.extended)
33815 return this._extAdd(p);
33817 return this._projAdd(p);
33820 Point.prototype.mul = function mul(k) {
33821 if (this._hasDoubles(k))
33822 return this.curve._fixedNafMul(this, k);
33824 return this.curve._wnafMul(this, k);
33827 Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
33828 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, false);
33831 Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
33832 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, true);
33835 Point.prototype.normalize = function normalize() {
33839 // Normalize coordinates
33840 var zi = this.z.redInvm();
33841 this.x = this.x.redMul(zi);
33842 this.y = this.y.redMul(zi);
33844 this.t = this.t.redMul(zi);
33845 this.z = this.curve.one;
33850 Point.prototype.neg = function neg() {
33851 return this.curve.point(this.x.redNeg(),
33854 this.t && this.t.redNeg());
33857 Point.prototype.getX = function getX() {
33859 return this.x.fromRed();
33862 Point.prototype.getY = function getY() {
33864 return this.y.fromRed();
33867 Point.prototype.eq = function eq(other) {
33868 return this === other ||
33869 this.getX().cmp(other.getX()) ===
0 &&
33870 this.getY().cmp(other.getY()) ===
0;
33873 Point.prototype.eqXToP = function eqXToP(x) {
33874 var rx = x.toRed(this.curve.red).redMul(this.z);
33875 if (this.x.cmp(rx) ===
0)
33878 var xc = x.clone();
33879 var t = this.curve.redN.redMul(this.z);
33881 xc.iadd(this.curve.n);
33882 if (xc.cmp(this.curve.p)
>=
0)
33886 if (this.x.cmp(rx) ===
0)
33892 // Compatibility with BaseCurve
33893 Point.prototype.toP = Point.prototype.normalize;
33894 Point.prototype.mixedAdd = Point.prototype.add;
33896 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
42:[function(require,module,exports){
33899 var curve = exports;
33901 curve.base = require('./base');
33902 curve.short = require('./short');
33903 curve.mont = require('./mont');
33904 curve.edwards = require('./edwards');
33906 },{"./base":
40,"./edwards":
41,"./mont":
43,"./short":
44}],
43:[function(require,module,exports){
33909 var curve = require('../curve');
33910 var BN = require('bn.js');
33911 var inherits = require('inherits');
33912 var Base = curve.base;
33914 var elliptic = require('../../elliptic');
33915 var utils = elliptic.utils;
33917 function MontCurve(conf) {
33918 Base.call(this, 'mont', conf);
33920 this.a = new BN(conf.a,
16).toRed(this.red);
33921 this.b = new BN(conf.b,
16).toRed(this.red);
33922 this.i4 = new BN(
4).toRed(this.red).redInvm();
33923 this.two = new BN(
2).toRed(this.red);
33924 this.a24 = this.i4.redMul(this.a.redAdd(this.two));
33926 inherits(MontCurve, Base);
33927 module.exports = MontCurve;
33929 MontCurve.prototype.validate = function validate(point) {
33930 var x = point.normalize().x;
33931 var x2 = x.redSqr();
33932 var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
33933 var y = rhs.redSqrt();
33935 return y.redSqr().cmp(rhs) ===
0;
33938 function Point(curve, x, z) {
33939 Base.BasePoint.call(this, curve, 'projective');
33940 if (x === null && z === null) {
33941 this.x = this.curve.one;
33942 this.z = this.curve.zero;
33944 this.x = new BN(x,
16);
33945 this.z = new BN(z,
16);
33947 this.x = this.x.toRed(this.curve.red);
33949 this.z = this.z.toRed(this.curve.red);
33952 inherits(Point, Base.BasePoint);
33954 MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
33955 return this.point(utils.toArray(bytes, enc),
1);
33958 MontCurve.prototype.point = function point(x, z) {
33959 return new Point(this, x, z);
33962 MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
33963 return Point.fromJSON(this, obj);
33966 Point.prototype.precompute = function precompute() {
33970 Point.prototype._encode = function _encode() {
33971 return this.getX().toArray('be', this.curve.p.byteLength());
33974 Point.fromJSON = function fromJSON(curve, obj) {
33975 return new Point(curve, obj[
0], obj[
1] || curve.one);
33978 Point.prototype.inspect = function inspect() {
33979 if (this.isInfinity())
33980 return '
<EC Point Infinity
>';
33981 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
33982 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
33985 Point.prototype.isInfinity = function isInfinity() {
33986 // XXX This code assumes that zero is always zero in red
33987 return this.z.cmpn(
0) ===
0;
33990 Point.prototype.dbl = function dbl() {
33991 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-
1987-m-
3
33995 var a = this.x.redAdd(this.z);
33997 var aa = a.redSqr();
33999 var b = this.x.redSub(this.z);
34001 var bb = b.redSqr();
34003 var c = aa.redSub(bb);
34005 var nx = aa.redMul(bb);
34006 // Z3 = C * (BB + A24 * C)
34007 var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
34008 return this.curve.point(nx, nz);
34011 Point.prototype.add = function add() {
34012 throw new Error('Not supported on Montgomery curve');
34015 Point.prototype.diffAdd = function diffAdd(p, diff) {
34016 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-
1987-m-
3
34020 var a = this.x.redAdd(this.z);
34022 var b = this.x.redSub(this.z);
34024 var c = p.x.redAdd(p.z);
34026 var d = p.x.redSub(p.z);
34028 var da = d.redMul(a);
34030 var cb = c.redMul(b);
34031 // X5 = Z1 * (DA + CB)^
2
34032 var nx = diff.z.redMul(da.redAdd(cb).redSqr());
34033 // Z5 = X1 * (DA - CB)^
2
34034 var nz = diff.x.redMul(da.redISub(cb).redSqr());
34035 return this.curve.point(nx, nz);
34038 Point.prototype.mul = function mul(k) {
34040 var a = this; // (N /
2) * Q + Q
34041 var b = this.curve.point(null, null); // (N /
2) * Q
34044 for (var bits = []; t.cmpn(
0) !==
0; t.iushrn(
1))
34045 bits.push(t.andln(
1));
34047 for (var i = bits.length -
1; i
>=
0; i--) {
34048 if (bits[i] ===
0) {
34049 // N * Q + Q = ((N /
2) * Q + Q)) + (N /
2) * Q
34050 a = a.diffAdd(b, c);
34051 // N * Q =
2 * ((N /
2) * Q + Q))
34054 // N * Q = ((N /
2) * Q + Q) + ((N /
2) * Q)
34055 b = a.diffAdd(b, c);
34056 // N * Q + Q =
2 * ((N /
2) * Q + Q)
34063 Point.prototype.mulAdd = function mulAdd() {
34064 throw new Error('Not supported on Montgomery curve');
34067 Point.prototype.jumlAdd = function jumlAdd() {
34068 throw new Error('Not supported on Montgomery curve');
34071 Point.prototype.eq = function eq(other) {
34072 return this.getX().cmp(other.getX()) ===
0;
34075 Point.prototype.normalize = function normalize() {
34076 this.x = this.x.redMul(this.z.redInvm());
34077 this.z = this.curve.one;
34081 Point.prototype.getX = function getX() {
34082 // Normalize coordinates
34085 return this.x.fromRed();
34088 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
44:[function(require,module,exports){
34091 var curve = require('../curve');
34092 var elliptic = require('../../elliptic');
34093 var BN = require('bn.js');
34094 var inherits = require('inherits');
34095 var Base = curve.base;
34097 var assert = elliptic.utils.assert;
34099 function ShortCurve(conf) {
34100 Base.call(this, 'short', conf);
34102 this.a = new BN(conf.a,
16).toRed(this.red);
34103 this.b = new BN(conf.b,
16).toRed(this.red);
34104 this.tinv = this.two.redInvm();
34106 this.zeroA = this.a.fromRed().cmpn(
0) ===
0;
34107 this.threeA = this.a.fromRed().sub(this.p).cmpn(-
3) ===
0;
34109 // If the curve is endomorphic, precalculate beta and lambda
34110 this.endo = this._getEndomorphism(conf);
34111 this._endoWnafT1 = new Array(
4);
34112 this._endoWnafT2 = new Array(
4);
34114 inherits(ShortCurve, Base);
34115 module.exports = ShortCurve;
34117 ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
34118 // No efficient endomorphism
34119 if (!this.zeroA || !this.g || !this.n || this.p.modn(
3) !==
1)
34122 // Compute beta and lambda, that lambda * P = (beta * Px; Py)
34126 beta = new BN(conf.beta,
16).toRed(this.red);
34128 var betas = this._getEndoRoots(this.p);
34129 // Choose the smallest beta
34130 beta = betas[
0].cmp(betas[
1]) <
0 ? betas[
0] : betas[
1];
34131 beta = beta.toRed(this.red);
34134 lambda = new BN(conf.lambda,
16);
34136 // Choose the lambda that is matching selected beta
34137 var lambdas = this._getEndoRoots(this.n);
34138 if (this.g.mul(lambdas[
0]).x.cmp(this.g.x.redMul(beta)) ===
0) {
34139 lambda = lambdas[
0];
34141 lambda = lambdas[
1];
34142 assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) ===
0);
34146 // Get basis vectors, used for balanced length-two representation
34149 basis = conf.basis.map(function(vec) {
34151 a: new BN(vec.a,
16),
34152 b: new BN(vec.b,
16)
34156 basis = this._getEndoBasis(lambda);
34166 ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
34167 // Find roots of for x^
2 + x +
1 in F
34168 // Root = (-
1 +- Sqrt(-
3)) /
2
34170 var red = num === this.p ? this.red : BN.mont(num);
34171 var tinv = new BN(
2).toRed(red).redInvm();
34172 var ntinv = tinv.redNeg();
34174 var s = new BN(
3).toRed(red).redNeg().redSqrt().redMul(tinv);
34176 var l1 = ntinv.redAdd(s).fromRed();
34177 var l2 = ntinv.redSub(s).fromRed();
34181 ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
34182 // aprxSqrt
>= sqrt(this.n)
34183 var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() /
2));
34186 // Run EGCD, until r(L +
1) < aprxSqrt
34188 var v = this.n.clone();
34189 var x1 = new BN(
1);
34190 var y1 = new BN(
0);
34191 var x2 = new BN(
0);
34192 var y2 = new BN(
1);
34194 // NOTE: all vectors are roots of: a + b * lambda =
0 (mod n)
34208 while (u.cmpn(
0) !==
0) {
34210 r = v.sub(q.mul(u));
34211 x = x2.sub(q.mul(x1));
34212 var y = y2.sub(q.mul(y1));
34214 if (!a1 && r.cmp(aprxSqrt) <
0) {
34219 } else if (a1 && ++i ===
2) {
34234 var len1 = a1.sqr().add(b1.sqr());
34235 var len2 = a2.sqr().add(b2.sqr());
34236 if (len2.cmp(len1)
>=
0) {
34257 ShortCurve.prototype._endoSplit = function _endoSplit(k) {
34258 var basis = this.endo.basis;
34262 var c1 = v2.b.mul(k).divRound(this.n);
34263 var c2 = v1.b.neg().mul(k).divRound(this.n);
34265 var p1 = c1.mul(v1.a);
34266 var p2 = c2.mul(v2.a);
34267 var q1 = c1.mul(v1.b);
34268 var q2 = c2.mul(v2.b);
34270 // Calculate answer
34271 var k1 = k.sub(p1).sub(p2);
34272 var k2 = q1.add(q2).neg();
34273 return { k1: k1, k2: k2 };
34276 ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
34279 x = x.toRed(this.red);
34281 var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
34282 var y = y2.redSqrt();
34283 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
34284 throw new Error('invalid point');
34286 // XXX Is there any way to tell if the number is odd without converting it
34287 // to non-red form?
34288 var isOdd = y.fromRed().isOdd();
34289 if (odd && !isOdd || !odd && isOdd)
34292 return this.point(x, y);
34295 ShortCurve.prototype.validate = function validate(point) {
34302 var ax = this.a.redMul(x);
34303 var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
34304 return y.redSqr().redISub(rhs).cmpn(
0) ===
0;
34307 ShortCurve.prototype._endoWnafMulAdd =
34308 function _endoWnafMulAdd(points, coeffs, jacobianResult) {
34309 var npoints = this._endoWnafT1;
34310 var ncoeffs = this._endoWnafT2;
34311 for (var i =
0; i < points.length; i++) {
34312 var split = this._endoSplit(coeffs[i]);
34314 var beta = p._getBeta();
34316 if (split.k1.negative) {
34320 if (split.k2.negative) {
34322 beta = beta.neg(true);
34325 npoints[i *
2] = p;
34326 npoints[i *
2 +
1] = beta;
34327 ncoeffs[i *
2] = split.k1;
34328 ncoeffs[i *
2 +
1] = split.k2;
34330 var res = this._wnafMulAdd(
1, npoints, ncoeffs, i *
2, jacobianResult);
34332 // Clean-up references to points and coefficients
34333 for (var j =
0; j < i *
2; j++) {
34340 function Point(curve, x, y, isRed) {
34341 Base.BasePoint.call(this, curve, 'affine');
34342 if (x === null && y === null) {
34347 this.x = new BN(x,
16);
34348 this.y = new BN(y,
16);
34349 // Force redgomery representation when loading from JSON
34351 this.x.forceRed(this.curve.red);
34352 this.y.forceRed(this.curve.red);
34355 this.x = this.x.toRed(this.curve.red);
34357 this.y = this.y.toRed(this.curve.red);
34361 inherits(Point, Base.BasePoint);
34363 ShortCurve.prototype.point = function point(x, y, isRed) {
34364 return new Point(this, x, y, isRed);
34367 ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
34368 return Point.fromJSON(this, obj, red);
34371 Point.prototype._getBeta = function _getBeta() {
34372 if (!this.curve.endo)
34375 var pre = this.precomputed;
34376 if (pre && pre.beta)
34379 var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
34381 var curve = this.curve;
34382 var endoMul = function(p) {
34383 return curve.point(p.x.redMul(curve.endo.beta), p.y);
34386 beta.precomputed = {
34390 points: pre.naf.points.map(endoMul)
34392 doubles: pre.doubles && {
34393 step: pre.doubles.step,
34394 points: pre.doubles.points.map(endoMul)
34401 Point.prototype.toJSON = function toJSON() {
34402 if (!this.precomputed)
34403 return [ this.x, this.y ];
34405 return [ this.x, this.y, this.precomputed && {
34406 doubles: this.precomputed.doubles && {
34407 step: this.precomputed.doubles.step,
34408 points: this.precomputed.doubles.points.slice(
1)
34410 naf: this.precomputed.naf && {
34411 wnd: this.precomputed.naf.wnd,
34412 points: this.precomputed.naf.points.slice(
1)
34417 Point.fromJSON = function fromJSON(curve, obj, red) {
34418 if (typeof obj === 'string')
34419 obj = JSON.parse(obj);
34420 var res = curve.point(obj[
0], obj[
1], red);
34424 function obj2point(obj) {
34425 return curve.point(obj[
0], obj[
1], red);
34429 res.precomputed = {
34431 doubles: pre.doubles && {
34432 step: pre.doubles.step,
34433 points: [ res ].concat(pre.doubles.points.map(obj2point))
34437 points: [ res ].concat(pre.naf.points.map(obj2point))
34443 Point.prototype.inspect = function inspect() {
34444 if (this.isInfinity())
34445 return '
<EC Point Infinity
>';
34446 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
34447 ' y: ' + this.y.fromRed().toString(
16,
2) + '
>';
34450 Point.prototype.isInfinity = function isInfinity() {
34454 Point.prototype.add = function add(p) {
34468 if (this.neg().eq(p))
34469 return this.curve.point(null, null);
34472 if (this.x.cmp(p.x) ===
0)
34473 return this.curve.point(null, null);
34475 var c = this.y.redSub(p.y);
34476 if (c.cmpn(
0) !==
0)
34477 c = c.redMul(this.x.redSub(p.x).redInvm());
34478 var nx = c.redSqr().redISub(this.x).redISub(p.x);
34479 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
34480 return this.curve.point(nx, ny);
34483 Point.prototype.dbl = function dbl() {
34488 var ys1 = this.y.redAdd(this.y);
34489 if (ys1.cmpn(
0) ===
0)
34490 return this.curve.point(null, null);
34492 var a = this.curve.a;
34494 var x2 = this.x.redSqr();
34495 var dyinv = ys1.redInvm();
34496 var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
34498 var nx = c.redSqr().redISub(this.x.redAdd(this.x));
34499 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
34500 return this.curve.point(nx, ny);
34503 Point.prototype.getX = function getX() {
34504 return this.x.fromRed();
34507 Point.prototype.getY = function getY() {
34508 return this.y.fromRed();
34511 Point.prototype.mul = function mul(k) {
34514 if (this._hasDoubles(k))
34515 return this.curve._fixedNafMul(this, k);
34516 else if (this.curve.endo)
34517 return this.curve._endoWnafMulAdd([ this ], [ k ]);
34519 return this.curve._wnafMul(this, k);
34522 Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
34523 var points = [ this, p2 ];
34524 var coeffs = [ k1, k2 ];
34525 if (this.curve.endo)
34526 return this.curve._endoWnafMulAdd(points, coeffs);
34528 return this.curve._wnafMulAdd(
1, points, coeffs,
2);
34531 Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
34532 var points = [ this, p2 ];
34533 var coeffs = [ k1, k2 ];
34534 if (this.curve.endo)
34535 return this.curve._endoWnafMulAdd(points, coeffs, true);
34537 return this.curve._wnafMulAdd(
1, points, coeffs,
2, true);
34540 Point.prototype.eq = function eq(p) {
34541 return this === p ||
34542 this.inf === p.inf &&
34543 (this.inf || this.x.cmp(p.x) ===
0 && this.y.cmp(p.y) ===
0);
34546 Point.prototype.neg = function neg(_precompute) {
34550 var res = this.curve.point(this.x, this.y.redNeg());
34551 if (_precompute && this.precomputed) {
34552 var pre = this.precomputed;
34553 var negate = function(p) {
34556 res.precomputed = {
34559 points: pre.naf.points.map(negate)
34561 doubles: pre.doubles && {
34562 step: pre.doubles.step,
34563 points: pre.doubles.points.map(negate)
34570 Point.prototype.toJ = function toJ() {
34572 return this.curve.jpoint(null, null, null);
34574 var res = this.curve.jpoint(this.x, this.y, this.curve.one);
34578 function JPoint(curve, x, y, z) {
34579 Base.BasePoint.call(this, curve, 'jacobian');
34580 if (x === null && y === null && z === null) {
34581 this.x = this.curve.one;
34582 this.y = this.curve.one;
34583 this.z = new BN(
0);
34585 this.x = new BN(x,
16);
34586 this.y = new BN(y,
16);
34587 this.z = new BN(z,
16);
34590 this.x = this.x.toRed(this.curve.red);
34592 this.y = this.y.toRed(this.curve.red);
34594 this.z = this.z.toRed(this.curve.red);
34596 this.zOne = this.z === this.curve.one;
34598 inherits(JPoint, Base.BasePoint);
34600 ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
34601 return new JPoint(this, x, y, z);
34604 JPoint.prototype.toP = function toP() {
34605 if (this.isInfinity())
34606 return this.curve.point(null, null);
34608 var zinv = this.z.redInvm();
34609 var zinv2 = zinv.redSqr();
34610 var ax = this.x.redMul(zinv2);
34611 var ay = this.y.redMul(zinv2).redMul(zinv);
34613 return this.curve.point(ax, ay);
34616 JPoint.prototype.neg = function neg() {
34617 return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
34620 JPoint.prototype.add = function add(p) {
34622 if (this.isInfinity())
34626 if (p.isInfinity())
34630 var pz2 = p.z.redSqr();
34631 var z2 = this.z.redSqr();
34632 var u1 = this.x.redMul(pz2);
34633 var u2 = p.x.redMul(z2);
34634 var s1 = this.y.redMul(pz2.redMul(p.z));
34635 var s2 = p.y.redMul(z2.redMul(this.z));
34637 var h = u1.redSub(u2);
34638 var r = s1.redSub(s2);
34639 if (h.cmpn(
0) ===
0) {
34640 if (r.cmpn(
0) !==
0)
34641 return this.curve.jpoint(null, null, null);
34646 var h2 = h.redSqr();
34647 var h3 = h2.redMul(h);
34648 var v = u1.redMul(h2);
34650 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
34651 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
34652 var nz = this.z.redMul(p.z).redMul(h);
34654 return this.curve.jpoint(nx, ny, nz);
34657 JPoint.prototype.mixedAdd = function mixedAdd(p) {
34659 if (this.isInfinity())
34663 if (p.isInfinity())
34667 var z2 = this.z.redSqr();
34669 var u2 = p.x.redMul(z2);
34671 var s2 = p.y.redMul(z2).redMul(this.z);
34673 var h = u1.redSub(u2);
34674 var r = s1.redSub(s2);
34675 if (h.cmpn(
0) ===
0) {
34676 if (r.cmpn(
0) !==
0)
34677 return this.curve.jpoint(null, null, null);
34682 var h2 = h.redSqr();
34683 var h3 = h2.redMul(h);
34684 var v = u1.redMul(h2);
34686 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
34687 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
34688 var nz = this.z.redMul(h);
34690 return this.curve.jpoint(nx, ny, nz);
34693 JPoint.prototype.dblp = function dblp(pow) {
34696 if (this.isInfinity())
34701 if (this.curve.zeroA || this.curve.threeA) {
34703 for (var i =
0; i < pow; i++)
34708 //
1M +
2S +
1A + N * (
4S +
5M +
8A)
34709 // N =
1 =
> 6M +
6S +
9A
34710 var a = this.curve.a;
34711 var tinv = this.curve.tinv;
34716 var jz4 = jz.redSqr().redSqr();
34719 var jyd = jy.redAdd(jy);
34720 for (var i =
0; i < pow; i++) {
34721 var jx2 = jx.redSqr();
34722 var jyd2 = jyd.redSqr();
34723 var jyd4 = jyd2.redSqr();
34724 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
34726 var t1 = jx.redMul(jyd2);
34727 var nx = c.redSqr().redISub(t1.redAdd(t1));
34728 var t2 = t1.redISub(nx);
34729 var dny = c.redMul(t2);
34730 dny = dny.redIAdd(dny).redISub(jyd4);
34731 var nz = jyd.redMul(jz);
34733 jz4 = jz4.redMul(jyd4);
34740 return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
34743 JPoint.prototype.dbl = function dbl() {
34744 if (this.isInfinity())
34747 if (this.curve.zeroA)
34748 return this._zeroDbl();
34749 else if (this.curve.threeA)
34750 return this._threeDbl();
34752 return this._dbl();
34755 JPoint.prototype._zeroDbl = function _zeroDbl() {
34761 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
34762 // #doubling-mdbl-
2007-bl
34766 var xx = this.x.redSqr();
34768 var yy = this.y.redSqr();
34770 var yyyy = yy.redSqr();
34771 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
34772 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34774 // M =
3 * XX + a; a =
0
34775 var m = xx.redAdd(xx).redIAdd(xx);
34777 var t = m.redSqr().redISub(s).redISub(s);
34780 var yyyy8 = yyyy.redIAdd(yyyy);
34781 yyyy8 = yyyy8.redIAdd(yyyy8);
34782 yyyy8 = yyyy8.redIAdd(yyyy8);
34786 // Y3 = M * (S - T) -
8 * YYYY
34787 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
34789 nz = this.y.redAdd(this.y);
34791 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
34792 // #doubling-dbl-
2009-l
34796 var a = this.x.redSqr();
34798 var b = this.y.redSqr();
34800 var c = b.redSqr();
34801 // D =
2 * ((X1 + B)^
2 - A - C)
34802 var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
34805 var e = a.redAdd(a).redIAdd(a);
34807 var f = e.redSqr();
34810 var c8 = c.redIAdd(c);
34811 c8 = c8.redIAdd(c8);
34812 c8 = c8.redIAdd(c8);
34815 nx = f.redISub(d).redISub(d);
34816 // Y3 = E * (D - X3) -
8 * C
34817 ny = e.redMul(d.redISub(nx)).redISub(c8);
34818 // Z3 =
2 * Y1 * Z1
34819 nz = this.y.redMul(this.z);
34820 nz = nz.redIAdd(nz);
34823 return this.curve.jpoint(nx, ny, nz);
34826 JPoint.prototype._threeDbl = function _threeDbl() {
34832 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html
34833 // #doubling-mdbl-
2007-bl
34837 var xx = this.x.redSqr();
34839 var yy = this.y.redSqr();
34841 var yyyy = yy.redSqr();
34842 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
34843 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34846 var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
34848 var t = m.redSqr().redISub(s).redISub(s);
34851 // Y3 = M * (S - T) -
8 * YYYY
34852 var yyyy8 = yyyy.redIAdd(yyyy);
34853 yyyy8 = yyyy8.redIAdd(yyyy8);
34854 yyyy8 = yyyy8.redIAdd(yyyy8);
34855 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
34857 nz = this.y.redAdd(this.y);
34859 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html#doubling-dbl-
2001-b
34863 var delta = this.z.redSqr();
34865 var gamma = this.y.redSqr();
34866 // beta = X1 * gamma
34867 var beta = this.x.redMul(gamma);
34868 // alpha =
3 * (X1 - delta) * (X1 + delta)
34869 var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
34870 alpha = alpha.redAdd(alpha).redIAdd(alpha);
34871 // X3 = alpha^
2 -
8 * beta
34872 var beta4 = beta.redIAdd(beta);
34873 beta4 = beta4.redIAdd(beta4);
34874 var beta8 = beta4.redAdd(beta4);
34875 nx = alpha.redSqr().redISub(beta8);
34876 // Z3 = (Y1 + Z1)^
2 - gamma - delta
34877 nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
34878 // Y3 = alpha * (
4 * beta - X3) -
8 * gamma^
2
34879 var ggamma8 = gamma.redSqr();
34880 ggamma8 = ggamma8.redIAdd(ggamma8);
34881 ggamma8 = ggamma8.redIAdd(ggamma8);
34882 ggamma8 = ggamma8.redIAdd(ggamma8);
34883 ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
34886 return this.curve.jpoint(nx, ny, nz);
34889 JPoint.prototype._dbl = function _dbl() {
34890 var a = this.curve.a;
34896 var jz4 = jz.redSqr().redSqr();
34898 var jx2 = jx.redSqr();
34899 var jy2 = jy.redSqr();
34901 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
34903 var jxd4 = jx.redAdd(jx);
34904 jxd4 = jxd4.redIAdd(jxd4);
34905 var t1 = jxd4.redMul(jy2);
34906 var nx = c.redSqr().redISub(t1.redAdd(t1));
34907 var t2 = t1.redISub(nx);
34909 var jyd8 = jy2.redSqr();
34910 jyd8 = jyd8.redIAdd(jyd8);
34911 jyd8 = jyd8.redIAdd(jyd8);
34912 jyd8 = jyd8.redIAdd(jyd8);
34913 var ny = c.redMul(t2).redISub(jyd8);
34914 var nz = jy.redAdd(jy).redMul(jz);
34916 return this.curve.jpoint(nx, ny, nz);
34919 JPoint.prototype.trpl = function trpl() {
34920 if (!this.curve.zeroA)
34921 return this.dbl().add(this);
34923 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html#tripling-tpl-
2007-bl
34927 var xx = this.x.redSqr();
34929 var yy = this.y.redSqr();
34931 var zz = this.z.redSqr();
34933 var yyyy = yy.redSqr();
34934 // M =
3 * XX + a * ZZ2; a =
0
34935 var m = xx.redAdd(xx).redIAdd(xx);
34937 var mm = m.redSqr();
34938 // E =
6 * ((X1 + YY)^
2 - XX - YYYY) - MM
34939 var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
34941 e = e.redAdd(e).redIAdd(e);
34944 var ee = e.redSqr();
34946 var t = yyyy.redIAdd(yyyy);
34950 // U = (M + E)^
2 - MM - EE - T
34951 var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
34952 // X3 =
4 * (X1 * EE -
4 * YY * U)
34953 var yyu4 = yy.redMul(u);
34954 yyu4 = yyu4.redIAdd(yyu4);
34955 yyu4 = yyu4.redIAdd(yyu4);
34956 var nx = this.x.redMul(ee).redISub(yyu4);
34957 nx = nx.redIAdd(nx);
34958 nx = nx.redIAdd(nx);
34959 // Y3 =
8 * Y1 * (U * (T - U) - E * EE)
34960 var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
34961 ny = ny.redIAdd(ny);
34962 ny = ny.redIAdd(ny);
34963 ny = ny.redIAdd(ny);
34964 // Z3 = (Z1 + E)^
2 - ZZ - EE
34965 var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
34967 return this.curve.jpoint(nx, ny, nz);
34970 JPoint.prototype.mul = function mul(k, kbase) {
34971 k = new BN(k, kbase);
34973 return this.curve._wnafMul(this, k);
34976 JPoint.prototype.eq = function eq(p) {
34977 if (p.type === 'affine')
34978 return this.eq(p.toJ());
34983 // x1 * z2^
2 == x2 * z1^
2
34984 var z2 = this.z.redSqr();
34985 var pz2 = p.z.redSqr();
34986 if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(
0) !==
0)
34989 // y1 * z2^
3 == y2 * z1^
3
34990 var z3 = z2.redMul(this.z);
34991 var pz3 = pz2.redMul(p.z);
34992 return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(
0) ===
0;
34995 JPoint.prototype.eqXToP = function eqXToP(x) {
34996 var zs = this.z.redSqr();
34997 var rx = x.toRed(this.curve.red).redMul(zs);
34998 if (this.x.cmp(rx) ===
0)
35001 var xc = x.clone();
35002 var t = this.curve.redN.redMul(zs);
35004 xc.iadd(this.curve.n);
35005 if (xc.cmp(this.curve.p)
>=
0)
35009 if (this.x.cmp(rx) ===
0)
35015 JPoint.prototype.inspect = function inspect() {
35016 if (this.isInfinity())
35017 return '
<EC JPoint Infinity
>';
35018 return '
<EC JPoint x: ' + this.x.toString(
16,
2) +
35019 ' y: ' + this.y.toString(
16,
2) +
35020 ' z: ' + this.z.toString(
16,
2) + '
>';
35023 JPoint.prototype.isInfinity = function isInfinity() {
35024 // XXX This code assumes that zero is always zero in red
35025 return this.z.cmpn(
0) ===
0;
35028 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
45:[function(require,module,exports){
35031 var curves = exports;
35033 var hash = require('hash.js');
35034 var elliptic = require('../elliptic');
35036 var assert = elliptic.utils.assert;
35038 function PresetCurve(options) {
35039 if (options.type === 'short')
35040 this.curve = new elliptic.curve.short(options);
35041 else if (options.type === 'edwards')
35042 this.curve = new elliptic.curve.edwards(options);
35044 this.curve = new elliptic.curve.mont(options);
35045 this.g = this.curve.g;
35046 this.n = this.curve.n;
35047 this.hash = options.hash;
35049 assert(this.g.validate(), 'Invalid curve');
35050 assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
35052 curves.PresetCurve = PresetCurve;
35054 function defineCurve(name, options) {
35055 Object.defineProperty(curves, name, {
35056 configurable: true,
35059 var curve = new PresetCurve(options);
35060 Object.defineProperty(curves, name, {
35061 configurable: true,
35070 defineCurve('p192', {
35073 p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
35074 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
35075 b: '
64210519 e59c80e7
0fa7e9ab
72243049 feb8deec c146b9b1',
35076 n: 'ffffffff ffffffff ffffffff
99def836
146bc9b1 b4d22831',
35080 '
188da80e b03090f6
7cbf20eb
43a18800 f4ff0afd
82ff1012',
35081 '
07192b95 ffc8da78
631011ed
6b24cdd5
73f977a1
1e794811'
35085 defineCurve('p224', {
35088 p: 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001',
35089 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
35090 b: 'b4050a85
0c04b3ab f5413256
5044b0b7 d7bfd8ba
270b3943
2355ffb4',
35091 n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e
13dd2945
5c5c2a3d',
35095 'b70e0cbd
6bb4bf7f
321390b9
4a03c1d3
56c21122
343280d6
115c1d21',
35096 'bd376388 b5f723fb
4c22dfe6 cd4375a0
5a074764
44d58199
85007e34'
35100 defineCurve('p256', {
35103 p: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
35104 a: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
35105 b: '
5ac635d8 aa3a93e7 b3ebbd55
769886bc
651d06b0 cc53b0f6
3bce3c3e
27d2604b',
35106 n: 'ffffffff
00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
35110 '
6b17d1f2 e12c4247 f8bce6e5
63a440f2
77037d81
2deb33a0 f4a13945 d898c296',
35111 '
4fe342e2 fe1a7f9b
8ee7eb4a
7c0f9e16
2bce3357
6b315ece cbb64068
37bf51f5'
35115 defineCurve('p384', {
35118 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35119 'fffffffe ffffffff
00000000 00000000 ffffffff',
35120 a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35121 'fffffffe ffffffff
00000000 00000000 fffffffc',
35122 b: 'b3312fa7 e23ee7e4
988e056b e3f82d19
181d9c6e fe814112
0314088f ' +
35123 '
5013875a c656398d
8a2ed19d
2a85c8ed d3ec2aef',
35124 n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
35125 'f4372ddf
581a0db2
48b0a77a ecec196a ccc52973',
35129 'aa87ca22 be8b0537
8eb1c71e f320ad74
6e1d3b62
8ba79b98
59f741e0
82542a38 ' +
35130 '
5502f25d bf55296c
3a545e38
72760ab7',
35131 '
3617de4a
96262c6f
5d9e98bf
9292dc29 f8f41dbd
289a147c e9da3113 b5f0b8c0 ' +
35132 '
0a60b1ce
1d7e819d
7a431d7c
90ea0e5f'
35136 defineCurve('p521', {
35139 p: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35140 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35141 'ffffffff ffffffff ffffffff ffffffff ffffffff',
35142 a: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35143 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35144 'ffffffff ffffffff ffffffff ffffffff fffffffc',
35145 b: '
00000051 953eb961
8e1c9a1f
929a21a0 b68540ee a2da725b ' +
35146 '
99b315f3 b8b48991
8ef109e1
56193951 ec7e937b
1652c0bd ' +
35147 '
3bb1bf07
3573df88
3d2c34f1 ef451fd4
6b503f00',
35148 n: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
35149 'ffffffff ffffffff fffffffa
51868783 bf2f966b
7fcc0148 ' +
35150 'f709a5d0
3bb5c9b8
899c47ae bb6fb71e
91386409',
35154 '
000000c6
858e06b7
0404e9cd
9e3ecb66
2395b442
9c648139 ' +
35155 '
053fb521 f828af60
6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
35156 'a2ffa8de
3348b3c1
856a429b f97e7e31 c2e5bd66',
35157 '
00000118 39296a78
9a3bc004
5c8a5fb4
2c7d1bd9
98f54449 ' +
35158 '
579b4468
17afbd17
273e662c
97ee7299
5ef42640 c550b901 ' +
35159 '
3fad0761
353c7086 a272c240
88be9476
9fd16650'
35163 defineCurve('curve25519', {
35166 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
35169 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
35177 defineCurve('ed25519', {
35180 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
35183 // -
121665 * (
121666^(-
1)) (mod P)
35184 d: '
52036cee2b6ffe73
8cc740797779e898
00700a4d4141d8ab
75eb4dca135978a3',
35185 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
35189 '
216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
35192 '
6666666666666666666666666666666666666666666666666666666666666658'
35198 pre = require('./precomputed/secp256k1');
35203 defineCurve('secp256k1', {
35206 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
35209 n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
35213 // Precomputed endomorphism
35214 beta: '
7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
35215 lambda: '
5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
35218 a: '
3086d221a7d46bcde86c90e49284eb15',
35219 b: '-e4437ed6010e88286f547fa90abfe4c3'
35222 a: '
114ca50f7a8e2f3f657c1108d9d44cfd8',
35223 b: '
3086d221a7d46bcde86c90e49284eb15'
35229 '
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
35230 '
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
35235 },{"../elliptic":
39,"./precomputed/secp256k1":
53,"hash.js":
57}],
46:[function(require,module,exports){
35238 var BN = require('bn.js');
35239 var elliptic = require('../../elliptic');
35240 var utils = elliptic.utils;
35241 var assert = utils.assert;
35243 var KeyPair = require('./key');
35244 var Signature = require('./signature');
35246 function EC(options) {
35247 if (!(this instanceof EC))
35248 return new EC(options);
35250 // Shortcut `elliptic.ec(curve-name)`
35251 if (typeof options === 'string') {
35252 assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options);
35254 options = elliptic.curves[options];
35257 // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
35258 if (options instanceof elliptic.curves.PresetCurve)
35259 options = { curve: options };
35261 this.curve = options.curve.curve;
35262 this.n = this.curve.n;
35263 this.nh = this.n.ushrn(
1);
35264 this.g = this.curve.g;
35267 this.g = options.curve.g;
35268 this.g.precompute(options.curve.n.bitLength() +
1);
35270 // Hash for function for DRBG
35271 this.hash = options.hash || options.curve.hash;
35273 module.exports = EC;
35275 EC.prototype.keyPair = function keyPair(options) {
35276 return new KeyPair(this, options);
35279 EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
35280 return KeyPair.fromPrivate(this, priv, enc);
35283 EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
35284 return KeyPair.fromPublic(this, pub, enc);
35287 EC.prototype.genKeyPair = function genKeyPair(options) {
35291 // Instantiate Hmac_DRBG
35292 var drbg = new elliptic.hmacDRBG({
35294 pers: options.pers,
35295 entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
35296 nonce: this.n.toArray()
35299 var bytes = this.n.byteLength();
35300 var ns2 = this.n.sub(new BN(
2));
35302 var priv = new BN(drbg.generate(bytes));
35303 if (priv.cmp(ns2)
> 0)
35307 return this.keyFromPrivate(priv);
35311 EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
35312 var delta = msg.byteLength() *
8 - this.n.bitLength();
35314 msg = msg.ushrn(delta);
35315 if (!truncOnly && msg.cmp(this.n)
>=
0)
35316 return msg.sub(this.n);
35321 EC.prototype.sign = function sign(msg, key, enc, options) {
35322 if (typeof enc === 'object') {
35329 key = this.keyFromPrivate(key, enc);
35330 msg = this._truncateToN(new BN(msg,
16));
35332 // Zero-extend key to provide enough entropy
35333 var bytes = this.n.byteLength();
35334 var bkey = key.getPrivate().toArray('be', bytes);
35336 // Zero-extend nonce to have the same byte size as N
35337 var nonce = msg.toArray('be', bytes);
35339 // Instantiate Hmac_DRBG
35340 var drbg = new elliptic.hmacDRBG({
35344 pers: options.pers,
35345 persEnc: options.persEnc
35348 // Number of bytes to generate
35349 var ns1 = this.n.sub(new BN(
1));
35351 for (var iter =
0; true; iter++) {
35352 var k = options.k ?
35354 new BN(drbg.generate(this.n.byteLength()));
35355 k = this._truncateToN(k, true);
35356 if (k.cmpn(
1) <=
0 || k.cmp(ns1)
>=
0)
35359 var kp = this.g.mul(k);
35360 if (kp.isInfinity())
35363 var kpX = kp.getX();
35364 var r = kpX.umod(this.n);
35365 if (r.cmpn(
0) ===
0)
35368 var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
35369 s = s.umod(this.n);
35370 if (s.cmpn(
0) ===
0)
35373 var recoveryParam = (kp.getY().isOdd() ?
1 :
0) |
35374 (kpX.cmp(r) !==
0 ?
2 :
0);
35376 // Use complement of `s`, if it is
> `n /
2`
35377 if (options.canonical && s.cmp(this.nh)
> 0) {
35379 recoveryParam ^=
1;
35382 return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
35386 EC.prototype.verify = function verify(msg, signature, key, enc) {
35387 msg = this._truncateToN(new BN(msg,
16));
35388 key = this.keyFromPublic(key, enc);
35389 signature = new Signature(signature, 'hex');
35391 // Perform primitive values validation
35392 var r = signature.r;
35393 var s = signature.s;
35394 if (r.cmpn(
1) <
0 || r.cmp(this.n)
>=
0)
35396 if (s.cmpn(
1) <
0 || s.cmp(this.n)
>=
0)
35399 // Validate signature
35400 var sinv = s.invm(this.n);
35401 var u1 = sinv.mul(msg).umod(this.n);
35402 var u2 = sinv.mul(r).umod(this.n);
35404 if (!this.curve._maxwellTrick) {
35405 var p = this.g.mulAdd(u1, key.getPublic(), u2);
35406 if (p.isInfinity())
35409 return p.getX().umod(this.n).cmp(r) ===
0;
35412 // NOTE: Greg Maxwell's trick, inspired by:
35413 // https://git.io/vad3K
35415 var p = this.g.jmulAdd(u1, key.getPublic(), u2);
35416 if (p.isInfinity())
35419 // Compare `p.x` of Jacobian point with `r`,
35420 // this will do `p.x == r * p.z^
2` instead of multiplying `p.x` by the
35421 // inverse of `p.z^
2`
35422 return p.eqXToP(r);
35425 EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
35426 assert((
3 & j) === j, 'The recovery param is more than two bits');
35427 signature = new Signature(signature, enc);
35430 var e = new BN(msg);
35431 var r = signature.r;
35432 var s = signature.s;
35434 // A set LSB signifies that the y-coordinate is odd
35435 var isYOdd = j &
1;
35436 var isSecondKey = j
>> 1;
35437 if (r.cmp(this.curve.p.umod(this.curve.n))
>=
0 && isSecondKey)
35438 throw new Error('Unable to find sencond key candinate');
35440 //
1.1. Let x = r + jn.
35442 r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
35444 r = this.curve.pointFromX(r, isYOdd);
35446 var rInv = signature.r.invm(n);
35447 var s1 = n.sub(e).mul(rInv).umod(n);
35448 var s2 = s.mul(rInv).umod(n);
35450 //
1.6.1 Compute Q = r^-
1 (sR - eG)
35451 // Q = r^-
1 (sR + -eG)
35452 return this.g.mulAdd(s1, r, s2);
35455 EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
35456 signature = new Signature(signature, enc);
35457 if (signature.recoveryParam !== null)
35458 return signature.recoveryParam;
35460 for (var i =
0; i <
4; i++) {
35463 Qprime = this.recoverPubKey(e, signature, i);
35471 throw new Error('Unable to find valid recovery factor');
35474 },{"../../elliptic":
39,"./key":
47,"./signature":
48,"bn.js":
33}],
47:[function(require,module,exports){
35477 var BN = require('bn.js');
35478 var elliptic = require('../../elliptic');
35479 var utils = elliptic.utils;
35480 var assert = utils.assert;
35482 function KeyPair(ec, options) {
35487 // KeyPair(ec, { priv: ..., pub: ... })
35489 this._importPrivate(options.priv, options.privEnc);
35491 this._importPublic(options.pub, options.pubEnc);
35493 module.exports = KeyPair;
35495 KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
35496 if (pub instanceof KeyPair)
35499 return new KeyPair(ec, {
35505 KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
35506 if (priv instanceof KeyPair)
35509 return new KeyPair(ec, {
35515 KeyPair.prototype.validate = function validate() {
35516 var pub = this.getPublic();
35518 if (pub.isInfinity())
35519 return { result: false, reason: 'Invalid public key' };
35520 if (!pub.validate())
35521 return { result: false, reason: 'Public key is not a point' };
35522 if (!pub.mul(this.ec.curve.n).isInfinity())
35523 return { result: false, reason: 'Public key * N != O' };
35525 return { result: true, reason: null };
35528 KeyPair.prototype.getPublic = function getPublic(compact, enc) {
35529 // compact is optional argument
35530 if (typeof compact === 'string') {
35536 this.pub = this.ec.g.mul(this.priv);
35541 return this.pub.encode(enc, compact);
35544 KeyPair.prototype.getPrivate = function getPrivate(enc) {
35546 return this.priv.toString(
16,
2);
35551 KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
35552 this.priv = new BN(key, enc ||
16);
35554 // Ensure that the priv won't be bigger than n, otherwise we may fail
35555 // in fixed multiplication method
35556 this.priv = this.priv.umod(this.ec.curve.n);
35559 KeyPair.prototype._importPublic = function _importPublic(key, enc) {
35560 if (key.x || key.y) {
35561 // Montgomery points only have an `x` coordinate.
35562 // Weierstrass/Edwards points on the other hand have both `x` and
35563 // `y` coordinates.
35564 if (this.ec.curve.type === 'mont') {
35565 assert(key.x, 'Need x coordinate');
35566 } else if (this.ec.curve.type === 'short' ||
35567 this.ec.curve.type === 'edwards') {
35568 assert(key.x && key.y, 'Need both x and y coordinate');
35570 this.pub = this.ec.curve.point(key.x, key.y);
35573 this.pub = this.ec.curve.decodePoint(key, enc);
35577 KeyPair.prototype.derive = function derive(pub) {
35578 return pub.mul(this.priv).getX();
35582 KeyPair.prototype.sign = function sign(msg, enc, options) {
35583 return this.ec.sign(msg, this, enc, options);
35586 KeyPair.prototype.verify = function verify(msg, signature) {
35587 return this.ec.verify(msg, signature, this);
35590 KeyPair.prototype.inspect = function inspect() {
35591 return '
<Key priv: ' + (this.priv && this.priv.toString(
16,
2)) +
35592 ' pub: ' + (this.pub && this.pub.inspect()) + '
>';
35595 },{"../../elliptic":
39,"bn.js":
33}],
48:[function(require,module,exports){
35598 var BN = require('bn.js');
35600 var elliptic = require('../../elliptic');
35601 var utils = elliptic.utils;
35602 var assert = utils.assert;
35604 function Signature(options, enc) {
35605 if (options instanceof Signature)
35608 if (this._importDER(options, enc))
35611 assert(options.r && options.s, 'Signature without r or s');
35612 this.r = new BN(options.r,
16);
35613 this.s = new BN(options.s,
16);
35614 if (options.recoveryParam === undefined)
35615 this.recoveryParam = null;
35617 this.recoveryParam = options.recoveryParam;
35619 module.exports = Signature;
35621 function Position() {
35625 function getLength(buf, p) {
35626 var initial = buf[p.place++];
35627 if (!(initial &
0x80)) {
35630 var octetLen = initial &
0xf;
35632 for (var i =
0, off = p.place; i < octetLen; i++, off++) {
35640 function rmPadding(buf) {
35642 var len = buf.length -
1;
35643 while (!buf[i] && !(buf[i +
1] &
0x80) && i < len) {
35649 return buf.slice(i);
35652 Signature.prototype._importDER = function _importDER(data, enc) {
35653 data = utils.toArray(data, enc);
35654 var p = new Position();
35655 if (data[p.place++] !==
0x30) {
35658 var len = getLength(data, p);
35659 if ((len + p.place) !== data.length) {
35662 if (data[p.place++] !==
0x02) {
35665 var rlen = getLength(data, p);
35666 var r = data.slice(p.place, rlen + p.place);
35668 if (data[p.place++] !==
0x02) {
35671 var slen = getLength(data, p);
35672 if (data.length !== slen + p.place) {
35675 var s = data.slice(p.place, slen + p.place);
35676 if (r[
0] ===
0 && (r[
1] &
0x80)) {
35679 if (s[
0] ===
0 && (s[
1] &
0x80)) {
35683 this.r = new BN(r);
35684 this.s = new BN(s);
35685 this.recoveryParam = null;
35690 function constructLength(arr, len) {
35695 var octets =
1 + (Math.log(len) / Math.LN2
>>> 3);
35696 arr.push(octets |
0x80);
35698 arr.push((len
>>> (octets <<
3)) &
0xff);
35703 Signature.prototype.toDER = function toDER(enc) {
35704 var r = this.r.toArray();
35705 var s = this.s.toArray();
35709 r = [
0 ].concat(r);
35712 s = [
0 ].concat(s);
35717 while (!s[
0] && !(s[
1] &
0x80)) {
35720 var arr = [
0x02 ];
35721 constructLength(arr, r.length);
35722 arr = arr.concat(r);
35724 constructLength(arr, s.length);
35725 var backHalf = arr.concat(s);
35726 var res = [
0x30 ];
35727 constructLength(res, backHalf.length);
35728 res = res.concat(backHalf);
35729 return utils.encode(res, enc);
35732 },{"../../elliptic":
39,"bn.js":
33}],
49:[function(require,module,exports){
35735 var hash = require('hash.js');
35736 var elliptic = require('../../elliptic');
35737 var utils = elliptic.utils;
35738 var assert = utils.assert;
35739 var parseBytes = utils.parseBytes;
35740 var KeyPair = require('./key');
35741 var Signature = require('./signature');
35743 function EDDSA(curve) {
35744 assert(curve === 'ed25519', 'only tested with ed25519 so far');
35746 if (!(this instanceof EDDSA))
35747 return new EDDSA(curve);
35749 var curve = elliptic.curves[curve].curve;
35750 this.curve = curve;
35752 this.g.precompute(curve.n.bitLength() +
1);
35754 this.pointClass = curve.point().constructor;
35755 this.encodingLength = Math.ceil(curve.n.bitLength() /
8);
35756 this.hash = hash.sha512;
35759 module.exports = EDDSA;
35762 * @param {Array|String} message - message bytes
35763 * @param {Array|String|KeyPair} secret - secret bytes or a keypair
35764 * @returns {Signature} - signature
35766 EDDSA.prototype.sign = function sign(message, secret) {
35767 message = parseBytes(message);
35768 var key = this.keyFromSecret(secret);
35769 var r = this.hashInt(key.messagePrefix(), message);
35770 var R = this.g.mul(r);
35771 var Rencoded = this.encodePoint(R);
35772 var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
35774 var S = r.add(s_).umod(this.curve.n);
35775 return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
35779 * @param {Array} message - message bytes
35780 * @param {Array|String|Signature} sig - sig bytes
35781 * @param {Array|String|Point|KeyPair} pub - public key
35782 * @returns {Boolean} - true if public key matches sig of message
35784 EDDSA.prototype.verify = function verify(message, sig, pub) {
35785 message = parseBytes(message);
35786 sig = this.makeSignature(sig);
35787 var key = this.keyFromPublic(pub);
35788 var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
35789 var SG = this.g.mul(sig.S());
35790 var RplusAh = sig.R().add(key.pub().mul(h));
35791 return RplusAh.eq(SG);
35794 EDDSA.prototype.hashInt = function hashInt() {
35795 var hash = this.hash();
35796 for (var i =
0; i < arguments.length; i++)
35797 hash.update(arguments[i]);
35798 return utils.intFromLE(hash.digest()).umod(this.curve.n);
35801 EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
35802 return KeyPair.fromPublic(this, pub);
35805 EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
35806 return KeyPair.fromSecret(this, secret);
35809 EDDSA.prototype.makeSignature = function makeSignature(sig) {
35810 if (sig instanceof Signature)
35812 return new Signature(this, sig);
35816 * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-
03#section-
5.2
35818 * EDDSA defines methods for encoding and decoding points and integers. These are
35819 * helper convenience methods, that pass along to utility functions implied
35823 EDDSA.prototype.encodePoint = function encodePoint(point) {
35824 var enc = point.getY().toArray('le', this.encodingLength);
35825 enc[this.encodingLength -
1] |= point.getX().isOdd() ?
0x80 :
0;
35829 EDDSA.prototype.decodePoint = function decodePoint(bytes) {
35830 bytes = utils.parseBytes(bytes);
35832 var lastIx = bytes.length -
1;
35833 var normed = bytes.slice(
0, lastIx).concat(bytes[lastIx] & ~
0x80);
35834 var xIsOdd = (bytes[lastIx] &
0x80) !==
0;
35836 var y = utils.intFromLE(normed);
35837 return this.curve.pointFromY(y, xIsOdd);
35840 EDDSA.prototype.encodeInt = function encodeInt(num) {
35841 return num.toArray('le', this.encodingLength);
35844 EDDSA.prototype.decodeInt = function decodeInt(bytes) {
35845 return utils.intFromLE(bytes);
35848 EDDSA.prototype.isPoint = function isPoint(val) {
35849 return val instanceof this.pointClass;
35852 },{"../../elliptic":
39,"./key":
50,"./signature":
51,"hash.js":
57}],
50:[function(require,module,exports){
35855 var elliptic = require('../../elliptic');
35856 var utils = elliptic.utils;
35857 var assert = utils.assert;
35858 var parseBytes = utils.parseBytes;
35859 var cachedProperty = utils.cachedProperty;
35862 * @param {EDDSA} eddsa - instance
35863 * @param {Object} params - public/private key parameters
35865 * @param {Array
<Byte>} [params.secret] - secret seed bytes
35866 * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
35867 * @param {Array
<Byte>} [params.pub] - public key point encoded as bytes
35870 function KeyPair(eddsa, params) {
35871 this.eddsa = eddsa;
35872 this._secret = parseBytes(params.secret);
35873 if (eddsa.isPoint(params.pub))
35874 this._pub = params.pub;
35876 this._pubBytes = parseBytes(params.pub);
35879 KeyPair.fromPublic = function fromPublic(eddsa, pub) {
35880 if (pub instanceof KeyPair)
35882 return new KeyPair(eddsa, { pub: pub });
35885 KeyPair.fromSecret = function fromSecret(eddsa, secret) {
35886 if (secret instanceof KeyPair)
35888 return new KeyPair(eddsa, { secret: secret });
35891 KeyPair.prototype.secret = function secret() {
35892 return this._secret;
35895 cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
35896 return this.eddsa.encodePoint(this.pub());
35899 cachedProperty(KeyPair, 'pub', function pub() {
35900 if (this._pubBytes)
35901 return this.eddsa.decodePoint(this._pubBytes);
35902 return this.eddsa.g.mul(this.priv());
35905 cachedProperty(KeyPair, 'privBytes', function privBytes() {
35906 var eddsa = this.eddsa;
35907 var hash = this.hash();
35908 var lastIx = eddsa.encodingLength -
1;
35910 var a = hash.slice(
0, eddsa.encodingLength);
35918 cachedProperty(KeyPair, 'priv', function priv() {
35919 return this.eddsa.decodeInt(this.privBytes());
35922 cachedProperty(KeyPair, 'hash', function hash() {
35923 return this.eddsa.hash().update(this.secret()).digest();
35926 cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
35927 return this.hash().slice(this.eddsa.encodingLength);
35930 KeyPair.prototype.sign = function sign(message) {
35931 assert(this._secret, 'KeyPair can only verify');
35932 return this.eddsa.sign(message, this);
35935 KeyPair.prototype.verify = function verify(message, sig) {
35936 return this.eddsa.verify(message, sig, this);
35939 KeyPair.prototype.getSecret = function getSecret(enc) {
35940 assert(this._secret, 'KeyPair is public only');
35941 return utils.encode(this.secret(), enc);
35944 KeyPair.prototype.getPublic = function getPublic(enc) {
35945 return utils.encode(this.pubBytes(), enc);
35948 module.exports = KeyPair;
35950 },{"../../elliptic":
39}],
51:[function(require,module,exports){
35953 var BN = require('bn.js');
35954 var elliptic = require('../../elliptic');
35955 var utils = elliptic.utils;
35956 var assert = utils.assert;
35957 var cachedProperty = utils.cachedProperty;
35958 var parseBytes = utils.parseBytes;
35961 * @param {EDDSA} eddsa - eddsa instance
35962 * @param {Array
<Bytes>|Object} sig -
35963 * @param {Array
<Bytes>|Point} [sig.R] - R point as Point or bytes
35964 * @param {Array
<Bytes>|bn} [sig.S] - S scalar as bn or bytes
35965 * @param {Array
<Bytes>} [sig.Rencoded] - R point encoded
35966 * @param {Array
<Bytes>} [sig.Sencoded] - S scalar encoded
35968 function Signature(eddsa, sig) {
35969 this.eddsa = eddsa;
35971 if (typeof sig !== 'object')
35972 sig = parseBytes(sig);
35974 if (Array.isArray(sig)) {
35976 R: sig.slice(
0, eddsa.encodingLength),
35977 S: sig.slice(eddsa.encodingLength)
35981 assert(sig.R && sig.S, 'Signature without R or S');
35983 if (eddsa.isPoint(sig.R))
35985 if (sig.S instanceof BN)
35988 this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
35989 this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
35992 cachedProperty(Signature, 'S', function S() {
35993 return this.eddsa.decodeInt(this.Sencoded());
35996 cachedProperty(Signature, 'R', function R() {
35997 return this.eddsa.decodePoint(this.Rencoded());
36000 cachedProperty(Signature, 'Rencoded', function Rencoded() {
36001 return this.eddsa.encodePoint(this.R());
36004 cachedProperty(Signature, 'Sencoded', function Sencoded() {
36005 return this.eddsa.encodeInt(this.S());
36008 Signature.prototype.toBytes = function toBytes() {
36009 return this.Rencoded().concat(this.Sencoded());
36012 Signature.prototype.toHex = function toHex() {
36013 return utils.encode(this.toBytes(), 'hex').toUpperCase();
36016 module.exports = Signature;
36018 },{"../../elliptic":
39,"bn.js":
33}],
52:[function(require,module,exports){
36021 var hash = require('hash.js');
36022 var elliptic = require('../elliptic');
36023 var utils = elliptic.utils;
36024 var assert = utils.assert;
36026 function HmacDRBG(options) {
36027 if (!(this instanceof HmacDRBG))
36028 return new HmacDRBG(options);
36029 this.hash = options.hash;
36030 this.predResist = !!options.predResist;
36032 this.outLen = this.hash.outSize;
36033 this.minEntropy = options.minEntropy || this.hash.hmacStrength;
36035 this.reseed = null;
36036 this.reseedInterval = null;
36040 var entropy = utils.toArray(options.entropy, options.entropyEnc);
36041 var nonce = utils.toArray(options.nonce, options.nonceEnc);
36042 var pers = utils.toArray(options.pers, options.persEnc);
36043 assert(entropy.length
>= (this.minEntropy /
8),
36044 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
36045 this._init(entropy, nonce, pers);
36047 module.exports = HmacDRBG;
36049 HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
36050 var seed = entropy.concat(nonce).concat(pers);
36052 this.K = new Array(this.outLen /
8);
36053 this.V = new Array(this.outLen /
8);
36054 for (var i =
0; i < this.V.length; i++) {
36059 this._update(seed);
36061 this.reseedInterval =
0x1000000000000; //
2^
48
36064 HmacDRBG.prototype._hmac = function hmac() {
36065 return new hash.hmac(this.hash, this.K);
36068 HmacDRBG.prototype._update = function update(seed) {
36069 var kmac = this._hmac()
36073 kmac = kmac.update(seed);
36074 this.K = kmac.digest();
36075 this.V = this._hmac().update(this.V).digest();
36079 this.K = this._hmac()
36084 this.V = this._hmac().update(this.V).digest();
36087 HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
36088 // Optional entropy enc
36089 if (typeof entropyEnc !== 'string') {
36095 entropy = utils.toBuffer(entropy, entropyEnc);
36096 add = utils.toBuffer(add, addEnc);
36098 assert(entropy.length
>= (this.minEntropy /
8),
36099 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
36101 this._update(entropy.concat(add || []));
36105 HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
36106 if (this.reseed
> this.reseedInterval)
36107 throw new Error('Reseed is required');
36109 // Optional encoding
36110 if (typeof enc !== 'string') {
36116 // Optional additional data
36118 add = utils.toArray(add, addEnc);
36123 while (temp.length < len) {
36124 this.V = this._hmac().update(this.V).digest();
36125 temp = temp.concat(this.V);
36128 var res = temp.slice(
0, len);
36131 return utils.encode(res, enc);
36134 },{"../elliptic":
39,"hash.js":
57}],
53:[function(require,module,exports){
36140 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
36141 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'
36144 '
8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
36145 '
11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'
36148 '
175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
36149 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'
36152 '
363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
36153 '
4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'
36156 '
8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
36157 '
4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'
36160 '
723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
36161 '
96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'
36164 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
36165 '
5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'
36168 '
100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
36169 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'
36172 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
36173 '
9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'
36176 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
36177 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'
36180 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
36181 '
9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'
36184 '
53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
36185 '
5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'
36188 '
8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
36189 '
10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'
36192 '
385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
36193 '
283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'
36196 '
6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
36197 '
7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'
36200 '
3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
36201 '
56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'
36204 '
85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
36205 '
7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'
36208 '
948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
36209 '
53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'
36212 '
6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
36213 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'
36216 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
36217 '
4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'
36220 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
36221 '
7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'
36224 '
213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
36225 '
4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'
36228 '
4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
36229 '
17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'
36232 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
36233 '
6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'
36236 '
76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
36237 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'
36240 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
36241 '
893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'
36244 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
36245 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'
36248 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
36249 '
2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'
36252 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
36253 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'
36256 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
36257 '
7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'
36260 '
90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
36261 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'
36264 '
8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
36265 '
662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'
36268 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
36269 '
1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'
36272 '
8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
36273 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'
36276 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
36277 '
2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'
36280 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
36281 '
67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'
36284 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
36285 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'
36288 '
324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
36289 '
648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'
36292 '
4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
36293 '
35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'
36296 '
9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
36297 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'
36300 '
6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
36301 '
9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'
36304 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
36305 '
40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'
36308 '
7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
36309 '
34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'
36312 '
928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
36313 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'
36316 '
85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
36317 '
1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'
36320 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
36321 '
493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'
36324 '
827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
36325 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'
36328 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
36329 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'
36332 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
36333 '
4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'
36336 '
1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
36337 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'
36340 '
146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
36341 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'
36344 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
36345 '
6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'
36348 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
36349 '
8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'
36352 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
36353 '
7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'
36356 '
174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
36357 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'
36360 '
959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
36361 '
2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'
36364 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
36365 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'
36368 '
64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
36369 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'
36372 '
8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
36373 '
38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'
36376 '
13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
36377 '
69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'
36380 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
36381 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'
36384 '
8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
36385 '
40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'
36388 '
8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
36389 '
620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'
36392 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
36393 '
7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'
36396 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
36397 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'
36405 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
36406 '
388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'
36409 '
2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
36410 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'
36413 '
5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
36414 '
6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'
36417 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
36418 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'
36421 '
774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
36422 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'
36425 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
36426 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'
36429 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
36430 '
581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'
36433 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
36434 '
4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'
36437 '
2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
36438 '
85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'
36441 '
352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
36442 '
321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'
36445 '
2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
36446 '
2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'
36449 '
9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
36450 '
73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'
36453 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
36454 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'
36457 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
36458 '
2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'
36461 '
6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
36462 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'
36465 '
1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
36466 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'
36469 '
605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
36470 '
2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'
36473 '
62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
36474 '
80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'
36477 '
80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
36478 '
1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'
36481 '
7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
36482 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'
36485 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
36486 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'
36489 '
49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
36490 '
758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'
36493 '
77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
36494 '
958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'
36497 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
36498 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'
36501 '
463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
36502 '
5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'
36505 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
36506 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'
36509 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
36510 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'
36513 '
2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
36514 '
4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'
36517 '
7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
36518 '
91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'
36521 '
754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
36522 '
673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'
36525 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
36526 '
59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'
36529 '
186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
36530 '
3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'
36533 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
36534 '
55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'
36537 '
5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
36538 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'
36541 '
290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
36542 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'
36545 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
36546 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'
36549 '
766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
36550 '
744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'
36553 '
59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
36554 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'
36557 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
36558 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'
36561 '
7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
36562 '
30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'
36565 '
948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
36566 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'
36569 '
7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
36570 '
100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'
36573 '
3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
36574 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'
36577 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
36578 '
8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'
36581 '
1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
36582 '
68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'
36585 '
733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
36586 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'
36589 '
15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
36590 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'
36593 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
36594 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'
36597 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
36598 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'
36601 '
311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
36602 '
66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'
36605 '
34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
36606 '
9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'
36609 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
36610 '
4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'
36613 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
36614 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'
36617 '
32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
36618 '
5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'
36621 '
7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
36622 '
8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'
36625 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
36626 '
8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'
36629 '
16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
36630 '
5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'
36633 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
36634 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'
36637 '
78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
36638 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'
36641 '
494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
36642 '
42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'
36645 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
36646 '
204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'
36649 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
36650 '
4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'
36653 '
841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
36654 '
73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'
36657 '
5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
36658 '
39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'
36661 '
36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
36662 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'
36665 '
336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
36666 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'
36669 '
8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
36670 '
6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'
36673 '
1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
36674 '
60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'
36677 '
85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
36678 '
3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'
36681 '
29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
36682 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'
36685 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
36686 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'
36689 '
4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
36690 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'
36693 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
36694 '
6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'
36697 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
36698 '
322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'
36701 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
36702 '
6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'
36705 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
36706 '
2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'
36709 '
591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
36710 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'
36713 '
11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
36714 '
998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'
36717 '
3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
36718 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'
36721 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
36722 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'
36725 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
36726 '
6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'
36729 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
36730 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'
36733 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
36734 '
21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'
36737 '
347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
36738 '
60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'
36741 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
36742 '
49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'
36745 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
36746 '
5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'
36749 '
4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
36750 '
7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'
36753 '
3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
36754 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'
36757 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
36758 '
8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'
36761 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
36762 '
39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'
36765 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
36766 '
62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'
36769 '
48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
36770 '
25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'
36773 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
36774 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'
36777 '
6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
36778 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'
36781 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
36782 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'
36785 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
36786 '
6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'
36789 '
13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
36790 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'
36793 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
36794 '
1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'
36797 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
36798 '
5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'
36801 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
36802 '
438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'
36805 '
8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
36806 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'
36809 '
52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
36810 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'
36813 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
36814 '
6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'
36817 '
7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
36818 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'
36821 '
5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
36822 '
9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'
36825 '
32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
36826 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'
36829 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
36830 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'
36833 '
8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
36834 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'
36837 '
4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
36838 '
67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'
36841 '
3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
36842 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'
36845 '
674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
36846 '
299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'
36849 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
36850 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'
36853 '
30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
36854 '
462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'
36857 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
36858 '
62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'
36861 '
93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
36862 '
7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'
36865 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
36866 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'
36869 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
36870 '
4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'
36873 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
36874 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'
36877 '
463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
36878 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'
36881 '
7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
36882 '
603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'
36885 '
74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
36886 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'
36889 '
30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
36890 '
553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'
36893 '
9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
36894 '
712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'
36897 '
176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
36898 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'
36901 '
75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
36902 '
9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'
36905 '
809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
36906 '
9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'
36909 '
1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
36910 '
4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'
36916 },{}],
54:[function(require,module,exports){
36919 var utils = exports;
36920 var BN = require('bn.js');
36922 utils.assert = function assert(val, msg) {
36924 throw new Error(msg || 'Assertion failed');
36927 function toArray(msg, enc) {
36928 if (Array.isArray(msg))
36929 return msg.slice();
36933 if (typeof msg !== 'string') {
36934 for (var i =
0; i < msg.length; i++)
36935 res[i] = msg[i] |
0;
36939 for (var i =
0; i < msg.length; i++) {
36940 var c = msg.charCodeAt(i);
36948 } else if (enc === 'hex') {
36949 msg = msg.replace(/[^a-z0-
9]+/ig, '');
36950 if (msg.length %
2 !==
0)
36952 for (var i =
0; i < msg.length; i +=
2)
36953 res.push(parseInt(msg[i] + msg[i +
1],
16));
36957 utils.toArray = toArray;
36959 function zero2(word) {
36960 if (word.length ===
1)
36965 utils.zero2 = zero2;
36967 function toHex(msg) {
36969 for (var i =
0; i < msg.length; i++)
36970 res += zero2(msg[i].toString(
16));
36973 utils.toHex = toHex;
36975 utils.encode = function encode(arr, enc) {
36982 // Represent num in a w-NAF form
36983 function getNAF(num, w) {
36985 var ws =
1 << (w +
1);
36986 var k = num.clone();
36987 while (k.cmpn(
1)
>=
0) {
36990 var mod = k.andln(ws -
1);
36991 if (mod
> (ws
>> 1) -
1)
36992 z = (ws
>> 1) - mod;
37001 // Optimization, shift by word if possible
37002 var shift = (k.cmpn(
0) !==
0 && k.andln(ws -
1) ===
0) ? (w +
1) :
1;
37003 for (var i =
1; i < shift; i++)
37010 utils.getNAF = getNAF;
37012 // Represent k1, k2 in a Joint Sparse Form
37013 function getJSF(k1, k2) {
37023 while (k1.cmpn(-d1)
> 0 || k2.cmpn(-d2)
> 0) {
37026 var m14 = (k1.andln(
3) + d1) &
3;
37027 var m24 = (k2.andln(
3) + d2) &
3;
37033 if ((m14 &
1) ===
0) {
37036 var m8 = (k1.andln(
7) + d1) &
7;
37037 if ((m8 ===
3 || m8 ===
5) && m24 ===
2)
37045 if ((m24 &
1) ===
0) {
37048 var m8 = (k2.andln(
7) + d2) &
7;
37049 if ((m8 ===
3 || m8 ===
5) && m14 ===
2)
37057 if (
2 * d1 === u1 +
1)
37059 if (
2 * d2 === u2 +
1)
37067 utils.getJSF = getJSF;
37069 function cachedProperty(obj, name, computer) {
37070 var key = '_' + name;
37071 obj.prototype[name] = function cachedProperty() {
37072 return this[key] !== undefined ? this[key] :
37073 this[key] = computer.call(this);
37076 utils.cachedProperty = cachedProperty;
37078 function parseBytes(bytes) {
37079 return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
37082 utils.parseBytes = parseBytes;
37084 function intFromLE(bytes) {
37085 return new BN(bytes, 'hex', 'le');
37087 utils.intFromLE = intFromLE;
37090 },{
"bn.js":
33}],
55:[function(require,module,exports){
37095 "raw":
"elliptic@^6.2.3",
37097 "escapedName":
"elliptic",
37098 "name":
"elliptic",
37099 "rawSpec":
"^6.2.3",
37100 "spec":
">=6.2.3 <7.0.0",
37103 "/home/user/ethereum/ethereumjs-util/node_modules/secp256k1"
37106 "_from":
"elliptic@>=6.2.3 <7.0.0",
37107 "_id":
"elliptic@6.3.3",
37109 "_location":
"/elliptic",
37110 "_nodeVersion":
"7.0.0",
37111 "_npmOperationalInternal": {
37112 "host":
"packages-18-east.internal.npmjs.com",
37113 "tmp":
"tmp/elliptic-6.3.3.tgz_1486422837740_0.10658654430881143"
37117 "email":
"fedor@indutny.com"
37119 "_npmVersion":
"3.10.8",
37120 "_phantomChildren": {},
37122 "raw":
"elliptic@^6.2.3",
37124 "escapedName":
"elliptic",
37125 "name":
"elliptic",
37126 "rawSpec":
"^6.2.3",
37127 "spec":
">=6.2.3 <7.0.0",
37131 "/browserify-sign",
37135 "_resolved":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz",
37136 "_shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
37137 "_shrinkwrap": null,
37138 "_spec":
"elliptic@^6.2.3",
37139 "_where":
"/home/user/ethereum/ethereumjs-util/node_modules/secp256k1",
37141 "name":
"Fedor Indutny",
37142 "email":
"fedor@indutny.com"
37145 "url":
"https://github.com/indutny/elliptic/issues"
37149 "brorand":
"^1.0.1",
37150 "hash.js":
"^1.0.0",
37151 "inherits":
"^2.0.1"
37153 "description":
"EC cryptography",
37154 "devDependencies": {
37156 "coveralls":
"^2.11.3",
37158 "grunt-browserify":
"^5.0.0",
37159 "grunt-cli":
"^1.2.0",
37160 "grunt-contrib-connect":
"^1.0.0",
37161 "grunt-contrib-copy":
"^1.0.0",
37162 "grunt-contrib-uglify":
"^1.0.1",
37163 "grunt-mocha-istanbul":
"^3.0.1",
37164 "grunt-saucelabs":
"^8.6.2",
37165 "istanbul":
"^0.4.2",
37167 "jshint":
"^2.6.0",
37172 "shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
37173 "tarball":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz"
37178 "gitHead":
"63aee8d697e9b7fac37ece24222029117a890a7e",
37179 "homepage":
"https://github.com/indutny/elliptic",
37187 "main":
"lib/elliptic.js",
37191 "email":
"fedor@indutny.com"
37194 "name":
"elliptic",
37195 "optionalDependencies": {},
37196 "readme":
"ERROR: No README data found!",
37199 "url":
"git+ssh://git@github.com/indutny/elliptic.git"
37202 "jscs":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
37203 "jshint":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
37204 "lint":
"npm run jscs && npm run jshint",
37205 "test":
"npm run lint && npm run unit",
37206 "unit":
"istanbul test _mocha --reporter=spec test/index.js",
37207 "version":
"grunt dist && git add dist/"
37212 },{}],
56:[function(require,module,exports){
37213 (function (Buffer){
37216 var isHexPrefixed = require('is-hex-prefixed');
37217 var stripHexPrefix = require('strip-hex-prefix');
37220 * Pads a `String` to have an even length
37221 * @param {String} value
37222 * @return {String} output
37224 function padToEven(value) {
37225 var a = value; // eslint-disable-line
37227 if (typeof a !== 'string') {
37228 throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');
37231 if (a.length %
2) {
37239 * Converts a `Number` into a hex `String`
37240 * @param {Number} i
37243 function intToHex(i) {
37244 var hex = i.toString(
16); // eslint-disable-line
37246 return '
0x' + padToEven(hex);
37250 * Converts an `Number` to a `Buffer`
37251 * @param {Number} i
37254 function intToBuffer(i) {
37255 var hex = intToHex(i);
37257 return new Buffer(hex.slice(
2), 'hex');
37261 * Get the binary size of a string
37262 * @param {String} str
37265 function getBinarySize(str) {
37266 if (typeof str !== 'string') {
37267 throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \'str\' to be type String, got \'' + typeof str + '\'.');
37270 return Buffer.byteLength(str, 'utf8');
37274 * Returns TRUE if the first specified array contains all elements
37275 * from the second one. FALSE otherwise.
37277 * @param {array} superset
37278 * @param {array} subset
37280 * @returns {boolean}
37282 function arrayContainsArray(superset, subset, some) {
37283 if (Array.isArray(superset) !== true) {
37284 throw new Error('[ethjs-util] method arrayContainsArray requires input \'superset\' to be an array got type \'' + typeof superset + '\'');
37286 if (Array.isArray(subset) !== true) {
37287 throw new Error('[ethjs-util] method arrayContainsArray requires input \'subset\' to be an array got type \'' + typeof subset + '\'');
37290 return subset[Boolean(some) && 'some' || 'every'](function (value) {
37291 return superset.indexOf(value)
>=
0;
37296 * Should be called to get utf8 from it's hex representation
37299 * @param {String} string in hex
37300 * @returns {String} ascii string representation of hex value
37302 function toUtf8(hex) {
37303 var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^
0+|
0+$/g, '')), 'hex');
37305 return bufferValue.toString('utf8');
37309 * Should be called to get ascii from it's hex representation
37312 * @param {String} string in hex
37313 * @returns {String} ascii string representation of hex value
37315 function toAscii(hex) {
37316 var str = ''; // eslint-disable-line
37318 l = hex.length; // eslint-disable-line
37320 if (hex.substring(
0,
2) === '
0x') {
37324 for (; i < l; i +=
2) {
37325 var code = parseInt(hex.substr(i,
2),
16);
37326 str += String.fromCharCode(code);
37333 * Should be called to get hex representation (prefixed by
0x) of utf8 string
37336 * @param {String} string
37337 * @param {Number} optional padding
37338 * @returns {String} hex representation of input string
37340 function fromUtf8(stringValue) {
37341 var str = new Buffer(stringValue, 'utf8');
37343 return '
0x' + padToEven(str.toString('hex')).replace(/^
0+|
0+$/g, '');
37347 * Should be called to get hex representation (prefixed by
0x) of ascii string
37349 * @method fromAscii
37350 * @param {String} string
37351 * @param {Number} optional padding
37352 * @returns {String} hex representation of input string
37354 function fromAscii(stringValue) {
37355 var hex = ''; // eslint-disable-line
37356 for (var i =
0; i < stringValue.length; i++) {
37357 // eslint-disable-line
37358 var code = stringValue.charCodeAt(i);
37359 var n = code.toString(
16);
37360 hex += n.length <
2 ? '
0' + n : n;
37367 * getKeys([{a:
1, b:
2}, {a:
3, b:
4}], 'a') =
> [
1,
3]
37369 * @method getKeys get specific key from inner object array of objects
37370 * @param {String} params
37371 * @param {String} key
37372 * @param {Boolean} allowEmpty
37373 * @returns {Array} output just a simple array of output keys
37375 function getKeys(params, key, allowEmpty) {
37376 if (!Array.isArray(params)) {
37377 throw new Error('[ethjs-util] method getKeys expecting type Array as \'params\' input, got \'' + typeof params + '\'');
37379 if (typeof key !== 'string') {
37380 throw new Error('[ethjs-util] method getKeys expecting type String for input \'key\' got \'' + typeof key + '\'.');
37383 var result = []; // eslint-disable-line
37385 for (var i =
0; i < params.length; i++) {
37386 // eslint-disable-line
37387 var value = params[i][key]; // eslint-disable-line
37388 if (allowEmpty && !value) {
37390 } else if (typeof value !== 'string') {
37391 throw new Error('invalid abi');
37393 result.push(value);
37400 * Is the string a hex string.
37402 * @method check if string is hex string of specific length
37403 * @param {String} value
37404 * @param {Number} length
37405 * @returns {Boolean} output the string is a hex string
37407 function isHexString(value, length) {
37408 if (typeof value !== 'string' || !value.match(/^
0x[
0-
9A-Fa-f]*$/)) {
37412 if (length && value.length !==
2 +
2 * length) {
37420 arrayContainsArray: arrayContainsArray,
37421 intToBuffer: intToBuffer,
37422 getBinarySize: getBinarySize,
37423 isHexPrefixed: isHexPrefixed,
37424 stripHexPrefix: stripHexPrefix,
37425 padToEven: padToEven,
37426 intToHex: intToHex,
37427 fromAscii: fromAscii,
37428 fromUtf8: fromUtf8,
37432 isHexString: isHexString
37434 }).call(this,require("buffer").Buffer)
37435 },{"buffer":
5,"is-hex-prefixed":
64,"strip-hex-prefix":
87}],
57:[function(require,module,exports){
37436 var hash = exports;
37438 hash.utils = require('./hash/utils');
37439 hash.common = require('./hash/common');
37440 hash.sha = require('./hash/sha');
37441 hash.ripemd = require('./hash/ripemd');
37442 hash.hmac = require('./hash/hmac');
37444 // Proxy hash functions to the main object
37445 hash.sha1 = hash.sha.sha1;
37446 hash.sha256 = hash.sha.sha256;
37447 hash.sha224 = hash.sha.sha224;
37448 hash.sha384 = hash.sha.sha384;
37449 hash.sha512 = hash.sha.sha512;
37450 hash.ripemd160 = hash.ripemd.ripemd160;
37452 },{"./hash/common":
58,"./hash/hmac":
59,"./hash/ripemd":
60,"./hash/sha":
61,"./hash/utils":
62}],
58:[function(require,module,exports){
37453 var hash = require('../hash');
37454 var utils = hash.utils;
37455 var assert = utils.assert;
37457 function BlockHash() {
37458 this.pending = null;
37459 this.pendingTotal =
0;
37460 this.blockSize = this.constructor.blockSize;
37461 this.outSize = this.constructor.outSize;
37462 this.hmacStrength = this.constructor.hmacStrength;
37463 this.padLength = this.constructor.padLength /
8;
37464 this.endian = 'big';
37466 this._delta8 = this.blockSize /
8;
37467 this._delta32 = this.blockSize /
32;
37469 exports.BlockHash = BlockHash;
37471 BlockHash.prototype.update = function update(msg, enc) {
37472 // Convert message to array, pad it, and join into
32bit blocks
37473 msg = utils.toArray(msg, enc);
37475 this.pending = msg;
37477 this.pending = this.pending.concat(msg);
37478 this.pendingTotal += msg.length;
37480 // Enough data, try updating
37481 if (this.pending.length
>= this._delta8) {
37482 msg = this.pending;
37484 // Process pending data in blocks
37485 var r = msg.length % this._delta8;
37486 this.pending = msg.slice(msg.length - r, msg.length);
37487 if (this.pending.length ===
0)
37488 this.pending = null;
37490 msg = utils.join32(msg,
0, msg.length - r, this.endian);
37491 for (var i =
0; i < msg.length; i += this._delta32)
37492 this._update(msg, i, i + this._delta32);
37498 BlockHash.prototype.digest = function digest(enc) {
37499 this.update(this._pad());
37500 assert(this.pending === null);
37502 return this._digest(enc);
37505 BlockHash.prototype._pad = function pad() {
37506 var len = this.pendingTotal;
37507 var bytes = this._delta8;
37508 var k = bytes - ((len + this.padLength) % bytes);
37509 var res = new Array(k + this.padLength);
37511 for (var i =
1; i < k; i++)
37516 if (this.endian === 'big') {
37517 for (var t =
8; t < this.padLength; t++)
37524 res[i++] = (len
>>> 24) &
0xff;
37525 res[i++] = (len
>>> 16) &
0xff;
37526 res[i++] = (len
>>> 8) &
0xff;
37527 res[i++] = len &
0xff;
37529 res[i++] = len &
0xff;
37530 res[i++] = (len
>>> 8) &
0xff;
37531 res[i++] = (len
>>> 16) &
0xff;
37532 res[i++] = (len
>>> 24) &
0xff;
37538 for (var t =
8; t < this.padLength; t++)
37545 },{
"../hash":
57}],
59:[function(require,module,exports){
37546 var hmac = exports;
37548 var hash = require('../hash');
37549 var utils = hash.utils;
37550 var assert = utils.assert;
37552 function Hmac(hash, key, enc) {
37553 if (!(this instanceof Hmac))
37554 return new Hmac(hash, key, enc);
37556 this.blockSize = hash.blockSize /
8;
37557 this.outSize = hash.outSize /
8;
37561 this._init(utils.toArray(key, enc));
37563 module.exports = Hmac;
37565 Hmac.prototype._init = function init(key) {
37566 // Shorten key, if needed
37567 if (key.length
> this.blockSize)
37568 key = new this.Hash().update(key).digest();
37569 assert(key.length <= this.blockSize);
37571 // Add padding to key
37572 for (var i = key.length; i < this.blockSize; i++)
37575 for (var i =
0; i < key.length; i++)
37577 this.inner = new this.Hash().update(key);
37579 //
0x36 ^
0x5c =
0x6a
37580 for (var i =
0; i < key.length; i++)
37582 this.outer = new this.Hash().update(key);
37585 Hmac.prototype.update = function update(msg, enc) {
37586 this.inner.update(msg, enc);
37590 Hmac.prototype.digest = function digest(enc) {
37591 this.outer.update(this.inner.digest());
37592 return this.outer.digest(enc);
37595 },{"../hash":
57}],
60:[function(require,module,exports){
37596 var hash = require('../hash');
37597 var utils = hash.utils;
37599 var rotl32 = utils.rotl32;
37600 var sum32 = utils.sum32;
37601 var sum32_3 = utils.sum32_3;
37602 var sum32_4 = utils.sum32_4;
37603 var BlockHash = hash.common.BlockHash;
37605 function RIPEMD160() {
37606 if (!(this instanceof RIPEMD160))
37607 return new RIPEMD160();
37609 BlockHash.call(this);
37611 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
0x10325476,
0xc3d2e1f0 ];
37612 this.endian = 'little';
37614 utils.inherits(RIPEMD160, BlockHash);
37615 exports.ripemd160 = RIPEMD160;
37617 RIPEMD160.blockSize =
512;
37618 RIPEMD160.outSize =
160;
37619 RIPEMD160.hmacStrength =
192;
37620 RIPEMD160.padLength =
64;
37622 RIPEMD160.prototype._update = function update(msg, start) {
37633 for (var j =
0; j <
80; j++) {
37636 sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
37646 sum32_4(Ah, f(
79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
37651 Dh = rotl32(Ch,
10);
37655 T = sum32_3(this.h[
1], C, Dh);
37656 this.h[
1] = sum32_3(this.h[
2], D, Eh);
37657 this.h[
2] = sum32_3(this.h[
3], E, Ah);
37658 this.h[
3] = sum32_3(this.h[
4], A, Bh);
37659 this.h[
4] = sum32_3(this.h[
0], B, Ch);
37663 RIPEMD160.prototype._digest = function digest(enc) {
37665 return utils.toHex32(this.h, 'little');
37667 return utils.split32(this.h, 'little');
37670 function f(j, x, y, z) {
37674 return (x & y) | ((~x) & z);
37676 return (x | (~y)) ^ z;
37678 return (x & z) | (y & (~z));
37680 return x ^ (y | (~z));
37710 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
37711 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
37712 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
37713 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
37714 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
37718 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
37719 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
37720 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
37721 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
37722 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
37726 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
37727 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
37728 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
37729 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
37730 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
37734 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
37735 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
37736 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
37737 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
37738 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
37741 },{"../hash":
57}],
61:[function(require,module,exports){
37742 var hash = require('../hash');
37743 var utils = hash.utils;
37744 var assert = utils.assert;
37746 var rotr32 = utils.rotr32;
37747 var rotl32 = utils.rotl32;
37748 var sum32 = utils.sum32;
37749 var sum32_4 = utils.sum32_4;
37750 var sum32_5 = utils.sum32_5;
37751 var rotr64_hi = utils.rotr64_hi;
37752 var rotr64_lo = utils.rotr64_lo;
37753 var shr64_hi = utils.shr64_hi;
37754 var shr64_lo = utils.shr64_lo;
37755 var sum64 = utils.sum64;
37756 var sum64_hi = utils.sum64_hi;
37757 var sum64_lo = utils.sum64_lo;
37758 var sum64_4_hi = utils.sum64_4_hi;
37759 var sum64_4_lo = utils.sum64_4_lo;
37760 var sum64_5_hi = utils.sum64_5_hi;
37761 var sum64_5_lo = utils.sum64_5_lo;
37762 var BlockHash = hash.common.BlockHash;
37765 0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
37766 0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
37767 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
37768 0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
37769 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
37770 0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
37771 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
37772 0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
37773 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
37774 0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
37775 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
37776 0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
37777 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
37778 0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
37779 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
37780 0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2
37784 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
37785 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
37786 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
37787 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
37788 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
37789 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
37790 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
37791 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
37792 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
37793 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
37794 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
37795 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
37796 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
37797 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
37798 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
37799 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
37800 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
37801 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
37802 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
37803 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
37804 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
37805 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
37806 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
37807 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
37808 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
37809 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
37810 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
37811 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
37812 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
37813 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
37814 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
37815 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
37816 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
37817 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
37818 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
37819 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
37820 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
37821 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
37822 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
37823 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
37827 0x5A827999,
0x6ED9EBA1,
37828 0x8F1BBCDC,
0xCA62C1D6
37831 function SHA256() {
37832 if (!(this instanceof SHA256))
37833 return new SHA256();
37835 BlockHash.call(this);
37836 this.h = [
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
37837 0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19 ];
37839 this.W = new Array(
64);
37841 utils.inherits(SHA256, BlockHash);
37842 exports.sha256 = SHA256;
37844 SHA256.blockSize =
512;
37845 SHA256.outSize =
256;
37846 SHA256.hmacStrength =
192;
37847 SHA256.padLength =
64;
37849 SHA256.prototype._update = function _update(msg, start) {
37852 for (var i =
0; i <
16; i++)
37853 W[i] = msg[start + i];
37854 for (; i < W.length; i++)
37855 W[i] = sum32_4(g1_256(W[i -
2]), W[i -
7], g0_256(W[i -
15]), W[i -
16]);
37866 assert(this.k.length === W.length);
37867 for (var i =
0; i < W.length; i++) {
37868 var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
37869 var T2 = sum32(s0_256(a), maj32(a, b, c));
37880 this.h[
0] = sum32(this.h[
0], a);
37881 this.h[
1] = sum32(this.h[
1], b);
37882 this.h[
2] = sum32(this.h[
2], c);
37883 this.h[
3] = sum32(this.h[
3], d);
37884 this.h[
4] = sum32(this.h[
4], e);
37885 this.h[
5] = sum32(this.h[
5], f);
37886 this.h[
6] = sum32(this.h[
6], g);
37887 this.h[
7] = sum32(this.h[
7], h);
37890 SHA256.prototype._digest = function digest(enc) {
37892 return utils.toHex32(this.h, 'big');
37894 return utils.split32(this.h, 'big');
37897 function SHA224() {
37898 if (!(this instanceof SHA224))
37899 return new SHA224();
37902 this.h = [
0xc1059ed8,
0x367cd507,
0x3070dd17,
0xf70e5939,
37903 0xffc00b31,
0x68581511,
0x64f98fa7,
0xbefa4fa4 ];
37905 utils.inherits(SHA224, SHA256);
37906 exports.sha224 = SHA224;
37908 SHA224.blockSize =
512;
37909 SHA224.outSize =
224;
37910 SHA224.hmacStrength =
192;
37911 SHA224.padLength =
64;
37913 SHA224.prototype._digest = function digest(enc) {
37914 // Just truncate output
37916 return utils.toHex32(this.h.slice(
0,
7), 'big');
37918 return utils.split32(this.h.slice(
0,
7), 'big');
37921 function SHA512() {
37922 if (!(this instanceof SHA512))
37923 return new SHA512();
37925 BlockHash.call(this);
37926 this.h = [
0x6a09e667,
0xf3bcc908,
37927 0xbb67ae85,
0x84caa73b,
37928 0x3c6ef372,
0xfe94f82b,
37929 0xa54ff53a,
0x5f1d36f1,
37930 0x510e527f,
0xade682d1,
37931 0x9b05688c,
0x2b3e6c1f,
37932 0x1f83d9ab,
0xfb41bd6b,
37933 0x5be0cd19,
0x137e2179 ];
37935 this.W = new Array(
160);
37937 utils.inherits(SHA512, BlockHash);
37938 exports.sha512 = SHA512;
37940 SHA512.blockSize =
1024;
37941 SHA512.outSize =
512;
37942 SHA512.hmacStrength =
192;
37943 SHA512.padLength =
128;
37945 SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
37948 //
32 x
32bit words
37949 for (var i =
0; i <
32; i++)
37950 W[i] = msg[start + i];
37951 for (; i < W.length; i +=
2) {
37952 var c0_hi = g1_512_hi(W[i -
4], W[i -
3]); // i -
2
37953 var c0_lo = g1_512_lo(W[i -
4], W[i -
3]);
37954 var c1_hi = W[i -
14]; // i -
7
37955 var c1_lo = W[i -
13];
37956 var c2_hi = g0_512_hi(W[i -
30], W[i -
29]); // i -
15
37957 var c2_lo = g0_512_lo(W[i -
30], W[i -
29]);
37958 var c3_hi = W[i -
32]; // i -
16
37959 var c3_lo = W[i -
31];
37961 W[i] = sum64_4_hi(c0_hi, c0_lo,
37965 W[i +
1] = sum64_4_lo(c0_hi, c0_lo,
37972 SHA512.prototype._update = function _update(msg, start) {
37973 this._prepareBlock(msg, start);
37977 var ah = this.h[
0];
37978 var al = this.h[
1];
37979 var bh = this.h[
2];
37980 var bl = this.h[
3];
37981 var ch = this.h[
4];
37982 var cl = this.h[
5];
37983 var dh = this.h[
6];
37984 var dl = this.h[
7];
37985 var eh = this.h[
8];
37986 var el = this.h[
9];
37987 var fh = this.h[
10];
37988 var fl = this.h[
11];
37989 var gh = this.h[
12];
37990 var gl = this.h[
13];
37991 var hh = this.h[
14];
37992 var hl = this.h[
15];
37994 assert(this.k.length === W.length);
37995 for (var i =
0; i < W.length; i +=
2) {
37998 var c1_hi = s1_512_hi(eh, el);
37999 var c1_lo = s1_512_lo(eh, el);
38000 var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
38001 var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
38002 var c3_hi = this.k[i];
38003 var c3_lo = this.k[i +
1];
38005 var c4_lo = W[i +
1];
38007 var T1_hi = sum64_5_hi(c0_hi, c0_lo,
38012 var T1_lo = sum64_5_lo(c0_hi, c0_lo,
38018 var c0_hi = s0_512_hi(ah, al);
38019 var c0_lo = s0_512_lo(ah, al);
38020 var c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
38021 var c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
38023 var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
38024 var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
38035 eh = sum64_hi(dh, dl, T1_hi, T1_lo);
38036 el = sum64_lo(dl, dl, T1_hi, T1_lo);
38047 ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
38048 al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
38051 sum64(this.h,
0, ah, al);
38052 sum64(this.h,
2, bh, bl);
38053 sum64(this.h,
4, ch, cl);
38054 sum64(this.h,
6, dh, dl);
38055 sum64(this.h,
8, eh, el);
38056 sum64(this.h,
10, fh, fl);
38057 sum64(this.h,
12, gh, gl);
38058 sum64(this.h,
14, hh, hl);
38061 SHA512.prototype._digest = function digest(enc) {
38063 return utils.toHex32(this.h, 'big');
38065 return utils.split32(this.h, 'big');
38068 function SHA384() {
38069 if (!(this instanceof SHA384))
38070 return new SHA384();
38073 this.h = [
0xcbbb9d5d,
0xc1059ed8,
38074 0x629a292a,
0x367cd507,
38075 0x9159015a,
0x3070dd17,
38076 0x152fecd8,
0xf70e5939,
38077 0x67332667,
0xffc00b31,
38078 0x8eb44a87,
0x68581511,
38079 0xdb0c2e0d,
0x64f98fa7,
38080 0x47b5481d,
0xbefa4fa4 ];
38082 utils.inherits(SHA384, SHA512);
38083 exports.sha384 = SHA384;
38085 SHA384.blockSize =
1024;
38086 SHA384.outSize =
384;
38087 SHA384.hmacStrength =
192;
38088 SHA384.padLength =
128;
38090 SHA384.prototype._digest = function digest(enc) {
38092 return utils.toHex32(this.h.slice(
0,
12), 'big');
38094 return utils.split32(this.h.slice(
0,
12), 'big');
38098 if (!(this instanceof SHA1))
38101 BlockHash.call(this);
38102 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
38103 0x10325476,
0xc3d2e1f0 ];
38104 this.W = new Array(
80);
38107 utils.inherits(SHA1, BlockHash);
38108 exports.sha1 = SHA1;
38110 SHA1.blockSize =
512;
38111 SHA1.outSize =
160;
38112 SHA1.hmacStrength =
80;
38113 SHA1.padLength =
64;
38115 SHA1.prototype._update = function _update(msg, start) {
38118 for (var i =
0; i <
16; i++)
38119 W[i] = msg[start + i];
38121 for(; i < W.length; i++)
38122 W[i] = rotl32(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16],
1);
38130 for (var i =
0; i < W.length; i++) {
38131 var s = ~~(i /
20);
38132 var t = sum32_5(rotl32(a,
5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
38140 this.h[
0] = sum32(this.h[
0], a);
38141 this.h[
1] = sum32(this.h[
1], b);
38142 this.h[
2] = sum32(this.h[
2], c);
38143 this.h[
3] = sum32(this.h[
3], d);
38144 this.h[
4] = sum32(this.h[
4], e);
38147 SHA1.prototype._digest = function digest(enc) {
38149 return utils.toHex32(this.h, 'big');
38151 return utils.split32(this.h, 'big');
38154 function ch32(x, y, z) {
38155 return (x & y) ^ ((~x) & z);
38158 function maj32(x, y, z) {
38159 return (x & y) ^ (x & z) ^ (y & z);
38162 function p32(x, y, z) {
38166 function s0_256(x) {
38167 return rotr32(x,
2) ^ rotr32(x,
13) ^ rotr32(x,
22);
38170 function s1_256(x) {
38171 return rotr32(x,
6) ^ rotr32(x,
11) ^ rotr32(x,
25);
38174 function g0_256(x) {
38175 return rotr32(x,
7) ^ rotr32(x,
18) ^ (x
>>> 3);
38178 function g1_256(x) {
38179 return rotr32(x,
17) ^ rotr32(x,
19) ^ (x
>>> 10);
38182 function ft_1(s, x, y, z) {
38184 return ch32(x, y, z);
38185 if (s ===
1 || s ===
3)
38186 return p32(x, y, z);
38188 return maj32(x, y, z);
38191 function ch64_hi(xh, xl, yh, yl, zh, zl) {
38192 var r = (xh & yh) ^ ((~xh) & zh);
38198 function ch64_lo(xh, xl, yh, yl, zh, zl) {
38199 var r = (xl & yl) ^ ((~xl) & zl);
38205 function maj64_hi(xh, xl, yh, yl, zh, zl) {
38206 var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
38212 function maj64_lo(xh, xl, yh, yl, zh, zl) {
38213 var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
38219 function s0_512_hi(xh, xl) {
38220 var c0_hi = rotr64_hi(xh, xl,
28);
38221 var c1_hi = rotr64_hi(xl, xh,
2); //
34
38222 var c2_hi = rotr64_hi(xl, xh,
7); //
39
38224 var r = c0_hi ^ c1_hi ^ c2_hi;
38230 function s0_512_lo(xh, xl) {
38231 var c0_lo = rotr64_lo(xh, xl,
28);
38232 var c1_lo = rotr64_lo(xl, xh,
2); //
34
38233 var c2_lo = rotr64_lo(xl, xh,
7); //
39
38235 var r = c0_lo ^ c1_lo ^ c2_lo;
38241 function s1_512_hi(xh, xl) {
38242 var c0_hi = rotr64_hi(xh, xl,
14);
38243 var c1_hi = rotr64_hi(xh, xl,
18);
38244 var c2_hi = rotr64_hi(xl, xh,
9); //
41
38246 var r = c0_hi ^ c1_hi ^ c2_hi;
38252 function s1_512_lo(xh, xl) {
38253 var c0_lo = rotr64_lo(xh, xl,
14);
38254 var c1_lo = rotr64_lo(xh, xl,
18);
38255 var c2_lo = rotr64_lo(xl, xh,
9); //
41
38257 var r = c0_lo ^ c1_lo ^ c2_lo;
38263 function g0_512_hi(xh, xl) {
38264 var c0_hi = rotr64_hi(xh, xl,
1);
38265 var c1_hi = rotr64_hi(xh, xl,
8);
38266 var c2_hi = shr64_hi(xh, xl,
7);
38268 var r = c0_hi ^ c1_hi ^ c2_hi;
38274 function g0_512_lo(xh, xl) {
38275 var c0_lo = rotr64_lo(xh, xl,
1);
38276 var c1_lo = rotr64_lo(xh, xl,
8);
38277 var c2_lo = shr64_lo(xh, xl,
7);
38279 var r = c0_lo ^ c1_lo ^ c2_lo;
38285 function g1_512_hi(xh, xl) {
38286 var c0_hi = rotr64_hi(xh, xl,
19);
38287 var c1_hi = rotr64_hi(xl, xh,
29); //
61
38288 var c2_hi = shr64_hi(xh, xl,
6);
38290 var r = c0_hi ^ c1_hi ^ c2_hi;
38296 function g1_512_lo(xh, xl) {
38297 var c0_lo = rotr64_lo(xh, xl,
19);
38298 var c1_lo = rotr64_lo(xl, xh,
29); //
61
38299 var c2_lo = shr64_lo(xh, xl,
6);
38301 var r = c0_lo ^ c1_lo ^ c2_lo;
38307 },{
"../hash":
57}],
62:[function(require,module,exports){
38308 var utils = exports;
38309 var inherits = require('inherits');
38311 function toArray(msg, enc) {
38312 if (Array.isArray(msg))
38313 return msg.slice();
38317 if (typeof msg === 'string') {
38319 for (var i =
0; i < msg.length; i++) {
38320 var c = msg.charCodeAt(i);
38328 } else if (enc === 'hex') {
38329 msg = msg.replace(/[^a-z0-
9]+/ig, '');
38330 if (msg.length %
2 !==
0)
38332 for (var i =
0; i < msg.length; i +=
2)
38333 res.push(parseInt(msg[i] + msg[i +
1],
16));
38336 for (var i =
0; i < msg.length; i++)
38337 res[i] = msg[i] |
0;
38341 utils.toArray = toArray;
38343 function toHex(msg) {
38345 for (var i =
0; i < msg.length; i++)
38346 res += zero2(msg[i].toString(
16));
38349 utils.toHex = toHex;
38351 function htonl(w) {
38352 var res = (w
>>> 24) |
38353 ((w
>>> 8) &
0xff00) |
38354 ((w <<
8) &
0xff0000) |
38355 ((w &
0xff) <<
24);
38358 utils.htonl = htonl;
38360 function toHex32(msg, endian) {
38362 for (var i =
0; i < msg.length; i++) {
38364 if (endian === 'little')
38366 res += zero8(w.toString(
16));
38370 utils.toHex32 = toHex32;
38372 function zero2(word) {
38373 if (word.length ===
1)
38378 utils.zero2 = zero2;
38380 function zero8(word) {
38381 if (word.length ===
7)
38383 else if (word.length ===
6)
38384 return '
00' + word;
38385 else if (word.length ===
5)
38386 return '
000' + word;
38387 else if (word.length ===
4)
38388 return '
0000' + word;
38389 else if (word.length ===
3)
38390 return '
00000' + word;
38391 else if (word.length ===
2)
38392 return '
000000' + word;
38393 else if (word.length ===
1)
38394 return '
0000000' + word;
38398 utils.zero8 = zero8;
38400 function join32(msg, start, end, endian) {
38401 var len = end - start;
38402 assert(len %
4 ===
0);
38403 var res = new Array(len /
4);
38404 for (var i =
0, k = start; i < res.length; i++, k +=
4) {
38406 if (endian === 'big')
38407 w = (msg[k] <<
24) | (msg[k +
1] <<
16) | (msg[k +
2] <<
8) | msg[k +
3];
38409 w = (msg[k +
3] <<
24) | (msg[k +
2] <<
16) | (msg[k +
1] <<
8) | msg[k];
38414 utils.join32 = join32;
38416 function split32(msg, endian) {
38417 var res = new Array(msg.length *
4);
38418 for (var i =
0, k =
0; i < msg.length; i++, k +=
4) {
38420 if (endian === 'big') {
38422 res[k +
1] = (m
>>> 16) &
0xff;
38423 res[k +
2] = (m
>>> 8) &
0xff;
38424 res[k +
3] = m &
0xff;
38426 res[k +
3] = m
>>> 24;
38427 res[k +
2] = (m
>>> 16) &
0xff;
38428 res[k +
1] = (m
>>> 8) &
0xff;
38434 utils.split32 = split32;
38436 function rotr32(w, b) {
38437 return (w
>>> b) | (w << (
32 - b));
38439 utils.rotr32 = rotr32;
38441 function rotl32(w, b) {
38442 return (w << b) | (w
>>> (
32 - b));
38444 utils.rotl32 = rotl32;
38446 function sum32(a, b) {
38447 return (a + b)
>>> 0;
38449 utils.sum32 = sum32;
38451 function sum32_3(a, b, c) {
38452 return (a + b + c)
>>> 0;
38454 utils.sum32_3 = sum32_3;
38456 function sum32_4(a, b, c, d) {
38457 return (a + b + c + d)
>>> 0;
38459 utils.sum32_4 = sum32_4;
38461 function sum32_5(a, b, c, d, e) {
38462 return (a + b + c + d + e)
>>> 0;
38464 utils.sum32_5 = sum32_5;
38466 function assert(cond, msg) {
38468 throw new Error(msg || 'Assertion failed');
38470 utils.assert = assert;
38472 utils.inherits = inherits;
38474 function sum64(buf, pos, ah, al) {
38476 var bl = buf[pos +
1];
38478 var lo = (al + bl)
>>> 0;
38479 var hi = (lo < al ?
1 :
0) + ah + bh;
38480 buf[pos] = hi
>>> 0;
38483 exports.sum64 = sum64;
38485 function sum64_hi(ah, al, bh, bl) {
38486 var lo = (al + bl)
>>> 0;
38487 var hi = (lo < al ?
1 :
0) + ah + bh;
38490 exports.sum64_hi = sum64_hi;
38492 function sum64_lo(ah, al, bh, bl) {
38496 exports.sum64_lo = sum64_lo;
38498 function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
38501 lo = (lo + bl)
>>> 0;
38502 carry += lo < al ?
1 :
0;
38503 lo = (lo + cl)
>>> 0;
38504 carry += lo < cl ?
1 :
0;
38505 lo = (lo + dl)
>>> 0;
38506 carry += lo < dl ?
1 :
0;
38508 var hi = ah + bh + ch + dh + carry;
38511 exports.sum64_4_hi = sum64_4_hi;
38513 function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
38514 var lo = al + bl + cl + dl;
38517 exports.sum64_4_lo = sum64_4_lo;
38519 function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
38522 lo = (lo + bl)
>>> 0;
38523 carry += lo < al ?
1 :
0;
38524 lo = (lo + cl)
>>> 0;
38525 carry += lo < cl ?
1 :
0;
38526 lo = (lo + dl)
>>> 0;
38527 carry += lo < dl ?
1 :
0;
38528 lo = (lo + el)
>>> 0;
38529 carry += lo < el ?
1 :
0;
38531 var hi = ah + bh + ch + dh + eh + carry;
38534 exports.sum64_5_hi = sum64_5_hi;
38536 function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
38537 var lo = al + bl + cl + dl + el;
38541 exports.sum64_5_lo = sum64_5_lo;
38543 function rotr64_hi(ah, al, num) {
38544 var r = (al << (
32 - num)) | (ah
>>> num);
38547 exports.rotr64_hi = rotr64_hi;
38549 function rotr64_lo(ah, al, num) {
38550 var r = (ah << (
32 - num)) | (al
>>> num);
38553 exports.rotr64_lo = rotr64_lo;
38555 function shr64_hi(ah, al, num) {
38558 exports.shr64_hi = shr64_hi;
38560 function shr64_lo(ah, al, num) {
38561 var r = (ah << (
32 - num)) | (al
>>> num);
38564 exports.shr64_lo = shr64_lo;
38566 },{
"inherits":
63}],
63:[function(require,module,exports){
38567 arguments[
4][
9][
0].apply(exports,arguments)
38568 },{
"dup":
9}],
64:[function(require,module,exports){
38570 * Returns a `Boolean` on whether or not the a `String` starts with '
0x'
38571 * @param {String} str the string input value
38572 * @return {Boolean} a boolean if it is or is not hex prefixed
38573 * @throws if the str input is not a string
38575 module.exports = function isHexPrefixed(str) {
38576 if (typeof str !== 'string') {
38577 throw new Error(
"[is-hex-prefixed] value must be type 'string', is currently type " + (typeof str) +
", while checking isHexPrefixed.");
38580 return str.slice(
0,
2) === '
0x';
38583 },{}],
65:[function(require,module,exports){
38585 module.exports = require('./lib/api')(require('./lib/keccak'))
38587 },{
"./lib/api":
66,
"./lib/keccak":
70}],
66:[function(require,module,exports){
38589 var createKeccak = require('./keccak')
38590 var createShake = require('./shake')
38592 module.exports = function (KeccakState) {
38593 var Keccak = createKeccak(KeccakState)
38594 var Shake = createShake(KeccakState)
38596 return function (algorithm, options) {
38597 var hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm
38599 case 'keccak224': return new Keccak(
1152,
448, null,
224, options)
38600 case 'keccak256': return new Keccak(
1088,
512, null,
256, options)
38601 case 'keccak384': return new Keccak(
832,
768, null,
384, options)
38602 case 'keccak512': return new Keccak(
576,
1024, null,
512, options)
38604 case 'sha3-
224': return new Keccak(
1152,
448,
0x06,
224, options)
38605 case 'sha3-
256': return new Keccak(
1088,
512,
0x06,
256, options)
38606 case 'sha3-
384': return new Keccak(
832,
768,
0x06,
384, options)
38607 case 'sha3-
512': return new Keccak(
576,
1024,
0x06,
512, options)
38609 case 'shake128': return new Shake(
1344,
256,
0x1f, options)
38610 case 'shake256': return new Shake(
1088,
512,
0x1f, options)
38612 default: throw new Error('Invald algorithm: ' + algorithm)
38617 },{
"./keccak":
67,
"./shake":
68}],
67:[function(require,module,exports){
38618 (function (Buffer){
38620 var Transform = require('stream').Transform
38621 var inherits = require('inherits')
38623 module.exports = function (KeccakState) {
38624 function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
38625 Transform.call(this, options)
38628 this._capacity = capacity
38629 this._delimitedSuffix = delimitedSuffix
38630 this._hashBitLength = hashBitLength
38631 this._options = options
38633 this._state = new KeccakState()
38634 this._state.initialize(rate, capacity)
38635 this._finalized = false
38638 inherits(Keccak, Transform)
38640 Keccak.prototype._transform = function (chunk, encoding, callback) {
38643 this.update(chunk, encoding)
38651 Keccak.prototype._flush = function (callback) {
38654 this.push(this.digest())
38662 Keccak.prototype.update = function (data, encoding) {
38663 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
38664 if (this._finalized) throw new Error('Digest already called')
38665 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
38667 this._state.absorb(data)
38672 Keccak.prototype.digest = function (encoding) {
38673 if (this._finalized) throw new Error('Digest already called')
38674 this._finalized = true
38676 if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)
38677 var digest = this._state.squeeze(this._hashBitLength /
8)
38678 if (encoding !== undefined) digest = digest.toString(encoding)
38685 // remove result from memory
38686 Keccak.prototype._resetState = function () {
38687 this._state.initialize(this._rate, this._capacity)
38691 // because sometimes we need hash right now and little later
38692 Keccak.prototype._clone = function () {
38693 var clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)
38694 this._state.copy(clone._state)
38695 clone._finalized = this._finalized
38703 }).call(this,require(
"buffer").Buffer)
38704 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
68:[function(require,module,exports){
38705 (function (Buffer){
38707 var Transform = require('stream').Transform
38708 var inherits = require('inherits')
38710 module.exports = function (KeccakState) {
38711 function Shake (rate, capacity, delimitedSuffix, options) {
38712 Transform.call(this, options)
38715 this._capacity = capacity
38716 this._delimitedSuffix = delimitedSuffix
38717 this._options = options
38719 this._state = new KeccakState()
38720 this._state.initialize(rate, capacity)
38721 this._finalized = false
38724 inherits(Shake, Transform)
38726 Shake.prototype._transform = function (chunk, encoding, callback) {
38729 this.update(chunk, encoding)
38737 Shake.prototype._flush = function () {}
38739 Shake.prototype._read = function (size) {
38740 this.push(this.squeeze(size))
38743 Shake.prototype.update = function (data, encoding) {
38744 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
38745 if (this._finalized) throw new Error('Squeeze already called')
38746 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
38748 this._state.absorb(data)
38753 Shake.prototype.squeeze = function (dataByteLength, encoding) {
38754 if (!this._finalized) {
38755 this._finalized = true
38756 this._state.absorbLastFewBits(this._delimitedSuffix)
38759 var data = this._state.squeeze(dataByteLength)
38760 if (encoding !== undefined) data = data.toString(encoding)
38765 Shake.prototype._resetState = function () {
38766 this._state.initialize(this._rate, this._capacity)
38770 Shake.prototype._clone = function () {
38771 var clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)
38772 this._state.copy(clone._state)
38773 clone._finalized = this._finalized
38781 }).call(this,require(
"buffer").Buffer)
38782 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
69:[function(require,module,exports){
38784 var P1600_ROUND_CONSTANTS = [
1,
0,
32898,
0,
32906,
2147483648,
2147516416,
2147483648,
32907,
0,
2147483649,
0,
2147516545,
2147483648,
32777,
2147483648,
138,
0,
136,
0,
2147516425,
0,
2147483658,
0,
2147516555,
0,
139,
2147483648,
32905,
2147483648,
32771,
2147483648,
32770,
2147483648,
128,
2147483648,
32778,
0,
2147483658,
2147483648,
2147516545,
2147483648,
32896,
2147483648,
2147483649,
0,
2147516424,
2147483648]
38786 exports.p1600 = function (s) {
38787 for (var round =
0; round <
24; ++round) {
38789 var lo0 = s[
0] ^ s[
10] ^ s[
20] ^ s[
30] ^ s[
40]
38790 var hi0 = s[
1] ^ s[
11] ^ s[
21] ^ s[
31] ^ s[
41]
38791 var lo1 = s[
2] ^ s[
12] ^ s[
22] ^ s[
32] ^ s[
42]
38792 var hi1 = s[
3] ^ s[
13] ^ s[
23] ^ s[
33] ^ s[
43]
38793 var lo2 = s[
4] ^ s[
14] ^ s[
24] ^ s[
34] ^ s[
44]
38794 var hi2 = s[
5] ^ s[
15] ^ s[
25] ^ s[
35] ^ s[
45]
38795 var lo3 = s[
6] ^ s[
16] ^ s[
26] ^ s[
36] ^ s[
46]
38796 var hi3 = s[
7] ^ s[
17] ^ s[
27] ^ s[
37] ^ s[
47]
38797 var lo4 = s[
8] ^ s[
18] ^ s[
28] ^ s[
38] ^ s[
48]
38798 var hi4 = s[
9] ^ s[
19] ^ s[
29] ^ s[
39] ^ s[
49]
38800 var lo = lo4 ^ (lo1 <<
1 | hi1
>>> 31)
38801 var hi = hi4 ^ (hi1 <<
1 | lo1
>>> 31)
38802 var t1slo0 = s[
0] ^ lo
38803 var t1shi0 = s[
1] ^ hi
38804 var t1slo5 = s[
10] ^ lo
38805 var t1shi5 = s[
11] ^ hi
38806 var t1slo10 = s[
20] ^ lo
38807 var t1shi10 = s[
21] ^ hi
38808 var t1slo15 = s[
30] ^ lo
38809 var t1shi15 = s[
31] ^ hi
38810 var t1slo20 = s[
40] ^ lo
38811 var t1shi20 = s[
41] ^ hi
38812 lo = lo0 ^ (lo2 <<
1 | hi2
>>> 31)
38813 hi = hi0 ^ (hi2 <<
1 | lo2
>>> 31)
38814 var t1slo1 = s[
2] ^ lo
38815 var t1shi1 = s[
3] ^ hi
38816 var t1slo6 = s[
12] ^ lo
38817 var t1shi6 = s[
13] ^ hi
38818 var t1slo11 = s[
22] ^ lo
38819 var t1shi11 = s[
23] ^ hi
38820 var t1slo16 = s[
32] ^ lo
38821 var t1shi16 = s[
33] ^ hi
38822 var t1slo21 = s[
42] ^ lo
38823 var t1shi21 = s[
43] ^ hi
38824 lo = lo1 ^ (lo3 <<
1 | hi3
>>> 31)
38825 hi = hi1 ^ (hi3 <<
1 | lo3
>>> 31)
38826 var t1slo2 = s[
4] ^ lo
38827 var t1shi2 = s[
5] ^ hi
38828 var t1slo7 = s[
14] ^ lo
38829 var t1shi7 = s[
15] ^ hi
38830 var t1slo12 = s[
24] ^ lo
38831 var t1shi12 = s[
25] ^ hi
38832 var t1slo17 = s[
34] ^ lo
38833 var t1shi17 = s[
35] ^ hi
38834 var t1slo22 = s[
44] ^ lo
38835 var t1shi22 = s[
45] ^ hi
38836 lo = lo2 ^ (lo4 <<
1 | hi4
>>> 31)
38837 hi = hi2 ^ (hi4 <<
1 | lo4
>>> 31)
38838 var t1slo3 = s[
6] ^ lo
38839 var t1shi3 = s[
7] ^ hi
38840 var t1slo8 = s[
16] ^ lo
38841 var t1shi8 = s[
17] ^ hi
38842 var t1slo13 = s[
26] ^ lo
38843 var t1shi13 = s[
27] ^ hi
38844 var t1slo18 = s[
36] ^ lo
38845 var t1shi18 = s[
37] ^ hi
38846 var t1slo23 = s[
46] ^ lo
38847 var t1shi23 = s[
47] ^ hi
38848 lo = lo3 ^ (lo0 <<
1 | hi0
>>> 31)
38849 hi = hi3 ^ (hi0 <<
1 | lo0
>>> 31)
38850 var t1slo4 = s[
8] ^ lo
38851 var t1shi4 = s[
9] ^ hi
38852 var t1slo9 = s[
18] ^ lo
38853 var t1shi9 = s[
19] ^ hi
38854 var t1slo14 = s[
28] ^ lo
38855 var t1shi14 = s[
29] ^ hi
38856 var t1slo19 = s[
38] ^ lo
38857 var t1shi19 = s[
39] ^ hi
38858 var t1slo24 = s[
48] ^ lo
38859 var t1shi24 = s[
49] ^ hi
38862 var t2slo0 = t1slo0
38863 var t2shi0 = t1shi0
38864 var t2slo16 = (t1shi5 <<
4 | t1slo5
>>> 28)
38865 var t2shi16 = (t1slo5 <<
4 | t1shi5
>>> 28)
38866 var t2slo7 = (t1slo10 <<
3 | t1shi10
>>> 29)
38867 var t2shi7 = (t1shi10 <<
3 | t1slo10
>>> 29)
38868 var t2slo23 = (t1shi15 <<
9 | t1slo15
>>> 23)
38869 var t2shi23 = (t1slo15 <<
9 | t1shi15
>>> 23)
38870 var t2slo14 = (t1slo20 <<
18 | t1shi20
>>> 14)
38871 var t2shi14 = (t1shi20 <<
18 | t1slo20
>>> 14)
38872 var t2slo10 = (t1slo1 <<
1 | t1shi1
>>> 31)
38873 var t2shi10 = (t1shi1 <<
1 | t1slo1
>>> 31)
38874 var t2slo1 = (t1shi6 <<
12 | t1slo6
>>> 20)
38875 var t2shi1 = (t1slo6 <<
12 | t1shi6
>>> 20)
38876 var t2slo17 = (t1slo11 <<
10 | t1shi11
>>> 22)
38877 var t2shi17 = (t1shi11 <<
10 | t1slo11
>>> 22)
38878 var t2slo8 = (t1shi16 <<
13 | t1slo16
>>> 19)
38879 var t2shi8 = (t1slo16 <<
13 | t1shi16
>>> 19)
38880 var t2slo24 = (t1slo21 <<
2 | t1shi21
>>> 30)
38881 var t2shi24 = (t1shi21 <<
2 | t1slo21
>>> 30)
38882 var t2slo20 = (t1shi2 <<
30 | t1slo2
>>> 2)
38883 var t2shi20 = (t1slo2 <<
30 | t1shi2
>>> 2)
38884 var t2slo11 = (t1slo7 <<
6 | t1shi7
>>> 26)
38885 var t2shi11 = (t1shi7 <<
6 | t1slo7
>>> 26)
38886 var t2slo2 = (t1shi12 <<
11 | t1slo12
>>> 21)
38887 var t2shi2 = (t1slo12 <<
11 | t1shi12
>>> 21)
38888 var t2slo18 = (t1slo17 <<
15 | t1shi17
>>> 17)
38889 var t2shi18 = (t1shi17 <<
15 | t1slo17
>>> 17)
38890 var t2slo9 = (t1shi22 <<
29 | t1slo22
>>> 3)
38891 var t2shi9 = (t1slo22 <<
29 | t1shi22
>>> 3)
38892 var t2slo5 = (t1slo3 <<
28 | t1shi3
>>> 4)
38893 var t2shi5 = (t1shi3 <<
28 | t1slo3
>>> 4)
38894 var t2slo21 = (t1shi8 <<
23 | t1slo8
>>> 9)
38895 var t2shi21 = (t1slo8 <<
23 | t1shi8
>>> 9)
38896 var t2slo12 = (t1slo13 <<
25 | t1shi13
>>> 7)
38897 var t2shi12 = (t1shi13 <<
25 | t1slo13
>>> 7)
38898 var t2slo3 = (t1slo18 <<
21 | t1shi18
>>> 11)
38899 var t2shi3 = (t1shi18 <<
21 | t1slo18
>>> 11)
38900 var t2slo19 = (t1shi23 <<
24 | t1slo23
>>> 8)
38901 var t2shi19 = (t1slo23 <<
24 | t1shi23
>>> 8)
38902 var t2slo15 = (t1slo4 <<
27 | t1shi4
>>> 5)
38903 var t2shi15 = (t1shi4 <<
27 | t1slo4
>>> 5)
38904 var t2slo6 = (t1slo9 <<
20 | t1shi9
>>> 12)
38905 var t2shi6 = (t1shi9 <<
20 | t1slo9
>>> 12)
38906 var t2slo22 = (t1shi14 <<
7 | t1slo14
>>> 25)
38907 var t2shi22 = (t1slo14 <<
7 | t1shi14
>>> 25)
38908 var t2slo13 = (t1slo19 <<
8 | t1shi19
>>> 24)
38909 var t2shi13 = (t1shi19 <<
8 | t1slo19
>>> 24)
38910 var t2slo4 = (t1slo24 <<
14 | t1shi24
>>> 18)
38911 var t2shi4 = (t1shi24 <<
14 | t1slo24
>>> 18)
38914 s[
0] = t2slo0 ^ (~t2slo1 & t2slo2)
38915 s[
1] = t2shi0 ^ (~t2shi1 & t2shi2)
38916 s[
10] = t2slo5 ^ (~t2slo6 & t2slo7)
38917 s[
11] = t2shi5 ^ (~t2shi6 & t2shi7)
38918 s[
20] = t2slo10 ^ (~t2slo11 & t2slo12)
38919 s[
21] = t2shi10 ^ (~t2shi11 & t2shi12)
38920 s[
30] = t2slo15 ^ (~t2slo16 & t2slo17)
38921 s[
31] = t2shi15 ^ (~t2shi16 & t2shi17)
38922 s[
40] = t2slo20 ^ (~t2slo21 & t2slo22)
38923 s[
41] = t2shi20 ^ (~t2shi21 & t2shi22)
38924 s[
2] = t2slo1 ^ (~t2slo2 & t2slo3)
38925 s[
3] = t2shi1 ^ (~t2shi2 & t2shi3)
38926 s[
12] = t2slo6 ^ (~t2slo7 & t2slo8)
38927 s[
13] = t2shi6 ^ (~t2shi7 & t2shi8)
38928 s[
22] = t2slo11 ^ (~t2slo12 & t2slo13)
38929 s[
23] = t2shi11 ^ (~t2shi12 & t2shi13)
38930 s[
32] = t2slo16 ^ (~t2slo17 & t2slo18)
38931 s[
33] = t2shi16 ^ (~t2shi17 & t2shi18)
38932 s[
42] = t2slo21 ^ (~t2slo22 & t2slo23)
38933 s[
43] = t2shi21 ^ (~t2shi22 & t2shi23)
38934 s[
4] = t2slo2 ^ (~t2slo3 & t2slo4)
38935 s[
5] = t2shi2 ^ (~t2shi3 & t2shi4)
38936 s[
14] = t2slo7 ^ (~t2slo8 & t2slo9)
38937 s[
15] = t2shi7 ^ (~t2shi8 & t2shi9)
38938 s[
24] = t2slo12 ^ (~t2slo13 & t2slo14)
38939 s[
25] = t2shi12 ^ (~t2shi13 & t2shi14)
38940 s[
34] = t2slo17 ^ (~t2slo18 & t2slo19)
38941 s[
35] = t2shi17 ^ (~t2shi18 & t2shi19)
38942 s[
44] = t2slo22 ^ (~t2slo23 & t2slo24)
38943 s[
45] = t2shi22 ^ (~t2shi23 & t2shi24)
38944 s[
6] = t2slo3 ^ (~t2slo4 & t2slo0)
38945 s[
7] = t2shi3 ^ (~t2shi4 & t2shi0)
38946 s[
16] = t2slo8 ^ (~t2slo9 & t2slo5)
38947 s[
17] = t2shi8 ^ (~t2shi9 & t2shi5)
38948 s[
26] = t2slo13 ^ (~t2slo14 & t2slo10)
38949 s[
27] = t2shi13 ^ (~t2shi14 & t2shi10)
38950 s[
36] = t2slo18 ^ (~t2slo19 & t2slo15)
38951 s[
37] = t2shi18 ^ (~t2shi19 & t2shi15)
38952 s[
46] = t2slo23 ^ (~t2slo24 & t2slo20)
38953 s[
47] = t2shi23 ^ (~t2shi24 & t2shi20)
38954 s[
8] = t2slo4 ^ (~t2slo0 & t2slo1)
38955 s[
9] = t2shi4 ^ (~t2shi0 & t2shi1)
38956 s[
18] = t2slo9 ^ (~t2slo5 & t2slo6)
38957 s[
19] = t2shi9 ^ (~t2shi5 & t2shi6)
38958 s[
28] = t2slo14 ^ (~t2slo10 & t2slo11)
38959 s[
29] = t2shi14 ^ (~t2shi10 & t2shi11)
38960 s[
38] = t2slo19 ^ (~t2slo15 & t2slo16)
38961 s[
39] = t2shi19 ^ (~t2shi15 & t2shi16)
38962 s[
48] = t2slo24 ^ (~t2slo20 & t2slo21)
38963 s[
49] = t2shi24 ^ (~t2shi20 & t2shi21)
38966 s[
0] ^= P1600_ROUND_CONSTANTS[round *
2]
38967 s[
1] ^= P1600_ROUND_CONSTANTS[round *
2 +
1]
38971 },{}],
70:[function(require,module,exports){
38972 (function (Buffer){
38974 var keccakState = require('./keccak-state-unroll')
38976 function Keccak () {
38977 // much faster than `new Array(
50)`
38986 this.blockSize = null
38988 this.squeezing = false
38991 Keccak.prototype.initialize = function (rate, capacity) {
38992 for (var i =
0; i <
50; ++i) this.state[i] =
0
38993 this.blockSize = rate /
8
38995 this.squeezing = false
38998 Keccak.prototype.absorb = function (data) {
38999 for (var i =
0; i < data.length; ++i) {
39000 this.state[~~(this.count /
4)] ^= data[i] << (
8 * (this.count %
4))
39002 if (this.count === this.blockSize) {
39003 keccakState.p1600(this.state)
39009 Keccak.prototype.absorbLastFewBits = function (bits) {
39010 this.state[~~(this.count /
4)] ^= bits << (
8 * (this.count %
4))
39011 if ((bits &
0x80) !==
0 && this.count === (this.blockSize -
1)) keccakState.p1600(this.state)
39012 this.state[~~((this.blockSize -
1) /
4)] ^=
0x80 << (
8 * ((this.blockSize -
1) %
4))
39013 keccakState.p1600(this.state)
39015 this.squeezing = true
39018 Keccak.prototype.squeeze = function (length) {
39019 if (!this.squeezing) this.absorbLastFewBits(
0x01)
39021 var output = Buffer.allocUnsafe(length)
39022 for (var i =
0; i < length; ++i) {
39023 output[i] = (this.state[~~(this.count /
4)]
>>> (
8 * (this.count %
4))) &
0xff
39025 if (this.count === this.blockSize) {
39026 keccakState.p1600(this.state)
39034 Keccak.prototype.copy = function (dest) {
39035 for (var i =
0; i <
50; ++i) dest.state[i] = this.state[i]
39036 dest.blockSize = this.blockSize
39037 dest.count = this.count
39038 dest.squeezing = this.squeezing
39041 module.exports = Keccak
39043 }).call(this,require("buffer").Buffer)
39044 },{"./keccak-state-unroll":
69,"buffer":
5}],
71:[function(require,module,exports){
39045 (function (Buffer){
39048 code.google.com/p/crypto-js
39049 (c)
2009-
2013 by Jeff Mott. All rights reserved.
39050 code.google.com/p/crypto-js/wiki/License
39053 (c)
2012 by Cédric Mesnil. All rights reserved.
39055 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
39057 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
39058 - 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.
39060 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 HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39065 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
39066 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
39067 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
39068 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
39069 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
39073 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
39074 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
39075 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
39076 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
39077 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
39081 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
39082 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
39083 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
39084 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
39085 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
39089 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
39090 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
39091 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
39092 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
39093 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
39096 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
39097 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
39099 function bytesToWords (bytes) {
39101 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
39102 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
39107 function wordsToBytes (words) {
39109 for (var b =
0; b < words.length *
32; b +=
8) {
39110 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
39115 function processBlock (H, M, offset) {
39117 for (var i =
0; i <
16; i++) {
39118 var offset_i = offset + i
39119 var M_offset_i = M[offset_i]
39123 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
39124 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
39128 // Working variables
39129 var al, bl, cl, dl, el
39130 var ar, br, cr, dr, er
39140 for (i =
0; i <
80; i +=
1) {
39141 t = (al + M[offset + zl[i]]) |
0
39143 t += f1(bl, cl, dl) + hl[
0]
39144 } else if (i <
32) {
39145 t += f2(bl, cl, dl) + hl[
1]
39146 } else if (i <
48) {
39147 t += f3(bl, cl, dl) + hl[
2]
39148 } else if (i <
64) {
39149 t += f4(bl, cl, dl) + hl[
3]
39150 } else {// if (i
<80) {
39151 t += f5(bl, cl, dl) + hl[
4]
39162 t = (ar + M[offset + zr[i]]) |
0
39164 t += f5(br, cr, dr) + hr[
0]
39165 } else if (i <
32) {
39166 t += f4(br, cr, dr) + hr[
1]
39167 } else if (i <
48) {
39168 t += f3(br, cr, dr) + hr[
2]
39169 } else if (i <
64) {
39170 t += f2(br, cr, dr) + hr[
3]
39171 } else {// if (i
<80) {
39172 t += f1(br, cr, dr) + hr[
4]
39185 // intermediate hash value
39186 t = (H[
1] + cl + dr) |
0
39187 H[
1] = (H[
2] + dl + er) |
0
39188 H[
2] = (H[
3] + el + ar) |
0
39189 H[
3] = (H[
4] + al + br) |
0
39190 H[
4] = (H[
0] + bl + cr) |
0
39194 function f1 (x, y, z) {
39195 return ((x) ^ (y) ^ (z))
39198 function f2 (x, y, z) {
39199 return (((x) & (y)) | ((~x) & (z)))
39202 function f3 (x, y, z) {
39203 return (((x) | (~(y))) ^ (z))
39206 function f4 (x, y, z) {
39207 return (((x) & (z)) | ((y) & (~(z))))
39210 function f5 (x, y, z) {
39211 return ((x) ^ ((y) | (~(z))))
39214 function rotl (x, n) {
39215 return (x << n) | (x
>>> (
32 - n))
39218 function ripemd160 (message) {
39219 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
39221 if (typeof message === 'string') {
39222 message = new Buffer(message, 'utf8')
39225 var m = bytesToWords(message)
39227 var nBitsLeft = message.length *
8
39228 var nBitsTotal = message.length *
8
39231 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
39232 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
39233 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
39234 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
39237 for (var i =
0; i < m.length; i +=
16) {
39238 processBlock(H, m, i)
39242 for (i =
0; i <
5; i++) {
39247 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
39248 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
39251 var digestbytes = wordsToBytes(H)
39252 return new Buffer(digestbytes)
39255 module.exports = ripemd160
39257 }).call(this,require(
"buffer").Buffer)
39258 },{
"buffer":
5}],
72:[function(require,module,exports){
39259 (function (Buffer){
39260 const assert = require('assert')
39262 * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP
39263 * This function takes in a data, convert it to buffer if not, and a length for recursion
39265 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
39266 * @returns {Buffer} - returns buffer of encoded data
39268 exports.encode = function (input) {
39269 if (input instanceof Array) {
39271 for (var i =
0; i < input.length; i++) {
39272 output.push(exports.encode(input[i]))
39274 var buf = Buffer.concat(output)
39275 return Buffer.concat([encodeLength(buf.length,
192), buf])
39277 input = toBuffer(input)
39278 if (input.length ===
1 && input[
0] <
128) {
39281 return Buffer.concat([encodeLength(input.length,
128), input])
39286 function safeParseInt (v, base) {
39287 if (v.slice(
0,
2) === '
00') {
39288 throw (new Error('invalid RLP: extra zeros'))
39291 return parseInt(v, base)
39294 function encodeLength (len, offset) {
39296 return new Buffer([len + offset])
39298 var hexLength = intToHex(len)
39299 var lLength = hexLength.length /
2
39300 var firstByte = intToHex(offset +
55 + lLength)
39301 return new Buffer(firstByte + hexLength, 'hex')
39306 * RLP Decoding based on: {@link https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP|RLP}
39307 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
39308 * @returns {Array} - returns decode Array of Buffers containg the original message
39310 exports.decode = function (input, stream) {
39311 if (!input || input.length ===
0) {
39312 return new Buffer([])
39315 input = toBuffer(input)
39316 var decoded = _decode(input)
39322 assert.equal(decoded.remainder.length,
0, 'invalid remainder')
39323 return decoded.data
39326 exports.getLength = function (input) {
39327 if (!input || input.length ===
0) {
39328 return new Buffer([])
39331 input = toBuffer(input)
39332 var firstByte = input[
0]
39333 if (firstByte <=
0x7f) {
39334 return input.length
39335 } else if (firstByte <=
0xb7) {
39336 return firstByte -
0x7f
39337 } else if (firstByte <=
0xbf) {
39338 return firstByte -
0xb6
39339 } else if (firstByte <=
0xf7) {
39340 // a list between
0-
55 bytes long
39341 return firstByte -
0xbf
39343 // a list over
55 bytes long
39344 var llength = firstByte -
0xf6
39345 var length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39346 return llength + length
39350 function _decode (input) {
39351 var length, llength, data, innerRemainder, d
39353 var firstByte = input[
0]
39355 if (firstByte <=
0x7f) {
39356 // a single byte whose value is in the [
0x00,
0x7f] range, that byte is its own RLP encoding.
39358 data: input.slice(
0,
1),
39359 remainder: input.slice(
1)
39361 } else if (firstByte <=
0xb7) {
39362 // string is
0-
55 bytes long. A single byte with value
0x80 plus the length of the string followed by the string
39363 // The range of the first byte is [
0x80,
0xb7]
39364 length = firstByte -
0x7f
39366 // set
0x80 null to
0
39367 if (firstByte ===
0x80) {
39368 data = new Buffer([])
39370 data = input.slice(
1, length)
39373 if (length ===
2 && data[
0] <
0x80) {
39374 throw new Error('invalid rlp encoding: byte must be less
0x80')
39379 remainder: input.slice(length)
39381 } else if (firstByte <=
0xbf) {
39382 llength = firstByte -
0xb6
39383 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39384 data = input.slice(llength, length + llength)
39385 if (data.length < length) {
39386 throw (new Error('invalid RLP'))
39391 remainder: input.slice(length + llength)
39393 } else if (firstByte <=
0xf7) {
39394 // a list between
0-
55 bytes long
39395 length = firstByte -
0xbf
39396 innerRemainder = input.slice(
1, length)
39397 while (innerRemainder.length) {
39398 d = _decode(innerRemainder)
39399 decoded.push(d.data)
39400 innerRemainder = d.remainder
39405 remainder: input.slice(length)
39408 // a list over
55 bytes long
39409 llength = firstByte -
0xf6
39410 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
39411 var totalLength = llength + length
39412 if (totalLength
> input.length) {
39413 throw new Error('invalid rlp: total length is larger than the data')
39416 innerRemainder = input.slice(llength, totalLength)
39417 if (innerRemainder.length ===
0) {
39418 throw new Error('invalid rlp, List has a invalid length')
39421 while (innerRemainder.length) {
39422 d = _decode(innerRemainder)
39423 decoded.push(d.data)
39424 innerRemainder = d.remainder
39428 remainder: input.slice(totalLength)
39433 function isHexPrefixed (str) {
39434 return str.slice(
0,
2) === '
0x'
39437 // Removes
0x from a given String
39438 function stripHexPrefix (str) {
39439 if (typeof str !== 'string') {
39442 return isHexPrefixed(str) ? str.slice(
2) : str
39445 function intToHex (i) {
39446 var hex = i.toString(
16)
39447 if (hex.length %
2) {
39454 function padToEven (a) {
39455 if (a.length %
2) a = '
0' + a
39459 function intToBuffer (i) {
39460 var hex = intToHex(i)
39461 return new Buffer(hex, 'hex')
39464 function toBuffer (v) {
39465 if (!Buffer.isBuffer(v)) {
39466 if (typeof v === 'string') {
39467 if (isHexPrefixed(v)) {
39468 v = new Buffer(padToEven(stripHexPrefix(v)), 'hex')
39472 } else if (typeof v === 'number') {
39478 } else if (v === null || v === undefined) {
39480 } else if (v.toArray) {
39481 // converts a BN to a Buffer
39482 v = new Buffer(v.toArray())
39484 throw new Error('invalid type')
39490 }).call(this,require("buffer").Buffer)
39491 },{"assert":
1,"buffer":
5}],
73:[function(require,module,exports){
39493 module.exports = require('./lib')(require('./lib/elliptic'))
39495 },{"./lib":
77,"./lib/elliptic":
76}],
74:[function(require,module,exports){
39496 (function (Buffer){
39498 var toString = Object.prototype.toString
39501 exports.isArray = function (value, message) {
39502 if (!Array.isArray(value)) throw TypeError(message)
39505 exports.isBoolean = function (value, message) {
39506 if (toString.call(value) !== '[object Boolean]') throw TypeError(message)
39509 exports.isBuffer = function (value, message) {
39510 if (!Buffer.isBuffer(value)) throw TypeError(message)
39513 exports.isFunction = function (value, message) {
39514 if (toString.call(value) !== '[object Function]') throw TypeError(message)
39517 exports.isNumber = function (value, message) {
39518 if (toString.call(value) !== '[object Number]') throw TypeError(message)
39521 exports.isObject = function (value, message) {
39522 if (toString.call(value) !== '[object Object]') throw TypeError(message)
39526 exports.isBufferLength = function (buffer, length, message) {
39527 if (buffer.length !== length) throw RangeError(message)
39530 exports.isBufferLength2 = function (buffer, length1, length2, message) {
39531 if (buffer.length !== length1 && buffer.length !== length2) throw RangeError(message)
39534 exports.isLengthGTZero = function (value, message) {
39535 if (value.length ===
0) throw RangeError(message)
39538 exports.isNumberInInterval = function (number, x, y, message) {
39539 if (number <= x || number
>= y) throw RangeError(message)
39542 }).call(this,{"isBuffer":require("../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
39543 },{"../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js":
10}],
75:[function(require,module,exports){
39544 (function (Buffer){
39546 var bip66 = require('bip66')
39548 var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
39550 0x30,
0x81,
0xd3,
0x02,
0x01,
0x01,
0x04,
0x20,
39552 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39553 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39555 0xa0,
0x81,
0x85,
0x30,
0x81,
0x82,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
39556 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39557 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39558 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
39559 0x21,
0x02,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
39560 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
39561 0x17,
0x98,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39562 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
39563 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x24,
0x03,
0x22,
0x00,
39565 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39566 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39570 var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
39572 0x30,
0x82,
0x01,
0x13,
0x02,
0x01,
0x01,
0x04,
0x20,
39574 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39575 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39577 0xa0,
0x81,
0xa5,
0x30,
0x81,
0xa2,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
39578 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39579 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39580 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
39581 0x41,
0x04,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
39582 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
39583 0x17,
0x98,
0x48,
0x3a,
0xda,
0x77,
0x26,
0xa3,
0xc4,
0x65,
0x5d,
0xa4,
0xfb,
0xfc,
0x0E,
0x11,
39584 0x08,
0xa8,
0xfd,
0x17,
0xb4,
0x48,
0xa6,
0x85,
0x54,
0x19,
0x9c,
0x47,
0xd0,
0x8f,
0xfb,
0x10,
39585 0xd4,
0xb8,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
39586 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
39587 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x44,
0x03,
0x42,
0x00,
39589 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39590 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39591 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39592 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39596 var ZERO_BUFFER_32 = new Buffer([
39597 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
39598 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
39601 exports.privateKeyExport = function (privateKey, publicKey, compressed) {
39602 var result = new Buffer(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
39603 privateKey.copy(result, compressed ?
8 :
9)
39604 publicKey.copy(result, compressed ?
181 :
214)
39608 exports.privateKeyImport = function (privateKey) {
39609 var length = privateKey.length
39613 if (length < index +
1 || privateKey[index] !==
0x30) return
39616 // sequence length constructor
39617 if (length < index +
1 || !(privateKey[index] &
0x80)) return
39619 var lenb = privateKey[index] &
0x7f
39621 if (lenb <
1 || lenb
> 2) return
39622 if (length < index + lenb) return
39625 var len = privateKey[index + lenb -
1] | (lenb
> 1 ? privateKey[index + lenb -
2] <<
8 :
0)
39627 if (length < index + len) return
39629 // sequence element
0: version number (=
1)
39630 if (length < index +
3 ||
39631 privateKey[index] !==
0x02 ||
39632 privateKey[index +
1] !==
0x01 ||
39633 privateKey[index +
2] !==
0x01) {
39638 // sequence element
1: octet string, up to
32 bytes
39639 if (length < index +
2 ||
39640 privateKey[index] !==
0x04 ||
39641 privateKey[index +
1]
> 0x20 ||
39642 length < index +
2 + privateKey[index +
1]) {
39646 return privateKey.slice(index +
2, index +
2 + privateKey[index +
1])
39649 exports.signatureExport = function (sigObj) {
39650 var r = Buffer.concat([new Buffer([
0]), sigObj.r])
39651 for (var lenR =
33, posR =
0; lenR
> 1 && r[posR] ===
0x00 && !(r[posR +
1] &
0x80); --lenR, ++posR);
39653 var s = Buffer.concat([new Buffer([
0]), sigObj.s])
39654 for (var lenS =
33, posS =
0; lenS
> 1 && s[posS] ===
0x00 && !(s[posS +
1] &
0x80); --lenS, ++posS);
39656 return bip66.encode(r.slice(posR), s.slice(posS))
39659 exports.signatureImport = function (sig) {
39660 var r = new Buffer(ZERO_BUFFER_32)
39661 var s = new Buffer(ZERO_BUFFER_32)
39664 var sigObj = bip66.decode(sig)
39665 if (sigObj.r.length ===
33 && sigObj.r[
0] ===
0x00) sigObj.r = sigObj.r.slice(
1)
39666 if (sigObj.r.length
> 32) throw new Error('R length is too long')
39667 if (sigObj.s.length ===
33 && sigObj.s[
0] ===
0x00) sigObj.s = sigObj.s.slice(
1)
39668 if (sigObj.s.length
> 32) throw new Error('S length is too long')
39673 sigObj.r.copy(r,
32 - sigObj.r.length)
39674 sigObj.s.copy(s,
32 - sigObj.s.length)
39676 return { r: r, s: s }
39679 exports.signatureImportLax = function (sig) {
39680 var r = new Buffer(ZERO_BUFFER_32)
39681 var s = new Buffer(ZERO_BUFFER_32)
39683 var length = sig.length
39686 // sequence tag byte
39687 if (sig[index++] !==
0x30) return
39689 // sequence length byte
39690 var lenbyte = sig[index++]
39691 if (lenbyte &
0x80) {
39692 index += lenbyte -
0x80
39693 if (index
> length) return
39696 // sequence tag byte for r
39697 if (sig[index++] !==
0x02) return
39700 var rlen = sig[index++]
39702 lenbyte = rlen -
0x80
39703 if (index + lenbyte
> length) return
39704 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
39705 for (rlen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) rlen = (rlen <<
8) + sig[index]
39707 if (rlen
> length - index) return
39711 // sequence tag byte for s
39712 if (sig[index++] !==
0x02) return
39715 var slen = sig[index++]
39717 lenbyte = slen -
0x80
39718 if (index + lenbyte
> length) return
39719 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
39720 for (slen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) slen = (slen <<
8) + sig[index]
39722 if (slen
> length - index) return
39726 // ignore leading zeros in r
39727 for (; rlen
> 0 && sig[rindex] ===
0x00; rlen -=
1, rindex +=
1);
39729 if (rlen
> 32) return
39730 var rvalue = sig.slice(rindex, rindex + rlen)
39731 rvalue.copy(r,
32 - rvalue.length)
39733 // ignore leading zeros in s
39734 for (; slen
> 0 && sig[sindex] ===
0x00; slen -=
1, sindex +=
1);
39736 if (slen
> 32) return
39737 var svalue = sig.slice(sindex, sindex + slen)
39738 svalue.copy(s,
32 - svalue.length)
39740 return { r: r, s: s }
39743 }).call(this,require(
"buffer").Buffer)
39744 },{
"bip66":
32,
"buffer":
5}],
76:[function(require,module,exports){
39745 (function (Buffer){
39747 var createHash = require('create-hash')
39748 var BN = require('bn.js')
39749 var EC = require('elliptic').ec
39751 var messages = require('../messages.json')
39753 var ec = new EC('secp256k1')
39754 var ecparams = ec.curve
39756 function loadCompressedPublicKey (first, xBuffer) {
39757 var x = new BN(xBuffer)
39760 if (x.cmp(ecparams.p)
>=
0) return null
39761 x = x.toRed(ecparams.red)
39763 // compute corresponding Y
39764 var y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()
39765 if ((first ===
0x03) !== y.isOdd()) y = y.redNeg()
39767 return ec.keyPair({ pub: { x: x, y: y } })
39770 function loadUncompressedPublicKey (first, xBuffer, yBuffer) {
39771 var x = new BN(xBuffer)
39772 var y = new BN(yBuffer)
39775 if (x.cmp(ecparams.p)
>=
0 || y.cmp(ecparams.p)
>=
0) return null
39777 x = x.toRed(ecparams.red)
39778 y = y.toRed(ecparams.red)
39781 if ((first ===
0x06 || first ===
0x07) && y.isOdd() !== (first ===
0x07)) return null
39784 var x3 = x.redSqr().redIMul(x)
39785 if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null
39787 return ec.keyPair({ pub: { x: x, y: y } })
39790 function loadPublicKey (publicKey) {
39791 var first = publicKey[
0]
39795 if (publicKey.length !==
33) return null
39796 return loadCompressedPublicKey(first, publicKey.slice(
1,
33))
39800 if (publicKey.length !==
65) return null
39801 return loadUncompressedPublicKey(first, publicKey.slice(
1,
33), publicKey.slice(
33,
65))
39807 exports.privateKeyVerify = function (privateKey) {
39808 var bn = new BN(privateKey)
39809 return bn.cmp(ecparams.n) <
0 && !bn.isZero()
39812 exports.privateKeyExport = function (privateKey, compressed) {
39813 var d = new BN(privateKey)
39814 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PRIVATE_KEY_EXPORT_DER_FAIL)
39816 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
39819 exports.privateKeyTweakAdd = function (privateKey, tweak) {
39820 var bn = new BN(tweak)
39821 if (bn.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
39823 bn.iadd(new BN(privateKey))
39824 if (bn.cmp(ecparams.n)
>=
0) bn.isub(ecparams.n)
39825 if (bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
39827 return bn.toArrayLike(Buffer, 'be',
32)
39830 exports.privateKeyTweakMul = function (privateKey, tweak) {
39831 var bn = new BN(tweak)
39832 if (bn.cmp(ecparams.n)
>=
0 || bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_MUL_FAIL)
39834 bn.imul(new BN(privateKey))
39835 if (bn.cmp(ecparams.n)) bn = bn.umod(ecparams.n)
39837 return bn.toArrayLike(Buffer, 'be',
32)
39840 exports.publicKeyCreate = function (privateKey, compressed) {
39841 var d = new BN(privateKey)
39842 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PUBLIC_KEY_CREATE_FAIL)
39844 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
39847 exports.publicKeyConvert = function (publicKey, compressed) {
39848 var pair = loadPublicKey(publicKey)
39849 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39851 return new Buffer(pair.getPublic(compressed, true))
39854 exports.publicKeyVerify = function (publicKey) {
39855 return loadPublicKey(publicKey) !== null
39858 exports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {
39859 var pair = loadPublicKey(publicKey)
39860 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39862 tweak = new BN(tweak)
39863 if (tweak.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_ADD_FAIL)
39865 return new Buffer(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
39868 exports.publicKeyTweakMul = function (publicKey, tweak, compressed) {
39869 var pair = loadPublicKey(publicKey)
39870 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39872 tweak = new BN(tweak)
39873 if (tweak.cmp(ecparams.n)
>=
0 || tweak.isZero()) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_MUL_FAIL)
39875 return new Buffer(pair.pub.mul(tweak).encode(true, compressed))
39878 exports.publicKeyCombine = function (publicKeys, compressed) {
39879 var pairs = new Array(publicKeys.length)
39880 for (var i =
0; i < publicKeys.length; ++i) {
39881 pairs[i] = loadPublicKey(publicKeys[i])
39882 if (pairs[i] === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39885 var point = pairs[
0].pub
39886 for (var j =
1; j < pairs.length; ++j) point = point.add(pairs[j].pub)
39887 if (point.isInfinity()) throw new Error(messages.EC_PUBLIC_KEY_COMBINE_FAIL)
39889 return new Buffer(point.encode(true, compressed))
39892 exports.signatureNormalize = function (signature) {
39893 var r = new BN(signature.slice(
0,
32))
39894 var s = new BN(signature.slice(
32,
64))
39895 if (r.cmp(ecparams.n)
>=
0 || s.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
39897 var result = new Buffer(signature)
39898 if (s.cmp(ec.nh) ===
1) ecparams.n.sub(s).toArrayLike(Buffer, 'be',
32).copy(result,
32)
39903 exports.signatureExport = function (signature) {
39904 var r = signature.slice(
0,
32)
39905 var s = signature.slice(
32,
64)
39906 if (new BN(r).cmp(ecparams.n)
>=
0 || new BN(s).cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
39908 return { r: r, s: s }
39911 exports.signatureImport = function (sigObj) {
39912 var r = new BN(sigObj.r)
39913 if (r.cmp(ecparams.n)
>=
0) r = new BN(
0)
39915 var s = new BN(sigObj.s)
39916 if (s.cmp(ecparams.n)
>=
0) s = new BN(
0)
39918 return Buffer.concat([
39919 r.toArrayLike(Buffer, 'be',
32),
39920 s.toArrayLike(Buffer, 'be',
32)
39924 exports.sign = function (message, privateKey, noncefn, data) {
39925 if (typeof noncefn === 'function') {
39926 var getNonce = noncefn
39927 noncefn = function (counter) {
39928 var nonce = getNonce(message, privateKey, null, data, counter)
39929 if (!Buffer.isBuffer(nonce) || nonce.length !==
32) throw new Error(messages.ECDSA_SIGN_FAIL)
39931 return new BN(nonce)
39935 var d = new BN(privateKey)
39936 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.ECDSA_SIGN_FAIL)
39938 var result = ec.sign(message, privateKey, { canonical: true, k: noncefn, pers: data })
39940 signature: Buffer.concat([
39941 result.r.toArrayLike(Buffer, 'be',
32),
39942 result.s.toArrayLike(Buffer, 'be',
32)
39944 recovery: result.recoveryParam
39948 exports.verify = function (message, signature, publicKey) {
39949 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
39951 var sigr = new BN(sigObj.r)
39952 var sigs = new BN(sigObj.s)
39953 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
39954 if (sigs.cmp(ec.nh) ===
1 || sigr.isZero() || sigs.isZero()) return false
39956 var pair = loadPublicKey(publicKey)
39957 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39959 return ec.verify(message, sigObj, {x: pair.pub.x, y: pair.pub.y})
39962 exports.recover = function (message, signature, recovery, compressed) {
39963 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
39965 var sigr = new BN(sigObj.r)
39966 var sigs = new BN(sigObj.s)
39967 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
39970 if (sigr.isZero() || sigs.isZero()) throw new Error()
39972 var point = ec.recoverPubKey(message, sigObj, recovery)
39973 return new Buffer(point.encode(true, compressed))
39975 throw new Error(messages.ECDSA_RECOVER_FAIL)
39979 exports.ecdh = function (publicKey, privateKey) {
39980 var shared = exports.ecdhUnsafe(publicKey, privateKey, true)
39981 return createHash('sha256').update(shared).digest()
39984 exports.ecdhUnsafe = function (publicKey, privateKey, compressed) {
39985 var pair = loadPublicKey(publicKey)
39986 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
39988 var scalar = new BN(privateKey)
39989 if (scalar.cmp(ecparams.n)
>=
0 || scalar.isZero()) throw new Error(messages.ECDH_FAIL)
39991 return new Buffer(pair.pub.mul(scalar).encode(true, compressed))
39994 }).call(this,require("buffer").Buffer)
39995 },{"../messages.json":
78,"bn.js":
33,"buffer":
5,"create-hash":
36,"elliptic":
39}],
77:[function(require,module,exports){
39997 var assert = require('./assert')
39998 var der = require('./der')
39999 var messages = require('./messages.json')
40001 function initCompressedValue (value, defaultValue) {
40002 if (value === undefined) return defaultValue
40004 assert.isBoolean(value, messages.COMPRESSED_TYPE_INVALID)
40008 module.exports = function (secp256k1) {
40010 privateKeyVerify: function (privateKey) {
40011 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40012 return privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)
40015 privateKeyExport: function (privateKey, compressed) {
40016 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40017 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40019 compressed = initCompressedValue(compressed, true)
40020 var publicKey = secp256k1.privateKeyExport(privateKey, compressed)
40022 return der.privateKeyExport(privateKey, publicKey, compressed)
40025 privateKeyImport: function (privateKey) {
40026 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40028 privateKey = der.privateKeyImport(privateKey)
40029 if (privateKey && privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)) return privateKey
40031 throw new Error(messages.EC_PRIVATE_KEY_IMPORT_DER_FAIL)
40034 privateKeyTweakAdd: function (privateKey, tweak) {
40035 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40036 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40038 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40039 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40041 return secp256k1.privateKeyTweakAdd(privateKey, tweak)
40044 privateKeyTweakMul: function (privateKey, tweak) {
40045 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40046 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40048 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40049 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40051 return secp256k1.privateKeyTweakMul(privateKey, tweak)
40054 publicKeyCreate: function (privateKey, compressed) {
40055 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40056 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40058 compressed = initCompressedValue(compressed, true)
40060 return secp256k1.publicKeyCreate(privateKey, compressed)
40063 publicKeyConvert: function (publicKey, compressed) {
40064 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40065 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40067 compressed = initCompressedValue(compressed, true)
40069 return secp256k1.publicKeyConvert(publicKey, compressed)
40072 publicKeyVerify: function (publicKey) {
40073 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40074 return secp256k1.publicKeyVerify(publicKey)
40077 publicKeyTweakAdd: function (publicKey, tweak, compressed) {
40078 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40079 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40081 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40082 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40084 compressed = initCompressedValue(compressed, true)
40086 return secp256k1.publicKeyTweakAdd(publicKey, tweak, compressed)
40089 publicKeyTweakMul: function (publicKey, tweak, compressed) {
40090 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40091 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40093 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
40094 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
40096 compressed = initCompressedValue(compressed, true)
40098 return secp256k1.publicKeyTweakMul(publicKey, tweak, compressed)
40101 publicKeyCombine: function (publicKeys, compressed) {
40102 assert.isArray(publicKeys, messages.EC_PUBLIC_KEYS_TYPE_INVALID)
40103 assert.isLengthGTZero(publicKeys, messages.EC_PUBLIC_KEYS_LENGTH_INVALID)
40104 for (var i =
0; i < publicKeys.length; ++i) {
40105 assert.isBuffer(publicKeys[i], messages.EC_PUBLIC_KEY_TYPE_INVALID)
40106 assert.isBufferLength2(publicKeys[i],
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40109 compressed = initCompressedValue(compressed, true)
40111 return secp256k1.publicKeyCombine(publicKeys, compressed)
40114 signatureNormalize: function (signature) {
40115 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40116 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40118 return secp256k1.signatureNormalize(signature)
40121 signatureExport: function (signature) {
40122 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40123 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40125 var sigObj = secp256k1.signatureExport(signature)
40126 return der.signatureExport(sigObj)
40129 signatureImport: function (sig) {
40130 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40131 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40133 var sigObj = der.signatureImport(sig)
40134 if (sigObj) return secp256k1.signatureImport(sigObj)
40136 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
40139 signatureImportLax: function (sig) {
40140 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40141 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40143 var sigObj = der.signatureImportLax(sig)
40144 if (sigObj) return secp256k1.signatureImport(sigObj)
40146 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
40149 sign: function (message, privateKey, options) {
40150 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40151 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40153 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40154 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40158 if (options !== undefined) {
40159 assert.isObject(options, messages.OPTIONS_TYPE_INVALID)
40161 if (options.data !== undefined) {
40162 assert.isBuffer(options.data, messages.OPTIONS_DATA_TYPE_INVALID)
40163 assert.isBufferLength(options.data,
32, messages.OPTIONS_DATA_LENGTH_INVALID)
40164 data = options.data
40167 if (options.noncefn !== undefined) {
40168 assert.isFunction(options.noncefn, messages.OPTIONS_NONCEFN_TYPE_INVALID)
40169 noncefn = options.noncefn
40173 return secp256k1.sign(message, privateKey, noncefn, data)
40176 verify: function (message, signature, publicKey) {
40177 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40178 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40180 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40181 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40183 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40184 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40186 return secp256k1.verify(message, signature, publicKey)
40189 recover: function (message, signature, recovery, compressed) {
40190 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
40191 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
40193 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
40194 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
40196 assert.isNumber(recovery, messages.RECOVERY_ID_TYPE_INVALID)
40197 assert.isNumberInInterval(recovery, -
1,
4, messages.RECOVERY_ID_VALUE_INVALID)
40199 compressed = initCompressedValue(compressed, true)
40201 return secp256k1.recover(message, signature, recovery, compressed)
40204 ecdh: function (publicKey, privateKey) {
40205 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40206 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40208 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40209 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40211 return secp256k1.ecdh(publicKey, privateKey)
40214 ecdhUnsafe: function (publicKey, privateKey, compressed) {
40215 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
40216 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
40218 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
40219 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
40221 compressed = initCompressedValue(compressed, true)
40223 return secp256k1.ecdhUnsafe(publicKey, privateKey, compressed)
40228 },{"./assert":
74,"./der":
75,"./messages.json":
78}],
78:[function(require,module,exports){
40230 "COMPRESSED_TYPE_INVALID": "compressed should be a boolean",
40231 "EC_PRIVATE_KEY_TYPE_INVALID": "private key should be a Buffer",
40232 "EC_PRIVATE_KEY_LENGTH_INVALID": "private key length is invalid",
40233 "EC_PRIVATE_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting private key is invalid",
40234 "EC_PRIVATE_KEY_TWEAK_MUL_FAIL": "tweak out of range",
40235 "EC_PRIVATE_KEY_EXPORT_DER_FAIL": "couldn't export to DER format",
40236 "EC_PRIVATE_KEY_IMPORT_DER_FAIL": "couldn't import from DER format",
40237 "EC_PUBLIC_KEYS_TYPE_INVALID": "public keys should be an Array",
40238 "EC_PUBLIC_KEYS_LENGTH_INVALID": "public keys Array should have at least
1 element",
40239 "EC_PUBLIC_KEY_TYPE_INVALID": "public key should be a Buffer",
40240 "EC_PUBLIC_KEY_LENGTH_INVALID": "public key length is invalid",
40241 "EC_PUBLIC_KEY_PARSE_FAIL": "the public key could not be parsed or is invalid",
40242 "EC_PUBLIC_KEY_CREATE_FAIL": "private was invalid, try again",
40243 "EC_PUBLIC_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting public key is invalid",
40244 "EC_PUBLIC_KEY_TWEAK_MUL_FAIL": "tweak out of range",
40245 "EC_PUBLIC_KEY_COMBINE_FAIL": "the sum of the public keys is not valid",
40246 "ECDH_FAIL": "scalar was invalid (zero or overflow)",
40247 "ECDSA_SIGNATURE_TYPE_INVALID": "signature should be a Buffer",
40248 "ECDSA_SIGNATURE_LENGTH_INVALID": "signature length is invalid",
40249 "ECDSA_SIGNATURE_PARSE_FAIL": "couldn't parse signature",
40250 "ECDSA_SIGNATURE_PARSE_DER_FAIL": "couldn't parse DER signature",
40251 "ECDSA_SIGNATURE_SERIALIZE_DER_FAIL": "couldn't serialize signature to DER format",
40252 "ECDSA_SIGN_FAIL": "nonce generation function failed or private key is invalid",
40253 "ECDSA_RECOVER_FAIL": "couldn't recover public key from signature",
40254 "MSG32_TYPE_INVALID": "message should be a Buffer",
40255 "MSG32_LENGTH_INVALID": "message length is invalid",
40256 "OPTIONS_TYPE_INVALID": "options should be an Object",
40257 "OPTIONS_DATA_TYPE_INVALID": "options.data should be a Buffer",
40258 "OPTIONS_DATA_LENGTH_INVALID": "options.data length is invalid",
40259 "OPTIONS_NONCEFN_TYPE_INVALID": "options.noncefn should be a Function",
40260 "RECOVERY_ID_TYPE_INVALID": "recovery should be a Number",
40261 "RECOVERY_ID_VALUE_INVALID": "recovery should have value between -
1 and
4",
40262 "TWEAK_TYPE_INVALID": "tweak should be a Buffer",
40263 "TWEAK_LENGTH_INVALID": "tweak length is invalid"
40266 },{}],
79:[function(require,module,exports){
40267 (function (Buffer){
40268 // prototype class for hash functions
40269 function Hash (blockSize, finalSize) {
40270 this._block = new Buffer(blockSize)
40271 this._finalSize = finalSize
40272 this._blockSize = blockSize
40277 Hash.prototype.update = function (data, enc) {
40278 if (typeof data === 'string') {
40279 enc = enc || 'utf8'
40280 data = new Buffer(data, enc)
40283 var l = this._len += data.length
40284 var s = this._s ||
0
40286 var buffer = this._block
40289 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
40292 for (var i =
0; i < ch; i++) {
40293 buffer[(s % this._blockSize) + i] = data[i + f]
40299 if ((s % this._blockSize) ===
0) {
40300 this._update(buffer)
40308 Hash.prototype.digest = function (enc) {
40309 // Suppose the length of the message M, in bits, is l
40310 var l = this._len *
8
40312 // Append the bit
1 to the end of the message
40313 this._block[this._len % this._blockSize] =
0x80
40315 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
40316 this._block.fill(
0, this._len % this._blockSize +
1)
40318 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
40319 this._update(this._block)
40320 this._block.fill(
0)
40323 // to this append the block which is equal to the number l written in binary
40324 // TODO: handle case where l is
> Math.pow(
2,
29)
40325 this._block.writeInt32BE(l, this._blockSize -
4)
40327 var hash = this._update(this._block) || this._hash()
40329 return enc ? hash.toString(enc) : hash
40332 Hash.prototype._update = function () {
40333 throw new Error('_update must be implemented by subclass')
40336 module.exports = Hash
40338 }).call(this,require("buffer").Buffer)
40339 },{"buffer":
5}],
80:[function(require,module,exports){
40340 var exports = module.exports = function SHA (algorithm) {
40341 algorithm = algorithm.toLowerCase()
40343 var Algorithm = exports[algorithm]
40344 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
40346 return new Algorithm()
40349 exports.sha = require('./sha')
40350 exports.sha1 = require('./sha1')
40351 exports.sha224 = require('./sha224')
40352 exports.sha256 = require('./sha256')
40353 exports.sha384 = require('./sha384')
40354 exports.sha512 = require('./sha512')
40356 },{"./sha":
81,"./sha1":
82,"./sha224":
83,"./sha256":
84,"./sha384":
85,"./sha512":
86}],
81:[function(require,module,exports){
40357 (function (Buffer){
40359 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
40360 * in FIPS PUB
180-
1
40361 * This source code is derived from sha1.js of the same repository.
40362 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
40363 * operation was added.
40366 var inherits = require('inherits')
40367 var Hash = require('./hash')
40370 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
40373 var W = new Array(
80)
40379 Hash.call(this,
64,
56)
40382 inherits(Sha, Hash)
40384 Sha.prototype.init = function () {
40385 this._a =
0x67452301
40386 this._b =
0xefcdab89
40387 this._c =
0x98badcfe
40388 this._d =
0x10325476
40389 this._e =
0xc3d2e1f0
40394 function rotl5 (num) {
40395 return (num <<
5) | (num
>>> 27)
40398 function rotl30 (num) {
40399 return (num <<
30) | (num
>>> 2)
40402 function ft (s, b, c, d) {
40403 if (s ===
0) return (b & c) | ((~b) & d)
40404 if (s ===
2) return (b & c) | (b & d) | (c & d)
40408 Sha.prototype._update = function (M) {
40411 var a = this._a |
0
40412 var b = this._b |
0
40413 var c = this._c |
0
40414 var d = this._d |
0
40415 var e = this._e |
0
40417 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40418 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
40420 for (var j =
0; j <
80; ++j) {
40422 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
40431 this._a = (a + this._a) |
0
40432 this._b = (b + this._b) |
0
40433 this._c = (c + this._c) |
0
40434 this._d = (d + this._d) |
0
40435 this._e = (e + this._e) |
0
40438 Sha.prototype._hash = function () {
40439 var H = new Buffer(
20)
40441 H.writeInt32BE(this._a |
0,
0)
40442 H.writeInt32BE(this._b |
0,
4)
40443 H.writeInt32BE(this._c |
0,
8)
40444 H.writeInt32BE(this._d |
0,
12)
40445 H.writeInt32BE(this._e |
0,
16)
40450 module.exports = Sha
40452 }).call(this,require(
"buffer").Buffer)
40453 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
82:[function(require,module,exports){
40454 (function (Buffer){
40456 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
40457 * in FIPS PUB
180-
1
40458 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
40459 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40460 * Distributed under the BSD License
40461 * See http://pajhome.org.uk/crypt/md5 for details.
40464 var inherits = require('inherits')
40465 var Hash = require('./hash')
40468 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
40471 var W = new Array(
80)
40477 Hash.call(this,
64,
56)
40480 inherits(Sha1, Hash)
40482 Sha1.prototype.init = function () {
40483 this._a =
0x67452301
40484 this._b =
0xefcdab89
40485 this._c =
0x98badcfe
40486 this._d =
0x10325476
40487 this._e =
0xc3d2e1f0
40492 function rotl1 (num) {
40493 return (num <<
1) | (num
>>> 31)
40496 function rotl5 (num) {
40497 return (num <<
5) | (num
>>> 27)
40500 function rotl30 (num) {
40501 return (num <<
30) | (num
>>> 2)
40504 function ft (s, b, c, d) {
40505 if (s ===
0) return (b & c) | ((~b) & d)
40506 if (s ===
2) return (b & c) | (b & d) | (c & d)
40510 Sha1.prototype._update = function (M) {
40513 var a = this._a |
0
40514 var b = this._b |
0
40515 var c = this._c |
0
40516 var d = this._d |
0
40517 var e = this._e |
0
40519 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40520 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
40522 for (var j =
0; j <
80; ++j) {
40524 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
40533 this._a = (a + this._a) |
0
40534 this._b = (b + this._b) |
0
40535 this._c = (c + this._c) |
0
40536 this._d = (d + this._d) |
0
40537 this._e = (e + this._e) |
0
40540 Sha1.prototype._hash = function () {
40541 var H = new Buffer(
20)
40543 H.writeInt32BE(this._a |
0,
0)
40544 H.writeInt32BE(this._b |
0,
4)
40545 H.writeInt32BE(this._c |
0,
8)
40546 H.writeInt32BE(this._d |
0,
12)
40547 H.writeInt32BE(this._e |
0,
16)
40552 module.exports = Sha1
40554 }).call(this,require(
"buffer").Buffer)
40555 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
83:[function(require,module,exports){
40556 (function (Buffer){
40558 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
40560 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
40561 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40565 var inherits = require('inherits')
40566 var Sha256 = require('./sha256')
40567 var Hash = require('./hash')
40569 var W = new Array(
64)
40571 function Sha224 () {
40574 this._w = W // new Array(
64)
40576 Hash.call(this,
64,
56)
40579 inherits(Sha224, Sha256)
40581 Sha224.prototype.init = function () {
40582 this._a =
0xc1059ed8
40583 this._b =
0x367cd507
40584 this._c =
0x3070dd17
40585 this._d =
0xf70e5939
40586 this._e =
0xffc00b31
40587 this._f =
0x68581511
40588 this._g =
0x64f98fa7
40589 this._h =
0xbefa4fa4
40594 Sha224.prototype._hash = function () {
40595 var H = new Buffer(
28)
40597 H.writeInt32BE(this._a,
0)
40598 H.writeInt32BE(this._b,
4)
40599 H.writeInt32BE(this._c,
8)
40600 H.writeInt32BE(this._d,
12)
40601 H.writeInt32BE(this._e,
16)
40602 H.writeInt32BE(this._f,
20)
40603 H.writeInt32BE(this._g,
24)
40608 module.exports = Sha224
40610 }).call(this,require(
"buffer").Buffer)
40611 },{
"./hash":
79,
"./sha256":
84,
"buffer":
5,
"inherits":
63}],
84:[function(require,module,exports){
40612 (function (Buffer){
40614 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
40616 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
40617 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
40621 var inherits = require('inherits')
40622 var Hash = require('./hash')
40625 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
40626 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
40627 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
40628 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
40629 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
40630 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
40631 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
40632 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
40633 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
40634 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
40635 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
40636 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
40637 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
40638 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
40639 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
40640 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
40643 var W = new Array(
64)
40645 function Sha256 () {
40648 this._w = W // new Array(
64)
40650 Hash.call(this,
64,
56)
40653 inherits(Sha256, Hash)
40655 Sha256.prototype.init = function () {
40656 this._a =
0x6a09e667
40657 this._b =
0xbb67ae85
40658 this._c =
0x3c6ef372
40659 this._d =
0xa54ff53a
40660 this._e =
0x510e527f
40661 this._f =
0x9b05688c
40662 this._g =
0x1f83d9ab
40663 this._h =
0x5be0cd19
40668 function ch (x, y, z) {
40669 return z ^ (x & (y ^ z))
40672 function maj (x, y, z) {
40673 return (x & y) | (z & (x | y))
40676 function sigma0 (x) {
40677 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
40680 function sigma1 (x) {
40681 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
40684 function gamma0 (x) {
40685 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
40688 function gamma1 (x) {
40689 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
40692 Sha256.prototype._update = function (M) {
40695 var a = this._a |
0
40696 var b = this._b |
0
40697 var c = this._c |
0
40698 var d = this._d |
0
40699 var e = this._e |
0
40700 var f = this._f |
0
40701 var g = this._g |
0
40702 var h = this._h |
0
40704 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
40705 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
40707 for (var j =
0; j <
64; ++j) {
40708 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
40709 var T2 = (sigma0(a) + maj(a, b, c)) |
0
40721 this._a = (a + this._a) |
0
40722 this._b = (b + this._b) |
0
40723 this._c = (c + this._c) |
0
40724 this._d = (d + this._d) |
0
40725 this._e = (e + this._e) |
0
40726 this._f = (f + this._f) |
0
40727 this._g = (g + this._g) |
0
40728 this._h = (h + this._h) |
0
40731 Sha256.prototype._hash = function () {
40732 var H = new Buffer(
32)
40734 H.writeInt32BE(this._a,
0)
40735 H.writeInt32BE(this._b,
4)
40736 H.writeInt32BE(this._c,
8)
40737 H.writeInt32BE(this._d,
12)
40738 H.writeInt32BE(this._e,
16)
40739 H.writeInt32BE(this._f,
20)
40740 H.writeInt32BE(this._g,
24)
40741 H.writeInt32BE(this._h,
28)
40746 module.exports = Sha256
40748 }).call(this,require(
"buffer").Buffer)
40749 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
85:[function(require,module,exports){
40750 (function (Buffer){
40751 var inherits = require('inherits')
40752 var SHA512 = require('./sha512')
40753 var Hash = require('./hash')
40755 var W = new Array(
160)
40757 function Sha384 () {
40761 Hash.call(this,
128,
112)
40764 inherits(Sha384, SHA512)
40766 Sha384.prototype.init = function () {
40767 this._ah =
0xcbbb9d5d
40768 this._bh =
0x629a292a
40769 this._ch =
0x9159015a
40770 this._dh =
0x152fecd8
40771 this._eh =
0x67332667
40772 this._fh =
0x8eb44a87
40773 this._gh =
0xdb0c2e0d
40774 this._hh =
0x47b5481d
40776 this._al =
0xc1059ed8
40777 this._bl =
0x367cd507
40778 this._cl =
0x3070dd17
40779 this._dl =
0xf70e5939
40780 this._el =
0xffc00b31
40781 this._fl =
0x68581511
40782 this._gl =
0x64f98fa7
40783 this._hl =
0xbefa4fa4
40788 Sha384.prototype._hash = function () {
40789 var H = new Buffer(
48)
40791 function writeInt64BE (h, l, offset) {
40792 H.writeInt32BE(h, offset)
40793 H.writeInt32BE(l, offset +
4)
40796 writeInt64BE(this._ah, this._al,
0)
40797 writeInt64BE(this._bh, this._bl,
8)
40798 writeInt64BE(this._ch, this._cl,
16)
40799 writeInt64BE(this._dh, this._dl,
24)
40800 writeInt64BE(this._eh, this._el,
32)
40801 writeInt64BE(this._fh, this._fl,
40)
40806 module.exports = Sha384
40808 }).call(this,require(
"buffer").Buffer)
40809 },{
"./hash":
79,
"./sha512":
86,
"buffer":
5,
"inherits":
63}],
86:[function(require,module,exports){
40810 (function (Buffer){
40811 var inherits = require('inherits')
40812 var Hash = require('./hash')
40815 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
40816 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
40817 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
40818 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
40819 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
40820 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
40821 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
40822 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
40823 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
40824 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
40825 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
40826 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
40827 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
40828 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
40829 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
40830 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
40831 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
40832 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
40833 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
40834 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
40835 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
40836 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
40837 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
40838 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
40839 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
40840 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
40841 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
40842 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
40843 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
40844 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
40845 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
40846 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
40847 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
40848 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
40849 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
40850 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
40851 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
40852 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
40853 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
40854 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
40857 var W = new Array(
160)
40859 function Sha512 () {
40863 Hash.call(this,
128,
112)
40866 inherits(Sha512, Hash)
40868 Sha512.prototype.init = function () {
40869 this._ah =
0x6a09e667
40870 this._bh =
0xbb67ae85
40871 this._ch =
0x3c6ef372
40872 this._dh =
0xa54ff53a
40873 this._eh =
0x510e527f
40874 this._fh =
0x9b05688c
40875 this._gh =
0x1f83d9ab
40876 this._hh =
0x5be0cd19
40878 this._al =
0xf3bcc908
40879 this._bl =
0x84caa73b
40880 this._cl =
0xfe94f82b
40881 this._dl =
0x5f1d36f1
40882 this._el =
0xade682d1
40883 this._fl =
0x2b3e6c1f
40884 this._gl =
0xfb41bd6b
40885 this._hl =
0x137e2179
40890 function Ch (x, y, z) {
40891 return z ^ (x & (y ^ z))
40894 function maj (x, y, z) {
40895 return (x & y) | (z & (x | y))
40898 function sigma0 (x, xl) {
40899 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
40902 function sigma1 (x, xl) {
40903 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
40906 function Gamma0 (x, xl) {
40907 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
40910 function Gamma0l (x, xl) {
40911 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
40914 function Gamma1 (x, xl) {
40915 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
40918 function Gamma1l (x, xl) {
40919 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
40922 function getCarry (a, b) {
40923 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
40926 Sha512.prototype._update = function (M) {
40929 var ah = this._ah |
0
40930 var bh = this._bh |
0
40931 var ch = this._ch |
0
40932 var dh = this._dh |
0
40933 var eh = this._eh |
0
40934 var fh = this._fh |
0
40935 var gh = this._gh |
0
40936 var hh = this._hh |
0
40938 var al = this._al |
0
40939 var bl = this._bl |
0
40940 var cl = this._cl |
0
40941 var dl = this._dl |
0
40942 var el = this._el |
0
40943 var fl = this._fl |
0
40944 var gl = this._gl |
0
40945 var hl = this._hl |
0
40947 for (var i =
0; i <
32; i +=
2) {
40948 W[i] = M.readInt32BE(i *
4)
40949 W[i +
1] = M.readInt32BE(i *
4 +
4)
40951 for (; i <
160; i +=
2) {
40952 var xh = W[i -
15 *
2]
40953 var xl = W[i -
15 *
2 +
1]
40954 var gamma0 = Gamma0(xh, xl)
40955 var gamma0l = Gamma0l(xl, xh)
40958 xl = W[i -
2 *
2 +
1]
40959 var gamma1 = Gamma1(xh, xl)
40960 var gamma1l = Gamma1l(xl, xh)
40962 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
40963 var Wi7h = W[i -
7 *
2]
40964 var Wi7l = W[i -
7 *
2 +
1]
40966 var Wi16h = W[i -
16 *
2]
40967 var Wi16l = W[i -
16 *
2 +
1]
40969 var Wil = (gamma0l + Wi7l) |
0
40970 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
40971 Wil = (Wil + gamma1l) |
0
40972 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
40973 Wil = (Wil + Wi16l) |
0
40974 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
40980 for (var j =
0; j <
160; j +=
2) {
40984 var majh = maj(ah, bh, ch)
40985 var majl = maj(al, bl, cl)
40987 var sigma0h = sigma0(ah, al)
40988 var sigma0l = sigma0(al, ah)
40989 var sigma1h = sigma1(eh, el)
40990 var sigma1l = sigma1(el, eh)
40992 // t1 = h + sigma1 + ch + K[j] + W[j]
40996 var chh = Ch(eh, fh, gh)
40997 var chl = Ch(el, fl, gl)
40999 var t1l = (hl + sigma1l) |
0
41000 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
41001 t1l = (t1l + chl) |
0
41002 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
41003 t1l = (t1l + Kil) |
0
41004 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
41005 t1l = (t1l + Wil) |
0
41006 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
41008 // t2 = sigma0 + maj
41009 var t2l = (sigma0l + majl) |
0
41010 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
41018 el = (dl + t1l) |
0
41019 eh = (dh + t1h + getCarry(el, dl)) |
0
41026 al = (t1l + t2l) |
0
41027 ah = (t1h + t2h + getCarry(al, t1l)) |
0
41030 this._al = (this._al + al) |
0
41031 this._bl = (this._bl + bl) |
0
41032 this._cl = (this._cl + cl) |
0
41033 this._dl = (this._dl + dl) |
0
41034 this._el = (this._el + el) |
0
41035 this._fl = (this._fl + fl) |
0
41036 this._gl = (this._gl + gl) |
0
41037 this._hl = (this._hl + hl) |
0
41039 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
41040 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
41041 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
41042 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
41043 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
41044 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
41045 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
41046 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
41049 Sha512.prototype._hash = function () {
41050 var H = new Buffer(
64)
41052 function writeInt64BE (h, l, offset) {
41053 H.writeInt32BE(h, offset)
41054 H.writeInt32BE(l, offset +
4)
41057 writeInt64BE(this._ah, this._al,
0)
41058 writeInt64BE(this._bh, this._bl,
8)
41059 writeInt64BE(this._ch, this._cl,
16)
41060 writeInt64BE(this._dh, this._dl,
24)
41061 writeInt64BE(this._eh, this._el,
32)
41062 writeInt64BE(this._fh, this._fl,
40)
41063 writeInt64BE(this._gh, this._gl,
48)
41064 writeInt64BE(this._hh, this._hl,
56)
41069 module.exports = Sha512
41071 }).call(this,require(
"buffer").Buffer)
41072 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
87:[function(require,module,exports){
41073 var isHexPrefixed = require('is-hex-prefixed');
41076 * Removes '
0x' from a given `String` is present
41077 * @param {String} str the string value
41078 * @return {String|Optional} a string by pass if necessary
41080 module.exports = function stripHexPrefix(str) {
41081 if (typeof str !== 'string') {
41085 return isHexPrefixed(str) ? str.slice(
2) : str;
41088 },{
"is-hex-prefixed":
64}]},{},[
31])(
31)
41090 <script>function convertRippleAdrr(address) {
41091 return window.basex('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz').encode(
41092 window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(address)
41096 function convertRipplePriv(priv) {
41097 return window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(priv).toString("hex").slice(
2,
66)
41101 <script>// Select components from sjcl to suit the crypto operations bip39 requires.
41105 /** @fileOverview Javascript cryptography implementation.
41107 * Crush to remove comments, shorten variable names and
41108 * generally reduce transmission size.
41110 * @author Emily Stark
41111 * @author Mike Hamburg
41112 * @author Dan Boneh
41116 /*jslint indent:
2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */
41117 /*global document, window, escape, unescape, module, require, Uint32Array */
41119 /** @namespace The Stanford Javascript Crypto Library, top-level namespace. */
41121 /** @namespace Symmetric ciphers. */
41124 /** @namespace Hash functions. Right now only SHA256 is implemented. */
41127 /** @namespace Key exchange functions. Right now only SRP is implemented. */
41130 /** @namespace Block cipher modes of operation. */
41133 /** @namespace Miscellaneous. HMAC and PBKDF2. */
41137 * @namespace Bit array encoders and decoders.
41140 * The members of this namespace are functions which translate between
41141 * SJCL's bitArrays and other objects (usually strings). Because it
41142 * isn't always clear which direction is encoding and which is decoding,
41143 * the method names are "fromBits" and "toBits".
41147 /** @namespace Exceptions. */
41149 /** @constructor Ciphertext is corrupt. */
41150 corrupt: function(message) {
41151 this.toString = function() { return "CORRUPT: "+this.message; };
41152 this.message = message;
41155 /** @constructor Invalid parameter. */
41156 invalid: function(message) {
41157 this.toString = function() { return "INVALID: "+this.message; };
41158 this.message = message;
41161 /** @constructor Bug or missing feature in SJCL. @constructor */
41162 bug: function(message) {
41163 this.toString = function() { return "BUG: "+this.message; };
41164 this.message = message;
41167 /** @constructor Something isn't ready. */
41168 notReady: function(message) {
41169 this.toString = function() { return "NOT READY: "+this.message; };
41170 this.message = message;
41175 if(typeof module !== 'undefined' && module.exports){
41176 module.exports = sjcl;
41178 if (typeof define === "function") {
41179 define([], function () {
41187 /** @fileOverview Arrays of bits, encoded as arrays of Numbers.
41189 * @author Emily Stark
41190 * @author Mike Hamburg
41191 * @author Dan Boneh
41194 /** @namespace Arrays of bits, encoded as arrays of Numbers.
41198 * These objects are the currency accepted by SJCL's crypto functions.
41202 * Most of our crypto primitives operate on arrays of
4-byte words internally,
41203 * but many of them can take arguments that are not a multiple of
4 bytes.
41204 * This library encodes arrays of bits (whose size need not be a multiple of
8
41205 * bits) as arrays of
32-bit words. The bits are packed, big-endian, into an
41206 * array of words,
32 bits at a time. Since the words are double-precision
41207 * floating point numbers, they fit some extra data. We use this (in a private,
41208 * possibly-changing manner) to encode the number of bits actually present
41209 * in the last word of the array.
41213 * Because bitwise ops clear this out-of-band data, these arrays can be passed
41214 * to ciphers like AES which want arrays of words.
41219 * Array slices in units of bits.
41220 * @param {bitArray} a The array to slice.
41221 * @param {Number} bstart The offset to the start of the slice, in bits.
41222 * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined,
41223 * slice until the end of the array.
41224 * @return {bitArray} The requested slice.
41226 bitSlice: function (a, bstart, bend) {
41227 a = sjcl.bitArray._shiftRight(a.slice(bstart/
32),
32 - (bstart &
31)).slice(
1);
41228 return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart);
41232 * Extract a number packed into a bit array.
41233 * @param {bitArray} a The array to slice.
41234 * @param {Number} bstart The offset to the start of the slice, in bits.
41235 * @param {Number} length The length of the number to extract.
41236 * @return {Number} The requested slice.
41238 extract: function(a, bstart, blength) {
41239 // FIXME: this Math.floor is not necessary at all, but for some reason
41240 // seems to suppress a bug in the Chromium JIT.
41241 var x, sh = Math.floor((-bstart-blength) &
31);
41242 if ((bstart + blength -
1 ^ bstart) & -
32) {
41243 // it crosses a boundary
41244 x = (a[bstart/
32|
0] << (
32 - sh)) ^ (a[bstart/
32+
1|
0]
>>> sh);
41246 // within a single word
41247 x = a[bstart/
32|
0]
>>> sh;
41249 return x & ((
1<
<blength) -
1);
41253 * Concatenate two bit arrays.
41254 * @param {bitArray} a1 The first array.
41255 * @param {bitArray} a2 The second array.
41256 * @return {bitArray} The concatenation of a1 and a2.
41258 concat: function (a1, a2) {
41259 if (a1.length ===
0 || a2.length ===
0) {
41260 return a1.concat(a2);
41263 var last = a1[a1.length-
1], shift = sjcl.bitArray.getPartial(last);
41264 if (shift ===
32) {
41265 return a1.concat(a2);
41267 return sjcl.bitArray._shiftRight(a2, shift, last|
0, a1.slice(
0,a1.length-
1));
41272 * Find the length of an array of bits.
41273 * @param {bitArray} a The array.
41274 * @return {Number} The length of a, in bits.
41276 bitLength: function (a) {
41277 var l = a.length, x;
41278 if (l ===
0) { return
0; }
41280 return (l-
1) *
32 + sjcl.bitArray.getPartial(x);
41284 * Truncate an array.
41285 * @param {bitArray} a The array.
41286 * @param {Number} len The length to truncate to, in bits.
41287 * @return {bitArray} A new array, truncated to len bits.
41289 clamp: function (a, len) {
41290 if (a.length *
32 < len) { return a; }
41291 a = a.slice(
0, Math.ceil(len /
32));
41294 if (l
> 0 && len) {
41295 a[l-
1] = sjcl.bitArray.partial(len, a[l-
1] &
0x80000000 >> (len-
1),
1);
41301 * Make a partial word for a bit array.
41302 * @param {Number} len The number of bits in the word.
41303 * @param {Number} x The bits.
41304 * @param {Number} [
0] _end Pass
1 if x has already been shifted to the high side.
41305 * @return {Number} The partial word.
41307 partial: function (len, x, _end) {
41308 if (len ===
32) { return x; }
41309 return (_end ? x|
0 : x << (
32-len)) + len *
0x10000000000;
41313 * Get the number of bits used by a partial word.
41314 * @param {Number} x The partial word.
41315 * @return {Number} The number of bits used by the partial word.
41317 getPartial: function (x) {
41318 return Math.round(x/
0x10000000000) ||
32;
41322 * Compare two arrays for equality in a predictable amount of time.
41323 * @param {bitArray} a The first array.
41324 * @param {bitArray} b The second array.
41325 * @return {boolean} true if a == b; false otherwise.
41327 equal: function (a, b) {
41328 if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) {
41332 for (i=
0; i
<a.length; i++) {
41338 /** Shift an array right.
41339 * @param {bitArray} a The array to shift.
41340 * @param {Number} shift The number of bits to shift.
41341 * @param {Number} [carry=
0] A byte to carry in
41342 * @param {bitArray} [out=[]] An array to prepend to the output.
41345 _shiftRight: function (a, shift, carry, out) {
41346 var i, last2=
0, shift2;
41347 if (out === undefined) { out = []; }
41349 for (; shift
>=
32; shift -=
32) {
41354 return out.concat(a);
41357 for (i=
0; i
<a.length; i++) {
41358 out.push(carry | a[i]
>>>shift);
41359 carry = a[i] << (
32-shift);
41361 last2 = a.length ? a[a.length-
1] :
0;
41362 shift2 = sjcl.bitArray.getPartial(last2);
41363 out.push(sjcl.bitArray.partial(shift+shift2 &
31, (shift + shift2
> 32) ? carry : out.pop(),
1));
41367 /** xor a block of
4 words together.
41370 _xor4: function(x,y) {
41371 return [x[
0]^y[
0],x[
1]^y[
1],x[
2]^y[
2],x[
3]^y[
3]];
41374 /** byteswap a word array inplace.
41375 * (does not handle partial words)
41376 * @param {sjcl.bitArray} a word array
41377 * @return {sjcl.bitArray} byteswapped array
41379 byteswapM: function(a) {
41380 var i, v, m =
0xff00;
41381 for (i =
0; i < a.length; ++i) {
41383 a[i] = (v
>>> 24) | ((v
>>> 8) & m) | ((v & m) <<
8) | (v <<
24);
41390 //// codecString.js
41392 /** @fileOverview Bit array codec implementations.
41394 * @author Emily Stark
41395 * @author Mike Hamburg
41396 * @author Dan Boneh
41399 /** @namespace UTF-
8 strings */
41400 sjcl.codec.utf8String = {
41401 /** Convert from a bitArray to a UTF-
8 string. */
41402 fromBits: function (arr) {
41403 var out =
"", bl = sjcl.bitArray.bitLength(arr), i, tmp;
41404 for (i=
0; i
<bl/
8; i++) {
41408 out += String.fromCharCode(tmp
>>> 24);
41411 return decodeURIComponent(escape(out));
41414 /** Convert from a UTF-
8 string to a bitArray. */
41415 toBits: function (str) {
41416 str = unescape(encodeURIComponent(str));
41417 var out = [], i, tmp=
0;
41418 for (i=
0; i
<str.length; i++) {
41419 tmp = tmp <<
8 | str.charCodeAt(i);
41426 out.push(sjcl.bitArray.partial(
8*(i&
3), tmp));
41435 /** @fileOverview Bit array codec implementations.
41437 * @author Emily Stark
41438 * @author Mike Hamburg
41439 * @author Dan Boneh
41442 /** @namespace Hexadecimal */
41444 /** Convert from a bitArray to a hex string. */
41445 fromBits: function (arr) {
41447 for (i=
0; i
<arr.length; i++) {
41448 out += ((arr[i]|
0)+
0xF00000000000).toString(
16).substr(
4);
41450 return out.substr(
0, sjcl.bitArray.bitLength(arr)/
4);//.replace(/(.{
8})/g,
"$1 ");
41452 /** Convert from a hex string to a bitArray. */
41453 toBits: function (str) {
41454 var i, out=[], len;
41455 str = str.replace(/\s|
0x/g,
"");
41457 str = str +
"00000000";
41458 for (i=
0; i
<str.length; i+=
8) {
41459 out.push(parseInt(str.substr(i,
8),
16)^
0);
41461 return sjcl.bitArray.clamp(out, len*
4);
41468 /** @fileOverview Javascript SHA-
512 implementation.
41470 * This implementation was written for CryptoJS by Jeff Mott and adapted for
41471 * SJCL by Stefan Thomas.
41473 * CryptoJS (c)
2009–
2012 by Jeff Mott. All rights reserved.
41474 * Released with New BSD License
41476 * @author Emily Stark
41477 * @author Mike Hamburg
41478 * @author Dan Boneh
41479 * @author Jeff Mott
41480 * @author Stefan Thomas
41484 * Context for a SHA-
512 operation in progress.
41486 * @class Secure Hash Algorithm,
512 bits.
41488 sjcl.hash.sha512 = function (hash) {
41489 if (!this._key[
0]) { this._precompute(); }
41491 this._h = hash._h.slice(
0);
41492 this._buffer = hash._buffer.slice(
0);
41493 this._length = hash._length;
41500 * Hash a string or an array of words.
41502 * @param {bitArray|String} data the data to hash.
41503 * @return {bitArray} The hash value, an array of
16 big-endian words.
41505 sjcl.hash.sha512.hash = function (data) {
41506 return (new sjcl.hash.sha512()).update(data).finalize();
41509 sjcl.hash.sha512.prototype = {
41511 * The hash's block size, in bits.
41517 * Reset the hash state.
41520 reset:function () {
41521 this._h = this._init.slice(
0);
41528 * Input several words to the hash.
41529 * @param {bitArray|String} data the data to hash.
41532 update: function (data) {
41533 if (typeof data ===
"string") {
41534 data = sjcl.codec.utf8String.toBits(data);
41536 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
41538 nl = this._length = ol + sjcl.bitArray.bitLength(data);
41539 for (i =
1024+ol & -
1024; i <= nl; i+=
1024) {
41540 this._block(b.splice(
0,
32));
41546 * Complete hashing and output the hash value.
41547 * @return {bitArray} The hash value, an array of
16 big-endian words.
41549 finalize:function () {
41550 var i, b = this._buffer, h = this._h;
41552 // Round out and push the buffer
41553 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
41555 // Round out the buffer to a multiple of
32 words, less the
4 length words.
41556 for (i = b.length +
4; i &
31; i++) {
41560 // append the length
41563 b.push(Math.floor(this._length /
0x100000000));
41564 b.push(this._length |
0);
41567 this._block(b.splice(
0,
32));
41575 * The SHA-
512 initialization vector, to be precomputed.
41581 * Least significant
24 bits of SHA512 initialization values.
41583 * Javascript only has
53 bits of precision, so we compute the
40 most
41584 * significant bits and add the remaining
24 bits as constants.
41588 _initr: [
0xbcc908,
0xcaa73b,
0x94f82b,
0x1d36f1,
0xe682d1,
0x3e6c1f,
0x41bd6b,
0x7e2179 ],
41592 [
0x6a09e667,
0xf3bcc908,
0xbb67ae85,
0x84caa73b,
0x3c6ef372,
0xfe94f82b,
0xa54ff53a,
0x5f1d36f1,
41593 0x510e527f,
0xade682d1,
0x9b05688c,
0x2b3e6c1f,
0x1f83d9ab,
0xfb41bd6b,
0x5be0cd19,
0x137e2179],
41597 * The SHA-
512 hash key, to be precomputed.
41603 * Least significant
24 bits of SHA512 key values.
41607 [
0x28ae22,
0xef65cd,
0x4d3b2f,
0x89dbbc,
0x48b538,
0x05d019,
0x194f9b,
0x6d8118,
41608 0x030242,
0x706fbe,
0xe4b28c,
0xffb4e2,
0x7b896f,
0x1696b1,
0xc71235,
0x692694,
41609 0xf14ad2,
0x4f25e3,
0x8cd5b5,
0xac9c65,
0x2b0275,
0xa6e483,
0x41fbd4,
0x1153b5,
41610 0x66dfab,
0xb43210,
0xfb213f,
0xef0ee4,
0xa88fc2,
0x0aa725,
0x03826f,
0x0e6e70,
41611 0xd22ffc,
0x26c926,
0xc42aed,
0x95b3df,
0xaf63de,
0x77b2a8,
0xedaee6,
0x82353b,
41612 0xf10364,
0x423001,
0xf89791,
0x54be30,
0xef5218,
0x65a910,
0x71202a,
0xbbd1b8,
41613 0xd2d0c8,
0x41ab53,
0x8eeb99,
0x9b48a8,
0xc95a63,
0x418acb,
0x63e373,
0xb2b8a3,
41614 0xefb2fc,
0x172f60,
0xf0ab72,
0x6439ec,
0x631e28,
0x82bde9,
0xc67915,
0x72532b,
41615 0x26619c,
0xc0c207,
0xe0eb1e,
0x6ed178,
0x176fba,
0xc898a6,
0xf90dae,
0x1c471b,
41616 0x047d84,
0xc72493,
0xc9bebc,
0x100d4c,
0x3e42b6,
0x657e2a,
0xd6faec,
0x475817],
41620 [
0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
41621 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
41622 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
41623 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
41624 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
41625 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
41626 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
41627 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
41628 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
41629 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
41630 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
41631 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
41632 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
41633 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
41634 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
41635 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
41636 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
41637 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
41638 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
41639 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817],
41643 * Function to precompute _init and _key.
41646 _precompute: function () {
41647 // XXX: This code is for precomputing the SHA256 constants, change for
41648 // SHA512 and re-enable.
41649 var i =
0, prime =
2, factor;
41651 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
41652 function frac2(x) { return (x-Math.floor(x)) *
0x10000000000 &
0xff; }
41654 outer: for (; i
<80; prime++) {
41655 for (factor=
2; factor*factor <= prime; factor++) {
41656 if (prime % factor ===
0) {
41663 this._init[i*
2] = frac(Math.pow(prime,
1/
2));
41664 this._init[i*
2+
1] = (frac2(Math.pow(prime,
1/
2)) <<
24) | this._initr[i];
41666 this._key[i*
2] = frac(Math.pow(prime,
1/
3));
41667 this._key[i*
2+
1] = (frac2(Math.pow(prime,
1/
3)) <<
24) | this._keyr[i];
41673 * Perform one cycle of SHA-
512.
41674 * @param {bitArray} words one block of words.
41677 _block:function (words) {
41679 w = words.slice(
0),
41682 h0h = h[
0], h0l = h[
1], h1h = h[
2], h1l = h[
3],
41683 h2h = h[
4], h2l = h[
5], h3h = h[
6], h3l = h[
7],
41684 h4h = h[
8], h4l = h[
9], h5h = h[
10], h5l = h[
11],
41685 h6h = h[
12], h6l = h[
13], h7h = h[
14], h7l = h[
15];
41687 // Working variables
41688 var ah = h0h, al = h0l, bh = h1h, bl = h1l,
41689 ch = h2h, cl = h2l, dh = h3h, dl = h3l,
41690 eh = h4h, el = h4l, fh = h5h, fl = h5l,
41691 gh = h6h, gl = h6l, hh = h7h, hl = h7l;
41693 for (i=
0; i
<80; i++) {
41694 // load up the input word for this round
41697 wrl = w[i *
2 +
1];
41700 var gamma0xh = w[(i-
15) *
2];
41701 var gamma0xl = w[(i-
15) *
2 +
1];
41703 ((gamma0xl <<
31) | (gamma0xh
>>> 1)) ^
41704 ((gamma0xl <<
24) | (gamma0xh
>>> 8)) ^
41707 ((gamma0xh <<
31) | (gamma0xl
>>> 1)) ^
41708 ((gamma0xh <<
24) | (gamma0xl
>>> 8)) ^
41709 ((gamma0xh <<
25) | (gamma0xl
>>> 7));
41712 var gamma1xh = w[(i-
2) *
2];
41713 var gamma1xl = w[(i-
2) *
2 +
1];
41715 ((gamma1xl <<
13) | (gamma1xh
>>> 19)) ^
41716 ((gamma1xh <<
3) | (gamma1xl
>>> 29)) ^
41719 ((gamma1xh <<
13) | (gamma1xl
>>> 19)) ^
41720 ((gamma1xl <<
3) | (gamma1xh
>>> 29)) ^
41721 ((gamma1xh <<
26) | (gamma1xl
>>> 6));
41724 var wr7h = w[(i-
7) *
2];
41725 var wr7l = w[(i-
7) *
2 +
1];
41727 var wr16h = w[(i-
16) *
2];
41728 var wr16l = w[(i-
16) *
2 +
1];
41730 // W(round) = gamma0 + W(round -
7) + gamma1 + W(round -
16)
41731 wrl = gamma0l + wr7l;
41732 wrh = gamma0h + wr7h + ((wrl
>>> 0) < (gamma0l
>>> 0) ?
1 :
0);
41734 wrh += gamma1h + ((wrl
>>> 0) < (gamma1l
>>> 0) ?
1 :
0);
41736 wrh += wr16h + ((wrl
>>> 0) < (wr16l
>>> 0) ?
1 :
0);
41740 w[i*
2 +
1] = wrl |=
0;
41743 var chh = (eh & fh) ^ (~eh & gh);
41744 var chl = (el & fl) ^ (~el & gl);
41747 var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
41748 var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
41751 var sigma0h = ((al <<
4) | (ah
>>> 28)) ^ ((ah <<
30) | (al
>>> 2)) ^ ((ah <<
25) | (al
>>> 7));
41752 var sigma0l = ((ah <<
4) | (al
>>> 28)) ^ ((al <<
30) | (ah
>>> 2)) ^ ((al <<
25) | (ah
>>> 7));
41755 var sigma1h = ((el <<
18) | (eh
>>> 14)) ^ ((el <<
14) | (eh
>>> 18)) ^ ((eh <<
23) | (el
>>> 9));
41756 var sigma1l = ((eh <<
18) | (el
>>> 14)) ^ ((eh <<
14) | (el
>>> 18)) ^ ((el <<
23) | (eh
>>> 9));
41760 var krl = k[i*
2+
1];
41762 // t1 = h + sigma1 + ch + K(round) + W(round)
41763 var t1l = hl + sigma1l;
41764 var t1h = hh + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0);
41766 t1h += chh + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0);
41768 t1h += krh + ((t1l
>>> 0) < (krl
>>> 0) ?
1 :
0);
41769 t1l = t1l + wrl|
0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=
1054972
41770 t1h += wrh + ((t1l
>>> 0) < (wrl
>>> 0) ?
1 :
0);
41772 // t2 = sigma0 + maj
41773 var t2l = sigma0l + majl;
41774 var t2h = sigma0h + majh + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0);
41776 // Update working variables
41783 el = (dl + t1l) |
0;
41784 eh = (dh + t1h + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
41791 al = (t1l + t2l) |
0;
41792 ah = (t1h + t2h + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0;
41795 // Intermediate hash
41796 h0l = h[
1] = (h0l + al) |
0;
41797 h[
0] = (h0h + ah + ((h0l
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0;
41798 h1l = h[
3] = (h1l + bl) |
0;
41799 h[
2] = (h1h + bh + ((h1l
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0;
41800 h2l = h[
5] = (h2l + cl) |
0;
41801 h[
4] = (h2h + ch + ((h2l
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0;
41802 h3l = h[
7] = (h3l + dl) |
0;
41803 h[
6] = (h3h + dh + ((h3l
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
41804 h4l = h[
9] = (h4l + el) |
0;
41805 h[
8] = (h4h + eh + ((h4l
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0;
41806 h5l = h[
11] = (h5l + fl) |
0;
41807 h[
10] = (h5h + fh + ((h5l
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0;
41808 h6l = h[
13] = (h6l + gl) |
0;
41809 h[
12] = (h6h + gh + ((h6l
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0;
41810 h7l = h[
15] = (h7l + hl) |
0;
41811 h[
14] = (h7h + hh + ((h7l
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0;
41818 /** @fileOverview HMAC implementation.
41820 * @author Emily Stark
41821 * @author Mike Hamburg
41822 * @author Dan Boneh
41825 /** HMAC with the specified hash function.
41827 * @param {bitArray} key the key for HMAC.
41828 * @param {Object} [hash=sjcl.hash.sha256] The hash function to use.
41830 sjcl.misc.hmac = function (key, Hash) {
41831 this._hash = Hash = Hash || sjcl.hash.sha256;
41832 var exKey = [[],[]], i,
41833 bs = Hash.prototype.blockSize /
32;
41834 this._baseHash = [new Hash(), new Hash()];
41836 if (key.length
> bs) {
41837 key = Hash.hash(key);
41840 for (i=
0; i
<bs; i++) {
41841 exKey[
0][i] = key[i]^
0x36363636;
41842 exKey[
1][i] = key[i]^
0x5C5C5C5C;
41845 this._baseHash[
0].update(exKey[
0]);
41846 this._baseHash[
1].update(exKey[
1]);
41847 this._resultHash = new Hash(this._baseHash[
0]);
41850 /** HMAC with the specified hash function. Also called encrypt since it's a prf.
41851 * @param {bitArray|String} data The data to mac.
41853 sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (data) {
41854 if (!this._updated) {
41856 return this.digest(data);
41858 throw new sjcl.exception.invalid(
"encrypt on already updated hmac called!");
41862 sjcl.misc.hmac.prototype.reset = function () {
41863 this._resultHash = new this._hash(this._baseHash[
0]);
41864 this._updated = false;
41867 sjcl.misc.hmac.prototype.update = function (data) {
41868 this._updated = true;
41869 this._resultHash.update(data);
41872 sjcl.misc.hmac.prototype.digest = function () {
41873 var w = this._resultHash.finalize(), result = new (this._hash)(this._baseHash[
1]).update(w).finalize();
41884 /** @fileOverview Password-based key-derivation function, version
2.0.
41886 * @author Emily Stark
41887 * @author Mike Hamburg
41888 * @author Dan Boneh
41891 /** Password-Based Key-Derivation Function, version
2.0.
41893 * Generate keys from passwords using PBKDF2-HMAC-SHA256.
41895 * This is the method specified by RSA's PKCS #
5 standard.
41897 * @param {bitArray|String} password The password.
41898 * @param {bitArray|String} salt The salt. Should have lots of entropy.
41899 * @param {Number} [count=
1000] The number of iterations. Higher numbers make the function slower but more secure.
41900 * @param {Number} [length] The length of the derived key. Defaults to the
41901 output size of the hash function.
41902 * @param {Object} [Prff=sjcl.misc.hmac] The pseudorandom function family.
41903 * @return {bitArray} the derived key.
41905 sjcl.misc.pbkdf2 = function (password, salt, count, length, Prff) {
41906 count = count ||
1000;
41908 if (length <
0 || count <
0) {
41909 throw sjcl.exception.invalid(
"invalid params to pbkdf2");
41912 if (typeof password ===
"string") {
41913 password = sjcl.codec.utf8String.toBits(password);
41916 if (typeof salt ===
"string") {
41917 salt = sjcl.codec.utf8String.toBits(salt);
41920 Prff = Prff || sjcl.misc.hmac;
41922 var prf = new Prff(password),
41923 u, ui, i, j, k, out = [], b = sjcl.bitArray;
41925 for (k =
1;
32 * out.length < (length ||
1); k++) {
41926 u = ui = prf.encrypt(b.concat(salt,[k]));
41928 for (i=
1; i
<count; i++) {
41929 ui = prf.encrypt(ui);
41930 for (j=
0; j
<ui.length; j++) {
41935 out = out.concat(u);
41938 if (length) { out = b.clamp(out, length); }
41946 /** @fileOverview Javascript SHA-
256 implementation.
41948 * An older version of this implementation is available in the public
41949 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
41950 * Stanford University
2008-
2010 and BSD-licensed for liability
41953 * Special thanks to Aldo Cortesi for pointing out several bugs in
41956 * @author Emily Stark
41957 * @author Mike Hamburg
41958 * @author Dan Boneh
41962 * Context for a SHA-
256 operation in progress.
41964 * @class Secure Hash Algorithm,
256 bits.
41966 sjcl.hash.sha256 = function (hash) {
41967 if (!this._key[
0]) { this._precompute(); }
41969 this._h = hash._h.slice(
0);
41970 this._buffer = hash._buffer.slice(
0);
41971 this._length = hash._length;
41978 * Hash a string or an array of words.
41980 * @param {bitArray|String} data the data to hash.
41981 * @return {bitArray} The hash value, an array of
16 big-endian words.
41983 sjcl.hash.sha256.hash = function (data) {
41984 return (new sjcl.hash.sha256()).update(data).finalize();
41987 sjcl.hash.sha256.prototype = {
41989 * The hash's block size, in bits.
41995 * Reset the hash state.
41998 reset:function () {
41999 this._h = this._init.slice(
0);
42006 * Input several words to the hash.
42007 * @param {bitArray|String} data the data to hash.
42010 update: function (data) {
42011 if (typeof data ===
"string") {
42012 data = sjcl.codec.utf8String.toBits(data);
42014 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
42016 nl = this._length = ol + sjcl.bitArray.bitLength(data);
42017 for (i =
512+ol & -
512; i <= nl; i+=
512) {
42018 this._block(b.splice(
0,
16));
42024 * Complete hashing and output the hash value.
42025 * @return {bitArray} The hash value, an array of
8 big-endian words.
42027 finalize:function () {
42028 var i, b = this._buffer, h = this._h;
42030 // Round out and push the buffer
42031 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
42033 // Round out the buffer to a multiple of
16 words, less the
2 length words.
42034 for (i = b.length +
2; i &
15; i++) {
42038 // append the length
42039 b.push(Math.floor(this._length /
0x100000000));
42040 b.push(this._length |
0);
42043 this._block(b.splice(
0,
16));
42051 * The SHA-
256 initialization vector, to be precomputed.
42056 _init:[
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19],
42060 * The SHA-
256 hash key, to be precomputed.
42066 [
0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
42067 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
42068 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
42069 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
42070 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
42071 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
42072 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
42073 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2],
42078 * Function to precompute _init and _key.
42081 _precompute: function () {
42082 var i =
0, prime =
2, factor;
42084 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
42086 outer: for (; i
<64; prime++) {
42087 for (factor=
2; factor*factor <= prime; factor++) {
42088 if (prime % factor ===
0) {
42095 this._init[i] = frac(Math.pow(prime,
1/
2));
42097 this._key[i] = frac(Math.pow(prime,
1/
3));
42103 * Perform one cycle of SHA-
256.
42104 * @param {bitArray} words one block of words.
42107 _block:function (words) {
42109 w = words.slice(
0),
42112 h0 = h[
0], h1 = h[
1], h2 = h[
2], h3 = h[
3],
42113 h4 = h[
4], h5 = h[
5], h6 = h[
6], h7 = h[
7];
42115 /* Rationale for placement of |
0 :
42116 * If a value can overflow is original
32 bits by a factor of more than a few
42117 * million (
2^
23 ish), there is a possibility that it might overflow the
42118 *
53-bit mantissa and lose precision.
42120 * To avoid this, we clamp back to
32 bits by |'ing with
0 on any value that
42121 * propagates around the loop, and on the hash state h[]. I don't believe
42122 * that the clamps on h4 and on h0 are strictly necessary, but it's close
42123 * (for h4 anyway), and better safe than sorry.
42125 * The clamps on h[] are necessary for the output to be correct even in the
42126 * common case and for short inputs.
42128 for (i=
0; i
<64; i++) {
42129 // load up the input word for this round
42133 a = w[(i+
1 ) &
15];
42134 b = w[(i+
14) &
15];
42135 tmp = w[i&
15] = ((a
>>>7 ^ a
>>>18 ^ a
>>>3 ^ a<
<25 ^ a<
<14) +
42136 (b
>>>17 ^ b
>>>19 ^ b
>>>10 ^ b<
<15 ^ b<
<13) +
42137 w[i&
15] + w[(i+
9) &
15]) |
0;
42140 tmp = (tmp + h7 + (h4
>>>6 ^ h4
>>>11 ^ h4
>>>25 ^ h4<
<26 ^ h4<
<21 ^ h4<
<7) + (h6 ^ h4&(h5^h6)) + k[i]); // |
0;
42143 h7 = h6; h6 = h5; h5 = h4;
42145 h3 = h2; h2 = h1; h1 = h0;
42147 h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1
>>>2 ^ h1
>>>13 ^ h1
>>>22 ^ h1<
<30 ^ h1<
<19 ^ h1<
<10)) |
0;
42150 h[
0] = h[
0]+h0 |
0;
42151 h[
1] = h[
1]+h1 |
0;
42152 h[
2] = h[
2]+h2 |
0;
42153 h[
3] = h[
3]+h3 |
0;
42154 h[
4] = h[
4]+h4 |
0;
42155 h[
5] = h[
5]+h5 |
0;
42156 h[
6] = h[
6]+h6 |
0;
42157 h[
7] = h[
7]+h7 |
0;
42161 <script>// An extremely basic translation library
42165 // Set some html to be translated. Do this using the 'data-translate' attribute:
42167 //
<div data-translate
>Test
</div>
42168 //
<div data-translate-html
><em>keep em tag
</em></div>
42169 //
<input data-translate-placeholder
placeholder=
"Example placeholder">
42170 //
<span data-translate-title
title=
"Example title"></span>
42172 // Obtain all the phrases to be translated via js debug console:
42174 // Translate.phrasesAsJson();
42176 // Use that template to translate the phrases into another language.
42177 // Leave the key the same. Change the value to the new language.
42179 // Create a js file to load the new phrases. In this example for Spanish,
42180 // es.js will contain the following code:
42182 // Translate.loadForeignPhrases("es", {
42183 // "Test": "Test in Spanish",
42184 // "
<em>keep em tag
</em>": "<em>keep em tag in Spanish
</em>",
42185 // "Example placeholder
": "Example placeholder in Spanish
"
42186 // "Example title
": "Example title in Spanish
"
42189 // In your UI put a listener for clicking on the Spanish button:
42191 // mySpanishButton.addEventListener("click
", function() {
42192 // Translate.setLanguage("es
");
42194 // myEnglishButton.addEventListener("click
", function() {
42195 // Translate.setLanguage("en
");
42198 Translate = new (function() {
42200 var defaultLanguage = "en
";
42202 var allPhrases = {};
42203 allPhrases[defaultLanguage] = {};
42208 selector: "[data-translate]
",
42209 getKey: function() {
42210 return this.textContent.trim().replace(/\s+/g, " ");
42212 setPhrase: function(p) {
42213 this.textContent = p;
42218 selector: "[data-translate-html]
",
42219 getKey: function() {
42220 return this.innerHTML.trim().replace(/\s+/g, " ");
42222 setPhrase: function(p) {
42223 this.innerHTML = p;
42227 var placeholder = {
42228 selector: "[data-translate-placeholder]
",
42229 getKey: function() {
42230 return this.getAttribute("placeholder
").trim().replace(/\s+/g, " ");
42232 setPhrase: function(p) {
42233 this.setAttribute("placeholder
", p);
42238 selector: "[data-translate-title]
",
42239 getKey: function() {
42240 return this.getAttribute("title
").trim().replace(/\s+/g, " ");
42242 setPhrase: function(p) {
42243 this.setAttribute("title
", p);
42247 // Get elements to be translated
42248 var allEls = getEls(text)
42249 .concat(getEls(html))
42250 .concat(getEls(placeholder))
42251 .concat(getEls(title));
42253 // Provides access to phrases from a non-default language.
42254 // See phrases_en.js for example usage.
42255 this.loadForeignPhrases = function(language, phrases) {
42256 allPhrases[language] = phrases;
42259 // Displays a different language, eg "en
" or "fr
"
42260 this.setLanguage = function(language) {
42261 for (var i=0; i<allEls.length; i++) {
42262 var el = allEls[i];
42264 if (!(language in allPhrases)) {
42265 console.log(language + " not in allPhrases
");
42268 if (!(key in allPhrases[language])) {
42269 console.log(language + " does not contain phrase:
" + key);
42272 var phrase = allPhrases[language][key];
42273 el.setPhrase(phrase);
42277 // Converts the phrases to a key-pair json file.
42278 // This is a good way to export phrases for use in translation tools.
42279 this.phrasesAsJson = function(language) {
42281 for (var i=0; i<allEls.length; i++) {
42282 var el = allEls[i];
42288 for (var i=0; i<keys.length; i++) {
42290 var translated = "";
42291 if (language in allPhrases && key in allPhrases[language]) {
42292 translated = allPhrases[language][key];
42294 output[key] = translated;
42296 return JSON.stringify(output, null, 2);
42299 function getEls(nodeType) {
42300 var nodes = document.querySelectorAll(nodeType.selector);
42302 for (var i=0; i<nodes.length; i++) {
42303 var node = nodes[i];
42304 node.getKey = nodeType.getKey;
42305 node.setPhrase = nodeType.setPhrase;
42306 node.key = node.getKey();
42307 allPhrases[defaultLanguage][node.key] = node.key;
42315 <script>Translate.loadForeignPhrases("en",
42317 "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses": "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses",
42318 "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses": "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses",
42319 "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export": "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export",
42320 "
<code>m/
44'/
0'/
1'
</code> for the next account. Continue incrementing for more accounts (most use a single account).": "
<code>m/
44'/
0'/
1'
</code> for the next account. Continue incrementing for more accounts (most use a single account).",
42321 "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards": "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards",
42322 "Account": "Account",
42323 "Address": "Address",
42324 "Alternatively, download the file from the repository": "Alternatively, download the file from the repository",
42325 "BIP32 Derivation Path": "BIP32 Derivation Path",
42326 "BIP32 Extended Key": "BIP32 Extended Key",
42327 "BIP32 Extended Key (addresses only)": "BIP32 Extended Key (addresses only)",
42328 "BIP32 Root Key": "BIP32 Root Key",
42329 "BIP39 Mnemonic": "BIP39 Mnemonic",
42330 "BIP39 Passphrase (optional)": "BIP39 Passphrase (optional)",
42331 "BIP39 Seed": "BIP39 Seed",
42332 "Base
10": "Base
10",
42333 "Base
6": "Base
6",
42334 "Be careful - it can be easy to make mistakes if you don't know what you're doing.": "Be careful - it can be easy to make mistakes if you don't know what you're doing.",
42335 "Binary": "Binary",
42336 "Bitcoin Core": "Bitcoin Core",
42337 "Bits Per Event": "Bits Per Event",
42338 "Block Explorers": "Block Explorers",
42339 "Can be used with": "Can be used with",
42343 "Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address, keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't random enough for the needs of this tool.": "Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address, keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't random enough for the needs of this tool.",
42344 "Double-click that file to open it in a browser on any offline computer.": "Double-click that file to open it in a browser on any offline computer.",
42345 "Entropy": "Entropy",
42346 "Entropy Type": "Entropy Type",
42347 "Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.": "Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.",
42348 "Entropy values must be sourced from a
<a href=\
"https://en.wikipedia.org/wiki/Random_number_generation\" target=\
"_blank\">strong source of randomness
</a>.": "Entropy values must be sourced from a
<a href=\
"https://en.wikipedia.org/wiki/Random_number_generation\" target=\
"_blank\">strong source of randomness
</a>.",
42349 "Event Count": "Event Count",
42350 "External / Internal": "External / Internal",
42351 "Filtered Entropy": "Filtered Entropy",
42352 "For more info see the
<a href=\
"http://www.mycelium.com/\" target=\
"_blank\">Mycelium Wallet homepage
</a>": "For more info see the
<a href=\
"http://www.mycelium.com/\" target=\
"_blank\">Mycelium Wallet homepage
</a>",
42353 "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\" target=\
"_blank\">BIP39 spec
</a>.": "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\" target=\
"_blank\">BIP39 spec
</a>.",
42354 "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">BIP44 spec
</a>.": "For more info see the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">BIP44 spec
</a>.",
42355 "For more info see the
<a href=\
"https://github.com/bitcoin/bitcoin/pull/8035\" target=\
"_blank\">Bitcoin Core BIP32 implementation
</a>": "For more info see the
<a href=\
"https://github.com/bitcoin/bitcoin/pull/8035\" target=\
"_blank\">Bitcoin Core BIP32 implementation
</a>",
42356 "For more info see the BIP32 spec
": "For more info see the BIP32 spec
",
42357 "From entropy length (
3 words per
32 bits)
": "From entropy length (
3 words per
32 bits)
",
42358 "Generate a random mnemonic, or enter your own below
": "Generate a random mnemonic, or enter your own below
",
42359 "Get the source code from the repository
": "Get the source code from the repository
",
42361 "Hierarchical Deterministic Wallets
": "Hierarchical Deterministic Wallets
",
42362 "If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.
": "If cryptographic randomness isn't available in your browser, this page will show a warning and the generate button will not work.
",
42363 "In that case you might choose to use your own source of entropy.
": "In that case you might choose to use your own source of entropy.
",
42364 "In your browser, select file save-as, and save this page as a file.
": "In your browser, select file save-as, and save this page as a file.
",
42365 "Libraries
": "Libraries
",
42366 "Mnemonic Language
": "Mnemonic Language
",
42367 "Mnemonic Length
": "Mnemonic Length
",
42368 "Mnemonic code for generating deterministic keys
": "Mnemonic code for generating deterministic keys
",
42369 "More info
": "More info
",
42370 "Multi-Account Hierarchy for Deterministic Wallets
": "Multi-Account Hierarchy for Deterministic Wallets
",
42371 "Mycelium Wallet
": "Mycelium Wallet
",
42372 "Note these addreses are derived from the BIP32 Extended Key
": "Note these addreses are derived from the BIP32 Extended Key
",
42373 "Offline Usage
": "Offline Usage
",
42374 "Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.": "Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.",
42376 "Private Key": "Private Key",
42377 "Private Keys": "Private Keys",
42378 "Public Key": "Public Key",
42379 "Purpose": "Purpose",
42380 "Raw Binary": "Raw Binary",
42381 "Read more": "Read more",
42382 "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\" target=\
"_blank\">official BIP32 spec
</a>": "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki\" target=\
"_blank\">official BIP32 spec
</a>",
42383 "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">official BIP39 spec
</a>": "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki\">official BIP39 spec
</a>",
42384 "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">official BIP44 spec
</a>": "Read more at the
<a href=\
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki\" target=\
"_blank\">official BIP44 spec
</a>",
42385 "See the demo at
<a href=\
"http://bip32.org/\" target=\
"_blank\">bip32.org
</a>": "See the demo at
<a href=\
"http://bip32.org/\" target=\
"_blank\">bip32.org
</a>",
42387 "Show more rows
": "Show more rows
",
42388 "Strength
": "Strength
",
42389 "Supply my own source of entropy
": "Supply my own source of entropy
",
42390 "The built in random generator can generally be trusted more than your own intuition about randomness.
": "The built in random generator can generally be trusted more than your own intuition about randomness.
",
42391 "The random mnemonic generator on this page uses a
<a href=\
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues\" target=\
"_blank\">cryptographically secure random number generator
</a>.": "The random mnemonic generator on this page uses a
<a href=\
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues\" target=\
"_blank\">cryptographically secure random number generator
</a>.",
42392 "This means flipping a fair coin, rolling a fair dice, noise measurements etc.": "This means flipping a fair coin, rolling a fair dice, noise measurements etc.",
42393 "This project is
100% open-source code": "This project is
100% open-source code",
42394 "Toggle": "Toggle",
42395 "Total Bits": "Total Bits",
42396 "Use hardened addresses": "Use hardened addresses",
42397 "Use path
<code>m/
0'/
0'
</code> with hardened addresses.": "Use path
<code>m/
0'/
0'
</code> with hardened addresses.",
42398 "Use path
<code>m/
44'/
0'/
0'
</code>.": "Use path
<code>m/
44'/
0'/
0'
</code>.",
42399 "Use private keys at
<a href=\
"https://web.archive.org/web/20150707020924/https://brainwallet.org/\" target=\
"_blank\">brainwallet.org
</a>.": "Use private keys at
<a href=\
"https://web.archive.org/web/20150707020924/https://brainwallet.org/\" target=\
"_blank\">brainwallet.org
</a>.",
42400 "Valid entropy values include:": "Valid entropy values include:",
42401 "Warning": "Warning",
42402 "Word Count": "Word Count",
42403 "You are not a good source of entropy.": "You are not a good source of entropy.",
42404 "You can enter an existing BIP39 mnemonic, or generate a new random one. Typing your own twelve words will probably not work how you expect, since the words require a particular structure (the last word is a checksum).": "You can enter an existing BIP39 mnemonic, or generate a new random one. Typing your own twelve words will probably not work how you expect, since the words require a particular structure (the last word is a checksum).",
42405 "You can use this tool without having to be online.": "You can use this tool without having to be online.",
42410 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42411 WORDLISTS["english"] = [
42412 "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
42413 "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
42414 "action","actor","actress","actual","adapt","add","addict","address","adjust","admit",
42415 "adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent",
42416 "agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert",
42417 "alien","all","alley","allow","almost","alone","alpha","already","also","alter",
42418 "always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger",
42419 "angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique",
42420 "anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic",
42421 "area","arena","argue","arm","armed","armor","army","around","arrange","arrest",
42422 "arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset",
42423 "assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction",
42424 "audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake",
42425 "aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge",
42426 "bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain",
42427 "barrel","base","basic","basket","battle","beach","bean","beauty","because","become",
42428 "beef","before","begin","behave","behind","believe","below","belt","bench","benefit",
42429 "best","betray","better","between","beyond","bicycle","bid","bike","bind","biology",
42430 "bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless",
42431 "blind","blood","blossom","blouse","blue","blur","blush","board","boat","body",
42432 "boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss",
42433 "bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread",
42434 "breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze",
42435 "broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb",
42436 "bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy",
42437 "butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call",
42438 "calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas",
42439 "canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry",
42440 "cart","case","cash","casino","castle","casual","cat","catalog","catch","category",
42441 "cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century",
42442 "cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase",
42443 "chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child",
42444 "chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle",
42445 "citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk",
42446 "clever","click","client","cliff","climb","clinic","clip","clock","clog","close",
42447 "cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut",
42448 "code","coffee","coil","coin","collect","color","column","combine","come","comfort",
42449 "comic","common","company","concert","conduct","confirm","congress","connect","consider","control",
42450 "convince","cook","cool","copper","copy","coral","core","corn","correct","cost",
42451 "cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle",
42452 "craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek",
42453 "crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial",
42454 "cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup",
42455 "cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad",
42456 "damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal",
42457 "debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense",
42458 "define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny",
42459 "depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk",
42460 "despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond",
42461 "diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur",
42462 "direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance",
42463 "divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain",
42464 "donate","donkey","donor","door","dose","double","dove","draft","dragon","drama",
42465 "drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop",
42466 "drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf",
42467 "dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo",
42468 "ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow",
42469 "elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody",
42470 "embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless",
42471 "endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough",
42472 "enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip",
42473 "era","erase","erode","erosion","error","erupt","escape","essay","essence","estate",
42474 "eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange",
42475 "excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit",
42476 "exotic","expand","expect","expire","explain","expose","express","extend","extra","eye",
42477 "eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame",
42478 "family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father",
42479 "fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female",
42480 "fence","festival","fetch","fever","few","fiber","fiction","field","figure","file",
42481 "film","filter","final","find","fine","finger","finish","fire","firm","first",
42482 "fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor",
42483 "flee","flight","flip","float","flock","floor","flower","fluid","flush","fly",
42484 "foam","focus","fog","foil","fold","follow","food","foot","force","forest",
42485 "forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile",
42486 "frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen",
42487 "fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy",
42488 "gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp",
42489 "gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture",
42490 "ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance",
42491 "glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue",
42492 "goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown",
42493 "grab","grace","grain","grant","grape","grass","gravity","great","green","grid",
42494 "grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt",
42495 "guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy",
42496 "harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health",
42497 "heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden",
42498 "high","hill","hint","hip","hire","history","hobby","hockey","hold","hole",
42499 "holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital",
42500 "host","hotel","hour","hover","hub","huge","human","humble","humor","hundred",
42501 "hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea",
42502 "identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune",
42503 "impact","impose","improve","impulse","inch","include","income","increase","index","indicate",
42504 "indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury",
42505 "inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install",
42506 "intact","interest","into","invest","invite","involve","iron","island","isolate","issue",
42507 "item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel",
42508 "job","join","joke","journey","joy","judge","juice","jump","jungle","junior",
42509 "junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney",
42510 "kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife",
42511 "knock","know","lab","label","labor","ladder","lady","lake","lamp","language",
42512 "laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit",
42513 "layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal",
42514 "legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level",
42515 "liar","liberty","library","license","life","lift","light","like","limb","limit",
42516 "link","lion","liquid","list","little","live","lizard","load","loan","lobster",
42517 "local","lock","logic","lonely","long","loop","lottery","loud","lounge","love",
42518 "loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad",
42519 "magic","magnet","maid","mail","main","major","make","mammal","man","manage",
42520 "mandate","mango","mansion","manual","maple","marble","march","margin","marine","market",
42521 "marriage","mask","mass","master","match","material","math","matrix","matter","maximum",
42522 "maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt",
42523 "member","memory","mention","menu","mercy","merge","merit","merry","mesh","message",
42524 "metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor",
42525 "minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile",
42526 "model","modify","mom","moment","monitor","monkey","monster","month","moon","moral",
42527 "more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie",
42528 "much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual",
42529 "myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature",
42530 "near","neck","need","negative","neglect","neither","nephew","nerve","nest","net",
42531 "network","neutral","never","news","next","nice","night","noble","noise","nominee",
42532 "noodle","normal","north","nose","notable","note","nothing","notice","novel","now",
42533 "nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe",
42534 "obtain","obvious","occur","ocean","october","odor","off","offer","office","often",
42535 "oil","okay","old","olive","olympic","omit","once","one","onion","online",
42536 "only","open","opera","opinion","oppose","option","orange","orbit","orchard","order",
42537 "ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output",
42538 "outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact",
42539 "paddle","page","pair","palace","palm","panda","panel","panic","panther","paper",
42540 "parade","parent","park","parrot","party","pass","patch","path","patient","patrol",
42541 "pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen",
42542 "penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo",
42543 "phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot",
42544 "pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate",
42545 "play","please","pledge","pluck","plug","plunge","poem","poet","point","polar",
42546 "pole","police","pond","pony","pool","popular","portion","position","possible","post",
42547 "potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare",
42548 "present","pretty","prevent","price","pride","primary","print","priority","prison","private",
42549 "prize","problem","process","produce","profit","program","project","promote","proof","property",
42550 "prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin",
42551 "punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle",
42552 "pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit",
42553 "raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp",
42554 "ranch","random","range","rapid","rare","rate","rather","raven","raw","razor",
42555 "ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle",
42556 "reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release",
42557 "relief","rely","remain","remember","remind","remove","render","renew","rent","reopen",
42558 "repair","repeat","replace","report","require","rescue","resemble","resist","resource","response",
42559 "result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib",
42560 "ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot",
42561 "ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket",
42562 "romance","roof","rookie","room","rose","rotate","rough","round","route","royal",
42563 "rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness",
42564 "safe","sail","salad","salmon","salon","salt","salute","same","sample","sand",
42565 "satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter",
42566 "scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script",
42567 "scrub","sea","search","season","seat","second","secret","section","security","seed",
42568 "seek","segment","select","sell","seminar","senior","sense","sentence","series","service",
42569 "session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell",
42570 "sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop",
42571 "short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side",
42572 "siege","sight","sign","silent","silk","silly","silver","similar","simple","since",
42573 "sing","siren","sister","situate","six","size","skate","sketch","ski","skill",
42574 "skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight",
42575 "slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth",
42576 "snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda",
42577 "soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry",
42578 "sort","soul","sound","soup","source","south","space","spare","spatial","spawn",
42579 "speak","special","speed","spell","spend","sphere","spice","spider","spike","spin",
42580 "spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring",
42581 "spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp",
42582 "stand","start","state","stay","steak","steel","stem","step","stereo","stick",
42583 "still","sting","stock","stomach","stone","stool","story","stove","strategy","street",
42584 "strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway",
42585 "success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny",
42586 "sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey",
42587 "suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim",
42588 "swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag",
42589 "tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi",
42590 "teach","team","tell","ten","tenant","tennis","tent","term","test","text",
42591 "thank","that","theme","then","theory","there","they","thing","this","thought",
42592 "three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber",
42593 "time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler",
42594 "toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool",
42595 "tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist",
42596 "toward","tower","town","toy","track","trade","traffic","tragic","train","transfer",
42597 "trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick",
42598 "trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust",
42599 "truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle",
42600 "twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella",
42601 "unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform",
42602 "unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade",
42603 "uphold","upon","upper","upset","urban","urge","usage","use","used","useful",
42604 "useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van",
42605 "vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue",
42606 "verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory",
42607 "video","view","village","vintage","violin","virtual","virus","visa","visit","visual",
42608 "vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage",
42609 "wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash",
42610 "wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather",
42611 "web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat",
42612 "wheel","when","where","whip","whisper","wide","width","wife","wild","will",
42613 "win","window","wine","wing","wink","winner","winter","wire","wisdom","wise",
42614 "wish","witness","wolf","woman","wonder","wood","wool","word","work","world",
42615 "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year",
42616 "yellow","you","young","youth","zebra","zero","zone","zoo"]
42618 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42619 WORDLISTS["japanese"] = [
42620 "あいこくしん", "あいさつ", "あいだ", "あおぞら", "あかちゃん", "あきる", "あけがた", "あける", "あこがれる", "あさい",
42621 "あさひ", "あしあと", "あじわう", "あずかる", "あずき", "あそぶ", "あたえる", "あたためる", "あたりまえ", "あたる",
42622 "あつい", "あつかう", "あっしゅく", "あつまり", "あつめる", "あてな", "あてはまる", "あひる", "あぶら", "あぶる",
42623 "あふれる", "あまい", "あまど", "あまやかす", "あまり", "あみもの", "あめりか", "あやまる", "あゆむ", "あらいぐま",
42624 "あらし", "あらすじ", "あらためる", "あらゆる", "あらわす", "ありがとう", "あわせる", "あわてる", "あんい", "あんがい",
42625 "あんこ", "あんぜん", "あんてい", "あんない", "あんまり", "いいだす", "いおん", "いがい", "いがく", "いきおい",
42626 "いきなり", "いきもの", "いきる", "いくじ", "いくぶん", "いけばな", "いけん", "いこう", "いこく", "いこつ",
42627 "いさましい", "いさん", "いしき", "いじゅう", "いじょう", "いじわる", "いずみ", "いずれ", "いせい", "いせえび",
42628 "いせかい", "いせき", "いぜん", "いそうろう", "いそがしい", "いだい", "いだく", "いたずら", "いたみ", "いたりあ",
42629 "いちおう", "いちじ", "いちど", "いちば", "いちぶ", "いちりゅう", "いつか", "いっしゅん", "いっせい", "いっそう",
42630 "いったん", "いっち", "いってい", "いっぽう", "いてざ", "いてん", "いどう", "いとこ", "いない", "いなか",
42631 "いねむり", "いのち", "いのる", "いはつ", "いばる", "いはん", "いびき", "いひん", "いふく", "いへん",
42632 "いほう", "いみん", "いもうと", "いもたれ", "いもり", "いやがる", "いやす", "いよかん", "いよく", "いらい",
42633 "いらすと", "いりぐち", "いりょう", "いれい", "いれもの", "いれる", "いろえんぴつ", "いわい", "いわう", "いわかん",
42634 "いわば", "いわゆる", "いんげんまめ", "いんさつ", "いんしょう", "いんよう", "うえき", "うえる", "うおざ", "うがい",
42635 "うかぶ", "うかべる", "うきわ", "うくらいな", "うくれれ", "うけたまわる", "うけつけ", "うけとる", "うけもつ", "うける",
42636 "うごかす", "うごく", "うこん", "うさぎ", "うしなう", "うしろがみ", "うすい", "うすぎ", "うすぐらい", "うすめる",
42637 "うせつ", "うちあわせ", "うちがわ", "うちき", "うちゅう", "うっかり", "うつくしい", "うったえる", "うつる", "うどん",
42638 "うなぎ", "うなじ", "うなずく", "うなる", "うねる", "うのう", "うぶげ", "うぶごえ", "うまれる", "うめる",
42639 "うもう", "うやまう", "うよく", "うらがえす", "うらぐち", "うらない", "うりあげ", "うりきれ", "うるさい", "うれしい",
42640 "うれゆき", "うれる", "うろこ", "うわき", "うわさ", "うんこう", "うんちん", "うんてん", "うんどう", "えいえん",
42641 "えいが", "えいきょう", "えいご", "えいせい", "えいぶん", "えいよう", "えいわ", "えおり", "えがお", "えがく",
42642 "えきたい", "えくせる", "えしゃく", "えすて", "えつらん", "えのぐ", "えほうまき", "えほん", "えまき", "えもじ",
42643 "えもの", "えらい", "えらぶ", "えりあ", "えんえん", "えんかい", "えんぎ", "えんげき", "えんしゅう", "えんぜつ",
42644 "えんそく", "えんちょう", "えんとつ", "おいかける", "おいこす", "おいしい", "おいつく", "おうえん", "おうさま", "おうじ",
42645 "おうせつ", "おうたい", "おうふく", "おうべい", "おうよう", "おえる", "おおい", "おおう", "おおどおり", "おおや",
42646 "おおよそ", "おかえり", "おかず", "おがむ", "おかわり", "おぎなう", "おきる", "おくさま", "おくじょう", "おくりがな",
42647 "おくる", "おくれる", "おこす", "おこなう", "おこる", "おさえる", "おさない", "おさめる", "おしいれ", "おしえる",
42648 "おじぎ", "おじさん", "おしゃれ", "おそらく", "おそわる", "おたがい", "おたく", "おだやか", "おちつく", "おっと",
42649 "おつり", "おでかけ", "おとしもの", "おとなしい", "おどり", "おどろかす", "おばさん", "おまいり", "おめでとう", "おもいで",
42650 "おもう", "おもたい", "おもちゃ", "おやつ", "おやゆび", "およぼす", "おらんだ", "おろす", "おんがく", "おんけい",
42651 "おんしゃ", "おんせん", "おんだん", "おんちゅう", "おんどけい", "かあつ", "かいが", "がいき", "がいけん", "がいこう",
42652 "かいさつ", "かいしゃ", "かいすいよく", "かいぜん", "かいぞうど", "かいつう", "かいてん", "かいとう", "かいふく", "がいへき",
42653 "かいほう", "かいよう", "がいらい", "かいわ", "かえる", "かおり", "かかえる", "かがく", "かがし", "かがみ",
42654 "かくご", "かくとく", "かざる", "がぞう", "かたい", "かたち", "がちょう", "がっきゅう", "がっこう", "がっさん",
42655 "がっしょう", "かなざわし", "かのう", "がはく", "かぶか", "かほう", "かほご", "かまう", "かまぼこ", "かめれおん",
42656 "かゆい", "かようび", "からい", "かるい", "かろう", "かわく", "かわら", "がんか", "かんけい", "かんこう",
42657 "かんしゃ", "かんそう", "かんたん", "かんち", "がんばる", "きあい", "きあつ", "きいろ", "ぎいん", "きうい",
42658 "きうん", "きえる", "きおう", "きおく", "きおち", "きおん", "きかい", "きかく", "きかんしゃ", "ききて",
42659 "きくばり", "きくらげ", "きけんせい", "きこう", "きこえる", "きこく", "きさい", "きさく", "きさま", "きさらぎ",
42660 "ぎじかがく", "ぎしき", "ぎじたいけん", "ぎじにってい", "ぎじゅつしゃ", "きすう", "きせい", "きせき", "きせつ", "きそう",
42661 "きぞく", "きぞん", "きたえる", "きちょう", "きつえん", "ぎっちり", "きつつき", "きつね", "きてい", "きどう",
42662 "きどく", "きない", "きなが", "きなこ", "きぬごし", "きねん", "きのう", "きのした", "きはく", "きびしい",
42663 "きひん", "きふく", "きぶん", "きぼう", "きほん", "きまる", "きみつ", "きむずかしい", "きめる", "きもだめし",
42664 "きもち", "きもの", "きゃく", "きやく", "ぎゅうにく", "きよう", "きょうりゅう", "きらい", "きらく", "きりん",
42665 "きれい", "きれつ", "きろく", "ぎろん", "きわめる", "ぎんいろ", "きんかくじ", "きんじょ", "きんようび", "ぐあい",
42666 "くいず", "くうかん", "くうき", "くうぐん", "くうこう", "ぐうせい", "くうそう", "ぐうたら", "くうふく", "くうぼ",
42667 "くかん", "くきょう", "くげん", "ぐこう", "くさい", "くさき", "くさばな", "くさる", "くしゃみ", "くしょう",
42668 "くすのき", "くすりゆび", "くせげ", "くせん", "ぐたいてき", "くださる", "くたびれる", "くちこみ", "くちさき", "くつした",
42669 "ぐっすり", "くつろぐ", "くとうてん", "くどく", "くなん", "くねくね", "くのう", "くふう", "くみあわせ", "くみたてる",
42670 "くめる", "くやくしょ", "くらす", "くらべる", "くるま", "くれる", "くろう", "くわしい", "ぐんかん", "ぐんしょく",
42671 "ぐんたい", "ぐんて", "けあな", "けいかく", "けいけん", "けいこ", "けいさつ", "げいじゅつ", "けいたい", "げいのうじん",
42672 "けいれき", "けいろ", "けおとす", "けおりもの", "げきか", "げきげん", "げきだん", "げきちん", "げきとつ", "げきは",
42673 "げきやく", "げこう", "げこくじょう", "げざい", "けさき", "げざん", "けしき", "けしごむ", "けしょう", "げすと",
42674 "けたば", "けちゃっぷ", "けちらす", "けつあつ", "けつい", "けつえき", "けっこん", "けつじょ", "けっせき", "けってい",
42675 "けつまつ", "げつようび", "げつれい", "けつろん", "げどく", "けとばす", "けとる", "けなげ", "けなす", "けなみ",
42676 "けぬき", "げねつ", "けねん", "けはい", "げひん", "けぶかい", "げぼく", "けまり", "けみかる", "けむし",
42677 "けむり", "けもの", "けらい", "けろけろ", "けわしい", "けんい", "けんえつ", "けんお", "けんか", "げんき",
42678 "けんげん", "けんこう", "けんさく", "けんしゅう", "けんすう", "げんそう", "けんちく", "けんてい", "けんとう", "けんない",
42679 "けんにん", "げんぶつ", "けんま", "けんみん", "けんめい", "けんらん", "けんり", "こあくま", "こいぬ", "こいびと",
42680 "ごうい", "こうえん", "こうおん", "こうかん", "ごうきゅう", "ごうけい", "こうこう", "こうさい", "こうじ", "こうすい",
42681 "ごうせい", "こうそく", "こうたい", "こうちゃ", "こうつう", "こうてい", "こうどう", "こうない", "こうはい", "ごうほう",
42682 "ごうまん", "こうもく", "こうりつ", "こえる", "こおり", "ごかい", "ごがつ", "ごかん", "こくご", "こくさい",
42683 "こくとう", "こくない", "こくはく", "こぐま", "こけい", "こける", "ここのか", "こころ", "こさめ", "こしつ",
42684 "こすう", "こせい", "こせき", "こぜん", "こそだて", "こたい", "こたえる", "こたつ", "こちょう", "こっか",
42685 "こつこつ", "こつばん", "こつぶ", "こてい", "こてん", "ことがら", "ことし", "ことば", "ことり", "こなごな",
42686 "こねこね", "このまま", "このみ", "このよ", "ごはん", "こひつじ", "こふう", "こふん", "こぼれる", "ごまあぶら",
42687 "こまかい", "ごますり", "こまつな", "こまる", "こむぎこ", "こもじ", "こもち", "こもの", "こもん", "こやく",
42688 "こやま", "こゆう", "こゆび", "こよい", "こよう", "こりる", "これくしょん", "ころっけ", "こわもて", "こわれる",
42689 "こんいん", "こんかい", "こんき", "こんしゅう", "こんすい", "こんだて", "こんとん", "こんなん", "こんびに", "こんぽん",
42690 "こんまけ", "こんや", "こんれい", "こんわく", "ざいえき", "さいかい", "さいきん", "ざいげん", "ざいこ", "さいしょ",
42691 "さいせい", "ざいたく", "ざいちゅう", "さいてき", "ざいりょう", "さうな", "さかいし", "さがす", "さかな", "さかみち",
42692 "さがる", "さぎょう", "さくし", "さくひん", "さくら", "さこく", "さこつ", "さずかる", "ざせき", "さたん",
42693 "さつえい", "ざつおん", "ざっか", "ざつがく", "さっきょく", "ざっし", "さつじん", "ざっそう", "さつたば", "さつまいも",
42694 "さてい", "さといも", "さとう", "さとおや", "さとし", "さとる", "さのう", "さばく", "さびしい", "さべつ",
42695 "さほう", "さほど", "さます", "さみしい", "さみだれ", "さむけ", "さめる", "さやえんどう", "さゆう", "さよう",
42696 "さよく", "さらだ", "ざるそば", "さわやか", "さわる", "さんいん", "さんか", "さんきゃく", "さんこう", "さんさい",
42697 "ざんしょ", "さんすう", "さんせい", "さんそ", "さんち", "さんま", "さんみ", "さんらん", "しあい", "しあげ",
42698 "しあさって", "しあわせ", "しいく", "しいん", "しうち", "しえい", "しおけ", "しかい", "しかく", "じかん",
42699 "しごと", "しすう", "じだい", "したうけ", "したぎ", "したて", "したみ", "しちょう", "しちりん", "しっかり",
42700 "しつじ", "しつもん", "してい", "してき", "してつ", "じてん", "じどう", "しなぎれ", "しなもの", "しなん",
42701 "しねま", "しねん", "しのぐ", "しのぶ", "しはい", "しばかり", "しはつ", "しはらい", "しはん", "しひょう",
42702 "しふく", "じぶん", "しへい", "しほう", "しほん", "しまう", "しまる", "しみん", "しむける", "じむしょ",
42703 "しめい", "しめる", "しもん", "しゃいん", "しゃうん", "しゃおん", "じゃがいも", "しやくしょ", "しゃくほう", "しゃけん",
42704 "しゃこ", "しゃざい", "しゃしん", "しゃせん", "しゃそう", "しゃたい", "しゃちょう", "しゃっきん", "じゃま", "しゃりん",
42705 "しゃれい", "じゆう", "じゅうしょ", "しゅくはく", "じゅしん", "しゅっせき", "しゅみ", "しゅらば", "じゅんばん", "しょうかい",
42706 "しょくたく", "しょっけん", "しょどう", "しょもつ", "しらせる", "しらべる", "しんか", "しんこう", "じんじゃ", "しんせいじ",
42707 "しんちく", "しんりん", "すあげ", "すあし", "すあな", "ずあん", "すいえい", "すいか", "すいとう", "ずいぶん",
42708 "すいようび", "すうがく", "すうじつ", "すうせん", "すおどり", "すきま", "すくう", "すくない", "すける", "すごい",
42709 "すこし", "ずさん", "すずしい", "すすむ", "すすめる", "すっかり", "ずっしり", "ずっと", "すてき", "すてる",
42710 "すねる", "すのこ", "すはだ", "すばらしい", "ずひょう", "ずぶぬれ", "すぶり", "すふれ", "すべて", "すべる",
42711 "ずほう", "すぼん", "すまい", "すめし", "すもう", "すやき", "すらすら", "するめ", "すれちがう", "すろっと",
42712 "すわる", "すんぜん", "すんぽう", "せあぶら", "せいかつ", "せいげん", "せいじ", "せいよう", "せおう", "せかいかん",
42713 "せきにん", "せきむ", "せきゆ", "せきらんうん", "せけん", "せこう", "せすじ", "せたい", "せたけ", "せっかく",
42714 "せっきゃく", "ぜっく", "せっけん", "せっこつ", "せっさたくま", "せつぞく", "せつだん", "せつでん", "せっぱん", "せつび",
42715 "せつぶん", "せつめい", "せつりつ", "せなか", "せのび", "せはば", "せびろ", "せぼね", "せまい", "せまる",
42716 "せめる", "せもたれ", "せりふ", "ぜんあく", "せんい", "せんえい", "せんか", "せんきょ", "せんく", "せんげん",
42717 "ぜんご", "せんさい", "せんしゅ", "せんすい", "せんせい", "せんぞ", "せんたく", "せんちょう", "せんてい", "せんとう",
42718 "せんぬき", "せんねん", "せんぱい", "ぜんぶ", "ぜんぽう", "せんむ", "せんめんじょ", "せんもん", "せんやく", "せんゆう",
42719 "せんよう", "ぜんら", "ぜんりゃく", "せんれい", "せんろ", "そあく", "そいとげる", "そいね", "そうがんきょう", "そうき",
42720 "そうご", "そうしん", "そうだん", "そうなん", "そうび", "そうめん", "そうり", "そえもの", "そえん", "そがい",
42721 "そげき", "そこう", "そこそこ", "そざい", "そしな", "そせい", "そせん", "そそぐ", "そだてる", "そつう",
42722 "そつえん", "そっかん", "そつぎょう", "そっけつ", "そっこう", "そっせん", "そっと", "そとがわ", "そとづら", "そなえる",
42723 "そなた", "そふぼ", "そぼく", "そぼろ", "そまつ", "そまる", "そむく", "そむりえ", "そめる", "そもそも",
42724 "そよかぜ", "そらまめ", "そろう", "そんかい", "そんけい", "そんざい", "そんしつ", "そんぞく", "そんちょう", "ぞんび",
42725 "ぞんぶん", "そんみん", "たあい", "たいいん", "たいうん", "たいえき", "たいおう", "だいがく", "たいき", "たいぐう",
42726 "たいけん", "たいこ", "たいざい", "だいじょうぶ", "だいすき", "たいせつ", "たいそう", "だいたい", "たいちょう", "たいてい",
42727 "だいどころ", "たいない", "たいねつ", "たいのう", "たいはん", "だいひょう", "たいふう", "たいへん", "たいほ", "たいまつばな",
42728 "たいみんぐ", "たいむ", "たいめん", "たいやき", "たいよう", "たいら", "たいりょく", "たいる", "たいわん", "たうえ",
42729 "たえる", "たおす", "たおる", "たおれる", "たかい", "たかね", "たきび", "たくさん", "たこく", "たこやき",
42730 "たさい", "たしざん", "だじゃれ", "たすける", "たずさわる", "たそがれ", "たたかう", "たたく", "ただしい", "たたみ",
42731 "たちばな", "だっかい", "だっきゃく", "だっこ", "だっしゅつ", "だったい", "たてる", "たとえる", "たなばた", "たにん",
42732 "たぬき", "たのしみ", "たはつ", "たぶん", "たべる", "たぼう", "たまご", "たまる", "だむる", "ためいき",
42733 "ためす", "ためる", "たもつ", "たやすい", "たよる", "たらす", "たりきほんがん", "たりょう", "たりる", "たると",
42734 "たれる", "たれんと", "たろっと", "たわむれる", "だんあつ", "たんい", "たんおん", "たんか", "たんき", "たんけん",
42735 "たんご", "たんさん", "たんじょうび", "だんせい", "たんそく", "たんたい", "だんち", "たんてい", "たんとう", "だんな",
42736 "たんにん", "だんねつ", "たんのう", "たんぴん", "だんぼう", "たんまつ", "たんめい", "だんれつ", "だんろ", "だんわ",
42737 "ちあい", "ちあん", "ちいき", "ちいさい", "ちえん", "ちかい", "ちから", "ちきゅう", "ちきん", "ちけいず",
42738 "ちけん", "ちこく", "ちさい", "ちしき", "ちしりょう", "ちせい", "ちそう", "ちたい", "ちたん", "ちちおや",
42739 "ちつじょ", "ちてき", "ちてん", "ちぬき", "ちぬり", "ちのう", "ちひょう", "ちへいせん", "ちほう", "ちまた",
42740 "ちみつ", "ちみどろ", "ちめいど", "ちゃんこなべ", "ちゅうい", "ちゆりょく", "ちょうし", "ちょさくけん", "ちらし", "ちらみ",
42741 "ちりがみ", "ちりょう", "ちるど", "ちわわ", "ちんたい", "ちんもく", "ついか", "ついたち", "つうか", "つうじょう",
42742 "つうはん", "つうわ", "つかう", "つかれる", "つくね", "つくる", "つけね", "つける", "つごう", "つたえる",
42743 "つづく", "つつじ", "つつむ", "つとめる", "つながる", "つなみ", "つねづね", "つのる", "つぶす", "つまらない",
42744 "つまる", "つみき", "つめたい", "つもり", "つもる", "つよい", "つるぼ", "つるみく", "つわもの", "つわり",
42745 "てあし", "てあて", "てあみ", "ていおん", "ていか", "ていき", "ていけい", "ていこく", "ていさつ", "ていし",
42746 "ていせい", "ていたい", "ていど", "ていねい", "ていひょう", "ていへん", "ていぼう", "てうち", "ておくれ", "てきとう",
42747 "てくび", "でこぼこ", "てさぎょう", "てさげ", "てすり", "てそう", "てちがい", "てちょう", "てつがく", "てつづき",
42748 "でっぱ", "てつぼう", "てつや", "でぬかえ", "てぬき", "てぬぐい", "てのひら", "てはい", "てぶくろ", "てふだ",
42749 "てほどき", "てほん", "てまえ", "てまきずし", "てみじか", "てみやげ", "てらす", "てれび", "てわけ", "てわたし",
42750 "でんあつ", "てんいん", "てんかい", "てんき", "てんぐ", "てんけん", "てんごく", "てんさい", "てんし", "てんすう",
42751 "でんち", "てんてき", "てんとう", "てんない", "てんぷら", "てんぼうだい", "てんめつ", "てんらんかい", "でんりょく", "でんわ",
42752 "どあい", "といれ", "どうかん", "とうきゅう", "どうぐ", "とうし", "とうむぎ", "とおい", "とおか", "とおく",
42753 "とおす", "とおる", "とかい", "とかす", "ときおり", "ときどき", "とくい", "とくしゅう", "とくてん", "とくに",
42754 "とくべつ", "とけい", "とける", "とこや", "とさか", "としょかん", "とそう", "とたん", "とちゅう", "とっきゅう",
42755 "とっくん", "とつぜん", "とつにゅう", "とどける", "ととのえる", "とない", "となえる", "となり", "とのさま", "とばす",
42756 "どぶがわ", "とほう", "とまる", "とめる", "ともだち", "ともる", "どようび", "とらえる", "とんかつ", "どんぶり",
42757 "ないかく", "ないこう", "ないしょ", "ないす", "ないせん", "ないそう", "なおす", "ながい", "なくす", "なげる",
42758 "なこうど", "なさけ", "なたでここ", "なっとう", "なつやすみ", "ななおし", "なにごと", "なにもの", "なにわ", "なのか",
42759 "なふだ", "なまいき", "なまえ", "なまみ", "なみだ", "なめらか", "なめる", "なやむ", "ならう", "ならび",
42760 "ならぶ", "なれる", "なわとび", "なわばり", "にあう", "にいがた", "にうけ", "におい", "にかい", "にがて",
42761 "にきび", "にくしみ", "にくまん", "にげる", "にさんかたんそ", "にしき", "にせもの", "にちじょう", "にちようび", "にっか",
42762 "にっき", "にっけい", "にっこう", "にっさん", "にっしょく", "にっすう", "にっせき", "にってい", "になう", "にほん",
42763 "にまめ", "にもつ", "にやり", "にゅういん", "にりんしゃ", "にわとり", "にんい", "にんか", "にんき", "にんげん",
42764 "にんしき", "にんずう", "にんそう", "にんたい", "にんち", "にんてい", "にんにく", "にんぷ", "にんまり", "にんむ",
42765 "にんめい", "にんよう", "ぬいくぎ", "ぬかす", "ぬぐいとる", "ぬぐう", "ぬくもり", "ぬすむ", "ぬまえび", "ぬめり",
42766 "ぬらす", "ぬんちゃく", "ねあげ", "ねいき", "ねいる", "ねいろ", "ねぐせ", "ねくたい", "ねくら", "ねこぜ",
42767 "ねこむ", "ねさげ", "ねすごす", "ねそべる", "ねだん", "ねつい", "ねっしん", "ねつぞう", "ねったいぎょ", "ねぶそく",
42768 "ねふだ", "ねぼう", "ねほりはほり", "ねまき", "ねまわし", "ねみみ", "ねむい", "ねむたい", "ねもと", "ねらう",
42769 "ねわざ", "ねんいり", "ねんおし", "ねんかん", "ねんきん", "ねんぐ", "ねんざ", "ねんし", "ねんちゃく", "ねんど",
42770 "ねんぴ", "ねんぶつ", "ねんまつ", "ねんりょう", "ねんれい", "のいず", "のおづま", "のがす", "のきなみ", "のこぎり",
42771 "のこす", "のこる", "のせる", "のぞく", "のぞむ", "のたまう", "のちほど", "のっく", "のばす", "のはら",
42772 "のべる", "のぼる", "のみもの", "のやま", "のらいぬ", "のらねこ", "のりもの", "のりゆき", "のれん", "のんき",
42773 "ばあい", "はあく", "ばあさん", "ばいか", "ばいく", "はいけん", "はいご", "はいしん", "はいすい", "はいせん",
42774 "はいそう", "はいち", "ばいばい", "はいれつ", "はえる", "はおる", "はかい", "ばかり", "はかる", "はくしゅ",
42775 "はけん", "はこぶ", "はさみ", "はさん", "はしご", "ばしょ", "はしる", "はせる", "ぱそこん", "はそん",
42776 "はたん", "はちみつ", "はつおん", "はっかく", "はづき", "はっきり", "はっくつ", "はっけん", "はっこう", "はっさん",
42777 "はっしん", "はったつ", "はっちゅう", "はってん", "はっぴょう", "はっぽう", "はなす", "はなび", "はにかむ", "はぶらし",
42778 "はみがき", "はむかう", "はめつ", "はやい", "はやし", "はらう", "はろうぃん", "はわい", "はんい", "はんえい",
42779 "はんおん", "はんかく", "はんきょう", "ばんぐみ", "はんこ", "はんしゃ", "はんすう", "はんだん", "ぱんち", "ぱんつ",
42780 "はんてい", "はんとし", "はんのう", "はんぱ", "はんぶん", "はんぺん", "はんぼうき", "はんめい", "はんらん", "はんろん",
42781 "ひいき", "ひうん", "ひえる", "ひかく", "ひかり", "ひかる", "ひかん", "ひくい", "ひけつ", "ひこうき",
42782 "ひこく", "ひさい", "ひさしぶり", "ひさん", "びじゅつかん", "ひしょ", "ひそか", "ひそむ", "ひたむき", "ひだり",
42783 "ひたる", "ひつぎ", "ひっこし", "ひっし", "ひつじゅひん", "ひっす", "ひつぜん", "ぴったり", "ぴっちり", "ひつよう",
42784 "ひてい", "ひとごみ", "ひなまつり", "ひなん", "ひねる", "ひはん", "ひびく", "ひひょう", "ひほう", "ひまわり",
42785 "ひまん", "ひみつ", "ひめい", "ひめじし", "ひやけ", "ひやす", "ひよう", "びょうき", "ひらがな", "ひらく",
42786 "ひりつ", "ひりょう", "ひるま", "ひるやすみ", "ひれい", "ひろい", "ひろう", "ひろき", "ひろゆき", "ひんかく",
42787 "ひんけつ", "ひんこん", "ひんしゅ", "ひんそう", "ぴんち", "ひんぱん", "びんぼう", "ふあん", "ふいうち", "ふうけい",
42788 "ふうせん", "ぷうたろう", "ふうとう", "ふうふ", "ふえる", "ふおん", "ふかい", "ふきん", "ふくざつ", "ふくぶくろ",
42789 "ふこう", "ふさい", "ふしぎ", "ふじみ", "ふすま", "ふせい", "ふせぐ", "ふそく", "ぶたにく", "ふたん",
42790 "ふちょう", "ふつう", "ふつか", "ふっかつ", "ふっき", "ふっこく", "ぶどう", "ふとる", "ふとん", "ふのう",
42791 "ふはい", "ふひょう", "ふへん", "ふまん", "ふみん", "ふめつ", "ふめん", "ふよう", "ふりこ", "ふりる",
42792 "ふるい", "ふんいき", "ぶんがく", "ぶんぐ", "ふんしつ", "ぶんせき", "ふんそう", "ぶんぽう", "へいあん", "へいおん",
42793 "へいがい", "へいき", "へいげん", "へいこう", "へいさ", "へいしゃ", "へいせつ", "へいそ", "へいたく", "へいてん",
42794 "へいねつ", "へいわ", "へきが", "へこむ", "べにいろ", "べにしょうが", "へらす", "へんかん", "べんきょう", "べんごし",
42795 "へんさい", "へんたい", "べんり", "ほあん", "ほいく", "ぼうぎょ", "ほうこく", "ほうそう", "ほうほう", "ほうもん",
42796 "ほうりつ", "ほえる", "ほおん", "ほかん", "ほきょう", "ぼきん", "ほくろ", "ほけつ", "ほけん", "ほこう",
42797 "ほこる", "ほしい", "ほしつ", "ほしゅ", "ほしょう", "ほせい", "ほそい", "ほそく", "ほたて", "ほたる",
42798 "ぽちぶくろ", "ほっきょく", "ほっさ", "ほったん", "ほとんど", "ほめる", "ほんい", "ほんき", "ほんけ", "ほんしつ",
42799 "ほんやく", "まいにち", "まかい", "まかせる", "まがる", "まける", "まこと", "まさつ", "まじめ", "ますく",
42800 "まぜる", "まつり", "まとめ", "まなぶ", "まぬけ", "まねく", "まほう", "まもる", "まゆげ", "まよう",
42801 "まろやか", "まわす", "まわり", "まわる", "まんが", "まんきつ", "まんぞく", "まんなか", "みいら", "みうち",
42802 "みえる", "みがく", "みかた", "みかん", "みけん", "みこん", "みじかい", "みすい", "みすえる", "みせる",
42803 "みっか", "みつかる", "みつける", "みてい", "みとめる", "みなと", "みなみかさい", "みねらる", "みのう", "みのがす",
42804 "みほん", "みもと", "みやげ", "みらい", "みりょく", "みわく", "みんか", "みんぞく", "むいか", "むえき",
42805 "むえん", "むかい", "むかう", "むかえ", "むかし", "むぎちゃ", "むける", "むげん", "むさぼる", "むしあつい",
42806 "むしば", "むじゅん", "むしろ", "むすう", "むすこ", "むすぶ", "むすめ", "むせる", "むせん", "むちゅう",
42807 "むなしい", "むのう", "むやみ", "むよう", "むらさき", "むりょう", "むろん", "めいあん", "めいうん", "めいえん",
42808 "めいかく", "めいきょく", "めいさい", "めいし", "めいそう", "めいぶつ", "めいれい", "めいわく", "めぐまれる", "めざす",
42809 "めした", "めずらしい", "めだつ", "めまい", "めやす", "めんきょ", "めんせき", "めんどう", "もうしあげる", "もうどうけん",
42810 "もえる", "もくし", "もくてき", "もくようび", "もちろん", "もどる", "もらう", "もんく", "もんだい", "やおや",
42811 "やける", "やさい", "やさしい", "やすい", "やすたろう", "やすみ", "やせる", "やそう", "やたい", "やちん",
42812 "やっと", "やっぱり", "やぶる", "やめる", "ややこしい", "やよい", "やわらかい", "ゆうき", "ゆうびんきょく", "ゆうべ",
42813 "ゆうめい", "ゆけつ", "ゆしゅつ", "ゆせん", "ゆそう", "ゆたか", "ゆちゃく", "ゆでる", "ゆにゅう", "ゆびわ",
42814 "ゆらい", "ゆれる", "ようい", "ようか", "ようきゅう", "ようじ", "ようす", "ようちえん", "よかぜ", "よかん",
42815 "よきん", "よくせい", "よくぼう", "よけい", "よごれる", "よさん", "よしゅう", "よそう", "よそく", "よっか",
42816 "よてい", "よどがわく", "よねつ", "よやく", "よゆう", "よろこぶ", "よろしい", "らいう", "らくがき", "らくご",
42817 "らくさつ", "らくだ", "らしんばん", "らせん", "らぞく", "らたい", "らっか", "られつ", "りえき", "りかい",
42818 "りきさく", "りきせつ", "りくぐん", "りくつ", "りけん", "りこう", "りせい", "りそう", "りそく", "りてん",
42819 "りねん", "りゆう", "りゅうがく", "りよう", "りょうり", "りょかん", "りょくちゃ", "りょこう", "りりく", "りれき",
42820 "りろん", "りんご", "るいけい", "るいさい", "るいじ", "るいせき", "るすばん", "るりがわら", "れいかん", "れいぎ",
42821 "れいせい", "れいぞうこ", "れいとう", "れいぼう", "れきし", "れきだい", "れんあい", "れんけい", "れんこん", "れんさい",
42822 "れんしゅう", "れんぞく", "れんらく", "ろうか", "ろうご", "ろうじん", "ろうそく", "ろくが", "ろこつ", "ろじうら",
42823 "ろしゅつ", "ろせん", "ろてん", "ろめん", "ろれつ", "ろんぎ", "ろんぱ", "ろんぶん", "ろんり", "わかす",
42824 "わかめ", "わかやま", "わかれる", "わしつ", "わじまし", "わすれもの", "わらう", "われる"]
42826 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
42827 WORDLISTS["spanish"] = [
42828 "ábaco", "abdomen", "abeja", "abierto", "abogado", "abono", "aborto", "abrazo", "abrir", "abuelo",
42829 "abuso", "acabar", "academia", "acceso", "acción", "aceite", "acelga", "acento", "aceptar", "ácido",
42830 "aclarar", "acné", "acoger", "acoso", "activo", "acto", "actriz", "actuar", "acudir", "acuerdo",
42831 "acusar", "adicto", "admitir", "adoptar", "adorno", "aduana", "adulto", "aéreo", "afectar", "afición",
42832 "afinar", "afirmar", "ágil", "agitar", "agonía", "agosto", "agotar", "agregar", "agrio", "agua",
42833 "agudo", "águila", "aguja", "ahogo", "ahorro", "aire", "aislar", "ajedrez", "ajeno", "ajuste",
42834 "alacrán", "alambre", "alarma", "alba", "álbum", "alcalde", "aldea", "alegre", "alejar", "alerta",
42835 "aleta", "alfiler", "alga", "algodón", "aliado", "aliento", "alivio", "alma", "almeja", "almíbar",
42836 "altar", "alteza", "altivo", "alto", "altura", "alumno", "alzar", "amable", "amante", "amapola",
42837 "amargo", "amasar", "ámbar", "ámbito", "ameno", "amigo", "amistad", "amor", "amparo", "amplio",
42838 "ancho", "anciano", "ancla", "andar", "andén", "anemia", "ángulo", "anillo", "ánimo", "anís",
42839 "anotar", "antena", "antiguo", "antojo", "anual", "anular", "anuncio", "añadir", "añejo", "año",
42840 "apagar", "aparato", "apetito", "apio", "aplicar", "apodo", "aporte", "apoyo", "aprender", "aprobar",
42841 "apuesta", "apuro", "arado", "araña", "arar", "árbitro", "árbol", "arbusto", "archivo", "arco",
42842 "arder", "ardilla", "arduo", "área", "árido", "aries", "armonía", "arnés", "aroma", "arpa",
42843 "arpón", "arreglo", "arroz", "arruga", "arte", "artista", "asa", "asado", "asalto", "ascenso",
42844 "asegurar", "aseo", "asesor", "asiento", "asilo", "asistir", "asno", "asombro", "áspero", "astilla",
42845 "astro", "astuto", "asumir", "asunto", "atajo", "ataque", "atar", "atento", "ateo", "ático",
42846 "atleta", "átomo", "atraer", "atroz", "atún", "audaz", "audio", "auge", "aula", "aumento",
42847 "ausente", "autor", "aval", "avance", "avaro", "ave", "avellana", "avena", "avestruz", "avión",
42848 "aviso", "ayer", "ayuda", "ayuno", "azafrán", "azar", "azote", "azúcar", "azufre", "azul",
42849 "baba", "babor", "bache", "bahía", "baile", "bajar", "balanza", "balcón", "balde", "bambú",
42850 "banco", "banda", "baño", "barba", "barco", "barniz", "barro", "báscula", "bastón", "basura",
42851 "batalla", "batería", "batir", "batuta", "baúl", "bazar", "bebé", "bebida", "bello", "besar",
42852 "beso", "bestia", "bicho", "bien", "bingo", "blanco", "bloque", "blusa", "boa", "bobina",
42853 "bobo", "boca", "bocina", "boda", "bodega", "boina", "bola", "bolero", "bolsa", "bomba",
42854 "bondad", "bonito", "bono", "bonsái", "borde", "borrar", "bosque", "bote", "botín", "bóveda",
42855 "bozal", "bravo", "brazo", "brecha", "breve", "brillo", "brinco", "brisa", "broca", "broma",
42856 "bronce", "brote", "bruja", "brusco", "bruto", "buceo", "bucle", "bueno", "buey", "bufanda",
42857 "bufón", "búho", "buitre", "bulto", "burbuja", "burla", "burro", "buscar", "butaca", "buzón",
42858 "caballo", "cabeza", "cabina", "cabra", "cacao", "cadáver", "cadena", "caer", "café", "caída",
42859 "caimán", "caja", "cajón", "cal", "calamar", "calcio", "caldo", "calidad", "calle", "calma",
42860 "calor", "calvo", "cama", "cambio", "camello", "camino", "campo", "cáncer", "candil", "canela",
42861 "canguro", "canica", "canto", "caña", "cañón", "caoba", "caos", "capaz", "capitán", "capote",
42862 "captar", "capucha", "cara", "carbón", "cárcel", "careta", "carga", "cariño", "carne", "carpeta",
42863 "carro", "carta", "casa", "casco", "casero", "caspa", "castor", "catorce", "catre", "caudal",
42864 "causa", "cazo", "cebolla", "ceder", "cedro", "celda", "célebre", "celoso", "célula", "cemento",
42865 "ceniza", "centro", "cerca", "cerdo", "cereza", "cero", "cerrar", "certeza", "césped", "cetro",
42866 "chacal", "chaleco", "champú", "chancla", "chapa", "charla", "chico", "chiste", "chivo", "choque",
42867 "choza", "chuleta", "chupar", "ciclón", "ciego", "cielo", "cien", "cierto", "cifra", "cigarro",
42868 "cima", "cinco", "cine", "cinta", "ciprés", "circo", "ciruela", "cisne", "cita", "ciudad",
42869 "clamor", "clan", "claro", "clase", "clave", "cliente", "clima", "clínica", "cobre", "cocción",
42870 "cochino", "cocina", "coco", "código", "codo", "cofre", "coger", "cohete", "cojín", "cojo",
42871 "cola", "colcha", "colegio", "colgar", "colina", "collar", "colmo", "columna", "combate", "comer",
42872 "comida", "cómodo", "compra", "conde", "conejo", "conga", "conocer", "consejo", "contar", "copa",
42873 "copia", "corazón", "corbata", "corcho", "cordón", "corona", "correr", "coser", "cosmos", "costa",
42874 "cráneo", "cráter", "crear", "crecer", "creído", "crema", "cría", "crimen", "cripta", "crisis",
42875 "cromo", "crónica", "croqueta", "crudo", "cruz", "cuadro", "cuarto", "cuatro", "cubo", "cubrir",
42876 "cuchara", "cuello", "cuento", "cuerda", "cuesta", "cueva", "cuidar", "culebra", "culpa", "culto",
42877 "cumbre", "cumplir", "cuna", "cuneta", "cuota", "cupón", "cúpula", "curar", "curioso", "curso",
42878 "curva", "cutis", "dama", "danza", "dar", "dardo", "dátil", "deber", "débil", "década",
42879 "decir", "dedo", "defensa", "definir", "dejar", "delfín", "delgado", "delito", "demora", "denso",
42880 "dental", "deporte", "derecho", "derrota", "desayuno", "deseo", "desfile", "desnudo", "destino", "desvío",
42881 "detalle", "detener", "deuda", "día", "diablo", "diadema", "diamante", "diana", "diario", "dibujo",
42882 "dictar", "diente", "dieta", "diez", "difícil", "digno", "dilema", "diluir", "dinero", "directo",
42883 "dirigir", "disco", "diseño", "disfraz", "diva", "divino", "doble", "doce", "dolor", "domingo",
42884 "don", "donar", "dorado", "dormir", "dorso", "dos", "dosis", "dragón", "droga", "ducha",
42885 "duda", "duelo", "dueño", "dulce", "dúo", "duque", "durar", "dureza", "duro", "ébano",
42886 "ebrio", "echar", "eco", "ecuador", "edad", "edición", "edificio", "editor", "educar", "efecto",
42887 "eficaz", "eje", "ejemplo", "elefante", "elegir", "elemento", "elevar", "elipse", "élite", "elixir",
42888 "elogio", "eludir", "embudo", "emitir", "emoción", "empate", "empeño", "empleo", "empresa", "enano",
42889 "encargo", "enchufe", "encía", "enemigo", "enero", "enfado", "enfermo", "engaño", "enigma", "enlace",
42890 "enorme", "enredo", "ensayo", "enseñar", "entero", "entrar", "envase", "envío", "época", "equipo",
42891 "erizo", "escala", "escena", "escolar", "escribir", "escudo", "esencia", "esfera", "esfuerzo", "espada",
42892 "espejo", "espía", "esposa", "espuma", "esquí", "estar", "este", "estilo", "estufa", "etapa",
42893 "eterno", "ética", "etnia", "evadir", "evaluar", "evento", "evitar", "exacto", "examen", "exceso",
42894 "excusa", "exento", "exigir", "exilio", "existir", "éxito", "experto", "explicar", "exponer", "extremo",
42895 "fábrica", "fábula", "fachada", "fácil", "factor", "faena", "faja", "falda", "fallo", "falso",
42896 "faltar", "fama", "familia", "famoso", "faraón", "farmacia", "farol", "farsa", "fase", "fatiga",
42897 "fauna", "favor", "fax", "febrero", "fecha", "feliz", "feo", "feria", "feroz", "fértil",
42898 "fervor", "festín", "fiable", "fianza", "fiar", "fibra", "ficción", "ficha", "fideo", "fiebre",
42899 "fiel", "fiera", "fiesta", "figura", "fijar", "fijo", "fila", "filete", "filial", "filtro",
42900 "fin", "finca", "fingir", "finito", "firma", "flaco", "flauta", "flecha", "flor", "flota",
42901 "fluir", "flujo", "flúor", "fobia", "foca", "fogata", "fogón", "folio", "folleto", "fondo",
42902 "forma", "forro", "fortuna", "forzar", "fosa", "foto", "fracaso", "frágil", "franja", "frase",
42903 "fraude", "freír", "freno", "fresa", "frío", "frito", "fruta", "fuego", "fuente", "fuerza",
42904 "fuga", "fumar", "función", "funda", "furgón", "furia", "fusil", "fútbol", "futuro", "gacela",
42905 "gafas", "gaita", "gajo", "gala", "galería", "gallo", "gamba", "ganar", "gancho", "ganga",
42906 "ganso", "garaje", "garza", "gasolina", "gastar", "gato", "gavilán", "gemelo", "gemir", "gen",
42907 "género", "genio", "gente", "geranio", "gerente", "germen", "gesto", "gigante", "gimnasio", "girar",
42908 "giro", "glaciar", "globo", "gloria", "gol", "golfo", "goloso", "golpe", "goma", "gordo",
42909 "gorila", "gorra", "gota", "goteo", "gozar", "grada", "gráfico", "grano", "grasa", "gratis",
42910 "grave", "grieta", "grillo", "gripe", "gris", "grito", "grosor", "grúa", "grueso", "grumo",
42911 "grupo", "guante", "guapo", "guardia", "guerra", "guía", "guiño", "guion", "guiso", "guitarra",
42912 "gusano", "gustar", "haber", "hábil", "hablar", "hacer", "hacha", "hada", "hallar", "hamaca",
42913 "harina", "haz", "hazaña", "hebilla", "hebra", "hecho", "helado", "helio", "hembra", "herir",
42914 "hermano", "héroe", "hervir", "hielo", "hierro", "hígado", "higiene", "hijo", "himno", "historia",
42915 "hocico", "hogar", "hoguera", "hoja", "hombre", "hongo", "honor", "honra", "hora", "hormiga",
42916 "horno", "hostil", "hoyo", "hueco", "huelga", "huerta", "hueso", "huevo", "huida", "huir",
42917 "humano", "húmedo", "humilde", "humo", "hundir", "huracán", "hurto", "icono", "ideal", "idioma",
42918 "ídolo", "iglesia", "iglú", "igual", "ilegal", "ilusión", "imagen", "imán", "imitar", "impar",
42919 "imperio", "imponer", "impulso", "incapaz", "índice", "inerte", "infiel", "informe", "ingenio", "inicio",
42920 "inmenso", "inmune", "innato", "insecto", "instante", "interés", "íntimo", "intuir", "inútil", "invierno",
42921 "ira", "iris", "ironía", "isla", "islote", "jabalí", "jabón", "jamón", "jarabe", "jardín",
42922 "jarra", "jaula", "jazmín", "jefe", "jeringa", "jinete", "jornada", "joroba", "joven", "joya",
42923 "juerga", "jueves", "juez", "jugador", "jugo", "juguete", "juicio", "junco", "jungla", "junio",
42924 "juntar", "júpiter", "jurar", "justo", "juvenil", "juzgar", "kilo", "koala", "labio", "lacio",
42925 "lacra", "lado", "ladrón", "lagarto", "lágrima", "laguna", "laico", "lamer", "lámina", "lámpara",
42926 "lana", "lancha", "langosta", "lanza", "lápiz", "largo", "larva", "lástima", "lata", "látex",
42927 "latir", "laurel", "lavar", "lazo", "leal", "lección", "leche", "lector", "leer", "legión",
42928 "legumbre", "lejano", "lengua", "lento", "leña", "león", "leopardo", "lesión", "letal", "letra",
42929 "leve", "leyenda", "libertad", "libro", "licor", "líder", "lidiar", "lienzo", "liga", "ligero",
42930 "lima", "límite", "limón", "limpio", "lince", "lindo", "línea", "lingote", "lino", "linterna",
42931 "líquido", "liso", "lista", "litera", "litio", "litro", "llaga", "llama", "llanto", "llave",
42932 "llegar", "llenar", "llevar", "llorar", "llover", "lluvia", "lobo", "loción", "loco", "locura",
42933 "lógica", "logro", "lombriz", "lomo", "lonja", "lote", "lucha", "lucir", "lugar", "lujo",
42934 "luna", "lunes", "lupa", "lustro", "luto", "luz", "maceta", "macho", "madera", "madre",
42935 "maduro", "maestro", "mafia", "magia", "mago", "maíz", "maldad", "maleta", "malla", "malo",
42936 "mamá", "mambo", "mamut", "manco", "mando", "manejar", "manga", "maniquí", "manjar", "mano",
42937 "manso", "manta", "mañana", "mapa", "máquina", "mar", "marco", "marea", "marfil", "margen",
42938 "marido", "mármol", "marrón", "martes", "marzo", "masa", "máscara", "masivo", "matar", "materia",
42939 "matiz", "matriz", "máximo", "mayor", "mazorca", "mecha", "medalla", "medio", "médula", "mejilla",
42940 "mejor", "melena", "melón", "memoria", "menor", "mensaje", "mente", "menú", "mercado", "merengue",
42941 "mérito", "mes", "mesón", "meta", "meter", "método", "metro", "mezcla", "miedo", "miel",
42942 "miembro", "miga", "mil", "milagro", "militar", "millón", "mimo", "mina", "minero", "mínimo",
42943 "minuto", "miope", "mirar", "misa", "miseria", "misil", "mismo", "mitad", "mito", "mochila",
42944 "moción", "moda", "modelo", "moho", "mojar", "molde", "moler", "molino", "momento", "momia",
42945 "monarca", "moneda", "monja", "monto", "moño", "morada", "morder", "moreno", "morir", "morro",
42946 "morsa", "mortal", "mosca", "mostrar", "motivo", "mover", "móvil", "mozo", "mucho", "mudar",
42947 "mueble", "muela", "muerte", "muestra", "mugre", "mujer", "mula", "muleta", "multa", "mundo",
42948 "muñeca", "mural", "muro", "músculo", "museo", "musgo", "música", "muslo", "nácar", "nación",
42949 "nadar", "naipe", "naranja", "nariz", "narrar", "nasal", "natal", "nativo", "natural", "náusea",
42950 "naval", "nave", "navidad", "necio", "néctar", "negar", "negocio", "negro", "neón", "nervio",
42951 "neto", "neutro", "nevar", "nevera", "nicho", "nido", "niebla", "nieto", "niñez", "niño",
42952 "nítido", "nivel", "nobleza", "noche", "nómina", "noria", "norma", "norte", "nota", "noticia",
42953 "novato", "novela", "novio", "nube", "nuca", "núcleo", "nudillo", "nudo", "nuera", "nueve",
42954 "nuez", "nulo", "número", "nutria", "oasis", "obeso", "obispo", "objeto", "obra", "obrero",
42955 "observar", "obtener", "obvio", "oca", "ocaso", "océano", "ochenta", "ocho", "ocio", "ocre",
42956 "octavo", "octubre", "oculto", "ocupar", "ocurrir", "odiar", "odio", "odisea", "oeste", "ofensa",
42957 "oferta", "oficio", "ofrecer", "ogro", "oído", "oír", "ojo", "ola", "oleada", "olfato",
42958 "olivo", "olla", "olmo", "olor", "olvido", "ombligo", "onda", "onza", "opaco", "opción",
42959 "ópera", "opinar", "oponer", "optar", "óptica", "opuesto", "oración", "orador", "oral", "órbita",
42960 "orca", "orden", "oreja", "órgano", "orgía", "orgullo", "oriente", "origen", "orilla", "oro",
42961 "orquesta", "oruga", "osadía", "oscuro", "osezno", "oso", "ostra", "otoño", "otro", "oveja",
42962 "óvulo", "óxido", "oxígeno", "oyente", "ozono", "pacto", "padre", "paella", "página", "pago",
42963 "país", "pájaro", "palabra", "palco", "paleta", "pálido", "palma", "paloma", "palpar", "pan",
42964 "panal", "pánico", "pantera", "pañuelo", "papá", "papel", "papilla", "paquete", "parar", "parcela",
42965 "pared", "parir", "paro", "párpado", "parque", "párrafo", "parte", "pasar", "paseo", "pasión",
42966 "paso", "pasta", "pata", "patio", "patria", "pausa", "pauta", "pavo", "payaso", "peatón",
42967 "pecado", "pecera", "pecho", "pedal", "pedir", "pegar", "peine", "pelar", "peldaño", "pelea",
42968 "peligro", "pellejo", "pelo", "peluca", "pena", "pensar", "peñón", "peón", "peor", "pepino",
42969 "pequeño", "pera", "percha", "perder", "pereza", "perfil", "perico", "perla", "permiso", "perro",
42970 "persona", "pesa", "pesca", "pésimo", "pestaña", "pétalo", "petróleo", "pez", "pezuña", "picar",
42971 "pichón", "pie", "piedra", "pierna", "pieza", "pijama", "pilar", "piloto", "pimienta", "pino",
42972 "pintor", "pinza", "piña", "piojo", "pipa", "pirata", "pisar", "piscina", "piso", "pista",
42973 "pitón", "pizca", "placa", "plan", "plata", "playa", "plaza", "pleito", "pleno", "plomo",
42974 "pluma", "plural", "pobre", "poco", "poder", "podio", "poema", "poesía", "poeta", "polen",
42975 "policía", "pollo", "polvo", "pomada", "pomelo", "pomo", "pompa", "poner", "porción", "portal",
42976 "posada", "poseer", "posible", "poste", "potencia", "potro", "pozo", "prado", "precoz", "pregunta",
42977 "premio", "prensa", "preso", "previo", "primo", "príncipe", "prisión", "privar", "proa", "probar",
42978 "proceso", "producto", "proeza", "profesor", "programa", "prole", "promesa", "pronto", "propio", "próximo",
42979 "prueba", "público", "puchero", "pudor", "pueblo", "puerta", "puesto", "pulga", "pulir", "pulmón",
42980 "pulpo", "pulso", "puma", "punto", "puñal", "puño", "pupa", "pupila", "puré", "quedar",
42981 "queja", "quemar", "querer", "queso", "quieto", "química", "quince", "quitar", "rábano", "rabia",
42982 "rabo", "ración", "radical", "raíz", "rama", "rampa", "rancho", "rango", "rapaz", "rápido",
42983 "rapto", "rasgo", "raspa", "rato", "rayo", "raza", "razón", "reacción", "realidad", "rebaño",
42984 "rebote", "recaer", "receta", "rechazo", "recoger", "recreo", "recto", "recurso", "red", "redondo",
42985 "reducir", "reflejo", "reforma", "refrán", "refugio", "regalo", "regir", "regla", "regreso", "rehén",
42986 "reino", "reír", "reja", "relato", "relevo", "relieve", "relleno", "reloj", "remar", "remedio",
42987 "remo", "rencor", "rendir", "renta", "reparto", "repetir", "reposo", "reptil", "res", "rescate",
42988 "resina", "respeto", "resto", "resumen", "retiro", "retorno", "retrato", "reunir", "revés", "revista",
42989 "rey", "rezar", "rico", "riego", "rienda", "riesgo", "rifa", "rígido", "rigor", "rincón",
42990 "riñón", "río", "riqueza", "risa", "ritmo", "rito", "rizo", "roble", "roce", "rociar",
42991 "rodar", "rodeo", "rodilla", "roer", "rojizo", "rojo", "romero", "romper", "ron", "ronco",
42992 "ronda", "ropa", "ropero", "rosa", "rosca", "rostro", "rotar", "rubí", "rubor", "rudo",
42993 "rueda", "rugir", "ruido", "ruina", "ruleta", "rulo", "rumbo", "rumor", "ruptura", "ruta",
42994 "rutina", "sábado", "saber", "sabio", "sable", "sacar", "sagaz", "sagrado", "sala", "saldo",
42995 "salero", "salir", "salmón", "salón", "salsa", "salto", "salud", "salvar", "samba", "sanción",
42996 "sandía", "sanear", "sangre", "sanidad", "sano", "santo", "sapo", "saque", "sardina", "sartén",
42997 "sastre", "satán", "sauna", "saxofón", "sección", "seco", "secreto", "secta", "sed", "seguir",
42998 "seis", "sello", "selva", "semana", "semilla", "senda", "sensor", "señal", "señor", "separar",
42999 "sepia", "sequía", "ser", "serie", "sermón", "servir", "sesenta", "sesión", "seta", "setenta",
43000 "severo", "sexo", "sexto", "sidra", "siesta", "siete", "siglo", "signo", "sílaba", "silbar",
43001 "silencio", "silla", "símbolo", "simio", "sirena", "sistema", "sitio", "situar", "sobre", "socio",
43002 "sodio", "sol", "solapa", "soldado", "soledad", "sólido", "soltar", "solución", "sombra", "sondeo",
43003 "sonido", "sonoro", "sonrisa", "sopa", "soplar", "soporte", "sordo", "sorpresa", "sorteo", "sostén",
43004 "sótano", "suave", "subir", "suceso", "sudor", "suegra", "suelo", "sueño", "suerte", "sufrir",
43005 "sujeto", "sultán", "sumar", "superar", "suplir", "suponer", "supremo", "sur", "surco", "sureño",
43006 "surgir", "susto", "sutil", "tabaco", "tabique", "tabla", "tabú", "taco", "tacto", "tajo",
43007 "talar", "talco", "talento", "talla", "talón", "tamaño", "tambor", "tango", "tanque", "tapa",
43008 "tapete", "tapia", "tapón", "taquilla", "tarde", "tarea", "tarifa", "tarjeta", "tarot", "tarro",
43009 "tarta", "tatuaje", "tauro", "taza", "tazón", "teatro", "techo", "tecla", "técnica", "tejado",
43010 "tejer", "tejido", "tela", "teléfono", "tema", "temor", "templo", "tenaz", "tender", "tener",
43011 "tenis", "tenso", "teoría", "terapia", "terco", "término", "ternura", "terror", "tesis", "tesoro",
43012 "testigo", "tetera", "texto", "tez", "tibio", "tiburón", "tiempo", "tienda", "tierra", "tieso",
43013 "tigre", "tijera", "tilde", "timbre", "tímido", "timo", "tinta", "tío", "típico", "tipo",
43014 "tira", "tirón", "titán", "títere", "título", "tiza", "toalla", "tobillo", "tocar", "tocino",
43015 "todo", "toga", "toldo", "tomar", "tono", "tonto", "topar", "tope", "toque", "tórax",
43016 "torero", "tormenta", "torneo", "toro", "torpedo", "torre", "torso", "tortuga", "tos", "tosco",
43017 "toser", "tóxico", "trabajo", "tractor", "traer", "tráfico", "trago", "traje", "tramo", "trance",
43018 "trato", "trauma", "trazar", "trébol", "tregua", "treinta", "tren", "trepar", "tres", "tribu",
43019 "trigo", "tripa", "triste", "triunfo", "trofeo", "trompa", "tronco", "tropa", "trote", "trozo",
43020 "truco", "trueno", "trufa", "tubería", "tubo", "tuerto", "tumba", "tumor", "túnel", "túnica",
43021 "turbina", "turismo", "turno", "tutor", "ubicar", "úlcera", "umbral", "unidad", "unir", "universo",
43022 "uno", "untar", "uña", "urbano", "urbe", "urgente", "urna", "usar", "usuario", "útil",
43023 "utopía", "uva", "vaca", "vacío", "vacuna", "vagar", "vago", "vaina", "vajilla", "vale",
43024 "válido", "valle", "valor", "válvula", "vampiro", "vara", "variar", "varón", "vaso", "vecino",
43025 "vector", "vehículo", "veinte", "vejez", "vela", "velero", "veloz", "vena", "vencer", "venda",
43026 "veneno", "vengar", "venir", "venta", "venus", "ver", "verano", "verbo", "verde", "vereda",
43027 "verja", "verso", "verter", "vía", "viaje", "vibrar", "vicio", "víctima", "vida", "vídeo",
43028 "vidrio", "viejo", "viernes", "vigor", "vil", "villa", "vinagre", "vino", "viñedo", "violín",
43029 "viral", "virgo", "virtud", "visor", "víspera", "vista", "vitamina", "viudo", "vivaz", "vivero",
43030 "vivir", "vivo", "volcán", "volumen", "volver", "voraz", "votar", "voto", "voz", "vuelo",
43031 "vulgar", "yacer", "yate", "yegua", "yema", "yerno", "yeso", "yodo", "yoga", "yogur",
43032 "zafiro", "zanja", "zapato", "zarza", "zona", "zorro", "zumo", "zurdo"]
43034 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43035 WORDLISTS["chinese_simplified"] = [
43036 "的", "一", "是", "在", "不", "了", "有", "和", "人", "这",
43037 "中", "大", "为", "上", "个", "国", "我", "以", "要", "他",
43038 "时", "来", "用", "们", "生", "到", "作", "地", "于", "出",
43039 "就", "分", "对", "成", "会", "可", "主", "发", "年", "动",
43040 "同", "工", "也", "能", "下", "过", "子", "说", "产", "种",
43041 "面", "而", "方", "后", "多", "定", "行", "学", "法", "所",
43042 "民", "得", "经", "十", "三", "之", "进", "着", "等", "部",
43043 "度", "家", "电", "力", "里", "如", "水", "化", "高", "自",
43044 "二", "理", "起", "小", "物", "现", "实", "加", "量", "都",
43045 "两", "体", "制", "机", "当", "使", "点", "从", "业", "本",
43046 "去", "把", "性", "好", "应", "开", "它", "合", "还", "因",
43047 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
43048 "那", "社", "义", "事", "平", "形", "相", "全", "表", "间",
43049 "样", "与", "关", "各", "重", "新", "线", "内", "数", "正",
43050 "心", "反", "你", "明", "看", "原", "又", "么", "利", "比",
43051 "或", "但", "质", "气", "第", "向", "道", "命", "此", "变",
43052 "条", "只", "没", "结", "解", "问", "意", "建", "月", "公",
43053 "无", "系", "军", "很", "情", "者", "最", "立", "代", "想",
43054 "已", "通", "并", "提", "直", "题", "党", "程", "展", "五",
43055 "果", "料", "象", "员", "革", "位", "入", "常", "文", "总",
43056 "次", "品", "式", "活", "设", "及", "管", "特", "件", "长",
43057 "求", "老", "头", "基", "资", "边", "流", "路", "级", "少",
43058 "图", "山", "统", "接", "知", "较", "将", "组", "见", "计",
43059 "别", "她", "手", "角", "期", "根", "论", "运", "农", "指",
43060 "几", "九", "区", "强", "放", "决", "西", "被", "干", "做",
43061 "必", "战", "先", "回", "则", "任", "取", "据", "处", "队",
43062 "南", "给", "色", "光", "门", "即", "保", "治", "北", "造",
43063 "百", "规", "热", "领", "七", "海", "口", "东", "导", "器",
43064 "压", "志", "世", "金", "增", "争", "济", "阶", "油", "思",
43065 "术", "极", "交", "受", "联", "什", "认", "六", "共", "权",
43066 "收", "证", "改", "清", "美", "再", "采", "转", "更", "单",
43067 "风", "切", "打", "白", "教", "速", "花", "带", "安", "场",
43068 "身", "车", "例", "真", "务", "具", "万", "每", "目", "至",
43069 "达", "走", "积", "示", "议", "声", "报", "斗", "完", "类",
43070 "八", "离", "华", "名", "确", "才", "科", "张", "信", "马",
43071 "节", "话", "米", "整", "空", "元", "况", "今", "集", "温",
43072 "传", "土", "许", "步", "群", "广", "石", "记", "需", "段",
43073 "研", "界", "拉", "林", "律", "叫", "且", "究", "观", "越",
43074 "织", "装", "影", "算", "低", "持", "音", "众", "书", "布",
43075 "复", "容", "儿", "须", "际", "商", "非", "验", "连", "断",
43076 "深", "难", "近", "矿", "千", "周", "委", "素", "技", "备",
43077 "半", "办", "青", "省", "列", "习", "响", "约", "支", "般",
43078 "史", "感", "劳", "便", "团", "往", "酸", "历", "市", "克",
43079 "何", "除", "消", "构", "府", "称", "太", "准", "精", "值",
43080 "号", "率", "族", "维", "划", "选", "标", "写", "存", "候",
43081 "毛", "亲", "快", "效", "斯", "院", "查", "江", "型", "眼",
43082 "王", "按", "格", "养", "易", "置", "派", "层", "片", "始",
43083 "却", "专", "状", "育", "厂", "京", "识", "适", "属", "圆",
43084 "包", "火", "住", "调", "满", "县", "局", "照", "参", "红",
43085 "细", "引", "听", "该", "铁", "价", "严", "首", "底", "液",
43086 "官", "德", "随", "病", "苏", "失", "尔", "死", "讲", "配",
43087 "女", "黄", "推", "显", "谈", "罪", "神", "艺", "呢", "席",
43088 "含", "企", "望", "密", "批", "营", "项", "防", "举", "球",
43089 "英", "氧", "势", "告", "李", "台", "落", "木", "帮", "轮",
43090 "破", "亚", "师", "围", "注", "远", "字", "材", "排", "供",
43091 "河", "态", "封", "另", "施", "减", "树", "溶", "怎", "止",
43092 "案", "言", "士", "均", "武", "固", "叶", "鱼", "波", "视",
43093 "仅", "费", "紧", "爱", "左", "章", "早", "朝", "害", "续",
43094 "轻", "服", "试", "食", "充", "兵", "源", "判", "护", "司",
43095 "足", "某", "练", "差", "致", "板", "田", "降", "黑", "犯",
43096 "负", "击", "范", "继", "兴", "似", "余", "坚", "曲", "输",
43097 "修", "故", "城", "夫", "够", "送", "笔", "船", "占", "右",
43098 "财", "吃", "富", "春", "职", "觉", "汉", "画", "功", "巴",
43099 "跟", "虽", "杂", "飞", "检", "吸", "助", "升", "阳", "互",
43100 "初", "创", "抗", "考", "投", "坏", "策", "古", "径", "换",
43101 "未", "跑", "留", "钢", "曾", "端", "责", "站", "简", "述",
43102 "钱", "副", "尽", "帝", "射", "草", "冲", "承", "独", "令",
43103 "限", "阿", "宣", "环", "双", "请", "超", "微", "让", "控",
43104 "州", "良", "轴", "找", "否", "纪", "益", "依", "优", "顶",
43105 "础", "载", "倒", "房", "突", "坐", "粉", "敌", "略", "客",
43106 "袁", "冷", "胜", "绝", "析", "块", "剂", "测", "丝", "协",
43107 "诉", "念", "陈", "仍", "罗", "盐", "友", "洋", "错", "苦",
43108 "夜", "刑", "移", "频", "逐", "靠", "混", "母", "短", "皮",
43109 "终", "聚", "汽", "村", "云", "哪", "既", "距", "卫", "停",
43110 "烈", "央", "察", "烧", "迅", "境", "若", "印", "洲", "刻",
43111 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
43112 "侵", "吧", "甲", "游", "久", "菜", "味", "旧", "模", "湖",
43113 "货", "损", "预", "阻", "毫", "普", "稳", "乙", "妈", "植",
43114 "息", "扩", "银", "语", "挥", "酒", "守", "拿", "序", "纸",
43115 "医", "缺", "雨", "吗", "针", "刘", "啊", "急", "唱", "误",
43116 "训", "愿", "审", "附", "获", "茶", "鲜", "粮", "斤", "孩",
43117 "脱", "硫", "肥", "善", "龙", "演", "父", "渐", "血", "欢",
43118 "械", "掌", "歌", "沙", "刚", "攻", "谓", "盾", "讨", "晚",
43119 "粒", "乱", "燃", "矛", "乎", "杀", "药", "宁", "鲁", "贵",
43120 "钟", "煤", "读", "班", "伯", "香", "介", "迫", "句", "丰",
43121 "培", "握", "兰", "担", "弦", "蛋", "沉", "假", "穿", "执",
43122 "答", "乐", "谁", "顺", "烟", "缩", "征", "脸", "喜", "松",
43123 "脚", "困", "异", "免", "背", "星", "福", "买", "染", "井",
43124 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "静", "补",
43125 "评", "翻", "肉", "践", "尼", "衣", "宽", "扬", "棉", "希",
43126 "伤", "操", "垂", "秋", "宜", "氢", "套", "督", "振", "架",
43127 "亮", "末", "宪", "庆", "编", "牛", "触", "映", "雷", "销",
43128 "诗", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
43129 "绿", "晶", "厚", "盟", "衡", "鸡", "孙", "延", "危", "胶",
43130 "屋", "乡", "临", "陆", "顾", "掉", "呀", "灯", "岁", "措",
43131 "束", "耐", "剧", "玉", "赵", "跳", "哥", "季", "课", "凯",
43132 "胡", "额", "款", "绍", "卷", "齐", "伟", "蒸", "殖", "永",
43133 "宗", "苗", "川", "炉", "岩", "弱", "零", "杨", "奏", "沿",
43134 "露", "杆", "探", "滑", "镇", "饭", "浓", "航", "怀", "赶",
43135 "库", "夺", "伊", "灵", "税", "途", "灭", "赛", "归", "召",
43136 "鼓", "播", "盘", "裁", "险", "康", "唯", "录", "菌", "纯",
43137 "借", "糖", "盖", "横", "符", "私", "努", "堂", "域", "枪",
43138 "润", "幅", "哈", "竟", "熟", "虫", "泽", "脑", "壤", "碳",
43139 "欧", "遍", "侧", "寨", "敢", "彻", "虑", "斜", "薄", "庭",
43140 "纳", "弹", "饲", "伸", "折", "麦", "湿", "暗", "荷", "瓦",
43141 "塞", "床", "筑", "恶", "户", "访", "塔", "奇", "透", "梁",
43142 "刀", "旋", "迹", "卡", "氯", "遇", "份", "毒", "泥", "退",
43143 "洗", "摆", "灰", "彩", "卖", "耗", "夏", "择", "忙", "铜",
43144 "献", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
43145 "阵", "阴", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
43146 "楼", "避", "谋", "吨", "野", "猪", "旗", "累", "偏", "典",
43147 "馆", "索", "秦", "脂", "潮", "爷", "豆", "忽", "托", "惊",
43148 "塑", "遗", "愈", "朱", "替", "纤", "粗", "倾", "尚", "痛",
43149 "楚", "谢", "奋", "购", "磨", "君", "池", "旁", "碎", "骨",
43150 "监", "捕", "弟", "暴", "割", "贯", "殊", "释", "词", "亡",
43151 "壁", "顿", "宝", "午", "尘", "闻", "揭", "炮", "残", "冬",
43152 "桥", "妇", "警", "综", "招", "吴", "付", "浮", "遭", "徐",
43153 "您", "摇", "谷", "赞", "箱", "隔", "订", "男", "吹", "园",
43154 "纷", "唐", "败", "宋", "玻", "巨", "耕", "坦", "荣", "闭",
43155 "湾", "键", "凡", "驻", "锅", "救", "恩", "剥", "凝", "碱",
43156 "齿", "截", "炼", "麻", "纺", "禁", "废", "盛", "版", "缓",
43157 "净", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
43158 "庄", "街", "藏", "姑", "贸", "腐", "奴", "啦", "惯", "乘",
43159 "伙", "恢", "匀", "纱", "扎", "辩", "耳", "彪", "臣", "亿",
43160 "璃", "抵", "脉", "秀", "萨", "俄", "网", "舞", "店", "喷",
43161 "纵", "寸", "汗", "挂", "洪", "贺", "闪", "柬", "爆", "烯",
43162 "津", "稻", "墙", "软", "勇", "像", "滚", "厘", "蒙", "芳",
43163 "肯", "坡", "柱", "荡", "腿", "仪", "旅", "尾", "轧", "冰",
43164 "贡", "登", "黎", "削", "钻", "勒", "逃", "障", "氨", "郭",
43165 "峰", "币", "港", "伏", "轨", "亩", "毕", "擦", "莫", "刺",
43166 "浪", "秘", "援", "株", "健", "售", "股", "岛", "甘", "泡",
43167 "睡", "童", "铸", "汤", "阀", "休", "汇", "舍", "牧", "绕",
43168 "炸", "哲", "磷", "绩", "朋", "淡", "尖", "启", "陷", "柴",
43169 "呈", "徒", "颜", "泪", "稍", "忘", "泵", "蓝", "拖", "洞",
43170 "授", "镜", "辛", "壮", "锋", "贫", "虚", "弯", "摩", "泰",
43171 "幼", "廷", "尊", "窗", "纲", "弄", "隶", "疑", "氏", "宫",
43172 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "违",
43173 "夹", "腰", "缘", "珠", "穷", "森", "枝", "竹", "沟", "催",
43174 "绳", "忆", "邦", "剩", "幸", "浆", "栏", "拥", "牙", "贮",
43175 "礼", "滤", "钠", "纹", "罢", "拍", "咱", "喊", "袖", "埃",
43176 "勤", "罚", "焦", "潜", "伍", "墨", "欲", "缝", "姓", "刊",
43177 "饱", "仿", "奖", "铝", "鬼", "丽", "跨", "默", "挖", "链",
43178 "扫", "喝", "袋", "炭", "污", "幕", "诸", "弧", "励", "梅",
43179 "奶", "洁", "灾", "舟", "鉴", "苯", "讼", "抱", "毁", "懂",
43180 "寒", "智", "埔", "寄", "届", "跃", "渡", "挑", "丹", "艰",
43181 "贝", "碰", "拔", "爹", "戴", "码", "梦", "芽", "熔", "赤",
43182 "渔", "哭", "敬", "颗", "奔", "铅", "仲", "虎", "稀", "妹",
43183 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "仓", "魏",
43184 "锐", "晓", "氮", "兼", "隐", "碍", "赫", "拨", "忠", "肃",
43185 "缸", "牵", "抢", "博", "巧", "壳", "兄", "杜", "讯", "诚",
43186 "碧", "祥", "柯", "页", "巡", "矩", "悲", "灌", "龄", "伦",
43187 "票", "寻", "桂", "铺", "圣", "恐", "恰", "郑", "趣", "抬",
43188 "荒", "腾", "贴", "柔", "滴", "猛", "阔", "辆", "妻", "填",
43189 "撤", "储", "签", "闹", "扰", "紫", "砂", "递", "戏", "吊",
43190 "陶", "伐", "喂", "疗", "瓶", "婆", "抚", "臂", "摸", "忍",
43191 "虾", "蜡", "邻", "胸", "巩", "挤", "偶", "弃", "槽", "劲",
43192 "乳", "邓", "吉", "仁", "烂", "砖", "租", "乌", "舰", "伴",
43193 "瓜", "浅", "丙", "暂", "燥", "橡", "柳", "迷", "暖", "牌",
43194 "秧", "胆", "详", "簧", "踏", "瓷", "谱", "呆", "宾", "糊",
43195 "洛", "辉", "愤", "竞", "隙", "怒", "粘", "乃", "绪", "肩",
43196 "籍", "敏", "涂", "熙", "皆", "侦", "悬", "掘", "享", "纠",
43197 "醒", "狂", "锁", "淀", "恨", "牲", "霸", "爬", "赏", "逆",
43198 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鸭",
43199 "趋", "凤", "晨", "畜", "辈", "秩", "卵", "署", "梯", "炎",
43200 "滩", "棋", "驱", "筛", "峡", "冒", "啥", "寿", "译", "浸",
43201 "泉", "帽", "迟", "硅", "疆", "贷", "漏", "稿", "冠", "嫩",
43202 "胁", "芯", "牢", "叛", "蚀", "奥", "鸣", "岭", "羊", "凭",
43203 "串", "塘", "绘", "酵", "融", "盆", "锡", "庙", "筹", "冻",
43204 "辅", "摄", "袭", "筋", "拒", "僚", "旱", "钾", "鸟", "漆",
43205 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韩", "逼", "扭",
43206 "侨", "凉", "挺", "碗", "栽", "炒", "杯", "患", "馏", "劝",
43207 "豪", "辽", "勃", "鸿", "旦", "吏", "拜", "狗", "埋", "辊",
43208 "掩", "饮", "搬", "骂", "辞", "勾", "扣", "估", "蒋", "绒",
43209 "雾", "丈", "朵", "姆", "拟", "宇", "辑", "陕", "雕", "偿",
43210 "蓄", "崇", "剪", "倡", "厅", "咬", "驶", "薯", "刷", "斥",
43211 "番", "赋", "奉", "佛", "浇", "漫", "曼", "扇", "钙", "桃",
43212 "扶", "仔", "返", "俗", "亏", "腔", "鞋", "棱", "覆", "框",
43213 "悄", "叔", "撞", "骗", "勘", "旺", "沸", "孤", "吐", "孟",
43214 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "胀", "谐", "抛",
43215 "霉", "桑", "岗", "嘛", "衰", "盗", "渗", "脏", "赖", "涌",
43216 "甜", "曹", "阅", "肌", "哩", "厉", "烃", "纬", "毅", "昨",
43217 "伪", "症", "煮", "叹", "钉", "搭", "茎", "笼", "酷", "偷",
43218 "弓", "锥", "恒", "杰", "坑", "鼻", "翼", "纶", "叙", "狱",
43219 "逮", "罐", "络", "棚", "抑", "膨", "蔬", "寺", "骤", "穆",
43220 "冶", "枯", "册", "尸", "凸", "绅", "坯", "牺", "焰", "轰",
43221 "欣", "晋", "瘦", "御", "锭", "锦", "丧", "旬", "锻", "垄",
43222 "搜", "扑", "邀", "亭", "酯", "迈", "舒", "脆", "酶", "闲",
43223 "忧", "酚", "顽", "羽", "涨", "卸", "仗", "陪", "辟", "惩",
43224 "杭", "姚", "肚", "捉", "飘", "漂", "昆", "欺", "吾", "郎",
43225 "烷", "汁", "呵", "饰", "萧", "雅", "邮", "迁", "燕", "撒",
43226 "姻", "赴", "宴", "烦", "债", "帐", "斑", "铃", "旨", "醇",
43227 "董", "饼", "雏", "姿", "拌", "傅", "腹", "妥", "揉", "贤",
43228 "拆", "歪", "葡", "胺", "丢", "浩", "徽", "昂", "垫", "挡",
43229 "览", "贪", "慰", "缴", "汪", "慌", "冯", "诺", "姜", "谊",
43230 "凶", "劣", "诬", "耀", "昏", "躺", "盈", "骑", "乔", "溪",
43231 "丛", "卢", "抹", "闷", "咨", "刮", "驾", "缆", "悟", "摘",
43232 "铒", "掷", "颇", "幻", "柄", "惠", "惨", "佳", "仇", "腊",
43233 "窝", "涤", "剑", "瞧", "堡", "泼", "葱", "罩", "霍", "捞",
43234 "胎", "苍", "滨", "俩", "捅", "湘", "砍", "霞", "邵", "萄",
43235 "疯", "淮", "遂", "熊", "粪", "烘", "宿", "档", "戈", "驳",
43236 "嫂", "裕", "徙", "箭", "捐", "肠", "撑", "晒", "辨", "殿",
43237 "莲", "摊", "搅", "酱", "屏", "疫", "哀", "蔡", "堵", "沫",
43238 "皱", "畅", "叠", "阁", "莱", "敲", "辖", "钩", "痕", "坝",
43239 "巷", "饿", "祸", "丘", "玄", "溜", "曰", "逻", "彭", "尝",
43240 "卿", "妨", "艇", "吞", "韦", "怨", "矮", "歇" ]
43242 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43243 WORDLISTS["chinese_traditional"] = [
43244 "的", "一", "是", "在", "不", "了", "有", "和", "人", "這",
43245 "中", "大", "為", "上", "個", "國", "我", "以", "要", "他",
43246 "時", "來", "用", "們", "生", "到", "作", "地", "於", "出",
43247 "就", "分", "對", "成", "會", "可", "主", "發", "年", "動",
43248 "同", "工", "也", "能", "下", "過", "子", "說", "產", "種",
43249 "面", "而", "方", "後", "多", "定", "行", "學", "法", "所",
43250 "民", "得", "經", "十", "三", "之", "進", "著", "等", "部",
43251 "度", "家", "電", "力", "裡", "如", "水", "化", "高", "自",
43252 "二", "理", "起", "小", "物", "現", "實", "加", "量", "都",
43253 "兩", "體", "制", "機", "當", "使", "點", "從", "業", "本",
43254 "去", "把", "性", "好", "應", "開", "它", "合", "還", "因",
43255 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
43256 "那", "社", "義", "事", "平", "形", "相", "全", "表", "間",
43257 "樣", "與", "關", "各", "重", "新", "線", "內", "數", "正",
43258 "心", "反", "你", "明", "看", "原", "又", "麼", "利", "比",
43259 "或", "但", "質", "氣", "第", "向", "道", "命", "此", "變",
43260 "條", "只", "沒", "結", "解", "問", "意", "建", "月", "公",
43261 "無", "系", "軍", "很", "情", "者", "最", "立", "代", "想",
43262 "已", "通", "並", "提", "直", "題", "黨", "程", "展", "五",
43263 "果", "料", "象", "員", "革", "位", "入", "常", "文", "總",
43264 "次", "品", "式", "活", "設", "及", "管", "特", "件", "長",
43265 "求", "老", "頭", "基", "資", "邊", "流", "路", "級", "少",
43266 "圖", "山", "統", "接", "知", "較", "將", "組", "見", "計",
43267 "別", "她", "手", "角", "期", "根", "論", "運", "農", "指",
43268 "幾", "九", "區", "強", "放", "決", "西", "被", "幹", "做",
43269 "必", "戰", "先", "回", "則", "任", "取", "據", "處", "隊",
43270 "南", "給", "色", "光", "門", "即", "保", "治", "北", "造",
43271 "百", "規", "熱", "領", "七", "海", "口", "東", "導", "器",
43272 "壓", "志", "世", "金", "增", "爭", "濟", "階", "油", "思",
43273 "術", "極", "交", "受", "聯", "什", "認", "六", "共", "權",
43274 "收", "證", "改", "清", "美", "再", "採", "轉", "更", "單",
43275 "風", "切", "打", "白", "教", "速", "花", "帶", "安", "場",
43276 "身", "車", "例", "真", "務", "具", "萬", "每", "目", "至",
43277 "達", "走", "積", "示", "議", "聲", "報", "鬥", "完", "類",
43278 "八", "離", "華", "名", "確", "才", "科", "張", "信", "馬",
43279 "節", "話", "米", "整", "空", "元", "況", "今", "集", "溫",
43280 "傳", "土", "許", "步", "群", "廣", "石", "記", "需", "段",
43281 "研", "界", "拉", "林", "律", "叫", "且", "究", "觀", "越",
43282 "織", "裝", "影", "算", "低", "持", "音", "眾", "書", "布",
43283 "复", "容", "兒", "須", "際", "商", "非", "驗", "連", "斷",
43284 "深", "難", "近", "礦", "千", "週", "委", "素", "技", "備",
43285 "半", "辦", "青", "省", "列", "習", "響", "約", "支", "般",
43286 "史", "感", "勞", "便", "團", "往", "酸", "歷", "市", "克",
43287 "何", "除", "消", "構", "府", "稱", "太", "準", "精", "值",
43288 "號", "率", "族", "維", "劃", "選", "標", "寫", "存", "候",
43289 "毛", "親", "快", "效", "斯", "院", "查", "江", "型", "眼",
43290 "王", "按", "格", "養", "易", "置", "派", "層", "片", "始",
43291 "卻", "專", "狀", "育", "廠", "京", "識", "適", "屬", "圓",
43292 "包", "火", "住", "調", "滿", "縣", "局", "照", "參", "紅",
43293 "細", "引", "聽", "該", "鐵", "價", "嚴", "首", "底", "液",
43294 "官", "德", "隨", "病", "蘇", "失", "爾", "死", "講", "配",
43295 "女", "黃", "推", "顯", "談", "罪", "神", "藝", "呢", "席",
43296 "含", "企", "望", "密", "批", "營", "項", "防", "舉", "球",
43297 "英", "氧", "勢", "告", "李", "台", "落", "木", "幫", "輪",
43298 "破", "亞", "師", "圍", "注", "遠", "字", "材", "排", "供",
43299 "河", "態", "封", "另", "施", "減", "樹", "溶", "怎", "止",
43300 "案", "言", "士", "均", "武", "固", "葉", "魚", "波", "視",
43301 "僅", "費", "緊", "愛", "左", "章", "早", "朝", "害", "續",
43302 "輕", "服", "試", "食", "充", "兵", "源", "判", "護", "司",
43303 "足", "某", "練", "差", "致", "板", "田", "降", "黑", "犯",
43304 "負", "擊", "范", "繼", "興", "似", "餘", "堅", "曲", "輸",
43305 "修", "故", "城", "夫", "夠", "送", "筆", "船", "佔", "右",
43306 "財", "吃", "富", "春", "職", "覺", "漢", "畫", "功", "巴",
43307 "跟", "雖", "雜", "飛", "檢", "吸", "助", "昇", "陽", "互",
43308 "初", "創", "抗", "考", "投", "壞", "策", "古", "徑", "換",
43309 "未", "跑", "留", "鋼", "曾", "端", "責", "站", "簡", "述",
43310 "錢", "副", "盡", "帝", "射", "草", "衝", "承", "獨", "令",
43311 "限", "阿", "宣", "環", "雙", "請", "超", "微", "讓", "控",
43312 "州", "良", "軸", "找", "否", "紀", "益", "依", "優", "頂",
43313 "礎", "載", "倒", "房", "突", "坐", "粉", "敵", "略", "客",
43314 "袁", "冷", "勝", "絕", "析", "塊", "劑", "測", "絲", "協",
43315 "訴", "念", "陳", "仍", "羅", "鹽", "友", "洋", "錯", "苦",
43316 "夜", "刑", "移", "頻", "逐", "靠", "混", "母", "短", "皮",
43317 "終", "聚", "汽", "村", "雲", "哪", "既", "距", "衛", "停",
43318 "烈", "央", "察", "燒", "迅", "境", "若", "印", "洲", "刻",
43319 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
43320 "侵", "吧", "甲", "遊", "久", "菜", "味", "舊", "模", "湖",
43321 "貨", "損", "預", "阻", "毫", "普", "穩", "乙", "媽", "植",
43322 "息", "擴", "銀", "語", "揮", "酒", "守", "拿", "序", "紙",
43323 "醫", "缺", "雨", "嗎", "針", "劉", "啊", "急", "唱", "誤",
43324 "訓", "願", "審", "附", "獲", "茶", "鮮", "糧", "斤", "孩",
43325 "脫", "硫", "肥", "善", "龍", "演", "父", "漸", "血", "歡",
43326 "械", "掌", "歌", "沙", "剛", "攻", "謂", "盾", "討", "晚",
43327 "粒", "亂", "燃", "矛", "乎", "殺", "藥", "寧", "魯", "貴",
43328 "鐘", "煤", "讀", "班", "伯", "香", "介", "迫", "句", "豐",
43329 "培", "握", "蘭", "擔", "弦", "蛋", "沉", "假", "穿", "執",
43330 "答", "樂", "誰", "順", "煙", "縮", "徵", "臉", "喜", "松",
43331 "腳", "困", "異", "免", "背", "星", "福", "買", "染", "井",
43332 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "靜", "補",
43333 "評", "翻", "肉", "踐", "尼", "衣", "寬", "揚", "棉", "希",
43334 "傷", "操", "垂", "秋", "宜", "氫", "套", "督", "振", "架",
43335 "亮", "末", "憲", "慶", "編", "牛", "觸", "映", "雷", "銷",
43336 "詩", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
43337 "綠", "晶", "厚", "盟", "衡", "雞", "孫", "延", "危", "膠",
43338 "屋", "鄉", "臨", "陸", "顧", "掉", "呀", "燈", "歲", "措",
43339 "束", "耐", "劇", "玉", "趙", "跳", "哥", "季", "課", "凱",
43340 "胡", "額", "款", "紹", "卷", "齊", "偉", "蒸", "殖", "永",
43341 "宗", "苗", "川", "爐", "岩", "弱", "零", "楊", "奏", "沿",
43342 "露", "桿", "探", "滑", "鎮", "飯", "濃", "航", "懷", "趕",
43343 "庫", "奪", "伊", "靈", "稅", "途", "滅", "賽", "歸", "召",
43344 "鼓", "播", "盤", "裁", "險", "康", "唯", "錄", "菌", "純",
43345 "借", "糖", "蓋", "橫", "符", "私", "努", "堂", "域", "槍",
43346 "潤", "幅", "哈", "竟", "熟", "蟲", "澤", "腦", "壤", "碳",
43347 "歐", "遍", "側", "寨", "敢", "徹", "慮", "斜", "薄", "庭",
43348 "納", "彈", "飼", "伸", "折", "麥", "濕", "暗", "荷", "瓦",
43349 "塞", "床", "築", "惡", "戶", "訪", "塔", "奇", "透", "梁",
43350 "刀", "旋", "跡", "卡", "氯", "遇", "份", "毒", "泥", "退",
43351 "洗", "擺", "灰", "彩", "賣", "耗", "夏", "擇", "忙", "銅",
43352 "獻", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
43353 "陣", "陰", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
43354 "樓", "避", "謀", "噸", "野", "豬", "旗", "累", "偏", "典",
43355 "館", "索", "秦", "脂", "潮", "爺", "豆", "忽", "托", "驚",
43356 "塑", "遺", "愈", "朱", "替", "纖", "粗", "傾", "尚", "痛",
43357 "楚", "謝", "奮", "購", "磨", "君", "池", "旁", "碎", "骨",
43358 "監", "捕", "弟", "暴", "割", "貫", "殊", "釋", "詞", "亡",
43359 "壁", "頓", "寶", "午", "塵", "聞", "揭", "炮", "殘", "冬",
43360 "橋", "婦", "警", "綜", "招", "吳", "付", "浮", "遭", "徐",
43361 "您", "搖", "谷", "贊", "箱", "隔", "訂", "男", "吹", "園",
43362 "紛", "唐", "敗", "宋", "玻", "巨", "耕", "坦", "榮", "閉",
43363 "灣", "鍵", "凡", "駐", "鍋", "救", "恩", "剝", "凝", "鹼",
43364 "齒", "截", "煉", "麻", "紡", "禁", "廢", "盛", "版", "緩",
43365 "淨", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
43366 "莊", "街", "藏", "姑", "貿", "腐", "奴", "啦", "慣", "乘",
43367 "夥", "恢", "勻", "紗", "扎", "辯", "耳", "彪", "臣", "億",
43368 "璃", "抵", "脈", "秀", "薩", "俄", "網", "舞", "店", "噴",
43369 "縱", "寸", "汗", "掛", "洪", "賀", "閃", "柬", "爆", "烯",
43370 "津", "稻", "牆", "軟", "勇", "像", "滾", "厘", "蒙", "芳",
43371 "肯", "坡", "柱", "盪", "腿", "儀", "旅", "尾", "軋", "冰",
43372 "貢", "登", "黎", "削", "鑽", "勒", "逃", "障", "氨", "郭",
43373 "峰", "幣", "港", "伏", "軌", "畝", "畢", "擦", "莫", "刺",
43374 "浪", "秘", "援", "株", "健", "售", "股", "島", "甘", "泡",
43375 "睡", "童", "鑄", "湯", "閥", "休", "匯", "舍", "牧", "繞",
43376 "炸", "哲", "磷", "績", "朋", "淡", "尖", "啟", "陷", "柴",
43377 "呈", "徒", "顏", "淚", "稍", "忘", "泵", "藍", "拖", "洞",
43378 "授", "鏡", "辛", "壯", "鋒", "貧", "虛", "彎", "摩", "泰",
43379 "幼", "廷", "尊", "窗", "綱", "弄", "隸", "疑", "氏", "宮",
43380 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "違",
43381 "夾", "腰", "緣", "珠", "窮", "森", "枝", "竹", "溝", "催",
43382 "繩", "憶", "邦", "剩", "幸", "漿", "欄", "擁", "牙", "貯",
43383 "禮", "濾", "鈉", "紋", "罷", "拍", "咱", "喊", "袖", "埃",
43384 "勤", "罰", "焦", "潛", "伍", "墨", "欲", "縫", "姓", "刊",
43385 "飽", "仿", "獎", "鋁", "鬼", "麗", "跨", "默", "挖", "鏈",
43386 "掃", "喝", "袋", "炭", "污", "幕", "諸", "弧", "勵", "梅",
43387 "奶", "潔", "災", "舟", "鑑", "苯", "訟", "抱", "毀", "懂",
43388 "寒", "智", "埔", "寄", "屆", "躍", "渡", "挑", "丹", "艱",
43389 "貝", "碰", "拔", "爹", "戴", "碼", "夢", "芽", "熔", "赤",
43390 "漁", "哭", "敬", "顆", "奔", "鉛", "仲", "虎", "稀", "妹",
43391 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "倉", "魏",
43392 "銳", "曉", "氮", "兼", "隱", "礙", "赫", "撥", "忠", "肅",
43393 "缸", "牽", "搶", "博", "巧", "殼", "兄", "杜", "訊", "誠",
43394 "碧", "祥", "柯", "頁", "巡", "矩", "悲", "灌", "齡", "倫",
43395 "票", "尋", "桂", "鋪", "聖", "恐", "恰", "鄭", "趣", "抬",
43396 "荒", "騰", "貼", "柔", "滴", "猛", "闊", "輛", "妻", "填",
43397 "撤", "儲", "簽", "鬧", "擾", "紫", "砂", "遞", "戲", "吊",
43398 "陶", "伐", "餵", "療", "瓶", "婆", "撫", "臂", "摸", "忍",
43399 "蝦", "蠟", "鄰", "胸", "鞏", "擠", "偶", "棄", "槽", "勁",
43400 "乳", "鄧", "吉", "仁", "爛", "磚", "租", "烏", "艦", "伴",
43401 "瓜", "淺", "丙", "暫", "燥", "橡", "柳", "迷", "暖", "牌",
43402 "秧", "膽", "詳", "簧", "踏", "瓷", "譜", "呆", "賓", "糊",
43403 "洛", "輝", "憤", "競", "隙", "怒", "粘", "乃", "緒", "肩",
43404 "籍", "敏", "塗", "熙", "皆", "偵", "懸", "掘", "享", "糾",
43405 "醒", "狂", "鎖", "淀", "恨", "牲", "霸", "爬", "賞", "逆",
43406 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鴨",
43407 "趨", "鳳", "晨", "畜", "輩", "秩", "卵", "署", "梯", "炎",
43408 "灘", "棋", "驅", "篩", "峽", "冒", "啥", "壽", "譯", "浸",
43409 "泉", "帽", "遲", "矽", "疆", "貸", "漏", "稿", "冠", "嫩",
43410 "脅", "芯", "牢", "叛", "蝕", "奧", "鳴", "嶺", "羊", "憑",
43411 "串", "塘", "繪", "酵", "融", "盆", "錫", "廟", "籌", "凍",
43412 "輔", "攝", "襲", "筋", "拒", "僚", "旱", "鉀", "鳥", "漆",
43413 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韓", "逼", "扭",
43414 "僑", "涼", "挺", "碗", "栽", "炒", "杯", "患", "餾", "勸",
43415 "豪", "遼", "勃", "鴻", "旦", "吏", "拜", "狗", "埋", "輥",
43416 "掩", "飲", "搬", "罵", "辭", "勾", "扣", "估", "蔣", "絨",
43417 "霧", "丈", "朵", "姆", "擬", "宇", "輯", "陝", "雕", "償",
43418 "蓄", "崇", "剪", "倡", "廳", "咬", "駛", "薯", "刷", "斥",
43419 "番", "賦", "奉", "佛", "澆", "漫", "曼", "扇", "鈣", "桃",
43420 "扶", "仔", "返", "俗", "虧", "腔", "鞋", "棱", "覆", "框",
43421 "悄", "叔", "撞", "騙", "勘", "旺", "沸", "孤", "吐", "孟",
43422 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "脹", "諧", "拋",
43423 "黴", "桑", "崗", "嘛", "衰", "盜", "滲", "臟", "賴", "湧",
43424 "甜", "曹", "閱", "肌", "哩", "厲", "烴", "緯", "毅", "昨",
43425 "偽", "症", "煮", "嘆", "釘", "搭", "莖", "籠", "酷", "偷",
43426 "弓", "錐", "恆", "傑", "坑", "鼻", "翼", "綸", "敘", "獄",
43427 "逮", "罐", "絡", "棚", "抑", "膨", "蔬", "寺", "驟", "穆",
43428 "冶", "枯", "冊", "屍", "凸", "紳", "坯", "犧", "焰", "轟",
43429 "欣", "晉", "瘦", "禦", "錠", "錦", "喪", "旬", "鍛", "壟",
43430 "搜", "撲", "邀", "亭", "酯", "邁", "舒", "脆", "酶", "閒",
43431 "憂", "酚", "頑", "羽", "漲", "卸", "仗", "陪", "闢", "懲",
43432 "杭", "姚", "肚", "捉", "飄", "漂", "昆", "欺", "吾", "郎",
43433 "烷", "汁", "呵", "飾", "蕭", "雅", "郵", "遷", "燕", "撒",
43434 "姻", "赴", "宴", "煩", "債", "帳", "斑", "鈴", "旨", "醇",
43435 "董", "餅", "雛", "姿", "拌", "傅", "腹", "妥", "揉", "賢",
43436 "拆", "歪", "葡", "胺", "丟", "浩", "徽", "昂", "墊", "擋",
43437 "覽", "貪", "慰", "繳", "汪", "慌", "馮", "諾", "姜", "誼",
43438 "兇", "劣", "誣", "耀", "昏", "躺", "盈", "騎", "喬", "溪",
43439 "叢", "盧", "抹", "悶", "諮", "刮", "駕", "纜", "悟", "摘",
43440 "鉺", "擲", "頗", "幻", "柄", "惠", "慘", "佳", "仇", "臘",
43441 "窩", "滌", "劍", "瞧", "堡", "潑", "蔥", "罩", "霍", "撈",
43442 "胎", "蒼", "濱", "倆", "捅", "湘", "砍", "霞", "邵", "萄",
43443 "瘋", "淮", "遂", "熊", "糞", "烘", "宿", "檔", "戈", "駁",
43444 "嫂", "裕", "徙", "箭", "捐", "腸", "撐", "曬", "辨", "殿",
43445 "蓮", "攤", "攪", "醬", "屏", "疫", "哀", "蔡", "堵", "沫",
43446 "皺", "暢", "疊", "閣", "萊", "敲", "轄", "鉤", "痕", "壩",
43447 "巷", "餓", "禍", "丘", "玄", "溜", "曰", "邏", "彭", "嘗",
43448 "卿", "妨", "艇", "吞", "韋", "怨", "矮", "歇" ]
43450 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43451 WORDLISTS["french"] = [
43452 "abaisser", "abandon", "abdiquer", "abeille", "abolir", "aborder", "aboutir", "aboyer", "abrasif", "abreuver",
43453 "abriter", "abroger", "abrupt", "absence", "absolu", "absurde", "abusif", "abyssal", "académie", "acajou",
43454 "acarien", "accabler", "accepter", "acclamer", "accolade", "accroche", "accuser", "acerbe", "achat", "acheter",
43455 "aciduler", "acier", "acompte", "acquérir", "acronyme", "acteur", "actif", "actuel", "adepte", "adéquat",
43456 "adhésif", "adjectif", "adjuger", "admettre", "admirer", "adopter", "adorer", "adoucir", "adresse", "adroit",
43457 "adulte", "adverbe", "aérer", "aéronef", "affaire", "affecter", "affiche", "affreux", "affubler", "agacer",
43458 "agencer", "agile", "agiter", "agrafer", "agréable", "agrume", "aider", "aiguille", "ailier", "aimable",
43459 "aisance", "ajouter", "ajuster", "alarmer", "alchimie", "alerte", "algèbre", "algue", "aliéner", "aliment",
43460 "alléger", "alliage", "allouer", "allumer", "alourdir", "alpaga", "altesse", "alvéole", "amateur", "ambigu",
43461 "ambre", "aménager", "amertume", "amidon", "amiral", "amorcer", "amour", "amovible", "amphibie", "ampleur",
43462 "amusant", "analyse", "anaphore", "anarchie", "anatomie", "ancien", "anéantir", "angle", "angoisse", "anguleux",
43463 "animal", "annexer", "annonce", "annuel", "anodin", "anomalie", "anonyme", "anormal", "antenne", "antidote",
43464 "anxieux", "apaiser", "apéritif", "aplanir", "apologie", "appareil", "appeler", "apporter", "appuyer", "aquarium",
43465 "aqueduc", "arbitre", "arbuste", "ardeur", "ardoise", "argent", "arlequin", "armature", "armement", "armoire",
43466 "armure", "arpenter", "arracher", "arriver", "arroser", "arsenic", "artériel", "article", "aspect", "asphalte",
43467 "aspirer", "assaut", "asservir", "assiette", "associer", "assurer", "asticot", "astre", "astuce", "atelier",
43468 "atome", "atrium", "atroce", "attaque", "attentif", "attirer", "attraper", "aubaine", "auberge", "audace",
43469 "audible", "augurer", "aurore", "automne", "autruche", "avaler", "avancer", "avarice", "avenir", "averse",
43470 "aveugle", "aviateur", "avide", "avion", "aviser", "avoine", "avouer", "avril", "axial", "axiome",
43471 "badge", "bafouer", "bagage", "baguette", "baignade", "balancer", "balcon", "baleine", "balisage", "bambin",
43472 "bancaire", "bandage", "banlieue", "bannière", "banquier", "barbier", "baril", "baron", "barque", "barrage",
43473 "bassin", "bastion", "bataille", "bateau", "batterie", "baudrier", "bavarder", "belette", "bélier", "belote",
43474 "bénéfice", "berceau", "berger", "berline", "bermuda", "besace", "besogne", "bétail", "beurre", "biberon",
43475 "bicycle", "bidule", "bijou", "bilan", "bilingue", "billard", "binaire", "biologie", "biopsie", "biotype",
43476 "biscuit", "bison", "bistouri", "bitume", "bizarre", "blafard", "blague", "blanchir", "blessant", "blinder",
43477 "blond", "bloquer", "blouson", "bobard", "bobine", "boire", "boiser", "bolide", "bonbon", "bondir",
43478 "bonheur", "bonifier", "bonus", "bordure", "borne", "botte", "boucle", "boueux", "bougie", "boulon",
43479 "bouquin", "bourse", "boussole", "boutique", "boxeur", "branche", "brasier", "brave", "brebis", "brèche",
43480 "breuvage", "bricoler", "brigade", "brillant", "brioche", "brique", "brochure", "broder", "bronzer", "brousse",
43481 "broyeur", "brume", "brusque", "brutal", "bruyant", "buffle", "buisson", "bulletin", "bureau", "burin",
43482 "bustier", "butiner", "butoir", "buvable", "buvette", "cabanon", "cabine", "cachette", "cadeau", "cadre",
43483 "caféine", "caillou", "caisson", "calculer", "calepin", "calibre", "calmer", "calomnie", "calvaire", "camarade",
43484 "caméra", "camion", "campagne", "canal", "caneton", "canon", "cantine", "canular", "capable", "caporal",
43485 "caprice", "capsule", "capter", "capuche", "carabine", "carbone", "caresser", "caribou", "carnage", "carotte",
43486 "carreau", "carton", "cascade", "casier", "casque", "cassure", "causer", "caution", "cavalier", "caverne",
43487 "caviar", "cédille", "ceinture", "céleste", "cellule", "cendrier", "censurer", "central", "cercle", "cérébral",
43488 "cerise", "cerner", "cerveau", "cesser", "chagrin", "chaise", "chaleur", "chambre", "chance", "chapitre",
43489 "charbon", "chasseur", "chaton", "chausson", "chavirer", "chemise", "chenille", "chéquier", "chercher", "cheval",
43490 "chien", "chiffre", "chignon", "chimère", "chiot", "chlorure", "chocolat", "choisir", "chose", "chouette",
43491 "chrome", "chute", "cigare", "cigogne", "cimenter", "cinéma", "cintrer", "circuler", "cirer", "cirque",
43492 "citerne", "citoyen", "citron", "civil", "clairon", "clameur", "claquer", "classe", "clavier", "client",
43493 "cligner", "climat", "clivage", "cloche", "clonage", "cloporte", "cobalt", "cobra", "cocasse", "cocotier",
43494 "coder", "codifier", "coffre", "cogner", "cohésion", "coiffer", "coincer", "colère", "colibri", "colline",
43495 "colmater", "colonel", "combat", "comédie", "commande", "compact", "concert", "conduire", "confier", "congeler",
43496 "connoter", "consonne", "contact", "convexe", "copain", "copie", "corail", "corbeau", "cordage", "corniche",
43497 "corpus", "correct", "cortège", "cosmique", "costume", "coton", "coude", "coupure", "courage", "couteau",
43498 "couvrir", "coyote", "crabe", "crainte", "cravate", "crayon", "créature", "créditer", "crémeux", "creuser",
43499 "crevette", "cribler", "crier", "cristal", "critère", "croire", "croquer", "crotale", "crucial", "cruel",
43500 "crypter", "cubique", "cueillir", "cuillère", "cuisine", "cuivre", "culminer", "cultiver", "cumuler", "cupide",
43501 "curatif", "curseur", "cyanure", "cycle", "cylindre", "cynique", "daigner", "damier", "danger", "danseur",
43502 "dauphin", "débattre", "débiter", "déborder", "débrider", "débutant", "décaler", "décembre", "déchirer", "décider",
43503 "déclarer", "décorer", "décrire", "décupler", "dédale", "déductif", "déesse", "défensif", "défiler", "défrayer",
43504 "dégager", "dégivrer", "déglutir", "dégrafer", "déjeuner", "délice", "déloger", "demander", "demeurer", "démolir",
43505 "dénicher", "dénouer", "dentelle", "dénuder", "départ", "dépenser", "déphaser", "déplacer", "déposer", "déranger",
43506 "dérober", "désastre", "descente", "désert", "désigner", "désobéir", "dessiner", "destrier", "détacher", "détester",
43507 "détourer", "détresse", "devancer", "devenir", "deviner", "devoir", "diable", "dialogue", "diamant", "dicter",
43508 "différer", "digérer", "digital", "digne", "diluer", "dimanche", "diminuer", "dioxyde", "directif", "diriger",
43509 "discuter", "disposer", "dissiper", "distance", "divertir", "diviser", "docile", "docteur", "dogme", "doigt",
43510 "domaine", "domicile", "dompter", "donateur", "donjon", "donner", "dopamine", "dortoir", "dorure", "dosage",
43511 "doseur", "dossier", "dotation", "douanier", "double", "douceur", "douter", "doyen", "dragon", "draper",
43512 "dresser", "dribbler", "droiture", "duperie", "duplexe", "durable", "durcir", "dynastie", "éblouir", "écarter",
43513 "écharpe", "échelle", "éclairer", "éclipse", "éclore", "écluse", "école", "économie", "écorce", "écouter",
43514 "écraser", "écrémer", "écrivain", "écrou", "écume", "écureuil", "édifier", "éduquer", "effacer", "effectif",
43515 "effigie", "effort", "effrayer", "effusion", "égaliser", "égarer", "éjecter", "élaborer", "élargir", "électron",
43516 "élégant", "éléphant", "élève", "éligible", "élitisme", "éloge", "élucider", "éluder", "emballer", "embellir",
43517 "embryon", "émeraude", "émission", "emmener", "émotion", "émouvoir", "empereur", "employer", "emporter", "emprise",
43518 "émulsion", "encadrer", "enchère", "enclave", "encoche", "endiguer", "endosser", "endroit", "enduire", "énergie",
43519 "enfance", "enfermer", "enfouir", "engager", "engin", "englober", "énigme", "enjamber", "enjeu", "enlever",
43520 "ennemi", "ennuyeux", "enrichir", "enrobage", "enseigne", "entasser", "entendre", "entier", "entourer", "entraver",
43521 "énumérer", "envahir", "enviable", "envoyer", "enzyme", "éolien", "épaissir", "épargne", "épatant", "épaule",
43522 "épicerie", "épidémie", "épier", "épilogue", "épine", "épisode", "épitaphe", "époque", "épreuve", "éprouver",
43523 "épuisant", "équerre", "équipe", "ériger", "érosion", "erreur", "éruption", "escalier", "espadon", "espèce",
43524 "espiègle", "espoir", "esprit", "esquiver", "essayer", "essence", "essieu", "essorer", "estime", "estomac",
43525 "estrade", "étagère", "étaler", "étanche", "étatique", "éteindre", "étendoir", "éternel", "éthanol", "éthique",
43526 "ethnie", "étirer", "étoffer", "étoile", "étonnant", "étourdir", "étrange", "étroit", "étude", "euphorie",
43527 "évaluer", "évasion", "éventail", "évidence", "éviter", "évolutif", "évoquer", "exact", "exagérer", "exaucer",
43528 "exceller", "excitant", "exclusif", "excuse", "exécuter", "exemple", "exercer", "exhaler", "exhorter", "exigence",
43529 "exiler", "exister", "exotique", "expédier", "explorer", "exposer", "exprimer", "exquis", "extensif", "extraire",
43530 "exulter", "fable", "fabuleux", "facette", "facile", "facture", "faiblir", "falaise", "fameux", "famille",
43531 "farceur", "farfelu", "farine", "farouche", "fasciner", "fatal", "fatigue", "faucon", "fautif", "faveur",
43532 "favori", "fébrile", "féconder", "fédérer", "félin", "femme", "fémur", "fendoir", "féodal", "fermer",
43533 "féroce", "ferveur", "festival", "feuille", "feutre", "février", "fiasco", "ficeler", "fictif", "fidèle",
43534 "figure", "filature", "filetage", "filière", "filleul", "filmer", "filou", "filtrer", "financer", "finir",
43535 "fiole", "firme", "fissure", "fixer", "flairer", "flamme", "flasque", "flatteur", "fléau", "flèche",
43536 "fleur", "flexion", "flocon", "flore", "fluctuer", "fluide", "fluvial", "folie", "fonderie", "fongible",
43537 "fontaine", "forcer", "forgeron", "formuler", "fortune", "fossile", "foudre", "fougère", "fouiller", "foulure",
43538 "fourmi", "fragile", "fraise", "franchir", "frapper", "frayeur", "frégate", "freiner", "frelon", "frémir",
43539 "frénésie", "frère", "friable", "friction", "frisson", "frivole", "froid", "fromage", "frontal", "frotter",
43540 "fruit", "fugitif", "fuite", "fureur", "furieux", "furtif", "fusion", "futur", "gagner", "galaxie",
43541 "galerie", "gambader", "garantir", "gardien", "garnir", "garrigue", "gazelle", "gazon", "géant", "gélatine",
43542 "gélule", "gendarme", "général", "génie", "genou", "gentil", "géologie", "géomètre", "géranium", "germe",
43543 "gestuel", "geyser", "gibier", "gicler", "girafe", "givre", "glace", "glaive", "glisser", "globe",
43544 "gloire", "glorieux", "golfeur", "gomme", "gonfler", "gorge", "gorille", "goudron", "gouffre", "goulot",
43545 "goupille", "gourmand", "goutte", "graduel", "graffiti", "graine", "grand", "grappin", "gratuit", "gravir",
43546 "grenat", "griffure", "griller", "grimper", "grogner", "gronder", "grotte", "groupe", "gruger", "grutier",
43547 "gruyère", "guépard", "guerrier", "guide", "guimauve", "guitare", "gustatif", "gymnaste", "gyrostat", "habitude",
43548 "hachoir", "halte", "hameau", "hangar", "hanneton", "haricot", "harmonie", "harpon", "hasard", "hélium",
43549 "hématome", "herbe", "hérisson", "hermine", "héron", "hésiter", "heureux", "hiberner", "hibou", "hilarant",
43550 "histoire", "hiver", "homard", "hommage", "homogène", "honneur", "honorer", "honteux", "horde", "horizon",
43551 "horloge", "hormone", "horrible", "houleux", "housse", "hublot", "huileux", "humain", "humble", "humide",
43552 "humour", "hurler", "hydromel", "hygiène", "hymne", "hypnose", "idylle", "ignorer", "iguane", "illicite",
43553 "illusion", "image", "imbiber", "imiter", "immense", "immobile", "immuable", "impact", "impérial", "implorer",
43554 "imposer", "imprimer", "imputer", "incarner", "incendie", "incident", "incliner", "incolore", "indexer", "indice",
43555 "inductif", "inédit", "ineptie", "inexact", "infini", "infliger", "informer", "infusion", "ingérer", "inhaler",
43556 "inhiber", "injecter", "injure", "innocent", "inoculer", "inonder", "inscrire", "insecte", "insigne", "insolite",
43557 "inspirer", "instinct", "insulter", "intact", "intense", "intime", "intrigue", "intuitif", "inutile", "invasion",
43558 "inventer", "inviter", "invoquer", "ironique", "irradier", "irréel", "irriter", "isoler", "ivoire", "ivresse",
43559 "jaguar", "jaillir", "jambe", "janvier", "jardin", "jauger", "jaune", "javelot", "jetable", "jeton",
43560 "jeudi", "jeunesse", "joindre", "joncher", "jongler", "joueur", "jouissif", "journal", "jovial", "joyau",
43561 "joyeux", "jubiler", "jugement", "junior", "jupon", "juriste", "justice", "juteux", "juvénile", "kayak",
43562 "kimono", "kiosque", "label", "labial", "labourer", "lacérer", "lactose", "lagune", "laine", "laisser",
43563 "laitier", "lambeau", "lamelle", "lampe", "lanceur", "langage", "lanterne", "lapin", "largeur", "larme",
43564 "laurier", "lavabo", "lavoir", "lecture", "légal", "léger", "légume", "lessive", "lettre", "levier",
43565 "lexique", "lézard", "liasse", "libérer", "libre", "licence", "licorne", "liège", "lièvre", "ligature",
43566 "ligoter", "ligue", "limer", "limite", "limonade", "limpide", "linéaire", "lingot", "lionceau", "liquide",
43567 "lisière", "lister", "lithium", "litige", "littoral", "livreur", "logique", "lointain", "loisir", "lombric",
43568 "loterie", "louer", "lourd", "loutre", "louve", "loyal", "lubie", "lucide", "lucratif", "lueur",
43569 "lugubre", "luisant", "lumière", "lunaire", "lundi", "luron", "lutter", "luxueux", "machine", "magasin",
43570 "magenta", "magique", "maigre", "maillon", "maintien", "mairie", "maison", "majorer", "malaxer", "maléfice",
43571 "malheur", "malice", "mallette", "mammouth", "mandater", "maniable", "manquant", "manteau", "manuel", "marathon",
43572 "marbre", "marchand", "mardi", "maritime", "marqueur", "marron", "marteler", "mascotte", "massif", "matériel",
43573 "matière", "matraque", "maudire", "maussade", "mauve", "maximal", "méchant", "méconnu", "médaille", "médecin",
43574 "méditer", "méduse", "meilleur", "mélange", "mélodie", "membre", "mémoire", "menacer", "mener", "menhir",
43575 "mensonge", "mentor", "mercredi", "mérite", "merle", "messager", "mesure", "métal", "météore", "méthode",
43576 "métier", "meuble", "miauler", "microbe", "miette", "mignon", "migrer", "milieu", "million", "mimique",
43577 "mince", "minéral", "minimal", "minorer", "minute", "miracle", "miroiter", "missile", "mixte", "mobile",
43578 "moderne", "moelleux", "mondial", "moniteur", "monnaie", "monotone", "monstre", "montagne", "monument", "moqueur",
43579 "morceau", "morsure", "mortier", "moteur", "motif", "mouche", "moufle", "moulin", "mousson", "mouton",
43580 "mouvant", "multiple", "munition", "muraille", "murène", "murmure", "muscle", "muséum", "musicien", "mutation",
43581 "muter", "mutuel", "myriade", "myrtille", "mystère", "mythique", "nageur", "nappe", "narquois", "narrer",
43582 "natation", "nation", "nature", "naufrage", "nautique", "navire", "nébuleux", "nectar", "néfaste", "négation",
43583 "négliger", "négocier", "neige", "nerveux", "nettoyer", "neurone", "neutron", "neveu", "niche", "nickel",
43584 "nitrate", "niveau", "noble", "nocif", "nocturne", "noirceur", "noisette", "nomade", "nombreux", "nommer",
43585 "normatif", "notable", "notifier", "notoire", "nourrir", "nouveau", "novateur", "novembre", "novice", "nuage",
43586 "nuancer", "nuire", "nuisible", "numéro", "nuptial", "nuque", "nutritif", "obéir", "objectif", "obliger",
43587 "obscur", "observer", "obstacle", "obtenir", "obturer", "occasion", "occuper", "océan", "octobre", "octroyer",
43588 "octupler", "oculaire", "odeur", "odorant", "offenser", "officier", "offrir", "ogive", "oiseau", "oisillon",
43589 "olfactif", "olivier", "ombrage", "omettre", "onctueux", "onduler", "onéreux", "onirique", "opale", "opaque",
43590 "opérer", "opinion", "opportun", "opprimer", "opter", "optique", "orageux", "orange", "orbite", "ordonner",
43591 "oreille", "organe", "orgueil", "orifice", "ornement", "orque", "ortie", "osciller", "osmose", "ossature",
43592 "otarie", "ouragan", "ourson", "outil", "outrager", "ouvrage", "ovation", "oxyde", "oxygène", "ozone",
43593 "paisible", "palace", "palmarès", "palourde", "palper", "panache", "panda", "pangolin", "paniquer", "panneau",
43594 "panorama", "pantalon", "papaye", "papier", "papoter", "papyrus", "paradoxe", "parcelle", "paresse", "parfumer",
43595 "parler", "parole", "parrain", "parsemer", "partager", "parure", "parvenir", "passion", "pastèque", "paternel",
43596 "patience", "patron", "pavillon", "pavoiser", "payer", "paysage", "peigne", "peintre", "pelage", "pélican",
43597 "pelle", "pelouse", "peluche", "pendule", "pénétrer", "pénible", "pensif", "pénurie", "pépite", "péplum",
43598 "perdrix", "perforer", "période", "permuter", "perplexe", "persil", "perte", "peser", "pétale", "petit",
43599 "pétrir", "peuple", "pharaon", "phobie", "phoque", "photon", "phrase", "physique", "piano", "pictural",
43600 "pièce", "pierre", "pieuvre", "pilote", "pinceau", "pipette", "piquer", "pirogue", "piscine", "piston",
43601 "pivoter", "pixel", "pizza", "placard", "plafond", "plaisir", "planer", "plaque", "plastron", "plateau",
43602 "pleurer", "plexus", "pliage", "plomb", "plonger", "pluie", "plumage", "pochette", "poésie", "poète",
43603 "pointe", "poirier", "poisson", "poivre", "polaire", "policier", "pollen", "polygone", "pommade", "pompier",
43604 "ponctuel", "pondérer", "poney", "portique", "position", "posséder", "posture", "potager", "poteau", "potion",
43605 "pouce", "poulain", "poumon", "pourpre", "poussin", "pouvoir", "prairie", "pratique", "précieux", "prédire",
43606 "préfixe", "prélude", "prénom", "présence", "prétexte", "prévoir", "primitif", "prince", "prison", "priver",
43607 "problème", "procéder", "prodige", "profond", "progrès", "proie", "projeter", "prologue", "promener", "propre",
43608 "prospère", "protéger", "prouesse", "proverbe", "prudence", "pruneau", "psychose", "public", "puceron", "puiser",
43609 "pulpe", "pulsar", "punaise", "punitif", "pupitre", "purifier", "puzzle", "pyramide", "quasar", "querelle",
43610 "question", "quiétude", "quitter", "quotient", "racine", "raconter", "radieux", "ragondin", "raideur", "raisin",
43611 "ralentir", "rallonge", "ramasser", "rapide", "rasage", "ratisser", "ravager", "ravin", "rayonner", "réactif",
43612 "réagir", "réaliser", "réanimer", "recevoir", "réciter", "réclamer", "récolter", "recruter", "reculer", "recycler",
43613 "rédiger", "redouter", "refaire", "réflexe", "réformer", "refrain", "refuge", "régalien", "région", "réglage",
43614 "régulier", "réitérer", "rejeter", "rejouer", "relatif", "relever", "relief", "remarque", "remède", "remise",
43615 "remonter", "remplir", "remuer", "renard", "renfort", "renifler", "renoncer", "rentrer", "renvoi", "replier",
43616 "reporter", "reprise", "reptile", "requin", "réserve", "résineux", "résoudre", "respect", "rester", "résultat",
43617 "rétablir", "retenir", "réticule", "retomber", "retracer", "réunion", "réussir", "revanche", "revivre", "révolte",
43618 "révulsif", "richesse", "rideau", "rieur", "rigide", "rigoler", "rincer", "riposter", "risible", "risque",
43619 "rituel", "rival", "rivière", "rocheux", "romance", "rompre", "ronce", "rondin", "roseau", "rosier",
43620 "rotatif", "rotor", "rotule", "rouge", "rouille", "rouleau", "routine", "royaume", "ruban", "rubis",
43621 "ruche", "ruelle", "rugueux", "ruiner", "ruisseau", "ruser", "rustique", "rythme", "sabler", "saboter",
43622 "sabre", "sacoche", "safari", "sagesse", "saisir", "salade", "salive", "salon", "saluer", "samedi",
43623 "sanction", "sanglier", "sarcasme", "sardine", "saturer", "saugrenu", "saumon", "sauter", "sauvage", "savant",
43624 "savonner", "scalpel", "scandale", "scélérat", "scénario", "sceptre", "schéma", "science", "scinder", "score",
43625 "scrutin", "sculpter", "séance", "sécable", "sécher", "secouer", "sécréter", "sédatif", "séduire", "seigneur",
43626 "séjour", "sélectif", "semaine", "sembler", "semence", "séminal", "sénateur", "sensible", "sentence", "séparer",
43627 "séquence", "serein", "sergent", "sérieux", "serrure", "sérum", "service", "sésame", "sévir", "sevrage",
43628 "sextuple", "sidéral", "siècle", "siéger", "siffler", "sigle", "signal", "silence", "silicium", "simple",
43629 "sincère", "sinistre", "siphon", "sirop", "sismique", "situer", "skier", "social", "socle", "sodium",
43630 "soigneux", "soldat", "soleil", "solitude", "soluble", "sombre", "sommeil", "somnoler", "sonde", "songeur",
43631 "sonnette", "sonore", "sorcier", "sortir", "sosie", "sottise", "soucieux", "soudure", "souffle", "soulever",
43632 "soupape", "source", "soutirer", "souvenir", "spacieux", "spatial", "spécial", "sphère", "spiral", "stable",
43633 "station", "sternum", "stimulus", "stipuler", "strict", "studieux", "stupeur", "styliste", "sublime", "substrat",
43634 "subtil", "subvenir", "succès", "sucre", "suffixe", "suggérer", "suiveur", "sulfate", "superbe", "supplier",
43635 "surface", "suricate", "surmener", "surprise", "sursaut", "survie", "suspect", "syllabe", "symbole", "symétrie",
43636 "synapse", "syntaxe", "système", "tabac", "tablier", "tactile", "tailler", "talent", "talisman", "talonner",
43637 "tambour", "tamiser", "tangible", "tapis", "taquiner", "tarder", "tarif", "tartine", "tasse", "tatami",
43638 "tatouage", "taupe", "taureau", "taxer", "témoin", "temporel", "tenaille", "tendre", "teneur", "tenir",
43639 "tension", "terminer", "terne", "terrible", "tétine", "texte", "thème", "théorie", "thérapie", "thorax",
43640 "tibia", "tiède", "timide", "tirelire", "tiroir", "tissu", "titane", "titre", "tituber", "toboggan",
43641 "tolérant", "tomate", "tonique", "tonneau", "toponyme", "torche", "tordre", "tornade", "torpille", "torrent",
43642 "torse", "tortue", "totem", "toucher", "tournage", "tousser", "toxine", "traction", "trafic", "tragique",
43643 "trahir", "train", "trancher", "travail", "trèfle", "tremper", "trésor", "treuil", "triage", "tribunal",
43644 "tricoter", "trilogie", "triomphe", "tripler", "triturer", "trivial", "trombone", "tronc", "tropical", "troupeau",
43645 "tuile", "tulipe", "tumulte", "tunnel", "turbine", "tuteur", "tutoyer", "tuyau", "tympan", "typhon",
43646 "typique", "tyran", "ubuesque", "ultime", "ultrason", "unanime", "unifier", "union", "unique", "unitaire",
43647 "univers", "uranium", "urbain", "urticant", "usage", "usine", "usuel", "usure", "utile", "utopie",
43648 "vacarme", "vaccin", "vagabond", "vague", "vaillant", "vaincre", "vaisseau", "valable", "valise", "vallon",
43649 "valve", "vampire", "vanille", "vapeur", "varier", "vaseux", "vassal", "vaste", "vecteur", "vedette",
43650 "végétal", "véhicule", "veinard", "véloce", "vendredi", "vénérer", "venger", "venimeux", "ventouse", "verdure",
43651 "vérin", "vernir", "verrou", "verser", "vertu", "veston", "vétéran", "vétuste", "vexant", "vexer",
43652 "viaduc", "viande", "victoire", "vidange", "vidéo", "vignette", "vigueur", "vilain", "village", "vinaigre",
43653 "violon", "vipère", "virement", "virtuose", "virus", "visage", "viseur", "vision", "visqueux", "visuel",
43654 "vital", "vitesse", "viticole", "vitrine", "vivace", "vivipare", "vocation", "voguer", "voile", "voisin",
43655 "voiture", "volaille", "volcan", "voltiger", "volume", "vorace", "vortex", "voter", "vouloir", "voyage",
43656 "voyelle", "wagon", "xénon", "yacht", "zèbre", "zénith", "zeste", "zoologie"]
43658 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
43659 WORDLISTS["italian"] = [
43660 "abaco", "abbaglio", "abbinato", "abete", "abisso", "abolire", "abrasivo", "abrogato", "accadere", "accenno",
43661 "accusato", "acetone", "achille", "acido", "acqua", "acre", "acrilico", "acrobata", "acuto", "adagio",
43662 "addebito", "addome", "adeguato", "aderire", "adipe", "adottare", "adulare", "affabile", "affetto", "affisso",
43663 "affranto", "aforisma", "afoso", "africano", "agave", "agente", "agevole", "aggancio", "agire", "agitare",
43664 "agonismo", "agricolo", "agrumeto", "aguzzo", "alabarda", "alato", "albatro", "alberato", "albo", "albume",
43665 "alce", "alcolico", "alettone", "alfa", "algebra", "aliante", "alibi", "alimento", "allagato", "allegro",
43666 "allievo", "allodola", "allusivo", "almeno", "alogeno", "alpaca", "alpestre", "altalena", "alterno", "alticcio",
43667 "altrove", "alunno", "alveolo", "alzare", "amalgama", "amanita", "amarena", "ambito", "ambrato", "ameba",
43668 "america", "ametista", "amico", "ammasso", "ammenda", "ammirare", "ammonito", "amore", "ampio", "ampliare",
43669 "amuleto", "anacardo", "anagrafe", "analista", "anarchia", "anatra", "anca", "ancella", "ancora", "andare",
43670 "andrea", "anello", "angelo", "angolare", "angusto", "anima", "annegare", "annidato", "anno", "annuncio",
43671 "anonimo", "anticipo", "anzi", "apatico", "apertura", "apode", "apparire", "appetito", "appoggio", "approdo",
43672 "appunto", "aprile", "arabica", "arachide", "aragosta", "araldica", "arancio", "aratura", "arazzo", "arbitro",
43673 "archivio", "ardito", "arenile", "argento", "argine", "arguto", "aria", "armonia", "arnese", "arredato",
43674 "arringa", "arrosto", "arsenico", "arso", "artefice", "arzillo", "asciutto", "ascolto", "asepsi", "asettico",
43675 "asfalto", "asino", "asola", "aspirato", "aspro", "assaggio", "asse", "assoluto", "assurdo", "asta",
43676 "astenuto", "astice", "astratto", "atavico", "ateismo", "atomico", "atono", "attesa", "attivare", "attorno",
43677 "attrito", "attuale", "ausilio", "austria", "autista", "autonomo", "autunno", "avanzato", "avere", "avvenire",
43678 "avviso", "avvolgere", "azione", "azoto", "azzimo", "azzurro", "babele", "baccano", "bacino", "baco",
43679 "badessa", "badilata", "bagnato", "baita", "balcone", "baldo", "balena", "ballata", "balzano", "bambino",
43680 "bandire", "baraonda", "barbaro", "barca", "baritono", "barlume", "barocco", "basilico", "basso", "batosta",
43681 "battuto", "baule", "bava", "bavosa", "becco", "beffa", "belgio", "belva", "benda", "benevole",
43682 "benigno", "benzina", "bere", "berlina", "beta", "bibita", "bici", "bidone", "bifido", "biga",
43683 "bilancia", "bimbo", "binocolo", "biologo", "bipede", "bipolare", "birbante", "birra", "biscotto", "bisesto",
43684 "bisnonno", "bisonte", "bisturi", "bizzarro", "blando", "blatta", "bollito", "bonifico", "bordo", "bosco",
43685 "botanico", "bottino", "bozzolo", "braccio", "bradipo", "brama", "branca", "bravura", "bretella", "brevetto",
43686 "brezza", "briglia", "brillante", "brindare", "broccolo", "brodo", "bronzina", "brullo", "bruno", "bubbone",
43687 "buca", "budino", "buffone", "buio", "bulbo", "buono", "burlone", "burrasca", "bussola", "busta",
43688 "cadetto", "caduco", "calamaro", "calcolo", "calesse", "calibro", "calmo", "caloria", "cambusa", "camerata",
43689 "camicia", "cammino", "camola", "campale", "canapa", "candela", "cane", "canino", "canotto", "cantina",
43690 "capace", "capello", "capitolo", "capogiro", "cappero", "capra", "capsula", "carapace", "carcassa", "cardo",
43691 "carisma", "carovana", "carretto", "cartolina", "casaccio", "cascata", "caserma", "caso", "cassone", "castello",
43692 "casuale", "catasta", "catena", "catrame", "cauto", "cavillo", "cedibile", "cedrata", "cefalo", "celebre",
43693 "cellulare", "cena", "cenone", "centesimo", "ceramica", "cercare", "certo", "cerume", "cervello", "cesoia",
43694 "cespo", "ceto", "chela", "chiaro", "chicca", "chiedere", "chimera", "china", "chirurgo", "chitarra",
43695 "ciao", "ciclismo", "cifrare", "cigno", "cilindro", "ciottolo", "circa", "cirrosi", "citrico", "cittadino",
43696 "ciuffo", "civetta", "civile", "classico", "clinica", "cloro", "cocco", "codardo", "codice", "coerente",
43697 "cognome", "collare", "colmato", "colore", "colposo", "coltivato", "colza", "coma", "cometa", "commando",
43698 "comodo", "computer", "comune", "conciso", "condurre", "conferma", "congelare", "coniuge", "connesso", "conoscere",
43699 "consumo", "continuo", "convegno", "coperto", "copione", "coppia", "copricapo", "corazza", "cordata", "coricato",
43700 "cornice", "corolla", "corpo", "corredo", "corsia", "cortese", "cosmico", "costante", "cottura", "covato",
43701 "cratere", "cravatta", "creato", "credere", "cremoso", "crescita", "creta", "criceto", "crinale", "crisi",
43702 "critico", "croce", "cronaca", "crostata", "cruciale", "crusca", "cucire", "cuculo", "cugino", "cullato",
43703 "cupola", "curatore", "cursore", "curvo", "cuscino", "custode", "dado", "daino", "dalmata", "damerino",
43704 "daniela", "dannoso", "danzare", "datato", "davanti", "davvero", "debutto", "decennio", "deciso", "declino",
43705 "decollo", "decreto", "dedicato", "definito", "deforme", "degno", "delegare", "delfino", "delirio", "delta",
43706 "demenza", "denotato", "dentro", "deposito", "derapata", "derivare", "deroga", "descritto", "deserto", "desiderio",
43707 "desumere", "detersivo", "devoto", "diametro", "dicembre", "diedro", "difeso", "diffuso", "digerire", "digitale",
43708 "diluvio", "dinamico", "dinnanzi", "dipinto", "diploma", "dipolo", "diradare", "dire", "dirotto", "dirupo",
43709 "disagio", "discreto", "disfare", "disgelo", "disposto", "distanza", "disumano", "dito", "divano", "divelto",
43710 "dividere", "divorato", "doblone", "docente", "doganale", "dogma", "dolce", "domato", "domenica", "dominare",
43711 "dondolo", "dono", "dormire", "dote", "dottore", "dovuto", "dozzina", "drago", "druido", "dubbio",
43712 "dubitare", "ducale", "duna", "duomo", "duplice", "duraturo", "ebano", "eccesso", "ecco", "eclissi",
43713 "economia", "edera", "edicola", "edile", "editoria", "educare", "egemonia", "egli", "egoismo", "egregio",
43714 "elaborato", "elargire", "elegante", "elencato", "eletto", "elevare", "elfico", "elica", "elmo", "elsa",
43715 "eluso", "emanato", "emblema", "emesso", "emiro", "emotivo", "emozione", "empirico", "emulo", "endemico",
43716 "enduro", "energia", "enfasi", "enoteca", "entrare", "enzima", "epatite", "epilogo", "episodio", "epocale",
43717 "eppure", "equatore", "erario", "erba", "erboso", "erede", "eremita", "erigere", "ermetico", "eroe",
43718 "erosivo", "errante", "esagono", "esame", "esanime", "esaudire", "esca", "esempio", "esercito", "esibito",
43719 "esigente", "esistere", "esito", "esofago", "esortato", "esoso", "espanso", "espresso", "essenza", "esso",
43720 "esteso", "estimare", "estonia", "estroso", "esultare", "etilico", "etnico", "etrusco", "etto", "euclideo",
43721 "europa", "evaso", "evidenza", "evitato", "evoluto", "evviva", "fabbrica", "faccenda", "fachiro", "falco",
43722 "famiglia", "fanale", "fanfara", "fango", "fantasma", "fare", "farfalla", "farinoso", "farmaco", "fascia",
43723 "fastoso", "fasullo", "faticare", "fato", "favoloso", "febbre", "fecola", "fede", "fegato", "felpa",
43724 "feltro", "femmina", "fendere", "fenomeno", "fermento", "ferro", "fertile", "fessura", "festivo", "fetta",
43725 "feudo", "fiaba", "fiducia", "fifa", "figurato", "filo", "finanza", "finestra", "finire", "fiore",
43726 "fiscale", "fisico", "fiume", "flacone", "flamenco", "flebo", "flemma", "florido", "fluente", "fluoro",
43727 "fobico", "focaccia", "focoso", "foderato", "foglio", "folata", "folclore", "folgore", "fondente", "fonetico",
43728 "fonia", "fontana", "forbito", "forchetta", "foresta", "formica", "fornaio", "foro", "fortezza", "forzare",
43729 "fosfato", "fosso", "fracasso", "frana", "frassino", "fratello", "freccetta", "frenata", "fresco", "frigo",
43730 "frollino", "fronde", "frugale", "frutta", "fucilata", "fucsia", "fuggente", "fulmine", "fulvo", "fumante",
43731 "fumetto", "fumoso", "fune", "funzione", "fuoco", "furbo", "furgone", "furore", "fuso", "futile",
43732 "gabbiano", "gaffe", "galateo", "gallina", "galoppo", "gambero", "gamma", "garanzia", "garbo", "garofano",
43733 "garzone", "gasdotto", "gasolio", "gastrico", "gatto", "gaudio", "gazebo", "gazzella", "geco", "gelatina",
43734 "gelso", "gemello", "gemmato", "gene", "genitore", "gennaio", "genotipo", "gergo", "ghepardo", "ghiaccio",
43735 "ghisa", "giallo", "gilda", "ginepro", "giocare", "gioiello", "giorno", "giove", "girato", "girone",
43736 "gittata", "giudizio", "giurato", "giusto", "globulo", "glutine", "gnomo", "gobba", "golf", "gomito",
43737 "gommone", "gonfio", "gonna", "governo", "gracile", "grado", "grafico", "grammo", "grande", "grattare",
43738 "gravoso", "grazia", "greca", "gregge", "grifone", "grigio", "grinza", "grotta", "gruppo", "guadagno",
43739 "guaio", "guanto", "guardare", "gufo", "guidare", "ibernato", "icona", "identico", "idillio", "idolo",
43740 "idra", "idrico", "idrogeno", "igiene", "ignaro", "ignorato", "ilare", "illeso", "illogico", "illudere",
43741 "imballo", "imbevuto", "imbocco", "imbuto", "immane", "immerso", "immolato", "impacco", "impeto", "impiego",
43742 "importo", "impronta", "inalare", "inarcare", "inattivo", "incanto", "incendio", "inchino", "incisivo", "incluso",
43743 "incontro", "incrocio", "incubo", "indagine", "india", "indole", "inedito", "infatti", "infilare", "inflitto",
43744 "ingaggio", "ingegno", "inglese", "ingordo", "ingrosso", "innesco", "inodore", "inoltrare", "inondato", "insano",
43745 "insetto", "insieme", "insonnia", "insulina", "intasato", "intero", "intonaco", "intuito", "inumidire", "invalido",
43746 "invece", "invito", "iperbole", "ipnotico", "ipotesi", "ippica", "iride", "irlanda", "ironico", "irrigato",
43747 "irrorare", "isolato", "isotopo", "isterico", "istituto", "istrice", "italia", "iterare", "labbro", "labirinto",
43748 "lacca", "lacerato", "lacrima", "lacuna", "laddove", "lago", "lampo", "lancetta", "lanterna", "lardoso",
43749 "larga", "laringe", "lastra", "latenza", "latino", "lattuga", "lavagna", "lavoro", "legale", "leggero",
43750 "lembo", "lentezza", "lenza", "leone", "lepre", "lesivo", "lessato", "lesto", "letterale", "leva",
43751 "levigato", "libero", "lido", "lievito", "lilla", "limatura", "limitare", "limpido", "lineare", "lingua",
43752 "liquido", "lira", "lirica", "lisca", "lite", "litigio", "livrea", "locanda", "lode", "logica",
43753 "lombare", "londra", "longevo", "loquace", "lorenzo", "loto", "lotteria", "luce", "lucidato", "lumaca",
43754 "luminoso", "lungo", "lupo", "luppolo", "lusinga", "lusso", "lutto", "macabro", "macchina", "macero",
43755 "macinato", "madama", "magico", "maglia", "magnete", "magro", "maiolica", "malafede", "malgrado", "malinteso",
43756 "malsano", "malto", "malumore", "mana", "mancia", "mandorla", "mangiare", "manifesto", "mannaro", "manovra",
43757 "mansarda", "mantide", "manubrio", "mappa", "maratona", "marcire", "maretta", "marmo", "marsupio", "maschera",
43758 "massaia", "mastino", "materasso", "matricola", "mattone", "maturo", "mazurca", "meandro", "meccanico", "mecenate",
43759 "medesimo", "meditare", "mega", "melassa", "melis", "melodia", "meninge", "meno", "mensola", "mercurio",
43760 "merenda", "merlo", "meschino", "mese", "messere", "mestolo", "metallo", "metodo", "mettere", "miagolare",
43761 "mica", "micelio", "michele", "microbo", "midollo", "miele", "migliore", "milano", "milite", "mimosa",
43762 "minerale", "mini", "minore", "mirino", "mirtillo", "miscela", "missiva", "misto", "misurare", "mitezza",
43763 "mitigare", "mitra", "mittente", "mnemonico", "modello", "modifica", "modulo", "mogano", "mogio", "mole",
43764 "molosso", "monastero", "monco", "mondina", "monetario", "monile", "monotono", "monsone", "montato", "monviso",
43765 "mora", "mordere", "morsicato", "mostro", "motivato", "motosega", "motto", "movenza", "movimento", "mozzo",
43766 "mucca", "mucosa", "muffa", "mughetto", "mugnaio", "mulatto", "mulinello", "multiplo", "mummia", "munto",
43767 "muovere", "murale", "musa", "muscolo", "musica", "mutevole", "muto", "nababbo", "nafta", "nanometro",
43768 "narciso", "narice", "narrato", "nascere", "nastrare", "naturale", "nautica", "naviglio", "nebulosa", "necrosi",
43769 "negativo", "negozio", "nemmeno", "neofita", "neretto", "nervo", "nessuno", "nettuno", "neutrale", "neve",
43770 "nevrotico", "nicchia", "ninfa", "nitido", "nobile", "nocivo", "nodo", "nome", "nomina", "nordico",
43771 "normale", "norvegese", "nostrano", "notare", "notizia", "notturno", "novella", "nucleo", "nulla", "numero",
43772 "nuovo", "nutrire", "nuvola", "nuziale", "oasi", "obbedire", "obbligo", "obelisco", "oblio", "obolo",
43773 "obsoleto", "occasione", "occhio", "occidente", "occorrere", "occultare", "ocra", "oculato", "odierno", "odorare",
43774 "offerta", "offrire", "offuscato", "oggetto", "oggi", "ognuno", "olandese", "olfatto", "oliato", "oliva",
43775 "ologramma", "oltre", "omaggio", "ombelico", "ombra", "omega", "omissione", "ondoso", "onere", "onice",
43776 "onnivoro", "onorevole", "onta", "operato", "opinione", "opposto", "oracolo", "orafo", "ordine", "orecchino",
43777 "orefice", "orfano", "organico", "origine", "orizzonte", "orma", "ormeggio", "ornativo", "orologio", "orrendo",
43778 "orribile", "ortensia", "ortica", "orzata", "orzo", "osare", "oscurare", "osmosi", "ospedale", "ospite",
43779 "ossa", "ossidare", "ostacolo", "oste", "otite", "otre", "ottagono", "ottimo", "ottobre", "ovale",
43780 "ovest", "ovino", "oviparo", "ovocito", "ovunque", "ovviare", "ozio", "pacchetto", "pace", "pacifico",
43781 "padella", "padrone", "paese", "paga", "pagina", "palazzina", "palesare", "pallido", "palo", "palude",
43782 "pandoro", "pannello", "paolo", "paonazzo", "paprica", "parabola", "parcella", "parere", "pargolo", "pari",
43783 "parlato", "parola", "partire", "parvenza", "parziale", "passivo", "pasticca", "patacca", "patologia", "pattume",
43784 "pavone", "peccato", "pedalare", "pedonale", "peggio", "peloso", "penare", "pendice", "penisola", "pennuto",
43785 "penombra", "pensare", "pentola", "pepe", "pepita", "perbene", "percorso", "perdonato", "perforare", "pergamena",
43786 "periodo", "permesso", "perno", "perplesso", "persuaso", "pertugio", "pervaso", "pesatore", "pesista", "peso",
43787 "pestifero", "petalo", "pettine", "petulante", "pezzo", "piacere", "pianta", "piattino", "piccino", "picozza",
43788 "piega", "pietra", "piffero", "pigiama", "pigolio", "pigro", "pila", "pilifero", "pillola", "pilota",
43789 "pimpante", "pineta", "pinna", "pinolo", "pioggia", "piombo", "piramide", "piretico", "pirite", "pirolisi",
43790 "pitone", "pizzico", "placebo", "planare", "plasma", "platano", "plenario", "pochezza", "poderoso", "podismo",
43791 "poesia", "poggiare", "polenta", "poligono", "pollice", "polmonite", "polpetta", "polso", "poltrona", "polvere",
43792 "pomice", "pomodoro", "ponte", "popoloso", "porfido", "poroso", "porpora", "porre", "portata", "posa",
43793 "positivo", "possesso", "postulato", "potassio", "potere", "pranzo", "prassi", "pratica", "precluso", "predica",
43794 "prefisso", "pregiato", "prelievo", "premere", "prenotare", "preparato", "presenza", "pretesto", "prevalso", "prima",
43795 "principe", "privato", "problema", "procura", "produrre", "profumo", "progetto", "prolunga", "promessa", "pronome",
43796 "proposta", "proroga", "proteso", "prova", "prudente", "prugna", "prurito", "psiche", "pubblico", "pudica",
43797 "pugilato", "pugno", "pulce", "pulito", "pulsante", "puntare", "pupazzo", "pupilla", "puro", "quadro",
43798 "qualcosa", "quasi", "querela", "quota", "raccolto", "raddoppio", "radicale", "radunato", "raffica", "ragazzo",
43799 "ragione", "ragno", "ramarro", "ramingo", "ramo", "randagio", "rantolare", "rapato", "rapina", "rappreso",
43800 "rasatura", "raschiato", "rasente", "rassegna", "rastrello", "rata", "ravveduto", "reale", "recepire", "recinto",
43801 "recluta", "recondito", "recupero", "reddito", "redimere", "regalato", "registro", "regola", "regresso", "relazione",
43802 "remare", "remoto", "renna", "replica", "reprimere", "reputare", "resa", "residente", "responso", "restauro",
43803 "rete", "retina", "retorica", "rettifica", "revocato", "riassunto", "ribadire", "ribelle", "ribrezzo", "ricarica",
43804 "ricco", "ricevere", "riciclato", "ricordo", "ricreduto", "ridicolo", "ridurre", "rifasare", "riflesso", "riforma",
43805 "rifugio", "rigare", "rigettato", "righello", "rilassato", "rilevato", "rimanere", "rimbalzo", "rimedio", "rimorchio",
43806 "rinascita", "rincaro", "rinforzo", "rinnovo", "rinomato", "rinsavito", "rintocco", "rinuncia", "rinvenire", "riparato",
43807 "ripetuto", "ripieno", "riportare", "ripresa", "ripulire", "risata", "rischio", "riserva", "risibile", "riso",
43808 "rispetto", "ristoro", "risultato", "risvolto", "ritardo", "ritegno", "ritmico", "ritrovo", "riunione", "riva",
43809 "riverso", "rivincita", "rivolto", "rizoma", "roba", "robotico", "robusto", "roccia", "roco", "rodaggio",
43810 "rodere", "roditore", "rogito", "rollio", "romantico", "rompere", "ronzio", "rosolare", "rospo", "rotante",
43811 "rotondo", "rotula", "rovescio", "rubizzo", "rubrica", "ruga", "rullino", "rumine", "rumoroso", "ruolo",
43812 "rupe", "russare", "rustico", "sabato", "sabbiare", "sabotato", "sagoma", "salasso", "saldatura", "salgemma",
43813 "salivare", "salmone", "salone", "saltare", "saluto", "salvo", "sapere", "sapido", "saporito", "saraceno",
43814 "sarcasmo", "sarto", "sassoso", "satellite", "satira", "satollo", "saturno", "savana", "savio", "saziato",
43815 "sbadiglio", "sbalzo", "sbancato", "sbarra", "sbattere", "sbavare", "sbendare", "sbirciare", "sbloccato", "sbocciato",
43816 "sbrinare", "sbruffone", "sbuffare", "scabroso", "scadenza", "scala", "scambiare", "scandalo", "scapola", "scarso",
43817 "scatenare", "scavato", "scelto", "scenico", "scettro", "scheda", "schiena", "sciarpa", "scienza", "scindere",
43818 "scippo", "sciroppo", "scivolo", "sclerare", "scodella", "scolpito", "scomparto", "sconforto", "scoprire", "scorta",
43819 "scossone", "scozzese", "scriba", "scrollare", "scrutinio", "scuderia", "scultore", "scuola", "scuro", "scusare",
43820 "sdebitare", "sdoganare", "seccatura", "secondo", "sedano", "seggiola", "segnalato", "segregato", "seguito", "selciato",
43821 "selettivo", "sella", "selvaggio", "semaforo", "sembrare", "seme", "seminato", "sempre", "senso", "sentire",
43822 "sepolto", "sequenza", "serata", "serbato", "sereno", "serio", "serpente", "serraglio", "servire", "sestina",
43823 "setola", "settimana", "sfacelo", "sfaldare", "sfamato", "sfarzoso", "sfaticato", "sfera", "sfida", "sfilato",
43824 "sfinge", "sfocato", "sfoderare", "sfogo", "sfoltire", "sforzato", "sfratto", "sfruttato", "sfuggito", "sfumare",
43825 "sfuso", "sgabello", "sgarbato", "sgonfiare", "sgorbio", "sgrassato", "sguardo", "sibilo", "siccome", "sierra",
43826 "sigla", "signore", "silenzio", "sillaba", "simbolo", "simpatico", "simulato", "sinfonia", "singolo", "sinistro",
43827 "sino", "sintesi", "sinusoide", "sipario", "sisma", "sistole", "situato", "slitta", "slogatura", "sloveno",
43828 "smarrito", "smemorato", "smentito", "smeraldo", "smilzo", "smontare", "smottato", "smussato", "snellire", "snervato",
43829 "snodo", "sobbalzo", "sobrio", "soccorso", "sociale", "sodale", "soffitto", "sogno", "soldato", "solenne",
43830 "solido", "sollazzo", "solo", "solubile", "solvente", "somatico", "somma", "sonda", "sonetto", "sonnifero",
43831 "sopire", "soppeso", "sopra", "sorgere", "sorpasso", "sorriso", "sorso", "sorteggio", "sorvolato", "sospiro",
43832 "sosta", "sottile", "spada", "spalla", "spargere", "spatola", "spavento", "spazzola", "specie", "spedire",
43833 "spegnere", "spelatura", "speranza", "spessore", "spettrale", "spezzato", "spia", "spigoloso", "spillato", "spinoso",
43834 "spirale", "splendido", "sportivo", "sposo", "spranga", "sprecare", "spronato", "spruzzo", "spuntino", "squillo",
43835 "sradicare", "srotolato", "stabile", "stacco", "staffa", "stagnare", "stampato", "stantio", "starnuto", "stasera",
43836 "statuto", "stelo", "steppa", "sterzo", "stiletto", "stima", "stirpe", "stivale", "stizzoso", "stonato",
43837 "storico", "strappo", "stregato", "stridulo", "strozzare", "strutto", "stuccare", "stufo", "stupendo", "subentro",
43838 "succoso", "sudore", "suggerito", "sugo", "sultano", "suonare", "superbo", "supporto", "surgelato", "surrogato",
43839 "sussurro", "sutura", "svagare", "svedese", "sveglio", "svelare", "svenuto", "svezia", "sviluppo", "svista",
43840 "svizzera", "svolta", "svuotare", "tabacco", "tabulato", "tacciare", "taciturno", "tale", "talismano", "tampone",
43841 "tannino", "tara", "tardivo", "targato", "tariffa", "tarpare", "tartaruga", "tasto", "tattico", "taverna",
43842 "tavolata", "tazza", "teca", "tecnico", "telefono", "temerario", "tempo", "temuto", "tendone", "tenero",
43843 "tensione", "tentacolo", "teorema", "terme", "terrazzo", "terzetto", "tesi", "tesserato", "testato", "tetro",
43844 "tettoia", "tifare", "tigella", "timbro", "tinto", "tipico", "tipografo", "tiraggio", "tiro", "titanio",
43845 "titolo", "titubante", "tizio", "tizzone", "toccare", "tollerare", "tolto", "tombola", "tomo", "tonfo",
43846 "tonsilla", "topazio", "topologia", "toppa", "torba", "tornare", "torrone", "tortora", "toscano", "tossire",
43847 "tostatura", "totano", "trabocco", "trachea", "trafila", "tragedia", "tralcio", "tramonto", "transito", "trapano",
43848 "trarre", "trasloco", "trattato", "trave", "treccia", "tremolio", "trespolo", "tributo", "tricheco", "trifoglio",
43849 "trillo", "trincea", "trio", "tristezza", "triturato", "trivella", "tromba", "trono", "troppo", "trottola",
43850 "trovare", "truccato", "tubatura", "tuffato", "tulipano", "tumulto", "tunisia", "turbare", "turchino", "tuta",
43851 "tutela", "ubicato", "uccello", "uccisore", "udire", "uditivo", "uffa", "ufficio", "uguale", "ulisse",
43852 "ultimato", "umano", "umile", "umorismo", "uncinetto", "ungere", "ungherese", "unicorno", "unificato", "unisono",
43853 "unitario", "unte", "uovo", "upupa", "uragano", "urgenza", "urlo", "usanza", "usato", "uscito",
43854 "usignolo", "usuraio", "utensile", "utilizzo", "utopia", "vacante", "vaccinato", "vagabondo", "vagliato", "valanga",
43855 "valgo", "valico", "valletta", "valoroso", "valutare", "valvola", "vampata", "vangare", "vanitoso", "vano",
43856 "vantaggio", "vanvera", "vapore", "varano", "varcato", "variante", "vasca", "vedetta", "vedova", "veduto",
43857 "vegetale", "veicolo", "velcro", "velina", "velluto", "veloce", "venato", "vendemmia", "vento", "verace",
43858 "verbale", "vergogna", "verifica", "vero", "verruca", "verticale", "vescica", "vessillo", "vestale", "veterano",
43859 "vetrina", "vetusto", "viandante", "vibrante", "vicenda", "vichingo", "vicinanza", "vidimare", "vigilia", "vigneto",
43860 "vigore", "vile", "villano", "vimini", "vincitore", "viola", "vipera", "virgola", "virologo", "virulento",
43861 "viscoso", "visione", "vispo", "vissuto", "visura", "vita", "vitello", "vittima", "vivanda", "vivido",
43862 "viziare", "voce", "voga", "volatile", "volere", "volpe", "voragine", "vulcano", "zampogna", "zanna",
43863 "zappato", "zattera", "zavorra", "zefiro", "zelante", "zelo", "zenzero", "zerbino", "zibetto", "zinco",
43864 "zircone", "zitto", "zolla", "zotico", "zucchero", "zufolo", "zulu", "zuppa"]
43867 * Copyright (c)
2013 Pavol Rusnak
43869 * Permission is hereby granted, free of charge, to any person obtaining a copy of
43870 * this software and associated documentation files (the "Software"), to deal in
43871 * the Software without restriction, including without limitation the rights to
43872 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
43873 * of the Software, and to permit persons to whom the Software is furnished to do
43874 * so, subject to the following conditions:
43876 * The above copyright notice and this permission notice shall be included in all
43877 * copies or substantial portions of the Software.
43879 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
43880 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
43881 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
43882 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43883 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
43884 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
43888 * Javascript port from python by Ian Coleman
43890 * Requires code from sjcl
43891 * https://github.com/bitwiseshiftleft/sjcl
43894 var Mnemonic = function(language) {
43896 var PBKDF2_ROUNDS =
2048;
43902 var hmacSHA512 = function(key) {
43903 var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512);
43904 this.encrypt = function() {
43905 return hasher.encrypt.apply(hasher, arguments);
43910 wordlist = WORDLISTS[language];
43911 if (wordlist.length != RADIX) {
43912 err = 'Wordlist should contain ' + RADIX + ' words, but it contains ' + wordlist.length + ' words.';
43917 self.generate = function(strength) {
43918 strength = strength ||
128;
43919 var r = strength %
32;
43921 throw 'Strength should be divisible by
32, but it is not (' + r + ').';
43923 var hasStrongCrypto = 'crypto' in window && window['crypto'] !== null;
43924 if (!hasStrongCrypto) {
43925 throw 'Mnemonic should be generated with strong randomness, but crypto.getRandomValues is unavailable';
43927 var buffer = new Uint8Array(strength /
8);
43928 var data = crypto.getRandomValues(buffer);
43929 return self.toMnemonic(data);
43932 self.toMnemonic = function(byteArray) {
43933 if (byteArray.length %
4 > 0) {
43934 throw 'Data length in bits should be divisible by
32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*
8 + ' bits).'
43937 //h = hashlib.sha256(data).hexdigest()
43938 var data = byteArrayToWordArray(byteArray);
43939 var hash = sjcl.hash.sha256.hash(data);
43940 var h = sjcl.codec.hex.fromBits(hash);
43942 // b is a binary string, eg '
00111010101100...'
43943 //b = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8) + \
43944 // bin(int(h,
16))[
2:].zfill(
256)[:len(data) *
8 /
32]
43946 // a = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8)
43947 // c = bin(int(h,
16))[
2:].zfill(
256)
43948 // d = c[:len(data) *
8 /
32]
43949 var a = byteArrayToBinaryString(byteArray);
43950 var c = zfill(hexStringToBinaryString(h),
256);
43951 var d = c.substring(
0, byteArray.length *
8 /
32);
43952 // b = line1 + line2
43956 var blen = b.length /
11;
43957 for (var i=
0; i
<blen; i++) {
43958 var idx = parseInt(b.substring(i *
11, (i +
1) *
11),
2);
43959 result.push(wordlist[idx]);
43961 return self.joinWords(result);
43964 self.check = function(mnemonic) {
43965 var mnemonic = self.splitWords(mnemonic);
43966 if (mnemonic.length ==
0 || mnemonic.length %
3 > 0) {
43969 // idx = map(lambda x: bin(self.wordlist.index(x))[
2:].zfill(
11), mnemonic)
43971 for (var i=
0; i
<mnemonic.length; i++) {
43972 var word = mnemonic[i];
43973 var wordIndex = wordlist.indexOf(word);
43974 if (wordIndex == -
1) {
43977 var binaryIndex = zfill(wordIndex.toString(
2),
11);
43978 idx.push(binaryIndex);
43980 var b = idx.join('');
43982 //d = b[:l /
33 *
32]
43984 var d = b.substring(
0, l /
33 *
32);
43985 var h = b.substring(l - l /
33, l);
43986 //nd = binascii.unhexlify(hex(int(d,
2))[
2:].rstrip('L').zfill(l /
33 *
8))
43987 var nd = binaryStringToWordArray(d);
43988 //nh = bin(int(hashlib.sha256(nd).hexdigest(),
16))[
2:].zfill(
256)[:l /
33]
43989 var ndHash = sjcl.hash.sha256.hash(nd);
43990 var ndHex = sjcl.codec.hex.fromBits(ndHash);
43991 var ndBstr = zfill(hexStringToBinaryString(ndHex),
256);
43992 var nh = ndBstr.substring(
0,l/
33);
43996 self.toSeed = function(mnemonic, passphrase) {
43997 passphrase = passphrase || '';
43998 mnemonic = self.joinWords(self.splitWords(mnemonic)); // removes duplicate blanks
43999 var mnemonicNormalized = self.normalizeString(mnemonic);
44000 passphrase = self.normalizeString(passphrase)
44001 passphrase =
"mnemonic" + passphrase;
44002 var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonicNormalized);
44003 var passphraseBits = sjcl.codec.utf8String.toBits(passphrase);
44004 var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS,
512, hmacSHA512);
44005 var hashHex = sjcl.codec.hex.fromBits(result);
44009 self.splitWords = function(mnemonic) {
44010 return mnemonic.split(/\s/g).filter(function(x) { return x.length; });
44013 self.joinWords = function(words) {
44014 // Set space correctly depending on the language
44015 // see https://github.com/bitcoin/bips/blob/master/bip-
0039/bip-
0039-wordlists.md#japanese
44017 if (language ==
"japanese") {
44018 space =
"\u3000"; // ideographic space
44020 return words.join(space);
44023 self.normalizeString = function(str) {
44024 if (typeof str.normalize ==
"function") {
44025 return str.normalize(
"NFKD");
44028 // TODO decide how to handle this in the future.
44029 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
44034 function byteArrayToWordArray(data) {
44036 for (var i=
0; i
<data.length/
4; i++) {
44038 v += data[i*
4 +
0] <<
8 *
3;
44039 v += data[i*
4 +
1] <<
8 *
2;
44040 v += data[i*
4 +
2] <<
8 *
1;
44041 v += data[i*
4 +
3] <<
8 *
0;
44047 function byteArrayToBinaryString(data) {
44049 for (var i=
0; i
<data.length; i++) {
44050 bin += zfill(data[i].toString(
2),
8);
44055 function hexStringToBinaryString(hexString) {
44057 for (var i=
0; i
<hexString.length; i++) {
44058 binaryString += zfill(parseInt(hexString[i],
16).toString(
2),
4);
44060 return binaryString;
44063 function binaryStringToWordArray(binary) {
44064 var aLen = binary.length /
32;
44066 for (var i=
0; i
<aLen; i++) {
44067 var valueStr = binary.substring(
0,
32);
44068 var value = parseInt(valueStr,
2);
44070 binary = binary.slice(
32);
44075 // Pad a numeric string on the left with zero digits until the given width
44077 // Note this differs to the python implementation because it does not
44078 // handle numbers starting with a sign.
44079 function zfill(source, length) {
44080 source = source.toString();
44081 while (source.length < length) {
44082 source = '
0' + source;
44092 JavaScript BigInteger library version
0.9.1
44093 http://silentmatt.com/biginteger/
44095 Copyright (c)
2009 Matthew Crumley
<email@matthewcrumley.com
>
44096 Copyright (c)
2010,
2011 by John Tobey
<John.Tobey@gmail.com
>
44097 Licensed under the MIT license.
44099 Support for arbitrary internal representation base was added by
44104 File: biginteger.js
44110 (function(exports) {
44114 An arbitrarily-large integer.
44116 <BigInteger> objects should be considered immutable. None of the "built-in"
44117 methods modify *this* or their arguments. All properties should be
44118 considered private.
44120 All the methods of
<BigInteger> instances can be called "statically". The
44121 static versions are convenient if you don't already have a
<BigInteger>
44124 As an example, these calls are equivalent.
44126 > BigInteger(
4).multiply(
5); // returns BigInteger(
20);
44127 > BigInteger.multiply(
4,
5); // returns BigInteger(
20);
44130 > var a = BigInteger.toJSValue("
0b101010"); // Not completely useless...
44133 var CONSTRUCT = {}; // Unique token to call "private" version of constructor
44136 Constructor: BigInteger()
44137 Convert a value to a
<BigInteger>.
44139 Although
<BigInteger()
> is the constructor for
<BigInteger> objects, it is
44140 best not to call it as a constructor. If *n* is a
<BigInteger> object, it is
44141 simply returned as-is. Otherwise,
<BigInteger()
> is equivalent to
<parse>
44142 without a radix argument.
44144 > var n0 = BigInteger(); // Same as
<BigInteger.ZERO
>
44145 > var n1 = BigInteger("
123"); // Create a new
<BigInteger> with value
123
44146 > var n2 = BigInteger(
123); // Create a new
<BigInteger> with value
123
44147 > var n3 = BigInteger(n2); // Return n2, unchanged
44149 The constructor form only takes an array and a sign. *n* must be an
44150 array of numbers in little-endian order, where each digit is between
0
44151 and BigInteger.base. The second parameter sets the sign: -
1 for
44152 negative, +
1 for positive, or
0 for zero. The array is *not copied and
44153 may be modified*. If the array contains only zeros, the sign parameter
44154 is ignored and is forced to zero.
44156 > new BigInteger([
5], -
1): create a new BigInteger with value -
5
44160 n - Value to convert to a
<BigInteger>.
44164 A
<BigInteger> value.
44168 <parse>,
<BigInteger>
44170 function BigInteger(n, s, token) {
44171 if (token !== CONSTRUCT) {
44172 if (n instanceof BigInteger) {
44175 else if (typeof n === "undefined") {
44178 return BigInteger.parse(n);
44181 n = n || []; // Provide the nullary constructor for subclasses.
44182 while (n.length && !n[n.length -
1]) {
44186 this._s = n.length ? (s ||
1) :
0;
44189 BigInteger._construct = function(n, s) {
44190 return new BigInteger(n, s, CONSTRUCT);
44193 // Base-
10 speedup hacks in parse, toString, exp10 and log functions
44194 // require base to be a power of
10.
10^
7 is the largest such power
44195 // that won't cause a precision loss when digits are multiplied.
44196 var BigInteger_base =
10000000;
44197 var BigInteger_base_log10 =
7;
44199 BigInteger.base = BigInteger_base;
44200 BigInteger.base_log10 = BigInteger_base_log10;
44202 var ZERO = new BigInteger([],
0, CONSTRUCT);
44205 BigInteger.ZERO = ZERO;
44207 var ONE = new BigInteger([
1],
1, CONSTRUCT);
44210 BigInteger.ONE = ONE;
44212 var M_ONE = new BigInteger(ONE._d, -
1, CONSTRUCT);
44214 //
<BigInteger> -
1.
44215 BigInteger.M_ONE = M_ONE;
44218 // Shortcut for
<ZERO>.
44219 BigInteger._0 = ZERO;
44222 // Shortcut for
<ONE>.
44223 BigInteger._1 = ONE;
44227 Array of
<BigIntegers> from
0 to
36.
44229 These are used internally for parsing, but useful when you need a "small"
44234 <ZERO>,
<ONE>,
<_0>,
<_1>
44236 BigInteger.small = [
44239 /* Assuming BigInteger_base
> 36 */
44240 new BigInteger( [
2],
1, CONSTRUCT),
44241 new BigInteger( [
3],
1, CONSTRUCT),
44242 new BigInteger( [
4],
1, CONSTRUCT),
44243 new BigInteger( [
5],
1, CONSTRUCT),
44244 new BigInteger( [
6],
1, CONSTRUCT),
44245 new BigInteger( [
7],
1, CONSTRUCT),
44246 new BigInteger( [
8],
1, CONSTRUCT),
44247 new BigInteger( [
9],
1, CONSTRUCT),
44248 new BigInteger([
10],
1, CONSTRUCT),
44249 new BigInteger([
11],
1, CONSTRUCT),
44250 new BigInteger([
12],
1, CONSTRUCT),
44251 new BigInteger([
13],
1, CONSTRUCT),
44252 new BigInteger([
14],
1, CONSTRUCT),
44253 new BigInteger([
15],
1, CONSTRUCT),
44254 new BigInteger([
16],
1, CONSTRUCT),
44255 new BigInteger([
17],
1, CONSTRUCT),
44256 new BigInteger([
18],
1, CONSTRUCT),
44257 new BigInteger([
19],
1, CONSTRUCT),
44258 new BigInteger([
20],
1, CONSTRUCT),
44259 new BigInteger([
21],
1, CONSTRUCT),
44260 new BigInteger([
22],
1, CONSTRUCT),
44261 new BigInteger([
23],
1, CONSTRUCT),
44262 new BigInteger([
24],
1, CONSTRUCT),
44263 new BigInteger([
25],
1, CONSTRUCT),
44264 new BigInteger([
26],
1, CONSTRUCT),
44265 new BigInteger([
27],
1, CONSTRUCT),
44266 new BigInteger([
28],
1, CONSTRUCT),
44267 new BigInteger([
29],
1, CONSTRUCT),
44268 new BigInteger([
30],
1, CONSTRUCT),
44269 new BigInteger([
31],
1, CONSTRUCT),
44270 new BigInteger([
32],
1, CONSTRUCT),
44271 new BigInteger([
33],
1, CONSTRUCT),
44272 new BigInteger([
34],
1, CONSTRUCT),
44273 new BigInteger([
35],
1, CONSTRUCT),
44274 new BigInteger([
36],
1, CONSTRUCT)
44277 // Used for parsing/radix conversion
44278 BigInteger.digits =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(
"");
44282 Convert a
<BigInteger> to a string.
44284 When *base* is greater than
10, letters are upper case.
44288 base - Optional base to represent the number in (default is base
10).
44289 Must be between
2 and
36 inclusive, or an Error will be thrown.
44293 The string representation of the
<BigInteger>.
44295 BigInteger.prototype.toString = function(base) {
44296 base = +base ||
10;
44297 if (base <
2 || base
> 36) {
44298 throw new Error(
"illegal radix " + base +
".");
44300 if (this._s ===
0) {
44304 var str = this._s <
0 ?
"-" :
"";
44305 str += this._d[this._d.length -
1].toString();
44306 for (var i = this._d.length -
2; i
>=
0; i--) {
44307 var group = this._d[i].toString();
44308 while (group.length < BigInteger_base_log10) group = '
0' + group;
44314 var numerals = BigInteger.digits;
44315 base = BigInteger.small[base];
44316 var sign = this._s;
44318 var n = this.abs();
44322 while (n._s !==
0) {
44323 var divmod = n.divRem(base);
44326 // TODO: This could be changed to unshift instead of reversing at the end.
44327 // Benchmark both to compare speeds.
44328 digits.push(numerals[digit.valueOf()]);
44330 return (sign <
0 ? "-" : "") + digits.reverse().join("");
44334 // Verify strings for parsing
44335 BigInteger.radixRegex = [
44377 Parse a string into a
<BigInteger>.
44379 *base* is optional but, if provided, must be from
2 to
36 inclusive. If
44380 *base* is not provided, it will be guessed based on the leading characters
44383 - "
0x" or "
0X": *base* =
16
44384 - "
0c" or "
0C": *base* =
8
44385 - "
0b" or "
0B": *base* =
2
44386 - else: *base* =
10
44388 If no base is provided, or *base* is
10, the number can be in exponential
44389 form. For example, these are all valid:
44391 > BigInteger.parse("
1e9"); // Same as "
1000000000"
44392 > BigInteger.parse("
1.234*
10^
3"); // Same as
1234
44393 > BigInteger.parse("
56789 *
10 ** -
2"); // Same as
567
44395 If any characters fall outside the range defined by the radix, an exception
44400 s - The string to parse.
44401 base - Optional radix (default is to guess based on *s*).
44405 a
<BigInteger> instance.
44407 BigInteger.parse = function(s, base) {
44408 // Expands a number in exponential form to decimal form.
44409 // expandExponential("-
13.441*
10^
5") === "
1344100";
44410 // expandExponential("
1.12300e-1") === "
0.112300";
44411 // expandExponential(
1000000000000000000000000000000) === "
1000000000000000000000000000000";
44412 function expandExponential(str) {
44413 str = str.replace(/\s*[*xX]\s*
10\s*(\^|\*\*)\s*/, "e");
44415 return str.replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/, function(x, s, n, f, c) {
44418 var i = n.length + c;
44419 x = (l ? n : f).length;
44420 c = ((c = Math.abs(c))
>= x ? c - x + l :
0);
44421 var z = (new Array(c +
1)).join("
0");
44423 return (s || "") + (l ? r = z + r : r += z).substr(
0, i += l ? z.length :
0) + (i < r.length ? "." + r.substr(i) : "");
44428 if (typeof base === "undefined" || +base ===
10) {
44429 s = expandExponential(s);
44433 if (typeof base === "undefined") {
44434 prefixRE = '
0[xcb]';
44436 else if (base ==
16) {
44439 else if (base ==
8) {
44442 else if (base ==
2) {
44448 var parts = new RegExp('^([+\\-]?)(' + prefixRE + ')?([
0-
9a-z]*)(?:\\.\\d*)?$', 'i').exec(s);
44450 var sign = parts[
1] || "+";
44451 var baseSection = parts[
2] || "";
44452 var digits = parts[
3] || "";
44454 if (typeof base === "undefined") {
44456 if (baseSection === "
0x" || baseSection === "
0X") { // Hex
44459 else if (baseSection === "
0c" || baseSection === "
0C") { // Octal
44462 else if (baseSection === "
0b" || baseSection === "
0B") { // Binary
44469 else if (base <
2 || base
> 36) {
44470 throw new Error(
"Illegal radix " + base +
".");
44475 // Check for digits outside the range
44476 if (!(BigInteger.radixRegex[base].test(digits))) {
44477 throw new Error(
"Bad digit for radix " + base);
44480 // Strip leading zeros, and convert to array
44481 digits = digits.replace(/^
0+/,
"").split(
"");
44482 if (digits.length ===
0) {
44486 // Get the sign (we know it's not zero)
44487 sign = (sign ===
"-") ? -
1 :
1;
44492 while (digits.length
>= BigInteger_base_log10) {
44493 d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''),
10));
44495 d.push(parseInt(digits.join(''),
10));
44496 return new BigInteger(d, sign, CONSTRUCT);
44499 // Do the conversion
44501 base = BigInteger.small[base];
44502 var small = BigInteger.small;
44503 for (var i =
0; i < digits.length; i++) {
44504 d = d.multiply(base).add(small[parseInt(digits[i],
36)]);
44506 return new BigInteger(d._d, sign, CONSTRUCT);
44509 throw new Error("Invalid BigInteger format: " + s);
44515 Add two
<BigIntegers>.
44519 n - The number to add to *this*. Will be converted to a
<BigInteger>.
44523 The numbers added together.
44527 <subtract>,
<multiply>,
<quotient>,
<next>
44529 BigInteger.prototype.add = function(n) {
44530 if (this._s ===
0) {
44531 return BigInteger(n);
44538 if (this._s !== n._s) {
44540 return this.subtract(n);
44547 var sum = new Array(Math.max(al, bl) +
1);
44548 var size = Math.min(al, bl);
44552 for (var i =
0; i < size; i++) {
44553 digit = a[i] + b[i] + carry;
44554 sum[i] = digit % BigInteger_base;
44555 carry = (digit / BigInteger_base) |
0;
44561 for (i = size; carry && i < al; i++) {
44562 digit = a[i] + carry;
44563 sum[i] = digit % BigInteger_base;
44564 carry = (digit / BigInteger_base) |
0;
44570 for ( ; i < al; i++) {
44574 return new BigInteger(sum, this._s, CONSTRUCT);
44579 Get the additive inverse of a
<BigInteger>.
44583 A
<BigInteger> with the same magnatude, but with the opposite sign.
44589 BigInteger.prototype.negate = function() {
44590 return new BigInteger(this._d, (-this._s) |
0, CONSTRUCT);
44595 Get the absolute value of a
<BigInteger>.
44599 A
<BigInteger> with the same magnatude, but always positive (or zero).
44605 BigInteger.prototype.abs = function() {
44606 return (this._s <
0) ? this.negate() : this;
44611 Subtract two
<BigIntegers>.
44615 n - The number to subtract from *this*. Will be converted to a
<BigInteger>.
44619 The *n* subtracted from *this*.
44623 <add>,
<multiply>,
<quotient>,
<prev>
44625 BigInteger.prototype.subtract = function(n) {
44626 if (this._s ===
0) {
44627 return BigInteger(n).negate();
44634 if (this._s !== n._s) {
44636 return this.add(n);
44640 // negative - negative =
> -|a| - -|b| =
> -|a| + |b| =
> |b| - |a|
44642 m = new BigInteger(n._d,
1, CONSTRUCT);
44643 n = new BigInteger(this._d,
1, CONSTRUCT);
44646 // Both are positive =
> a - b
44647 var sign = m.compareAbs(n);
44651 else if (sign <
0) {
44663 var diff = new Array(al); // al
>= bl since a
> b
44668 for (i =
0; i < bl; i++) {
44669 digit = a[i] - borrow - b[i];
44671 digit += BigInteger_base;
44679 for (i = bl; i < al; i++) {
44680 digit = a[i] - borrow;
44682 digit += BigInteger_base;
44690 for ( ; i < al; i++) {
44694 return new BigInteger(diff, sign, CONSTRUCT);
44698 function addOne(n, sign) {
44700 var sum = a.slice();
44705 var digit = (a[i] ||
0) +
1;
44706 sum[i] = digit % BigInteger_base;
44707 if (digit <= BigInteger_base -
1) {
44713 return new BigInteger(sum, sign, CONSTRUCT);
44716 function subtractOne(n, sign) {
44718 var sum = a.slice();
44723 var digit = (a[i] ||
0) -
1;
44725 sum[i] = digit + BigInteger_base;
44734 return new BigInteger(sum, sign, CONSTRUCT);
44739 Get the next
<BigInteger> (add one).
44749 BigInteger.prototype.next = function() {
44754 return subtractOne(this, -
1);
44757 return addOne(this,
1);
44763 Get the previous
<BigInteger> (subtract one).
44773 BigInteger.prototype.prev = function() {
44778 return addOne(this, -
1);
44781 return subtractOne(this,
1);
44787 Function: compareAbs
44788 Compare the absolute value of two
<BigIntegers>.
44790 Calling
<compareAbs> is faster than calling
<abs> twice, then
<compare>.
44794 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
44798 -
1,
0, or +
1 if *|this|* is less than, equal to, or greater than *|n|*.
44804 BigInteger.prototype.compareAbs = function(n) {
44809 if (!(n instanceof BigInteger)) {
44810 if (!isFinite(n)) {
44811 return(isNaN(n) ? n : -
1);
44816 if (this._s ===
0) {
44817 return (n._s !==
0) ? -
1 :
0;
44823 var l = this._d.length;
44824 var nl = n._d.length;
44834 for (var i = l-
1; i
>=
0; i--) {
44835 if (a[i] !== b[i]) {
44836 return a[i] < b[i] ? -
1 :
1;
44845 Compare two
<BigIntegers>.
44849 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
44853 -
1,
0, or +
1 if *this* is less than, equal to, or greater than *n*.
44857 <compareAbs>,
<isPositive>,
<isNegative>,
<isUnit>
44859 BigInteger.prototype.compare = function(n) {
44866 if (this._s ===
0) {
44870 if (this._s === n._s) { // both positive or both negative
44871 var cmp = this.compareAbs(n);
44872 return cmp * this._s;
44881 Return true iff *this* is either
1 or -
1.
44885 true if *this* compares equal to
<BigInteger.ONE
> or
<BigInteger.M_ONE
>.
44889 <isZero>,
<isNegative>,
<isPositive>,
<compareAbs>,
<compare>,
44890 <BigInteger.ONE
>,
<BigInteger.M_ONE
>
44892 BigInteger.prototype.isUnit = function() {
44893 return this === ONE ||
44895 (this._d.length ===
1 && this._d[
0] ===
1);
44900 Multiply two
<BigIntegers>.
44904 n - The number to multiply *this* by. Will be converted to a
44909 The numbers multiplied together.
44913 <add>,
<subtract>,
<quotient>,
<square>
44915 BigInteger.prototype.multiply = function(n) {
44916 // TODO: Consider adding Karatsuba multiplication for large numbers
44917 if (this._s ===
0) {
44925 if (this.isUnit()) {
44933 return this.negate();
44938 return this.square();
44941 var r = (this._d.length
>= n._d.length);
44942 var a = (r ? this : n)._d; // a will be longer than b
44943 var b = (r ? n : this)._d;
44948 var partial = new Array(pl);
44950 for (i =
0; i < pl; i++) {
44954 for (i =
0; i < bl; i++) {
44957 var jlimit = al + i;
44959 for (var j = i; j < jlimit; j++) {
44960 digit = partial[j] + bi * a[j - i] + carry;
44961 carry = (digit / BigInteger_base) |
0;
44962 partial[j] = (digit % BigInteger_base) |
0;
44965 digit = partial[j] + carry;
44966 carry = (digit / BigInteger_base) |
0;
44967 partial[j] = digit % BigInteger_base;
44970 return new BigInteger(partial, this._s * n._s, CONSTRUCT);
44973 // Multiply a BigInteger by a single-digit native number
44974 // Assumes that this and n are
>=
0
44975 // This is not really intended to be used outside the library itself
44976 BigInteger.prototype.multiplySingleDigit = function(n) {
44977 if (n ===
0 || this._s ===
0) {
44985 if (this._d.length ===
1) {
44986 digit = this._d[
0] * n;
44987 if (digit
>= BigInteger_base) {
44988 return new BigInteger([(digit % BigInteger_base)|
0,
44989 (digit / BigInteger_base)|
0],
1, CONSTRUCT);
44991 return new BigInteger([digit],
1, CONSTRUCT);
44995 return this.add(this);
44997 if (this.isUnit()) {
44998 return new BigInteger([n],
1, CONSTRUCT);
45005 var partial = new Array(pl);
45006 for (var i =
0; i < pl; i++) {
45011 for (var j =
0; j < al; j++) {
45012 digit = n * a[j] + carry;
45013 carry = (digit / BigInteger_base) |
0;
45014 partial[j] = (digit % BigInteger_base) |
0;
45017 partial[j] = carry;
45020 return new BigInteger(partial,
1, CONSTRUCT);
45025 Multiply a
<BigInteger> by itself.
45027 This is slightly faster than regular multiplication, since it removes the
45028 duplicated multiplcations.
45032 > this.multiply(this)
45037 BigInteger.prototype.square = function() {
45038 // Normally, squaring a
10-digit number would take
100 multiplications.
45039 // Of these
10 are unique diagonals, of the remaining
90 (
100-
10),
45 are repeated.
45040 // This procedure saves (N*(N-
1))/
2 multiplications, (e.g.,
45 of
100 multiplies).
45041 // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org
45043 if (this._s ===
0) {
45046 if (this.isUnit()) {
45050 var digits = this._d;
45051 var length = digits.length;
45052 var imult1 = new Array(length + length +
1);
45053 var product, carry, k;
45056 // Calculate diagonal
45057 for (i =
0; i < length; i++) {
45059 product = digits[i] * digits[i];
45060 carry = (product / BigInteger_base) |
0;
45061 imult1[k] = product % BigInteger_base;
45062 imult1[k +
1] = carry;
45065 // Calculate repeating part
45066 for (i =
0; i < length; i++) {
45069 for (var j = i +
1; j < length; j++, k++) {
45070 product = digits[j] * digits[i] *
2 + imult1[k] + carry;
45071 carry = (product / BigInteger_base) |
0;
45072 imult1[k] = product % BigInteger_base;
45075 var digit = carry + imult1[k];
45076 carry = (digit / BigInteger_base) |
0;
45077 imult1[k] = digit % BigInteger_base;
45078 imult1[k +
1] += carry;
45081 return new BigInteger(imult1,
1, CONSTRUCT);
45086 Divide two
<BigIntegers> and truncate towards zero.
45088 <quotient> throws an exception if *n* is zero.
45092 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
45096 The *this* / *n*, truncated to an integer.
45100 <add>,
<subtract>,
<multiply>,
<divRem>,
<remainder>
45102 BigInteger.prototype.quotient = function(n) {
45103 return this.divRem(n)[
0];
45108 Deprecated synonym for
<quotient>.
45110 BigInteger.prototype.divide = BigInteger.prototype.quotient;
45113 Function: remainder
45114 Calculate the remainder of two
<BigIntegers>.
45116 <remainder> throws an exception if *n* is zero.
45120 n - The remainder after *this* is divided *this* by *n*. Will be
45121 converted to a
<BigInteger>.
45129 <divRem>,
<quotient>
45131 BigInteger.prototype.remainder = function(n) {
45132 return this.divRem(n)[
1];
45137 Calculate the integer quotient and remainder of two
<BigIntegers>.
45139 <divRem> throws an exception if *n* is zero.
45143 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
45147 A two-element array containing the quotient and the remainder.
45151 is exactly equivalent to
45153 > [a.quotient(b), a.remainder(b)]
45155 except it is faster, because they are calculated at the same time.
45159 <quotient>,
<remainder>
45161 BigInteger.prototype.divRem = function(n) {
45164 throw new Error("Divide by zero");
45166 if (this._s ===
0) {
45167 return [ZERO, ZERO];
45169 if (n._d.length ===
1) {
45170 return this.divRemSmall(n._s * n._d[
0]);
45173 // Test for easy cases -- |n1| <= |n2|
45174 switch (this.compareAbs(n)) {
45175 case
0: // n1 == n2
45176 return [this._s === n._s ? ONE : M_ONE, ZERO];
45177 case -
1: // |n1| < |n2|
45178 return [ZERO, this];
45181 var sign = this._s * n._s;
45183 var b_digits = this._d;
45184 var b_index = b_digits.length;
45185 var digits = n._d.length;
45189 var part = new BigInteger([],
0, CONSTRUCT);
45192 part._d.unshift(b_digits[--b_index]);
45193 part = new BigInteger(part._d,
1, CONSTRUCT);
45195 if (part.compareAbs(n) <
0) {
45199 if (part._s ===
0) {
45203 var xlen = part._d.length, ylen = a._d.length;
45204 var highx = part._d[xlen-
1]*BigInteger_base + part._d[xlen-
2];
45205 var highy = a._d[ylen-
1]*BigInteger_base + a._d[ylen-
2];
45206 if (part._d.length
> a._d.length) {
45207 // The length of part._d can either match a._d length,
45208 // or exceed it by one.
45209 highx = (highx+
1)*BigInteger_base;
45211 guess = Math.ceil(highx/highy);
45214 var check = a.multiplySingleDigit(guess);
45215 if (check.compareAbs(part) <=
0) {
45225 var diff = part.subtract(check);
45226 part._d = diff._d.slice();
45229 return [new BigInteger(quot.reverse(), sign, CONSTRUCT),
45230 new BigInteger(part._d, this._s, CONSTRUCT)];
45233 // Throws an exception if n is outside of (-BigInteger.base, -
1] or
45234 // [
1, BigInteger.base). It's not necessary to call this, since the
45235 // other division functions will call it if they are able to.
45236 BigInteger.prototype.divRemSmall = function(n) {
45240 throw new Error("Divide by zero");
45243 var n_s = n <
0 ? -
1 :
1;
45244 var sign = this._s * n_s;
45247 if (n <
1 || n
>= BigInteger_base) {
45248 throw new Error("Argument out of range");
45251 if (this._s ===
0) {
45252 return [ZERO, ZERO];
45255 if (n ===
1 || n === -
1) {
45256 return [(sign ===
1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];
45259 //
2 <= n < BigInteger_base
45261 // divide a single digit by a single digit
45262 if (this._d.length ===
1) {
45263 var q = new BigInteger([(this._d[
0] / n) |
0],
1, CONSTRUCT);
45264 r = new BigInteger([(this._d[
0] % n) |
0],
1, CONSTRUCT);
45274 var digits = this._d.slice();
45275 var quot = new Array(digits.length);
45281 while (digits.length) {
45282 part = part * BigInteger_base + digits[digits.length -
1];
45286 diff = BigInteger_base * diff + part;
45293 guess = (part / n) |
0;
45296 var check = n * guess;
45297 diff = part - check;
45308 r = new BigInteger([diff],
1, CONSTRUCT);
45312 return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];
45317 Return true iff *this* is divisible by two.
45319 Note that
<BigInteger.ZERO
> is even.
45323 true if *this* is even, false otherwise.
45329 BigInteger.prototype.isEven = function() {
45330 var digits = this._d;
45331 return this._s ===
0 || digits.length ===
0 || (digits[
0] %
2) ===
0;
45336 Return true iff *this* is not divisible by two.
45340 true if *this* is odd, false otherwise.
45346 BigInteger.prototype.isOdd = function() {
45347 return !this.isEven();
45352 Get the sign of a
<BigInteger>.
45362 <isZero>,
<isPositive>,
<isNegative>,
<compare>,
<BigInteger.ZERO
>
45364 BigInteger.prototype.sign = function() {
45369 Function: isPositive
45370 Return true iff *this*
> 0.
45374 true if *this*.compare(
<BigInteger.ZERO
>) ==
1.
45378 <sign>,
<isZero>,
<isNegative>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
45380 BigInteger.prototype.isPositive = function() {
45381 return this._s
> 0;
45385 Function: isNegative
45386 Return true iff *this* <
0.
45390 true if *this*.compare(
<BigInteger.ZERO
>) == -
1.
45394 <sign>,
<isPositive>,
<isZero>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
45396 BigInteger.prototype.isNegative = function() {
45397 return this._s <
0;
45402 Return true iff *this* ==
0.
45406 true if *this*.compare(
<BigInteger.ZERO
>) ==
0.
45410 <sign>,
<isPositive>,
<isNegative>,
<isUnit>,
<BigInteger.ZERO
>
45412 BigInteger.prototype.isZero = function() {
45413 return this._s ===
0;
45418 Multiply a
<BigInteger> by a power of
10.
45420 This is equivalent to, but faster than
45423 > return this.multiply(BigInteger("
1e" + n));
45426 > return this.quotient(BigInteger("
1e" + -n));
45431 n - The power of
10 to multiply *this* by. *n* is converted to a
45432 javascipt number and must be no greater than
<BigInteger.MAX_EXP
>
45433 (
0x7FFFFFFF), or an exception will be thrown.
45437 *this* * (
10 ** *n*), truncated to an integer if necessary.
45443 BigInteger.prototype.exp10 = function(n) {
45448 if (Math.abs(n)
> Number(MAX_EXP)) {
45449 throw new Error("exponent too large in BigInteger.exp10");
45451 // Optimization for this ==
0. This also keeps us from having to trim zeros in the positive n case
45452 if (this._s ===
0) {
45456 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
45458 for (; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
45464 k = k.multiplySingleDigit(Math.pow(
10, n));
45465 return (this._s <
0 ? k.negate() : k);
45466 } else if (-n
>= this._d.length*BigInteger_base_log10) {
45469 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
45471 for (n = -n; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
45474 return (n ==
0) ? k : k.divRemSmall(Math.pow(
10, n))[
0];
45480 Raise a
<BigInteger> to a power.
45482 In this implementation,
0**
0 is
1.
45486 n - The exponent to raise *this* by. *n* must be no greater than
45487 <BigInteger.MAX_EXP
> (
0x7FFFFFFF), or an exception will be thrown.
45491 *this* raised to the *nth* power.
45497 BigInteger.prototype.pow = function(n) {
45498 if (this.isUnit()) {
45503 return BigInteger(n).isOdd() ? this : this.negate();
45511 else if (n._s <
0) {
45512 if (this._s ===
0) {
45513 throw new Error(
"Divide by zero");
45519 if (this._s ===
0) {
45526 if (n.compareAbs(MAX_EXP)
> 0) {
45527 throw new Error(
"exponent too large in BigInteger.pow");
45531 var two = BigInteger.small[
2];
45533 while (n.isPositive()) {
45535 aux = aux.multiply(x);
45541 n = n.quotient(two);
45549 Raise a
<BigInteger> to a power (mod m).
45551 Because it is reduced by a modulus,
<modPow> is not limited by
45552 <BigInteger.MAX_EXP
> like
<pow>.
45556 exponent - The exponent to raise *this* by. Must be positive.
45557 modulus - The modulus.
45561 *this* ^ *exponent* (mod *modulus*).
45567 BigInteger.prototype.modPow = function(exponent, modulus) {
45571 while (exponent.isPositive()) {
45572 if (exponent.isOdd()) {
45573 result = result.multiply(base).remainder(modulus);
45576 exponent = exponent.quotient(BigInteger.small[
2]);
45577 if (exponent.isPositive()) {
45578 base = base.square().remainder(modulus);
45587 Get the natural logarithm of a
<BigInteger> as a native JavaScript number.
45589 This is equivalent to
45591 > Math.log(this.toJSValue())
45593 but handles values outside of the native number range.
45603 BigInteger.prototype.log = function() {
45605 case
0: return -Infinity;
45606 case -
1: return NaN;
45607 default: // Fall through.
45610 var l = this._d.length;
45612 if (l*BigInteger_base_log10 <
30) {
45613 return Math.log(this.valueOf());
45616 var N = Math.ceil(
30/BigInteger_base_log10);
45617 var firstNdigits = this._d.slice(l - N);
45618 return Math.log((new BigInteger(firstNdigits,
1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);
45623 Convert a
<BigInteger> to a native JavaScript integer.
45625 This is called automatically by JavaScipt to convert a
<BigInteger> to a
45630 > parseInt(this.toString(),
10)
45634 <toString>,
<toJSValue>
45636 BigInteger.prototype.valueOf = function() {
45637 return parseInt(this.toString(),
10);
45641 Function: toJSValue
45642 Convert a
<BigInteger> to a native JavaScript integer.
45644 This is the same as valueOf, but more explicitly named.
45648 > parseInt(this.toString(),
10)
45652 <toString>,
<valueOf>
45654 BigInteger.prototype.toJSValue = function() {
45655 return parseInt(this.toString(),
10);
45658 var MAX_EXP = BigInteger(
0x7FFFFFFF);
45659 // Constant: MAX_EXP
45660 // The largest exponent allowed in
<pow> and
<exp10> (
0x7FFFFFFF or
2147483647).
45661 BigInteger.MAX_EXP = MAX_EXP;
45664 function makeUnary(fn) {
45665 return function(a) {
45666 return fn.call(BigInteger(a));
45670 function makeBinary(fn) {
45671 return function(a, b) {
45672 return fn.call(BigInteger(a), BigInteger(b));
45676 function makeTrinary(fn) {
45677 return function(a, b, c) {
45678 return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));
45684 var unary = "toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(",");
45685 var binary = "compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(",");
45686 var trinary = ["modPow"];
45688 for (i =
0; i < unary.length; i++) {
45690 BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);
45693 for (i =
0; i < binary.length; i++) {
45695 BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);
45698 for (i =
0; i < trinary.length; i++) {
45700 BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);
45703 BigInteger.exp10 = function(x, n) {
45704 return BigInteger(x).exp10(n);
45709 exports.BigInteger = BigInteger;
45710 })(typeof exports !== 'undefined' ? exports : this);
45712 <script>(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.zxcvbn = 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
<r.length;o++)s(r[o]);return s})({
1:[function(require,module,exports){
45713 var adjacency_graphs;adjacency_graphs={qwerty:{
"!":[
"`~",null,null,
"2@",
"qQ",null],'
"':[";:
","[{
","]}
",null,null,"/?
"],"#
":["2@
",null,null,"4$
","eE
","wW
"],$:["3#
",null,null,"5%
","rR
","eE
"],"%
":["4$
",null,null,"6^
","tT
","rR
"],"&
":["6^
",null,null,"8*
","uU
","yY
"],"'
":[";:
","[{
","]}
",null,null,"/?
"],"(
":["8*
",null,null,"0)
","oO
","iI
"],")
":["9(
",null,null,"-_
","pP
","oO
"],"*
":["7&
",null,null,"9(
","iI
","uU
"],"+
":["-_
",null,null,null,"]}
","[{
"],",
":["mM
","kK
","lL
",".
>",null,null],"-
":["0)
",null,null,"=+
","[{
","pP
"],".
":[",<
","lL
",";:
","/?
",null,null],"/
":[".
>",";:
","'\
"",null,null,null],
0:[
"9(",null,null,
"-_",
"pP",
"oO"],
1:[
"`~",null,null,
"2@",
"qQ",null],
2:[
"1!",null,null,
"3#",
"wW",
"qQ"],
3:[
"2@",null,null,
"4$",
"eE",
"wW"],
4:[
"3#",null,null,
"5%",
"rR",
"eE"],
5:[
"4$",null,null,
"6^",
"tT",
"rR"],
6:[
"5%",null,null,
"7&",
"yY",
"tT"],
7:[
"6^",null,null,
"8*",
"uU",
"yY"],
8:[
"7&",null,null,
"9(",
"iI",
"uU"],
9:[
"8*",null,null,
"0)",
"oO",
"iI"],
":":[
"lL",
"pP",
"[{",
"'\"","/?
",".
>"],";
":["lL
","pP
","[{
","'\
"",
"/?",
".>"],
"<":[
"mM",
"kK",
"lL",
".>",null,null],
"=":[
"-_",null,null,null,
"]}",
"[{"],
">":[
",<",
"lL",
";:",
"/?",null,null],
"?":[
".>",
";:",
"'\"",null,null,null],"@
":["1!
",null,null,"3#
","wW
","qQ
"],A:[null,"qQ
","wW
","sS
","zZ
",null],B:["vV
","gG
","hH
","nN
",null,null],C:["xX
","dD
","fF
","vV
",null,null],D:["sS
","eE
","rR
","fF
","cC
","xX
"],E:["wW
","3#
","4$
","rR
","dD
","sS
"],F:["dD
","rR
","tT
","gG
","vV
","cC
"],G:["fF
","tT
","yY
","hH
","bB
","vV
"],H:["gG
","yY
","uU
","jJ
","nN
","bB
"],I:["uU
","8*
","9(
","oO
","kK
","jJ
"],J:["hH
","uU
","iI
","kK
","mM
","nN
"],K:["jJ
","iI
","oO
","lL
",",<
","mM
"],L:["kK
","oO
","pP
",";:
",".
>",",<
"],M:["nN
","jJ
","kK
",",<
",null,null],N:["bB
","hH
","jJ
","mM
",null,null],O:["iI
","9(
","0)
","pP
","lL
","kK
"],P:["oO
","0)
","-_
","[{
",";:
","lL
"],Q:[null,"1!
","2@
","wW
","aA
",null],R:["eE
","4$
","5%
","tT
","fF
","dD
"],S:["aA
","wW
","eE
","dD
","xX
","zZ
"],T:["rR
","5%
","6^
","yY
","gG
","fF
"],U:["yY
","7&
","8*
","iI
","jJ
","hH
"],V:["cC
","fF
","gG
","bB
",null,null],W:["qQ
","2@
","3#
","eE
","sS
","aA
"],X:["zZ
","sS
","dD
","cC
",null,null],Y:["tT
","6^
","7&
","uU
","hH
","gG
"],Z:[null,"aA
","sS
","xX
",null,null],"[
":["pP
","-_
","=+
","]}
","'\
"",
";:"],
"\\":[
"]}",null,null,null,null,null],
"]":[
"[{",
"=+",null,
"\\|",null,
"'\""],"^
":["5%
",null,null,"7&
","yY
","tT
"],_:["0)
",null,null,"=+
","[{
","pP
"],"`
":[null,null,null,"1!
",null,null],a:[null,"qQ
","wW
","sS
","zZ
",null],b:["vV
","gG
","hH
","nN
",null,null],c:["xX
","dD
","fF
","vV
",null,null],d:["sS
","eE
","rR
","fF
","cC
","xX
"],e:["wW
","3#
","4$
","rR
","dD
","sS
"],f:["dD
","rR
","tT
","gG
","vV
","cC
"],g:["fF
","tT
","yY
","hH
","bB
","vV
"],h:["gG
","yY
","uU
","jJ
","nN
","bB
"],i:["uU
","8*
","9(
","oO
","kK
","jJ
"],j:["hH
","uU
","iI
","kK
","mM
","nN
"],k:["jJ
","iI
","oO
","lL
",",<
","mM
"],l:["kK
","oO
","pP
",";:
",".
>",",<
"],m:["nN
","jJ
","kK
",",<
",null,null],n:["bB
","hH
","jJ
","mM
",null,null],o:["iI
","9(
","0)
","pP
","lL
","kK
"],p:["oO
","0)
","-_
","[{
",";:
","lL
"],q:[null,"1!
","2@
","wW
","aA
",null],r:["eE
","4$
","5%
","tT
","fF
","dD
"],s:["aA
","wW
","eE
","dD
","xX
","zZ
"],t:["rR
","5%
","6^
","yY
","gG
","fF
"],u:["yY
","7&
","8*
","iI
","jJ
","hH
"],v:["cC
","fF
","gG
","bB
",null,null],w:["qQ
","2@
","3#
","eE
","sS
","aA
"],x:["zZ
","sS
","dD
","cC
",null,null],y:["tT
","6^
","7&
","uU
","hH
","gG
"],z:[null,"aA
","sS
","xX
",null,null],"{
":["pP
","-_
","=+
","]}
","'\
"",
";:"],
"|":[
"]}",null,null,null,null,null],
"}":[
"[{",
"=+",null,
"\\|",null,
"'\""],"~
":[null,null,null,"1!
",null,null]},dvorak:{"!
":["`~
",null,null,"2@
","'\
"",null],'
"':[null,"1!
","2@
",",<
","aA
",null],"#
":["2@
",null,null,"4$
",".
>",",<
"],$:["3#
",null,null,"5%
","pP
",".
>"],"%
":["4$
",null,null,"6^
","yY
","pP
"],"&
":["6^
",null,null,"8*
","gG
","fF
"],"'
":[null,"1!
","2@
",",<
","aA
",null],"(
":["8*
",null,null,"0)
","rR
","cC
"],")
":["9(
",null,null,"[{
","lL
","rR
"],"*
":["7&
",null,null,"9(
","cC
","gG
"],"+
":["/?
","]}
",null,"\\|
",null,"-_
"],",
":["'\
"",
"2@",
"3#",
".>",
"oO",
"aA"],
"-":[
"sS",
"/?",
"=+",null,null,
"zZ"],
".":[
",<",
"3#",
"4$",
"pP",
"eE",
"oO"],
"/":[
"lL",
"[{",
"]}",
"=+",
"-_",
"sS"],
0:[
"9(",null,null,
"[{",
"lL",
"rR"],
1:[
"`~",null,null,
"2@",
"'\"",null],2:["1!
",null,null,"3#
",",<
","'\
""],
3:[
"2@",null,null,
"4$",
".>",
",<"],
4:[
"3#",null,null,
"5%",
"pP",
".>"],
5:[
"4$",null,null,
"6^",
"yY",
"pP"],
6:[
"5%",null,null,
"7&",
"fF",
"yY"],
7:[
"6^",null,null,
"8*",
"gG",
"fF"],
8:[
"7&",null,null,
"9(",
"cC",
"gG"],
9:[
"8*",null,null,
"0)",
"rR",
"cC"],
":":[null,
"aA",
"oO",
"qQ",null,null],
";":[null,
"aA",
"oO",
"qQ",null,null],
"<":[
"'\"","2@
","3#
",".
>","oO
","aA
"],"=
":["/?
","]}
",null,"\\|
",null,"-_
"],">":[",<
","3#
","4$
","pP
","eE
","oO
"],"?
":["lL
","[{
","]}
","=+
","-_
","sS
"],"@
":["1!
",null,null,"3#
",",<
","'\
""],A:[null,
"'\"",",<
","oO
",";:
",null],B:["xX
","dD
","hH
","mM
",null,null],C:["gG
","8*
","9(
","rR
","tT
","hH
"],D:["iI
","fF
","gG
","hH
","bB
","xX
"],E:["oO
",".
>","pP
","uU
","jJ
","qQ
"],F:["yY
","6^
","7&
","gG
","dD
","iI
"],G:["fF
","7&
","8*
","cC
","hH
","dD
"],H:["dD
","gG
","cC
","tT
","mM
","bB
"],I:["uU
","yY
","fF
","dD
","xX
","kK
"],J:["qQ
","eE
","uU
","kK
",null,null],K:["jJ
","uU
","iI
","xX
",null,null],L:["rR
","0)
","[{
","/?
","sS
","nN
"],M:["bB
","hH
","tT
","wW
",null,null],N:["tT
","rR
","lL
","sS
","vV
","wW
"],O:["aA
",",<
",".
>","eE
","qQ
",";:
"],P:[".
>","4$
","5%
","yY
","uU
","eE
"],Q:[";:
","oO
","eE
","jJ
",null,null],R:["cC
","9(
","0)
","lL
","nN
","tT
"],S:["nN
","lL
","/?
","-_
","zZ
","vV
"],T:["hH
","cC
","rR
","nN
","wW
","mM
"],U:["eE
","pP
","yY
","iI
","kK
","jJ
"],V:["wW
","nN
","sS
","zZ
",null,null],W:["mM
","tT
","nN
","vV
",null,null],X:["kK
","iI
","dD
","bB
",null,null],Y:["pP
","5%
","6^
","fF
","iI
","uU
"],Z:["vV
","sS
","-_
",null,null,null],"[
":["0)
",null,null,"]}
","/?
","lL
"],"\\
":["=+
",null,null,null,null,null],"]
":["[{
",null,null,null,"=+
","/?
"],"^
":["5%
",null,null,"7&
","fF
","yY
"],_:["sS
","/?
","=+
",null,null,"zZ
"],"`
":[null,null,null,"1!
",null,null],a:[null,"'\
"",
",<",
"oO",
";:",null],b:[
"xX",
"dD",
"hH",
"mM",null,null],c:[
"gG",
"8*",
"9(",
"rR",
"tT",
"hH"],d:[
"iI",
"fF",
"gG",
"hH",
"bB",
"xX"],e:[
"oO",
".>",
"pP",
"uU",
"jJ",
"qQ"],f:[
"yY",
"6^",
"7&",
"gG",
"dD",
"iI"],g:[
"fF",
"7&",
"8*",
"cC",
"hH",
"dD"],h:[
"dD",
"gG",
"cC",
"tT",
"mM",
"bB"],i:[
"uU",
"yY",
"fF",
"dD",
"xX",
"kK"],j:[
"qQ",
"eE",
"uU",
"kK",null,null],k:[
"jJ",
"uU",
"iI",
"xX",null,null],l:[
"rR",
"0)",
"[{",
"/?",
"sS",
"nN"],m:[
"bB",
"hH",
"tT",
"wW",null,null],n:[
"tT",
"rR",
"lL",
"sS",
"vV",
"wW"],o:[
"aA",
",<",
".>",
"eE",
"qQ",
";:"],p:[
".>",
"4$",
"5%",
"yY",
"uU",
"eE"],q:[
";:",
"oO",
"eE",
"jJ",null,null],r:[
"cC",
"9(",
"0)",
"lL",
"nN",
"tT"],s:[
"nN",
"lL",
"/?",
"-_",
"zZ",
"vV"],t:[
"hH",
"cC",
"rR",
"nN",
"wW",
"mM"],u:[
"eE",
"pP",
"yY",
"iI",
"kK",
"jJ"],v:[
"wW",
"nN",
"sS",
"zZ",null,null],w:[
"mM",
"tT",
"nN",
"vV",null,null],x:[
"kK",
"iI",
"dD",
"bB",null,null],y:[
"pP",
"5%",
"6^",
"fF",
"iI",
"uU"],z:[
"vV",
"sS",
"-_",null,null,null],
"{":[
"0)",null,null,
"]}",
"/?",
"lL"],
"|":[
"=+",null,null,null,null,null],
"}":[
"[{",null,null,null,
"=+",
"/?"],
"~":[null,null,null,
"1!",null,null]},keypad:{
"*":[
"/",null,null,null,
"-",
"+",
"9",
"8"],
"+":[
"9",
"*",
"-",null,null,null,null,
"6"],
"-":[
"*",null,null,null,null,null,
"+",
"9"],
".":[
"0",
"2",
"3",null,null,null,null,null],
"/":[null,null,null,null,
"*",
"9",
"8",
"7"],
0:[null,
"1",
"2",
"3",
".",null,null,null],
1:[null,null,
"4",
"5",
"2",
"0",null,null],
2:[
"1",
"4",
"5",
"6",
"3",
".",
"0",null],
3:[
"2",
"5",
"6",null,null,null,
".",
"0"],
4:[null,null,
"7",
"8",
"5",
"2",
"1",null],
5:[
"4",
"7",
"8",
"9",
"6",
"3",
"2",
"1"],
6:[
"5",
"8",
"9",
"+",null,null,
"3",
"2"],
7:[null,null,null,
"/",
"8",
"5",
"4",null],
8:[
"7",null,
"/",
"*",
"9",
"6",
"5",
"4"],
9:[
"8",
"/",
"*",
"-",
"+",null,
"6",
"5"]},mac_keypad:{
"*":[
"/",null,null,null,null,null,
"-",
"9"],
"+":[
"6",
"9",
"-",null,null,null,null,
"3"],
"-":[
"9",
"/",
"*",null,null,null,
"+",
"6"],
".":[
"0",
"2",
"3",null,null,null,null,null],
"/":[
"=",null,null,null,
"*",
"-",
"9",
"8"],
0:[null,
"1",
"2",
"3",
".",null,null,null],
1:[null,null,
"4",
"5",
"2",
"0",null,null],
2:[
"1",
"4",
"5",
"6",
"3",
".",
"0",null],
3:[
"2",
"5",
"6",
"+",null,null,
".",
"0"],
4:[null,null,
"7",
"8",
"5",
"2",
"1",null],
5:[
"4",
"7",
"8",
"9",
"6",
"3",
"2",
"1"],
6:[
"5",
"8",
"9",
"-",
"+",null,
"3",
"2"],
7:[null,null,null,
"=",
"8",
"5",
"4",null],
8:[
"7",null,
"=",
"/",
"9",
"6",
"5",
"4"],
9:[
"8",
"=",
"/",
"*",
"-",
"+",
"6",
"5"],
"=":[null,null,null,null,
"/",
"9",
"8",
"7"]}},module.exports=adjacency_graphs;
45715 },{}],
2:[function(require,module,exports){
45716 var feedback,scoring;scoring=require(
"./scoring"),feedback={default_feedback:{warning:
"",suggestions:[
"Use a few words, avoid common phrases",
"No need for symbols, digits, or uppercase letters"]},get_feedback:function(e,s){var a,t,r,n,o,i;if(
0===s.length)return this.default_feedback;if(e
>2)return{warning:
"",suggestions:[]};for(n=s[
0],i=s.slice(
1),t=
0,r=i.length;t
<r;t++)o=i[t],o.token.length
>n.token.length&&(n=o);return feedback=this.get_match_feedback(n,
1===s.length),
a="Add another word or two. Uncommon words are better.",null!=feedback?(feedback.suggestions.unshift(a),null==feedback.warning&&(feedback.
warning="")):feedback={warning:"",suggestions:[a]},feedback},get_match_feedback:function(e,s){var a,t;switch(e.pattern){case"dictionary":return this.get_dictionary_match_feedback(e,s);case"spatial":return a=e.graph.toUpperCase(),t=
1===e.turns?"Straight rows of keys are easy to guess":"Short keyboard patterns are easy to guess",{warning:t,suggestions:["Use a longer keyboard pattern with more turns"]};case"repeat":return t=
1===e.base_token.length?'Repeats like "aaa" are easy to guess':'Repeats like "abcabcabc" are only slightly harder to guess than "abc"',{warning:t,suggestions:["Avoid repeated words and characters"]};case"sequence":return{warning:"Sequences like abc or
6543 are easy to guess",suggestions:["Avoid sequences"]};case"regex":if("recent_year"===e.regex_name)return{warning:"Recent years are easy to guess",suggestions:["Avoid recent years","Avoid years that are associated with you"]};break;case"date":return{warning:"Dates are often easy to guess",suggestions:["Avoid dates and years that are associated with you"]}}},get_dictionary_match_feedback:function(e,s){var a,t,r,n,o;return
n="passwords"===e.dictionary_name?!s||e.l33t||e.reversed?e.guesses_log10<=
4?"This is similar to a commonly used password":void
0:e.rank<=
10?"This is a top-
10 common password":e.rank<=
100?"This is a top-
100 common password":"This is a very common password":"english"===e.dictionary_name?s?"A word by itself is easy to guess":void
0:"surnames"===(a=e.dictionary_name)||"male_names"===a||"female_names"===a?s?"Names and surnames by themselves are easy to guess":"Common names and surnames are easy to guess":"",r=[],o=e.token,o.match(scoring.START_UPPER)?r.push("Capitalization doesn't help very much"):o.match(scoring.ALL_UPPER)&&o.toLowerCase()!==o&&r.push("All-uppercase is almost as easy to guess as all-lowercase"),e.reversed&&e.token.length
>=
4&&r.push("Reversed words aren't much harder to guess"),e.l33t&&r.push("Predictable substitutions like '@' instead of 'a' don't help very much"),t={warning:n,suggestions:r}}},module.exports=feedback;
45718 },{"./scoring":
6}],
3:[function(require,module,exports){
45719 var frequency_lists;frequency_lists={passwords:"
123456,password,
12345678,qwerty,
123456789,
12345,
1234,
111111,
1234567,dragon,
123123,baseball,abc123,football,monkey,letmein,shadow,master,
696969,mustang,
666666,qwertyuiop,
123321,
1234567890,pussy,superman,
654321,
1qaz2wsx,
7777777,fuckyou,qazwsx,jordan,
123qwe,
000000,killer,trustno1,hunter,harley,zxcvbnm,asdfgh,buster,batman,soccer,tigger,charlie,sunshine,iloveyou,fuckme,ranger,hockey,computer,starwars,asshole,pepper,klaster,
112233,zxcvbn,freedom,princess,maggie,pass,ginger,
11111111,
131313,fuck,love,cheese,
159753,summer,chelsea,dallas,biteme,matrix,yankees,
6969,corvette,austin,access,thunder,merlin,secret,diamond,hello,hammer,fucker,
1234qwer,silver,gfhjkm,internet,samantha,golfer,scooter,test,orange,cookie,q1w2e3r4t5,maverick,sparky,phoenix,mickey,bigdog,snoopy,guitar,whatever,chicken,camaro,mercedes,peanut,ferrari,falcon,cowboy,welcome,sexy,samsung,steelers,smokey,dakota,arsenal,boomer,eagles,tigers,marina,nascar,booboo,gateway,yellow,porsche,monster,spider,diablo,hannah,bulldog,junior,london,purple,compaq,lakers,iceman,qwer1234,hardcore,cowboys,money,banana,ncc1701,boston,tennis,q1w2e3r4,coffee,scooby,
123654,nikita,yamaha,mother,barney,brandy,chester,fuckoff,oliver,player,forever,rangers,midnight,chicago,bigdaddy,redsox,angel,badboy,fender,jasper,slayer,rabbit,natasha,marine,bigdick,wizard,marlboro,raiders,prince,casper,fishing,flower,jasmine,iwantu,panties,adidas,winter,winner,gandalf,password1,enter,ghbdtn,
1q2w3e4r,golden,cocacola,jordan23,winston,madison,angels,panther,blowme,sexsex,bigtits,spanky,bitch,sophie,asdfasdf,horny,thx1138,toyota,tiger,dick,canada,
12344321,blowjob,
8675309,muffin,liverpoo,apples,qwerty123,passw0rd,abcd1234,pokemon,
123abc,slipknot,qazxsw,
123456a,scorpion,qwaszx,butter,startrek,rainbow,asdfghjkl,razz,newyork,redskins,gemini,cameron,qazwsxedc,florida,liverpool,turtle,sierra,viking,booger,butthead,doctor,rocket,
159357,dolphins,captain,bandit,jaguar,packers,pookie,peaches,
789456,asdf,dolphin,helpme,blue,theman,maxwell,qwertyui,shithead,lovers,maddog,giants,nirvana,metallic,hotdog,rosebud,mountain,warrior,stupid,elephant,suckit,success,bond007,jackass,alexis,porn,lucky,scorpio,samson,q1w2e3,azerty,rush2112,driver,freddy,
1q2w3e4r5t,sydney,gators,dexter,red123,
123456q,
12345a,bubba,creative,voodoo,golf,trouble,america,nissan,gunner,garfield,bullshit,asdfghjk,
5150,fucking,apollo,
1qazxsw2,
2112,eminem,legend,airborne,bear,beavis,apple,brooklyn,godzilla,skippy,
4815162342,buddy,qwert,kitten,magic,shelby,beaver,phantom,asdasd,xavier,braves,darkness,blink182,copper,platinum,qweqwe,tomcat,
01012011,girls,bigboy,
102030,animal,police,online,
11223344,voyager,lifehack,
12qwaszx,fish,sniper,
315475,trinity,blazer,heaven,lover,snowball,playboy,loveme,bubbles,hooters,cricket,willow,donkey,topgun,nintendo,saturn,destiny,pakistan,pumpkin,digital,sergey,redwings,explorer,tits,private,runner,therock,guinness,lasvegas,beatles,
789456123,fire,cassie,christin,qwerty1,celtic,asdf1234,andrey,broncos,
007007,babygirl,eclipse,fluffy,cartman,michigan,carolina,testing,alexande,birdie,pantera,cherry,vampire,mexico,dickhead,buffalo,genius,montana,beer,minecraft,maximus,flyers,lovely,stalker,metallica,doggie,snickers,speedy,bronco,lol123,paradise,yankee,horses,magnum,dreams,
147258369,lacrosse,ou812,goober,enigma,qwertyu,scotty,pimpin,bollocks,surfer,cock,poohbear,genesis,star,asd123,qweasdzxc,racing,hello1,hawaii,eagle1,viper,poopoo,einstein,boobies,
12345q,bitches,drowssap,simple,badger,alaska,action,jester,drummer,
111222,spitfire,forest,maryjane,champion,diesel,svetlana,friday,hotrod,
147258,chevy,lucky1,westside,security,google,badass,tester,shorty,thumper,hitman,mozart,zaq12wsx,boobs,reddog,
010203,lizard,a123456,
123456789a,ruslan,eagle,
1232323q,scarface,qwerty12,
147852,a12345,buddha,porno,
420420,spirit,money1,stargate,qwe123,naruto,mercury,liberty,
12345qwert,semperfi,suzuki,popcorn,spooky,marley,scotland,kitty,cherokee,vikings,simpsons,rascal,qweasd,hummer,loveyou,michael1,patches,russia,jupiter,penguin,passion,cumshot,vfhbyf,honda,vladimir,sandman,passport,raider,bastard,
123789,infinity,assman,bulldogs,fantasy,sucker,
1234554321,horney,domino,budlight,disney,ironman,usuckballz1,softball,brutus,redrum,bigred,mnbvcxz,fktrcfylh,karina,marines,digger,kawasaki,cougar,fireman,oksana,monday,cunt,justice,nigger,super,wildcats,tinker,logitech,dancer,swordfis,avalon,everton,alexandr,motorola,patriots,hentai,madonna,pussy1,ducati,colorado,connor,juventus,galore,smooth,freeuser,warcraft,boogie,titanic,wolverin,elizabet,arizona,valentin,saints,asdfg,accord,test123,password123,christ,yfnfif,stinky,slut,spiderma,naughty,chopper,hello123,ncc1701d,extreme,skyline,poop,zombie,pearljam,
123qweasd,froggy,awesome,vision,pirate,fylhtq,dreamer,bullet,predator,empire,
123123a,kirill,charlie1,panthers,penis,skipper,nemesis,rasdzv3,peekaboo,rolltide,cardinal,psycho,danger,mookie,happy1,wanker,chevelle,manutd,goblue,
9379992,hobbes,vegeta,fyfcnfcbz,
852456,picard,
159951,windows,loverboy,victory,vfrcbv,bambam,serega,
123654789,turkey,tweety,galina,hiphop,rooster,changeme,berlin,taurus,suckme,polina,electric,avatar,
134679,maksim,raptor,alpha1,hendrix,newport,bigcock,brazil,spring,a1b2c3,madmax,alpha,britney,sublime,darkside,bigman,wolfpack,classic,hercules,ronaldo,letmein1,
1q2w3e,
741852963,spiderman,blizzard,
123456789q,cheyenne,cjkysirj,tiger1,wombat,bubba1,pandora,zxc123,holiday,wildcat,devils,horse,alabama,
147852369,caesar,
12312,buddy1,bondage,pussycat,pickle,shaggy,catch22,leather,chronic,a1b2c3d4,admin,qqq111,qaz123,airplane,kodiak,freepass,billybob,sunset,katana,phpbb,chocolat,snowman,angel1,stingray,firebird,wolves,zeppelin,detroit,pontiac,gundam,panzer,vagina,outlaw,redhead,tarheels,greenday,nastya,
01011980,hardon,engineer,dragon1,hellfire,serenity,cobra,fireball,lickme,darkstar,
1029384756,
01011,mustang1,flash,
124578,strike,beauty,pavilion,
01012000,bobafett,dbrnjhbz,bigmac,bowling,chris1,ytrewq,natali,pyramid,rulez,welcome1,dodgers,apache,swimming,whynot,teens,trooper,fuckit,defender,precious,
135790,packard,weasel,popeye,lucifer,cancer,icecream,
142536,raven,swordfish,presario,viktor,rockstar,blonde,james1,wutang,spike,pimp,atlanta,airforce,thailand,casino,lennon,mouse,
741852,hacker,bluebird,hawkeye,
456123,theone,catfish,sailor,goldfish,nfnmzyf,tattoo,pervert,barbie,maxima,nipples,machine,trucks,wrangler,rocks,tornado,lights,cadillac,bubble,pegasus,madman,longhorn,browns,target,
666999,eatme,qazwsx123,microsoft,dilbert,christia,baller,lesbian,shooter,xfiles,seattle,qazqaz,cthutq,amateur,prelude,corona,freaky,malibu,
123qweasdzxc,assassin,
246810,atlantis,integra,pussies,iloveu,lonewolf,dragons,monkey1,unicorn,software,bobcat,stealth,peewee,openup,
753951,srinivas,zaqwsx,valentina,shotgun,trigger,veronika,bruins,coyote,babydoll,joker,dollar,lestat,rocky1,hottie,random,butterfly,wordpass,smiley,sweety,snake,chipper,woody,samurai,devildog,gizmo,maddie,soso123aljg,mistress,freedom1,flipper,express,hjvfirf,moose,cessna,piglet,polaris,teacher,montreal,cookies,wolfgang,scully,fatboy,wicked,balls,tickle,bunny,dfvgbh,foobar,transam,pepsi,fetish,oicu812,basketba,toshiba,hotstuff,sunday,booty,gambit,
31415926,impala,stephani,jessica1,hooker,lancer,knicks,shamrock,fuckyou2,stinger,
314159,redneck,deftones,squirt,siemens,blaster,trucker,subaru,renegade,ibanez,manson,swinger,reaper,blondie,mylove,galaxy,blahblah,enterpri,travel,
1234abcd,babylon5,indiana,skeeter,master1,sugar,ficken,smoke,bigone,sweetpea,fucked,trfnthbyf,marino,escort,smitty,bigfoot,babes,larisa,trumpet,spartan,valera,babylon,asdfghj,yankees1,bigboobs,stormy,mister,hamlet,aardvark,butterfl,marathon,paladin,cavalier,manchester,skater,indigo,hornet,buckeyes,
01011990,indians,karate,hesoyam,toronto,diamonds,chiefs,buckeye,
1qaz2wsx3edc,highland,hotsex,charger,redman,passwor,maiden,drpepper,storm,pornstar,garden,
12345678910,pencil,sherlock,timber,thuglife,insane,pizza,jungle,jesus1,aragorn,
1a2b3c,hamster,david1,triumph,techno,lollol,pioneer,catdog,
321654,fktrctq,morpheus,
141627,pascal,shadow1,hobbit,wetpussy,erotic,consumer,blabla,justme,stones,chrissy,spartak,goforit,burger,pitbull,adgjmptw,italia,barcelona,hunting,colors,kissme,virgin,overlord,pebbles,sundance,emerald,doggy,racecar,irina,element,
1478963,zipper,alpine,basket,goddess,poison,nipple,sakura,chichi,huskers,
13579,pussys,q12345,ultimate,ncc1701e,blackie,nicola,rommel,matthew1,caserta,omega,geronimo,sammy1,trojan,
123qwe123,philips,nugget,tarzan,chicks,aleksandr,bassman,trixie,portugal,anakin,dodger,bomber,superfly,madness,q1w2e3r4t5y6,loser,
123asd,fatcat,ybrbnf,soldier,warlock,wrinkle1,desire,sexual,babe,seminole,alejandr,
951753,
11235813,westham,andrei,concrete,access14,weed,letmein2,ladybug,naked,christop,trombone,tintin,bluesky,rhbcnbyf,qazxswedc,onelove,cdtnkfyf,whore,vfvjxrf,titans,stallion,truck,hansolo,blue22,smiles,beagle,panama,kingkong,flatron,inferno,mongoose,connect,poiuyt,snatch,qawsed,juice,blessed,rocker,snakes,turbo,bluemoon,sex4me,finger,jamaica,a1234567,mulder,beetle,fuckyou1,passat,immortal,plastic,
123454321,anthony1,whiskey,dietcoke,suck,spunky,magic1,monitor,cactus,exigen,planet,ripper,teen,spyder,apple1,nolimit,hollywoo,sluts,sticky,trunks,
1234321,
14789632,pickles,sailing,bonehead,ghbdtnbr,delta,charlott,rubber,
911911,
112358,molly1,yomama,hongkong,jumper,william1,ilovesex,faster,unreal,cumming,memphis,
1123581321,nylons,legion,sebastia,shalom,pentium,geheim,werewolf,funtime,ferret,orion,curious,
555666,niners,cantona,sprite,philly,pirates,abgrtyu,lollipop,eternity,boeing,super123,sweets,cooldude,tottenha,green1,jackoff,stocking,
7895123,moomoo,martini,biscuit,drizzt,colt45,fossil,makaveli,snapper,satan666,maniac,salmon,patriot,verbatim,nasty,shasta,asdzxc,shaved,blackcat,raistlin,qwerty12345,punkrock,cjkywt,
01012010,
4128,waterloo,crimson,twister,oxford,musicman,seinfeld,biggie,condor,ravens,megadeth,wolfman,cosmos,sharks,banshee,keeper,foxtrot,gn56gn56,skywalke,velvet,black1,sesame,dogs,squirrel,privet,sunrise,wolverine,sucks,legolas,grendel,ghost,cats,carrot,frosty,lvbnhbq,blades,stardust,frog,qazwsxed,
121314,coolio,brownie,groovy,twilight,daytona,vanhalen,pikachu,peanuts,licker,hershey,jericho,intrepid,ninja,
1234567a,zaq123,lobster,goblin,punisher,strider,shogun,kansas,amadeus,seven7,jason1,neptune,showtime,muscle,oldman,ekaterina,rfrfirf,getsome,showme,
111222333,obiwan,skittles,danni,tanker,maestro,tarheel,anubis,hannibal,anal,newlife,gothic,shark,fighter,blue123,blues,
123456z,princes,slick,chaos,thunder1,sabine,
1q2w3e4r5t6y,python,test1,mirage,devil,clover,tequila,chelsea1,surfing,delete,potato,chubby,panasonic,sandiego,portland,baggins,fusion,sooners,blackdog,buttons,californ,moscow,playtime,mature,
1a2b3c4d,dagger,dima,stimpy,asdf123,gangster,warriors,iverson,chargers,byteme,swallow,liquid,lucky7,dingdong,nymets,cracker,mushroom,
456852,crusader,bigguy,miami,dkflbvbh,bugger,nimrod,tazman,stranger,newpass,doodle,powder,gotcha,guardian,dublin,slapshot,septembe,
147896325,pepsi1,milano,grizzly,woody1,knights,photos,
2468,nookie,charly,rammstein,brasil,
123321123,scruffy,munchkin,poopie,
123098,kittycat,latino,walnut,
1701,thegame,viper1,
1passwor,kolobok,picasso,robert1,barcelon,bananas,trance,auburn,coltrane,eatshit,goodluck,starcraft,wheels,parrot,postal,blade,wisdom,pink,gorilla,katerina,pass123,andrew1,shaney14,dumbass,osiris,fuck_inside,oakland,discover,ranger1,spanking,lonestar,bingo,meridian,ping,heather1,dookie,stonecol,megaman,
192837465,rjntyjr,ledzep,lowrider,
25802580,richard1,firefly,griffey,racerx,paradox,ghjcnj,gangsta,zaq1xsw2,tacobell,weezer,sirius,halflife,buffett,shiloh,
123698745,vertigo,sergei,aliens,sobaka,keyboard,kangaroo,sinner,soccer1,
0.0.000,bonjour,socrates,chucky,hotboy,sprint,
0007,sarah1,scarlet,celica,shazam,formula1,sommer,trebor,qwerasdf,jeep,mailcreated5240,bollox,asshole1,fuckface,honda1,rebels,vacation,lexmark,penguins,
12369874,ragnarok,formula,
258456,tempest,vfhecz,tacoma,qwertz,colombia,flames,rockon,duck,prodigy,wookie,dodgeram,mustangs,
123qaz,sithlord,smoker,server,bang,incubus,scoobydo,oblivion,molson,kitkat,titleist,rescue,zxcv1234,carpet,
1122,bigballs,tardis,jimbob,xanadu,blueeyes,shaman,mersedes,pooper,pussy69,golfing,hearts,mallard,
12312312,kenwood,patrick1,dogg,cowboys1,oracle,
123zxc,nuttertools,
102938,topper,
1122334455,shemale,sleepy,gremlin,yourmom,
123987,gateway1,printer,monkeys,peterpan,mikey,kingston,cooler,analsex,jimbo,pa55word,asterix,freckles,birdman,frank1,defiant,aussie,stud,blondes,tatyana,
445566,aspirine,mariners,jackal,deadhead,katrin,anime,rootbeer,frogger,polo,scooter1,hallo,noodles,thomas1,parola,shaolin,celine,
11112222,plymouth,creampie,justdoit,ohyeah,fatass,assfuck,amazon,
1234567q,kisses,magnus,camel,nopass,bosco,
987456,
6751520,harley1,putter,champs,massive,spidey,lightnin,camelot,letsgo,gizmodo,aezakmi,bones,caliente,
12121,goodtime,thankyou,raiders1,brucelee,redalert,aquarius,
456654,catherin,smokin,pooh,mypass,astros,roller,porkchop,sapphire,qwert123,kevin1,a1s2d3f4,beckham,atomic,rusty1,vanilla,qazwsxedcrfv,hunter1,kaktus,cxfcnmt,blacky,
753159,elvis1,aggies,blackjac,bangkok,scream,
123321q,iforgot,power1,kasper,abc12,buster1,slappy,shitty,veritas,chevrole,amber1,
01012001,vader,amsterdam,jammer,primus,spectrum,eduard,granny,horny1,sasha1,clancy,usa123,satan,diamond1,hitler,avenger,
1221,spankme,
123456qwerty,simba,smudge,scrappy,labrador,john316,syracuse,front242,falcons,husker,candyman,commando,gator,pacman,delta1,pancho,krishna,fatman,clitoris,pineappl,lesbians,
8j4ye3uz,barkley,vulcan,punkin,boner,celtics,monopoly,flyboy,romashka,hamburg,
123456aa,lick,gangbang,
223344,area51,spartans,aaa111,tricky,snuggles,drago,homerun,vectra,homer1,hermes,topcat,cuddles,infiniti,
1234567890q,cosworth,goose,phoenix1,killer1,ivanov,bossman,qawsedrf,peugeot,exigent,doberman,durango,brandon1,plumber,telefon,horndog,laguna,rbhbkk,dawg,webmaster,breeze,beast,porsche9,beefcake,leopard,redbull,oscar1,topdog,godsmack,theking,pics,omega1,speaker,viktoria,fuckers,bowler,starbuck,gjkbyf,valhalla,anarchy,blacks,herbie,kingpin,starfish,nokia,loveit,achilles,
906090,labtec,ncc1701a,fitness,jordan1,brando,arsenal1,bull,kicker,napass,desert,sailboat,bohica,tractor,hidden,muppet,jackson1,jimmy1,terminator,phillies,pa55w0rd,terror,farside,swingers,legacy,frontier,butthole,doughboy,jrcfyf,tuesday,sabbath,daniel1,nebraska,homers,qwertyuio,azamat,fallen,agent007,striker,camels,iguana,looker,pinkfloy,moloko,qwerty123456,dannyboy,luckydog,
789654,pistol,whocares,charmed,skiing,select,franky,puppy,daniil,vladik,vette,vfrcbvrf,ihateyou,nevada,moneys,vkontakte,mandingo,puppies,
666777,mystic,zidane,kotenok,dilligaf,budman,bunghole,zvezda,
123457,triton,golfball,technics,trojans,panda,laptop,rookie,
01011991,
15426378,aberdeen,gustav,jethro,enterprise,igor,stripper,filter,hurrican,rfnthbyf,lespaul,gizmo1,butch,
132435,dthjybrf,
1366613,excalibu,
963852,nofear,momoney,possum,cutter,oilers,moocow,cupcake,gbpltw,batman1,splash,svetik,super1,soleil,bogdan,melissa1,vipers,babyboy,tdutybq,lancelot,ccbill,keystone,passwort,flamingo,firefox,dogman,vortex,rebel,noodle,raven1,zaphod,killme,pokemon1,coolman,danila,designer,skinny,kamikaze,deadman,gopher,doobie,warhammer,deeznuts,freaks,engage,chevy1,steve1,apollo13,poncho,hammers,azsxdc,dracula,
000007,sassy,bitch1,boots,deskjet,
12332,macdaddy,mighty,rangers1,manchest,sterlin,casey1,meatball,mailman,sinatra,cthulhu,summer1,bubbas,cartoon,bicycle,eatpussy,truelove,sentinel,tolkien,breast,capone,lickit,summit,
123456k,peter1,daisy1,kitty1,
123456789z,crazy1,jamesbon,texas1,sexygirl,
362436,sonic,billyboy,redhot,microsof,microlab,daddy1,rockets,iloveyo,fernand,gordon24,danie,cutlass,polska,star69,titties,pantyhos,
01011985,thekid,aikido,gofish,mayday,
1234qwe,coke,anfield,sony,lansing,smut,scotch,sexx,catman,
73501505,hustler,saun,dfkthbz,passwor1,jenny1,azsxdcfv,cheers,irish1,gabrie,tinman,orioles,
1225,charlton,fortuna,
01011970,airbus,rustam,xtreme,bigmoney,zxcasd,retard,grumpy,huskies,boxing,
4runner,kelly1,ultima,warlord,fordf150,oranges,rotten,asdfjkl,superstar,denali,sultan,bikini,saratoga,thor,figaro,sixers,wildfire,vladislav,
128500,sparta,mayhem,greenbay,chewie,music1,number1,cancun,fabie,mellon,poiuytrewq,cloud9,crunch,bigtime,chicken1,piccolo,bigbird,
321654987,billy1,mojo,
01011981,maradona,sandro,chester1,bizkit,rjirfrgbde,
789123,rightnow,jasmine1,hyperion,treasure,meatloaf,armani,rovers,jarhead,
01011986,cruise,coconut,dragoon,utopia,davids,cosmo,rfhbyf,reebok,
1066,charli,giorgi,sticks,sayang,pass1234,exodus,anaconda,zaqxsw,illini,woofwoof,emily1,sandy1,packer,poontang,govols,jedi,tomato,beaner,cooter,creamy,lionking,happy123,albatros,poodle,kenworth,dinosaur,greens,goku,happyday,eeyore,tsunami,cabbage,holyshit,turkey50,memorex,chaser,bogart,orgasm,tommy1,volley,whisper,knopka,ericsson,walleye,
321123,pepper1,katie1,chickens,tyler1,corrado,twisted,
100000,zorro,clemson,zxcasdqwe,tootsie,milana,zenith,fktrcfylhf,shania,frisco,polniypizdec0211,crazybab,junebug,fugazi,rereirf,vfvekz,
1001,sausage,vfczyz,koshka,clapton,justin1,anhyeuem,condom,fubar,hardrock,skywalker,tundra,cocks,gringo,
150781,canon,vitalik,aspire,stocks,samsung1,applepie,abc12345,arjay,gandalf1,boob,pillow,sparkle,gmoney,rockhard,lucky13,samiam,everest,hellyeah,bigsexy,skorpion,rfrnec,hedgehog,australi,candle,slacker,dicks,voyeur,jazzman,america1,bobby1,br0d3r,wolfie,vfksirf,
1qa2ws3ed,
13243546,fright,yosemite,temp,karolina,fart,barsik,surf,cheetah,baddog,deniska,starship,bootie,milena,hithere,kume,greatone,dildo,
50cent,
0.0.0.000,albion,amanda1,midget,lion,maxell,football1,cyclone,freeporn,nikola,bonsai,kenshin,slider,balloon,roadkill,killbill,
222333,jerkoff,
78945612,dinamo,tekken,rambler,goliath,cinnamon,malaka,backdoor,fiesta,packers1,rastaman,fletch,sojdlg123aljg,stefano,artemis,calico,nyjets,damnit,robotech,duchess,rctybz,hooter,keywest,
18436572,hal9000,mechanic,pingpong,operator,presto,sword,rasputin,spank,bristol,faggot,shado,
963852741,amsterda,
321456,wibble,carrera,alibaba,majestic,ramses,duster,route66,trident,clipper,steeler,wrestlin,divine,kipper,gotohell,kingfish,snake1,passwords,buttman,pompey,viagra,zxcvbnm1,spurs,
332211,slutty,lineage2,oleg,macross,pooter,brian1,qwert1,charles1,slave,jokers,yzerman,swimmer,ne1469,nwo4life,solnce,seamus,lolipop,pupsik,moose1,ivanova,secret1,matador,love69,
420247,ktyjxrf,subway,cinder,vermont,pussie,chico,florian,magick,guiness,allsop,ghetto,flash1,a123456789,typhoon,dfkthf,depeche,skydive,dammit,seeker,fuckthis,crysis,kcj9wx5n,umbrella,r2d2c3po,
123123q,snoopdog,critter,theboss,ding,
162534,splinter,kinky,cyclops,jayhawk,
456321,caramel,qwer123,underdog,caveman,onlyme,grapes,feather,hotshot,fuckher,renault,george1,sex123,pippen,
000001,
789987,floppy,cunts,megapass,
1000,pornos,usmc,kickass,great1,quattro,
135246,wassup,helloo,p0015123,nicole1,chivas,shannon1,bullseye,java,fishes,blackhaw,jamesbond,tunafish,juggalo,dkflbckfd,
123789456,dallas1,translator,
122333,beanie,alucard,gfhjkm123,supersta,magicman,ashley1,cohiba,xbox360,caligula,
12131415,facial,
7753191,dfktynbyf,cobra1,cigars,fang,klingon,bob123,safari,looser,
10203,deepthroat,malina,
200000,tazmania,gonzo,goalie,jacob1,monaco,cruiser,misfit,vh5150,tommyboy,marino13,yousuck,sharky,vfhufhbnf,horizon,absolut,brighton,
123456r,death1,kungfu,maxx,forfun,mamapapa,enter1,budweise,banker,getmoney,kostya,qazwsx12,bigbear,vector,fallout,nudist,gunners,royals,chainsaw,scania,trader,blueboy,walrus,eastside,kahuna,qwerty1234,love123,steph,
01011989,cypress,champ,undertaker,ybrjkfq,europa,snowboar,sabres,moneyman,chrisbln,minime,nipper,groucho,whitey,viewsonic,penthous,wolf359,fabric,flounder,coolguy,whitesox,passme,smegma,skidoo,thanatos,fucku2,snapple,dalejr,mondeo,thesims,mybaby,panasoni,sinbad,thecat,topher,frodo,sneakers,q123456,z1x2c3,alfa,chicago1,taylor1,ghjcnjnfr,cat123,olivier,cyber,titanium,
0420,madison1,jabroni,dang,hambone,intruder,holly1,gargoyle,sadie1,static,poseidon,studly,newcastl,sexxxx,poppy,johannes,danzig,beastie,musica,buckshot,sunnyday,adonis,bluedog,bonkers,
2128506,chrono,compute,spawn,
01011988,turbo1,smelly,wapbbs,goldstar,ferrari1,
778899,quantum,pisces,boomboom,gunnar,
1024,test1234,florida1,nike,superman1,multiplelo,custom,motherlode,
1qwerty,westwood,usnavy,apple123,daewoo,korn,stereo,sasuke,sunflowe,watcher,dharma,
555777,mouse1,assholes,babyblue,
123qwerty,marius,walmart,snoop,starfire,tigger1,paintbal,knickers,aaliyah,lokomotiv,theend,winston1,sapper,rover,erotica,scanner,racer,zeus,sexy69,doogie,bayern,joshua1,newbie,scott1,losers,droopy,outkast,martin1,dodge1,wasser,ufkbyf,rjycnfynby,thirteen,
12345z,
112211,hotred,deejay,hotpussy,
192837,jessic,philippe,scout,panther1,cubbies,havefun,magpie,fghtkm,avalanch,newyork1,pudding,leonid,harry1,cbr600,audia4,bimmer,fucku,
01011984,idontknow,vfvfgfgf,
1357,aleksey,builder,
01011987,zerocool,godfather,mylife,donuts,allmine,redfish,
777888,sascha,nitram,bounce,
333666,smokes,
1x2zkg8w,rodman,stunner,zxasqw12,hoosier,hairy,beretta,insert,
123456s,rtyuehe,francesc,tights,cheese1,micron,quartz,hockey1,gegcbr,searay,jewels,bogey,paintball,celeron,padres,bing,syncmaster,ziggy,simon1,beaches,prissy,diehard,orange1,mittens,aleksandra,queens,
02071986,biggles,thongs,southpark,artur,twinkle,gretzky,rabota,cambiami,monalisa,gollum,chuckles,spike1,gladiator,whisky,spongebob,sexy1,
03082006,mazafaka,meathead,
4121,ou8122,barefoot,
12345678q,cfitymrf,bigass,a1s2d3,kosmos,blessing,titty,clevelan,terrapin,ginger1,johnboy,maggot,clarinet,deeznutz,
336699,stumpy,stoney,footbal,traveler,volvo,bucket,snapon,pianoman,hawkeyes,futbol,casanova,tango,goodboy,scuba,honey1,sexyman,warthog,mustard,abc1234,nickel,
10203040,meowmeow,
1012,boricua,prophet,sauron,
12qwas,reefer,andromeda,crystal1,joker1,
90210,goofy,loco,lovesex,triangle,whatsup,mellow,bengals,monster1,maste,
01011910,lover1,love1,
123aaa,sunshin,smeghead,hokies,sting,welder,rambo,cerberus,bunny1,rockford,monke,
1q2w3e4r5,goldwing,gabriell,buzzard,crjhgbjy,james007,rainman,groove,tiberius,purdue,nokia6300,hayabusa,shou,jagger,diver,zigzag,poochie,usarmy,phish,redwood,redwing,
12345679,salamander,silver1,abcd123,sputnik,boobie,ripple,eternal,
12qw34er,thegreat,allstar,slinky,gesperrt,mishka,whiskers,pinhead,overkill,sweet1,rhfcjnrf,montgom240,sersolution,jamie1,starman,proxy,swords,nikolay,bacardi,rasta,badgirl,rebecca1,wildman,penny1,spaceman,
1007,
10101,logan1,hacked,bulldog1,helmet,windsor,buffy1,runescape,trapper,
123451,banane,dbrnjh,ripken,
12345qwe,frisky,shun,fester,oasis,lightning,ib6ub9,cicero,kool,pony,thedog,
784512,
01011992,megatron,illusion,edward1,napster,
11223,squash,roadking,woohoo,
19411945,hoosiers,
01091989,tracker,bagira,midway,leavemealone,br549,
14725836,
235689,menace,rachel1,feng,laser,stoned,realmadrid,
787898,balloons,tinkerbell,
5551212,maria1,pobeda,heineken,sonics,moonlight,optimus,comet,orchid,
02071982,jaybird,kashmir,
12345678a,chuang,chunky,peach,mortgage,rulezzz,saleen,chuckie,zippy,fishing1,gsxr750,doghouse,maxim,reader,shai,buddah,benfica,chou,salomon,meister,eraser,blackbir,bigmike,starter,pissing,angus,deluxe,eagles1,hardcock,
135792468,mian,seahawks,godfathe,bookworm,gregor,intel,talisman,blackjack,babyface,hawaiian,dogfood,zhong,
01011975,sancho,ludmila,medusa,mortimer,
123456654321,roadrunn,just4me,stalin,
01011993,handyman,alphabet,pizzas,calgary,clouds,password2,cgfhnfr,f**k,cubswin,gong,lexus,max123,xxx123,digital1,gfhjkm1,
7779311,missy1,michae,beautifu,gator1,
1005,pacers,buddie,chinook,heckfy,dutchess,sally1,breasts,beowulf,darkman,jenn,tiffany1,zhei,quan,qazwsx1,satana,shang,idontkno,smiths,puddin,nasty1,teddybea,valkyrie,passwd,chao,boxster,killers,yoda,cheater,inuyasha,beast1,wareagle,foryou,dragonball,mermaid,bhbirf,teddy1,dolphin1,misty1,delphi,gromit,sponge,qazzaq,fytxrf,gameover,diao,sergi,beamer,beemer,kittykat,rancid,manowar,adam12,diggler,assword,austin1,wishbone,gonavy,sparky1,fisting,thedude,sinister,
1213,venera,novell,salsero,jayden,fuckoff1,linda1,vedder,
02021987,
1pussy,redline,lust,jktymrf,
02011985,dfcbkbq,dragon12,chrome,gamecube,titten,cong,bella1,leng,
02081988,eureka,bitchass,
147369,banner,lakota,
123321a,mustafa,preacher,hotbox,
02041986,z1x2c3v4,playstation,
01011977,claymore,electra,checkers,zheng,qing,armagedon,
02051986,wrestle,svoboda,bulls,nimbus,alenka,madina,newpass6,onetime,aa123456,bartman,
02091987,silverad,electron,
12345t,devil666,oliver1,skylar,rhtdtlrj,gobucks,johann,
12011987,milkman,
02101985,camper,thunderb,bigbutt,jammin,davide,cheeks,goaway,lighter,claudi,thumbs,pissoff,ghostrider,cocaine,teng,squall,lotus,hootie,blackout,doitnow,subzero,
02031986,marine1,
02021988,pothead,
123456qw,skate,
1369,peng,antoni,neng,miao,bcfields,
1492,marika,
794613,musashi,tulips,nong,piao,chai,ruan,southpar,
02061985,nude,mandarin,
654123,ninjas,cannabis,jetski,xerxes,zhuang,kleopatra,dickie,bilbo,pinky,morgan1,
1020,
1017,dieter,baseball1,tottenham,quest,yfnfkmz,dirtbike,
1234567890a,mango,jackson5,ipswich,iamgod,
02011987,tdutybz,modena,qiao,slippery,qweasd123,bluefish,samtron,toon,
111333,iscool,
02091986,petrov,fuzzy,zhou,
1357924680,mollydog,deng,
02021986,
1236987,pheonix,zhun,ghblehjr,othello,starcraf,
000111,sanfran,a11111,cameltoe,badman,vasilisa,jiang,
1qaz2ws,luan,sveta,
12qw12,akira,chuai,
369963,cheech,beatle,pickup,paloma,
01011983,caravan,elizaveta,gawker,banzai,pussey,mullet,seng,bingo1,bearcat,flexible,farscape,borussia,zhuai,templar,guitar1,toolman,yfcntymrf,chloe1,xiang,slave1,guai,nuggets,
02081984,mantis,slim,scorpio1,fyutkbyf,thedoors,
02081987,
02061986,
123qq123,zappa,fergie,
7ugd
5hip
2j,huai,asdfzxcv,sunflower,pussyman,deadpool,bigtit,
01011982,love12,lassie,skyler,gatorade,carpedie,jockey,mancity,spectre,
02021984,cameron1,artemka,reng,
02031984,iomega,jing,moritz,spice,rhino,spinner,heater,zhai,hover,talon,grease,qiong,corleone,ltybcrf,tian,cowboy1,hippie,chimera,ting,alex123,
02021985,mickey1,corsair,sonoma,aaron1,xxxpass,bacchus,webmaste,chuo,xyz123,chrysler,spurs1,artem,shei,cosmic,
01020304,deutsch,gabriel1,
123455,oceans,
987456321,binladen,latinas,a12345678,speedo,buttercu,
02081989,
21031988,merlot,millwall,ceng,kotaku,jiong,dragonba,
2580,stonecold,snuffy,
01011999,
02011986,hellos,blaze,maggie1,slapper,istanbul,bonjovi,babylove,mazda,bullfrog,phoeni,meng,porsche1,nomore,
02061989,bobdylan,capslock,orion1,zaraza,teddybear,ntktajy,myname,rong,wraith,mets,niao,
02041984,smokie,chevrolet,dialog,gfhjkmgfhjkm,dotcom,vadim,monarch,athlon,mikey1,hamish,pian,liang,coolness,chui,thoma,ramones,ciccio,chippy,eddie1,house1,ning,marker,cougars,jackpot,barbados,reds,pdtplf,knockers,cobalt,amateurs,dipshit,napoli,kilroy,pulsar,jayhawks,daemon,alexey,weng,shuang,
9293709b13,shiner,eldorado,soulmate,mclaren,golfer1,andromed,duan,
50spanks,sexyboy,dogshit,
02021983,shuo,kakashka,syzygy,
111111a,yeahbaby,qiang,netscape,fulham,
120676,gooner,zhui,rainbow6,laurent,dog123,halifax,freeway,carlitos,
147963,eastwood,microphone,monkey12,
1123,persik,coldbeer,geng,nuan,danny1,fgtkmcby,entropy,gadget,just4fun,sophi,baggio,carlito,
1234567891,
02021989,
02041983,specialk,piramida,suan,bigblue,salasana,hopeful,mephisto,bailey1,hack,annie1,generic,violetta,spencer1,arcadia,
02051983,hondas,
9562876,trainer,jones1,smashing,liao,
159632,iceberg,rebel1,snooker,temp123,zang,matteo,fastball,q2w3e4r5,bamboo,fuckyo,shutup,astro,buddyboy,nikitos,redbird,maxxxx,shitface,
02031987,kuai,kissmyass,sahara,radiohea,
1234asdf,wildcard,maxwell1,patric,plasma,heynow,bruno1,shao,bigfish,misfits,sassy1,sheng,
02011988,
02081986,testpass,nanook,cygnus,licking,slavik,pringles,xing,
1022,ninja1,submit,dundee,tiburon,pinkfloyd,yummy,shuai,guang,chopin,obelix,insomnia,stroker,
1a2s3d4f,
1223,playboy1,lazarus,jorda,spider1,homerj,sleeper,
02041982,darklord,cang,
02041988,
02041987,tripod,magician,jelly,telephon,
15975,vsjasnel12,pasword,iverson3,pavlov,homeboy,gamecock,amigo,brodie,budapest,yjdsqgfhjkm,reckless,
02011980,pang,tiger123,
2469,mason1,orient,
01011979,zong,cdtnbr,maksimka,
1011,bushido,taxman,giorgio,sphinx,kazantip,
02101984,concorde,verizon,lovebug,georg,sam123,seadoo,qazwsxedc123,jiao,jezebel,pharmacy,abnormal,jellybea,maxime,puffy,islander,bunnies,jiggaman,drakon,
010180,pluto,zhjckfd,
12365,classics,crusher,mordor,hooligan,strawberry,
02081985,scrabble,hawaii50,
1224,wg8e3wjf,cthtuf,premium,arrow,
123456qwe,mazda626,ramrod,tootie,rhjrjlbk,ghost1,
1211,bounty,niang,
02071984,goat,killer12,sweetnes,porno1,masamune,
426hemi,corolla,mariposa,hjccbz,doomsday,bummer,blue12,zhao,bird33,excalibur,samsun,kirsty,buttfuck,kfhbcf,zhuo,marcello,ozzy,
02021982,dynamite,
655321,master12,
123465,lollypop,stepan,
1qa2ws,spiker,goirish,callum,michael2,moonbeam,attila,henry1,lindros,andrea1,sporty,lantern,
12365478,nextel,violin,volcom,
998877,water1,imation,inspiron,dynamo,citadel,placebo,clowns,tiao,
02061988,tripper,dabears,haggis,merlin1,
02031985,anthrax,amerika,iloveme,vsegda,burrito,bombers,snowboard,forsaken,katarina,a1a2a3,woofer,tigger2,fullmoon,tiger2,spock,hannah1,snoopy1,sexxxy,sausages,stanislav,cobain,robotics,exotic,green123,mobydick,senators,pumpkins,fergus,asddsa,
147741,
258852,windsurf,reddevil,vfitymrf,nevermind,nang,woodland,
4417,mick,shui,q1q2q3,wingman,
69696,superb,zuan,ganesh,pecker,zephyr,anastasiya,icu812,larry1,
02081982,broker,zalupa,mihail,vfibyf,dogger,
7007,paddle,varvara,schalke,
1z2x3c,presiden,yankees2,tuning,poopy,
02051982,concord,vanguard,stiffy,rjhjktdf,felix1,wrench,firewall,boxer,bubba69,popper,
02011984,temppass,gobears,cuan,tipper,fuckme1,kamila,thong,puss,bigcat,drummer1,
02031982,sowhat,digimon,tigers1,rang,jingle,bian,uranus,soprano,mandy1,dusty1,fandango,aloha,pumpkin1,postman,
02061980,dogcat,bombay,pussy123,onetwo,highheel,pippo,julie1,laura1,pepito,beng,smokey1,stylus,stratus,reload,duckie,karen1,jimbo1,
225588,
369258,krusty,snappy,asdf12,electro,
111qqq,kuang,fishin,clit,abstr,christma,qqqqq1,
1234560,carnage,guyver,boxers,kittens,zeng,
1000000,qwerty11,toaster,cramps,yugioh,
02061987,icehouse,zxcvbnm123,pineapple,namaste,harrypotter,mygirl,falcon1,earnhard,fender1,spikes,nutmeg,
01081989,dogboy,
02091983,
369852,softail,mypassword,prowler,bigboss,
1112,harvest,heng,jubilee,killjoy,basset,keng,zaqxswcde,redsox1,biao,titan,misfit99,robot,wifey,kidrock,
02101987,gameboy,enrico,
1z2x3c4v,broncos1,arrows,havana,banger,cookie1,chriss,
123qw,platypus,cindy1,lumber,pinball,foxy,london1,
1023,
05051987,
02041985,password12,superma,longbow,radiohead,nigga,
12051988,spongebo,qwert12345,abrakadabra,dodgers1,
02101989,chillin,niceguy,pistons,hookup,santafe,bigben,jets,
1013,vikings1,mankind,viktoriya,beardog,hammer1,
02071980,reddwarf,magelan,longjohn,jennife,gilles,carmex2,
02071987,stasik,bumper,doofus,slamdunk,pixies,garion,steffi,alessandro,beerman,niceass,warrior1,honolulu,
134679852,visa,johndeer,mother1,windmill,boozer,oatmeal,aptiva,busty,delight,tasty,slick1,bergkamp,badgers,guitars,puffin,
02091981,nikki1,irishman,miller1,zildjian,
123000,airwolf,magnet,anai,install,
02041981,
02061983,astra,romans,megan1,mudvayne,freebird,muscles,dogbert,
02091980,
02091984,snowflak,
01011900,mang,joseph1,nygiants,playstat,junior1,vjcrdf,qwer12,webhompas,giraffe,pelican,jefferso,comanche,bruiser,monkeybo,kjkszpj,
123456l,micro,albany,
02051987,angel123,epsilon,aladin,death666,hounddog,josephin,altima,chilly,
02071988,
78945,ultra,
02041979,gasman,thisisit,pavel,idunno,kimmie,
05051985,paulie,ballin,medion,moondog,manolo,pallmall,climber,fishbone,genesis1,
153624,toffee,tbone,clippers,krypton,jerry1,picturs,compass,
111111q,
02051988,
1121,
02081977,sairam,getout,
333777,cobras,
22041987,bigblock,severin,booster,norwich,whiteout,ctrhtn,
123456m,
02061984,hewlett,shocker,fuckinside,
02031981,chase1,white1,versace,
123456789s,basebal,iloveyou2,bluebell,
08031986,anthon,stubby,foreve,undertak,werder,saiyan,mama123,medic,chipmunk,mike123,mazdarx7,qwe123qwe,bowwow,kjrjvjnbd,celeb,choochoo,demo,lovelife,
02051984,colnago,lithium,
02051989,
15051981,zzzxxx,welcom,anastasi,fidelio,franc,
26061987,roadster,stone55,drifter,hookem,hellboy,
1234qw,cbr900rr,sinned,good123654,storm1,gypsy,zebra,zachary1,toejam,buceta,
02021979,testing1,redfox,lineage,mike1,highbury,koroleva,nathan1,washingt,
02061982,
02091985,vintage,redbaron,dalshe,mykids,
11051987,macbeth,julien,james123,krasotka,
111000,
10011986,
987123,pipeline,tatarin,sensei,codered,komodo,frogman,
7894561230,nascar24,juicy,
01031988,redrose,mydick,pigeon,tkbpfdtnf,smirnoff,
1215,spam,winner1,flyfish,moskva,
81fukkc,
21031987,olesya,starligh,summer99,
13041988,fishhead,freesex,super12,
06061986,azazel,scoobydoo,
02021981,cabron,yogibear,sheba1,konstantin,tranny,chilli,terminat,ghbywtccf,slowhand,soccer12,cricket1,fuckhead,
1002,seagull,achtung,blam,bigbob,bdsm,nostromo,survivor,cnfybckfd,lemonade,boomer1,rainbow1,rober,irinka,cocksuck,peaches1,itsme,sugar1,zodiac,upyours,dinara,
135791,sunny1,chiara,johnson1,
02041989,solitude,habibi,sushi,markiz,smoke1,rockies,catwoman,johnny1,qwerty7,bearcats,username,
01011978,wanderer,ohshit,
02101986,sigma,stephen1,paradigm,
02011989,flanker,sanity,jsbach,spotty,bologna,fantasia,chevys,borabora,cocker,
74108520,
123ewq,
12021988,
01061990,gtnhjdbx,
02071981,
01011960,sundevil,
3000gt,mustang6,gagging,maggi,armstron,yfnfkb,
13041987,revolver,
02021976,trouble1,madcat,jeremy1,jackass1,volkswag,
30051985,corndog,pool6123,marines1,
03041991,pizza1,piggy,sissy,
02031979,sunfire,angelus,undead,
24061986,
14061991,wildbill,shinobi,
45m2do5bs,
123qwer,
21011989,cleopatr,lasvega,hornets,amorcit,
11081989,coventry,nirvana1,destin,sidekick,
20061988,
02081983,gbhfvblf,sneaky,bmw325,
22021989,nfytxrf,sekret,kalina,zanzibar,hotone,qazws,wasabi,heidi1,highlander,blues1,hitachi,paolo,
23041987,slayer1,simba1,
02011981,tinkerbe,kieran,
01121986,
172839,boiler,
1125,bluesman,waffle,asdfgh01,threesom,conan,
1102,reflex,
18011987,nautilus,everlast,fatty,vader1,
01071986,cyborg,ghbdtn123,birddog,rubble,
02071983,suckers,
02021973,skyhawk,
12qw12qw,dakota1,joebob,nokia6233,woodie,longdong,lamer,troll,ghjcnjgfhjkm,
420000,boating,nitro,armada,messiah,
1031,penguin1,
02091989,americ,
02071989,redeye,asdqwe123,
07071987,monty1,goten,spikey,sonata,
635241,tokiohotel,sonyericsson,citroen,compaq1,
1812,umpire,belmont,jonny,pantera1,nudes,palmtree,
14111986,fenway,bighead,razor,gryphon,andyod22,aaaaa1,taco,
10031988,enterme,malachi,dogface,reptile,
01041985,dindom,handball,marseille,candy1,
19101987,torino,tigge,matthias,viewsoni,
13031987,stinker,evangelion,
24011985,
123456123,rampage,sandrine,
02081980,thecrow,astral,
28041987,sprinter,private1,seabee,shibby,
02101988,
25081988,fearless,junkie,
01091987,aramis,antelope,draven,fuck1,mazda6,eggman,
02021990,barselona,buddy123,
19061987,fyfnjkbq,nancy1,
12121990,
10071987,sluggo,kille,hotties,irishka,zxcasdqwe123,shamus,fairlane,honeybee,soccer10,
13061986,fantomas,
17051988,
10051987,
20111986,gladiato,karachi,gambler,gordo,
01011995,biatch,matthe,
25800852,papito,excite,buffalo1,bobdole,cheshire,player1,
28021992,thewho,
10101986,pinky1,mentor,tomahawk,brown1,
03041986,bismillah,bigpoppa,ijrjkfl,
01121988,runaway,
08121986,skibum,studman,helper,squeak,holycow,manfred,harlem,glock,gideon,
987321,
14021985,yellow1,wizard1,margarit,success1,medved,sf49ers,lambda,pasadena,johngalt,quasar,
1776,
02031980,coldplay,amand,playa,bigpimp,
04041991,capricorn,elefant,sweetness,bruce1,luca,dominik,
10011990,biker,
09051945,datsun,elcamino,trinitro,malice,audi,voyager1,
02101983,joe123,carpente,spartan1,mario1,glamour,diaper,
12121985,
22011988,winter1,asimov,callisto,nikolai,pebble,
02101981,vendetta,david123,boytoy,
11061985,
02031989,iloveyou1,stupid1,cayman,casper1,zippo,yamahar1,wildwood,foxylady,calibra,
02041980,
27061988,dungeon,leedsutd,
30041986,
11051990,bestbuy,antares,dominion,
24680,
01061986,skillet,enforcer,derparol,
01041988,
196969,
29071983,f00tball,purple1,mingus,
25031987,
21031990,remingto,giggles,klaste,
3x7pxr,
01011994,coolcat,
29051989,megane,
20031987,
02051980,
04041988,synergy,
0000007,macman,iforget,adgjmp,vjqgfhjkm,
28011987,rfvfcenhf,
16051989,
25121987,
16051987,rogue,mamamia,
08051990,
20091991,
1210,carnival,bolitas,paris1,dmitriy,dimas,
05051989,papillon,knuckles,
29011985,hola,tophat,
28021990,
100500,cutiepie,devo,
415263,ducks,ghjuhfvvf,asdqwe,
22021986,freefall,parol,
02011983,zarina,buste,vitamin,warez,bigones,
17061988,baritone,jamess,twiggy,mischief,bitchy,hetfield,
1003,dontknow,grinch,sasha_007,
18061990,
12031985,
12031987,calimero,
224466,letmei,
15011987,acmilan,alexandre,
02031977,
08081988,whiteboy,
21051991,barney1,
02071978,money123,
18091985,bigdawg,
02031988,cygnusx1,zoloto,
31011987,firefigh,blowfish,screamer,lfybbk,
20051988,chelse,
11121986,
01031989,harddick,sexylady,
30031988,
02041974,auditt,pizdec,kojak,kfgjxrf,
20091988,
123456ru,wp2003wp,
1204,
15051990,slugger,kordell1,
03031986,swinging,
01011974,
02071979,rockie,dimples,
1234123,
1dragon,trucking,rusty2,roger1,marijuana,kerouac,
02051978,
08031985,paco,thecure,keepout,kernel,noname123,
13121985,francisc,bozo,
02011982,
22071986,
02101979,obsidian,
12345qw,spud,tabasco,
02051985,jaguars,dfktynby,kokomo,popova,notused,sevens,
4200,magneto,
02051976,roswell,
15101986,
21101986,lakeside,bigbang,aspen,little1,
14021986,loki,suckmydick,strawber,carlos1,nokian73,dirty1,joshu,
25091987,
16121987,
02041975,advent,
17011987,slimshady,whistler,
10101990,stryker,
22031984,
15021985,
01031985,blueball,
26031988,ksusha,bahamut,robocop,w_pass,chris123,impreza,prozac,bookie,bricks,
13021990,alice1,cassandr,
11111q,john123,
4ever,korova,
02051973,
142857,
25041988,paramedi,eclipse1,salope,
07091990,
1124,darkangel,
23021986,
999666,nomad,
02051981,smackdow,
01021990,yoyoma,argentin,moonligh,
57chevy,bootys,hardone,capricor,galant,spanker,dkflbr,
24111989,magpies,krolik,
21051988,cevthrb,cheddar,
22041988,bigbooty,scuba1,qwedsa,duffman,bukkake,acura,johncena,sexxy,p@ssw0rd,
258369,cherries,
12345s,asgard,leopold,fuck123,mopar,lalakers,dogpound,matrix1,crusty,spanner,kestrel,fenris,universa,peachy,assasin,lemmein,eggplant,hejsan,canucks,wendy1,doggy1,aikman,tupac,turnip,godlike,fussball,golden1,
19283746,april1,django,petrova,captain1,vincent1,ratman,taekwondo,chocha,serpent,perfect1,capetown,vampir,amore,gymnast,timeout,nbvjatq,blue32,ksenia,k.lvbkf,nazgul,budweiser,clutch,mariya,sylveste,
02051972,beaker,cartman1,q11111,sexxx,forever1,loser1,marseill,magellan,vehpbr,sexgod,jktxrf,hallo123,
132456,liverpool1,southpaw,seneca,camden,
357159,camero,tenchi,johndoe,
145236,roofer,
741963,vlad,
02041978,fktyrf,zxcv123,wingnut,wolfpac,notebook,pufunga7782,brandy1,biteme1,goodgirl,redhat,
02031978,challeng,millenium,hoops,maveric,noname,angus1,gaell,onion,olympus,sabrina1,ricard,sixpack,gratis,gagged,camaross,hotgirls,flasher,
02051977,bubba123,goldfing,moonshin,gerrard,volkov,sonyfuck,mandrake,
258963,tracer,lakers1,asians,susan1,money12,helmut,boater,diablo2,
1234zxcv,dogwood,bubbles1,happy2,randy1,aries,beach1,marcius2,navigator,goodie,hellokitty,fkbyjxrf,earthlink,lookout,jumbo,opendoor,stanley1,marie1,
12345m,
07071977,ashle,wormix,murzik,
02081976,lakewood,bluejays,loveya,commande,gateway2,peppe,
01011976,
7896321,goth,oreo,slammer,rasmus,faith1,knight1,stone1,redskin,ironmaiden,gotmilk,destiny1,dejavu,
1master,midnite,timosha,espresso,delfin,toriamos,oberon,ceasar,markie,
1a2s3d,ghhh47hj7649,vjkjrj,daddyo,dougie,disco,auggie,lekker,therock1,ou8123,start1,noway,p4ssw0rd,shadow12,
333444,saigon,
2fast4u,capecod,
23skidoo,qazxcv,beater,bremen,aaasss,roadrunner,peace1,
12345qwer,
02071975,platon,bordeaux,vbkfirf,
135798642,test12,supernov,beatles1,qwert40,optimist,vanessa1,prince1,ilovegod,nightwish,natasha1,alchemy,bimbo,blue99,patches1,gsxr1000,richar,hattrick,hott,solaris,proton,nevets,enternow,beavis1,amigos,
159357a,ambers,lenochka,
147896,suckdick,shag,intercourse,blue1234,spiral,
02061977,tosser,ilove,
02031975,cowgirl,canuck,q2w3e4,munch,spoons,waterboy,
123567,evgeniy,savior,zasada,redcar,mamacita,terefon,globus,doggies,htubcnhfwbz,
1008,cuervo,suslik,azertyui,limewire,houston1,stratfor,steaua,coors,tennis1,
12345qwerty,stigmata,derf,klondike,patrici,marijuan,hardball,odyssey,nineinch,boston1,pass1,beezer,sandr,charon,power123,a1234,vauxhall,
875421,awesome1,reggae,boulder,funstuff,iriska,krokodil,rfntymrf,sterva,champ1,bball,peeper,m123456,toolbox,cabernet,sheepdog,magic32,pigpen,
02041977,holein1,lhfrjy,banan,dabomb,natalie1,jennaj,montana1,joecool,funky,steven1,ringo,junio,sammy123,qqqwww,baltimor,footjob,geezer,
357951,mash4077,cashmone,pancake,monic,grandam,bongo,yessir,gocubs,nastia,vancouve,barley,dragon69,watford,ilikepie,
02071976,laddie,
123456789m,hairball,toonarmy,pimpdadd,cvthnm,hunte,davinci,lback,sophie1,firenze,q1234567,admin1,bonanza,elway7,daman,strap,azert,wxcvbn,afrika,theforce,
123456t,idefix,wolfen,houdini,scheisse,default,beech,maserati,
02061976,sigmachi,dylan1,bigdicks,eskimo,mizzou,
02101976,riccardo,egghead,
111777,kronos,ghbrjk,chaos1,jomama,rfhnjirf,rodeo,dolemite,cafc91,nittany,pathfind,mikael,password9,vqsablpzla,purpl,gabber,modelsne,myxworld,hellsing,punker,rocknrol,fishon,fuck69,
02041976,lolol,twinkie,tripleh,cirrus,redbone,killer123,biggun,allegro,gthcbr,smith1,wanking,bootsy,barry1,mohawk,koolaid,
5329,futurama,samoht,klizma,
996633,lobo,honeys,peanut1,
556677,zxasqw,joemama,javelin,samm,
223322,sandra1,flicks,montag,nataly,
3006,tasha1,
1235789,dogbone,poker1,p0o9i8u7,goodday,smoothie,toocool,max333,metroid,archange,vagabond,billabon,
22061941,tyson1,
02031973,darkange,skateboard,evolutio,morrowind,wizards,frodo1,rockin,cumslut,plastics,zaqwsxcde,
5201314,doit,outback,bumble,dominiqu,persona,nevermore,alinka,
02021971,forgetit,sexo,all4one,c2h5oh,petunia,sheeba,kenny1,elisabet,aolsucks,woodstoc,pumper,
02011975,fabio,granada,scrapper,
123459,minimoni,q123456789,breaker,
1004,
02091976,ncc74656,slimshad,friendster,austin31,wiseguy,donner,dilbert1,
132465,blackbird,buffet,jellybean,barfly,behappy,
01011971,carebear,fireblad,
02051975,boxcar,cheeky,kiteboy,hello12,panda1,elvisp,opennow,doktor,alex12,
02101977,pornking,flamengo,
02091975,snowbird,lonesome,robin1,
11111a,weed420,baracuda,bleach,
12345abc,nokia1,metall,singapor,mariner,herewego,dingo,tycoon,cubs,blunts,proview,
123456789d,kamasutra,lagnaf,vipergts,navyseal,starwar,masterbate,wildone,peterbil,cucumber,butkus,
123qwert,climax,deniro,gotribe,cement,scooby1,summer69,harrier,shodan,newyear,
02091977,starwars1,romeo1,sedona,harald,doubled,sasha123,bigguns,salami,awnyce,kiwi,homemade,pimping,azzer,bradley1,warhamme,linkin,dudeman,qwe321,pinnacle,maxdog,flipflop,lfitymrf,fucker1,acidburn,esquire,sperma,fellatio,jeepster,thedon,sexybitch,pookey,spliff,widget,vfntvfnbrf,trinity1,mutant,samuel1,meliss,gohome,
1q2q3q,mercede,comein,grin,cartoons,paragon,henrik,rainyday,pacino,senna,bigdog1,alleycat,
12345qaz,narnia,mustang2,tanya1,gianni,apollo11,wetter,clovis,escalade,rainbows,freddy1,smart1,daisydog,s123456,cocksucker,pushkin,lefty,sambo,fyutkjxtr,hiziad,boyz,whiplash,orchard,newark,adrenalin,
1598753,bootsie,chelle,trustme,chewy,golfgti,tuscl,ambrosia,
5wr2i7h8,penetration,shonuf,jughead,payday,stickman,gotham,kolokol,johnny5,kolbasa,stang,puppydog,charisma,gators1,mone,jakarta,draco,nightmar,
01011973,inlove,laetitia,
02091973,tarpon,nautica,meadow,
0192837465,luckyone,
14881488,chessie,goldeney,tarakan,
69camaro,bungle,wordup,interne,fuckme2,
515000,dragonfl,sprout,
02081974,gerbil,bandit1,
02071971,melanie1,phialpha,camber,kathy1,adriano,gonzo1,
10293847,bigjohn,bismarck,
7777777a,scamper,
12348765,rabbits,
222777,bynthytn,dima123,alexander1,mallorca,dragster,favorite6,beethove,burner,cooper1,fosters,hello2,normandy,
777999,sebring,
1michael,lauren1,blake1,killa,
02091971,nounours,trumpet1,thumper1,playball,xantia,rugby1,rocknroll,guillaum,angela1,strelok,prosper,buttercup,masterp,dbnfkbr,cambridg,venom,treefrog,lumina,
1234566,supra,sexybabe,freee,shen,frogs,driller,pavement,grace1,dicky,checker,smackdown,pandas,cannibal,asdffdsa,blue42,zyjxrf,nthvbyfnjh,melrose,neon,jabber,gamma,
369258147,aprilia,atticus,benessere,catcher,skipper1,azertyuiop,sixty9,thierry,treetop,jello,melons,
123456789qwe,tantra,buzzer,catnip,bouncer,computer1,sexyone,ananas,young1,olenka,sexman,mooses,kittys,sephiroth,contra,hallowee,skylark,sparkles,
777333,
1qazxsw23edc,lucas1,q1w2e3r,gofast,hannes,amethyst,ploppy,flower2,hotass,amatory,volleyba,dixie1,bettyboo,ticklish,
02061974,frenchy,phish1,murphy1,trustno,
02061972,leinad,mynameis,spooge,jupiter1,hyundai,frosch,junkmail,abacab,marbles,
32167,casio,sunshine1,wayne1,longhair,caster,snicker,
02101973,gannibal,skinhead,hansol,gatsby,segblue2,montecar,plato,gumby,kaboom,matty,bosco1,
888999,jazzy,panter,jesus123,charlie2,giulia,candyass,sex69,travis1,farmboy,special1,
02041973,letsdoit,password01,allison1,abcdefg1,notredam,ilikeit,
789654123,liberty1,rugger,uptown,alcatraz,
123456w,airman,
007bond,navajo,kenobi,terrier,stayout,grisha,frankie1,fluff,
1qazzaq1,
1234561,virginie,
1234568,tango1,werdna,octopus,fitter,dfcbkbcf,blacklab,
115599,montrose,allen1,supernova,frederik,ilovepussy,justice1,radeon,playboy2,blubber,sliver,swoosh,motocros,lockdown,pearls,thebear,istheman,pinetree,biit,
1234rewq,rustydog,tampabay,titts,babycake,jehovah,vampire1,streaming,collie,camil,fidelity,calvin1,stitch,gatit,restart,puppy1,budgie,grunt,capitals,hiking,dreamcas,zorro1,
321678,riffraff,makaka,playmate,napalm,rollin,amstel,zxcvb123,samanth,rumble,fuckme69,jimmys,
951357,pizzaman,
1234567899,tralala,delpiero,alexi,yamato,itisme,
1million,vfndtq,kahlua,londo,wonderboy,carrots,tazz,ratboy,rfgecnf,
02081973,nico,fujitsu,tujhrf,sergbest,blobby,
02051970,sonic1,
1357911,smirnov,video1,panhead,bucky,
02031974,
44332211,duffer,cashmoney,left4dead,bagpuss,salman,
01011972,titfuck,
66613666,england1,malish,dresden,lemans,darina,zapper,
123456as,
123456qqq,met2002,
02041972,redstar,blue23,
1234509876,pajero,booyah,please1,tetsuo,semper,finder,hanuman,sunlight,
123456n,
02061971,treble,cupoi,password99,dimitri,
3ip76k2,popcorn1,lol12345,stellar,nympho,shark1,keith1,saskia,bigtruck,revoluti,rambo1,asd222,feelgood,phat,gogators,bismark,cola,puck,furball,burnout,slonik,bowtie,mommy1,icecube,fabienn,mouser,papamama,rolex,giants1,blue11,trooper1,momdad,iklo,morten,rhubarb,gareth,
123456d,blitz,canada1,r2d2,brest,tigercat,usmarine,lilbit,benny1,azrael,lebowski,
12345r,madagaskar,begemot,loverman,dragonballz,italiano,mazda3,naughty1,onions,diver1,cyrano,capcom,asdfg123,forlife,fisherman,weare138,requiem,mufasa,alpha123,piercing,hellas,abracadabra,duckman,caracas,macintos,
02011971,jordan2,crescent,fduecn,hogtied,eatmenow,ramjet,
18121812,kicksass,whatthe,discus,rfhfvtkmrf,rufus1,sqdwfe,mantle,vegitto,trek,dan123,paladin1,rudeboy,liliya,lunchbox,riversid,acapulco,libero,dnsadm,maison,toomuch,boobear,hemlock,sextoy,pugsley,misiek,athome,migue,altoids,marcin,
123450,rhfcfdbwf,jeter2,rhinos,rjhjkm,mercury1,ronaldinho,shampoo,makayla,kamilla,masterbating,tennesse,holger,john1,matchbox,hores,poptart,parlament,goodyear,asdfgh1,
02081970,hardwood,alain,erection,hfytnrb,highlife,implants,benjami,dipper,jeeper,bendover,supersonic,babybear,laserjet,gotenks,bama,natedogg,aol123,pokemo,rabbit1,raduga,sopranos,cashflow,menthol,pharao,hacking,
334455,ghjcnbnenrf,lizzy,muffin1,pooky,penis1,flyer,gramma,dipset,becca,ireland1,diana1,donjuan,pong,ziggy1,alterego,simple1,cbr900,logger,
111555,claudia1,cantona7,matisse,ljxtymrf,victori,harle,mamas,encore,mangos,iceman1,diamon,alexxx,tiamat,
5000,desktop,mafia,smurf,princesa,shojou,blueberr,welkom,maximka,
123890,
123q123,tammy1,bobmarley,clips,demon666,ismail,termite,laser1,missie,altair,donna1,bauhaus,trinitron,mogwai,flyers88,juniper,nokia5800,boroda,jingles,qwerasdfzxcv,shakur,
777666,legos,mallrats,
1qazxsw,goldeneye,tamerlan,julia1,backbone,spleen,
49ers,shady,darkone,medic1,justi,giggle,cloudy,aisan,douche,parkour,bluejay,huskers1,redwine,
1qw23er4,satchmo,
1231234,nineball,stewart1,ballsack,probes,kappa,amiga,flipper1,dortmund,
963258,trigun,
1237895,homepage,blinky,screwy,gizzmo,belkin,chemist,coolhand,chachi,braves1,thebest,greedisgood,pro100,banana1,
101091m,
123456g,wonderfu,barefeet,
8inches,
1111qqqq,kcchiefs,qweasdzxc123,metal1,jennifer1,xian,asdasd123,pollux,cheerleaers,fruity,mustang5,turbos,shopper,photon,espana,hillbill,oyster,macaroni,gigabyte,jesper,motown,tuxedo,buster12,triplex,cyclones,estrell,mortis,holla,
456987,fiddle,sapphic,jurassic,thebeast,ghjcnjq,baura,spock1,metallica1,karaoke,nemrac58,love1234,
02031970,flvbybcnhfnjh,frisbee,diva,ajax,feathers,flower1,soccer11,allday,mierda,pearl1,amature,marauder,
333555,redheads,womans,egorka,godbless,
159263,nimitz,aaaa1111,sashka,madcow,socce,greywolf,baboon,pimpdaddy,
123456789r,reloaded,lancia,rfhfylfi,dicker,placid,grimace,
22446688,olemiss,whores,culinary,wannabe,maxi,
1234567aa,amelie,riley1,trample,phantom1,baberuth,bramble,asdfqwer,vides,
4you,abc123456,taichi,aztnm,smother,outsider,hakr,blackhawk,bigblack,girlie,spook,valeriya,gianluca,freedo,
1q2q3q4q,handbag,lavalamp,cumm,pertinant,whatup,nokia123,redlight,patrik,
111aaa,poppy1,dfytxrf,aviator,sweeps,kristin1,cypher,elway,yinyang,access1,poophead,tucson,noles1,monterey,waterfal,dank,dougal,
918273,suede,minnesot,legman,bukowski,ganja,mammoth,riverrat,asswipe,daredevi,lian,arizona1,kamikadze,alex1234,smile1,angel2,
55bgates,bellagio,
0001,wanrltw,stiletto,lipton,arsena,biohazard,bbking,chappy,tetris,as123456,darthvad,lilwayne,nopassword,
7412369,
123456789987654321,natchez,glitter,
14785236,mytime,rubicon,moto,pyon,wazzup,tbird,shane1,nightowl,getoff,beckham7,trueblue,hotgirl,nevermin,deathnote,
13131,taffy,bigal,copenhag,apricot,gallaries,dtkjcbgtl,totoro,onlyone,civicsi,jesse1,baby123,sierra1,festus,abacus,sickboy,fishtank,fungus,charle,golfpro,teensex,mario66,seaside,aleksei,rosewood,blackberry,
1020304050,bedlam,schumi,deerhunt,contour,darkelf,surveyor,deltas,pitchers,
741258963,dipstick,funny1,lizzard,
112233445566,jupiter2,softtail,titman,greenman,z1x2c3v4b5,smartass,
12345677,notnow,myworld,nascar1,chewbacc,nosferatu,downhill,dallas22,kuan,blazers,whales,soldat,craving,powerman,yfcntyf,hotrats,cfvceyu,qweasdzx,princess1,feline,qqwwee,chitown,
1234qaz,mastermind,
114477,dingbat,care1839,standby,kismet,atreides,dogmeat,icarus,monkeyboy,alex1,mouses,nicetits,sealteam,chopper1,crispy,winter99,rrpass1,myporn,myspace1,corazo,topolino,ass123,lawman,muffy,orgy,
1love,passord,hooyah,ekmzyf,pretzel,amonra,nestle,
01011950,jimbeam,happyman,z12345,stonewal,helios,manunited,harcore,dick1,gaymen,
2hot4u,light1,qwerty13,kakashi,pjkjnj,alcatel,taylo,allah,buddydog,ltkmaby,mongo,blonds,start123,audia6,
123456v,civilwar,bellaco,turtles,mustan,deadspin,aaa123,fynjirf,lucky123,tortoise,amor,summe,waterski,zulu,drag0n,dtxyjcnm,gizmos,strife,interacial,pusyy,goose1,bear1,equinox,matri,jaguar1,tobydog,sammys,nachos,traktor,bryan1,morgoth,
444555,dasani,miami1,mashka,xxxxxx1,ownage,nightwin,hotlips,passmast,cool123,skolko,eldiablo,manu,
1357908642,screwyou,badabing,foreplay,hydro,kubrick,seductive,demon1,comeon,galileo,aladdin,metoo,happines,
902100,mizuno,caddy,bizzare,girls1,redone,ohmygod,sable,bonovox,girlies,hamper,opus,gizmodo1,aaabbb,pizzahut,
999888,rocky2,anton1,kikimora,peavey,ocelot,a1a2a3a4,
2wsx3edc,jackie1,solace,sprocket,galary,chuck1,volvo1,shurik,poop123,locutus,virago,wdtnjxtr,tequier,bisexual,doodles,makeitso,fishy,
789632145,nothing1,fishcake,sentry,libertad,oaktree,fivestar,adidas1,vegitta,mississi,spiffy,carme,neutron,vantage,agassi,boners,
123456789v,hilltop,taipan,barrage,kenneth1,fister,martian,willem,lfybkf,bluestar,moonman,ntktdbpjh,paperino,bikers,daffy,benji,quake,dragonfly,suckcock,danilka,lapochka,belinea,calypso,asshol,camero1,abraxas,mike1234,womam,q1q2q3q4q5,youknow,maxpower,pic's,audi80,sonora,raymond1,tickler,tadpole,belair,crazyman,finalfantasy,
999000,jonatha,paisley,kissmyas,morgana,monste,mantra,spunk,magic123,jonesy,mark1,alessand,
741258,baddest,ghbdtnrfrltkf,zxccxz,tictac,augustin,racers,
7grout,foxfire,
99762000,openit,nathanie,
1z2x3c4v5b,seadog,gangbanged,lovehate,hondacbr,harpoon,mamochka,fisherma,bismilla,locust,wally1,spiderman1,saffron,utjhubq,
123456987,
20spanks,safeway,pisser,bdfyjd,kristen1,bigdick1,magenta,vfhujif,anfisa,friday13,qaz123wsx,
0987654321q,tyrant,guan,meggie,kontol,nurlan,ayanami,rocket1,yaroslav,websol76,mutley,hugoboss,websolutions,elpaso,gagarin,badboys,sephirot,
918273645,newuser,qian,edcrfv,booger1,
852258,lockout,timoxa94,mazda323,firedog,sokolova,skydiver,jesus777,
1234567890z,soulfly,canary,malinka,guillerm,hookers,dogfart,surfer1,osprey,india123,rhjkbr,stoppedby,nokia5530,
123456789o,blue1,werter,divers,
3000,
123456f,alpina,cali,whoknows,godspeed,
986532,foreskin,fuzzy1,heyyou,didier,slapnuts,fresno,rosebud1,sandman1,bears1,blade1,honeybun,queen1,baronn,pakista,philipp,
9111961,topsecret,sniper1,
214365,slipper,letsfuck,pippen33,godawgs,mousey,qw123456,scrotum,loveis,lighthou,bp2002,nancy123,jeffrey1,susieq,buddy2,ralphie,trout1,willi,antonov,sluttey,rehbwf,marty1,darian,losangeles,letme1n,
12345d,pusssy,godiva,ender,golfnut,leonidas,a1b2c3d4e5,puffer,general1,wizzard,lehjxrf,racer1,bigbucks,cool12,buddys,zinger,esprit,vbienrf,josep,tickling,froggie,
987654321a,
895623,daddys,crumbs,gucci,mikkel,opiate,tracy1,christophe,came11,
777555,petrovich,humbug,dirtydog,allstate,horatio,wachtwoord,creepers,squirts,rotary,bigd,georgia1,fujifilm,
2sweet,dasha,yorkie,slimjim,wiccan,kenzie,system1,skunk,b12345,getit,pommes,daredevil,sugars,bucker,piston,lionheart,
1bitch,
515051,catfight,recon,icecold,fantom,vodafone,kontakt,boris1,vfcnth,canine,
01011961,valleywa,faraon,chickenwing101,qq123456,livewire,livelife,roosters,jeepers,ilya1234,coochie,pavlik,dewalt,dfhdfhf,architec,blackops,
1qaz2wsx3edc4rfv,rhfcjnf,wsxedc,teaser,sebora,
25252,rhino1,ankara,swifty,decimal,redleg,shanno,nermal,candies,smirnova,dragon01,photo1,ranetki,a1s2d3f4g5,axio,wertzu,maurizio,
6uldv
8,zxcvasdf,punkass,flowe,graywolf,peddler,
3rjs1la7qe,mpegs,seawolf,ladyboy,pianos,piggies,vixen,alexus,orpheus,gdtrfb,z123456,macgyver,hugetits,ralph1,flathead,maurici,mailru,goofball,nissan1,nikon,stopit,odin,big1,smooch,reboot,famil,bullit,anthony7,gerhard,methos,
124038,morena,eagle2,jessica2,zebras,getlost,gfynthf,
123581321,sarajevo,indon,comets,tatjana,rfgbnjirf,joystick,batman12,
123456c,sabre,beerme,victory1,kitties,
1475369,badboy1,booboo1,comcast,slava,squid,saxophon,lionhear,qaywsx,bustle,nastena,roadway,loader,hillside,starlight,
24681012,niggers,access99,bazooka,molly123,blackice,bandi,cocacol,nfhfrfy,timur,muschi,horse1,quant4307s,squerting,oscars,mygirls,flashman,tangerin,goofy1,p0o9i8,housewifes,newness,monkey69,escorpio,password11,hippo,warcraft3,qazxsw123,qpalzm,ribbit,ghbdtndctv,bogota,star123,
258000,lincoln1,bigjim,lacoste,firestorm,legenda,indain,ludacris,milamber,
1009,evangeli,letmesee,a111111,hooters1,bigred1,shaker,husky,a4tech,cnfkrth,argyle,rjhjdf,nataha,
0o9i8u7y,gibson1,sooners1,glendale,archery,hoochie,stooge,aaaaaa1,scorpions,school1,vegas1,rapier,mike23,bassoon,groupd2013,macaco,baker1,labia,freewill,santiag,silverado,butch1,vflfufcrfh,monica1,rugrat,cornhole,aerosmit,bionicle,gfgfvfvf,daniel12,virgo,fmale,favorite2,detroit1,pokey,shredder,baggies,wednesda,cosmo1,mimosa,sparhawk,firehawk,romario,
911turbo,funtimes,fhntvrf,nexus6,
159753456,timothy1,bajingan,terry1,frenchie,raiden,
1mustang,babemagnet,
74123698,nadejda,truffles,rapture,douglas1,lamborghini,motocross,rjcvjc,
748596,skeeter1,dante1,angel666,telecom,carsten,pietro,bmw318,astro1,carpediem,samir,orang,helium,scirocco,fuzzball,rushmore,rebelz,hotspur,lacrimosa,chevys10,madonna1,domenico,yfnfirf,jachin,shelby1,bloke,dawgs,dunhill,atlanta1,service1,mikado,devilman,angelit,reznor,euphoria,lesbain,checkmat,browndog,phreak,blaze1,crash1,farida,mutter,luckyme,horsemen,vgirl,jediknig,asdas,cesare,allnight,rockey,starlite,truck1,passfan,close-up,samue,cazzo,wrinkles,homely,eatme1,sexpot,snapshot,dima1995,asthma,thetruth,ducky,blender,priyanka,gaucho,dutchman,sizzle,kakarot,
651550,passcode,justinbieber,
666333,elodie,sanjay,
110442,alex01,lotus1,
2300mj,lakshmi,zoomer,quake3,
12349876,teapot,
12345687,ramada,pennywis,striper,pilot1,chingon,optima,nudity,ethan1,euclid,beeline,loyola,biguns,zaq12345,bravo1,disney1,buffa,assmunch,vivid,
6661313,wellingt,aqwzsx,madala11,
9874123,sigmar,pictere,tiptop,bettyboop,dinero,tahiti,gregory1,bionic,speed1,fubar1,lexus1,denis1,hawthorn,saxman,suntzu,bernhard,dominika,camaro1,hunter12,balboa,bmw2002,seville,diablo1,vfhbyjxrf,
1234abc,carling,lockerroom,punani,darth,baron1,vaness,
1password,libido,picher,
232425,karamba,futyn007,daydream,
11001001,dragon123,friends1,bopper,rocky123,chooch,asslover,shimmer,riddler,openme,tugboat,sexy123,midori,gulnara,christo,swatch,laker,offroad,puddles,hackers,mannheim,manager1,horseman,roman1,dancer1,komputer,pictuers,nokia5130,ejaculation,lioness,
123456y,evilone,nastenka,pushok,javie,lilman,
3141592,mjolnir,toulouse,pussy2,bigworm,smoke420,fullback,extensa,dreamcast,belize,delboy,willie1,casablanca,csyjxtr,ricky1,bonghit,salvator,basher,pussylover,rosie1,
963258741,vivitron,cobra427,meonly,armageddon,myfriend,zardoz,qwedsazxc,kraken,fzappa,starfox,
333999,illmatic,capoeira,weenie,ramzes,freedom2,toasty,pupkin,shinigami,fhvfutljy,nocturne,churchil,thumbnils,tailgate,neworder,sexymama,goarmy,cerebus,michelle1,vbifyz,surfsup,earthlin,dabulls,basketbal,aligator,mojojojo,saibaba,welcome2,wifes,wdtnjr,
12345w,slasher,papabear,terran,footman,hocke,
153759,texans,tom123,sfgiants,billabong,aassdd,monolith,xxx777,l3tm31n,ticktock,newone,hellno,japanees,contortionist,admin123,scout1,alabama1,divx1,rochard,privat,radar1,bigdad,fhctybq,tortuga,citrus,avanti,fantasy1,woodstock,s12345,fireman1,embalmer,woodwork,bonzai,konyor,newstart,jigga,panorama,goats,smithy,rugrats,hotmama,daedalus,nonstop,fruitbat,lisenok,quaker,violator,
12345123,my3sons,cajun,fraggle,gayboy,oldfart,vulva,knickerless,orgasms,undertow,binky,litle,kfcnjxrf,masturbation,bunnie,alexis1,planner,transexual,sparty,leeloo,monies,fozzie,stinger1,landrove,anakonda,scoobie,yamaha1,henti,star12,rfhlbyfk,beyonce,catfood,cjytxrf,zealots,strat,fordtruc,archangel,silvi,sativa,boogers,miles1,bigjoe,tulip,petite,greentea,shitter,jonboy,voltron,morticia,evanescence,
3edc4rfv,longshot,windows1,serge,aabbcc,starbucks,sinful,drywall,prelude1,www123,camel1,homebrew,marlins,
123412,letmeinn,domini,swampy,plokij,fordf350,webcam,michele1,bolivi,
27731828,wingzero,qawsedrftg,shinji,sverige,jasper1,piper1,cummer,iiyama,gocats,amour,alfarome,jumanji,mike69,fantasti,
1monkey,w00t88,shawn1,lorien,
1a2s3d4f5g,koleso,murph,natascha,sunkist,kennwort,emine,grinder,m12345,q1q2q3q4,cheeba,money2,qazwsxedc1,diamante,prosto,pdiddy,stinky1,gabby1,luckys,franci,pornographic,moochie,gfhjdjp,samdog,empire1,comicbookdb,emili,motdepasse,iphone,braveheart,reeses,nebula,sanjose,bubba2,kickflip,arcangel,superbow,porsche911,xyzzy,nigger1,dagobert,devil1,alatam,monkey2,barbara1,
12345v,vfpfafrf,alessio,babemagn,aceman,arrakis,kavkaz,
987789,jasons,berserk,sublime1,rogue1,myspace,buckwhea,csyekz,pussy4me,vette1,boots1,boingo,arnaud,budlite,redstorm,paramore,becky1,imtheman,chango,marley1,milkyway,
666555,giveme,mahalo,lux2000,lucian,paddy,praxis,shimano,bigpenis,creeper,newproject2004,rammstei,j3qq4h7h2v,hfljcnm,lambchop,anthony2,bugman,gfhjkm12,dreamer1,stooges,cybersex,diamant,cowboyup,maximus1,sentra,
615243,goethe,manhatta,fastcar,selmer,
1213141516,yfnfitymrf,denni,chewey,yankee1,elektra,
123456789p,trousers,fishface,topspin,orwell,vorona,sodapop,motherfu,ibilltes,forall,kookie,ronald1,balrog,maximilian,mypasswo,sonny1,zzxxcc,tkfkdg,magoo,mdogg,heeled,gitara,lesbos,marajade,tippy,morozova,enter123,lesbean,pounded,asd456,fialka,scarab,sharpie,spanky1,gstring,sachin,
12345asd,princeto,hellohel,ursitesux,billows,
1234kekc,kombat,cashew,duracell,kseniya,sevenof9,kostik,arthur1,corvet07,rdfhnbhf,songoku,tiberian,needforspeed,
1qwert,dropkick,kevin123,panache,libra,a123456a,kjiflm,vfhnsirf,cntgfy,iamcool,narut,buffer,sk8ordie,urlaub,fireblade,blanked,marishka,gemini1,altec,gorillaz,chief1,revival47,ironman1,space1,ramstein,doorknob,devilmaycry,nemesis1,sosiska,pennstat,monday1,pioner,shevchenko,detectiv,evildead,blessed1,aggie,coffees,tical,scotts,bullwink,marsel,krypto,adrock,rjitxrf,asmodeus,rapunzel,theboys,hotdogs,deepthro,maxpayne,veronic,fyyeirf,otter,cheste,abbey1,thanos,bedrock,bartok,google1,xxxzzz,rodent,montecarlo,hernande,mikayla,
123456789l,bravehea,
12locked,ltymub,pegasus1,ameteur,saltydog,faisal,milfnew,momsuck,everques,ytngfhjkz,m0nkey,businessbabe,cooki,custard,
123456ab,lbvjxrf,outlaws,
753357,qwerty78,udacha,insider,chees,fuckmehard,shotokan,katya,seahorse,vtldtlm,turtle1,mike12,beebop,heathe,everton1,darknes,barnie,rbcekz,alisher,toohot,theduke,
555222,reddog1,breezy,bulldawg,monkeyman,baylee,losangel,mastermi,apollo1,aurelie,zxcvb12345,cayenne,bastet,wsxzaq,geibcnbr,yello,fucmy69,redwall,ladybird,bitchs,cccccc1,rktjgfnhf,ghjdthrf,quest1,oedipus,linus,impalass,fartman,
12345k,fokker,
159753a,optiplex,bbbbbb1,realtor,slipkno,santacru,rowdy,jelena,smeller,
3984240,ddddd1,sexyme,janet1,
3698741,eatme69,cazzone,today1,poobear,ignatius,master123,newpass1,heather2,snoopdogg,blondinka,pass12,honeydew,fuckthat,
890098890,lovem,goldrush,gecko,biker1,llama,pendejo,avalanche,fremont,snowman1,gandolf,chowder,
1a2b3c4d5e,flyguy,magadan,
1fuck,pingvin,nokia5230,ab1234,lothar,lasers,bignuts,renee1,royboy,skynet,
12340987,
1122334,dragrace,lovely1,
22334455,booter,
12345612,corvett,
123456qq,capital1,videoes,funtik,wyvern,flange,sammydog,hulkster,
13245768,not4you,vorlon,omegared,l58jkdjp!,filippo,
123mudar,samadams,petrus,chris12,charlie123,
123456789123,icetea,sunderla,adrian1,
123qweas,kazanova,aslan,monkey123,fktyeirf,goodsex,
123ab,lbtest,banaan,bluenose,
837519,asd12345,waffenss,whateve,
1a2a3a4a,trailers,vfhbirf,bhbcrf,klaatu,turk182,monsoon,beachbum,sunbeam,succes,clyde1,viking1,rawhide,bubblegum,princ,mackenzi,hershey1,
222555,dima55,niggaz,manatee,aquila,anechka,pamel,bugsbunn,lovel,sestra,newport1,althor,hornyman,wakeup,zzz111,phishy,cerber,torrent,thething,solnishko,babel,buckeye1,peanu,ethernet,uncencored,baraka,
665544,chris2,rb26dett,willy1,choppers,texaco,biggirl,
123456b,anna2614,sukebe,caralho,callofduty,rt6ytere,jesus7,angel12,
1money,timelord,allblack,pavlova,romanov,tequiero,yitbos,lookup,bulls23,snowflake,dickweed,barks,lever,irisha,firestar,fred1234,ghjnjnbg,danman,gatito,betty1,milhouse,kbctyjr,masterbaiting,delsol,papit,doggys,
123698741,bdfyjdf,invictus,bloods,kayla1,yourmama,apple2,angelok,bigboy1,pontiac1,verygood,yeshua,twins2,porn4me,
141516,rasta69,james2,bosshog,candys,adventur,stripe,djkjlz,dokken,austin316,skins,hogwarts,vbhevbh,navigato,desperado,xxx666,cneltyn,vasiliy,hazmat,daytek,eightbal,fred1,four20,
74227422,fabia,aerosmith,manue,wingchun,boohoo,hombre,sanity72,goatboy,fuckm,partizan,avrora,utahjazz,submarin,pussyeat,heinlein,control1,costaric,smarty,chuan,triplets,snowy,snafu,teacher1,vangogh,vandal,evergree,cochise,qwerty99,pyramid1,saab900,sniffer,qaz741,lebron23,mark123,wolvie,blackbelt,yoshi,feeder,janeway,nutella,fuking,asscock,deepak,poppie,bigshow,housewife,grils,tonto,cynthia1,temptress,irakli,belle1,russell1,manders,frank123,seabass,gforce,songbird,zippy1,naught,brenda1,chewy1,hotshit,topaz,
43046721,girfriend,marinka,jakester,thatsme,planeta,falstaff,patrizia,reborn,riptide,cherry1,shuan,nogard,chino,oasis1,qwaszx12,goodlife,davis1,
1911a1,harrys,shitfuck,
12345678900,russian7,
007700,bulls1,porshe,danil,dolphi,river1,sabaka,gobigred,deborah1,volkswagen,miamo,alkaline,muffdive,
1letmein,fkbyrf,goodguy,hallo1,nirvan,ozzie,cannonda,cvbhyjdf,marmite,germany1,joeblow,radio1,love11,raindrop,
159852,jacko,newday,fathead,elvis123,caspe,citibank,sports1,deuce,boxter,fakepass,golfman,snowdog,birthday4,nonmembe,niklas,parsifal,krasota,theshit,
1235813,maganda,nikita1,omicron,cassie1,columbo,buick,sigma1,thistle,bassin,rickster,apteka,sienna,skulls,miamor,coolgirl,gravis,
1qazxc,virgini,hunter2,akasha,batma,motorcyc,bambino,tenerife,fordf250,zhuan,iloveporn,markiza,hotbabes,becool,fynjybyf,wapapapa,forme,mamont,pizda,dragonz,sharon1,scrooge,mrbill,pfloyd,leeroy,natedog,ishmael,
777111,tecumseh,carajo,nfy.irf,
0000000000o,blackcock,fedorov,antigone,feanor,novikova,bobert,peregrin,spartan117,pumkin,rayman,manuals,tooltime,
555333,bonethug,marina1,bonnie1,tonyhawk,laracroft,mahalkita,
18273645,terriers,gamer,hoser,littlema,molotok,glennwei,lemon1,caboose,tater,
12345654321,brians,fritz1,mistral,jigsaw,fuckshit,hornyguy,southside,edthom,antonio1,bobmarle,pitures,ilikesex,crafty,nexus,boarder,fulcrum,astonvil,yanks1,yngwie,account1,zooropa,hotlegs,sammi,gumbo,rover1,perkele,maurolarastefy,lampard,
357753,barracud,dmband,abcxyz,pathfinder,
335577,yuliya,micky,jayman,asdfg12345,
1596321,halcyon,rerfhtre,feniks,zaxscd,gotyoass,jaycee,samson1,jamesb,vibrate,grandpri,camino,colossus,davidb,mamo4ka,nicky1,homer123,pinguin,watermelon,shadow01,lasttime,glider,
823762,helen1,pyramids,tulane,osama,rostov,john12,scoote,bhbyrf,gohan,galeries,joyful,bigpussy,tonka,mowgli,astalavista,zzz123,leafs,dalejr8,unicorn1,
777000,primal,bigmama,okmijn,killzone,qaz12345,snookie,zxcvvcxz,davidc,epson,rockman,ceaser,beanbag,katten,
3151020,duckhunt,segreto,matros,ragnar,
699669,sexsexse,
123123z,fuckyeah,bigbutts,gbcmrf,element1,marketin,saratov,elbereth,blaster1,yamahar6,grime,masha,juneau,
1230123,pappy,lindsay1,mooner,seattle1,katzen,lucent,polly1,lagwagon,pixie,misiaczek,
666666a,smokedog,lakers24,eyeball,ironhors,ametuer,volkodav,vepsrf,kimmy,gumby1,poi098,ovation,
1q2w3,drinker,penetrating,summertime,
1dallas,prima,modles,takamine,hardwork,macintosh,tahoe,passthie,chiks,sundown,flowers1,boromir,music123,phaedrus,albert1,joung,malakas,gulliver,parker1,balder,sonne,jessie1,domainlock2005,express1,vfkbyf,youandme,raketa,koala,dhjnvytyjub,nhfrnjh,testibil,ybrbnjc,
987654321q,axeman,pintail,pokemon123,dogggg,shandy,thesaint,
11122233,x72jhhu3z,theclash,raptors,zappa1,djdjxrf,hell666,friday1,vivaldi,pluto1,lance1,guesswho,jeadmi,corgan,skillz,skippy1,mango1,gymnastic,satori,
362514,theedge,cxfcnkbdfz,sparkey,deicide,bagels,lololol,lemmings,r4e3w2q1,silve,staind,schnuffi,dazzle,basebal1,leroy1,bilbo1,luckie,qwerty2,goodfell,hermione,peaceout,davidoff,yesterda,killah,flippy,chrisb,zelda1,headless,muttley,fuckof,tittys,catdaddy,photog,beeker,reaver,ram1500,yorktown,bolero,tryagain,arman,chicco,learjet,alexei,jenna1,go2hell,
12s3t4p55,momsanaladventure,mustang9,protoss,rooter,ginola,dingo1,mojave,erica1,
1qazse4,marvin1,redwolf,sunbird,dangerou,maciek,girsl,hawks1,packard1,excellen,dashka,soleda,toonces,acetate,nacked,jbond007,alligator,debbie1,wellhung,monkeyma,supers,rigger,larsson,vaseline,rjnzhf,maripos,
123456asd,cbr600rr,doggydog,cronic,jason123,trekker,flipmode,druid,sonyvaio,dodges,mayfair,mystuff,fun4me,samanta,sofiya,magics,
1ranger,arcane,sixtynin,
222444,omerta,luscious,gbyudby,bobcats,envision,chance1,seaweed,holdem,tomate,mensch,slicer,acura1,goochi,qweewq,punter,repoman,tomboy,never1,cortina,gomets,
147896321,
369852147,dogma,bhjxrf,loglatin,eragon,strato,gazelle,growler,
885522,klaudia,payton34,fuckem,butchie,scorpi,lugano,
123456789k,nichola,chipper1,spide,uhbujhbq,rsalinas,vfylfhby,longhorns,bugatti,everquest,!qaz2wsx,blackass,
999111,snakeman,p455w0rd,fanatic,family1,pfqxbr,
777vlad,mysecret,marat,phoenix2,october1,genghis,panties1,cooker,citron,ace123,
1234569,gramps,blackcoc,kodiak1,hickory,ivanhoe,blackboy,escher,sincity,beaks,meandyou,spaniel,canon1,timmy1,lancaste,polaroid,edinburg,fuckedup,hotman,cueball,golfclub,gopack,bookcase,worldcup,dkflbvbhjdbx,twostep,
17171717aa,letsplay,zolushka,stella1,pfkegf,kingtut,
67camaro,barracuda,wiggles,gjhjkm,prancer,patata,kjifhf,theman1,romanova,sexyass,copper1,dobber,sokolov,pomidor,algernon,cadman,amoremio,william2,silly1,bobbys,hercule,hd764nw5d7e1vb1,defcon,deutschland,robinhood,alfalfa,machoman,lesbens,pandora1,easypay,tomservo,nadezhda,goonies,saab9000,jordyn,f15eagle,dbrecz,
12qwerty,greatsex,thrawn,blunted,baywatch,doggystyle,loloxx,chevy2,january1,kodak,bushel,
78963214,ub6ib9,zz8807zpl,briefs,hawker,
224488,first1,bonzo,brent1,erasure,
69213124,sidewind,soccer13,
622521,mentos,kolibri,onepiece,united1,ponyboy,keksa12,wayer,mypussy,andrej,mischa,mille,bruno123,garter,bigpun,talgat,familia,jazzy1,mustang8,newjob,
747400,bobber,blackbel,hatteras,ginge,asdfjkl;,camelot1,blue44,rebbyt34,ebony1,vegas123,myboys,aleksander,ijrjkflrf,lopata,pilsner,lotus123,m0nk3y,andreev,freiheit,balls1,drjynfrnt,mazda1,waterpolo,shibumi,
852963,
123bbb,cezer121,blondie1,volkova,rattler,kleenex,ben123,sanane,happydog,satellit,qazplm,qazwsxedcrfvtgb,meowmix,badguy,facefuck,spice1,blondy,major1,
25000,anna123,
654321a,sober1,deathrow,patterso,china1,naruto1,hawkeye1,waldo1,butchy,crayon,
5tgb6yhn,klopik,crocodil,mothra,imhorny,pookie1,splatter,slippy,lizard1,router,buratino,yahweh,
123698,dragon11,
123qwe456,peepers,trucker1,ganjaman,
1hxboqg2,cheyanne,storys,sebastie,zztop,maddison,
4rfv3edc,darthvader,jeffro,iloveit,victor1,hotty,delphin,lifeisgood,gooseman,shifty,insertions,dude123,abrupt,
123masha,boogaloo,chronos,stamford,pimpster,kthjxrf,getmein,amidala,flubber,fettish,grapeape,dantes,oralsex,jack1,foxcg33,winchest,francis1,getin,archon,cliffy,blueman,
1basebal,sport1,emmitt22,porn123,bignasty,morga,
123hfjdk147,ferrar,juanito,fabiol,caseydog,steveo,peternorth,paroll,kimchi,bootleg,gaijin,secre,acacia,eatme2,amarillo,monkey11,rfhfgep,tylers,a1a2a3a4a5,sweetass,blower,rodina,babushka,camilo,cimbom,tiffan,vfnbkmlf,ohbaby,gotigers,lindsey1,dragon13,romulus,qazxsw12,zxcvbn1,dropdead,hitman47,snuggle,eleven11,bloopers,
357mag,avangard,bmw320,ginscoot,dshade,masterkey,voodoo1,rootedit,caramba,leahcim,hannover,
8phrowz622,tim123,cassius,
000000a,angelito,zzzzz1,badkarma,star1,malaga,glenwood,footlove,golf1,summer12,helpme1,fastcars,titan1,police1,polinka,k.jdm,marusya,augusto,shiraz,pantyhose,donald1,blaise,arabella,brigada,c3por2d2,peter01,marco1,hellow,dillweed,uzumymw,geraldin,loveyou2,toyota1,
088011,gophers,indy500,slainte,
5hsu75kpot,teejay,renat,racoon,sabrin,angie1,shiznit,harpua,sexyred,latex,tucker1,alexandru,wahoo,teamwork,deepblue,goodison,rundmc,r2d2c3p0,puppys,samba,ayrton,boobed,
999777,topsecre,blowme1,
123321z,loudog,random1,pantie,drevil,mandolin,
121212q,hottub,brother1,failsafe,spade1,matvey,open1234,carmen1,priscill,schatzi,kajak,gooddog,trojans1,gordon1,kayak,calamity,argent,ufhvjybz,seviyi,penfold,assface,dildos,hawkwind,crowbar,yanks,ruffles,rastus,luv2epus,open123,aquafina,dawns,jared1,teufel,
12345c,vwgolf,pepsi123,amores,passwerd,
01478520,boliva,smutty,headshot,password3,davidd,zydfhm,gbgbcmrf,pornpass,insertion,ceckbr,test2,car123,checkit,dbnfkbq,niggas,nyyankee,muskrat,nbuhtyjr,gunner1,ocean1,fabienne,chrissy1,wendys,loveme89,batgirl,cerveza,igorek,steel1,ragman,boris123,novifarm,sexy12,qwerty777,mike01,giveitup,
123456abc,fuckall,crevice,hackerz,gspot,eight8,assassins,texass,swallows,
123458,baldur,moonshine,labatt,modem,sydney1,voland,dbnfkz,hotchick,jacker,princessa,dawgs1,holiday1,booper,reliant,miranda1,jamaica1,andre1,badnaamhere,barnaby,tiger7,david12,margaux,corsica,
085tzzqi,universi,thewall,nevermor,martin6,qwerty77,cipher,apples1,
0102030405,seraphim,black123,imzadi,gandon,ducati99,
1shadow,dkflbvbhjdyf,
44magnum,bigbad,feedme,samantha1,ultraman,redneck1,jackdog,usmc0311,fresh1,monique1,tigre,alphaman,cool1,greyhoun,indycar,crunchy,
55chevy,carefree,willow1,
063dyjuy,xrated,assclown,federica,hilfiger,trivia,bronco1,mamita,
100200300,simcity,lexingky,akatsuki,retsam,johndeere,abudfv,raster,elgato,businka,satanas,mattingl,redwing1,shamil,patate,mannn,moonstar,evil666,b123456,bowl300,tanechka,
34523452,carthage,babygir,santino,bondarenko,jesuss,chico1,numlock,shyguy,sound1,kirby1,needit,mostwanted,
427900,funky1,steve123,passions,anduril,kermit1,prospero,lusty,barakuda,dream1,broodwar,porky,christy1,mahal,yyyyyy1,allan1,
1sexy,flintsto,capri,cumeater,heretic,robert2,hippos,blindax,marykay,collecti,kasumi,
1qaz!qaz,
112233q,
123258,chemistr,coolboy,
0o9i8u,kabuki,righton,tigress,nessie,sergej,andrew12,yfafyz,ytrhjvfyn,angel7,victo,mobbdeep,lemming,transfor,
1725782,myhouse,aeynbr,muskie,leno4ka,westham1,cvbhyjd,daffodil,pussylicker,pamela1,stuffer,warehous,tinker1,
2w3e4r,pluton,louise1,polarbea,
253634,prime1,anatoliy,januar,wysiwyg,cobraya,ralphy,whaler,xterra,cableguy,
112233a,porn69,jamesd,aqualung,jimmy123,lumpy,luckyman,kingsize,golfing1,alpha7,leeds1,marigold,lol1234,teabag,alex11,
10sne1,saopaulo,shanny,roland1,basser,
3216732167,carol1,year2005,morozov,saturn1,joseluis,bushed,redrock,memnoch,lalaland,indiana1,lovegod,gulnaz,buffalos,loveyou1,anteater,pattaya,jaydee,redshift,bartek,summerti,coffee1,ricochet,incest,schastie,rakkaus,h2opolo,suikoden,perro,dance1,loveme1,whoopass,vladvlad,boober,flyers1,alessia,gfcgjhn,pipers,papaya,gunsling,coolone,blackie1,gonads,gfhjkzytn,foxhound,qwert12,gangrel,ghjvtntq,bluedevi,mywife,summer01,hangman,licorice,patter,vfr750,thorsten,
515253,ninguna,dakine,strange1,mexic,vergeten,
12345432,
8phrowz624,stampede,floyd1,sailfish,raziel,ananda,giacomo,freeme,crfprf,
74185296,allstars,master01,solrac,gfnhbjn,bayliner,bmw525,
3465xxx,catter,single1,michael3,pentium4,nitrox,mapet123456,halibut,killroy,xxxxx1,phillip1,poopsie,arsenalfc,buffys,kosova,all4me,
32165498,arslan,opensesame,brutis,charles2,pochta,nadegda,backspac,mustang0,invis,gogeta,
654321q,adam25,niceday,truckin,gfdkbr,biceps,sceptre,bigdave,lauras,user345,sandys,shabba,ratdog,cristiano,natha,march13,gumball,getsdown,wasdwasd,redhead1,dddddd1,longlegs,
13572468,starsky,ducksoup,bunnys,omsairam,whoami,fred123,danmark,flapper,swanky,lakings,yfhenj,asterios,rainier,searcher,dapper,ltdjxrf,horsey,seahawk,shroom,tkfkdgo,aquaman,tashkent,number9,messi10,
1asshole,milenium,illumina,vegita,jodeci,buster01,bareback,goldfinger,fire1,
33rjhjds,sabian,thinkpad,smooth1,sully,bonghits,sushi1,magnavox,colombi,voiture,limpone,oldone,aruba,rooster1,zhenya,nomar5,touchdow,limpbizkit,rhfcfdxbr,baphomet,afrodita,bball1,madiso,ladles,lovefeet,matthew2,theworld,thunderbird,dolly1,
123rrr,forklift,alfons,berkut,speedy1,saphire,oilman,creatine,pussylov,bastard1,
456258,wicked1,filimon,skyline1,fucing,yfnfkbz,hot123,abdulla,nippon,nolimits,billiard,booty1,buttplug,westlife,coolbean,aloha1,lopas,asasin,
1212121,october2,whodat,good4u,d12345,kostas,ilya1992,regal,pioneer1,volodya,focus1,bastos,nbvjif,fenix,anita1,vadimka,nickle,jesusc,
123321456,teste,christ1,essendon,evgenii,celticfc,adam1,forumwp,lovesme,
26exkp,chillout,burly,thelast1,marcus1,metalgear,test11,ronaldo7,socrate,world1,franki,mommie,vicecity,postov1000,charlie3,oldschool,
333221,legoland,antoshka,counterstrike,buggy,mustang3,
123454,qwertzui,toons,chesty,bigtoe,tigger12,limpopo,rerehepf,diddle,nokia3250,solidsnake,conan1,rockroll,
963369,titanic1,qwezxc,cloggy,prashant,katharin,maxfli,takashi,cumonme,michael9,mymother,pennstate,khalid,
48151623,fightclub,showboat,mateusz,elrond,teenie,arrow1,mammamia,dustydog,dominator,erasmus,zxcvb1,
1a2a3a,bones1,dennis1,galaxie,pleaseme,whatever1,junkyard,galadriel,charlies,
2wsxzaq1,crimson1,behemoth,teres,master11,fairway,shady1,pass99,
1batman,joshua12,baraban,apelsin,mousepad,melon,twodogs,
123321qwe,metalica,ryjgrf,pipiska,rerfhfxf,lugnut,cretin,iloveu2,powerade,aaaaaaa1,omanko,kovalenko,isabe,chobits,
151nxjmt,shadow11,zcxfcnkbdf,gy3yt2rgls,vfhbyrf,
159753123,bladerunner,goodone,wonton,doodie,
333666999,fuckyou123,kitty123,chisox,orlando1,skateboa,red12345,destroye,snoogans,satan1,juancarlo,goheels,jetson,scottt,fuckup,aleksa,gfhfljrc,passfind,oscar123,derrick1,hateme,viper123,pieman,audi100,tuffy,andover,shooter1,
10000,makarov,grant1,nighthaw,
13576479,browneye,batigol,nfvfhf,chocolate1,
7hrdnw23,petter,bantam,morlii,jediknight,brenden,argonaut,goodstuf,wisconsi,
315920,abigail1,dirtbag,splurge,k123456,lucky777,valdepen,gsxr600,
322223,ghjnjrjk,zaq1xsw2cde3,schwanz,walter1,letmein22,nomads,
124356,codeblue,nokian70,fucke,footbal1,agyvorc,aztecs,passw0r,smuggles,femmes,ballgag,krasnodar,tamuna,schule,sixtynine,empires,erfolg,dvader,ladygaga,elite1,venezuel,nitrous,kochamcie,olivia1,trustn01,arioch,sting1,
131415,tristar,
555000,maroon,
135799,marsik,
555556,fomoco,natalka,cwoui,tartan,davecole,nosferat,hotsauce,dmitry,horus,dimasik,skazka,boss302,bluebear,vesper,ultras,tarantul,asd123asd,azteca,theflash,
8ball,
1footbal,titlover,lucas123,number6,sampson1,
789852,party1,dragon99,adonai,carwash,metropol,psychnau,vthctltc,hounds,firework,blink18,
145632,wildcat1,satchel,rice80,ghtktcnm,sailor1,cubano,anderso,rocks1,mike11,famili,dfghjc,besiktas,roygbiv,nikko,bethan,minotaur,rakesh,orange12,hfleuf,jackel,myangel,favorite7,
1478520,asssss,agnieszka,haley1,raisin,htubyf,
1buster,cfiekz,derevo,
1a2a3a4a5a,baltika,raffles,scruffy1,clitlick,louis1,buddha1,fy.nrf,walker1,makoto,shadow2,redbeard,vfvfvskfhfve,mycock,sandydog,lineman,network1,favorite8,longdick,mustangg,mavericks,indica,
1killer,cisco1,angelofwar,blue69,brianna1,bubbaa,slayer666,level42,baldrick,brutus1,lowdown,haribo,lovesexy,
500000,thissuck,picker,stephy,
1fuckme,characte,telecast,
1bigdog,repytwjdf,thematrix,hammerhe,chucha,ganesha,gunsmoke,georgi,sheltie,
1harley,knulla,sallas,westie,dragon7,conker,crappie,margosha,lisboa,
3e2w1q,shrike,grifter,ghjcnjghjcnj,asdfg1,mnbvcxz1,myszka,posture,boggie,rocketman,flhtyfkby,twiztid,vostok,pi314159,force1,televizor,gtkmvtym,samhain,imcool,jadzia,dreamers,strannik,k2trix,steelhea,nikitin,commodor,brian123,chocobo,whopper,ibilljpf,megafon,ararat,thomas12,ghbrjkbcn,q1234567890,hibernia,kings1,jim123,redfive,
68camaro,iawgk2,xavier1,
1234567u,d123456,ndirish,airborn,halfmoon,fluffy1,ranchero,sneaker,soccer2,passion1,cowman,birthday1,johnn,razzle,glock17,wsxqaz,nubian,lucky2,jelly1,henderso,eric1,
123123e,boscoe01,fuck0ff,simpson1,sassie,rjyjgkz,nascar3,watashi,loredana,janus,wilso,conman,david2,mothe,iloveher,snikers,davidj,fkmnthyfnbdf,mettss,ratfink,
123456h,lostsoul,sweet16,brabus,wobble,petra1,fuckfest,otters,sable1,svetka,spartacu,bigstick,milashka,
1lover,pasport,champagn,papichul,hrvatska,hondacivic,kevins,tacit,moneybag,gohogs,rasta1,
246813579,ytyfdbcnm,gubber,darkmoon,vitaliy,
233223,playboys,tristan1,joyce1,oriflame,mugwump,access2,autocad,thematri,qweqwe123,lolwut,ibill01,multisyn,
1233211,pelikan,rob123,chacal,
1234432,griffon,pooch,dagestan,geisha,satriani,anjali,rocketma,gixxer,pendrago,vincen,hellokit,killyou,ruger,doodah,bumblebe,badlands,galactic,emachines,foghorn,jackso,jerem,avgust,frontera,
123369,daisymae,hornyboy,welcome123,tigger01,diabl,angel13,interex,iwantsex,rockydog,kukolka,sawdust,online1,
3234412,bigpapa,jewboy,
3263827,dave123,riches,
333222,tony1,toggle,farter,
124816,tities,balle,brasilia,southsid,micke,ghbdtn12,patit,ctdfcnjgjkm,olds442,zzzzzz1,nelso,gremlins,gypsy1,carter1,slut69,farcry,
7415963,michael8,birdie1,charl,
123456789abc,
100001,aztec,sinjin,bigpimpi,closeup,atlas1,nvidia,doggone,classic1,manana,malcolm1,rfkbyf,hotbabe,rajesh,dimebag,ganjubas,rodion,jagr68,seren,syrinx,funnyman,karapuz,
123456789n,bloomin,admin18533362,biggdogg,ocarina,poopy1,hellome,internet1,booties,blowjobs,matt1,donkey1,swede,
1jennife,evgeniya,lfhbyf,coach1,
444777,green12,patryk,pinewood,justin12,
271828,
89600506779,notredame,tuborg,lemond,sk8ter,million1,wowser,pablo1,st0n3,jeeves,funhouse,hiroshi,gobucs,angeleye,bereza,winter12,catalin,qazedc,andros,ramazan,vampyre,sweethea,imperium,murat,jamest,flossy,sandeep,morgen,salamandra,bigdogg,stroller,njdevils,nutsack,vittorio,%%passwo,playful,rjyatnrf,tookie,ubnfhf,michi,
777444,shadow13,devils1,radiance,toshiba1,beluga,amormi,dandfa,trust1,killemall,smallville,polgara,billyb,landscap,steves,exploite,zamboni,damage11,dzxtckfd,trader12,pokey1,kobe08,damager,egorov,dragon88,ckfdbr,lisa69,blade2,audis4,nelson1,nibbles,
23176djivanfros,mutabor,artofwar,matvei,metal666,hrfzlz,schwinn,poohbea,seven77,thinker,
123456789qwerty,sobriety,jakers,karamelka,vbkfyf,volodin,iddqd,dale03,roberto1,lizaveta,qqqqqq1,cathy1,
08154711,davidm,quixote,bluenote,tazdevil,katrina1,bigfoot1,bublik,marma,olechka,fatpussy,marduk,arina,nonrev67,qqqq1111,camill,wtpfhm,truffle,fairview,mashina,voltaire,qazxswedcvfr,dickface,grassy,lapdance,bosstone,crazy8,yackwin,mobil,danielit,mounta1n,player69,bluegill,mewtwo,reverb,cnthdf,pablito,a123321,elena1,warcraft1,orland,ilovemyself,rfntyjr,joyride,schoo,dthjxrf,thetachi,goodtimes,blacksun,humpty,chewbacca,guyute,
123xyz,lexicon,blue45,qwe789,galatasaray,centrino,hendrix1,deimos,saturn5,craig1,vlad1996,sarah123,tupelo,ljrnjh,hotwife,bingos,
1231231,nicholas1,flamer,pusher,
1233210,heart1,hun999,jiggy,giddyup,oktober,
123456zxc,budda,galahad,glamur,samwise,oneton,bugsbunny,dominic1,scooby2,freetime,internat,
159753852,sc00ter,wantit,mazinger,inflames,laracrof,greedo,
014789,godofwar,repytwjd,water123,fishnet,venus1,wallace1,tenpin,paula1,
1475963,mania,novikov,qwertyasdfgh,goldmine,homies,
777888999,
8balls,holeinon,paper1,samael,
013579,mansur,nikit,ak1234,blueline,polska1,hotcock,laredo,windstar,vbkbwbz,raider1,newworld,lfybkrf,catfish1,shorty1,piranha,treacle,royale,
2234562,smurfs,minion,cadence,flapjack,
123456p,sydne,
135531,robinhoo,nasdaq,decatur,cyberonline,newage,gemstone,jabba,touchme,hooch,pigdog,indahous,fonzie,zebra1,juggle,patrick2,nihongo,hitomi,oldnavy,qwerfdsa,ukraina,shakti,allure,kingrich,diane1,canad,piramide,hottie1,clarion,college1,
5641110,connect1,therion,clubber,velcro,dave1,astra1,
13579-,astroboy,skittle,isgreat,photoes,cvzefh1gkc,
001100,
2cool4u,
7555545,ginger12,
2wsxcde3,camaro69,invader,domenow,asd1234,colgate,qwertasdfg,jack123,pass01,maxman,bronte,whkzyc,peter123,bogie,yecgaa,abc321,
1qay2wsx,enfield,camaroz2,trashman,bonefish,system32,azsxdcfvgb,peterose,iwantyou,dick69,temp1234,blastoff,capa200,connie1,blazin,
12233445,sexybaby,
123456j,brentfor,pheasant,hommer,jerryg,thunders,august1,lager,kapusta,boobs1,nokia5300,rocco1,xytfu7,stars1,tugger,
123sas,blingbling,
1bubba,
0wnsyo0,
1george,baile,richard2,habana,
1diamond,sensatio,
1golfer,maverick1,
1chris,clinton1,michael7,dragons1,sunrise1,pissant,fatim,mopar1,levani,rostik,pizzapie,
987412365,oceans11,
748159263,cum4me,palmetto,
4r3e2w1q,paige1,muncher,arsehole,kratos,gaffer,banderas,billys,prakash,crabby,bungie,silver12,caddis,spawn1,xboxlive,sylvania,littlebi,
524645,futura,valdemar,isacs155,prettygirl,big123,
555444,slimer,chicke,newstyle,skypilot,sailormoon,fatluvr69,jetaime,sitruc,jesuschrist,sameer,bear12,hellion,yendor,country1,etnies,conejo,jedimast,darkknight,toobad,yxcvbn,snooks,porn4life,calvary,alfaromeo,ghostman,yannick,fnkfynblf,vatoloco,homebase,
5550666,barret,
1111111111zz,odysseus,edwardss,favre4,jerrys,crybaby,xsw21qaz,firestor,spanks,indians1,squish,kingair,babycakes,haters,sarahs,
212223,teddyb,xfactor,cumload,rhapsody,death123,three3,raccoon,thomas2,slayer66,
1q2q3q4q5q,thebes,mysterio,thirdeye,orkiox.,nodoubt,bugsy,schweiz,dima1996,angels1,darkwing,jeronimo,moonpie,ronaldo9,peaches2,mack10,manish,denise1,fellowes,carioca,taylor12,epaulson,makemoney,oc247ngucz,kochanie,
3edcvfr4,vulture,
1qw23e,
1234567z,munchie,picard1,xthtgfirf,sportste,psycho1,tahoe1,creativ,perils,slurred,hermit,scoob,diesel1,cards1,wipeout,weeble,integra1,out3xf,powerpc,chrism,kalle,ariadne,kailua,phatty,dexter1,fordman,bungalow,paul123,compa,train1,thejoker,jys6wz,pussyeater,eatmee,sludge,dominus,denisa,tagheuer,yxcvbnm,bill1,ghfdlf,
300zx,nikita123,carcass,semaj,ramone,muenchen,animal1,greeny,annemari,dbrf134,jeepcj7,mollys,garten,sashok,ironmaid,coyotes,astoria,george12,westcoast,primetim,
123456o,panchito,rafae,japan1,framer,auralo,tooshort,egorova,qwerty22,callme,medicina,warhawk,w1w2w3w4,cristia,merli,alex22,kawaii,chatte,wargames,utvols,muaddib,trinket,andreas1,jjjjj1,cleric,scooters,cuntlick,gggggg1,slipknot1,
235711,handcuff,stussy,guess1,leiceste,ppppp1,passe,lovegun,chevyman,hugecock,driver1,buttsex,psychnaut1,cyber1,black2,alpha12,melbourn,man123,metalman,yjdsqujl,blondi,bungee,freak1,stomper,caitlin1,nikitina,flyaway,prikol,begood,desperad,aurelius,john1234,whosyourdaddy,slimed123,bretagne,den123,hotwheel,king123,roodypoo,izzicam,save13tx,warpten,nokia3310,samolet,ready1,coopers,scott123,bonito,
1aaaaa,yomomma,dawg1,rache,itworks,asecret,fencer,
451236,polka,olivetti,sysadmin,zepplin,sanjuan,
479373,lickem,hondacrx,pulamea,future1,naked1,sexyguy,w4g8at,lollol1,declan,runner1,rumple,daddy123,
4snz9g,grandprix,calcio,whatthefuck,nagrom,asslick,pennst,negrit,squiggy,
1223334444,police22,giovann,toronto1,tweet,yardbird,seagate,truckers,
554455,scimitar,pescator,slydog,gaysex,dogfish,fuck777,
12332112,qazxswed,morkovka,daniela1,imback,horny69,
789123456,
123456789w,jimmy2,bagger,ilove69,nikolaus,atdhfkm,rebirth,
1111aaaa,pervasive,gjgeufq,dte4uw,gfhnbpfy,skeletor,whitney1,walkman,delorean,disco1,
555888,as1234,ishikawa,fuck12,reaper1,dmitrii,bigshot,morrisse,purgen,qwer4321,itachi,willys,
123123qwe,kisska,roma123,trafford,sk84life,
326159487,pedros,idiom,plover,bebop,
159875321,jailbird,arrowhea,qwaszx123,zaxscdvf,catlover,bakers,
13579246,bones69,vermont1,helloyou,simeon,chevyz71,funguy,stargaze,parolparol,steph1,bubby,apathy,poppet,laxman,kelly123,goodnews,
741236,boner1,gaetano,astonvilla,virtua,luckyboy,rocheste,hello2u,elohim,trigger1,cstrike,pepsicola,miroslav,
96385274,fistfuck,cheval,magyar,svetlanka,lbfyjxrf,mamedov,
123123123q,ronaldo1,scotty1,
1nicole,pittbull,fredd,bbbbb1,dagwood,gfhkfvtyn,ghblehrb,logan5,
1jordan,sexbomb,omega2,montauk,
258741,dtythf,gibbon,winamp,thebomb,millerli,
852654,gemin,baldy,halflife2,dragon22,mulberry,morrigan,hotel6,zorglub,surfin,
951159,excell,arhangel,emachine,moses1,
968574,reklama,bulldog2,cuties,barca,twingo,saber,elite11,redtruck,casablan,ashish,moneyy,pepper12,cnhtktw,rjcnbr,arschloch,phenix,cachorro,sunita,madoka,joselui,adams1,mymoney,hemicuda,fyutkjr,jake12,chicas,eeeee1,sonnyboy,smarties,birdy,kitten1,cnfcbr,island1,kurosaki,taekwond,konfetka,bennett1,omega3,jackson2,fresca,minako,octavian,kban667,feyenoord,muaythai,jakedog,fktrcfylhjdyf,
1357911q,phuket,sexslave,fktrcfylhjdbx,asdfjk,
89015173454,qwerty00,kindbud,eltoro,sex6969,nyknicks,
12344321q,caballo,evenflow,hoddle,love22,metro1,mahalko,lawdog,tightass,manitou,buckie,whiskey1,anton123,
335533,password4,primo,ramair,timbo,brayden,stewie,pedro1,yorkshir,ganster,hellothe,tippy1,direwolf,genesi,rodrig,enkeli,vaz21099,sorcerer,winky,oneshot,boggle,serebro,badger1,japanes,comicbook,kamehame,alcat,denis123,echo45,sexboy,gr8ful,hondo,voetbal,blue33,
2112rush,geneviev,danni1,moosey,polkmn,matthew7,ironhead,hot2trot,ashley12,sweeper,imogen,blue21,retep,stealth1,guitarra,bernard1,tatian,frankfur,vfnhbwf,slacking,haha123,
963741,asdasdas,katenok,airforce1,
123456789qaz,shotgun1,
12qwasz,reggie1,sharo,
976431,pacifica,dhip6a,neptun,kardon,spooky1,beaut,
555555a,toosweet,tiedup,
11121314,startac,lover69,rediska,pirata,vfhrbp,
1234qwerty,energize,hansolo1,playbo,larry123,oemdlg,cnjvfnjkju,a123123,alexan,gohawks,antonius,fcbayern,mambo,yummy1,kremlin,ellen1,tremere,vfiekz,bellevue,charlie9,izabella,malishka,fermat,rotterda,dawggy,becket,chasey,kramer1,
21125150,lolit,cabrio,schlong,arisha,verity,
3some,favorit,maricon,travelle,hotpants,red1234,garrett1,home123,knarf,seven777,figment,asdewq,canseco,good2go,warhol,thomas01,pionee,al9agd,panacea,chevy454,brazzers,oriole,azerty123,finalfan,patricio,northsta,rebelde,bulldo,stallone,boogie1,
7uftyx,cfhfnjd,compusa,cornholi,config,deere,hoopster,sepultura,grasshop,babygurl,lesbo,diceman,proverbs,reddragon,nurbek,tigerwoo,superdup,buzzsaw,kakaroto,golgo13,edwar,
123qaz123,butter1,sssss1,texas2,respekt,ou812ic,
123456qaz,
55555a,doctor1,mcgwire,maria123,aol999,cinders,aa1234,joness,ghbrjkmyj,makemone,sammyboy,
567765,
380zliki,theraven,testme,mylene,elvira26,indiglo,tiramisu,shannara,baby1,
123666,gfhreh,papercut,johnmish,orange8,bogey1,mustang7,bagpipes,dimarik,vsijyjr,
4637324,ravage,cogito,seven11,natashka,warzone,hr3ytm,
4free,bigdee,
000006,
243462536,bigboi,
123333,trouts,sandy123,szevasz,monica2,guderian,newlife1,ratchet,r12345,razorbac,
12345i,piazza31,oddjob,beauty1,fffff1,anklet,nodrog,pepit,olivi,puravida,robert12,transam1,portman,bubbadog,steelers1,wilson1,eightball,mexico1,superboy,
4rfv5tgb,mzepab,samurai1,fuckslut,colleen1,girdle,vfrcbvec,q1w2e3r4t,soldier1,
19844891,alyssa1,a12345a,fidelis,skelter,nolove,mickeymouse,frehley,password69,watermel,aliska,soccer15,
12345e,ladybug1,abulafia,adagio,tigerlil,takehana,hecate,bootneck,junfan,arigato,wonkette,bobby123,trustnoone,phantasm,
132465798,brianjo,w12345,t34vfrc1991,deadeye,
1robert,
1daddy,adida,check1,grimlock,muffi,airwalk,prizrak,onclick,longbeac,ernie1,eadgbe,moore1,geniu,shadow123,bugaga,jonathan1,cjrjkjdf,orlova,buldog,talon1,westport,aenima,
541233432442,barsuk,chicago2,kellys,hellbent,toughguy,iskander,skoal,whatisit,jake123,scooter2,fgjrfkbgcbc,ghandi,love13,adelphia,vjhrjdrf,adrenali,niunia,jemoeder,rainbo,all4u8,anime1,freedom7,seraph,
789321,tommys,antman,firetruc,neogeo,natas,bmwm3,froggy1,paul1,mamit,bayview,gateways,kusanagi,ihateu,frederi,rock1,centurion,grizli,biggin,fish1,stalker1,
3girls,ilovepor,klootzak,lollo,redsox04,kirill123,jake1,pampers,vasya,hammers1,teacup,towing,celtic1,ishtar,yingyang,
4904s677075,dahc1,patriot1,patrick9,redbirds,doremi,rebecc,yoohoo,makarova,epiphone,rfgbnfy,milesd,blister,chelseafc,katana1,blackrose,
1james,primrose,shock5,hard1,scooby12,c6h12o6,dustoff,boing,chisel,kamil,
1william,defiant1,tyvugq,mp8o6d,aaa340,nafets,sonnet,flyhigh,
242526,crewcom,love23,strike1,stairway,katusha,salamand,cupcake1,password0,
007james,sunnie,multisync,harley01,tequila1,fred12,driver8,q8zo8wzq,hunter01,mozzer,temporar,eatmeraw,mrbrownxx,kailey,sycamore,flogger,tincup,rahasia,ganymede,bandera,slinger,
1111122222,vander,woodys,
1cowboy,khaled,jamies,london12,babyboo,tzpvaw,diogenes,budice,mavrick,
135797531,cheeta,macros,squonk,blackber,topfuel,apache1,falcon16,darkjedi,cheeze,vfhvtkfl,sparco,change1,gfhfif,freestyl,kukuruza,loveme2,
12345f,kozlov,sherpa,marbella,
44445555,bocephus,
1winner,alvar,hollydog,gonefish,iwantin,barman,godislove,amanda18,rfpfynbg,eugen,abcdef1,redhawk,thelema,spoonman,baller1,harry123,
475869,tigerman,cdtnjxrf,marillio,scribble,elnino,carguy,hardhead,l2g7k3,troopers,selen,dragon76,antigua,ewtosi,ulysse,astana,paroli,cristo,carmex,marjan,bassfish,letitbe,kasparov,jay123,
19933991,blue13,eyecandy,scribe,mylord,ukflbjkec,ellie1,beaver1,destro,neuken,halfpint,ameli,lilly1,satanic,xngwoj,
12345trewq,asdf1,bulldogg,asakura,jesucrist,flipside,packers4,biggy,kadett,biteme69,bobdog,silverfo,saint1,bobbo,packman,knowledg,foolio,fussbal,
12345g,kozerog,westcoas,minidisc,nbvcxw,martini1,alastair,rasengan,superbee,memento,porker,lena123,florenc,kakadu,bmw123,getalife,bigsky,monkee,people1,schlampe,red321,memyself,
0147896325,
12345678900987654321,soccer14,realdeal,gfgjxrf,bella123,juggs,doritos,celtics1,peterbilt,ghbdtnbrb,gnusmas,xcountry,ghbdtn1,batman99,deusex,gtnhjdf,blablabl,juster,marimba,love2,rerjkrf,alhambra,micros,siemens1,assmaste,moonie,dashadasha,atybrc,eeeeee1,wildrose,blue55,davidl,xrp23q,skyblue,leo123,ggggg1,bestfriend,franny,
1234rmvb,fun123,rules1,sebastien,chester2,hakeem,winston2,fartripper,atlant,
07831505,iluvsex,q1a2z3,larrys,
009900,ghjkju,capitan,rider1,qazxsw21,belochka,andy123,hellya,chicca,maximal,juergen,password1234,howard1,quetzal,daniel123,qpwoeiruty,
123555,bharat,ferrari3,numbnuts,savant,ladydog,phipsi,lovepussy,etoile,power2,mitten,britneys,chilidog,
08522580,
2fchbg,kinky1,bluerose,loulo,ricardo1,doqvq3,kswbdu,
013cpfza,timoha,ghbdtnghbdtn,
3stooges,gearhead,browns1,g00ber,super7,greenbud,kitty2,pootie,toolshed,gamers,coffe,ibill123,freelove,anasazi,sister1,jigger,natash,stacy1,weronika,luzern,soccer7,hoopla,dmoney,valerie1,canes,razdvatri,washere,greenwoo,rfhjkbyf,anselm,pkxe62,maribe,daniel2,maxim1,faceoff,carbine,xtkjdtr,buddy12,stratos,jumpman,buttocks,aqswdefr,pepsis,sonechka,steeler1,lanman,nietzsch,ballz,biscuit1,wrxsti,goodfood,juventu,federic,mattman,vika123,strelec,jledfyxbr,sideshow,
4life,fredderf,bigwilly,
12347890,
12345671,sharik,bmw325i,fylhtqrf,dannon4,marky,mrhappy,drdoom,maddog1,pompier,cerbera,goobers,howler,jenny69,evely,letitrid,cthuttdyf,felip,shizzle,golf12,t123456,yamah,bluearmy,squishy,roxan,
10inches,dollface,babygirl1,blacksta,kaneda,lexingto,canadien,
222888,kukushka,sistema,
224422,shadow69,ppspankp,mellons,barbie1,free4all,alfa156,lostone,
2w3e4r5t,painkiller,robbie1,binger,
8dihc6,jaspe,rellik,quark,sogood,hoopstar,number2,snowy1,dad2ownu,cresta,qwe123asd,hjvfyjdf,gibsonsg,qbg26i,dockers,grunge,duckling,lfiekz,cuntsoup,kasia1,
1tigger,woaini,reksio,tmoney,firefighter,neuron,audia3,woogie,powerboo,powermac,fatcock,
12345666,upnfmc,lustful,porn1,gotlove,amylee,kbytqrf,
11924704,
25251325,sarasota,sexme,ozzie1,berliner,nigga1,guatemal,seagulls,iloveyou!,chicken2,qwerty21,
010203040506,
1pillow,libby1,vodoley,backlash,piglets,teiubesc,
019283,vonnegut,perico,thunde,buckey,gtxtymrf,manunite,iiiii1,lost4815162342,madonn,
270873_,britney1,kevlar,piano1,boondock,colt1911,salamat,doma77ns,anuradha,cnhjqrf,rottweil,newmoon,topgun1,mauser,fightclu,birthday21,reviewpa,herons,aassddff,lakers32,melissa2,vredina,jiujitsu,mgoblue,shakey,moss84,
12345zxcvb,funsex,benji1,garci,
113322,chipie,windex,nokia5310,pwxd5x,bluemax,cosita,chalupa,trotsky,new123,g3ujwg,newguy,canabis,gnaget,happydays,felixx,
1patrick,cumface,sparkie,kozlova,
123234,newports,broncos7,golf18,recycle,hahah,harrypot,cachondo,open4me,miria,guessit,pepsione,knocker,usmc1775,countach,playe,wiking,landrover,cracksevi,drumline,a7777777,smile123,manzana,panty,liberta,pimp69,dolfan,quality1,schnee,superson,elaine22,webhompass,mrbrownx,deepsea,
4wheel,mamasita,rockport,rollie,myhome,jordan12,kfvgjxrf,hockey12,seagrave,ford1,chelsea2,samsara,marissa1,lamesa,mobil1,piotrek,tommygun,yyyyy1,wesley1,billy123,homersim,julies,amanda12,shaka,maldini,suzenet,springst,iiiiii1,yakuza,
111111aa,westwind,helpdesk,annamari,bringit,hopefull,hhhhhhh1,saywhat,mazdarx8,bulova,jennife1,baikal,gfhjkmxbr,victoria1,gizmo123,alex99,defjam,
2girls,sandrock,positivo,shingo,syncmast,opensesa,silicone,fuckina,senna1,karlos,duffbeer,montagne,gehrig,thetick,pepino,hamburge,paramedic,scamp,smokeweed,fabregas,phantoms,venom121293,
2583458,badone,porno69,manwhore,vfvf123,notagain,vbktyf,rfnthbyrf,wildblue,kelly001,dragon66,camell,curtis1,frolova,
1212123,dothedew,tyler123,reddrago,planetx,promethe,gigolo,
1001001,thisone,eugeni,blackshe,cruzazul,incognito,puller,joonas,quick1,spirit1,gazza,zealot,gordito,hotrod1,mitch1,pollito,hellcat,mythos,duluth,
383pdjvl,easy123,hermos,binkie,its420,lovecraf,darien,romina,doraemon,
19877891,syclone,hadoken,transpor,ichiro,intell,gargamel,dragon2,wavpzt,
557744,rjw7x4,jennys,kickit,rjynfrn,likeit,
555111,corvus,nec3520,
133113,mookie1,bochum,samsung2,locoman0,
154ugeiu,vfvfbgfgf,
135792,[start],tenni,
20001,vestax,hufmqw,neveragain,wizkid,kjgfnf,nokia6303,tristen,saltanat,louie1,gandalf2,sinfonia,alpha3,tolstoy,ford150,f00bar,
1hello,alici,lol12,riker1,hellou,
333888,
1hunter,qw1234,vibrator,mets86,
43211234,gonzale,cookies1,sissy1,john11,bubber,blue01,cup2006,gtkmvtyb,nazareth,heybaby,suresh,teddie,mozilla,rodeo1,madhouse,gamera,
123123321,naresh,dominos,foxtrot1,taras,powerup,kipling,jasonb,fidget,galena,meatman,alpacino,bookmark,farting,humper,titsnass,gorgon,castaway,dianka,anutka,gecko1,fucklove,connery,wings1,erika1,peoria,moneymaker,ichabod,heaven1,paperboy,phaser,breakers,nurse1,westbrom,alex13,brendan1,
123asd123,almera,grubber,clarkie,thisisme,welkom01,
51051051051,crypto,freenet,pflybwf,black12,testme2,changeit,autobahn,attica,chaoss,denver1,tercel,gnasher23,master2,vasilii,sherman1,gomer,bigbuck,derek1,qwerzxcv,jumble,dragon23,art131313,numark,beasty,cxfcnmttcnm,updown,starion,glist,sxhq65,ranger99,monkey7,shifter,wolves1,
4r5t6y,phone1,favorite5,skytommy,abracada,
1martin,
102030405060,gatech,giulio,blacktop,cheer1,africa1,grizzly1,inkjet,shemales,durango1,booner,
11223344q,supergirl,vanyarespekt,dickless,srilanka,weaponx,
6string,nashvill,spicey,boxer1,fabien,
2sexy2ho,bowhunt,jerrylee,acrobat,tawnee,ulisse,nolimit8,l8g3bkde,pershing,gordo1,allover,gobrowns,
123432,
123444,
321456987,spoon1,hhhhh1,sailing1,gardenia,teache,sexmachine,tratata,pirate1,niceone,jimbos,
314159265,qsdfgh,bobbyy,ccccc1,carla1,vjkjltw,savana,biotech,frigid,
123456789g,dragon10,yesiam,alpha06,oakwood,tooter,winsto,radioman,vavilon,asnaeb,google123,nariman,kellyb,dthyjcnm,password6,parol1,golf72,skate1,lthtdj,
1234567890s,kennet,rossia,lindas,nataliya,perfecto,eminem1,kitana,aragorn1,rexona,arsenalf,planot,coope,testing123,timex,blackbox,bullhead,barbarian,dreamon,polaris1,cfvjktn,frdfhbev,gametime,slipknot666,nomad1,hfgcjlbz,happy69,fiddler,brazil1,joeboy,indianali,
113355,obelisk,telemark,ghostrid,preston1,anonim,wellcome,verizon1,sayangku,censor,timeport,dummies,adult1,nbnfybr,donger,thales,iamgay,sexy1234,deadlift,pidaras,doroga,
123qwe321,portuga,asdfgh12,happys,cadr14nu,pi3141,maksik,dribble,cortland,darken,stepanova,bommel,tropic,sochi2014,bluegras,shahid,merhaba,nacho,
2580456,orange44,kongen,
3cudjz,
78girl,my3kids,marcopol,deadmeat,gabbie,saruman,jeepman,freddie1,katie123,master99,ronal,ballbag,centauri,killer7,xqgann,pinecone,jdeere,geirby,aceshigh,
55832811,pepsimax,rayden,razor1,tallyho,ewelina,coldfire,florid,glotest,
999333,sevenup,bluefin,limaperu,apostol,bobbins,charmed1,michelin,sundin,centaur,alphaone,christof,trial1,lions1,
45645,just4you,starflee,vicki1,cougar1,green2,jellyfis,batman69,games1,hihje863,crazyzil,w0rm1,oklick,dogbite,yssup,sunstar,paprika,postov10,
124578963,x24ik3,kanada,buckster,iloveamy,bear123,smiler,nx74205,ohiostat,spacey,bigbill,doudo,nikolaeva,hcleeb,sex666,mindy1,buster11,deacons,boness,njkcnsq,candy2,cracker1,turkey1,qwertyu1,gogreen,tazzzz,edgewise,ranger01,qwerty6,blazer1,arian,letmeinnow,cigar1,jjjjjj1,grigio,frien,tenchu,f9lmwd,imissyou,filipp,heathers,coolie,salem1,woodduck,scubadiv,
123kat,raffaele,nikolaev,dapzu455,skooter,
9inches,lthgfhjkm,gr8one,ffffff1,zujlrf,amanda69,gldmeo,m5wkqf,rfrltkf,televisi,bonjou,paleale,stuff1,cumalot,fuckmenow,climb7,mark1234,t26gn4,oneeye,george2,utyyflbq,hunting1,tracy71,ready2go,hotguy,accessno,charger1,rudedog,kmfdm,goober1,sweetie1,wtpmjgda,dimensio,ollie1,pickles1,hellraiser,mustdie,
123zzz,
99887766,stepanov,verdun,tokenbad,anatol,bartende,cidkid86,onkelz,timmie,mooseman,patch1,
12345678c,marta1,dummy1,bethany1,myfamily,history1,
178500,lsutiger,phydeaux,moren,dbrnjhjdbx,gnbxrf,uniden,drummers,abpbrf,godboy,daisy123,hogan1,ratpack,irland,tangerine,greddy,flore,sqrunch,billyjoe,q55555,clemson1,
98745632,marios,ishot,angelin,access12,naruto12,lolly,scxakv,austin12,sallad,cool99,rockit,mongo1,mark22,ghbynth,ariadna,senha,docto,tyler2,mobius,hammarby,
192168,anna12,claire1,pxx3eftp,secreto,greeneye,stjabn,baguvix,satana666,rhbcnbyjxrf,dallastx,garfiel,michaelj,
1summer,montan,
1234ab,filbert,squids,fastback,lyudmila,chucho,eagleone,kimberle,ar3yuk3,jake01,nokids,soccer22,
1066ad,ballon,cheeto,review69,madeira,taylor2,sunny123,chubbs,lakeland,striker1,porche,qwertyu8,digiview,go1234,ferari,lovetits,aditya,minnow,green3,matman,cellphon,fortytwo,minni,pucara,
69a20a,roman123,fuente,
12e3e456,paul12,jacky,demian,littleman,jadakiss,vlad1997,franca,
282860,midian,nunzio,xaccess2,colibri,jessica0,revilo,
654456,harvey1,wolf1,macarena,corey1,husky1,arsen,milleniu,
852147,crowes,redcat,combat123654,hugger,psalms,quixtar,ilovemom,toyot,ballss,ilovekim,serdar,james23,avenger1,serendip,malamute,nalgas,teflon,shagger,letmein6,vyjujnjxbt,assa1234,student1,dixiedog,gznybwf13,fuckass,aq1sw2de3,robroy,hosehead,sosa21,
123345,ias100,teddy123,poppin,dgl70460,zanoza,farhan,quicksilver,
1701d,tajmahal,depechemode,paulchen,angler,tommy2,recoil,megamanx,scarecro,nicole2,
152535,rfvtgb,skunky,fatty1,saturno,wormwood,milwauke,udbwsk,sexlover,stefa,
7bgiqk,gfnhbr,omar10,bratan,lbyfvj,slyfox,forest1,jambo,william3,tempus,solitari,lucydog,murzilka,qweasdzxc1,vehpbkrf,
12312345,fixit,woobie,andre123,
123456789x,lifter,zinaida,soccer17,andone,foxbat,torsten,apple12,teleport,
123456i,leglover,bigcocks,vologda,dodger1,martyn,d6o8pm,naciona,eagleeye,maria6,rimshot,bentley1,octagon,barbos,masaki,gremio,siemen,s1107d,mujeres,bigtits1,cherr,saints1,mrpink,simran,ghzybr,ferrari2,secret12,tornado1,kocham,picolo,deneme,onelove1,rolan,fenster,
1fuckyou,cabbie,pegaso,nastyboy,password5,aidana,mine2306,mike13,wetone,tigger69,ytreza,bondage1,myass,golova,tolik,happyboy,poilkj,nimda2k,rammer,rubies,hardcore1,jetset,hoops1,jlaudio,misskitt,
1charlie,google12,theone1,phred,porsch,aalborg,luft4,charlie5,password7,gnosis,djgabbab,
1daniel,vinny,borris,cumulus,member1,trogdor,darthmau,andrew2,ktjybl,relisys,kriste,rasta220,chgobndg,weener,qwerty66,fritter,followme,freeman1,ballen,blood1,peache,mariso,trevor1,biotch,gtfullam,chamonix,friendste,alligato,misha1,
1soccer,
18821221,venkat,superd,molotov,bongos,mpower,acun3t1x,dfcmrf,h4x3d,rfhfufylf,tigran,booyaa,plastic1,monstr,rfnhby,lookatme,anabolic,tiesto,simon123,soulman,canes1,skyking,tomcat1,madona,bassline,dasha123,tarheel1,dutch1,xsw23edc,qwerty123456789,imperator,slaveboy,bateau,paypal,house123,pentax,wolf666,drgonzo,perros,digger1,juninho,hellomoto,bladerun,zzzzzzz1,keebler,take8422,fffffff1,ginuwine,israe,caesar1,crack1,precious1,garand,magda1,zigazaga,
321ewq,johnpaul,mama1234,iceman69,sanjeev,treeman,elric,rebell,
1thunder,cochon,deamon,zoltan,straycat,uhbyuj,luvfur,mugsy,primer,wonder1,teetime,candycan,pfchfytw,fromage,gitler,salvatio,piggy1,
23049307,zafira,chicky,sergeev,katze,bangers,andriy,jailbait,vaz2107,ghbhjlf,dbjktnnf,aqswde,zaratustra,asroma,
1pepper,alyss,kkkkk1,ryan1,radish,cozumel,waterpol,pentium1,rosebowl,farmall,steinway,dbrekz,baranov,jkmuf,another1,chinacat,qqqqqqq1,hadrian,devilmaycry4,ratbag,teddy2,love21,pullings,packrat,robyn1,boobo,qw12er34,tribe1,rosey,celestia,nikkie,fortune12,olga123,danthema,gameon,vfrfhjys,dilshod,henry14,jenova,redblue,chimaera,pennywise,sokrates,danimal,qqaazz,fuaqz4,killer2,
198200,tbone1,kolyan,wabbit,lewis1,maxtor,egoist,asdfas,spyglass,omegas,jack12,nikitka,esperanz,doozer,matematika,wwwww1,ssssss1,poiu0987,suchka,courtney1,gungho,alpha2,fktyjxrf,summer06,bud420,devildriver,heavyd,saracen,foucault,choclate,rjdfktyrj,goblue1,monaro,jmoney,dcpugh,efbcapa201,qqh92r,pepsicol,bbb747,ch5nmk,honeyb,beszoptad,tweeter,intheass,iseedeadpeople,
123dan,
89231243658s,farside1,findme,smiley1,
55556666,sartre,ytcnjh,kacper,costarica,
134679258,mikeys,nolimit9,vova123,withyou,
5rxypn,love143,freebie,rescue1,
203040,michael6,
12monkey,redgreen,steff,itstime,naveen,good12345,acidrain,
1dawg,miramar,playas,daddio,orion2,
852741,studmuff,kobe24,senha123,stephe,mehmet,allalone,scarface1,helloworld,smith123,blueyes,vitali,memphis1,mybitch,colin1,
159874,
1dick,podaria,d6wnro,brahms,f3gh65,dfcbkmtd,xxxman,corran,ugejvp,qcfmtz,marusia,totem,arachnid,matrix2,antonell,fgntrf,zemfira,christos,surfing1,naruto123,plato1,
56qhxs,madzia,vanille,
043aaa,asq321,mutton,ohiostate,golde,cdznjckfd,rhfcysq,green5,elephan,superdog,jacqueli,bollock,lolitas,nick12,
1orange,maplelea,july23,argento,waldorf,wolfer,pokemon12,zxcvbnmm,flicka,drexel,outlawz,harrie,atrain,juice2,falcons1,charlie6,
19391945,tower1,dragon21,hotdamn,dirtyboy,love4ever,
1ginger,thunder2,virgo1,alien1,bubblegu,
4wwvte,
123456789qqq,realtime,studio54,passss,vasilek,awsome,giorgia,bigbass,
2002tii,sunghile,mosdef,simbas,count0,uwrl7c,summer05,lhepmz,ranger21,sugarbea,principe,
5550123,tatanka,
9638v,cheerios,majere,nomercy,jamesbond007,bh90210,
7550055,jobber,karaganda,pongo,trickle,defamer,
6chid8,
1q2a3z,tuscan,nick123,.adgjm,loveyo,hobbes1,note1234,shootme,
171819,loveporn,
9788960,monty123,fabrice,macduff,monkey13,shadowfa,tweeker,hanna1,madball,telnet,loveu2,qwedcxzas,thatsit,vfhcbr,ptfe3xxp,gblfhfcs,ddddddd1,hakkinen,liverune,deathsta,misty123,suka123,recon1,inferno1,
232629,polecat,sanibel,grouch,hitech,hamradio,rkfdbfnehf,vandam,nadin,fastlane,shlong,iddqdidkfa,ledzeppelin,sexyfeet,
098123,stacey1,negras,roofing,lucifer1,ikarus,tgbyhn,melnik,barbaria,montego,twisted1,bigal1,jiggle,darkwolf,acerview,silvio,treetops,bishop1,iwanna,pornsite,happyme,gfccdjhl,
114411,veritech,batterse,casey123,yhntgb,mailto,milli,guster,q12345678,coronet,sleuth,fuckmeha,armadill,kroshka,geordie,lastochka,pynchon,killall,tommy123,sasha1996,godslove,hikaru,clticic,cornbrea,vfkmdbyf,passmaster,
123123123a,souris,nailer,diabolo,skipjack,martin12,hinata,mof6681,brookie,dogfight,johnso,karpov,
326598,rfvbrflpt,travesti,caballer,galaxy1,wotan,antoha,art123,xakep1234,ricflair,pervert1,p00kie,ambulanc,santosh,berserker,larry33,bitch123,a987654321,dogstar,angel22,cjcbcrf,redhouse,toodles,gold123,hotspot,kennedy1,glock21,chosen1,schneide,mainman,taffy1,
3ki42x,
4zqauf,ranger2,
4meonly,year2000,
121212a,kfylsi,netzwerk,diese,picasso1,rerecz,
225522,dastan,swimmer1,brooke1,blackbea,oneway,ruslana,dont4get,phidelt,chrisp,gjyxbr,xwing,kickme,shimmy,kimmy1,
4815162342lost,qwerty5,fcporto,jazzbo,mierd,
252627,basses,sr20det,
00133,florin,howdy1,kryten,goshen,koufax,cichlid,imhotep,andyman,wrest666,saveme,dutchy,anonymou,semprini,siempre,mocha1,forest11,wildroid,aspen1,sesam,kfgekz,cbhbec,a55555,sigmanu,slash1,giggs11,vatech,marias,candy123,jericho1,kingme,
123a123,drakula,cdjkjxm,mercur,oneman,hoseman,plumper,ilovehim,lancers,sergey1,takeshi,goodtogo,cranberr,ghjcnj123,harvick,qazxs,
1972chev,horsesho,freedom3,letmein7,saitek,anguss,vfvfgfgfz,
300000,elektro,toonporn,
999111999q,mamuka,q9umoz,edelweis,subwoofer,bayside,disturbe,volition,lucky3,
12345678z,
3mpz4r,march1,atlantida,strekoza,seagrams,
090909t,yy5rbfsc,jack1234,sammy12,sampras,mark12,eintrach,chaucer,lllll1,nochance,whitepower,
197000,lbvekz,passer,torana,
12345as,pallas,koolio,
12qw34,nokia8800,findout,
1thomas,mmmmm1,
654987,mihaela,chinaman,superduper,donnas,ringo1,jeroen,gfdkjdf,professo,cdtnrf,tranmere,tanstaaf,himera,ukflbfnjh,
667788,alex32,joschi,w123456,okidoki,flatline,papercli,super8,doris1,
2good4u,
4z34l0ts,pedigree,freeride,gsxr1100,wulfgar,benjie,ferdinan,king1,charlie7,djdxbr,fhntvbq,ripcurl,
2wsx1qaz,kingsx,desade,sn00py,loveboat,rottie,evgesha,
4money,dolittle,adgjmpt,buzzers,brett1,makita,
123123qweqwe,rusalka,sluts1,
123456e,jameson1,bigbaby,
1z2z3z,ckjybr,love4u,fucker69,erhfbyf,jeanluc,farhad,fishfood,merkin,giant1,golf69,rfnfcnhjaf,camera1,stromb,smoothy,
774411,nylon,juice1,rfn.irf,newyor,
123456789t,marmot,star11,jennyff,jester1,hisashi,kumquat,alex777,helicopt,merkur,dehpye,cummin,zsmj2v,kristjan,april12,englan,honeypot,badgirls,uzumaki,keines,p12345,guita,quake1,duncan1,juicer,milkbone,hurtme,
123456789b,qq123456789,schwein,p3wqaw,
54132442,qwertyytrewq,andreeva,ruffryde,punkie,abfkrf,kristinka,anna1987,ooooo1,
335533aa,umberto,amber123,
456123789,
456789123,beelch,manta,peeker,
1112131415,
3141592654,gipper,wrinkle5,katies,asd123456,james11,
78n3s5af,michael0,daboss,jimmyb,hotdog1,david69,
852123,blazed,sickan,eljefe,
2n6wvq,gobills,rfhfcm,squeaker,cabowabo,luebri,karups,test01,melkor,angel777,smallvil,modano,olorin,
4rkpkt,leslie1,koffie,shadows1,littleon,amiga1,topeka,summer20,asterix1,pitstop,aloysius,k12345,magazin,joker69,panocha,pass1word,
1233214,ironpony,
368ejhih,
88keys,pizza123,sonali,
57np39,quake2,
1234567890qw,
1020304,sword1,fynjif,abcde123,dfktyjr,rockys,grendel1,harley12,kokakola,super2,azathoth,lisa123,shelley1,girlss,ibragim,seven1,jeff24,
1bigdick,dragan,autobot,t4nvp7,omega123,
900000,hecnfv,
889988,nitro1,doggie1,fatjoe,
811pahc,tommyt,savage1,pallino,smitty1,jg3h4hfn,jamielee,
1qazwsx,zx123456,machine1,asdfgh123,guinnes,
789520,sharkman,jochen,legend1,sonic2,extreme1,dima12,photoman,
123459876,nokian95,
775533,vaz2109,april10,becks,repmvf,pooker,qwer12345,themaster,nabeel,monkey10,gogetit,hockey99,bbbbbbb1,zinedine,dolphin2,anelka,
1superma,winter01,muggsy,horny2,
669966,kuleshov,jesusis,calavera,bullet1,
87t5hdf,sleepers,winkie,vespa,lightsab,carine,magister,
1spider,shitbird,salavat,becca1,wc18c2,shirak,galactus,zaskar,barkley1,reshma,dogbreat,fullsail,asasa,boeder,
12345ta,zxcvbnm12,lepton,elfquest,tony123,vkaxcs,savatage,sevilia1,badkitty,munkey,pebbles1,diciembr,qapmoc,gabriel2,
1qa2ws3e,cbcmrb,welldone,nfyufh,kaizen,jack11,manisha,grommit,g12345,maverik,chessman,heythere,mixail,jjjjjjj1,sylvia1,fairmont,harve,skully,global1,youwish,pikachu1,badcat,zombie1,
49527843,ultra1,redrider,offsprin,lovebird,
153426,stymie,aq1sw2,sorrento,
0000001,r3ady41t,webster1,
95175,adam123,coonass,
159487,slut1,gerasim,monkey99,slutwife,
159963,
1pass1page,hobiecat,bigtymer,all4you,maggie2,olamide,comcast1,infinit,bailee,vasileva,.ktxrf,asdfghjkl1,
12345678912,setter,fuckyou7,nnagqx,lifesuck,draken,austi,feb2000,cable1,
1234qwerasdf,hax0red,zxcv12,vlad7788,nosaj,lenovo,underpar,huskies1,lovegirl,feynman,suerte,babaloo,alskdjfhg,oldsmobi,bomber1,redrover,pupuce,methodman,phenom,cutegirl,countyli,gretsch,godisgood,bysunsu,hardhat,mironova,
123qwe456rty,rusty123,salut,
187211,
555666777,
11111z,mahesh,rjntyjxtr,br00klyn,dunce1,timebomb,bovine,makelove,littlee,shaven,rizwan,patrick7,
42042042,bobbijo,rustem,buttmunc,dongle,tiger69,bluecat,blackhol,shirin,peaces,cherub,cubase,longwood,lotus7,gwju3g,bruin,pzaiu8,green11,uyxnyd,seventee,dragon5,tinkerbel,bluess,bomba,fedorova,joshua2,bodyshop,peluche,gbpacker,shelly1,d1i2m3a4,ghtpbltyn,talons,sergeevna,misato,chrisc,sexmeup,brend,olddog,davros,hazelnut,bridget1,hzze929b,readme,brethart,wild1,ghbdtnbr1,nortel,kinger,royal1,bucky1,allah1,drakkar,emyeuanh,gallaghe,hardtime,jocker,tanman,flavio,abcdef123,leviatha,squid1,skeet,sexse,
123456x,mom4u4mm,lilred,djljktq,ocean11,cadaver,baxter1,
808state,fighton,primavera,
1andrew,moogle,limabean,goddess1,vitalya,blue56,
258025,bullride,cicci,
1234567d,connor1,gsxr11,oliveoil,leonard1,legsex,gavrik,rjnjgtc,mexicano,
2bad4u,goodfellas,ornw6d,mancheste,hawkmoon,zlzfrh,schorsch,g9zns4,bashful,rossi46,stephie,rfhfntkm,sellout,
123fuck,stewar1,solnze,
00007,thor5200,compaq12,didit,bigdeal,hjlbyf,zebulon,wpf8eu,kamran,emanuele,
197500,carvin,ozlq6qwm,
3syqo15hil,pennys,epvjb6,asdfghjkl123,
198000,nfbcbz,jazzer,asfnhg66,zoloft,albundy,aeiou,getlaid,planet1,gjkbyjxrf,alex2000,brianb,moveon,maggie11,eieio,vcradq,shaggy1,novartis,cocoloco,dunamis,
554uzpad,sundrop,
1qwertyu,alfie,feliks,briand,
123www,red456,addams,fhntv1998,goodhead,theway,javaman,angel01,stratoca,lonsdale,
15987532,bigpimpin,skater1,issue43,muffie,yasmina,slowride,crm114,sanity729,himmel,carolcox,bustanut,parabola,masterlo,computador,crackhea,dynastar,rockbott,doggysty,wantsome,bigten,gaelle,juicy1,alaska1,etower,sixnine,suntan,froggies,nokia7610,hunter11,njnets,alicante,buttons1,diosesamo,elizabeth1,chiron,trustnoo,amatuers,tinytim,mechta,sammy2,cthulu,trs8f7,poonam,m6cjy69u35,cookie12,blue25,jordans,santa1,kalinka,mikey123,lebedeva,
12345689,kissss,queenbee,vjybnjh,ghostdog,cuckold,bearshare,rjcntyrj,alinochka,ghjcnjrdfibyj,aggie1,teens1,
3qvqod,dauren,tonino,hpk2qc,iqzzt580,bears85,nascar88,theboy,njqcw4,masyanya,pn5jvw,intranet,lollone,shadow99,
00096462,techie,cvtifhbrb,redeemed,gocanes,
62717315,topman,intj3a,cobrajet,antivirus,whyme,berserke,ikilz083,airedale,brandon2,hopkig,johanna1,danil8098,gojira,arthu,vision1,pendragon,milen,chrissie,vampiro,mudder,chris22,blowme69,omega7,surfers,goterps,italy1,baseba11,diego1,gnatsum,birdies,semenov,joker123,zenit2011,wojtek,cab4ma99,watchmen,damia,forgotte,fdm7ed,strummer,freelanc,cingular,orange77,mcdonalds,vjhjpjdf,kariya,tombston,starlet,hawaii1,dantheman,megabyte,nbvjirf,anjing,ybrjkftdbx,hotmom,kazbek,pacific1,sashimi,asd12,coorslig,yvtte545,kitte,elysium,klimenko,cobblers,kamehameha,only4me,redriver,triforce,sidorov,vittoria,fredi,dank420,m1234567,fallout2,
989244342a,crazy123,crapola,servus,volvos,
1scooter,griffin1,autopass,ownzyou,deviant,george01,
2kgwai,boeing74,simhrq,hermosa,hardcor,griffy,rolex1,hackme,cuddles1,master3,bujhtr,aaron123,popolo,blader,
1sexyred,gerry1,cronos,ffvdj474,yeehaw,bob1234,carlos2,mike77,buckwheat,ramesh,acls2h,monster2,montess,
11qq22ww,lazer,zx123456789,chimpy,masterch,sargon,lochness,archana,
1234qwert,hbxfhl,sarahb,altoid,zxcvbn12,dakot,caterham,dolomite,chazz,r29hqq,longone,pericles,grand1,sherbert,eagle3,pudge,irontree,synapse,boome,nogood,summer2,pooki,gangsta1,mahalkit,elenka,lbhtrnjh,dukedog,
19922991,hopkins1,evgenia,domino1,x123456,manny1,tabbycat,drake1,jerico,drahcir,kelly2,
708090a,facesit,
11c645df,mac123,boodog,kalani,hiphop1,critters,hellothere,tbirds,valerka,
551scasi,love777,paloalto,mrbrown,duke3d,killa1,arcturus,spider12,dizzy1,smudger,goddog,
75395,spammy,
1357997531,
78678,datalife,zxcvbn123,
1122112211,london22,
23dp4x,rxmtkp,biggirls,ownsu,lzbs2twz,sharps,geryfe,
237081a,golakers,nemesi,sasha1995,pretty1,mittens1,d1lakiss,speedrac,gfhjkmm,sabbat,hellrais,
159753258,qwertyuiop123,playgirl,crippler,salma,strat1,celest,hello5,omega5,cheese12,ndeyl5,edward12,soccer3,cheerio,davido,vfrcbr,gjhjctyjr,boscoe,inessa,shithole,ibill,qwepoi,
201jedlz,asdlkj,davidk,spawn2,ariel1,michael4,jamie123,romantik,micro1,pittsbur,canibus,katja,muhtar,thomas123,studboy,masahiro,rebrov,patrick8,hotboys,sarge1,
1hammer,nnnnn1,eistee,datalore,jackdani,sasha2010,mwq6qlzo,cmfnpu,klausi,cnhjbntkm,andrzej,ilovejen,lindaa,hunter123,vvvvv1,novembe,hamster1,x35v8l,lacey1,
1silver,iluvporn,valter,herson,alexsandr,cojones,backhoe,womens,
777angel,beatit,klingon1,ta8g4w,luisito,benedikt,maxwel,inspecto,zaq12ws,wladimir,bobbyd,peterj,asdfg12,hellspawn,bitch69,nick1234,golfer23,sony123,jello1,killie,chubby1,kodaira52,yanochka,buckfast,morris1,roaddogg,snakeeye,sex1234,mike22,mmouse,fucker11,dantist,brittan,vfrfhjdf,doc123,plokijuh,emerald1,batman01,serafim,elementa,soccer9,footlong,cthuttdbx,hapkido,eagle123,getsmart,getiton,batman2,masons,mastiff,
098890,cfvfhf,james7,azalea,sherif,saun24865709,
123red,cnhtrjpf,martina1,pupper,michael5,alan12,shakir,devin1,ha8fyp,palom,mamulya,trippy,deerhunter,happyone,monkey77,
3mta3,
123456789f,crownvic,teodor,natusik,
0137485,vovchik,strutter,triumph1,cvetok,moremone,sonnen,screwbal,akira1,sexnow,pernille,independ,poopies,samapi,kbcbxrf,master22,swetlana,urchin,viper2,magica,slurpee,postit,gilgames,kissarmy,clubpenguin,limpbizk,timber1,celin,lilkim,fuckhard,lonely1,mom123,goodwood,extasy,sdsadee23,foxglove,malibog,clark1,casey2,shell1,odense,balefire,dcunited,cubbie,pierr,solei,
161718,bowling1,areyukesc,batboy,r123456,
1pionee,marmelad,maynard1,cn42qj,cfvehfq,heathrow,qazxcvbn,connecti,secret123,newfie,xzsawq21,tubitzen,nikusha,enigma1,yfcnz123,
1austin,michaelc,splunge,wanger,phantom2,jason2,pain4me,primetime21,babes1,liberte,sugarray,undergro,zonker,labatts,djhjyf,watch1,eagle5,madison2,cntgfirf,sasha2,masterca,fiction7,slick50,bruins1,sagitari,
12481632,peniss,insuranc,
2b8riedt,
12346789,mrclean,ssptx452,tissot,q1w2e3r4t5y6u7,avatar1,comet1,spacer,vbrjkf,pass11,wanker1,
14vbqk9p,noshit,money4me,sayana,fish1234,seaways,pipper,romeo123,karens,wardog,ab123456,gorilla1,andrey123,lifesucks,jamesr,
4wcqjn,bearman,glock22,matt11,dflbvrf,barbi,maine1,dima1997,sunnyboy,
6bjvpe,bangkok1,
666666q,rafiki,letmein0,
0raziel0,dalla,london99,wildthin,patrycja,skydog,qcactw,tmjxn151,yqlgr667,jimmyd,stripclub,deadwood,
863abgsg,horses1,qn632o,scatman,sonia1,subrosa,woland,kolya,charlie4,moleman,j12345,summer11,angel11,blasen,sandal,mynewpas,retlaw,cambria,mustang4,nohack04,kimber45,fatdog,maiden1,bigload,necron,dupont24,ghost123,turbo2,.ktymrf,radagast,balzac,vsevolod,pankaj,argentum,
2bigtits,mamabear,bumblebee,mercury7,maddie1,chomper,jq24nc,snooky,pussylic,
1lovers,taltos,warchild,diablo66,jojo12,sumerki,aventura,gagger,annelies,drumset,cumshots,azimut,
123580,clambake,bmw540,birthday54,psswrd,paganini,wildwest,filibert,teaseme,
1test,scampi,thunder5,antosha,purple12,supersex,hhhhhh1,brujah,
111222333a,
13579a,bvgthfnjh,
4506802a,killians,choco,qqqwwweee,raygun,
1grand,koetsu13,sharp1,mimi92139,fastfood,idontcare,bluered,chochoz,
4z3al0ts,target1,sheffiel,labrat,stalingrad,
147123,cubfan,corvett1,holden1,snapper1,
4071505,amadeo,pollo,desperados,lovestory,marcopolo,mumbles,familyguy,kimchee,marcio,support1,tekila,shygirl1,trekkie,submissi,ilaria,salam,loveu,wildstar,master69,sales1,netware,homer2,arseniy,gerrity1,raspberr,atreyu,stick1,aldric,tennis12,matahari,alohomora,dicanio,michae1,michaeld,
666111,luvbug,boyscout,esmerald,mjordan,admiral1,steamboa,
616913,ybhdfyf,
557711,
555999,sunray,apokalipsis,theroc,bmw330,buzzy,chicos,lenusik,shadowma,eagles05,
444222,peartree,qqq123,sandmann,spring1,
430799,phatass,andi03,binky1,arsch,bamba,kenny123,fabolous,loser123,poop12,maman,phobos,tecate,myxworld4,metros,cocorico,nokia6120,johnny69,hater,spanked,
313233,markos,love2011,mozart1,viktoriy,reccos,
331234,hornyone,vitesse,
1um
83z,
55555q,proline,v12345,skaven,alizee,bimini,fenerbahce,
543216,zaqqaz,poi123,stabilo,brownie1,
1qwerty1,dinesh,baggins1,
1234567t,davidkin,friend1,lietuva,octopuss,spooks,
12345qq,myshit,buttface,paradoxx,pop123,golfin,sweet69,rfghbp,sambuca,kayak1,bogus1,girlz,dallas12,millers,
123456zx,operatio,pravda,eternal1,chase123,moroni,proust,blueduck,harris1,redbarch,
996699,
1010101,mouche,millenni,
1123456,score1,
1234565,
1234576,eae21157,dave12,pussyy,gfif1991,
1598741,hoppy,darrian,snoogins,fartface,ichbins,vfkbyrf,rusrap,
2741001,fyfrjylf,aprils,favre,thisis,bannana,serval,wiggum,satsuma,matt123,ivan123,gulmira,
123zxc123,oscar2,acces,annie2,dragon0,emiliano,allthat,pajaro,amandine,rawiswar,sinead,tassie,karma1,piggys,nokias,orions,origami,type40,mondo,ferrets,monker,biteme2,gauntlet,arkham,ascona,ingram01,klem1,quicksil,bingo123,blue66,plazma,onfire,shortie,spjfet,
123963,thered,fire777,lobito,vball,
1chicken,moosehea,elefante,babe23,jesus12,parallax,elfstone,number5,shrooms,freya,hacker1,roxette,snoops,number7,fellini,dtlmvf,chigger,mission1,mitsubis,kannan,whitedog,james01,ghjgecr,rfnfgekmnf,everythi,getnaked,prettybo,sylvan,chiller,carrera4,cowbo,biochem,azbuka,qwertyuiop1,midnight1,informat,audio1,alfred1,
0range,sucker1,scott2,russland,
1eagle,torben,djkrjlfd,rocky6,maddy1,bonobo,portos,chrissi,xjznq5,dexte,vdlxuc,teardrop,pktmxr,iamtheone,danijela,eyphed,suzuki1,etvww4,redtail,ranger11,mowerman,asshole2,coolkid,adriana1,bootcamp,longcut,evets,npyxr5,bighurt,bassman1,stryder,giblet,nastja,blackadd,topflite,wizar,cumnow,technolo,bassboat,bullitt,kugm7b,maksimus,wankers,mine12,sunfish,pimpin1,shearer9,user1,vjzgjxnf,tycobb,
80070633pc,stanly,vitaly,shirley1,cinzia,carolyn1,angeliqu,teamo,qdarcv,aa123321,ragdoll,bonit,ladyluck,wiggly,vitara,jetbalance,
12345600,ozzman,dima12345,mybuddy,shilo,satan66,erebus,warrio,
090808qwe,stupi,bigdan,paul1234,chiapet,brooks1,philly1,dually,gowest,farmer1,
1qa2ws3ed4rf,alberto1,beachboy,barne,aa12345,aliyah,radman,benson1,dfkthbq,highball,bonou2,i81u812,workit,darter,redhook,csfbr5yy,buttlove,episode1,ewyuza,porthos,lalal,abcd12,papero,toosexy,keeper1,silver7,jujitsu,corset,pilot123,simonsay,pinggolf,katerinka,kender,drunk1,fylhjvtlf,rashmi,nighthawk,maggy,juggernaut,larryb,cabibble,fyabcf,
247365,gangstar,jaybee,verycool,
123456789qw,forbidde,prufrock,
12345zxc,malaika,blackbur,docker,filipe,koshechka,gemma1,djamaal,dfcbkmtdf,gangst,
9988aa,ducks1,pthrfkj,puertorico,muppets,griffins,whippet,sauber,timofey,larinso,
123456789zxc,quicken,qsefth,liteon,headcase,bigdadd,zxc321,maniak,jamesc,bassmast,bigdogs,
1girls,
123xxx,trajan,lerochka,noggin,mtndew,
04975756,domin,wer123,fumanchu,lambada,thankgod,june22,kayaking,patchy,summer10,timepass,poiu1234,kondor,kakka,lament,zidane10,
686xqxfg,l8v53x,caveman1,nfvthkfy,holymoly,pepita,alex1996,mifune,fighter1,asslicker,jack22,abc123abc,zaxxon,midnigh,winni,psalm23,punky,monkey22,password13,mymusic,justyna,annushka,lucky5,briann,
495rus19,withlove,almaz,supergir,miata,bingbong,bradpitt,kamasutr,yfgjktjy,vanman,pegleg,amsterdam1,
123a321,letmein9,shivan,korona,bmw520,annette1,scotsman,gandal,welcome12,sc00by,qpwoei,fred69,m1sf1t,hamburg1,
1access,dfkmrbhbz,excalibe,boobies1,fuckhole,karamel,starfuck,star99,breakfas,georgiy,ywvxpz,smasher,fatcat1,allanon,
12345n,coondog,whacko,avalon1,scythe,saab93,timon,khorne,atlast,nemisis,brady12,blenheim,
52678677,mick7278,
9skw5g,fleetwoo,ruger1,kissass,pussy7,scruff,
12345l,bigfun,vpmfsz,yxkck878,evgeny,
55667788,lickher,foothill,alesis,poppies,
77777778,californi,mannie,bartjek,qhxbij,thehulk,xirt2k,angelo4ek,rfkmrekznjh,tinhorse,
1david,sparky12,night1,luojianhua,bobble,nederland,rosemari,travi,minou,ciscokid,beehive,
565hlgqo,alpine1,samsung123,trainman,xpress,logistic,vw198m2n,hanter,zaqwsx123,qwasz,mariachi,paska,kmg365,kaulitz,sasha12,north1,polarbear,mighty1,makeksa11,
123456781,one4all,gladston,notoriou,polniypizdec110211,gosia,grandad,xholes,timofei,invalidp,speaker1,zaharov,maggiema,loislane,gonoles,br5499,discgolf,kaskad,snooper,newman1,belial,demigod,vicky1,pridurok,alex1990,tardis1,cruzer,hornie,sacramen,babycat,burunduk,mark69,oakland1,me1234,gmctruck,extacy,sexdog,putang,poppen,billyd,
1qaz2w,loveable,gimlet,azwebitalia,ragtop,
198500,qweas,mirela,rock123,
11bravo,sprewell,tigrenok,jaredleto,vfhbif,blue2,rimjob,catwalk,sigsauer,loqse,doromich,jack01,lasombra,jonny5,newpassword,profesor,garcia1,
123as123,croucher,demeter,
4_life,rfhfvtkm,superman2,rogues,assword1,russia1,jeff1,mydream,z123456789,rascal1,darre,kimberl,pickle1,ztmfcq,ponchik,lovesporn,hikari,gsgba368,pornoman,chbjun,choppy,diggity,nightwolf,viktori,camar,vfhecmrf,alisa1,minstrel,wishmaster,mulder1,aleks,gogirl,gracelan,
8womys,highwind,solstice,dbrnjhjdyf,nightman,pimmel,beertje,ms6nud,wwfwcw,fx3tuo,poopface,asshat,dirtyd,jiminy,luv2fuck,ptybnxtvgbjy,dragnet,pornogra,
10inch,scarlet1,guido1,raintree,v123456,
1aaaaaaa,maxim1935,hotwater,gadzooks,playaz,harri,brando1,defcon1,ivanna,
123654a,arsenal2,candela,nt5d27,jaime1,duke1,burton1,allstar1,dragos,newpoint,albacore,
1236987z,verygoodbot,
1wildcat,fishy1,ptktysq,chris11,puschel,itdxtyrj,
7kbe9d,serpico,jazzie,
1zzzzz,kindbuds,wenef45313,
1compute,tatung,sardor,gfyfcjybr,test99,toucan,meteora,lysander,asscrack,jowgnx,hevnm4,suckthis,masha123,karinka,marit,oqglh565,dragon00,vvvbbb,cheburashka,vfrfrf,downlow,unforgiven,p3e85tr,kim123,sillyboy,gold1,golfvr6,quicksan,irochka,froglegs,shortsto,caleb1,tishka,bigtitts,smurfy,bosto,dropzone,nocode,jazzbass,digdug,green7,saltlake,therat,dmitriev,lunita,deaddog,summer0,
1212qq,bobbyg,mty3rh,isaac1,gusher,helloman,sugarbear,corvair,extrem,teatime,tujazopi,titanik,efyreg,jo9k2jw2,counchac,tivoli,utjvtnhbz,bebit,jacob6,clayton1,incubus1,flash123,squirter,dima2010,cock1,rawks,komatsu,forty2,
98741236,cajun1,madelein,mudhoney,magomed,q111111,qaswed,consense,
12345b,bakayaro,silencer,zoinks,bigdic,werwolf,pinkpuss,
96321478,alfie1,ali123,sarit,minette,musics,chato,iaapptfcor,cobaka,strumpf,datnigga,sonic123,yfnecbr,vjzctvmz,pasta1,tribbles,crasher,htlbcrf,
1tiger,shock123,bearshar,syphon,a654321,cubbies1,jlhanes,eyespy,fucktheworld,carrie1,bmw325is,suzuk,mander,dorina,mithril,hondo1,vfhnbyb,sachem,newton1,
12345x,
7777755102q,
230857z,xxxsex,scubapro,hayastan,spankit,delasoul,searock6,fallout3,nilrem,
24681357,pashka,voluntee,pharoh,willo,india1,badboy69,roflmao,gunslinger,lovergir,mama12,melange,
640xwfkv,chaton,darkknig,bigman1,aabbccdd,harleyd,birdhouse,giggsy,hiawatha,tiberium,joker7,hello1234,sloopy,tm371855,greendog,solar1,bignose,djohn11,espanol,oswego,iridium,kavitha,pavell,mirjam,cyjdsvujljv,alpha5,deluge,hamme,luntik,turismo,stasya,kjkbnf,caeser,schnecke,tweety1,tralfaz,lambrett,prodigy1,trstno1,pimpshit,werty1,karman,bigboob,pastel,blackmen,matthew8,moomin,q1w2e,gilly,primaver,jimmyg,house2,elviss,
15975321,
1jessica,monaliza,salt55,vfylfhbyrf,harley11,tickleme,murder1,nurgle,kickass1,theresa1,fordtruck,pargolf,managua,inkognito,sherry1,gotit,friedric,metro2033,slk230,freeport,cigarett,
492529,vfhctkm,thebeach,twocats,bakugan,yzerman1,charlieb,motoko,skiman,
1234567w,pussy3,love77,asenna,buffie,
260zntpc,kinkos,access20,mallard1,fuckyou69,monami,rrrrr1,bigdog69,mikola,
1boomer,godzila,ginger2,dima2000,skorpion39,dima1234,hawkdog79,warrior2,ltleirf,supra1,jerusale,monkey01,
333z333,
666888,kelsey1,w8gkz2x1,fdfnfh,msnxbi,qwe123rty,mach1,monkey3,
123456789qq,c123456,nezabudka,barclays,nisse,dasha1,
12345678987654321,dima1993,oldspice,frank2,rabbitt,prettyboy,ov3ajy,iamthema,kawasak,banjo1,gtivr6,collants,gondor,hibees,cowboys2,codfish,buster2,purzel,rubyred,kayaker,bikerboy,qguvyt,masher,sseexx,kenshiro,moonglow,semenova,rosari,eduard1,deltaforce,grouper,bongo1,tempgod,
1taylor,goldsink,qazxsw1,
1jesus,m69fg2w,maximili,marysia,husker1,kokanee,sideout,googl,south1,plumber1,trillian,
00001,
1357900,farkle,
1xxxxx,pascha,emanuela,bagheera,hound1,mylov,newjersey,swampfox,sakic19,torey,geforce,wu4etd,conrail,pigman,martin2,ber02,nascar2,angel69,barty,kitsune,cornet,yes90125,goomba,daking,anthea,sivart,weather1,ndaswf,scoubidou,masterchief,rectum,
3364068,oranges1,copter,
1samanth,eddies,mimoza,ahfywbz,celtic88,
86mets,applemac,amanda11,taliesin,
1angel,imhere,london11,bandit12,killer666,beer1,
06225930,psylocke,james69,schumach,
24pnz6kc,endymion,wookie1,poiu123,birdland,smoochie,lastone,rclaki,olive1,pirat,thunder7,chris69,rocko,
151617,djg4bb4b,lapper,ajcuivd289,colole57,shadow7,dallas21,ajtdmw,executiv,dickies,omegaman,jason12,newhaven,aaaaaas,pmdmscts,s456123789,beatri,applesauce,levelone,strapon,benladen,creaven,ttttt1,saab95,f123456,pitbul,
54321a,sex12345,robert3,atilla,mevefalkcakk,
1johnny,veedub,lilleke,nitsuj,
5t6y7u8i,teddys,bluefox,nascar20,vwjetta,buffy123,playstation3,loverr,qweasd12,lover2,telekom,benjamin1,alemania,neutrino,rockz,valjean,testicle,trinity3,realty,firestarter,
794613852,ardvark,guadalup,philmont,arnold1,holas,zw6syj,birthday299,dover1,sexxy1,gojets,
741236985,cance,blue77,xzibit,qwerty88,komarova,qweszxc,footer,rainger,silverst,ghjcnb,catmando,tatooine,
31217221027711,amalgam,
69dude,qwerty321,roscoe1,
74185,cubby,alfa147,perry1,darock,katmandu,darknight,knicks1,freestuff,
45454,kidman,
4tlved,axlrose,cutie1,quantum1,joseph10,ichigo,pentium3,rfhectkm,rowdy1,woodsink,justforfun,sveta123,pornografia,mrbean,bigpig,tujheirf,delta9,portsmou,hotbod,kartal,
10111213,fkbyf001,pavel1,pistons1,necromancer,verga,c7lrwu,doober,thegame1,hatesyou,sexisfun,
1melissa,tuczno18,bowhunte,gobama,scorch,campeon,bruce2,fudge1,herpderp,bacon1,redsky,blackeye,
19966991,
19992000,ripken8,masturba,
34524815,primax,paulina1,vp6y38,
427cobra,
4dwvjj,dracon,fkg7h4f3v6,longview,arakis,panama1,honda2,lkjhgfdsaz,razors,steels,fqkw5m,dionysus,mariajos,soroka,enriqu,nissa,barolo,king1234,hshfd4n279,holland1,flyer1,tbones,
343104ky,modems,tk421,ybrbnrf,pikapp,sureshot,wooddoor,florida2,mrbungle,vecmrf,catsdogs,axolotl,nowayout,francoi,chris21,toenail,hartland,asdjkl,nikkii,onlyyou,buckskin,fnord,flutie,holen1,rincewind,lefty1,ducky1,
199000,fvthbrf,redskin1,ryno23,lostlove,
19mtpgam19,abercrom,benhur,jordan11,roflcopter,ranma,phillesh,avondale,igromania,p4ssword,jenny123,tttttt1,spycams,cardigan,
2112yyz,sleepy1,paris123,mopars,lakers34,hustler1,james99,matrix3,popimp,
12pack,eggbert,medvedev,testit,performa,logitec,marija,sexybeast,supermanboy,iwantit,rjktcj,jeffer,svarog,halo123,whdbtp,nokia3230,heyjoe,marilyn1,speeder,ibxnsm,prostock,bennyboy,charmin,codydog,parol999,ford9402,jimmer,crayola,
159357258,alex77,joey1,cayuga,phish420,poligon,specops,tarasova,caramelo,draconis,dimon,cyzkhw,june29,getbent,
1guitar,jimjam,dictiona,shammy,flotsam,
0okm9ijn,crapper,technic,fwsadn,rhfdxtyrj,zaq11qaz,anfield1,
159753q,curious1,hip-hop,
1iiiii,gfhjkm2,cocteau,liveevil,friskie,crackhead,b1afra,elektrik,lancer1,b0ll0cks,jasond,z1234567,tempest1,alakazam,asdfasd,duffy1,oneday,dinkle,qazedctgb,kasimir,happy7,salama,hondaciv,nadezda,andretti,cannondale,sparticu,znbvjd,blueice,money01,finster,eldar,moosie,pappa,delta123,neruda,bmw330ci,jeanpaul,malibu1,alevtina,sobeit,travolta,fullmetal,enamorad,mausi,boston12,greggy,smurf1,ratrace,ichiban,ilovepus,davidg,wolf69,villa1,cocopuff,football12,starfury,zxc12345,forfree,fairfiel,dreams1,tayson,mike2,dogday,hej123,oldtimer,sanpedro,clicker,mollycat,roadstar,golfe,lvbnhbq1,topdevice,a1b2c,sevastopol,calli,milosc,fire911,pink123,team3x,nolimit5,snickers1,annies,
09877890,jewel1,steve69,justin11,autechre,killerbe,browncow,slava1,christer,fantomen,redcloud,elenberg,beautiful1,passw0rd1,nazira,advantag,cockring,chaka,rjpzdrf,
99941,az123456,biohazar,energie,bubble1,bmw323,tellme,printer1,glavine,
1starwar,coolbeans,april17,carly1,quagmire,admin2,djkujuhfl,pontoon,texmex,carlos12,thermo,vaz2106,nougat,bob666,
1hockey,
1john,cricke,qwerty10,twinz,totalwar,underwoo,tijger,lildevil,
123q321,germania,freddd,
1scott,beefy,
5t4r3e2w1q,fishbait,nobby,hogger,dnstuff,jimmyc,redknapp,flame1,tinfloor,balla,nfnfhby,yukon1,vixens,batata,danny123,
1zxcvbnm,gaetan,homewood,greats,tester1,green99,
1fucker,sc0tland,starss,glori,arnhem,goatman,
1234asd,supertra,bill123,elguapo,sexylegs,jackryan,usmc69,innow,roaddog,alukard,winter11,crawler,gogiants,rvd420,alessandr,homegrow,gobbler,esteba,valeriy,happy12,
1joshua,hawking,sicnarf,waynes,iamhappy,bayadera,august2,sashas,gotti,dragonfire,pencil1,halogen,borisov,bassingw,
15975346,zachar,sweetp,soccer99,sky123,flipyou,spots3,xakepy,cyclops1,dragon77,rattolo58,motorhea,piligrim,helloween,dmb2010,supermen,shad0w,eatcum,sandokan,pinga,ufkfrnbrf,roksana,amista,pusser,sony1234,azerty1,
1qasw2,ghbdt,q1w2e3r4t5y6u7i8,ktutylf,brehznev,zaebali,shitass,creosote,gjrtvjy,
14938685,naughtyboy,pedro123,
21crack,maurice1,joesakic,nicolas1,matthew9,lbyfhf,elocin,hfcgbplzq,pepper123,tiktak,mycroft,ryan11,firefly1,arriva,cyecvevhbr,loreal,peedee,jessica8,lisa01,anamari,pionex,ipanema,airbag,frfltvbz,
123456789aa,epwr49,casper12,sweethear,sanandreas,wuschel,cocodog,france1,
119911,redroses,erevan,xtvgbjy,bigfella,geneve,volvo850,evermore,amy123,moxie,celebs,geeman,underwor,haslo1,joy123,hallow,chelsea0,
12435687,abarth,
12332145,tazman1,roshan,yummie,genius1,chrisd,ilovelife,seventy7,qaz1wsx2,rocket88,gaurav,bobbyboy,tauchen,roberts1,locksmit,masterof,www111,d9ungl,volvos40,asdasd1,golfers,jillian1,
7xm5rq,arwpls4u,gbhcf2,elloco,football2,muerte,bob101,sabbath1,strider1,killer66,notyou,lawnboy,de7mdf,johnnyb,voodoo2,sashaa,homedepo,bravos,nihao123,braindea,weedhead,rajeev,artem1,camille1,rockss,bobbyb,aniston,frnhbcf,oakridge,biscayne,cxfcnm,dressage,jesus3,kellyann,king69,juillet,holliste,h00ters,ripoff,
123645,
1999ar,eric12,
123777,tommi,dick12,bilder,chris99,rulezz,getpaid,chicubs,ender1,byajhvfnbrf,milkshak,sk8board,freakshow,antonella,monolit,shelb,hannah01,masters1,pitbull1,
1matthew,luvpussy,agbdlcid,panther2,alphas,euskadi,
8318131,ronnie1,
7558795,sweetgirl,cookie59,sequoia,
5552555,ktyxbr,
4500455,money7,severus,shinobu,dbityrf,phisig,rogue2,fractal,redfred,sebastian1,nelli,b00mer,cyberman,zqjphsyf6ctifgu,oldsmobile,redeemer,pimpi,lovehurts,
1slayer,black13,rtynfdh,airmax,g00gle,
1panther,artemon,nopasswo,fuck1234,luke1,trinit,
666000,ziadma,oscardog,davex,hazel1,isgood,demond,james5,construc,
555551,january2,m1911a1,flameboy,merda,nathan12,nicklaus,dukester,hello99,scorpio7,leviathan,dfcbktr,pourquoi,vfrcbv123,shlomo,rfcgth,rocky3,ignatz,ajhneyf,roger123,squeek,
4815162342a,biskit,mossimo,soccer21,gridlock,lunker,popstar,ghhh47hj764,chutney,nitehawk,vortec,gamma1,codeman,dragula,kappasig,rainbow2,milehigh,blueballs,ou8124me,rulesyou,collingw,mystere,aster,astrovan,firetruck,fische,crawfish,hornydog,morebeer,tigerpaw,radost,
144000,
1chance,
1234567890qwe,gracie1,myopia,oxnard,seminoles,evgeni,edvard,partytim,domani,tuffy1,jaimatadi,blackmag,kzueirf,peternor,mathew1,maggie12,henrys,k1234567,fasted,pozitiv,cfdtkbq,jessica7,goleafs,bandito,girl78,sharingan,skyhigh,bigrob,zorros,poopers,oldschoo,pentium2,gripper,norcal,kimba,artiller,moneymak,
00197400,
272829,shadow1212,thebull,handbags,all4u2c,bigman2,civics,godisgoo,section8,bandaid,suzanne1,zorba,
159123,racecars,i62gbq,rambo123,ironroad,johnson2,knobby,twinboys,sausage1,kelly69,enter2,rhjirf,yessss,james12,anguilla,boutit,iggypop,vovochka,
06060,budwiser,romuald,meditate,good1,sandrin,herkules,lakers8,honeybea,
11111111a,miche,rangers9,lobster1,seiko,belova,midcon,mackdadd,bigdaddy1,daddie,sepultur,freddy12,damon1,stormy1,hockey2,bailey12,hedimaptfcor,dcowboys,sadiedog,thuggin,horny123,josie1,nikki2,beaver69,peewee1,mateus,viktorija,barrys,cubswin1,matt1234,timoxa,rileydog,sicilia,luckycat,candybar,julian1,abc456,pussylip,phase1,acadia,catty,
246800,evertonf,bojangle,qzwxec,nikolaj,fabrizi,kagome,noncapa0,marle,popol,hahaha1,cossie,carla10,diggers,spankey,sangeeta,cucciolo,breezer,starwar1,cornholio,rastafari,spring99,yyyyyyy1,webstar,
72d5tn,sasha1234,inhouse,gobuffs,civic1,redstone,
234523,minnie1,rivaldo,angel5,sti2000,xenocide,
11qq11,
1phoenix,herman1,holly123,tallguy,sharks1,madri,superbad,ronin,jalal123,hardbody,
1234567r,assman1,vivahate,buddylee,
38972091,bonds25,
40028922,qrhmis,wp2005,ceejay,pepper01,
51842543,redrum1,renton,varadero,tvxtjk7r,vetteman,djhvbrc,curly1,fruitcak,jessicas,maduro,popmart,acuari,dirkpitt,buick1,bergerac,golfcart,pdtpljxrf,hooch1,dudelove,d9ebk7,
123452000,afdjhbn,greener,
123455432,parachut,mookie12,
123456780,jeepcj5,potatoe,sanya,qwerty2010,waqw3p,gotika,freaky1,chihuahu,buccanee,ecstacy,crazyboy,slickric,blue88,fktdnbyf,
2004rj,delta4,
333222111,calient,ptbdhw,
1bailey,blitz1,sheila1,master23,hoagie,pyf8ah,orbita,daveyboy,prono1,delta2,heman,
1horny,tyrik123,ostrov,md2020,herve,rockfish,el546218,rfhbyjxrf,chessmaster,redmoon,lenny1,
215487,tomat,guppy,amekpass,amoeba,my3girls,nottingh,kavita,natalia1,puccini,fabiana,
8letters,romeos,netgear,casper2,taters,gowings,iforgot1,pokesmot,pollit,lawrun,petey1,rosebuds,
007jr,gthtcnhjqrf,k9dls02a,neener,azertyu,duke11,manyak,tiger01,petros,supermar,mangas,twisty,spotter,takagi,dlanod,qcmfd454,tusymo,zz123456,chach,navyblue,gilbert1,
2kash6zq,avemaria,
1hxboqg2s,viviane,lhbjkjubz2957704,nowwowtg,
1a2b3c4,m0rn3,kqigb7,superpuper,juehtw,gethigh,theclown,makeme,pradeep,sergik,deion21,nurik,devo2706,nbvibt,roman222,kalima,nevaeh,martin7,anathema,florian1,tamwsn3sja,dinmamma,
133159,
123654q,slicks,pnp0c08,yojimbo,skipp,kiran,pussyfuck,teengirl,apples12,myballs,angeli,
1234a,
125678,opelastra,blind1,armagedd,fish123,pitufo,chelseaf,thedevil,nugget1,cunt69,beetle1,carter15,apolon,collant,password00,fishboy,djkrjdf,deftone,celti,three11,cyrus1,lefthand,skoal1,ferndale,aries1,fred01,roberta1,chucks,cornbread,lloyd1,icecrea,cisco123,newjerse,vfhrbpf,passio,volcom1,rikimaru,yeah11,djembe,facile,a1l2e3x4,batman7,nurbol,lorenzo1,monica69,blowjob1,
998899,spank1,
233391,n123456,
1bear,bellsout,
999998,celtic67,sabre1,putas,y9enkj,alfabeta,heatwave,honey123,hard4u,insane1,xthysq,magnum1,lightsaber,
123qweqwe,fisher1,pixie1,precios,benfic,thegirls,bootsman,
4321rewq,nabokov,hightime,djghjc,
1chelsea,junglist,august16,t3fkvkmj,
1232123,lsdlsd12,chuckie1,pescado,granit,toogood,cathouse,natedawg,bmw530,
123kid,hajime,
198400,engine1,wessonnn,kingdom1,novembre,
1rocks,kingfisher,qwerty89,jordan22,zasranec,megat,sucess,installutil,fetish01,yanshi1982,
1313666,
1314520,clemence,wargod,time1,newzealand,snaker,
13324124,cfrehf,hepcat,mazahaka,bigjay,denisov,eastwest,
1yellow,mistydog,cheetos,
1596357,ginger11,mavrik,bubby1,bhbyf,pyramide,giusepp,luthien,honda250,andrewjackie,kentavr,lampoon,zaq123wsx,sonicx,davidh,
1ccccc,gorodok,windsong,programm,blunt420,vlad1995,zxcvfdsa,tarasov,mrskin,sachas,mercedes1,koteczek,rawdog,honeybear,stuart1,kaktys,richard7,
55555n,azalia,hockey10,scouter,francy,
1xxxxxx,julie456,tequilla,penis123,schmoe,tigerwoods,
1ferrari,popov,snowdrop,matthieu,smolensk,cornflak,jordan01,love2000,
23wesdxc,kswiss,anna2000,geniusnet,baby2000,
33ds5x,waverly,onlyone4,networkingpe,raven123,blesse,gocards,wow123,pjflkork,juicey,poorboy,freeee,billybo,shaheen,zxcvbnm.,berlit,truth1,gepard,ludovic,gunther1,bobby2,bob12345,sunmoon,septembr,bigmac1,bcnjhbz,seaking,all4u,
12qw34er56ty,bassie,nokia5228,
7355608,sylwia,charvel,billgate,davion,chablis,catsmeow,kjiflrf,amylynn,rfvbkkf,mizredhe,handjob,jasper12,erbol,solara,bagpipe,biffer,notime,erlan,
8543852,sugaree,oshkosh,fedora,bangbus,
5lyedn,longball,teresa1,bootyman,aleksand,qazwsxedc12,nujbhc,tifosi,zpxvwy,lights1,slowpoke,tiger12,kstate,password10,alex69,collins1,
9632147,doglover,baseball2,security1,grunts,orange2,godloves,
213qwe879,julieb,
1qazxsw23edcvfr4,noidea,
8uiazp,betsy1,junior2,parol123,
123456zz,piehonkii,kanker,bunky,hingis,reese1,qaz123456,sidewinder,tonedup,footsie,blackpoo,jalapeno,mummy1,always1,josh1,rockyboy,plucky,chicag,nadroj,blarney,blood123,wheaties,packer1,ravens1,mrjones,gfhjkm007,anna2010,awatar,guitar12,hashish,scale1,tomwaits,amrita,fantasma,rfpfym,pass2,tigris,bigair,slicker,sylvi,shilpa,cindylou,archie1,bitches1,poppys,ontime,horney1,camaroz28,alladin,bujhm,cq2kph,alina1,wvj5np,
1211123a,tetons,scorelan,concordi,morgan2,awacs,shanty,tomcat14,andrew123,bear69,vitae,fred99,chingy,octane,belgario,fatdaddy,rhodan,password23,sexxes,boomtown,joshua01,war3demo,my2kids,buck1,hot4you,monamour,
12345aa,yumiko,parool,carlton1,neverland,rose12,right1,sociald,grouse,brandon0,cat222,alex00,civicex,bintang,malkav,arschloc,dodgeviper,qwerty666,goduke,dante123,boss1,ontheroc,corpsman,love14,uiegu451,hardtail,irondoor,ghjrehfnehf,
36460341,konijn,h2slca,kondom25,
123456ss,cfytxrf,btnjey,nando,freemail,comander,natas666,siouxsie,hummer1,biomed,dimsum,yankees0,diablo666,lesbian1,pot420,jasonm,glock23,jennyb,itsmine,lena2010,whattheh,beandip,abaddon,kishore,signup,apogee,biteme12,suzieq,vgfun4,iseeyou,rifleman,qwerta,
4pussy,hawkman,guest1,june17,dicksuck,bootay,cash12,bassale,ktybyuhfl,leetch,nescafe,
7ovtgimc,clapton1,auror,boonie,tracker1,john69,bellas,cabinboy,yonkers,silky1,ladyffesta,drache,kamil1,davidp,bad123,snoopy12,sanche,werthvfy,achille,nefertiti,gerald1,slage33,warszawa,macsan26,mason123,kotopes,welcome8,nascar99,kiril,
77778888,hairy1,monito,comicsans,
81726354,killabee,arclight,yuo67,feelme,
86753099,nnssnn,monday12,
88351132,
88889999,websters,subito,asdf12345,vaz2108,zvbxrpl,
159753456852,rezeda,multimed,noaccess,henrique,tascam,captiva,zadrot,hateyou,sophie12,
123123456,snoop1,charlie8,birmingh,hardline,libert,azsxdcf,
89172735872,rjpthju,bondar,philips1,olegnaruto,myword,yakman,stardog,banana12,
1234567890w,farout,annick,duke01,rfj422,billard,glock19,shaolin1,master10,cinderel,deltaone,manning1,biggreen,sidney1,patty1,goforit1,
766rglqy,sevendus,aristotl,armagedo,blumen,gfhfyjz,kazakov,lekbyxxx,accord1,idiota,soccer16,texas123,victoire,ololo,chris01,bobbbb,
299792458,eeeeeee1,confiden,
07070,clarks,techno1,kayley,stang1,wwwwww1,uuuuu1,neverdie,jasonr,cavscout,
481516234,mylove1,shaitan,
1qazxcvb,barbaros,
123456782000,
123wer,thissucks,
7seven,
227722,faerie,hayduke,dbacks,snorkel,zmxncbv,tiger99,unknown1,melmac,polo1234,sssssss1,
1fire,
369147,bandung,bluejean,nivram,stanle,ctcnhf,soccer20,blingbli,dirtball,alex2112,
183461,skylin,boobman,geronto,brittany1,yyz2112,gizmo69,ktrcec,dakota12,chiken,sexy11,vg08k714,bernadet,
1bulldog,beachs,hollyb,maryjoy,margo1,danielle1,chakra,alexand,hullcity,matrix12,sarenna,pablos,antler,supercar,chomsky,german1,airjordan,
545ettvy,camaron,flight1,netvideo,tootall,valheru,
481516,
1234as,skimmer,redcross,inuyash,uthvfy,
1012nw,edoardo,bjhgfi,golf11,
9379992a,lagarto,socball,boopie,krazy,.adgjmptw,gaydar,kovalev,geddylee,firstone,turbodog,loveee,
135711,badbo,trapdoor,opopop11,danny2,max2000,
526452,kerry1,leapfrog,daisy2,
134kzbip,
1andrea,playa1,peekab00,heskey,pirrello,gsewfmck,dimon4ik,puppie,chelios,
554433,hypnodanny,fantik,yhwnqc,ghbdtngjrf,anchorag,buffett1,fanta,sappho,
024680,vialli,chiva,lucylu,hashem,exbntkm,thema,
23jordan,jake11,wildside,smartie,emerica,
2wj2k9oj,ventrue,timoth,lamers,baerchen,suspende,boobis,denman85,
1adam12,otello,king12,dzakuni,qsawbbs,isgay,porno123,jam123,daytona1,tazzie,bunny123,amaterasu,jeffre,crocus,mastercard,bitchedup,chicago7,aynrand,intel1,tamila,alianza,mulch,merlin12,rose123,alcapone,mircea,loveher,joseph12,chelsea6,dorothy1,wolfgar,unlimite,arturik,qwerty3,paddy1,piramid,linda123,cooool,millie1,warlock1,forgotit,tort02,ilikeyou,avensis,loveislife,dumbass1,clint1,
2110se,drlove,olesia,kalinina,sergey123,
123423,alicia1,markova,tri5a3,media1,willia1,xxxxxxx1,beercan,smk7366,jesusislord,motherfuck,smacker,birthday5,jbaby,harley2,hyper1,a9387670a,honey2,corvet,gjmptw,rjhjkmbien,apollon,madhuri,
3a5irt,cessna17,saluki,digweed,tamia1,yja3vo,cfvlehfr,
1111111q,martyna,stimpy1,anjana,yankeemp,jupiler,idkfa,
1blue,fromv,afric,
3xbobobo,liverp00l,nikon1,amadeus1,acer123,napoleo,david7,vbhjckfdf,mojo69,percy1,pirates1,grunt1,alenushka,finbar,zsxdcf,mandy123,
1fred,timewarp,
747bbb,druids,julia123,
123321qq,spacebar,dreads,fcbarcelona,angela12,anima,christopher1,stargazer,
123123s,hockey11,brewski,marlbor,blinker,motorhead,damngood,werthrf,letmein3,moremoney,killer99,anneke,eatit,pilatus,andrew01,fiona1,maitai,blucher,zxgdqn,e5pftu,nagual,panic1,andron,openwide,alphabeta,alison1,chelsea8,fende,mmm666,
1shot2,a19l1980,
123456@,
1black,m1chael,vagner,realgood,maxxx,vekmnbr,stifler,
2509mmh,tarkan,sherzod,
1234567b,gunners1,artem2010,shooby,sammie1,p123456,piggie,abcde12345,nokia6230,moldir,piter,
1qaz3edc,frequenc,acuransx,
1star,nikeair,alex21,dapimp,ranjan,ilovegirls,anastasiy,berbatov,manso,
21436587,leafs1,
106666,angelochek,ingodwetrust,
123456aaa,deano,korsar,pipetka,thunder9,minka,himura,installdevic,
1qqqqq,digitalprodu,suckmeoff,plonker,headers,vlasov,ktr1996,windsor1,mishanya,garfield1,korvin,littlebit,azaz09,vandamme,scripto,s4114d,passward,britt1,r1chard,ferrari5,running1,
7xswzaq,falcon2,pepper76,trademan,ea53g5,graham1,volvos80,reanimator,micasa,
1234554321q,kairat,escorpion,sanek94,karolina1,kolovrat,karen2,
1qaz@wsx,racing1,splooge,sarah2,deadman1,creed1,nooner,minicoop,oceane,room112,charme,
12345ab,summer00,wetcunt,drewman,nastyman,redfire,appels,merlin69,dolfin,bornfree,diskette,ohwell,
12345678qwe,jasont,madcap,cobra2,dolemit1,whatthehell,juanit,voldemar,rocke,bianc,elendil,vtufgjkbc,hotwheels,spanis,sukram,pokerface,k1ller,freakout,dontae,realmadri,drumss,gorams,
258789,snakey,jasonn,whitewolf,befree,johnny99,pooka,theghost,kennys,vfvektxrf,toby1,jumpman23,deadlock,barbwire,stellina,alexa1,dalamar,mustanggt,northwes,tesoro,chameleo,sigtau,satoshi,george11,hotcum,cornell1,golfer12,geek01d,trololo,kellym,megapolis,pepsi2,hea666,monkfish,blue52,sarajane,bowler1,skeets,ddgirls,hfccbz,bailey01,isabella1,dreday,moose123,baobab,crushme,
000009,veryhot,roadie,meanone,mike18,henriett,dohcvtec,moulin,gulnur,adastra,angel9,western1,natura,sweetpe,dtnfkm,marsbar,daisys,frogger1,virus1,redwood1,streetball,fridolin,d78unhxq,midas,michelob,cantik,sk2000,kikker,macanudo,rambone,fizzle,
20000,peanuts1,cowpie,stone32,astaroth,dakota01,redso,mustard1,sexylove,giantess,teaparty,bobbin,beerbong,monet1,charles3,anniedog,anna1988,cameleon,longbeach,tamere,qpful542,mesquite,waldemar,
12345zx,iamhere,lowboy,canard,granp,daisymay,love33,moosejaw,nivek,ninjaman,shrike01,aaa777,
88002000600,vodolei,bambush,falcor,harley69,alphaomega,severine,grappler,bosox,twogirls,gatorman,vettes,buttmunch,chyna,excelsio,crayfish,birillo,megumi,lsia9dnb9y,littlebo,stevek,hiroyuki,firehous,master5,briley2,gangste,chrisk,camaleon,bulle,troyboy,froinlaven,mybutt,sandhya,rapala,jagged,crazycat,lucky12,jetman,wavmanuk,
1heather,beegee,negril,mario123,funtime1,conehead,abigai,mhorgan,patagoni,travel1,backspace,frenchfr,mudcat,dashenka,baseball3,rustys,
741852kk,dickme,baller23,griffey1,suckmycock,fuhrfzgc,jenny2,spuds,berlin1,justfun,icewind,bumerang,pavlusha,minecraft123,shasta1,ranger12,
123400,twisters,buthead,miked,finance1,dignity7,hello9,lvjdp383,jgthfnjh,dalmatio,paparoach,miller31,
2bornot2b,fathe,monterre,theblues,satans,schaap,jasmine2,sibelius,manon,heslo,jcnhjd,shane123,natasha2,pierrot,bluecar,iloveass,harriso,red12,london20,job314,beholder,reddawg,fuckyou!,pussylick,bologna1,austintx,ole4ka,blotto,onering,jearly,balbes,lightbul,bighorn,crossfir,lee123,prapor,
1ashley,gfhjkm22,wwe123,
09090,sexsite,marina123,jagua,witch1,schmoo,parkview,dragon3,chilango,ultimo,abramova,nautique,
2bornot2,duende,
1arthur,nightwing,surfboar,quant4307,
15s9pu03,karina1,shitball,walleye1,wildman1,whytesha,
1morgan,my2girls,polic,baranova,berezuckiy,kkkkkk1,forzima,fornow,qwerty02,gokart,suckit69,davidlee,whatnow,edgard,tits1,bayshore,
36987412,ghbphfr,daddyy,explore1,zoidberg,
5qnzjx,morgane,danilov,blacksex,mickey12,balsam,
83y6pv,sarahc,slaye,all4u2,slayer69,nadia1,rlzwp503,
4cranker,kaylie,numberon,teremok,wolf12,deeppurple,goodbeer,aaa555,
66669999,whatif,harmony1,ue8fpw,
3tmnej,
254xtpss,dusty197,wcksdypk,zerkalo,dfnheirf,motorol,digita,whoareyou,darksoul,manics,rounders,killer11,d2000lb,cegthgfhjkm,catdog1,beograd,pepsico,julius1,
123654987,softbal,killer23,weasel1,lifeson,q123456q,
444555666,bunches,andy1,darby1,service01,bear11,jordan123,amega,duncan21,yensid,lerxst,rassvet,bronco2,fortis,pornlove,paiste,
198900,asdflkjh,
1236547890,futur,eugene1,winnipeg261,fk8bhydb,seanjohn,brimston,matthe1,bitchedu,crisco,
302731,roxydog,woodlawn,volgograd,ace1210,boy4u2ownnyc,laura123,pronger,parker12,z123456z,andrew13,longlife,sarang,drogba,gobruins,soccer4,holida,espace,almira,murmansk,green22,safina,wm00022,
1chevy,schlumpf,doroth,ulises,golf99,hellyes,detlef,mydog,erkina,bastardo,mashenka,sucram,wehttam,generic1,
195000,spaceboy,lopas123,scammer,skynyrd,daddy2,titani,ficker,cr250r,kbnthfnehf,takedown,sticky1,davidruiz,desant,nremtp,painter1,bogies,agamemno,kansas1,smallfry,archi,
2b4dnvsx,
1player,saddie,peapod,
6458zn7a,qvw6n2,gfxqx686,twice2,sh4d0w3d,mayfly,
375125,phitau,yqmbevgk,
89211375759,kumar1,pfhfpf,toyboy,way2go,
7pvn4t,pass69,chipster,spoony,buddycat,diamond3,rincewin,hobie,david01,billbo,hxp4life,matild,pokemon2,dimochka,clown1,
148888,jenmt3,cuxldv,cqnwhy,cde34rfv,simone1,verynice,toobig,pasha123,mike00,maria2,lolpop,firewire,dragon9,martesana,a1234567890,birthday3,providen,kiska,pitbulls,
556655,misawa,damned69,martin11,goldorak,gunship,glory1,winxclub,sixgun,splodge,agent1,splitter,dome69,ifghjb,eliza1,snaiper,wutang36,phoenix7,
666425,arshavin,paulaner,namron,m69fg1w,qwert1234,terrys,zesyrmvu,joeman,scoots,dwml9f,
625vrobg,sally123,gostoso,symow8,pelota,c43qpul5rz,majinbuu,lithium1,bigstuff,horndog1,kipelov,kringle,
1beavis,loshara,octobe,jmzacf,
12342000,qw12qw,runescape1,chargers1,krokus,piknik,jessy,
778811,gjvbljh,
474jdvff,pleaser,misskitty,breaker1,
7f4df451,dayan,twinky,yakumo,chippers,matia,tanith,len2ski1,manni,nichol1,f00b4r,nokia3110,standart,
123456789i,shami,steffie,larrywn,chucker,john99,chamois,jjjkkk,penmouse,ktnj2010,gooners,hemmelig,rodney1,merlin01,bearcat1,
1yyyyy,
159753z,
1fffff,
1ddddd,thomas11,gjkbyrf,ivanka,f1f2f3,petrovna,phunky,conair,brian2,creative1,klipsch,vbitymrf,freek,breitlin,cecili,westwing,gohabsgo,tippmann,
1steve,quattro6,fatbob,sp00ky,rastas,
1123581,redsea,rfnmrf,jerky1,
1aaaaaa,spk666,simba123,qwert54321,
123abcd,beavis69,fyfyfc,starr1,
1236547,peanutbutter,sintra,
12345abcde,
1357246,abcde1,climbon,
755dfx,mermaids,monte1,serkan,geilesau,
777win,jasonc,parkside,imagine1,rockhead,producti,playhard,principa,spammer,gagher,escada,tsv1860,dbyjuhfl,cruiser1,kennyg,montgome,
2481632,pompano,cum123,angel6,sooty,bear01,april6,bodyhamm,pugsly,getrich,mikes,pelusa,fosgate,jasonp,rostislav,kimberly1,
128mo,dallas11,gooner1,manuel1,cocacola1,imesh,
5782790,password8,daboys,
1jones,intheend,e3w2q1,whisper1,madone,pjcgujrat,
1p2o3i,jamesp,felicida,nemrac,phikap,firecat,jrcfyjxrf,matt12,bigfan,doedel,
005500,jasonx,
1234567k,badfish,goosey,utjuhfabz,wilco,artem123,igor123,spike123,jor23dan,dga9la,v2jmsz,morgan12,avery1,dogstyle,natasa,
221195ws,twopac,oktober7,karthik,poop1,mightymo,davidr,zermatt,jehova,aezakmi1,dimwit,monkey5,serega123,qwerty111,blabl,casey22,boy123,
1clutch,asdfjkl1,hariom,bruce10,jeep95,
1smith,sm9934,karishma,bazzzz,aristo,
669e53e1,nesterov,kill666,fihdfv,
1abc2,anna1,silver11,mojoman,telefono,goeagles,sd3lpgdr,rfhfynby,melinda1,llcoolj,idteul,bigchief,rocky13,timberwo,ballers,gatekeep,kashif,hardass,anastasija,max777,vfuyjkbz,riesling,agent99,kappas,dalglish,tincan,orange3,turtoise,abkbvjy,mike24,hugedick,alabala,geolog,aziza,devilboy,habanero,waheguru,funboy,freedom5,natwest,seashore,impaler,qwaszx1,pastas,bmw535,tecktonik,mika00,jobsearc,pinche,puntang,aw96b6,
1corvett,skorpio,foundati,zzr1100,gembird,vfnhjcrby,soccer18,vaz2110,peterp,archer1,cross1,samedi,dima1992,hunter99,lipper,hotbody,zhjckfdf,ducati1,trailer1,
04325956,cheryl1,benetton,kononenko,sloneczko,rfgtkmrf,nashua,balalaika,ampere,eliston,dorsai,digge,flyrod,oxymoron,minolta,ironmike,majortom,karimov,fortun,putaria,an83546921an13,blade123,franchis,mxaigtg5,dynxyu,devlt4,brasi,terces,wqmfuh,nqdgxz,dale88,minchia,seeyou,housepen,
1apple,
1buddy,mariusz,bighouse,tango2,flimflam,nicola1,qwertyasd,tomek1,shumaher,kartoshka,bassss,canaries,redman1,
123456789as,preciosa,allblacks,navidad,tommaso,beaudog,forrest1,green23,ryjgjxrf,go4it,ironman2,badnews,butterba,
1grizzly,isaeva,rembrand,toront,
1richard,bigjon,yfltymrf,
1kitty,
4ng62t,littlejo,wolfdog,ctvtyjd,spain1,megryan,tatertot,raven69,
4809594q,tapout,stuntman,a131313,lagers,hotstuf,lfdbl11,stanley2,advokat,boloto,
7894561,dooker,adxel187,cleodog,
4play,
0p9o8i,masterb,bimota,charlee,toystory,
6820055,
6666667,crevette,
6031769,corsa,bingoo,dima1990,tennis11,samuri,avocado,melissa6,unicor,habari,metart,needsex,cockman,hernan,
3891576,
3334444,amigo1,gobuffs2,mike21,allianz,
2835493,
179355,midgard,joey123,oneluv,ellis1,towncar,shonuff,scouse,tool69,thomas19,chorizo,jblaze,lisa1,dima1999,sophia1,anna1989,vfvekbxrf,krasavica,redlegs,jason25,tbontb,katrine,eumesmo,vfhufhbnrf,
1654321,asdfghj1,motdepas,booga,doogle,
1453145,byron1,
158272,kardinal,tanne,fallen1,abcd12345,ufyljy,n12345,kucing,burberry,bodger,
1234578,februar,
1234512,nekkid,prober,harrison1,idlewild,rfnz90,foiegras,pussy21,bigstud,denzel,tiffany2,bigwill,
1234567890zzz,hello69,compute1,viper9,hellspaw,trythis,gococks,dogballs,delfi,lupine,millenia,newdelhi,charlest,basspro,
1mike,joeblack,
975310,
1rosebud,batman11,misterio,fucknut,charlie0,august11,juancho,ilonka,jigei743ks,adam1234,
889900,goonie,alicat,ggggggg1,
1zzzzzzz,sexywife,northstar,chris23,
888111,containe,trojan1,jason5,graikos,
1ggggg,
1eeeee,tigers01,indigo1,hotmale,jacob123,mishima,richard3,cjxb2014,coco123,meagain,thaman,wallst,edgewood,bundas,
1power,matilda1,maradon,hookedup,jemima,r3vi3wpass,
2004-
10-,mudman,taz123,xswzaq,emerson1,anna21,warlord1,toering,pelle,tgwdvu,masterb8,wallstre,moppel,priora,ghjcnjrdfif,yoland,
12332100,
1j9e7f6f,jazzzz,yesman,brianm,
42qwerty42,
12345698,darkmanx,nirmal,john31,bb123456,neuspeed,billgates,moguls,fj1200,hbhlair,shaun1,ghbdfn,
305pwzlr,nbu3cd,susanb,pimpdad,mangust6403,joedog,dawidek,gigante,
708090,
703751,
700007,ikalcr,tbivbn,
697769,marvi,iyaayas,karen123,jimmyboy,dozer1,e6z8jh,bigtime1,getdown,kevin12,brookly,zjduc3,nolan1,cobber,yr8wdxcq,liebe,m1garand,blah123,
616879,action1,
600000,sumitomo,albcaz,asian1,
557799,dave69,
556699,sasa123,streaker,michel1,karate1,buddy7,daulet,koks888,roadtrip,wapiti,oldguy,illini1,
1234qq,mrspock,kwiatek,buterfly,august31,jibxhq,jackin,taxicab,tristram,talisker,
446655,
444666,chrisa,freespace,vfhbfyyf,chevell,
444333,notyours,
442244,christian1,seemore,sniper12,marlin1,joker666,multik,devilish,crf450,cdfoli,eastern1,asshead,duhast,voyager2,cyberia,
1wizard,cybernet,iloveme1,veterok,karandash,
392781,looksee,diddy,diabolic,foofight,missey,herbert1,bmw318i,premier1,zsfmpv,eric1234,dun6sm,fuck11,
345543,spudman,lurker,bitem,lizzy1,ironsink,minami,
339311,s7fhs127,sterne,
332233,plankton,galax,azuywe,changepa,august25,mouse123,sikici,killer69,xswqaz,quovadis,gnomik,
033028pw,
777777a,barrakuda,spawn666,goodgod,slurp,morbius,yelnats,cujo31,norman1,fastone,earwig,aureli,wordlife,bnfkbz,yasmi,austin123,timberla,missy2,legalize,netcom,liljon,takeit,georgin,
987654321z,warbird,vitalina,all4u3,mmmmmm1,bichon,ellobo,wahoos,fcazmj,aksarben,lodoss,satnam,vasili,
197800,maarten,sam138989,
0u812,ankita,walte,prince12,anvils,bestia,hoschi,
198300,univer,jack10,ktyecbr,gr00vy,hokie,wolfman1,fuckwit,geyser,emmanue,ybrjkftd,qwerty33,karat,dblock,avocat,bobbym,womersle,
1please,nostra,dayana,billyray,alternat,iloveu1,qwerty69,rammstein1,mystikal,winne,drawde,executor,craxxxs,ghjcnjnf,
999888777,welshman,access123,
963214785,
951753852,babe69,fvcnthlfv,****me,
666999666,testing2,
199200,nintendo64,oscarr,guido8,zhanna,gumshoe,jbird,
159357456,pasca,
123452345,satan6,mithrand,fhbirf,aa1111aa,viggen,ficktjuv,radial9,davids1,rainbow7,futuro,hipho,platin,poppy123,rhenjq,fulle,rosit,chicano,scrumpy,lumpy1,seifer,uvmrysez,autumn1,xenon,susie1,
7u8i
9o
0p,gamer1,sirene,muffy1,monkeys1,kalinin,olcrackmaster,hotmove,uconn,gshock,merson,lthtdyz,pizzaboy,peggy1,pistache,pinto1,fishka,ladydi,pandor,baileys,hungwell,redboy,rookie1,amanda01,passwrd,clean1,matty1,tarkus,jabba1,bobster,beer30,solomon1,moneymon,sesamo,fred11,sunnysid,jasmine5,thebears,putamadre,workhard,flashbac,counter1,liefde,magnat,corky1,green6,abramov,lordik,univers,shortys,david3,vip123,gnarly,
1234567s,billy2,honkey,deathstar,grimmy,govinda,direktor,
12345678s,linus1,shoppin,rekbrjdf,santeria,prett,berty75,mohican,daftpunk,uekmyfhf,chupa,strats,ironbird,giants56,salisbur,koldun,summer04,pondscum,jimmyj,miata1,george3,redshoes,weezie,bartman1,
0p9o8i7u,s1lver,dorkus,
125478,omega9,sexisgood,mancow,patric1,jetta1,
074401,ghjuhtcc,gfhjk,bibble,terry2,
123213,medicin,rebel2,hen3ry,
4freedom,aldrin,lovesyou,browny,renwod,winnie1,belladon,
1house,tyghbn,blessme,rfhfrfnbwf,haylee,deepdive,booya,phantasy,gansta,cock69,
4mnveh,gazza1,redapple,structur,anakin1,manolito,steve01,poolman,chloe123,vlad1998,qazwsxe,pushit,random123,ontherocks,o236nq,brain1,dimedrol,agape,rovnogod,
1balls,knigh,alliso,love01,wolf01,flintstone,beernuts,tuffguy,isengard,highfive,alex23,casper99,rubina,getreal,chinita,italian1,airsoft,qwerty23,muffdiver,willi1,grace123,orioles1,redbull1,chino1,ziggy123,breadman,estefan,ljcneg,gotoit,logan123,wideglid,mancity1,treess,qwe123456,kazumi,qweasdqwe,oddworld,naveed,protos,towson,a801016,godislov,at_asp,bambam1,soccer5,dark123,
67vette,carlos123,hoser1,scouser,wesdxc,pelus,dragon25,pflhjn,abdula,
1freedom,policema,tarkin,eduardo1,mackdad,gfhjkm11,lfplhfgthvf,adilet,zzzzxxxx,childre,samarkand,cegthgegth,shama,fresher,silvestr,greaser,allout,plmokn,sexdrive,nintendo1,fantasy7,oleander,fe126fd,crumpet,pingzing,dionis,hipster,yfcnz,requin,calliope,jerome1,housecat,abc123456789,doghot,snake123,augus,brillig,chronic1,gfhjkbot,expediti,noisette,master7,caliban,whitetai,favorite3,lisamari,educatio,ghjhjr,saber1,zcegth,
1958proman,vtkrbq,milkdud,imajica,thehip,bailey10,hockey19,dkflbdjcnjr,j123456,bernar,aeiouy,gamlet,deltachi,endzone,conni,bcgfybz,brandi1,auckland2010,
7653ajl1,mardigra,testuser,bunko18,camaro67,
36936,greenie,
454dfmcq,
6xe8j2z4,mrgreen,ranger5,headhunt,banshee1,moonunit,zyltrc,hello3,pussyboy,stoopid,tigger11,yellow12,drums1,blue02,kils123,junkman,banyan,jimmyjam,tbbucs,sportster,badass1,joshie,braves10,lajolla,
1amanda,antani,
78787,antero,
19216801,chich,rhett32,sarahm,beloit,sucker69,corkey,nicosnn,rccola,caracol,daffyduc,bunny2,mantas,monkies,hedonist,cacapipi,ashton1,sid123,
19899891,patche,greekgod,cbr1000,leader1,
19977991,ettore,chongo,
113311,picass,cfif123,rhtfnbd,frances1,andy12,minnette,bigboy12,green69,alices,babcia,partyboy,javabean,freehand,qawsed123,xxx111,harold1,passwo,jonny1,kappa1,w2dlww3v5p,
1merlin,
222999,tomjones,jakeman,franken,markhegarty,john01,carole1,daveman,caseys,apeman,mookey,moon123,claret,titans1,residentevil,campari,curitiba,dovetail,aerostar,jackdaniels,basenji,zaq12w,glencoe,biglove,goober12,ncc170,far7766,monkey21,eclipse9,
1234567v,vanechka,aristote,grumble,belgorod,abhishek,neworleans,pazzword,dummie,sashadog,diablo11,mst3000,koala1,maureen1,jake99,isaiah1,funkster,gillian1,ekaterina20,chibears,astra123,
4me2no,winte,skippe,necro,windows9,vinograd,demolay,vika2010,quiksilver,
19371ayj,dollar1,shecky,qzwxecrv,butterfly1,merrill1,scoreland,
1crazy,megastar,mandragora,track1,dedhed,jacob2,newhope,qawsedrftgyh,shack1,samvel,gatita,shyster,clara1,telstar,office1,crickett,truls,nirmala,joselito,chrisl,lesnik,aaaabbbb,austin01,leto2010,bubbie,aaa12345,widder,
234432,salinger,mrsmith,qazsedcft,newshoes,skunks,yt1300,bmw316,arbeit,smoove,
123321qweewq,
123qazwsx,
22221111,seesaw,
0987654321a,peach1,
1029384756q,sereda,gerrard8,shit123,batcave,energy1,peterb,mytruck,peter12,alesya,tomato1,spirou,laputaxx,magoo1,omgkremidia,knight12,norton1,vladislava,shaddy,austin11,jlbyjxrf,kbdthgekm,punheta,fetish69,exploiter,roger2,manstein,gtnhjd,
32615948worms,dogbreath,ujkjdjkjvrf,vodka1,ripcord,fatrat,kotek1,tiziana,larrybir,thunder3,nbvfnb,
9kyq6fge,remembe,likemike,gavin1,shinigam,yfcnfcmz,
13245678,jabbar,vampyr,ane4ka,lollipo,ashwin,scuderia,limpdick,deagle,
3247562,vishenka,fdhjhf,alex02,volvov70,mandys,bioshock,caraca,tombraider,matrix69,jeff123,
13579135,parazit,black3,noway1,diablos,hitmen,garden1,aminor,decembe,august12,b00ger,
006900,
452073t,schach,hitman1,mariner1,vbnmrf,paint1,
742617000027,bitchboy,pfqxjyjr,
5681392,marryher,sinnet,malik1,muffin12,aninha,piolin,lady12,traffic1,cbvjyf,
6345789,june21,ivan2010,ryan123,honda99,gunny,coorslight,asd321,hunter69,
7224763,sonofgod,dolphins1,
1dolphin,pavlenko,woodwind,lovelov,pinkpant,gblfhfcbyf,hotel1,justinbiebe,vinter,jeff1234,mydogs,
1pizza,boats1,parrothe,shawshan,brooklyn1,cbrown,
1rocky,hemi426,dragon64,redwings1,porsches,ghostly,hubbahub,buttnut,b929ezzh,sorokina,flashg,fritos,b7mguk,metatron,treehous,vorpal,
8902792,marcu,free123,labamba,chiefs1,zxc123zxc,keli_14,hotti,
1steeler,money4,rakker,foxwoods,free1,ahjkjd,sidorova,snowwhit,neptune1,mrlover,trader1,nudelamb,baloo,power7,deltasig,bills1,trevo,
7gorwell,nokia6630,nokia5320,madhatte,
1cowboys,manga1,namtab,sanjar,fanny1,birdman1,adv12775,carlo1,dude1998,babyhuey,nicole11,madmike,ubvyfpbz,qawsedr,lifetec,skyhook,stalker123,toolong,robertso,ripazha,zippy123,
1111111a,manol,dirtyman,analslut,jason3,dutches,minhasenha,cerise,fenrir,jayjay1,flatbush,franka,bhbyjxrf,
26429vadim,lawntrax,
198700,fritzy,nikhil,ripper1,harami,truckman,nemvxyheqdd5oqxyxyzi,gkfytnf,bugaboo,cableman,hairpie,xplorer,movado,hotsex69,mordred,ohyeah1,patrick3,frolov,katieh,
4311111q,mochaj,presari,bigdo,
753951852,freedom4,kapitan,tomas1,
135795,sweet123,pokers,shagme,tane4ka,sentinal,ufgyndmv,jonnyb,skate123,
123456798,
123456788,very1,gerrit,damocles,dollarbi,caroline1,lloyds,pizdets,flatland,
92702689,dave13,meoff,ajnjuhfabz,achmed,madison9,
744744z,amonte,avrillavigne,elaine1,norma1,asseater,everlong,buddy23,cmgang1,trash1,mitsu,flyman,ulugbek,june27,magistr,fittan,sebora64,dingos,sleipnir,caterpil,cindys,
212121qaz,partys,dialer,gjytltkmybr,qweqaz,janvier,rocawear,lostboy,aileron,sweety1,everest1,pornman,boombox,potter1,blackdic,
44448888,eric123,
112233aa,
2502557i,novass,nanotech,yourname,x12345,indian1,
15975300,
1234567l,carla51,chicago0,coleta,cxzdsaewq,qqwweerr,marwan,deltic,hollys,qwerasd,pon32029,rainmake,nathan0,matveeva,legioner,kevink,riven,tombraid,blitzen,a54321,jackyl,chinese1,shalimar,oleg1995,beaches1,tommylee,eknock,berli,monkey23,badbob,pugwash,likewhoa,jesus2,yujyd360,belmar,shadow22,utfp5e,angelo1,minimax,pooder,cocoa1,moresex,tortue,lesbia,panthe,snoopy2,drumnbass,alway,gmcz71,
6jhwmqku,leppard,dinsdale,blair1,boriqua,money111,virtuagirl,
267605,rattlesn,
1sunshin,monica12,veritas1,newmexic,millertime,turandot,rfvxfnrf,jaydog,kakawka,bowhunter,booboo12,deerpark,erreway,taylorma,rfkbybyf,wooglin,weegee,rexdog,iamhorny,cazzo1,vhou812,bacardi1,dctktyyfz,godpasi,peanut12,bertha1,fuckyoubitch,ghosty,altavista,jertoot,smokeit,ghjcnbvtyz,fhnehxbr,rolsen,qazxcdews,maddmaxx,redrocke,qazokm,spencer2,thekiller,asdf11,
123sex,tupac1,p1234567,dbrown,
1biteme,tgo4466,
316769,sunghi,shakespe,frosty1,gucci1,arcana,bandit01,lyubov,poochy,dartmout,magpies1,sunnyd,mouseman,summer07,chester7,shalini,danbury,pigboy,dave99,deniss,harryb,ashley11,pppppp1,
01081988m,balloon1,tkachenko,bucks1,master77,pussyca,tricky1,zzxxccvv,zoulou,doomer,mukesh,iluv69,supermax,todays,thefox,don123,dontask,diplom,piglett,shiney,fahbrf,qaz12wsx,temitope,reggin,project1,buffy2,inside1,lbpfqyth,vanilla1,lovecock,u4slpwra,fylh.irf,
123211,
7ertu3ds,necroman,chalky,artist1,simpso,
4x7wjr,chaos666,lazyacres,harley99,ch33s3,marusa,eagle7,dilligas,computadora,lucky69,denwer,nissan350z,unforgiv,oddball,schalke0,aztec1,borisova,branden1,parkave,marie123,germa,lafayett,
878kckxy,
405060,cheeseca,bigwave,fred22,andreea,poulet,mercutio,psycholo,andrew88,o4izdmxu,sanctuar,newhome,milion,suckmydi,rjvgm.nth,warior,goodgame,
1qwertyuiop,
6339cndh,scorpio2,macker,southbay,crabcake,toadie,paperclip,fatkid,maddo,cliff1,rastafar,maries,twins1,geujdrf,anjela,wc4fun,dolina,mpetroff,rollout,zydeco,shadow3,pumpki,steeda,volvo240,terras,blowjo,blue2000,incognit,badmojo,gambit1,zhukov,station1,aaronb,graci,duke123,clipper1,qazxsw2,ledzeppe,kukareku,sexkitte,cinco,
007008,lakers12,a1234b,acmilan1,afhfjy,starrr,slutty3,phoneman,kostyan,bonzo1,sintesi07,ersatz,cloud1,nephilim,nascar03,rey619,kairos,
123456789e,hardon1,boeing1,juliya,hfccdtn,vgfun8,polizei,
456838,keithb,minouche,ariston,savag,
213141,clarkken,microwav,london2,santacla,campeo,qr5mx7,
464811,mynuts,bombo,
1mickey,lucky8,danger1,ironside,carter12,wyatt1,borntorun,iloveyou123,jose1,pancake1,tadmichaels,monsta,jugger,hunnie,triste,heat7777,ilovejesus,queeny,luckycharm,lieben,gordolee85,jtkirk,forever21,jetlag,skylane,taucher,neworlea,holera,
000005,anhnhoem,melissa7,mumdad,massimiliano,dima1994,nigel1,madison3,slicky,shokolad,serenit,jmh1978,soccer123,chris3,drwho,rfpzdrf,
1qasw23ed,free4me,wonka,sasquatc,sanan,maytag,verochka,bankone,molly12,monopoli,xfqybr,lamborgini,gondolin,candycane,needsome,jb007,scottie1,brigit,
0147258369,kalamazo,lololyo123,bill1234,ilovejes,lol123123,popkorn,april13,
567rntvm,downunde,charle1,angelbab,guildwars,homeworld,qazxcvbnm,superma1,dupa123,kryptoni,happyy,artyom,stormie,cool11,calvin69,saphir,konovalov,jansport,october8,liebling,druuna,susans,megans,tujhjdf,wmegrfux,jumbo1,ljb4dt7n,
012345678910,kolesnik,speculum,at4gftlw,kurgan,
93pn75,cahek0980,dallas01,godswill,fhifdby,chelsea4,jump23,barsoom,catinhat,urlacher,angel99,vidadi1,
678910,lickme69,topaz1,westend,loveone,c12345,gold12,alex1959,mamon,barney12,
1maggie,alex12345,lp2568cskt,s1234567,gjikbdctyf,anthony0,browns99,chips1,sunking,widespre,lalala1,tdutif,fucklife,master00,alino4ka,stakan,blonde1,phoebus,tenore,bvgthbz,brunos,suzjv8,uvdwgt,revenant,
1banana,veroniqu,sexfun,sp1der,
4g3izhox,isakov,shiva1,scooba,bluefire,wizard12,dimitris,funbags,perseus,hoodoo,keving,malboro,
157953,a32tv8ls,latics,animate,mossad,yejntb,karting,qmpq39zr,busdrive,jtuac3my,jkne9y,sr20dett,
4gxrzemq,keylargo,
741147,rfktylfhm,toast1,skins1,xcalibur,gattone,seether,kameron,glock9mm,julio1,delenn,gameday,tommyd,str8edge,bulls123,
66699,carlsberg,woodbird,adnama,
45auto,codyman,truck2,
1w2w3w4w,pvjegu,method1,luetdi,
41d8cd98f00b,bankai,
5432112345,
94rwpe,reneee,chrisx,melvins,
775577,sam2000,scrappy1,rachid,grizzley,margare,morgan01,winstons,gevorg,gonzal,crawdad,gfhfdjp,babilon,noneya,pussy11,barbell,easyride,c00li0,
777771,
311music,karla1,golions,
19866891,peejay,leadfoot,hfvbkm,kr9z40sy,cobra123,isotwe,grizz,sallys,****you,aaa123a,dembel,foxs14,hillcres,webman,mudshark,alfredo1,weeded,lester1,hovepark,ratface,
000777fffa,huskie,wildthing,elbarto,waikiki,masami,call911,goose2,regin,dovajb,agricola,cjytxrj,andy11,penny123,family01,a121212,
1braves,upupa68,happy100,
824655,cjlove,firsttim,kalel,redhair,dfhtymt,sliders,bananna,loverbo,fifa2008,crouton,chevy350,panties2,kolya1,alyona,hagrid,spagetti,q2w3e4r,
867530,narkoman,nhfdvfnjkju123,
1ccccccc,napolean,
0072563,allay,w8sted,wigwam,jamesk,state1,parovoz,beach69,kevinb,rossella,logitech1,celula,gnocca,canucks1,loginova,marlboro1,aaaa1,kalleanka,mester,mishutka,milenko,alibek,jersey1,peterc,
1mouse,nedved,blackone,ghfplybr,
682regkh,beejay,newburgh,ruffian,clarets,noreaga,xenophon,hummerh2,tenshi,smeagol,soloyo,vfhnby,ereiamjh,ewq321,goomie,sportin,cellphone,sonnie,jetblack,saudan,gblfhfc,matheus,uhfvjnf,alicja,jayman1,devon1,hexagon,bailey2,vtufajy,yankees7,salty1,
908070,killemal,gammas,eurocard,sydney12,tuesday1,antietam,wayfarer,beast666,
19952009sa,aq12ws,eveli,hockey21,haloreach,dontcare,xxxx1,andrea11,karlmarx,jelszo,tylerb,protools,timberwolf,ruffneck,pololo,
1bbbbb,waleed,sasami,twinss,fairlady,illuminati,alex007,sucks1,homerjay,scooter7,tarbaby,barmaley,amistad,vanes,randers,tigers12,dreamer2,goleafsg,googie,bernie1,as12345,godeep,james3,phanto,gwbush,cumlover,
2196dc,studioworks,
995511,golf56,titova,kaleka,itali,socks1,kurwamac,daisuke,hevonen,woody123,daisie,wouter,henry123,gostosa,guppie,porpoise,iamsexy,
276115,paula123,
1020315,
38gjgeuftd,rjrfrjkf,knotty,idiot1,sasha12345,matrix13,securit,radical1,ag764ks,jsmith,coolguy1,secretar,juanas,sasha1988,itout,
00000001,tiger11,
1butthea,putain,cavalo,basia1,kobebryant,
1232323,
12345asdfg,sunsh1ne,cyfqgth,tomkat,dorota,dashit,pelmen,
5t6y7u,whipit,smokeone,helloall,bonjour1,snowshoe,nilknarf,x1x2x3,lammas,
1234599,lol123456,atombomb,ironchef,noclue,alekseev,gwbush1,silver2,
12345678m,yesican,fahjlbnf,chapstic,alex95,open1,tiger200,lisichka,pogiako,cbr929,searchin,tanya123,alex1973,phil413,alex1991,dominati,geckos,freddi,silenthill,egroeg,vorobey,antoxa,dark666,shkola,apple22,rebellio,shamanking,
7f8srt,cumsucker,partagas,bill99,
22223333,arnster55,fucknuts,proxima,silversi,goblues,parcells,vfrcbvjdf,piloto,avocet,emily2,
1597530,miniskir,himitsu,pepper2,juiceman,venom1,bogdana,jujube,quatro,botafogo,mama2010,junior12,derrickh,asdfrewq,miller2,chitarra,silverfox,napol,prestigio,devil123,mm111qm,ara123,max33484,sex2000,primo1,sephan,anyuta,alena2010,viborg,verysexy,hibiscus,terps,josefin,oxcart,spooker,speciali,raffaello,partyon,vfhvtkflrf,strela,a123456z,worksuck,glasss,lomonosov,dusty123,dukeblue,
1winter,sergeeva,lala123,john22,cmc09,sobolev,bettylou,dannyb,gjkrjdybr,hagakure,iecnhbr,awsedr,pmdmsctsk,costco,alekseeva,fktrcttd,bazuka,flyingv,garuda,buffy16,gutierre,beer12,stomatolog,ernies,palmeiras,golf123,love269,n.kmgfy,gjkysqgbpltw,youare,joeboo,baksik,lifeguar,
111a111,nascar8,mindgame,dude1,neopets,frdfkfyu,june24,phoenix8,penelopa,merlin99,mercenar,badluck,mishel,bookert,deadsexy,power9,chinchil,
1234567m,alex10,skunk1,rfhkcjy,sammycat,wright1,randy2,marakesh,temppassword,elmer251,mooki,patrick0,bonoedge,
1tits,chiar,kylie1,graffix,milkman1,cornel,mrkitty,nicole12,ticketmaster,beatles4,number20,ffff1,terps1,superfre,yfdbufnjh,jake1234,flblfc,
1111qq,zanuda,jmol01,wpoolejr,polopol,nicolett,omega13,cannonba,
123456789.,sandy69,ribeye,bo243ns,marilena,bogdan123,milla,redskins1,
19733791,alias1,movie1,ducat,marzena,shadowru,
56565,coolman1,pornlover,teepee,spiff,nafanya,gateway3,fuckyou0,hasher,
34778,booboo69,staticx,hang10,qq12345,garnier,bosco123,
1234567qw,carson1,samso,
1xrg4kcq,cbr929rr,allan123,motorbik,andrew22,pussy101,miroslava,cytujdbr,camp0017,cobweb,snusmumrik,salmon1,cindy2,aliya,serendipity,co437at,tincouch,timmy123,hunter22,st1100,vvvvvv1,blanka,krondor,sweeti,nenit,kuzmich,gustavo1,bmw320i,alex2010,trees1,kyliem,essayons,april26,kumari,sprin,fajita,appletre,fghbjhb,
1green,katieb,steven2,corrado1,satelite,
1michell,
123456789c,cfkfvfylhf,acurarsx,slut543,inhere,bob2000,pouncer,k123456789,fishie,aliso,audia8,bluetick,soccer69,jordan99,fromhell,mammoth1,fighting54,mike25,pepper11,extra1,worldwid,chaise,vfr800,sordfish,almat,nofate,listopad,hellgate,dctvghbdf,jeremia,qantas,lokiju,honker,sprint1,maral,triniti,compaq3,sixsix6,married1,loveman,juggalo1,repvtyrj,zxcasdqw,
123445,whore1,
123678,monkey6,west123,warcraf,pwnage,mystery1,creamyou,ant123,rehjgfnrf,corona1,coleman1,steve121,alderaan,barnaul,celeste1,junebug1,bombshel,gretzky9,tankist,targa,cachou,vaz2101,playgolf,boneyard,strateg,romawka,iforgotit,pullup,garbage1,irock,archmage,shaft1,oceano,sadies,alvin1,
135135ab,psalm69,lmfao,ranger02,zaharova,
33334444,perkman,realman,salguod,cmoney,astonmartin,glock1,greyfox,viper99,helpm,blackdick,
46775575,family5,shazbot,dewey1,qwertyas,shivani,black22,mailman1,greenday1,
57392632,red007,stanky,sanchez1,tysons,daruma,altosax,krayzie,
85852008,
1forever,
98798798,irock.,
123456654,
142536789,ford22,brick1,michela,preciou,crazy4u,
01telemike01,nolife,concac,safety1,annie123,brunswic,destini,
123456qwer,madison0,snowball1,
137946,
1133557799,jarule,scout2,songohan,thedead,
00009999,murphy01,spycam,hirsute,aurinko,associat,
1miller,baklan,hermes1,
2183rm,martie,kangoo,shweta,yvonne1,westsid,jackpot1,rotciv,maratik,fabrika,claude1,nursultan,noentry,ytnhjufnm,electra1,ghjcnjnfr1,puneet,smokey01,integrit,bugeye,trouble2,
14071789,paul01,omgwtf,dmh415,ekilpool,yourmom1,moimeme,sparky11,boludo,ruslan123,kissme1,demetrio,appelsin,asshole3,raiders2,bunns,fynjybj,billygoa,p030710p$e4o,macdonal,
248ujnfk,acorns,schmidt1,sparrow1,vinbylrj,weasle,jerom,ycwvrxxh,skywalk,gerlinde,solidus,postal1,poochie1,
1charles,rhianna,terorist,rehnrf,omgwtfbbq,assfucke,deadend,zidan,jimboy,vengence,maroon5,
7452tr,dalejr88,sombra,anatole,elodi,amazonas,
147789,q12345q,gawker1,juanma,kassidy,greek1,bruces,bilbob,mike44,
0o9i8u7y6t,kaligula,agentx,familie,anders1,pimpjuice,
0128um,birthday10,lawncare,hownow,grandorgue,juggerna,scarfac,kensai,swatteam,
123four,motorbike,repytxbr,other1,celicagt,pleomax,gen0303,godisgreat,icepick,lucifer666,heavy1,tea4two,forsure,
02020,shortdog,webhead,chris13,palenque,
3techsrl,knights1,orenburg,prong,nomarg,wutang1,
80637852730,laika,iamfree,
12345670,pillow1,
12343412,bigears,peterg,stunna,rocky5,
12123434,damir,feuerwehr,
7418529630,danone,yanina,valenci,andy69,
111222q,silvia1,
1jjjjj,loveforever,passwo1,stratocaster,
8928190a,motorolla,lateralu,ujujkm,chubba,ujkjdf,signon,
123456789zx,serdce,stevo,wifey200,ololo123,popeye1,
1pass,central1,melena,luxor,nemezida,poker123,ilovemusic,qaz1234,noodles1,lakeshow,amarill,ginseng,billiam,trento,
321cba,fatback,soccer33,master13,marie2,newcar,bigtop,dark1,camron,nosgoth,
155555,biglou,redbud,jordan7,
159789,diversio,actros,dazed,drizzit,hjcnjd,wiktoria,justic,gooses,luzifer,darren1,chynna,tanuki,
11335577,icculus,boobss,biggi,firstson,ceisi123,gatewa,hrothgar,jarhead1,happyjoy,felipe1,bebop1,medman,athena1,boneman,keiths,djljgfl,dicklick,russ120,mylady,zxcdsa,rock12,bluesea,kayaks,provista,luckies,smile4me,bootycal,enduro,
123123f,heartbre,ern3sto,apple13,bigpappa,fy.njxrf,bigtom,cool69,perrito,quiet1,puszek,cious,cruella,temp1,david26,alemap,aa123123,teddies,tricolor,smokey12,kikiriki,mickey01,robert01,super5,ranman,stevenso,deliciou,money777,degauss,mozar,susanne1,asdasd12,shitbag,mommy123,wrestle1,imfree,fuckyou12,barbaris,florent,ujhijr,f8yruxoj,tefjps,anemone,toltec,
2gether,left4dead2,ximen,gfkmvf,dunca,emilys,diana123,
16473a,mark01,bigbro,annarbor,nikita2000,
11aa11,tigres,llllll1,loser2,fbi11213,jupite,qwaszxqw,macabre,
123ert,rev2000,mooooo,klapaucius,bagel1,chiquit,iyaoyas,bear101,irocz28,vfktymrfz,smokey2,love99,rfhnbyf,dracul,keith123,slicko,peacock1,orgasmic,thesnake,solder,wetass,doofer,david5,rhfcyjlfh,swanny,tammys,turkiye,tubaman,estefani,firehose,funnyguy,servo,grace17,pippa1,arbiter,jimmy69,nfymrf,asdf67nm,rjcnzy,demon123,thicknes,sexysex,kristall,michail,encarta,banderos,minty,marchenko,de1987ma,mo5kva,aircav,naomi1,bonni,tatoo,cronaldo,
49ers1,mama1963,
1truck,telecaster,punksnotdead,erotik,
1eagles,
1fender,luv269,acdeehan,tanner1,freema,
1q3e5t7u,linksys,tiger6,megaman1,neophyte,australia1,mydaddy,
1jeffrey,fgdfgdfg,gfgekz,
1986irachka,keyman,m0b1l3,dfcz123,mikeyg,playstation2,abc125,slacker1,
110491g,lordsoth,bhavani,ssecca,dctvghbdtn,niblick,hondacar,baby01,worldcom,
4034407,
51094didi,
3657549,
3630000,
3578951,sweetpussy,majick,supercoo,robert11,abacabb,panda123,gfhjkm13,ford4x4,zippo1,lapin,
1726354,lovesong,dude11,moebius,paravoz,
1357642,matkhau,solnyshko,daniel4,multiplelog,starik,martusia,iamtheman,greentre,jetblue,motorrad,vfrcbvev,redoak,dogma1,gnorman,komlos,tonka1,
1010220,
666satan,losenord,lateralus,absinthe,command1,jigga1,iiiiiii1,pants1,jungfrau,
926337,ufhhbgjnnth,yamakasi,
888555,sunny7,gemini69,alone1,zxcvbnmz,cabezon,skyblues,zxc1234,
456123a,zero00,caseih,azzurra,legolas1,menudo,murcielago,
785612,
779977,benidorm,viperman,dima1985,piglet1,hemligt,hotfeet,
7elephants,hardup,gamess,a000000,
267ksyjf,kaitlynn,sharkie,sisyphus,yellow22,
667766,redvette,
666420,mets69,ac2zxdty,hxxrvwcy,cdavis,alan1,noddy,
579300,druss,eatshit1,
555123,appleseed,simpleplan,kazak,
526282,fynfyfyfhbde,birthday6,dragon6,
1pookie,bluedevils,omg123,hj8z6e,x5dxwp,
455445,batman23,termin,chrisbrown,animals1,lucky9,
443322,kzktxrf,takayuki,fermer,assembler,zomu9q,sissyboy,sergant,felina,nokia6230i,eminem12,croco,hunt4red,festina,darknigh,cptnz062,ndshnx4s,twizzler,wnmaz7sd,aamaax,gfhfcjkmrf,alabama123,barrynov,happy5,punt0it,durandal,
8xuuobe4,cmu9ggzh,bruno12,
316497,crazyfrog,vfvfktyf,apple3,kasey1,mackdaddy,anthon1,sunnys,angel3,cribbage,moon1,donal,bryce1,pandabear,mwss474,whitesta,freaker,
197100,bitche,p2ssw0rd,turnb,tiktonik,moonlite,ferret1,jackas,ferrum,bearclaw,liberty2,
1diablo,caribe,snakeeyes,janbam,azonic,rainmaker,vetalik,bigeasy,baby1234,sureno13,blink1,kluivert,calbears,lavanda,
198600,dhtlbyf,medvedeva,fox123,whirling,bonscott,freedom9,october3,manoman,segredo,cerulean,robinso,bsmith,flatus,dannon,password21,rrrrrr1,callista,romai,rainman1,trantor,mickeymo,bulldog7,g123456,pavlin,pass22,snowie,hookah,
7ofnine,bubba22,cabible,nicerack,moomoo1,summer98,yoyo123,milan1,lieve27,mustang69,jackster,exocet,nadege,qaz12,bahama,watson1,libras,eclipse2,bahram,bapezm,up9x8rww,ghjcnjz,themaste,deflep27,ghost16,gattaca,fotograf,junior123,gilber,gbjyth,
8vjzus,rosco1,begonia,aldebara,flower12,novastar,buzzman,manchild,lopez1,mama11,william7,yfcnz1,blackstar,spurs123,moom4242,
1amber,iownyou,tightend,
07931505,paquito,
1johnson,smokepot,pi31415,snowmass,ayacdc,jessicam,giuliana,
5tgbnhy6,harlee,giuli,bigwig,tentacle,scoubidou2,benelli,vasilina,nimda,
284655,jaihind,lero4ka,
1tommy,reggi,ididit,jlbyjxtcndj,mike26,qbert,wweraw,lukasz,loosee123,palantir,flint1,mapper,baldie,saturne,virgin1,meeeee,elkcit,iloveme2,blue15,themoon,radmir,number3,shyanne,missle,hannelor,jasmina,karin1,lewie622,ghjcnjqgfhjkm,blasters,oiseau,sheela,grinders,panget,rapido,positiv,twink,fltkbyf,kzsfj874,daniel01,enjoyit,nofags,doodad,rustler,squealer,fortunat,peace123,khushi,devils2,
7inches,candlebo,topdawg,armen,soundman,zxcqweasd,april7,gazeta,netman,hoppers,bear99,ghbjhbntn,mantle7,bigbo,harpo,jgordon,bullshi,vinny1,krishn,star22,thunderc,galinka,phish123,tintable,nightcrawler,tigerboy,rbhgbx,messi,basilisk,masha1998,nina123,yomamma,kayla123,geemoney,
0000000000d,motoman,a3jtni,ser123,owen10,italien,vintelok,
12345rewq,nightime,jeepin,ch1tt1ck,mxyzptlk,bandido,ohboy,doctorj,hussar,superted,parfilev,grundle,
1jack,livestrong,chrisj,matthew3,access22,moikka,fatone,miguelit,trivium,glenn1,smooches,heiko,dezember,spaghett,stason,molokai,bossdog,guitarma,waderh,boriska,photosho,path13,hfrtnf,audre,junior24,monkey24,silke,vaz21093,bigblue1,trident1,candide,arcanum,klinker,orange99,bengals1,rosebu,mjujuj,nallepuh,mtwapa1a,ranger69,level1,bissjop,leica,
1tiffany,rutabega,elvis77,kellie1,sameas,barada,karabas,frank12,queenb,toutoune,surfcity,samanth1,monitor1,littledo,kazakova,fodase,mistral1,april22,carlit,shakal,batman123,fuckoff2,alpha01,
5544332211,buddy3,towtruck,kenwood1,vfiekmrf,jkl123,pypsik,ranger75,sitges,toyman,bartek1,ladygirl,booman,boeing77,installsqlst,
222666,gosling,bigmack,
223311,bogos,kevin2,gomez1,xohzi3g4,kfnju842,klubnika,cubalibr,
123456789101,kenpo,
0147852369,raptor1,tallulah,boobys,jjones,
1q2s3c,moogie,vid2600,almas,wombat1,extra300,xfiles1,green77,sexsex1,heyjude,sammyy,missy123,maiyeuem,nccpl25282,thicluv,sissie,raven3,fldjrfn,buster22,broncos2,laurab,letmein4,harrydog,solovey,fishlips,asdf4321,ford123,superjet,norwegen,movieman,psw333333,intoit,postbank,deepwate,ola123,geolog323,murphys,eshort,a3eilm2s2y,kimota,belous,saurus,
123321qaz,i81b4u,aaa12,monkey20,buckwild,byabybnb,mapleleafs,yfcnzyfcnz,baby69,summer03,twista,
246890,
246824,ltcnhjth,z1z2z3,monika1,sad123,uto29321,bathory,villan,funkey,poptarts,spam967888,
705499fh,sebast,porn1234,earn381,
1porsche,whatthef,
123456789y,polo12,brillo,soreilly,waters1,eudora,allochka,is_a_bot,winter00,bassplay,
531879fiz,onemore,bjarne,red911,kot123,artur1,qazxdr,c0rvette,diamond7,matematica,klesko,beaver12,
2enter,seashell,panam,chaching,edward2,browni,xenogear,cornfed,aniram,chicco22,darwin1,ancella2,sophie2,vika1998,anneli,shawn41,babie,resolute,pandora2,william8,twoone,coors1,jesusis1,teh012,cheerlea,renfield,tessa1,anna1986,madness1,bkmlfh,
19719870,liebherr,ck6znp42,gary123,
123654z,alsscan,eyedoc,matrix7,metalgea,chinito,
4iter,falcon11,
7jokx7b9du,bigfeet,tassadar,retnuh,muscle1,klimova,darion,batistuta,bigsur,
1herbier,noonie,ghjrehjh,karimova,faustus,snowwhite,
1manager,dasboot,michael12,analfuck,inbed,dwdrums,jaysoncj,maranell,bsheep75,
164379,rolodex,
166666,rrrrrrr1,almaz666,
167943,russel1,negrito,alianz,goodpussy,veronik,
1w2q3r4e,efremov,emb377,sdpass,william6,alanfahy,nastya1995,panther5,automag,
123qwe12,vfvf2011,fishe,
1peanut,speedie,qazwsx1234,pass999,
171204j,ketamine,sheena1,energizer,usethis1,
123abc123,buster21,thechamp,flvbhfk,frank69,chane,hopeful1,claybird,pander,anusha,bigmaxxx,faktor,housebed,dimidrol,bigball,shashi,derby1,fredy,dervish,bootycall,
80988218126,killerb,cheese2,pariss,mymail,dell123,catbert,christa1,chevytru,gjgjdf,
00998877,overdriv,ratten,golf01,nyyanks,dinamite,bloembol,gismo,magnus1,march2,twinkles,ryan22,duckey,
118a105b,kitcat,brielle,poussin,lanzarot,youngone,ssvegeta,hero63,battle1,kiler,fktrcfylh1,newera,vika1996,dynomite,oooppp,beer4me,foodie,ljhjuf,sonshine,godess,doug1,constanc,thinkbig,steve2,damnyou,autogod,www333,kyle1,ranger7,roller1,harry2,dustin1,hopalong,tkachuk,b00bies,bill2,deep111,stuffit,fire69,redfish1,andrei123,graphix,
1fishing,kimbo1,mlesp31,ifufkbyf,gurkan,
44556,emily123,busman,and123,
8546404,paladine,
1world,bulgakov,
4294967296,bball23,
1wwwww,mycats,elain,delta6,
36363,emilyb,color1,
6060842,cdtnkfyrf,hedonism,gfgfrfhkj,
5551298,scubad,gostate,sillyme,hdbiker,beardown,fishers,sektor,
00000007,newbaby,rapid1,braves95,gator2,nigge,anthony3,sammmy,oou812,heffer,phishin,roxanne1,yourass,hornet1,albator,
2521659,underwat,tanusha,dianas,
3f3fpht7op,dragon20,bilbobag,cheroke,radiatio,dwarf1,majik,
33st33,dochka,garibald,robinh,sham69,temp01,wakeboar,violet1,
1w2w3w,registr,tonite,maranello,
1593570,parolamea,galatasara,loranthos,
1472583,asmodean,
1362840,scylla,doneit,jokerr,porkypig,kungen,mercator,koolhaas,come2me,debbie69,calbear,liverpoolfc,yankees4,
12344321a,kennyb,madma,
85200258,dustin23,thomas13,tooling,mikasa,mistic,crfnbyf,
112233445,sofia1,heinz57,colts1,price1,snowey,joakim,mark11,
963147,cnhfcnm,kzinti,
1bbbbbbb,rubberdu,donthate,rupert1,sasha1992,regis1,nbuhbwf,fanboy,sundial,sooner1,wayout,vjnjhjkf,deskpro,arkangel,willie12,mikeyb,celtic1888,luis1,buddy01,duane1,grandma1,aolcom,weeman,
172839456,basshead,hornball,magnu,pagedown,molly2,
131517,rfvtgbyhn,astonmar,mistery,madalina,cash1,
1happy,shenlong,matrix01,nazarova,
369874125,
800500,webguy,rse2540,ashley2,briank,
789551,
786110,chunli,j0nathan,greshnik,courtne,suckmyco,mjollnir,
789632147,asdfg1234,
754321,odelay,ranma12,zebedee,artem777,bmw318is,butt1,rambler1,yankees9,alabam,
5w76rnqp,rosies,mafioso,studio1,babyruth,tranzit,magical123,gfhjkm135,
12345$,soboleva,
709394,ubique,drizzt1,elmers,teamster,pokemons,
1472583690,
1597532486,shockers,merckx,melanie2,ttocs,clarisse,earth1,dennys,slobber,flagman,farfalla,troika,
4fa82hyx,hakan,x4ww5qdr,cumsuck,leather1,forum1,july20,barbel,zodiak,samuel12,ford01,rushfan,bugsy1,invest1,tumadre,screwme,a666666,money5,henry8,tiddles,sailaway,starburs,
100years,killer01,comando,hiromi,ranetka,thordog,blackhole,palmeira,verboten,solidsna,q1w1e1,humme,kevinc,gbrfxe,gevaudan,hannah11,peter2,vangar,sharky7,talktome,jesse123,chuchi,pammy,!qazxsw2,siesta,twenty1,wetwilly,
477041,natural1,sun123,daniel3,intersta,shithead1,hellyea,bonethugs,solitair,bubbles2,father1,nick01,
444000,adidas12,dripik,cameron2,
442200,a7nz8546,respublika,fkojn6gb,
428054,snoppy,rulez1,haslo,rachael1,purple01,zldej102,ab12cd34,cytuehjxrf,madhu,astroman,preteen,handsoff,mrblonde,biggio,testin,vfdhif,twolves,unclesam,asmara,kpydskcw,lg2wmgvr,grolsch,biarritz,feather1,williamm,s62i93,bone1,penske,
337733,
336633,taurus1,
334433,billet,diamondd,
333000,nukem,fishhook,godogs,thehun,lena1982,blue00,smelly1,unb4g9ty,
65pjv22,applegat,mikehunt,giancarlo,krillin,felix123,december1,soapy,
46doris,nicole23,bigsexy1,justin10,pingu,bambou,falcon12,dgthtl,
1surfer,qwerty01,estrellit,nfqcjy,easygo,konica,qazqwe,
1234567890m,stingers,nonrev,
3e4r5t,champio,bbbbbb99,
196400,allen123,seppel,simba2,rockme,zebra3,tekken3,endgame,sandy2,
197300,fitte,monkey00,eldritch,littleone,rfyfgkz,
1member,
66chevy,oohrah,cormac,hpmrbm41,
197600,grayfox,elvis69,celebrit,maxwell7,rodders,krist,
1camaro,broken1,kendall1,silkcut,katenka,angrick,maruni,
17071994a,tktyf,kruemel,snuffles,iro4ka,baby12,alexis01,marryme,vlad1994,forward1,culero,badaboom,malvin,hardtoon,hatelove,molley,knopo4ka,duchess1,mensuck,cba321,kickbutt,zastava,wayner,fuckyou6,eddie123,cjkysir,john33,dragonfi,cody1,jabell,cjhjrf,badseed,sweden1,marihuana,brownlov,elland,nike1234,kwiettie,jonnyboy,togepi,billyk,robert123,bb334,florenci,ssgoku,
198910,bristol1,bob007,allister,yjdujhjl,gauloise,
198920,bellaboo,
9lives,aguilas,wltfg4ta,foxyroxy,rocket69,fifty50,babalu,master21,malinois,kaluga,gogosox,obsessio,yeahrigh,panthers1,capstan,liza2000,leigh1,paintball1,blueskie,cbr600f3,bagdad,jose98,mandreki,shark01,wonderbo,muledeer,xsvnd4b2,hangten,
200001,grenden,anaell,apa195,model1,
245lufpq,zip100,ghjcgtrn,wert1234,misty2,charro,juanjose,fkbcrf,frostbit,badminto,buddyy,
1doctor,vanya,archibal,parviz,spunky1,footboy,dm6tzsgp,legola,samadhi,poopee,ytdxz2ca,hallowboy,dposton,gautie,theworm,guilherme,dopehead,iluvtits,bobbob1,ranger6,worldwar,lowkey,chewbaca,oooooo99,ducttape,dedalus,celular,
8i9o0p,borisenko,taylor01,
111111z,arlingto,p3nnywiz,rdgpl3ds,boobless,kcmfwesg,blacksab,mother2,markus1,leachim,secret2,s123456789,
1derful,espero,russell2,tazzer,marykate,freakme,mollyb,lindros8,james00,gofaster,stokrotka,kilbosik,aquamann,pawel1,shedevil,mousie,slot2009,october6,
146969,mm259up,brewcrew,choucho,uliana,sexfiend,fktirf,pantss,vladimi,starz,sheeps,
12341234q,bigun,tiggers,crjhjcnm,libtech,pudge1,home12,zircon,klaus1,jerry2,pink1,lingus,monkey66,dumass,polopolo09,feuerweh,rjyatnf,chessy,beefer,shamen,poohbear1,
4jjcho,bennevis,fatgirls,ujnbrf,cdexswzaq,
9noize9,rich123,nomoney,racecar1,hacke,clahay,acuario,getsum,hondacrv,william0,cheyenn,techdeck,atljhjdf,wtcacq,suger,fallenangel,bammer,tranquil,carla123,relayer,lespaul1,portvale,idontno,bycnbnen,trooper2,gennadiy,pompon,billbob,amazonka,akitas,chinatow,atkbrc,busters,fitness1,cateye,selfok2013,
1murphy,fullhous,mucker,bajskorv,nectarin,littlebitch,love24,feyenoor,bigal37,lambo1,pussybitch,icecube1,biged,kyocera,ltybcjdf,boodle,theking1,gotrice,sunset1,abm1224,fromme,sexsells,inheat,kenya1,swinger1,aphrodit,kurtcobain,rhind101,poidog,poiulkjh,kuzmina,beantown,tony88,stuttgar,drumer,joaqui,messenge,motorman,amber2,nicegirl,rachel69,andreia,faith123,studmuffin,jaiden,red111,vtkmybr,gamecocks,gumper,bosshogg,
4me2know,tokyo1,kleaner,roadhog,fuckmeno,phoenix3,seeme,buttnutt,boner69,andreyka,myheart,katerin,rugburn,jvtuepip,dc3ubn,chile1,ashley69,happy99,swissair,balls2,fylhttdf,jimboo,
55555d,mickey11,voronin,m7hsqstm,stufff,merete,weihnachte,dowjones,baloo1,freeones,bears34,auburn1,beverl,timberland,
1elvis,guinness1,bombadil,flatron1,logging7,telefoon,merl1n,masha1,andrei1,cowabung,yousuck1,
1matrix,peopl,asd123qwe,sweett,mirror1,torrente,joker12,diamond6,jackaroo,
00000a,millerlite,ironhorse,
2twins,stryke,gggg1,zzzxxxccc,roosevel,
8363eddy,angel21,depeche1,d0ct0r,blue14,areyou,veloce,grendal,frederiksberg,cbcntvf,cb207sl,sasha2000,was.here,fritzz,rosedale,spinoza,cokeisit,gandalf3,skidmark,ashley01,
12345j,
1234567890qaz,sexxxxxx,beagles,lennart,
12345789,pass10,politic,max007,gcheckou,
12345611,tiffy,lightman,mushin,velosiped,brucewayne,gauthie,elena123,greenegg,h2oski,clocker,nitemare,
123321s,megiddo,cassidy1,david13,boywonde,flori,peggy12,pgszt6md,batterie,redlands,scooter6,bckhere,trueno,bailey11,maxwell2,bandana,timoth1,startnow,ducati74,tiern,maxine1,blackmetal,suzyq,balla007,phatfarm,kirsten1,titmouse,benhogan,culito,forbin,chess1,warren1,panman,mickey7,
24lover,dascha,speed2,redlion,andrew10,johnwayn,nike23,chacha1,bendog,bullyboy,goldtree,spookie,tigger99,
1cookie,poutine,cyclone1,woodpony,camaleun,bluesky1,dfadan,eagles20,lovergirl,peepshow,mine1,dima1989,rjdfkmxer,
11111aaaaa,machina,august17,
1hhhhh,
0773417k,
1monster,freaksho,jazzmin,davidw,kurupt,chumly,huggies,sashenka,ccccccc1,bridge1,giggalo,cincinna,pistol1,hello22,david77,lightfoo,lucky6,jimmy12,
261397,lisa12,tabaluga,mysite,belo4ka,greenn,eagle99,punkrawk,salvado,slick123,wichsen,knight99,dummys,fefolico,contrera,kalle1,anna1984,delray,robert99,garena,pretende,racefan,alons,serenada,ludmilla,cnhtkjr,l0swf9gx,hankster,dfktynbyrf,sheep1,john23,cv141ab,kalyani,
944turbo,crystal2,blackfly,zrjdktdf,eus1sue1,mario5,riverplate,harddriv,melissa3,elliott1,sexybitc,cnhfyybr,jimdavis,bollix,beta1,amberlee,skywalk1,natala,
1blood,brattax,shitty1,gb15kv99,ronjon,rothmans,thedoc,joey21,hotboi,firedawg,bimbo38,jibber,aftermat,nomar,
01478963,phishing,domodo,anna13,materia,martha1,budman1,gunblade,exclusiv,sasha1997,anastas,rebecca2,fackyou,kallisti,fuckmyass,norseman,ipswich1,
151500,
1edward,intelinside,darcy1,bcrich,yjdjcnbf,failte,buzzzz,cream1,tatiana1,
7eleven,green8,
153351,
1a2s3d4f5g6h,
154263,milano1,bambi1,bruins77,rugby2,jamal1,bolita,sundaypunch,bubba12,realmadr,vfyxtcnth,iwojima,notlob,black666,valkiria,nexus1,millerti,birthday100,swiss1,appollo,gefest,greeneyes,celebrat,tigerr,slava123,izumrud,bubbabub,legoman,joesmith,katya123,sweetdream,john44,wwwwwww1,oooooo1,socal,lovespor,s5r8ed67s,
258147,heidis,cowboy22,wachovia,michaelb,qwe1234567,i12345,
255225,goldie1,alfa155,
45colt,safeu851,antonova,longtong,
1sparky,gfvznm,busen,hjlbjy,whateva,rocky4,cokeman,joshua3,kekskek1,sirocco,jagman,
123456qwert,phinupi,thomas10,loller,sakur,vika2011,fullred,mariska,azucar,ncstate,glenn74,halima,aleshka,ilovemylife,verlaat,baggie,scoubidou6,phatboy,jbruton,scoop1,barney11,blindman,def456,maximus2,master55,nestea,
11223355,diego123,sexpistols,sniffy,philip1,f12345,prisonbreak,nokia2700,ajnjuhfa,yankees3,colfax,ak470000,mtnman,bdfyeirf,fotball,ichbin,trebla,ilusha,riobravo,beaner1,thoradin,polkaudi,kurosawa,honda123,ladybu,valerik,poltava,saviola,fuckyouguys,
754740g0,anallove,microlab1,juris01,ncc1864,garfild,shania1,qagsud,makarenko,cindy69,lebedev,andrew11,johnnybo,groovy1,booster1,sanders1,tommyb,johnson4,kd189nlcih,hondaman,vlasova,chick1,sokada,sevisgur,bear2327,chacho,sexmania,roma1993,hjcnbckfd,valley1,howdie,tuppence,jimandanne,strike3,y4kuz4,nhfnfnf,tsubasa,
19955991,scabby,quincunx,dima1998,uuuuuu1,logica,skinner1,pinguino,lisa1234,xpressmusic,getfucked,qqqq1,bbbb1,matulino,ulyana,upsman,johnsmith,
123579,co2000,spanner1,todiefor,mangoes,isabel1,
123852,negra,snowdon,nikki123,bronx1,booom,ram2500,chuck123,fireboy,creek1,batman13,princesse,az12345,maksat,
1knight,
28infern,
241455,r7112s,muselman,mets1986,katydid,vlad777,playme,kmfdm1,asssex,
1prince,iop890,bigbroth,mollymoo,waitron,lizottes,
125412,juggler,quinta,
0sister0,zanardi,nata123,heckfyxbr,
22q04w90e,engine2,nikita95,zamira,hammer22,lutscher,carolina1,zz6319,sanman,vfuflfy,buster99,rossco,kourniko,aggarwal,tattoo1,janice1,finger1,
125521,
19911992,shdwlnds,rudenko,vfvfgfgf123,galatea,monkeybu,juhani,premiumcash,classact,devilmay,helpme2,knuddel,hardpack,ramil,perrit,basil1,zombie13,stockcar,tos8217,honeypie,nowayman,alphadog,melon1,talula,
125689,tiribon12,tornike,haribol,telefone,tiger22,sucka,lfytxrf,chicken123,muggins,a23456,b1234567,lytdybr,otter1,pippa,vasilisk,cooking1,helter,
78978,bestboy,viper7,ahmed1,whitewol,mommys,apple5,shazam1,chelsea7,kumiko,masterma,rallye,bushmast,jkz123,entrar,andrew6,nathan01,alaric,tavasz,heimdall,gravy1,jimmy99,cthlwt,powerr,gthtrhtcnjr,canesfan,sasha11,ybrbnf_25,august9,brucie,artichok,arnie1,superdude,tarelka,mickey22,dooper,luners,holeshot,good123,gettysbu,bicho,hammer99,divine5,
1zxcvbn,stronzo,q22222,disne,bmw750il,godhead,hallodu,aerith,nastik,differen,cestmoi,amber69,
5string,pornosta,dirtygirl,ginger123,formel1,scott12,honda200,hotspurs,johnatha,firstone123,lexmark1,msconfig,karlmasc,l123456,
123qweasdzx,baldman,sungod,furka,retsub,
9811020,ryder1,tcglyued,astron,lbvfcbr,minddoc,dirt49,baseball12,tbear,simpl,schuey,artimus,bikman,plat1num,quantex,gotyou,hailey1,justin01,ellada,
8481068,
000002,manimal,dthjybxrf,buck123,dick123,
6969696,nospam,strong1,kodeord,bama12,
123321w,superman123,gladiolus,nintend,
5792076,dreamgirl,spankme1,gautam,arianna1,titti,tetas,cool1234,belladog,importan,
4206969,
87e5nclizry,teufelo7,doller,yfl.irf,quaresma,
3440172,melis,bradle,nnmaster,fast1,iverso,blargh,lucas12,chrisg,iamsam,
123321az,tomjerry,kawika,
2597174,standrew,billyg,muskan,gizmodo2,rz93qpmq,
870621345,sathya,qmezrxg4,januari,marthe,moom4261,cum2me,hkger286,lou1988,suckit1,croaker,klaudia1,
753951456,aidan1,fsunoles,romanenko,abbydog,isthebes,akshay,corgi,fuck666,walkman555,ranger98,scorpian,hardwareid,bluedragon,fastman,
2305822q,iddqdiddqd,
1597532,gopokes,zvfrfcb,w1234567,sputnik1,tr1993,pa$$w0rd,
2i5fdruv,havvoc,
1357913,
1313131,bnm123,cowd00d,flexscan,thesims2,boogiema,bigsexxy,powerstr,ngc4565,joshman,babyboy1,
123jlb,funfunfu,qwe456,honor1,puttana,bobbyj,daniel21,pussy12,shmuck,
1232580,
123578951,maxthedo,hithere1,bond0007,gehenna,nomames,blueone,r1234567,bwana,gatinho,
1011111,torrents,cinta,
123451234,tiger25,money69,edibey,pointman,mmcm19,wales1,caffreys,phaedra,bloodlus,
321ret32,rufuss,tarbit,joanna1,
102030405,stickboy,lotrfotr34,jamshid,mclarenf1,ataman,
99ford,yarrak,logan2,ironlung,pushistik,dragoon1,unclebob,tigereye,pinokio,tylerj,mermaid1,stevie1,jaylen,
888777,ramana,roman777,brandon7,
17711771s,thiago,luigi1,edgar1,brucey,videogam,classi,birder,faramir,twiddle,cubalibre,grizzy,fucky,jjvwd4,august15,idinahui,ranita,nikita1998,
123342,w1w2w3,
78621323,
4cancel,
789963,(null,vassago,jaydog472,
123452,timt42,canada99,
123589,rebenok,htyfnf,
785001,osipov,maks123,neverwinter,love2010,
777222,
67390436,eleanor1,bykemo,aquemini,frogg,roboto,thorny,shipmate,logcabin,
66005918,nokian,gonzos,louisian,
1abcdefg,triathlo,ilovemar,couger,letmeino,supera,runvs,fibonacci,muttly,
58565254,
5thgbqi,vfnehsv,electr,jose12,artemis1,newlove,thd1shr,hawkey,grigoryan,saisha,tosca,redder,lifesux,temple1,bunnyman,thekids,sabbeth,tarzan1,
182838,
158uefas,dell50,
1super,
666222,
47ds8x,jackhamm,mineonly,rfnfhbyf,
048ro,
665259,kristina1,bombero,
52545856,secure1,bigloser,peterk,alex2,
51525354,anarchy1,superx,teenslut,money23,sigmapi,sanfrancisco,acme34,private5,eclips,qwerttrewq,axelle,kokain,hardguy,peter69,jesuschr,dyanna,dude69,sarah69,toyota91,amberr,
45645645,bugmenot,bigted,
44556677,
556644,wwr8x9pu,alphaome,harley13,kolia123,wejrpfpu,revelati,nairda,sodoff,cityboy,pinkpussy,dkalis,miami305,wow12345,triplet,tannenbau,asdfasdf1,darkhors,
527952,retired1,soxfan,nfyz123,
37583867,goddes,
515069,gxlmxbewym,
1warrior,
36925814,dmb2011,topten,karpova,
89876065093rax,naturals,gateway9,cepseoun,turbot,
493949,cock22,italia1,sasafras,gopnik,stalke,
1qazxdr5,wm2006,ace1062,alieva,blue28,aracel,sandia,motoguzz,terri1,emmajane,conej,recoba,alex1995,jerkyboy,cowboy12,arenrone,precisio,
31415927,scsa316,panzer1,studly1,powerhou,bensam,mashoutq,billee,eeyore1,reape,thebeatl,rul3z,montesa,doodle1,cvzefh1gk,
424365,a159753,zimmerma,gumdrop,ashaman,grimreap,icandoit,borodina,branca,dima2009,keywest1,vaders,bubluk,diavolo,assss,goleta,eatass,napster1,
382436,
369741,
5411pimo,lenchik,pikach,gilgamesh,kalimera,singer1,gordon2,rjycnbnewbz,maulwurf,joker13,
2much4u,bond00,alice123,robotec,fuckgirl,zgjybz,redhorse,margaret1,brady1,pumpkin2,chinky,fourplay,
1booger,roisin,
1brandon,sandan,blackheart,cheez,blackfin,cntgfyjdf,mymoney1,
09080706,goodboss,sebring1,rose1,kensingt,bigboner,marcus12,ym3cautj,struppi,thestone,lovebugs,stater,silver99,forest99,qazwsx12345,vasile,longboar,mkonji,huligan,rhfcbdfz,airmail,porn11,
1ooooo,sofun,snake2,msouthwa,dougla,
1iceman,shahrukh,sharona,dragon666,france98,
196800,
196820,ps253535,zjses9evpa,sniper01,design1,konfeta,jack99,drum66,good4you,station2,brucew,regedit,school12,mvtnr765,pub113,fantas,tiburon1,king99,ghjcnjgbpltw,checkito,
308win,
1ladybug,corneliu,svetasveta,
197430,icicle,imaccess,ou81269,jjjdsl,brandon6,bimbo1,smokee,piccolo1,
3611jcmg,children2,cookie2,conor1,darth1,margera,aoi856,paully,ou812345,sklave,eklhigcz,
30624700,amazing1,wahooo,seau55,
1beer,apples2,chulo,dolphin9,heather6,
198206,
198207,hergood,miracle1,njhyflj,
4real,milka,silverfi,fabfive,spring12,ermine,mammy,jumpjet,adilbek,toscana,caustic,hotlove,sammy69,lolita1,byoung,whipme,barney01,mistys,tree1,buster3,kaylin,gfccgjhn,
132333,aishiteru,pangaea,fathead1,smurph,
198701,ryslan,gasto,xexeylhf,anisimov,chevyss,saskatoo,brandy12,tweaker,irish123,music2,denny1,palpatin,outlaw1,lovesuck,woman1,mrpibb,diadora,hfnfneq,poulette,harlock,mclaren1,cooper12,newpass3,bobby12,rfgecnfcerf,alskdjfh,mini14,dukers,raffael,
199103,cleo123,
1234567qwertyu,mossberg,scoopy,dctulf,starline,hjvjxrf,misfits1,rangers2,bilbos,blackhea,pappnase,atwork,purple2,daywalker,summoner,
1jjjjjjj,swansong,chris10,laluna,
12345qqq,charly1,lionsden,money99,silver33,hoghead,bdaddy,
199430,saisg002,nosaints,tirpitz,
1gggggg,jason13,kingss,ernest1,
0cdh0v99ue,pkunzip,arowana,spiri,deskjet1,armine,lances,magic2,thetaxi,
14159265,cacique,
14142135,orange10,richard0,backdraf,
255ooo,humtum,kohsamui,c43dae874d,wrestling1,cbhtym,sorento,megha,pepsiman,qweqwe12,bliss7,mario64,korolev,balls123,schlange,gordit,optiquest,fatdick,fish99,richy,nottoday,dianne1,armyof1,
1234qwerasdfzxcv,bbonds,aekara,lidiya,baddog1,yellow5,funkie,ryan01,greentree,gcheckout,marshal1,liliput,
000000z,rfhbyrf,gtogto43,rumpole,tarado,marcelit,aqwzsxedc,kenshin1,sassydog,system12,belly1,zilla,kissfan,tools1,desember,donsdad,nick11,scorpio6,poopoo1,toto99,steph123,dogfuck,rocket21,thx113,dude12,sanek,sommar,smacky,pimpsta,letmego,k1200rs,lytghjgtnhjdcr,abigale,buddog,deles,baseball9,roofus,carlsbad,hamzah,hereiam,genial,schoolgirlie,yfz450,breads,piesek,washear,chimay,apocalyp,nicole18,gfgf1234,gobulls,dnevnik,wonderwall,beer1234,
1moose,beer69,maryann1,adpass,mike34,birdcage,hottuna,gigant,penquin,praveen,donna123,
123lol
123,thesame,fregat,adidas11,selrahc,pandoras,test3,chasmo,
111222333000,pecos,daniel11,ingersol,shana1,mama12345,cessna15,myhero,
1simpson,nazarenko,cognit,seattle2,irina1,azfpc310,rfycthdf,hardy1,jazmyn,sl1200,hotlanta,jason22,kumar123,sujatha,fsd9shtyu,highjump,changer,entertai,kolding,mrbig,sayuri,eagle21,qwertzu,jorge1,
0101dd,bigdong,ou812a,sinatra1,htcnjhfy,oleg123,videoman,pbyfblf,tv612se,bigbird1,kenaidog,gunite,silverma,ardmore,
123123qq,hotbot,cascada,cbr600f4,harakiri,chico123,boscos,aaron12,glasgow1,kmn5hc,lanfear,
1light,liveoak,fizika,ybrjkftdyf,surfside,intermilan,multipas,redcard,
72chevy,balata,coolio1,schroede,kanat,testerer,camion,kierra,hejmeddig,antonio2,tornados,isidor,pinkey,n8skfswa,ginny1,houndog,
1bill,chris25,hastur,
1marine,greatdan,french1,hatman,
123qqq,z1z2z3z4,kicker1,katiedog,usopen,smith22,mrmagoo,
1234512i,assa123,
7seven7,monster7,june12,bpvtyf,
149521,guenter,alex1985,voronina,mbkugegs,zaqwsxcderfv,rusty5,mystic1,master0,abcdef12,jndfkb,r4zpm3,cheesey,skripka,blackwhite,sharon69,dro8smwq,lektor,techman,boognish,deidara,heckfyf,quietkey,authcode,monkey4,jayboy,pinkerto,merengue,chulita,bushwick,turambar,kittykit,joseph2,dad123,kristo,pepote,scheiss,hambone1,bigballa,restaura,tequil,
111luzer,euro2000,motox,denhaag,chelsi,flaco1,preeti,lillo,
1001sin,passw,august24,beatoff,
555555d,willis1,kissthis,qwertyz,rvgmw2gl,iloveboobies,timati,kimbo,msinfo,dewdrop,sdbaker,fcc5nky2,messiah1,catboy,small1,chode,beastie1,star77,hvidovre,short1,xavie,dagobah,alex1987,papageno,dakota2,toonami,fuerte,jesus33,lawina,souppp,dirtybir,chrish,naturist,channel1,peyote,flibble,gutentag,lactate,killem,zucchero,robinho,ditka,grumpy1,avr7000,boxxer,topcop,berry1,mypass1,beverly1,deuce1,
9638527410,cthuttdf,kzkmrf,lovethem,band1t,cantona1,purple11,apples123,wonderwo,
123a456,fuzzie,lucky99,dancer2,hoddling,rockcity,winner12,spooty,mansfiel,aimee1,
287hf71h,rudiger,culebra,god123,agent86,daniel0,bunky1,notmine,
9ball,goofus,puffy1,xyh28af4,kulikov,bankshot,vurdf5i2,kevinm,ercole,sexygirls,razvan,october7,goater,lollie,raissa,thefrog,mdmaiwa3,mascha,jesussaves,union1,anthony9,crossroa,brother2,areyuke,rodman91,toonsex,dopeman,gericom,vaz2115,cockgobbler,
12356789,
12345699,signatur,alexandra1,coolwhip,erwin1,awdrgyjilp,pens66,ghjrjgtyrj,linkinpark,emergenc,psych0,blood666,bootmort,wetworks,piroca,johnd,iamthe1,supermario,homer69,flameon,image1,bebert,fylhtq1,annapoli,apple11,hockey22,
10048,indahouse,mykiss,
1penguin,markp,misha123,foghat,march11,hank1,santorin,defcon4,tampico,vbnhjafy,robert22,bunkie,athlon64,sex777,nextdoor,koskesh,lolnoob,seemnemaailm,black23,march15,yeehaa,chiqui,teagan,siegheil,monday2,cornhusk,mamusia,chilis,sthgrtst,feldspar,scottm,pugdog,rfghjy,micmac,gtnhjdyf,terminato,
1jackson,kakosja,bogomol,
123321aa,rkbvtyrj,tresor,tigertig,fuckitall,vbkkbjy,caramon,zxc12,balin,dildo1,soccer09,avata,abby123,cheetah1,marquise,jennyc,hondavfr,tinti,anna1985,dennis2,jorel,mayflowe,icema,hal2000,nikkis,bigmouth,greenery,nurjan,leonov,liberty7,fafnir,larionov,sat321321,byteme1,nausicaa,hjvfynbrf,everto,zebra123,sergio1,titone,wisdom1,kahala,
104328q,marcin1,salima,pcitra,
1nnnnn,nalini,galvesto,neeraj,rick1,squeeky,agnes1,jitterbu,agshar,maria12,
0112358,traxxas,stivone,prophet1,bananza,sommer1,canoneos,hotfun,redsox11,
1bigmac,dctdjkjl,legion1,everclea,valenok,black9,danny001,roxie1,
1theman,mudslide,july16,lechef,chula,glamis,emilka,canbeef,ioanna,cactus1,rockshox,im2cool,ninja9,thvfrjdf,june28,milo17,missyou,micky1,nbibyf,nokiaa,goldi,mattias,fuckthem,asdzxc123,ironfist,junior01,nesta,crazzy,killswit,hygge,zantac,kazama,melvin1,allston,maandag,hiccup,prototyp,specboot,dwl610,hello6,
159456,baldhead,redwhite,calpoly,whitetail,agile1,cousteau,matt01,aust1n,malcolmx,gjlfhjr,semperf1,ferarri,a1b2c3d,vangelis,mkvdari,bettis36,andzia,comand,tazzman,morgaine,pepluv,anna1990,inandout,anetka,anna1997,wallpape,moonrake,huntress,hogtie,cameron7,sammy7,singe11,clownboy,newzeala,wilmar,safrane,rebeld,poopi,granat,hammertime,nermin,
11251422,xyzzy1,bogeys,jkmxbr,fktrcfyl,
11223311,nfyrbcn,
11223300,powerpla,zoedog,ybrbnbyf,zaphod42,tarawa,jxfhjdfirf,dude1234,g5wks9,goobe,czekolada,blackros,amaranth,medical1,thereds,julija,nhecsyfujkjdt,promopas,buddy4,marmalad,weihnachten,tronic,letici,passthief,
67mustan,ds7zamnw,morri,w8woord,cheops,pinarell,sonofsam,av473dv,sf161pn,
5c92v5h6,purple13,tango123,plant1,
1baby,xufrgemw,fitta,
1rangers,spawns,kenned,taratata,
19944991,
11111118,coronas,
4ebouux8,roadrash,corvette1,dfyjdf846,marley12,qwaszxerdfcv,
68stang,
67stang,racin,ellehcim,sofiko,nicetry,seabass1,jazzman1,zaqwsx1,laz2937,uuuuuuu1,vlad123,rafale,j1234567,
223366,nnnnnn1,
226622,junkfood,asilas,cer980,daddymac,persepho,neelam,
00700,shithappens,
255555,qwertyy,xbox36,
19755791,qweasd1,bearcub,jerryb,a1b1c1,polkaudio,basketball1,
456rty,
1loveyou,marcus2,mama1961,palace1,transcend,shuriken,sudhakar,teenlove,anabelle,matrix99,pogoda,notme,bartend,jordana,nihaoma,ataris,littlegi,ferraris,redarmy,giallo,fastdraw,accountbloc,peludo,pornostar,pinoyako,cindee,glassjaw,dameon,johnnyd,finnland,saudade,losbravo,slonko,toplay,smalltit,nicksfun,stockhol,penpal,caraj,divedeep,cannibus,poppydog,pass88,viktory,walhalla,arisia,lucozade,goldenbo,tigers11,caball,ownage123,tonna,handy1,johny,capital5,faith2,stillher,brandan,pooky1,antananarivu,hotdick,
1justin,lacrimos,goathead,bobrik,cgtwbfkbcn,maywood,kamilek,gbplf123,gulnar,beanhead,vfvjyn,shash,viper69,ttttttt1,hondacr,kanako,muffer,dukies,justin123,agapov58,mushka,bad11bad,muleman,jojo123,andreika,makeit,vanill,boomers,bigals,merlin11,quacker,aurelien,spartak1922,ligeti,diana2,lawnmowe,fortune1,awesom,rockyy,anna1994,oinker,love88,eastbay,ab55484,poker0,ozzy666,papasmurf,antihero,photogra,ktm250,painkill,jegr2d2,p3orion,canman,dextur,qwest123,samboy,yomismo,sierra01,herber,vfrcbvvfrcbv,gloria1,llama1,pie123,bobbyjoe,buzzkill,skidrow,grabber,phili,javier1,
9379992q,geroin,oleg1994,sovereig,rollover,zaq12qaz,battery1,killer13,alina123,groucho1,mario12,peter22,butterbean,elise1,lucycat,neo123,ferdi,golfer01,randie,gfhfyjbr,ventura1,chelsea3,pinoy,mtgox,yrrim7,shoeman,mirko,ffggyyo,
65mustan,ufdibyjd,john55,suckfuck,greatgoo,fvfnjhb,mmmnnn,love20,
1bullshi,sucesso,easy1234,robin123,rockets1,diamondb,wolfee,nothing0,joker777,glasnost,richar1,guille,sayan,koresh,goshawk,alexx,batman21,a123456b,hball,
243122,rockandr,coolfool,isaia,mary1,yjdbrjdf,lolopc,cleocat,cimbo,lovehina,
8vfhnf,passking,bonapart,diamond2,bigboys,kreator,ctvtyjdf,sassy123,shellac,table54781,nedkelly,philbert,sux2bu,nomis,sparky99,python1,littlebear,numpty,silmaril,sweeet,jamesw,cbufhtnf,peggysue,wodahs,luvsex,wizardry,venom123,love4you,bama1,samat,reviewpass,ned467,cjkjdtq,mamula,gijoe,amersham,devochka,redhill,gisel,preggo,polock,cando,rewster,greenlantern,panasonik,dave1234,mikeee,
1carlos,miledi,darkness1,p0o9i8u7y6,kathryn1,happyguy,dcp500,assmaster,sambuka,sailormo,antonio3,logans,
18254288,nokiax2,qwertzuiop,zavilov,totti,xenon1,edward11,targa1,something1,tony_t,q1w2e3r4t5y6u7i8o9p0,
02551670,vladimir1,monkeybutt,greenda,neel21,craiger,saveliy,dei008,honda450,fylhtq95,spike2,fjnq8915,passwordstandard,vova12345,talonesi,richi,gigemags,pierre1,westin,trevoga,dorothee,bastogne,
25563o,brandon3,truegrit,krimml,iamgreat,servis,a112233,paulinka,azimuth,corperfmonsy,
358hkyp,homerun1,dogbert1,eatmyass,cottage1,savina,baseball7,bigtex,gimmesum,asdcxz,lennon1,a159357,
1bastard,
413276191q,pngfilt,pchealth,netsnip,bodiroga,
1matt,webtvs,ravers,adapters,siddis,mashamasha,coffee2,myhoney,anna1982,marcia1,fairchil,maniek,iloveluc,batmonh,wildon,bowie1,netnwlnk,fancy1,tom204,olga1976,vfif123,queens1,ajax01,lovess,mockba,icam4usb,triada,odinthor,rstlne,exciter,sundog,anchorat,girls69,nfnmzyrf,soloma,gti16v,shadowman,ottom,rataros,tonchin,vishal,chicken0,pornlo,christiaan,volante,likesit,mariupol,runfast,gbpltw123,missys,villevalo,kbpjxrf,ghibli,calla,cessna172,kinglear,dell11,swift1,walera,
1cricket,pussy5,turbo911,tucke,maprchem56458,rosehill,thekiwi1,ygfxbkgt,mandarinka,
98xa29,magnit,cjfrf,paswoord,grandam1,shenmue,leedsuni,hatrick,zagadka,angeldog,michaell,dance123,koichi,bballs,
29palms,xanth,
228822,ppppppp1,
1kkkkk,
1lllll,mynewbots,spurss,madmax1,
224455,city1,mmmmmmm1,nnnnnnn1,biedronka,thebeatles,elessar,f14tomcat,jordan18,bobo123,ayi000,tedbear,
86chevyx,user123,bobolink,maktub,elmer1,flyfishi,franco1,gandalf0,traxdata,david21,enlighte,dmitrij,beckys,
1giants,flippe,
12345678w,jossie,rugbyman,snowcat,rapeme,peanut11,gemeni,udders,techn9ne,armani1,chappie,war123,vakantie,maddawg,sewanee,jake5253,tautt1,anthony5,letterma,jimbo2,kmdtyjr,hextall,jessica6,amiga500,hotcunt,phoenix9,veronda,saqartvelo,scubas,sixer3,williamj,nightfal,shihan,melnikova,kosssss,handily,killer77,jhrl0821,march17,rushman,
6gcf636i,metoyou,irina123,mine11,primus1,formatters,matthew5,infotech,gangster1,jordan45,moose69,kompas,motoxxx,greatwhi,cobra12,kirpich,weezer1,hello23,montse,tracy123,connecte,cjymrf,hemingwa,azreal,gundam00,mobila,boxman,slayers1,ravshan,june26,fktrcfylhjd,bermuda1,tylerd,maersk,qazwsx11,eybdthcbntn,ash123,camelo,kat123,backd00r,cheyenne1,
1king,jerkin,tnt123,trabant,warhammer40k,rambos,punto,home77,pedrito,
1frank,brille,guitarman,george13,rakas,tgbxtcrbq,flute1,bananas1,lovezp1314,thespot,postie,buster69,sexytime,twistys,zacharia,sportage,toccata,denver7,terry123,bogdanova,devil69,higgins1,whatluck,pele10,kkk666,jeffery1,
1qayxsw2,riptide1,chevy11,munchy,lazer1,hooker1,ghfgjh,vergesse,playgrou,
4077mash,gusev,humpin,oneputt,hydepark,monster9,tiger8,tangsoo,guy123,hesoyam1,uhtqneyu,thanku,lomond,ortezza,kronik,geetha,rabbit66,killas,qazxswe,alabaste,
1234567890qwerty,capone1,andrea12,geral,beatbox,slutfuck,booyaka,jasmine7,ostsee,maestro1,beatme,tracey1,buster123,donaldduck,ironfish,happy6,konnichi,gintonic,momoney1,dugan1,today2,enkidu,destiny2,trim7gun,katuha,fractals,morganstanley,polkadot,gotime,prince11,
204060,fifa2010,bobbyt,seemee,amanda10,airbrush,bigtitty,heidie,layla1,cotton1,
5speed,fyfnjkmtdyf,flynavy,joxury8f,meeko,akuma,dudley1,flyboy1,moondog1,trotters,mariami,signin,chinna,legs11,pussy4,
1s1h1e1f1,felici,optimus1,iluvu,marlins1,gavaec,balance1,glock40,london01,kokot,southwes,comfort1,sammy11,rockbottom,brianc,litebeer,homero,chopsuey,greenlan,charit,freecell,hampster,smalldog,viper12,blofeld,
1234567890987654321,realsex,romann,cartman2,cjdthitycndj,nelly1,bmw528,zwezda,masterba,jeep99,turtl,america2,sunburst,sanyco,auntjudy,
125wm,blue10,qwsazx,cartma,toby12,robbob,red222,ilovecock,losfix16,
1explore,helge,vaz2114,whynotme,baba123,mugen,
1qazwsxedc,albertjr,
0101198,sextime,supras,nicolas2,wantsex,pussy6,checkm8,winam,
24gordon,misterme,curlew,gbljhfcs,medtech,franzi,butthea,voivod,blackhat,egoiste,pjkeirf,maddog69,pakalolo,hockey4,igor1234,rouges,snowhite,homefree,sexfreak,acer12,dsmith,blessyou,
199410,vfrcbvjd,falco02,belinda1,yaglasph,april21,groundho,jasmin1,nevergiveup,elvir,gborv526,c00kie,emma01,awesome2,larina,mike12345,maximu,anupam,bltynbabrfwbz,tanushka,sukkel,raptor22,josh12,schalke04,cosmodog,fuckyou8,busybee,
198800,bijoux,frame1,blackmor,giveit,issmall,bear13,
123-
123,bladez,littlegirl,ultra123,fletch1,flashnet,loploprock,rkelly,
12step,lukas1,littlewhore,cuntfinger,stinkyfinger,laurenc,
198020,n7td4bjl,jackie69,camel123,ben1234,
1gateway,adelheid,fatmike,thuglove,zzaaqq,chivas1,
4815162342q,mamadou,nadano,james22,benwin,andrea99,rjirf,michou,abkbgg,d50gnn,aaazzz,a123654,blankman,booboo11,medicus,bigbone,
197200,justine1,bendix,morphius,njhvjp,
44mag,zsecyus56,goodbye1,nokiadermo,a333444,waratsea,
4rzp8ab7,fevral,brillian,kirbys,minim,erathia,grazia,zxcvb1234,dukey,snaggle,poppi,hymen,
1video,dune2000,jpthjdf,cvbn123,zcxfcnkbdfz,astonv,ginnie,
316271,engine3,pr1ncess,
64chevy,glass1,laotzu,hollyy,comicbooks,assasins,nuaddn9561,scottsda,hfcnfvfy,accobra,
7777777z,werty123,metalhead,romanson,redsand,
365214,shalo,arsenii,
1989cc,sissi,duramax,
382563,petera,
414243,mamapap,jollymon,field1,fatgirl,janets,trompete,matchbox20,rambo2,nepenthe,
441232,qwertyuiop10,bozo123,phezc419hv,romantika,lifestyl,pengui,decembre,demon6,panther6,
444888,scanman,ghjcnjabkz,pachanga,buzzword,indianer,spiderman3,tony12,startre,frog1,fyutk,
483422,tupacshakur,albert12,
1drummer,bmw328i,green17,aerdna,invisibl,summer13,calimer,mustaine,lgnu9d,morefun,hesoyam123,escort1,scrapland,stargat,barabbas,dead13,
545645,mexicali,sierr,gfhfpbn,gonchar,moonstafa,searock,counte,foster1,jayhawk1,floren,maremma,nastya2010,softball1,adaptec,halloo,barrabas,zxcasd123,hunny,mariana1,kafedra,freedom0,green420,vlad1234,method7,
665566,tooting,hallo12,davinchi,conducto,medias,
666444,invernes,madhatter,
456asd,
12345678i,
687887,le33px,spring00,help123,bellybut,billy5,vitalik1,river123,gorila,bendis,power666,
747200,footslav,acehigh,qazxswedc123,q1a1z1,richard9,peterburg,tabletop,gavrilov,
123qwe1,kolosov,fredrau,run4fun,
789056,jkbvgbflf,chitra,
87654321q,steve22,wideopen,access88,surfe,tdfyutkbjy,impossib,kevin69,
880888,cantina,
887766,wxcvb,dontforg,qwer1209,asslicke,mamma123,indig,arkasha,scrapp,morelia,vehxbr,jones2,scratch1,cody11,cassie12,gerbera,dontgotm,underhil,maks2010,hollywood1,hanibal,elena2010,jason11,
1010321,stewar,elaman,fireplug,goodby,sacrific,babyphat,bobcat12,bruce123,
1233215,tony45,tiburo,love15,bmw750,wallstreet,
2h0t4me,
1346795,lamerz,munkee,
134679q,granvill,
1512198,armastus,aiden1,pipeutvj,g1234567,angeleyes,usmc1,
102030q,putangina,brandnew,shadowfax,eagles12,
1falcon,brianw,lokomoti,
2022958,scooper,pegas,jabroni1,
2121212,buffal,siffredi,wewiz,twotone,rosebudd,nightwis,carpet1,mickey2,
2525252,sleddog,red333,jamesm,
2797349,jeff12,onizuka,felixxxx,rf6666,fine1,ohlala,forplay,chicago5,muncho,scooby11,ptichka,johnnn,
19851985p,dogphil3650,totenkopf,monitor2,macross7,
3816778,dudder,semaj1,bounder,racerx1,
5556633,
7085506,ofclr278,brody1,
7506751,nantucke,hedj2n4q,drew1,aessedai,trekbike,pussykat,samatron,imani,
9124852,wiley1,dukenukem,iampurehaha2,
9556035,obvious1,mccool24,apache64,kravchenko,justforf,basura,jamese,s0ccer,safado,darksta,surfer69,damian1,gjpbnbd,gunny1,wolley,sananton,zxcvbn123456,odt4p6sv8,sergei1,modem1,mansikka,zzzz1,rifraf,dima777,mary69,looking4,donttell,red100,ninjutsu,uaeuaeman,bigbri,brasco,queenas8151,demetri,angel007,bubbl,kolort,conny,antonia1,avtoritet,kaka22,kailayu,sassy2,wrongway,chevy3,
1nascar,patriots1,chrisrey,mike99,sexy22,chkdsk,sd3utre7,padawan,a6pihd,doming,mesohorny,tamada,donatello,emma22,eather,susan69,pinky123,stud69,fatbitch,pilsbury,thc420,lovepuss,
1creativ,golf1234,hurryup,
1honda,huskerdu,marino1,gowron,girl1,fucktoy,gtnhjpfdjlcr,dkjfghdk,pinkfl,loreli,
7777777s,donkeykong,rockytop,staples1,sone4ka,xxxjay,flywheel,toppdogg,bigbubba,aaa123456,
2letmein,shavkat,paule,dlanor,adamas,
0147852,aassaa,dixon1,bmw328,mother12,ilikepussy,holly2,tsmith,excaliber,fhutynbyf,nicole3,tulipan,emanue,flyvholm,currahee,godsgift,antonioj,torito,dinky1,sanna,yfcnzvjz,june14,anime123,
123321456654,hanswurst,bandman,hello101,xxxyyy,chevy69,technica,tagada,arnol,v00d00,lilone,filles,drumandbass,dinamit,a1234a,eatmeat,elway07,inout,james6,dawid1,thewolf,diapason,yodaddy,qscwdv,fuckit1,liljoe,sloeber,simbacat,sascha1,qwe1234,
1badger,prisca,angel17,gravedig,jakeyboy,longboard,truskawka,golfer11,pyramid7,highspee,pistola,theriver,hammer69,
1packers,dannyd,alfonse,qwertgfdsa,
11119999,basket1,ghjtrn,saralee,
12inches,paolo1,zse4xdr5,taproot,sophieh6,grizzlie,hockey69,danang,biggums,hotbitch,
5alive,beloved1,bluewave,dimon95,koketka,multiscan,littleb,leghorn,poker2,delite,skyfir,bigjake,persona1,amberdog,hannah12,derren,ziffle,
1sarah,
1assword,sparky01,seymur,tomtom1,
123321qw,goskins,soccer19,luvbekki,bumhole,
2balls,
1muffin,borodin,monkey9,yfeiybrb,
1alex,betmen,freder,nigger123,azizbek,gjkzrjdf,lilmike,
1bigdadd,
1rock,taganrog,snappy1,andrey1,kolonka,bunyan,gomango,vivia,clarkkent,satur,gaudeamus,mantaray,
1month,whitehea,fargus,andrew99,ray123,redhawks,liza2009,qw12345,den12345,vfhnsyjdf,
147258369a,mazepa,newyorke,
1arsenal,hondas2000,demona,fordgt,steve12,birthday2,
12457896,dickster,edcwsxqaz,sahalin,pantyman,skinny1,hubertus,cumshot1,chiro,kappaman,mark3434,canada12,lichking,bonkers1,ivan1985,sybase,valmet,doors1,deedlit,kyjelly,bdfysx,ford11,throatfuck,backwood,fylhsq,lalit,boss429,kotova,bricky,steveh,joshua19,kissa,imladris,star1234,lubimka,partyman,crazyd,tobias1,ilike69,imhome,whome,fourstar,scanner1,ujhjl312,anatoli,
85bears,jimbo69,
5678ytr,potapova,nokia7070,sunday1,kalleank,
1996gta,refinnej,july1,molodec,nothanks,enigm,
12play,sugardog,nhfkbdfkb,larousse,cannon1,
144444,qazxcdew,stimorol,jhereg,spawn7,
143000,fearme,hambur,merlin21,dobie,is3yeusc,partner1,dekal,varsha,
478jfszk,flavi,hippo1,
9hmlpyjd,july21,
7imjfstw,lexxus,truelov,nokia5200,carlos6,anais,mudbone,anahit,taylorc,tashas,larkspur,animal2000,nibiru,jan123,miyvarxar,deflep,dolore,communit,ifoptfcor,laura2,anadrol,mamaliga,mitzi1,blue92,april15,matveev,kajlas,wowlook1,
1flowers,shadow14,alucard1,
1golf,bantha,scotlan,singapur,mark13,manchester1,telus01,superdav,jackoff1,madnes,bullnuts,world123,clitty,palmer1,david10,spider10,sargsyan,rattlers,david4,windows2,sony12,visigoth,qqqaaa,penfloor,cabledog,camilla1,natasha123,eagleman,softcore,bobrov,dietmar,divad,sss123,d1234567,tlbyjhju,
1q1q1q1,paraiso,dav123,lfiekmrf,drachen,lzhan16889,tplate,gfghbrf,casio1,
123boots1,
123test,sys64738,heavymetal,andiamo,meduza,soarer,coco12,negrita,amigas,heavymet,bespin,
1asdfghj,wharfrat,wetsex,tight1,janus1,sword123,ladeda,dragon98,austin2,atep1,jungle1,
12345abcd,lexus300,pheonix1,alex1974,
123qw123,
137955,bigtim,shadow88,igor1994,goodjob,arzen,champ123,
121ebay,changeme1,brooksie,frogman1,buldozer,morrowin,achim,trish1,lasse,festiva,bubbaman,scottb,kramit,august22,tyson123,passsword,oompah,al123456,fucking1,green45,noodle1,looking1,ashlynn,al1716,stang50,coco11,greese,bob111,brennan1,jasonj,
1cherry,
1q2345,
1xxxxxxx,fifa2011,brondby,zachar1,satyam,easy1,magic7,
1rainbow,cheezit,
1eeeeeee,ashley123,assass1,amanda123,jerbear,
1bbbbbb,azerty12,
15975391,
654321z,twinturb,onlyone1,denis1988,
6846kg3r,jumbos,pennydog,dandelion,haileris,epervier,snoopy69,afrodite,oldpussy,green55,poopypan,verymuch,katyusha,recon7,mine69,tangos,contro,blowme2,jade1,skydive1,fiveiron,dimo4ka,bokser,stargirl,fordfocus,tigers2,platina,baseball11,raque,pimper,jawbreak,buster88,walter34,chucko,penchair,horizon1,thecure1,scc1975,adrianna1,kareta,duke12,krille,dumbfuck,cunt1,aldebaran,laverda,harumi,knopfler,pongo1,pfhbyf,dogman1,rossigno,
1hardon,scarlets,nuggets1,ibelieve,akinfeev,xfhkbr,athene,falcon69,happie,billly,nitsua,fiocco,qwerty09,gizmo2,slava2,
125690,doggy123,craigs,vader123,silkeborg,
124365,peterm,
123978,krakatoa,
123699,
123592,kgvebmqy,pensacol,d1d2d3,snowstor,goldenboy,gfg65h7,ev700,church1,orange11,g0dz1ll4,chester3,acheron,cynthi,hotshot1,jesuschris,motdepass,zymurgy,one2one,fietsbel,harryp,wisper,pookster,nn527hp,dolla,milkmaid,rustyboy,terrell1,epsilon1,lillian1,dale3,crhbgrf,maxsim,selecta,mamada,fatman1,ufkjxrf,shinchan,fuckuall,women1,
000008,bossss,greta1,rbhjxrf,mamasboy,purple69,felicidade,sexy21,cathay,hunglow,splatt,kahless,shopping1,
1gandalf,themis,delta7,moon69,blue24,parliame,mamma1,miyuki,
2500hd,jackmeof,razer,rocker1,juvis123,noremac,boing747,
9z5ve9rrcz,icewater,titania,alley1,moparman,christo1,oliver2,vinicius,tigerfan,chevyy,joshua99,doda99,matrixx,ekbnrf,jackfrost,viper01,kasia,cnfhsq,triton1,ssbt8ae2,rugby8,ramman,
1lucky,barabash,ghtlfntkm,junaid,apeshit,enfant,kenpo1,shit12,
007000,marge1,shadow10,qwerty789,richard8,vbitkm,lostboys,jesus4me,richard4,hifive,kolawole,damilola,prisma,paranoya,prince2,lisaann,happyness,cardss,methodma,supercop,a8kd47v5,gamgee,polly123,irene1,number8,hoyasaxa,
1digital,matthew0,dclxvi,lisica,roy123,
2468013579,sparda,queball,vaffanculo,pass1wor,repmvbx,
999666333,freedom8,botanik,
777555333,marcos1,lubimaya,flash2,einstei,
08080,
123456789j,
159951159,
159357123,carrot1,alina1995,sanjos,dilara,mustang67,wisteria,jhnjgtl12,
98766789,darksun,arxangel,
87062134,creativ1,malyshka,fuckthemall,barsic,rocksta,
2big4u,
5nizza,genesis2,romance1,ofcourse,
1horse,latenite,cubana,sactown,
789456123a,milliona,
61808861,
57699434,imperia,bubba11,yellow3,change12,
55495746,flappy,jimbo123,
19372846,
19380018,cutlass1,craig123,klepto,beagle1,solus,
51502112,pasha1,
19822891,
46466452,
19855891,petshop,nikolaevna,
119966,nokia6131,evenpar,hoosier1,contrasena,jawa350,gonzo123,mouse2,
115511,eetfuk,gfhfvgfvgfv,
1crystal,sofaking,coyote1,kwiatuszek,fhrflbq,valeria1,anthro,
0123654789,alltheway,zoltar,maasikas,wildchil,fredonia,earlgrey,gtnhjczy,matrix123,solid1,slavko,
12monkeys,fjdksl,inter1,nokia6500,
59382113kevinp,spuddy,cachero,coorslit,password!,kiba1z,karizma,vova1994,chicony,english1,bondra12,
1rocket,hunden,jimbob1,zpflhjn1,th0mas,deuce22,meatwad,fatfree,congas,sambora,cooper2,janne,clancy1,stonie,busta,kamaz,speedy2,jasmine3,fahayek,arsenal0,beerss,trixie1,boobs69,luansantana,toadman,control2,ewing33,maxcat,mama1964,diamond4,tabaco,joshua0,piper2,music101,guybrush,reynald,pincher,katiebug,starrs,pimphard,frontosa,alex97,cootie,clockwor,belluno,skyeseth,booty69,chaparra,boochie,green4,bobcat1,havok,saraann,pipeman,aekdb,jumpshot,wintermu,chaika,
1chester,rjnjatq,emokid,reset1,regal1,j0shua,
134679a,asmodey,sarahh,zapidoo,ciccione,sosexy,beckham23,hornets1,alex1971,delerium,manageme,connor11,
1rabbit,sane4ek,caseyboy,cbljhjdf,redsox20,tttttt99,haustool,ander,pantera6,passwd1,journey1,
9988776655,blue135,writerspace,xiaoyua123,justice2,niagra,cassis,scorpius,bpgjldsgjldthnf,gamemaster,bloody1,retrac,stabbin,toybox,fight1,ytpyf.,glasha,va2001,taylor11,shameles,ladylove,
10078,karmann,rodeos,eintritt,lanesra,tobasco,jnrhjqcz,navyman,pablit,leshka,jessica3,
123vika,alena1,platinu,ilford,storm7,undernet,sasha777,
1legend,anna2002,kanmax1994,porkpie,thunder0,gundog,pallina,easypass,duck1,supermom,roach1,twincam,
14028,tiziano,qwerty32,
123654789a,evropa,shampoo1,yfxfkmybr,cubby1,tsunami1,fktrcttdf,yasacrac,
17098,happyhap,bullrun,rodder,oaktown,holde,isbest,taylor9,reeper,hammer11,julias,rolltide1,compaq123,fourx4,subzero1,hockey9,
7mary3,busines,ybrbnjcbr,wagoneer,danniash,portishead,digitex,alex1981,david11,infidel,
1snoopy,free30,jaden,tonto1,redcar27,footie,moskwa,thomas21,hammer12,burzum,cosmo123,
50000,burltree,
54343,
54354,vwpassat,jack5225,cougars1,burlpony,blackhorse,alegna,petert,katemoss,ram123,nels0n,ferrina,angel77,cstock,
1christi,dave55,abc123a,alex1975,av626ss,flipoff,folgore,max1998,science1,si711ne,yams7,wifey1,sveiks,cabin1,volodia,ox3ford,cartagen,platini,picture1,sparkle1,tiedomi,service321,wooody,christi1,gnasher,brunob,hammie,iraffert,bot2010,dtcyeirf,
1234567890p,cooper11,alcoholi,savchenko,adam01,chelsea5,niewiem,icebear,lllooottt,ilovedick,sweetpus,money8,cookie13,rfnthbyf1988,booboo2,angus123,blockbus,david9,chica1,nazaret,samsung9,smile4u,daystar,skinnass,john10,thegirl,sexybeas,wasdwasd1,sigge1,
1qa2ws3ed4rf5tg,czarny,ripley1,chris5,ashley19,anitha,pokerman,prevert,trfnthby,tony69,georgia2,stoppedb,qwertyuiop12345,miniclip,franky1,durdom,cabbages,
1234567890o,delta5,liudmila,nhfycajhvths,court1,josiew,abcd1,doghead,diman,masiania,songline,boogle,triston,deepika,sexy4me,grapple,spacebal,ebonee,winter0,smokewee,nargiza,dragonla,sassys,andy2000,menards,yoshio,massive1,suckmy1k,passat99,sexybo,nastya1996,isdead,stratcat,hokuto,infix,pidoras,daffyduck,cumhard,baldeagl,kerberos,yardman,shibainu,guitare,cqub6553,tommyy,bk.irf,bigfoo,hecto,july27,james4,biggus,esbjerg,isgod,
1irish,phenmarr,jamaic,roma1990,diamond0,yjdbrjd,girls4me,tampa1,kabuto,vaduz,hanse,spieng,dianochka,csm101,lorna1,ogoshi,plhy6hql,
2wsx4rfv,cameron0,adebayo,oleg1996,sharipov,bouboule,hollister1,frogss,yeababy,kablam,adelante,memem,howies,thering,cecilia1,onetwo12,ojp123456,jordan9,msorcloledbr,neveraga,evh5150,redwin,
1august,canno,
1mercede,moody1,mudbug,chessmas,tiikeri,stickdaddy77,alex15,kvartira,
7654321a,lollol123,qwaszxedc,algore,solana,vfhbyfvfhbyf,blue72,misha1111,smoke20,junior13,mogli,threee,shannon2,fuckmylife,kevinh,saransk,karenw,isolde,sekirarr,orion123,thomas0,debra1,laketaho,alondra,curiva,jazz1234,
1tigers,jambos,lickme2,suomi,gandalf7,
028526,zygote,brett123,br1ttany,supafly,
159000,kingrat,luton1,cool-ca,bocman,thomasd,skiller,katter,mama777,chanc,tomass,
1rachel,oldno7,rfpfyjdf,bigkev,yelrah,primas,osito,kipper1,msvcr71,bigboy11,thesun,noskcaj,chicc,sonja1,lozinka,mobile1,
1vader,ummagumma,waves1,punter12,tubgtn,server1,irina1991,magic69,dak001,pandemonium,dead1,berlingo,cherrypi,
1montana,lohotron,chicklet,asdfgh123456,stepside,ikmvw103,icebaby,trillium,
1sucks,ukrnet,glock9,ab12345,thepower,robert8,thugstools,hockey13,buffon,livefree,sexpics,dessar,ja0000,rosenrot,james10,
1fish,svoloch,mykitty,muffin11,evbukb,shwing,artem1992,andrey1992,sheldon1,passpage,nikita99,fubar123,vannasx,eight888,marial,max2010,express2,violentj,
2ykn5ccf,spartan11,brenda69,jackiech,abagail,robin2,grass1,andy76,bell1,taison,superme,vika1995,xtr451,fred20,
89032073168,denis1984,
2000jeep,weetabix,
199020,daxter,tevion,panther8,h9iymxmc,bigrig,kalambur,tsalagi,
12213443,racecar02,jeffrey4,nataxa,bigsam,purgator,acuracl,troutbum,potsmoke,jimmyz,manutd1,nytimes,pureevil,bearss,cool22,dragonage,nodnarb,dbrbyu,
4seasons,freude,elric1,werule,hockey14,
12758698,corkie,yeahright,blademan,tafkap,clave,liziko,hofner,jeffhardy,nurich,runne,stanisla,lucy1,monk3y,forzaroma,eric99,bonaire,blackwoo,fengshui,
1qaz0okm,newmoney,pimpin69,
07078,anonymer,laptop1,cherry12,ace111,salsa1,wilbur1,doom12,diablo23,jgtxzbhr,under1,honda01,breadfan,megan2,juancarlos,stratus1,ackbar,love5683,happytim,lambert1,cbljhtyrj,komarov,spam69,nfhtkrf,brownn,sarmat,ifiksr,spike69,hoangen,angelz,economia,tanzen,avogadro,
1vampire,spanners,mazdarx,queequeg,oriana,hershil,sulaco,joseph11,
8seconds,aquariu,cumberla,heather9,anthony8,burton12,crystal0,maria3,qazwsxc,snow123,notgood,
198520,raindog,heehaw,consulta,dasein,miller01,cthulhu1,dukenuke,iubire,baytown,hatebree,
198505,sistem,lena12,welcome01,maraca,middleto,sindhu,mitsou,phoenix5,vovan,donaldo,dylandog,domovoy,lauren12,byrjuybnj,
123llll,stillers,sanchin,tulpan,smallvill,
1mmmmm,patti1,folgers,mike31,colts18,
123456rrr,njkmrjz,phoenix0,biene,ironcity,kasperok,password22,fitnes,matthew6,spotligh,bujhm123,tommycat,hazel5,guitar11,
145678,vfcmrf,compass1,willee,
1barney,jack2000,littleminge,shemp,derrek,xxx12345,littlefuck,spuds1,karolinka,camneely,qwertyu123,
142500,brandon00,munson15,falcon3,passssap,z3cn2erv,goahead,baggio10,
141592,denali1,
37kazoo,copernic,
123456789asd,orange88,bravada,rush211,
197700,pablo123,uptheass,samsam1,demoman,mattylad10,heydude,mister2,werken,
13467985,marantz,a22222,f1f2f3f4,fm12mn12,gerasimova,burrito1,sony1,glenny,baldeagle,rmfidd,fenomen,verbati,forgetme,
5element,wer138,chanel1,ooicu812,
10293847qp,minicooper,chispa,myturn,deisel,vthrehbq,boredboi4u,filatova,anabe,poiuyt1,barmalei,yyyy1,fourkids,naumenko,bangbros,pornclub,okaykk,euclid90,warrior3,kornet,palevo,patatina,gocart,antanta,jed1054,clock1,
111111w,dewars,mankind1,peugeot406,liten,tahira,howlin,naumov,rmracing,corone,cunthole,passit,rock69,jaguarxj,bumsen,
197101,sweet2,
197010,whitecat,sawadee,money100,yfhrjnbrb,andyboy,
9085603566,trace1,fagget,robot1,angel20,
6yhn7ujm,specialinsta,kareena,newblood,chingada,boobies2,bugger1,squad51,
133andre,call06,ashes1,ilovelucy,success2,kotton,cavalla,philou,deebee,theband,nine09,artefact,
196100,kkkkkkk1,nikolay9,onelov,basia,emilyann,sadman,fkrjujkbr,teamomuch,david777,padrino,money21,firdaus,orion3,chevy01,albatro,erdfcv,
2legit,sarah7,torock,kevinn,holio,soloy,enron714,starfleet,qwer11,neverman,doctorwh,lucy11,dino12,trinity7,seatleon,o123456,pimpman,
1asdfgh,snakebit,chancho,prorok,bleacher,ramire,darkseed,warhorse,michael123,
1spanky,
1hotdog,
34erdfcv,n0th1ng,dimanche,repmvbyf,michaeljackson,login1,icequeen,toshiro,sperme,racer2,veget,birthday26,daniel9,lbvekmrf,charlus,bryan123,wspanic,schreibe,
1andonly,dgoins,kewell,apollo12,egypt1,fernie,tiger21,aa123456789,blowj,spandau,bisquit,
12345678d,deadmau5,fredie,
311420,happyface,samant,gruppa,filmstar,andrew17,bakesale,sexy01,justlook,cbarkley,paul11,bloodred,rideme,birdbath,nfkbcvfy,jaxson,sirius1,kristof,virgos,nimrod1,hardc0re,killerbee,
1abcdef,pitcher1,justonce,vlada,dakota99,vespucci,wpass,outside1,puertori,rfvbkf,teamlosi,vgfun2,porol777,empire11,
20091989q,jasong,webuivalidat,escrima,lakers08,trigger2,addpass,
342500,mongini,dfhtybr,horndogg,palermo1,
136900,babyblu,alla98,dasha2010,jkelly,kernow,yfnecz,rockhopper,toeman,tlaloc,silver77,dave01,kevinr,
1234567887654321,
135642,me2you,
8096468644q,remmus,spider7,jamesa,jilly,samba1,drongo,
770129ji,supercat,juntas,tema1234,esthe,
1234567892000,drew11,qazqaz123,beegees,blome,rattrace,howhigh,tallboy,rufus2,sunny2,sou812,miller12,indiana7,irnbru,patch123,letmeon,welcome5,nabisco,
9hotpoin,hpvteb,lovinit,stormin,assmonke,trill,atlanti,money1234,cubsfan,mello1,stars2,ueptkm,agate,dannym88,lover123,wordz,worldnet,julemand,chaser1,s12345678,pissword,cinemax,woodchuc,point1,hotchkis,packers2,bananana,kalender,
420666,penguin8,awo8rx3wa8t,hoppie,metlife,ilovemyfamily,weihnachtsbau,pudding1,luckystr,scully1,fatboy1,amizade,dedham,jahbless,blaat,surrende,****er,
1panties,bigasses,ghjuhfvbcn,asshole123,dfktyrb,likeme,nickers,plastik,hektor,deeman,muchacha,cerebro,santana5,testdrive,dracula1,canalc,l1750sq,savannah1,murena,
1inside,pokemon00,
1iiiiiii,jordan20,sexual1,mailliw,calipso,
014702580369,
1zzzzzz,
1jjjjjj,break1,
15253545,yomama1,katinka,kevin11,
1ffffff,martijn,sslazio,daniel5,porno2,nosmas,leolion,jscript,
15975312,pundai,kelli1,kkkddd,obafgkm,marmaris,lilmama,london123,rfhfnt,elgordo,talk87,daniel7,thesims3,
444111,bishkek,afrika2002,toby22,
1speedy,daishi,
2children,afroman,qqqqwwww,oldskool,hawai,v55555,syndicat,pukimak,fanatik,tiger5,parker01,bri5kev6,timexx,wartburg,love55,ecosse,yelena03,madinina,highway1,uhfdbwfgf,karuna,buhjvfybz,wallie,
46and2,khalif,europ,qaz123wsx456,bobbybob,wolfone,falloutboy,manning18,scuba10,schnuff,ihateyou1,lindam,sara123,popcor,fallengun,divine1,montblanc,qwerty8,rooney10,roadrage,bertie1,latinus,lexusis,rhfvfnjhcr,opelgt,hitme,agatka,
1yamaha,dmfxhkju,imaloser,michell1,sb211st,silver22,lockedup,andrew9,monica01,sassycat,dsobwick,tinroof,ctrhtnyj,bultaco,rhfcyjzhcr,aaaassss,
14ss88,joanne1,momanddad,ahjkjdf,yelhsa,zipdrive,telescop,
500600,
1sexsex,facial1,motaro,
511647,stoner1,temujin,elephant1,greatman,honey69,kociak,ukqmwhj6,altezza,cumquat,zippos,kontiki,
123max,altec1,bibigon,tontos,qazsew,nopasaran,militar,supratt,oglala,kobayash,agathe,yawetag,dogs1,cfiekmrf,megan123,jamesdea,porosenok,tiger23,berger1,hello11,seemann,stunner1,walker2,imissu,jabari,minfd,lollol12,hjvfy,
1-oct,stjohns,
2278124q,
123456789qwer,alex1983,glowworm,chicho,mallards,bluedevil,explorer1,
543211,casita,
1time,lachesis,alex1982,airborn1,dubesor,changa,lizzie1,captaink,socool,bidule,march23,
1861brr,k.ljxrf,watchout,fotze,
1brian,keksa2,aaaa1122,matrim,providian,privado,dreame,merry1,aregdone,davidt,nounour,twenty2,play2win,artcast2,zontik,
552255,shit1,sluggy,
552861,dr8350,brooze,alpha69,thunder6,kamelia2011,caleb123,mmxxmm,jamesh,lfybkjd,
125267,
125000,
124536,bliss1,dddsss,indonesi,bob69,
123888,tgkbxfgy,gerar,themack,hijodeputa,good4now,ddd123,clk430,kalash,tolkien1,
132forever,blackb,whatis,s1s2s3s4,lolkin09,yamahar,
48n25rcc,djtiesto,
111222333444555,bigbull,blade55,coolbree,kelse,ichwill,yamaha12,sakic,bebeto,katoom,donke,sahar,wahine,
645202,god666,berni,starwood,june15,sonoio,time123,llbean,deadsoul,lazarev,cdtnf,ksyusha,madarchod,technik,jamesy,
4speed,tenorsax,legshow,yoshi1,chrisbl,
44e3ebda,trafalga,heather7,serafima,favorite4,havefun1,wolve,
55555r,james13,nosredna,bodean,jlettier,borracho,mickael,marinus,brutu,sweet666,kiborg,rollrock,jackson6,macross1,ousooner,
9085084232,takeme,
123qwaszx,firedept,vfrfhjd,jackfros,
123456789000,briane,cookie11,baby22,bobby18,gromova,systemofadown,martin01,silver01,pimaou,darthmaul,hijinx,commo,chech,skyman,sunse,
2vrd6,vladimirovna,uthvfybz,nicole01,kreker,bobo1,v123456789,erxtgb,meetoo,drakcap,vfvf12,misiek1,butane,network2,flyers99,riogrand,jennyk,e12345,spinne,avalon11,lovejone,studen,maint,porsche2,qwerty100,chamberl,bluedog1,sungam,just4u,andrew23,summer22,ludic,musiclover,aguil,beardog1,libertin,pippo1,joselit,patito,bigberth,digler,sydnee,jockstra,poopo,jas4an,nastya123,profil,fuesse,default1,titan2,mendoz,kpcofgs,anamika,brillo021,bomberman,guitar69,latching,
69pussy,blues2,phelge,ninja123,m7n56xo,qwertasd,alex1976,cunningh,estrela,gladbach,marillion,mike2000,
258046,bypop,muffinman,kd5396b,zeratul,djkxbwf,john77,sigma2,
1linda,selur,reppep,quartz1,teen1,freeclus,spook1,kudos4ever,clitring,sexiness,blumpkin,macbook,tileman,centra,escaflowne,pentable,shant,grappa,zverev,
1albert,lommerse,coffee11,
777123,polkilo,muppet1,alex74,lkjhgfdsazx,olesica,april14,ba25547,souths,jasmi,arashi,smile2,
2401pedro,mybabe,alex111,quintain,pimp1,tdeir8b2,makenna,
122333444455555,%e2%
82%ac,tootsie1,pass111,zaqxsw123,gkfdfybt,cnfnbcnbrf,usermane,iloveyou12,hard69,osasuna,firegod,arvind,babochka,kiss123,cookie123,julie123,kamakazi,dylan2,
223355,tanguy,nbhtqa,tigger13,tubby1,makavel,asdflkj,sambo1,mononoke,mickeys,gayguy,win123,green33,wcrfxtvgbjy,bigsmall,
1newlife,clove,babyfac,bigwaves,mama1970,shockwav,
1friday,bassey,yarddog,codered1,victory7,bigrick,kracker,gulfstre,chris200,sunbanna,bertuzzi,begemotik,kuolema,pondus,destinee,
123456789zz,abiodun,flopsy,amadeusptfcor,geronim,yggdrasi,contex,daniel6,suck1,adonis1,moorea,el345612,f22raptor,moviebuf,raunchy,
6043dkf,zxcvbnm123456789,eric11,deadmoin,ratiug,nosliw,fannies,danno,
888889,blank1,mikey2,gullit,thor99,mamiya,ollieb,thoth,dagger1,websolutionssu,bonker,prive,
1346798520,
03038,q1234q,mommy2,contax,zhipo,gwendoli,gothic1,
1234562000,lovedick,gibso,digital2,space199,b26354,
987654123,golive,serious1,pivkoo,better1,
824358553,
794613258,nata1980,logout,fishpond,buttss,squidly,good4me,redsox19,jhonny,zse45rdx,matrixxx,honey12,ramina,
213546879,motzart,fall99,newspape,killit,gimpy,photowiz,olesja,thebus,marco123,
147852963,bedbug,
147369258,hellbound,gjgjxrf,
123987456,lovehurt,five55,hammer01,
1234554321a,alina2011,peppino,ang238,questor,
112358132,alina1994,alina1998,money77,bobjones,aigerim,cressida,madalena,
420smoke,tinchair,raven13,mooser,mauric,lovebu,adidas69,krypton1,
1111112,loveline,divin,voshod,michaelm,cocotte,gbkbuhbv,
76689295,kellyj,rhonda1,sweetu70,steamforums,geeque,nothere,
124c41,quixotic,steam181,
1169900,rfcgthcrbq,rfvbkm,sexstuff,
1231230,djctvm,rockstar1,fulhamfc,bhecbr,rfntyf,quiksilv,
56836803,jedimaster,pangit,gfhjkm777,tocool,
1237654,stella12,
55378008,
19216811,potte,fender12,mortalkombat,ball1,nudegirl,palace22,rattrap,debeers,lickpussy,jimmy6,not4u2c,wert12,bigjuggs,sadomaso,
1357924,
312mas,laser123,arminia,branford,coastie,mrmojo,
19801982,scott11,banaan123,ingres,
300zxtt,hooters6,sweeties,
19821983,
19831985,
19833891,sinnfein,welcome4,winner69,killerman,tachyon,tigre1,nymets1,kangol,martinet,sooty1,
19921993,
789qwe,harsingh,
1597535,thecount,phantom3,
36985214,lukas123,
117711,pakistan1,madmax11,willow01,
19932916,fucker12,flhrci,opelagila,theword,ashley24,tigger3,crazyj,rapide,deadfish,allana,
31359092,sasha1993,sanders2,discman,zaq!
2wsx,boilerma,mickey69,jamesg,babybo,jackson9,orion7,alina2010,indien,breeze1,atease,warspite,bazongaz,
1celtic,asguard,mygal,fitzgera,
1secret,duke33,cyklone,dipascuc,potapov,
1escobar2,c0l0rad0,kki177hk,
1little,macondo,victoriya,peter7,red666,winston6,kl?benhavn,muneca,jackme,jennan,happylife,am4h39d8nh,bodybuil,
201980,dutchie,biggame,lapo4ka,rauchen,black10,flaquit,water12,
31021364,command2,lainth88,mazdamx5,typhon,colin123,rcfhlfc,qwaszx11,g0away,ramir,diesirae,hacked1,cessna1,woodfish,enigma2,pqnr67w5,odgez8j3,grisou,hiheels,
5gtgiaxm,
2580258,ohotnik,transits,quackers,serjik,makenzie,mdmgatew,bryana,superman12,melly,lokit,thegod,slickone,fun4all,netpass,penhorse,
1cooper,nsync,asdasd22,otherside,honeydog,herbie1,chiphi,proghouse,l0nd0n,shagg,select1,frost1996,casper123,countr,magichat,greatzyo,jyothi,
3bears,thefly,nikkita,fgjcnjk,nitros,hornys,san123,lightspe,maslova,kimber1,newyork2,spammm,mikejone,pumpk1n,bruiser1,bacons,prelude9,boodie,dragon4,kenneth2,love98,power5,yodude,pumba,thinline,blue30,sexxybj,
2dumb2live,matt21,forsale,
1carolin,innova,ilikeporn,rbgtkjd,a1s2d3f,wu9942,ruffus,blackboo,qwerty999,draco1,marcelin,hideki,gendalf,trevon,saraha,cartmen,yjhbkmcr,time2go,fanclub,ladder1,chinni,
6942987,united99,lindac,quadra,paolit,mainstre,beano002,lincoln7,bellend,anomie,
8520456,bangalor,goodstuff,chernov,stepashka,gulla,mike007,frasse,harley03,omnislash,
8538622,maryjan,sasha2011,gineok,
8807031,hornier,gopinath,princesit,bdr529,godown,bosslady,hakaone,
1qwe2,madman1,joshua11,lovegame,bayamon,jedi01,stupid12,sport123,aaa666,tony44,collect1,charliem,chimaira,cx18ka,trrim777,chuckd,thedream,redsox99,goodmorning,delta88,iloveyou11,newlife2,figvam,chicago3,jasonk,
12qwer,
9875321,lestat1,satcom,conditio,capri50,sayaka,
9933162,trunks1,chinga,snooch,alexand1,findus,poekie,cfdbyf,kevind,mike1969,fire13,leftie,bigtuna,chinnu,silence1,celos1,blackdra,alex24,gfgfif,
2boobs,happy8,enolagay,sataniv1993,turner1,dylans,peugeo,sasha1994,hoppel,conno,moonshot,santa234,meister1,
008800,hanako,tree123,qweras,gfitymrf,reggie31,august29,supert,joshua10,akademia,gbljhfc,zorro123,nathalia,redsox12,hfpdjl,mishmash,nokiae51,nyyankees,tu190022,strongbo,none1,not4u2no,katie2,popart,harlequi,santan,michal1,
1therock,screwu,csyekmrf,olemiss1,tyrese,hoople,sunshin1,cucina,starbase,topshelf,fostex,california1,castle1,symantec,pippolo,babare,turntabl,
1angela,moo123,ipvteb,gogolf,alex88,cycle1,maxie1,phase2,selhurst,furnitur,samfox,fromvermine,shaq34,gators96,captain2,delonge,tomatoe,bisous,zxcvbnma,glacius,pineapple1,cannelle,ganibal,mko09ijn,paraklast1974,hobbes12,petty43,artema,junior8,mylover,
1234567890d,fatal1ty,prostreet,peruan,
10020,nadya,caution1,marocas,chanel5,summer08,metal123,
111lox,scrapy,thatguy,eddie666,washingto,yannis,minnesota_hp,lucky4,playboy6,naumova,azzurro,patat,dale33,pa55wd,speedster,zemanova,saraht,newto,tony22,qscesz,arkady,
1oliver,death6,vkfwx046,antiflag,stangs,jzf7qf2e,brianp,fozzy,cody123,startrek1,yoda123,murciela,trabajo,lvbnhbtdf,canario,fliper,adroit,henry5,goducks,papirus,alskdj,soccer6,
88mike,gogetter,tanelorn,donking,marky1,leedsu,badmofo,al1916,wetdog,akmaral,pallet,april24,killer00,nesterova,rugby123,coffee12,browseui,ralliart,paigow,calgary1,armyman,vtldtltd,frodo2,frxtgb,iambigal,benno,jaytee,
2hot4you,askar,bigtee,brentwoo,palladin,eddie2,al1916w,horosho,entrada,ilovetits,venture1,dragon19,jayde,chuvak,jamesl,fzr600,brandon8,vjqvbh,snowbal,snatch1,bg6njokf,pudder,karolin,candoo,pfuflrf,satchel1,manteca,khongbiet,critter1,partridg,skyclad,bigdon,ginger69,brave1,anthony4,spinnake,chinadol,passout,cochino,nipples1,
15058,lopesk,sixflags,lloo999,parkhead,breakdance,cia123,fidodido,yuitre12,fooey,artem1995,gayathri,medin,nondriversig,l12345,bravo7,happy13,kazuya,camster,alex1998,luckyy,zipcode,dizzle,boating1,opusone,newpassw,movies23,kamikazi,zapato,bart316,cowboys0,corsair1,kingshit,hotdog12,rolyat,h200svrm,qwerty4,boofer,rhtyltkm,chris999,vaz21074,simferopol,pitboss,love3,britania,tanyshka,brause,
123qwerty123,abeille,moscow1,ilkaev,manut,process1,inetcfg,dragon05,fortknox,castill,rynner,mrmike,koalas,jeebus,stockpor,longman,juanpabl,caiman,roleplay,jeremi,
26058,prodojo,
002200,magical1,black5,bvlgari,doogie1,cbhtqa,mahina,a1s2d3f4g5h6,jblpro,usmc01,bismilah,guitar01,april9,santana1,
1234aa,monkey14,sorokin,evan1,doohan,animalsex,pfqxtyjr,dimitry,catchme,chello,silverch,glock45,dogleg,litespee,nirvana9,peyton18,alydar,warhamer,iluvme,sig229,minotavr,lobzik,jack23,bushwack,onlin,football123,joshua5,federov,winter2,bigmax,fufnfrhbcnb,hfpldfnhb,
1dakota,f56307,chipmonk,
4nick8,praline,vbhjh123,king11,
22tango,gemini12,street1,
77879,doodlebu,homyak,
165432,chuluthu,trixi,karlito,salom,reisen,cdtnkzxjr,pookie11,tremendo,shazaam,welcome0,
00000ty,peewee51,pizzle,gilead,bydand,sarvar,upskirt,legends1,freeway1,teenfuck,ranger9,darkfire,dfymrf,hunt0802,justme1,buffy1ma,
1harry,
671fsa75yt,burrfoot,budster,pa437tu,jimmyp,alina2006,malacon,charlize,elway1,free12,summer02,gadina,manara,gomer1,
1cassie,sanja,kisulya,money3,pujols,ford50,midiland,turga,orange6,demetriu,freakboy,orosie1,radio123,open12,vfufpby,mustek,chris33,animes,meiling,nthtvjr,jasmine9,gfdkjd,oligarh,marimar,chicago9,.kzirf,bugssgub,samuraix,jackie01,pimpjuic,macdad,cagiva,vernost,willyboy,fynjyjdf,tabby1,privet123,torres9,retype,blueroom,raven11,q12we3,alex1989,bringiton,ridered,kareltje,ow8jtcs8t,ciccia,goniners,countryb,
24688642,covingto,
24861793,beyblade,vikin,badboyz,wlafiga,walstib,mirand,needajob,chloes,balaton,kbpfdtnf,freyja,bond9007,gabriel12,stormbri,hollage,love4eve,fenomeno,darknite,dragstar,kyle123,milfhunter,ma123123123,samia,ghislain,enrique1,ferien12,xjy6721,natalie2,reglisse,wilson2,wesker,rosebud7,amazon1,robertr,roykeane,xtcnth,mamatata,crazyc,mikie,savanah,blowjob69,jackie2,forty1,
1coffee,fhbyjxrf,bubbah,goteam,hackedit,risky1,logoff,h397pnvr,buck13,robert23,bronc,st123st,godflesh,pornog,iamking,cisco69,septiembr,dale38,zhongguo,tibbar,panther9,buffa1,bigjohn1,mypuppy,vehvfycr,april16,shippo,fire1234,green15,q123123,gungadin,steveg,olivier1,chinaski,magnoli,faithy,storm12,toadfrog,paul99,
78791,august20,automati,squirtle,cheezy,positano,burbon,nunya,llebpmac,kimmi,turtle2,alan123,prokuror,violin1,durex,pussygal,visionar,trick1,chicken6,
29024,plowboy,rfybreks,imbue,sasha13,wagner1,vitalogy,cfymrf,thepro,
26028,gorbunov,dvdcom,letmein5,duder,fastfun,pronin,libra1,conner1,harley20,stinker1,
20068,
20038,amitech,syoung,dugway,
18068,welcome7,jimmypag,anastaci,kafka1,pfhfnecnhf,catsss,campus100,shamal,nacho1,fire12,vikings2,brasil1,rangerover,mohamma,peresvet,
14058,cocomo,aliona,
14038,qwaser,vikes,cbkmdf,skyblue1,ou81234,goodlove,dfkmltvfh,
108888,roamer,pinky2,static1,zxcv4321,barmen,rock22,shelby2,morgans,
1junior,pasword1,logjam,fifty5,nhfrnjhbcn,chaddy,philli,nemesis2,ingenier,djkrjd,ranger3,aikman8,knothead,daddy69,love007,vsythb,ford350,tiger00,renrut,owen11,energy12,march14,alena123,robert19,carisma,orange22,murphy11,podarok,prozak,kfgeirf,wolf13,lydia1,shazza,parasha,akimov,tobbie,pilote,heather4,baster,leones,gznfxjr,megama,
987654321g,bullgod,boxster1,minkey,wombats,vergil,colegiata,lincol,smoothe,pride1,carwash1,latrell,bowling3,fylhtq123,pickwick,eider,bubblebox,bunnies1,loquit,slipper1,nutsac,purina,xtutdfhf,plokiju,
1qazxs,uhjpysq,zxcvbasdfg,enjoy1,
1pumpkin,phantom7,mama22,swordsma,wonderbr,dogdays,milker,u23456,silvan,dfkthbr,slagelse,yeahman,twothree,boston11,wolf100,dannyg,troll1,fynjy123,ghbcnfd,bftest,ballsdeep,bobbyorr,alphasig,cccdemo,fire123,norwest,claire2,august10,lth1108,problemas,sapito,alex06,
1rusty,maccom,goirish1,ohyes,bxdumb,nabila,boobear1,rabbit69,princip,alexsander,travail,chantal1,dogggy,greenpea,diablo69,alex2009,bergen09,petticoa,classe,ceilidh,vlad2011,kamakiri,lucidity,qaz321,chileno,cexfhf,
99ranger,mcitra,estoppel,volvos60,carter80,webpass,temp12,touareg,fcgbhby,bubba8,sunitha,
200190ru,bitch2,shadow23,iluvit,nicole0,ruben1,nikki69,butttt,shocker1,souschef,lopotok01,kantot,corsano,cfnfyf,riverat,makalu,swapna,all4u9,cdtnkfy,ntktgepbr,ronaldo99,thomasj,bmw540i,chrisw,boomba,open321,z1x2c3v4b5n6m7,gaviota,iceman44,frosya,chris100,chris24,cosette,clearwat,micael,boogyman,pussy9,camus1,chumpy,heccrbq,konoplya,chester8,scooter5,ghjgfufylf,giotto,koolkat,zero000,bonita1,ckflrbq,j1964,mandog,
18n28n24a,renob,head1,shergar,ringo123,tanita,sex4free,johnny12,halberd,reddevils,biolog,dillinge,fatb0y,c00per,hyperlit,wallace2,spears1,vitamine,buheirf,sloboda,alkash,mooman,marion1,arsenal7,sunder,nokia5610,edifier,pippone,fyfnjkmtdbx,fujimo,pepsi12,kulikova,bolat,duetto,daimon,maddog01,timoshka,ezmoney,desdemon,chesters,aiden,hugues,patrick5,aikman08,robert4,roenick,nyranger,writer1,
36169544,foxmulder,
118801,kutter,shashank,jamjar,
118811,
119955,aspirina,dinkus,
1sailor,nalgene,
19891959,snarf,allie1,cracky,resipsa,
45678912,kemerovo,
19841989,netware1,alhimik,
19801984,nicole123,
19761977,
51501984,malaka1,montella,peachfuz,jethro1,cypress1,henkie,holdon,esmith,
55443322,
1friend,quique,bandicoot,statistika,great123,death13,ucht36,master4,
67899876,bobsmith,nikko1,jr1234,hillary1,
78978978,rsturbo,lzlzdfcz,bloodlust,shadow00,skagen,bambina,yummies,
88887777,
91328378,matthew4,itdoes,
98256518,
102938475,alina2002,
123123789,fubared,dannys,
123456321,nikifor,suck69,newmexico,scubaman,rhbcnb,fifnfy,puffdadd,
159357852,dtheyxbr,theman22,
212009164,prohor,shirle,nji90okm,newmedia,goose5,roma1995,letssee,iceman11,aksana,wirenut,pimpdady,
1212312121,tamplier,pelican1,domodedovo,
1928374655,fiction6,duckpond,ybrecz,thwack,onetwo34,gunsmith,murphydo,fallout1,spectre1,jabberwo,jgjesq,turbo6,bobo12,redryder,blackpus,elena1971,danilova,antoin,bobo1234,bobob,bobbobbo,dean1,
222222a,jesusgod,matt23,musical1,darkmage,loppol,werrew,josepha,rebel12,toshka,gadfly,hawkwood,alina12,dnomyar,sexaddict,dangit,cool23,yocrack,archimed,farouk,nhfkzkz,lindalou,
111zzzzz,ghjatccjh,wethepeople,m123456789,wowsers,kbkbxrf,bulldog5,m_roesel,sissinit,yamoon6,
123ewqasd,dangel,miruvor79,kaytee,falcon7,bandit11,dotnet,dannii,arsenal9,miatamx5,
1trouble,strip4me,dogpile,sexyred1,rjdfktdf,google10,shortman,crystal7,awesome123,cowdog,haruka,birthday28,jitter,diabolik,boomer12,dknight,bluewate,hockey123,crm0624,blueboys,willy123,jumpup,google2,cobra777,llabesab,vicelord,hopper1,gerryber,remmah,j10e5d4,qqqqqqw,agusti,fre_ak8yj,nahlik,redrobin,scott3,epson1,dumpy,bundao,aniolek,hola123,jergens,itsasecret,maxsam,bluelight,mountai1,bongwater,
1london,pepper14,freeuse,dereks,qweqw,fordgt40,rfhfdfy,raider12,hunnybun,compac,splicer,megamon,tuffgong,gymnast1,butter11,modaddy,wapbbs_1,dandelio,soccer77,ghjnbdjcnjzybt,
123xyi2,fishead,x002tp00,whodaman,
555aaa,oussama,brunodog,technici,pmtgjnbl,qcxdw8ry,schweden,redsox3,throbber,collecto,japan10,dbm123dm,hellhoun,tech1,deadzone,kahlan,wolf123,dethklok,xzsawq,bigguy1,cybrthc,chandle,buck01,qq123123,secreta,williams1,c32649135,delta12,flash33,
123joker,spacejam,polopo,holycrap,daman1,tummybed,financia,nusrat,euroline,magicone,jimkirk,ameritec,daniel26,sevenn,topazz,kingpins,dima1991,macdog,spencer5,oi812,geoffre,music11,baffle,
123569,usagi,cassiope,polla,lilcrowe,thecakeisalie,vbhjndjhtw,vthokies,oldmans,sophie01,ghoster,penny2,
129834,locutus1,meesha,magik,jerry69,daddysgirl,irondesk,andrey12,jasmine123,vepsrfyn,likesdick,
1accord,jetboat,grafix,tomuch,showit,protozoa,mosias98,taburetka,blaze420,esenin,anal69,zhv84kv,puissant,charles0,aishwarya,babylon6,bitter1,lenina,raleigh1,lechat,access01,kamilka,fynjy,sparkplu,daisy3112,choppe,zootsuit,
1234567j,rubyrose,gorilla9,nightshade,alternativa,cghfdjxybr,snuggles1,
10121v,vova1992,leonardo1,dave2,matthewd,vfhfnbr,
1986mets,nobull,bacall,mexican1,juanjo,mafia1,boomer22,soylent,edwards1,jordan10,blackwid,alex86,gemini13,lunar2,dctvcjcfnm,malaki,plugger,eagles11,snafu2,
1shelly,cintaku,hannah22,tbird1,maks5843,irish88,homer22,amarok,fktrcfylhjdf,lincoln2,acess,gre69kik,need4speed,hightech,core2duo,blunt1,ublhjgjybrf,dragon33,
1autopas,autopas1,wwww1,
15935746,daniel20,
2500aa,massim,
1ggggggg,
96ford,hardcor1,cobra5,blackdragon,vovan_lt,orochimaru,hjlbntkb,qwertyuiop12,tallen,paradoks,frozenfish,ghjuhfvvbcn,gerri1,nuggett,camilit,doright,trans1,serena1,catch2,bkmyeh,fireston,afhvfwtdn,purple3,figure8,fuckya,scamp1,laranja,ontheoutside,louis123,yellow7,moonwalk,mercury2,tolkein,raide,amenra,a13579,dranreb,
5150vh,harish,tracksta,sexking,ozzmosis,katiee,alomar,matrix19,headroom,jahlove,ringding,apollo8,
132546,
132613,
12345672000,saretta,
135798,
136666,thomas7,
136913,onetwothree,hockey33,calida,nefertit,bitwise,tailhook,boop4,kfgecbr,bujhmbujhm,metal69,thedark,meteoro,felicia1,house12,tinuviel,istina,vaz2105,pimp13,toolfan,nina1,tuesday2,maxmotives,lgkp500,locksley,treech,darling1,kurama,aminka,ramin,redhed,dazzler,jager1,stpiliot,cardman,rfvtym,cheeser,
14314314,paramoun,samcat,plumpy,stiffie,vsajyjr,panatha,qqq777,car12345,
098poi,asdzx,keegan1,furelise,kalifornia,vbhjckfd,beast123,zcfvfzkexifz,harry5,
1birdie,
96328i,escola,extra330,henry12,gfhfyjqz,
14u2nv,max1234,templar1,
1dave,
02588520,catrin,pangolin,marhaba,latin1,amorcito,dave22,escape1,advance1,yasuhiro,grepw,meetme,orange01,ernes,erdna,zsergn,nautica1,justinb,soundwav,miasma,greg78,nadine1,sexmad,lovebaby,promo1,excel1,babys,dragonma,camry1,sonnenschein,farooq,wazzkaprivet,magal,katinas,elvis99,redsox24,rooney1,chiefy,peggys,aliev,pilsung,mudhen,dontdoit,dennis12,supercal,energia,ballsout,funone,claudiu,brown2,amoco,dabl1125,philos,gjdtkbntkm,servette,
13571113,whizzer,nollie,
13467982,upiter,
12string,bluejay1,silkie,william4,kosta1,
143333,connor12,sustanon,
06068,corporat,ssnake,laurita,king10,tahoes,arsenal123,sapato,charless,jeanmarc,levent,algerie,marine21,jettas,winsome,dctvgbplf,
1701ab,xxxp455w0rd5,lllllll1,ooooooo1,monalis,koufax32,anastasya,debugger,sarita2,jason69,ufkxjyjr,gjlcnfdf,
1jerry,daniel10,balinor,sexkitten,death2,qwertasdfgzxcvb,s9te949f,vegeta1,sysman,maxxam,dimabilan,mooose,ilovetit,june23,illest,doesit,mamou,abby12,longjump,transalp,moderato,littleguy,magritte,dilnoza,hawaiiguy,winbig,nemiroff,kokaine,admira,myemail,dream2,browneyes,destiny7,dragonss,suckme1,asa123,andranik,suckem,fleshbot,dandie,timmys,scitra,timdog,hasbeen,guesss,smellyfe,arachne,deutschl,harley88,birthday27,nobody1,papasmur,home1,jonass,bunia3,epatb1,embalm,vfvekmrf,apacer,
12345656,estreet,weihnachtsbaum,mrwhite,admin12,kristie1,kelebek,yoda69,socken,tima123,bayern1,fktrcfylth,tamiya,
99strenght,andy01,denis2011,
19delta,stokecit,aotearoa,stalker2,nicnac,conrad1,popey,agusta,bowl36,
1bigfish,mossyoak,
1stunner,getinnow,jessejames,gkfnjy,drako,
1nissan,egor123,hotness,
1hawaii,zxc123456,cantstop,
1peaches,madlen,west1234,jeter1,markis,judit,attack1,artemi,silver69,
153246,crazy2,green9,yoshimi,
1vette,chief123,jasper2,
1sierra,twentyon,drstrang,aspirant,yannic,jenna123,bongtoke,slurpy,
1sugar,civic97,rusty21,shineon,james19,anna12345,wonderwoman,
1kevin,karol1,kanabis,wert21,fktif6115,evil1,kakaha,
54gv768,
826248s,tyrone1,
1winston,sugar2,falcon01,adelya,mopar440,zasxcd,leecher,kinkysex,mercede1,travka,
11234567,rebon,geekboy".split(","),
45720 english_wikipedia:"the,of,and,in,was,is,for,as,on,with,by,he,at,from,his,an,were,are,which,doc,https,also,or,has,had,first,one,their,its,after,new,who,they,two,her,she,been,other,when,time,during,there,into,school,more,may,years,over,only,year,most,would,world,city,some,where,between,later,three,state,such,then,national,used,made,known,under,many,university,united,while,part,season,team,these,american,than,film,second,born,south,became,states,war,through,being,including,both,before,north,high,however,people,family,early,history,album,area,them,series,against,until,since,district,county,name,work,life,group,music,following,number,company,several,four,called,played,released,career,league,game,government,house,each,based,day,same,won,use,station,club,international,town,located,population,general,college,east,found,age,march,end,september,began,home,public,church,line,june,river,member,system,place,century,band,july,york,january,october,song,august,best,former,british,party,named,held,village,show,local,november,took,service,december,built,another,major,within,along,members,five,single,due,although,small,old,left,final,large,include,building,served,president,received,games,death,february,main,third,set,children,own,order,species,park,law,air,published,road,died,book,men,women,army,often,according,education,central,country,division,english,top,included,development,french,community,among,water,play,side,list,times,near,late,form,original,different,center,power,led,students,german,moved,court,six,land,council,island,u.s.,record,million,research,art,established,award,street,military,television,given,region,support,western,production,non,political,point,cup,period,business,title,started,various,election,using,england,role,produced,become,program,works,field,total,office,class,written,association,radio,union,level,championship,director,few,force,created,department,founded,services,married,though,per,n't,site,open,act,short,society,version,royal,present,northern,worked,professional,full,returned,joined,story,france,european,currently,language,social,california,india,days,design,st.,further,round,australia,wrote,san,project,control,southern,railway,board,popular,continued,free,battle,considered,video,common,position,living,half,playing,recorded,red,post,described,average,records,special,modern,appeared,announced,areas,rock,release,elected,others,example,term,opened,similar,formed,route,census,current,schools,originally,lake,developed,race,himself,forces,addition,information,upon,province,match,event,songs,result,events,win,eastern,track,lead,teams,science,human,construction,minister,germany,awards,available,throughout,training,style,body,museum,australian,health,seven,signed,chief,eventually,appointed,sea,centre,debut,tour,points,media,light,range,character,across,features,families,largest,indian,network,less,performance,players,refer,europe,sold,festival,usually,taken,despite,designed,committee,process,return,official,episode,institute,stage,followed,performed,japanese,personal,thus,arts,space,low,months,includes,china,study,middle,magazine,leading,japan,groups,aircraft,featured,federal,civil,rights,model,coach,canadian,books,remained,eight,type,independent,completed,capital,academy,instead,kingdom,organization,countries,studies,competition,sports,size,above,section,finished,gold,involved,reported,management,systems,industry,directed,market,fourth,movement,technology,bank,ground,campaign,base,lower,sent,rather,added,provided,coast,grand,historic,valley,conference,bridge,winning,approximately,films,chinese,awarded,degree,russian,shows,native,female,replaced,municipality,square,studio,medical,data,african,successful,mid,bay,attack,previous,operations,spanish,theatre,student,republic,beginning,provide,ship,primary,owned,writing,tournament,culture,introduced,texas,related,natural,parts,governor,reached,ireland,units,senior,decided,italian,whose,higher,africa,standard,income,professor,placed,regional,los,buildings,championships,active,novel,energy,generally,interest,via,economic,previously,stated,itself,channel,below,operation,leader,traditional,trade,structure,limited,runs,prior,regular,famous,saint,navy,foreign,listed,artist,catholic,airport,results,parliament,collection,unit,officer,goal,attended,command,staff,commission,lived,location,plays,commercial,places,foundation,significant,older,medal,self,scored,companies,highway,activities,programs,wide,musical,notable,library,numerous,paris,towards,individual,allowed,plant,property,annual,contract,whom,highest,initially,required,earlier,assembly,artists,rural,seat,practice,defeated,ended,soviet,length,spent,manager,press,associated,author,issues,additional,characters,lord,zealand,policy,engine,township,noted,historical,complete,financial,religious,mission,contains,nine,recent,represented,pennsylvania,administration,opening,secretary,lines,report,executive,youth,closed,theory,writer,italy,angeles,appearance,feature,queen,launched,legal,terms,entered,issue,edition,singer,greek,majority,background,source,anti,cultural,complex,changes,recording,stadium,islands,operated,particularly,basketball,month,uses,port,castle,mostly,names,fort,selected,increased,status,earth,subsequently,pacific,cover,variety,certain,goals,remains,upper,congress,becoming,studied,irish,nature,particular,loss,caused,chart,dr.,forced,create,era,retired,material,review,rate,singles,referred,larger,individuals,shown,provides,products,speed,democratic,poland,parish,olympics,cities,themselves,temple,wing,genus,households,serving,cost,wales,stations,passed,supported,view,cases,forms,actor,male,matches,males,stars,tracks,females,administrative,median,effect,biography,train,engineering,camp,offered,chairman,houses,mainly,
19th,surface,therefore,nearly,score,ancient,subject,prime,seasons,claimed,experience,specific,jewish,failed,overall,believed,plot,troops,greater,spain,consists,broadcast,heavy,increase,raised,separate,campus,
1980s,appears,presented,lies,composed,recently,influence,fifth,nations,creek,references,elections,britain,double,cast,meaning,earned,carried,producer,latter,housing,brothers,attempt,article,response,border,remaining,nearby,direct,ships,value,workers,politician,academic,label,
1970s,commander,rule,fellow,residents,authority,editor,transport,dutch,projects,responsible,covered,territory,flight,races,defense,tower,emperor,albums,facilities,daily,stories,assistant,managed,primarily,quality,function,proposed,distribution,conditions,prize,journal,code,vice,newspaper,corps,highly,constructed,mayor,critical,secondary,corporation,rugby,regiment,ohio,appearances,serve,allow,nation,multiple,discovered,directly,scene,levels,growth,elements,acquired,
1990s,officers,physical,
20th,latin,host,jersey,graduated,arrived,issued,literature,metal,estate,vote,immediately,quickly,asian,competed,extended,produce,urban,
1960s,promoted,contemporary,global,formerly,appear,industrial,types,opera,ministry,soldiers,commonly,mass,formation,smaller,typically,drama,shortly,density,senate,effects,iran,polish,prominent,naval,settlement,divided,basis,republican,languages,distance,treatment,continue,product,mile,sources,footballer,format,clubs,leadership,initial,offers,operating,avenue,officially,columbia,grade,squadron,fleet,percent,farm,leaders,agreement,likely,equipment,website,mount,grew,method,transferred,intended,renamed,iron,asia,reserve,capacity,politics,widely,activity,advanced,relations,scottish,dedicated,crew,founder,episodes,lack,amount,build,efforts,concept,follows,ordered,leaves,positive,economy,entertainment,affairs,memorial,ability,illinois,communities,color,text,railroad,scientific,focus,comedy,serves,exchange,environment,cars,direction,organized,firm,description,agency,analysis,purpose,destroyed,reception,planned,revealed,infantry,architecture,growing,featuring,household,candidate,removed,situated,models,knowledge,solo,technical,organizations,assigned,conducted,participated,largely,purchased,register,gained,combined,headquarters,adopted,potential,protection,scale,approach,spread,independence,mountains,titled,geography,applied,safety,mixed,accepted,continues,captured,rail,defeat,principal,recognized,lieutenant,mentioned,semi,owner,joint,liberal,actress,traffic,creation,basic,notes,unique,supreme,declared,simply,plants,sales,massachusetts,designated,parties,jazz,compared,becomes,resources,titles,concert,learning,remain,teaching,versions,content,alongside,revolution,sons,block,premier,impact,champions,districts,generation,estimated,volume,image,sites,account,roles,sport,quarter,providing,zone,yard,scoring,classes,presence,performances,representatives,hosted,split,taught,origin,olympic,claims,critics,facility,occurred,suffered,municipal,damage,defined,resulted,respectively,expanded,platform,draft,opposition,expected,educational,ontario,climate,reports,atlantic,surrounding,performing,reduced,ranked,allows,birth,nominated,younger,newly,kong,positions,theater,philadelphia,heritage,finals,disease,sixth,laws,reviews,constitution,tradition,swedish,theme,fiction,rome,medicine,trains,resulting,existing,deputy,environmental,labour,classical,develop,fans,granted,receive,alternative,begins,nuclear,fame,buried,connected,identified,palace,falls,letters,combat,sciences,effort,villages,inspired,regions,towns,conservative,chosen,animals,labor,attacks,materials,yards,steel,representative,orchestra,peak,entitled,officials,returning,reference,northwest,imperial,convention,examples,ocean,publication,painting,subsequent,frequently,religion,brigade,fully,sides,acts,cemetery,relatively,oldest,suggested,succeeded,achieved,application,programme,cells,votes,promotion,graduate,armed,supply,flying,communist,figures,literary,netherlands,korea,worldwide,citizens,
1950s,faculty,draw,stock,seats,occupied,methods,unknown,articles,claim,holds,authorities,audience,sweden,interview,obtained,covers,settled,transfer,marked,allowing,funding,challenge,southeast,unlike,crown,rise,portion,transportation,sector,phase,properties,edge,tropical,standards,institutions,philosophy,legislative,hills,brand,fund,conflict,unable,founding,refused,attempts,metres,permanent,starring,applications,creating,effective,aired,extensive,employed,enemy,expansion,billboard,rank,battalion,multi,vehicle,fought,alliance,category,perform,federation,poetry,bronze,bands,entry,vehicles,bureau,maximum,billion,trees,intelligence,greatest,screen,refers,commissioned,gallery,injury,confirmed,setting,treaty,adult,americans,broadcasting,supporting,pilot,mobile,writers,programming,existence,squad,minnesota,copies,korean,provincial,sets,defence,offices,agricultural,internal,core,northeast,retirement,factory,actions,prevent,communications,ending,weekly,containing,functions,attempted,interior,weight,bowl,recognition,incorporated,increasing,ultimately,documentary,derived,attacked,lyrics,mexican,external,churches,centuries,metropolitan,selling,opposed,personnel,mill,visited,presidential,roads,pieces,norwegian,controlled,
18th,rear,influenced,wrestling,weapons,launch,composer,locations,developing,circuit,specifically,studios,shared,canal,wisconsin,publishing,approved,domestic,consisted,determined,comic,establishment,exhibition,southwest,fuel,electronic,cape,converted,educated,melbourne,hits,wins,producing,norway,slightly,occur,surname,identity,represent,constituency,funds,proved,links,structures,athletic,birds,contest,users,poet,institution,display,receiving,rare,contained,guns,motion,piano,temperature,publications,passenger,contributed,toward,cathedral,inhabitants,architect,exist,athletics,muslim,courses,abandoned,signal,successfully,disambiguation,tennessee,dynasty,heavily,maryland,jews,representing,budget,weather,missouri,introduction,faced,pair,chapel,reform,height,vietnam,occurs,motor,cambridge,lands,focused,sought,patients,shape,invasion,chemical,importance,communication,selection,regarding,homes,voivodeship,maintained,borough,failure,aged,passing,agriculture,oregon,teachers,flow,philippines,trail,seventh,portuguese,resistance,reaching,negative,fashion,scheduled,downtown,universities,trained,skills,scenes,views,notably,typical,incident,candidates,engines,decades,composition,commune,chain,inc.,austria,sale,values,employees,chamber,regarded,winners,registered,task,investment,colonial,swiss,user,entirely,flag,stores,closely,entrance,laid,journalist,coal,equal,causes,turkish,quebec,techniques,promote,junction,easily,dates,kentucky,singapore,residence,violence,advance,survey,humans,expressed,passes,streets,distinguished,qualified,folk,establish,egypt,artillery,visual,improved,actual,finishing,medium,protein,switzerland,productions,operate,poverty,neighborhood,organisation,consisting,consecutive,sections,partnership,extension,reaction,factor,costs,bodies,device,ethnic,racial,flat,objects,chapter,improve,musicians,courts,controversy,membership,merged,wars,expedition,interests,arab,comics,gain,describes,mining,bachelor,crisis,joining,decade,
1930s,distributed,habitat,routes,arena,cycle,divisions,briefly,vocals,directors,degrees,object,recordings,installed,adjacent,demand,voted,causing,businesses,ruled,grounds,starred,drawn,opposite,stands,formal,operates,persons,counties,compete,wave,israeli,ncaa,resigned,brief,greece,combination,demographics,historian,contain,commonwealth,musician,collected,argued,louisiana,session,cabinet,parliamentary,electoral,loan,profit,regularly,conservation,islamic,purchase,
17th,charts,residential,earliest,designs,paintings,survived,moth,items,goods,grey,anniversary,criticism,images,discovery,observed,underground,progress,additionally,participate,thousands,reduce,elementary,owners,stating,iraq,resolution,capture,tank,rooms,hollywood,finance,queensland,reign,maintain,iowa,landing,broad,outstanding,circle,path,manufacturing,assistance,sequence,gmina,crossing,leads,universal,shaped,kings,attached,medieval,ages,metro,colony,affected,scholars,oklahoma,coastal,soundtrack,painted,attend,definition,meanwhile,purposes,trophy,require,marketing,popularity,cable,mathematics,mississippi,represents,scheme,appeal,distinct,factors,acid,subjects,roughly,terminal,economics,senator,diocese,prix,contrast,argentina,czech,wings,relief,stages,duties,
16th,novels,accused,whilst,equivalent,charged,measure,documents,couples,request,danish,defensive,guide,devices,statistics,credited,tries,passengers,allied,frame,puerto,peninsula,concluded,instruments,wounded,differences,associate,forests,afterwards,replace,requirements,aviation,solution,offensive,ownership,inner,legislation,hungarian,contributions,actors,translated,denmark,steam,depending,aspects,assumed,injured,severe,admitted,determine,shore,technique,arrival,measures,translation,debuted,delivered,returns,rejected,separated,visitors,damaged,storage,accompanied,markets,industries,losses,gulf,charter,strategy,corporate,socialist,somewhat,significantly,physics,mounted,satellite,experienced,constant,relative,pattern,restored,belgium,connecticut,partners,harvard,retained,networks,protected,mode,artistic,parallel,collaboration,debate,involving,journey,linked,salt,authors,components,context,occupation,requires,occasionally,policies,tamil,ottoman,revolutionary,hungary,poem,versus,gardens,amongst,audio,makeup,frequency,meters,orthodox,continuing,suggests,legislature,coalition,guitarist,eighth,classification,practices,soil,tokyo,instance,limit,coverage,considerable,ranking,colleges,cavalry,centers,daughters,twin,equipped,broadway,narrow,hosts,rates,domain,boundary,arranged,
12th,whereas,brazilian,forming,rating,strategic,competitions,trading,covering,baltimore,commissioner,infrastructure,origins,replacement,praised,disc,collections,expression,ukraine,driven,edited,austrian,solar,ensure,premiered,successor,wooden,operational,hispanic,concerns,rapid,prisoners,childhood,meets,influential,tunnel,employment,tribe,qualifying,adapted,temporary,celebrated,appearing,increasingly,depression,adults,cinema,entering,laboratory,script,flows,romania,accounts,fictional,pittsburgh,achieve,monastery,franchise,formally,tools,newspapers,revival,sponsored,processes,vienna,springs,missions,classified,
13th,annually,branches,lakes,gender,manner,advertising,normally,maintenance,adding,characteristics,integrated,decline,modified,strongly,critic,victims,malaysia,arkansas,nazi,restoration,powered,monument,hundreds,depth,
15th,controversial,admiral,criticized,brick,honorary,initiative,output,visiting,birmingham,progressive,existed,carbon,
1920s,credits,colour,rising,hence,defeating,superior,filmed,listing,column,surrounded,orleans,principles,territories,struck,participation,indonesia,movements,index,commerce,conduct,constitutional,spiritual,ambassador,vocal,completion,edinburgh,residing,tourism,finland,bears,medals,resident,themes,visible,indigenous,involvement,basin,electrical,ukrainian,concerts,boats,styles,processing,rival,drawing,vessels,experimental,declined,touring,supporters,compilation,coaching,cited,dated,roots,string,explained,transit,traditionally,poems,minimum,representation,
14th,releases,effectively,architectural,triple,indicated,greatly,elevation,clinical,printed,
10th,proposal,peaked,producers,romanized,rapidly,stream,innings,meetings,counter,householder,honour,lasted,agencies,document,exists,surviving,experiences,honors,landscape,hurricane,harbor,panel,competing,profile,vessel,farmers,lists,revenue,exception,customers,
11th,participants,wildlife,utah,bible,gradually,preserved,replacing,symphony,begun,longest,siege,provinces,mechanical,genre,transmission,agents,executed,videos,benefits,funded,rated,instrumental,ninth,similarly,dominated,destruction,passage,technologies,thereafter,outer,facing,affiliated,opportunities,instrument,governments,scholar,evolution,channels,shares,sessions,widespread,occasions,engineers,scientists,signing,battery,competitive,alleged,eliminated,supplies,judges,hampshire,regime,portrayed,penalty,taiwan,denied,submarine,scholarship,substantial,transition,victorian,http,nevertheless,filed,supports,continental,tribes,ratio,doubles,useful,honours,blocks,principle,retail,departure,ranks,patrol,yorkshire,vancouver,inter,extent,afghanistan,strip,railways,component,organ,symbol,categories,encouraged,abroad,civilian,periods,traveled,writes,struggle,immediate,recommended,adaptation,egyptian,graduating,assault,drums,nomination,historically,voting,allies,detailed,achievement,percentage,arabic,assist,frequent,toured,apply,and/or,intersection,maine,touchdown,throne,produces,contribution,emerged,obtain,archbishop,seek,researchers,remainder,populations,clan,finnish,overseas,fifa,licensed,chemistry,festivals,mediterranean,injuries,animated,seeking,publisher,volumes,limits,venue,jerusalem,generated,trials,islam,youngest,ruling,glasgow,germans,songwriter,persian,municipalities,donated,viewed,belgian,cooperation,posted,tech,dual,volunteer,settlers,commanded,claiming,approval,delhi,usage,terminus,partly,electricity,locally,editions,premiere,absence,belief,traditions,statue,indicate,manor,stable,attributed,possession,managing,viewers,chile,overview,seed,regulations,essential,minority,cargo,segment,endemic,forum,deaths,monthly,playoffs,erected,practical,machines,suburb,relation,mrs.,descent,indoor,continuous,characterized,solutions,caribbean,rebuilt,serbian,summary,contested,psychology,pitch,attending,muhammad,tenure,drivers,diameter,assets,venture,punk,airlines,concentration,athletes,volunteers,pages,mines,influences,sculpture,protest,ferry,behalf,drafted,apparent,furthermore,ranging,romanian,democracy,lanka,significance,linear,d.c.,certified,voters,recovered,tours,demolished,boundaries,assisted,identify,grades,elsewhere,mechanism,
1940s,reportedly,aimed,conversion,suspended,photography,departments,beijing,locomotives,publicly,dispute,magazines,resort,conventional,platforms,internationally,capita,settlements,dramatic,derby,establishing,involves,statistical,implementation,immigrants,exposed,diverse,layer,vast,ceased,connections,belonged,interstate,uefa,organised,abuse,deployed,cattle,partially,filming,mainstream,reduction,automatic,rarely,subsidiary,decides,merger,comprehensive,displayed,amendment,guinea,exclusively,manhattan,concerning,commons,radical,serbia,baptist,buses,initiated,portrait,harbour,choir,citizen,sole,unsuccessful,manufactured,enforcement,connecting,increases,patterns,sacred,muslims,clothing,hindu,unincorporated,sentenced,advisory,tanks,campaigns,fled,repeated,remote,rebellion,implemented,texts,fitted,tribute,writings,sufficient,ministers,
21st,devoted,jurisdiction,coaches,interpretation,pole,businessman,peru,sporting,prices,cuba,relocated,opponent,arrangement,elite,manufacturer,responded,suitable,distinction,calendar,dominant,tourist,earning,prefecture,ties,preparation,anglo,pursue,worship,archaeological,chancellor,bangladesh,scores,traded,lowest,horror,outdoor,biology,commented,specialized,loop,arriving,farming,housed,historians,'the,patent,pupils,christianity,opponents,athens,northwestern,maps,promoting,reveals,flights,exclusive,lions,norfolk,hebrew,extensively,eldest,shops,acquisition,virtual,renowned,margin,ongoing,essentially,iranian,alternate,sailed,reporting,conclusion,originated,temperatures,exposure,secured,landed,rifle,framework,identical,martial,focuses,topics,ballet,fighters,belonging,wealthy,negotiations,evolved,bases,oriented,acres,democrat,heights,restricted,vary,graduation,aftermath,chess,illness,participating,vertical,collective,immigration,demonstrated,leaf,completing,organic,missile,leeds,eligible,grammar,confederate,improvement,congressional,wealth,cincinnati,spaces,indicates,corresponding,reaches,repair,isolated,taxes,congregation,ratings,leagues,diplomatic,submitted,winds,awareness,photographs,maritime,nigeria,accessible,animation,restaurants,philippine,inaugural,dismissed,armenian,illustrated,reservoir,speakers,programmes,resource,genetic,interviews,camps,regulation,computers,preferred,travelled,comparison,distinctive,recreation,requested,southeastern,dependent,brisbane,breeding,playoff,expand,bonus,gauge,departed,qualification,inspiration,shipping,slaves,variations,shield,theories,munich,recognised,emphasis,favour,variable,seeds,undergraduate,territorial,intellectual,qualify,mini,banned,pointed,democrats,assessment,judicial,examination,attempting,objective,partial,characteristic,hardware,pradesh,execution,ottawa,metre,drum,exhibitions,withdrew,attendance,phrase,journalism,logo,measured,error,christians,trio,protestant,theology,respective,atmosphere,buddhist,substitute,curriculum,fundamental,outbreak,rabbi,intermediate,designation,globe,liberation,simultaneously,diseases,experiments,locomotive,difficulties,mainland,nepal,relegated,contributing,database,developments,veteran,carries,ranges,instruction,lodge,protests,obama,newcastle,experiment,physician,describing,challenges,corruption,delaware,adventures,ensemble,succession,renaissance,tenth,altitude,receives,approached,crosses,syria,croatia,warsaw,professionals,improvements,worn,airline,compound,permitted,preservation,reducing,printing,scientist,activist,comprises,sized,societies,enters,ruler,gospel,earthquake,extend,autonomous,croatian,serial,decorated,relevant,ideal,grows,grass,tier,towers,wider,welfare,columns,alumni,descendants,interface,reserves,banking,colonies,manufacturers,magnetic,closure,pitched,vocalist,preserve,enrolled,cancelled,equation,
2000s,nickname,bulgaria,heroes,exile,mathematical,demands,input,structural,tube,stem,approaches,argentine,axis,manuscript,inherited,depicted,targets,visits,veterans,regard,removal,efficiency,organisations,concepts,lebanon,manga,petersburg,rally,supplied,amounts,yale,tournaments,broadcasts,signals,pilots,azerbaijan,architects,enzyme,literacy,declaration,placing,batting,incumbent,bulgarian,consistent,poll,defended,landmark,southwestern,raid,resignation,travels,casualties,prestigious,namely,aims,recipient,warfare,readers,collapse,coached,controls,volleyball,coup,lesser,verse,pairs,exhibited,proteins,molecular,abilities,integration,consist,aspect,advocate,administered,governing,hospitals,commenced,coins,lords,variation,resumed,canton,artificial,elevated,palm,difficulty,civic,efficient,northeastern,inducted,radiation,affiliate,boards,stakes,byzantine,consumption,freight,interaction,oblast,numbered,seminary,contracts,extinct,predecessor,bearing,cultures,functional,neighboring,revised,cylinder,grants,narrative,reforms,athlete,tales,reflect,presidency,compositions,specialist,cricketer,founders,sequel,widow,disbanded,associations,backed,thereby,pitcher,commanding,boulevard,singers,crops,militia,reviewed,centres,waves,consequently,fortress,tributary,portions,bombing,excellence,nest,payment,mars,plaza,unity,victories,scotia,farms,nominations,variant,attacking,suspension,installation,graphics,estates,comments,acoustic,destination,venues,surrender,retreat,libraries,quarterback,customs,berkeley,collaborated,gathered,syndrome,dialogue,recruited,shanghai,neighbouring,psychological,saudi,moderate,exhibit,innovation,depot,binding,brunswick,situations,certificate,actively,shakespeare,editorial,presentation,ports,relay,nationalist,methodist,archives,experts,maintains,collegiate,bishops,maintaining,temporarily,embassy,essex,wellington,connects,reformed,bengal,recalled,inches,doctrine,deemed,legendary,reconstruction,statements,palestinian,meter,achievements,riders,interchange,spots,auto,accurate,chorus,dissolved,missionary,thai,operators,e.g.,generations,failing,delayed,cork,nashville,perceived,venezuela,cult,emerging,tomb,abolished,documented,gaining,canyon,episcopal,stored,assists,compiled,kerala,kilometers,mosque,grammy,theorem,unions,segments,glacier,arrives,theatrical,circulation,conferences,chapters,displays,circular,authored,conductor,fewer,dimensional,nationwide,liga,yugoslavia,peer,vietnamese,fellowship,armies,regardless,relating,dynamic,politicians,mixture,serie,somerset,imprisoned,posts,beliefs,beta,layout,independently,electronics,provisions,fastest,logic,headquartered,creates,challenged,beaten,appeals,plains,protocol,graphic,accommodate,iraqi,midfielder,span,commentary,freestyle,reflected,palestine,lighting,burial,virtually,backing,prague,tribal,heir,identification,prototype,criteria,dame,arch,tissue,footage,extending,procedures,predominantly,updated,rhythm,preliminary,cafe,disorder,prevented,suburbs,discontinued,retiring,oral,followers,extends,massacre,journalists,conquest,larvae,pronounced,behaviour,diversity,sustained,addressed,geographic,restrictions,voiced,milwaukee,dialect,quoted,grid,nationally,nearest,roster,twentieth,separation,indies,manages,citing,intervention,guidance,severely,migration,artwork,focusing,rivals,trustees,varied,enabled,committees,centered,skating,slavery,cardinals,forcing,tasks,auckland,youtube,argues,colored,advisor,mumbai,requiring,theological,registration,refugees,nineteenth,survivors,runners,colleagues,priests,contribute,variants,workshop,concentrated,creator,lectures,temples,exploration,requirement,interactive,navigation,companion,perth,allegedly,releasing,citizenship,observation,stationed,ph.d.,sheep,breed,discovers,encourage,kilometres,journals,performers,isle,saskatchewan,hybrid,hotels,lancashire,dubbed,airfield,anchor,suburban,theoretical,sussex,anglican,stockholm,permanently,upcoming,privately,receiver,optical,highways,congo,colours,aggregate,authorized,repeatedly,varies,fluid,innovative,transformed,praise,convoy,demanded,discography,attraction,export,audiences,ordained,enlisted,occasional,westminster,syrian,heavyweight,bosnia,consultant,eventual,improving,aires,wickets,epic,reactions,scandal,i.e.,discrimination,buenos,patron,investors,conjunction,testament,construct,encountered,celebrity,expanding,georgian,brands,retain,underwent,algorithm,foods,provision,orbit,transformation,associates,tactical,compact,varieties,stability,refuge,gathering,moreover,manila,configuration,gameplay,discipline,entity,comprising,composers,skill,monitoring,ruins,museums,sustainable,aerial,altered,codes,voyage,friedrich,conflicts,storyline,travelling,conducting,merit,indicating,referendum,currency,encounter,particles,automobile,workshops,acclaimed,inhabited,doctorate,cuban,phenomenon,dome,enrollment,tobacco,governance,trend,equally,manufacture,hydrogen,grande,compensation,download,pianist,grain,shifted,neutral,evaluation,define,cycling,seized,array,relatives,motors,firms,varying,automatically,restore,nicknamed,findings,governed,investigate,manitoba,administrator,vital,integral,indonesian,confusion,publishers,enable,geographical,inland,naming,civilians,reconnaissance,indianapolis,lecturer,deer,tourists,exterior,rhode,bassist,symbols,scope,ammunition,yuan,poets,punjab,nursing,cent,developers,estimates,presbyterian,nasa,holdings,generate,renewed,computing,cyprus,arabia,duration,compounds,gastropod,permit,valid,touchdowns,facade,interactions,mineral,practiced,allegations,consequence,goalkeeper,baronet,copyright,uprising,carved,targeted,competitors,mentions,sanctuary,fees,pursued,tampa,chronicle,capabilities,specified,specimens,toll,accounting,limestone,staged,upgraded,philosophical,streams,guild,revolt,rainfall,supporter,princeton,terrain,hometown,probability,assembled,paulo,surrey,voltage,developer,destroyer,floors,lineup,curve,prevention,potentially,onwards,trips,imposed,hosting,striking,strict,admission,apartments,solely,utility,proceeded,observations,euro,incidents,vinyl,profession,haven,distant,expelled,rivalry,runway,torpedo,zones,shrine,dimensions,investigations,lithuania,idaho,pursuit,copenhagen,considerably,locality,wireless,decrease,genes,thermal,deposits,hindi,habitats,withdrawn,biblical,monuments,casting,plateau,thesis,managers,flooding,assassination,acknowledged,interim,inscription,guided,pastor,finale,insects,transported,activists,marshal,intensity,airing,cardiff,proposals,lifestyle,prey,herald,capitol,aboriginal,measuring,lasting,interpreted,occurring,desired,drawings,healthcare,panels,elimination,oslo,ghana,blog,sabha,intent,superintendent,governors,bankruptcy,p.m.,equity,disk,layers,slovenia,prussia,quartet,mechanics,graduates,politically,monks,screenplay,nato,absorbed,topped,petition,bold,morocco,exhibits,canterbury,publish,rankings,crater,dominican,enhanced,planes,lutheran,governmental,joins,collecting,brussels,unified,streak,strategies,flagship,surfaces,oval,archive,etymology,imprisonment,instructor,noting,remix,opposing,servant,rotation,width,trans,maker,synthesis,excess,tactics,snail,ltd.,lighthouse,sequences,cornwall,plantation,mythology,performs,foundations,populated,horizontal,speedway,activated,performer,diving,conceived,edmonton,subtropical,environments,prompted,semifinals,caps,bulk,treasury,recreational,telegraph,continent,portraits,relegation,catholics,graph,velocity,rulers,endangered,secular,observer,learns,inquiry,idol,dictionary,certification,estimate,cluster,armenia,observatory,revived,nadu,consumers,hypothesis,manuscripts,contents,arguments,editing,trails,arctic,essays,belfast,acquire,promotional,undertaken,corridor,proceedings,antarctic,millennium,labels,delegates,vegetation,acclaim,directing,substance,outcome,diploma,philosopher,malta,albanian,vicinity,degc,legends,regiments,consent,terrorist,scattered,presidents,gravity,orientation,deployment,duchy,refuses,estonia,crowned,separately,renovation,rises,wilderness,objectives,agreements,empress,slopes,inclusion,equality,decree,ballot,criticised,rochester,recurring,struggled,disabled,henri,poles,prussian,convert,bacteria,poorly,sudan,geological,wyoming,consistently,minimal,withdrawal,interviewed,proximity,repairs,initiatives,pakistani,republicans,propaganda,viii,abstract,commercially,availability,mechanisms,naples,discussions,underlying,lens,proclaimed,advised,spelling,auxiliary,attract,lithuanian,editors,o'brien,accordance,measurement,novelist,ussr,formats,councils,contestants,indie,facebook,parishes,barrier,battalions,sponsor,consulting,terrorism,implement,uganda,crucial,unclear,notion,distinguish,collector,attractions,filipino,ecology,investments,capability,renovated,iceland,albania,accredited,scouts,armor,sculptor,cognitive,errors,gaming,condemned,successive,consolidated,baroque,entries,regulatory,reserved,treasurer,variables,arose,technological,rounded,provider,rhine,agrees,accuracy,genera,decreased,frankfurt,ecuador,edges,particle,rendered,calculated,careers,faction,rifles,americas,gaelic,portsmouth,resides,merchants,fiscal,premises,coin,draws,presenter,acceptance,ceremonies,pollution,consensus,membrane,brigadier,nonetheless,genres,supervision,predicted,magnitude,finite,differ,ancestry,vale,delegation,removing,proceeds,placement,emigrated,siblings,molecules,payments,considers,demonstration,proportion,newer,valve,achieving,confederation,continuously,luxury,notre,introducing,coordinates,charitable,squadrons,disorders,geometry,winnipeg,ulster,loans,longtime,receptor,preceding,belgrade,mandate,wrestler,neighbourhood,factories,buddhism,imported,sectors,protagonist,steep,elaborate,prohibited,artifacts,prizes,pupil,cooperative,sovereign,subspecies,carriers,allmusic,nationals,settings,autobiography,neighborhoods,analog,facilitate,voluntary,jointly,newfoundland,organizing,raids,exercises,nobel,machinery,baltic,crop,granite,dense,websites,mandatory,seeks,surrendered,anthology,comedian,bombs,slot,synopsis,critically,arcade,marking,equations,halls,indo,inaugurated,embarked,speeds,clause,invention,premiership,likewise,presenting,demonstrate,designers,organize,examined,km/h,bavaria,troop,referee,detection,zurich,prairie,rapper,wingspan,eurovision,luxembourg,slovakia,inception,disputed,mammals,entrepreneur,makers,evangelical,yield,clergy,trademark,defunct,allocated,depicting,volcanic,batted,conquered,sculptures,providers,reflects,armoured,locals,walt,herzegovina,contracted,entities,sponsorship,prominence,flowing,ethiopia,marketed,corporations,withdraw,carnegie,induced,investigated,portfolio,flowering,opinions,viewing,classroom,donations,bounded,perception,leicester,fruits,charleston,academics,statute,complaints,smallest,deceased,petroleum,resolved,commanders,algebra,southampton,modes,cultivation,transmitter,spelled,obtaining,sizes,acre,pageant,bats,abbreviated,correspondence,barracks,feast,tackles,raja,derives,geology,disputes,translations,counted,constantinople,seating,macedonia,preventing,accommodation,homeland,explored,invaded,provisional,transform,sphere,unsuccessfully,missionaries,conservatives,highlights,traces,organisms,openly,dancers,fossils,absent,monarchy,combining,lanes,stint,dynamics,chains,missiles,screening,module,tribune,generating,miners,nottingham,seoul,unofficial,owing,linking,rehabilitation,citation,louisville,mollusk,depicts,differential,zimbabwe,kosovo,recommendations,responses,pottery,scorer,aided,exceptions,dialects,telecommunications,defines,elderly,lunar,coupled,flown,
25th,espn,formula_1,bordered,fragments,guidelines,gymnasium,valued,complexity,papal,presumably,maternal,challenging,reunited,advancing,comprised,uncertain,favorable,twelfth,correspondent,nobility,livestock,expressway,chilean,tide,researcher,emissions,profits,lengths,accompanying,witnessed,itunes,drainage,slope,reinforced,feminist,sanskrit,develops,physicians,outlets,isbn,coordinator,averaged,termed,occupy,diagnosed,yearly,humanitarian,prospect,spacecraft,stems,enacted,linux,ancestors,karnataka,constitute,immigrant,thriller,ecclesiastical,generals,celebrations,enhance,heating,advocated,evident,advances,bombardment,watershed,shuttle,wicket,twitter,adds,branded,teaches,schemes,pension,advocacy,conservatory,cairo,varsity,freshwater,providence,seemingly,shells,cuisine,specially,peaks,intensive,publishes,trilogy,skilled,nacional,unemployment,destinations,parameters,verses,trafficking,determination,infinite,savings,alignment,linguistic,countryside,dissolution,measurements,advantages,licence,subfamily,highlands,modest,regent,algeria,crest,teachings,knockout,brewery,combine,conventions,descended,chassis,primitive,fiji,explicitly,cumberland,uruguay,laboratories,bypass,elect,informal,preceded,holocaust,tackle,minneapolis,quantity,securities,console,doctoral,religions,commissioners,expertise,unveiled,precise,diplomat,standings,infant,disciplines,sicily,endorsed,systematic,charted,armored,mild,lateral,townships,hurling,prolific,invested,wartime,compatible,galleries,moist,battlefield,decoration,convent,tubes,terrestrial,nominee,requests,delegate,leased,dubai,polar,applying,addresses,munster,sings,commercials,teamed,dances,eleventh,midland,cedar,flee,sandstone,snails,inspection,divide,asset,themed,comparable,paramount,dairy,archaeology,intact,institutes,rectangular,instances,phases,reflecting,substantially,applies,vacant,lacked,copa,coloured,encounters,sponsors,encoded,possess,revenues,ucla,chaired,a.m.,enabling,playwright,stoke,sociology,tibetan,frames,motto,financing,illustrations,gibraltar,chateau,bolivia,transmitted,enclosed,persuaded,urged,folded,suffolk,regulated,bros.,submarines,myth,oriental,malaysian,effectiveness,narrowly,acute,sunk,replied,utilized,tasmania,consortium,quantities,gains,parkway,enlarged,sided,employers,adequate,accordingly,assumption,ballad,mascot,distances,peaking,saxony,projected,affiliation,limitations,metals,guatemala,scots,theaters,kindergarten,verb,employer,differs,discharge,controller,seasonal,marching,guru,campuses,avoided,vatican,maori,excessive,chartered,modifications,caves,monetary,sacramento,mixing,institutional,celebrities,irrigation,shapes,broadcaster,anthem,attributes,demolition,offshore,specification,surveys,yugoslav,contributor,auditorium,lebanese,capturing,airports,classrooms,chennai,paths,tendency,determining,lacking,upgrade,sailors,detected,kingdoms,sovereignty,freely,decorative,momentum,scholarly,georges,gandhi,speculation,transactions,undertook,interact,similarities,cove,teammate,constituted,painters,tends,madagascar,partnerships,afghan,personalities,attained,rebounds,masses,synagogue,reopened,asylum,embedded,imaging,catalogue,defenders,taxonomy,fiber,afterward,appealed,communists,lisbon,rica,judaism,adviser,batsman,ecological,commands,lgbt,cooling,accessed,wards,shiva,employs,thirds,scenic,worcester,tallest,contestant,humanities,economist,textile,constituencies,motorway,tram,percussion,cloth,leisure,
1880s,baden,flags,resemble,riots,coined,sitcom,composite,implies,daytime,tanzania,penalties,optional,competitor,excluded,steering,reversed,autonomy,reviewer,breakthrough,professionally,damages,pomeranian,deputies,valleys,ventures,highlighted,electorate,mapping,shortened,executives,tertiary,specimen,launching,bibliography,sank,pursuing,binary,descendant,marched,natives,ideology,turks,adolf,archdiocese,tribunal,exceptional,nigerian,preference,fails,loading,comeback,vacuum,favored,alter,remnants,consecrated,spectators,trends,patriarch,feedback,paved,sentences,councillor,astronomy,advocates,broader,commentator,commissions,identifying,revealing,theatres,incomplete,enables,constituent,reformation,tract,haiti,atmospheric,screened,explosive,czechoslovakia,acids,symbolic,subdivision,liberals,incorporate,challenger,erie,filmmaker,laps,kazakhstan,organizational,evolutionary,chemicals,dedication,riverside,fauna,moths,maharashtra,annexed,gen.,resembles,underwater,garnered,timeline,remake,suited,educator,hectares,automotive,feared,latvia,finalist,narrator,portable,airways,plaque,designing,villagers,licensing,flank,statues,struggles,deutsche,migrated,cellular,jacksonville,wimbledon,defining,highlight,preparatory,planets,cologne,employ,frequencies,detachment,readily,libya,resign,halt,helicopters,reef,landmarks,collaborative,irregular,retaining,helsinki,folklore,weakened,viscount,interred,professors,memorable,mega,repertoire,rowing,dorsal,albeit,progressed,operative,coronation,liner,telugu,domains,philharmonic,detect,bengali,synthetic,tensions,atlas,dramatically,paralympics,xbox,shire,kiev,lengthy,sued,notorious,seas,screenwriter,transfers,aquatic,pioneers,unesco,radius,abundant,tunnels,syndicated,inventor,accreditation,janeiro,exeter,ceremonial,omaha,cadet,predators,resided,prose,slavic,precision,abbot,deity,engaging,cambodia,estonian,compliance,demonstrations,protesters,reactor,commodore,successes,chronicles,mare,extant,listings,minerals,tonnes,parody,cultivated,traders,pioneering,supplement,slovak,preparations,collision,partnered,vocational,atoms,malayalam,welcomed,documentation,curved,functioning,presently,formations,incorporates,nazis,botanical,nucleus,ethical,greeks,metric,automated,whereby,stance,europeans,duet,disability,purchasing,email,telescope,displaced,sodium,comparative,processor,inning,precipitation,aesthetic,import,coordination,feud,alternatively,mobility,tibet,regained,succeeding,hierarchy,apostolic,catalog,reproduction,inscriptions,vicar,clusters,posthumously,rican,loosely,additions,photographic,nowadays,selective,derivative,keyboards,guides,collectively,affecting,combines,operas,networking,decisive,terminated,continuity,finishes,ancestor,consul,heated,simulation,leipzig,incorporating,georgetown,formula_2,circa,forestry,portrayal,councillors,advancement,complained,forewings,confined,transaction,definitions,reduces,televised,
1890s,rapids,phenomena,belarus,alps,landscapes,quarterly,specifications,commemorate,continuation,isolation,antenna,downstream,patents,ensuing,tended,saga,lifelong,columnist,labeled,gymnastics,papua,anticipated,demise,encompasses,madras,antarctica,interval,icon,rams,midlands,ingredients,priory,strengthen,rouge,explicit,gaza,aging,securing,anthropology,listeners,adaptations,underway,vista,malay,fortified,lightweight,violations,concerto,financed,jesuit,observers,trustee,descriptions,nordic,resistant,opted,accepts,prohibition,andhra,inflation,negro,wholly,imagery,spur,instructed,gloucester,cycles,middlesex,destroyers,statewide,evacuated,hyderabad,peasants,mice,shipyard,coordinate,pitching,colombian,exploring,numbering,compression,countess,hiatus,exceed,raced,archipelago,traits,soils,o'connor,vowel,android,facto,angola,amino,holders,logistics,circuits,emergence,kuwait,partition,emeritus,outcomes,submission,promotes,barack,negotiated,loaned,stripped,
50th,excavations,treatments,fierce,participant,exports,decommissioned,cameo,remarked,residences,fuselage,mound,undergo,quarry,node,midwest,specializing,occupies,etc.,showcase,molecule,offs,modules,salon,exposition,revision,peers,positioned,hunters,competes,algorithms,reside,zagreb,calcium,uranium,silicon,airs,counterpart,outlet,collectors,sufficiently,canberra,inmates,anatomy,ensuring,curves,aviv,firearms,basque,volcano,thrust,sheikh,extensions,installations,aluminum,darker,sacked,emphasized,aligned,asserted,pseudonym,spanning,decorations,eighteenth,orbital,spatial,subdivided,notation,decay,macedonian,amended,declining,cyclist,feat,unusually,commuter,birthplace,latitude,activation,overhead,
30th,finalists,whites,encyclopedia,tenor,qatar,survives,complement,concentrations,uncommon,astronomical,bangalore,pius,genome,memoir,recruit,prosecutor,modification,paired,container,basilica,arlington,displacement,germanic,mongolia,proportional,debates,matched,calcutta,rows,tehran,aerospace,prevalent,arise,lowland,
24th,spokesman,supervised,advertisements,clash,tunes,revelation,wanderers,quarterfinals,fisheries,steadily,memoirs,pastoral,renewable,confluence,acquiring,strips,slogan,upstream,scouting,analyst,practitioners,turbine,strengthened,heavier,prehistoric,plural,excluding,isles,persecution,turin,rotating,villain,hemisphere,unaware,arabs,corpus,relied,singular,unanimous,schooling,passive,angles,dominance,instituted,aria,outskirts,balanced,beginnings,financially,structured,parachute,viewer,attitudes,subjected,escapes,derbyshire,erosion,addressing,styled,declaring,originating,colts,adjusted,stained,occurrence,fortifications,baghdad,nitrogen,localities,yemen,galway,debris,lodz,victorious,pharmaceutical,substances,unnamed,dwelling,atop,developmental,activism,voter,refugee,forested,relates,overlooking,genocide,kannada,insufficient,oversaw,partisan,dioxide,recipients,factions,mortality,capped,expeditions,receptors,reorganized,prominently,atom,flooded,flute,orchestral,scripts,mathematician,airplay,detached,rebuilding,dwarf,brotherhood,salvation,expressions,arabian,cameroon,poetic,recruiting,bundesliga,inserted,scrapped,disabilities,evacuation,pasha,undefeated,crafts,rituals,aluminium,norm,pools,submerged,occupying,pathway,exams,prosperity,wrestlers,promotions,basal,permits,nationalism,trim,merge,gazette,tributaries,transcription,caste,porto,emerge,modeled,adjoining,counterparts,paraguay,redevelopment,renewal,unreleased,equilibrium,similarity,minorities,soviets,comprise,nodes,tasked,unrelated,expired,johan,precursor,examinations,electrons,socialism,exiled,admiralty,floods,wigan,nonprofit,lacks,brigades,screens,repaired,hanover,fascist,labs,osaka,delays,judged,statutory,colt,col.,offspring,solving,bred,assisting,retains,somalia,grouped,corresponds,tunisia,chaplain,eminent,chord,
22nd,spans,viral,innovations,possessions,mikhail,kolkata,icelandic,implications,introduces,racism,workforce,alto,compulsory,admits,censorship,onset,reluctant,inferior,iconic,progression,liability,turnout,satellites,behavioral,coordinated,exploitation,posterior,averaging,fringe,krakow,mountainous,greenwich,para,plantations,reinforcements,offerings,famed,intervals,constraints,individually,nutrition,
1870s,taxation,threshold,tomatoes,fungi,contractor,ethiopian,apprentice,diabetes,wool,gujarat,honduras,norse,bucharest,
23rd,arguably,accompany,prone,teammates,perennial,vacancy,polytechnic,deficit,okinawa,functionality,reminiscent,tolerance,transferring,myanmar,concludes,neighbours,hydraulic,economically,slower,plots,charities,synod,investor,catholicism,identifies,bronx,interpretations,adverse,judiciary,hereditary,nominal,sensor,symmetry,cubic,triangular,tenants,divisional,outreach,representations,passages,undergoing,cartridge,testified,exceeded,impacts,limiting,railroads,defeats,regain,rendering,humid,retreated,reliability,governorate,antwerp,infamous,implied,packaging,lahore,trades,billed,extinction,ecole,rejoined,recognizes,projection,qualifications,stripes,forts,socially,lexington,accurately,sexuality,westward,wikipedia,pilgrimage,abolition,choral,stuttgart,nests,expressing,strikeouts,assessed,monasteries,reconstructed,humorous,marxist,fertile,consort,urdu,patronage,peruvian,devised,lyric,baba,nassau,communism,extraction,popularly,markings,inability,litigation,accounted,processed,emirates,tempo,cadets,eponymous,contests,broadly,oxide,courtyard,frigate,directory,apex,outline,regency,chiefly,patrols,secretariat,cliffs,residency,privy,armament,australians,dorset,geometric,genetics,scholarships,fundraising,flats,demographic,multimedia,captained,documentaries,updates,canvas,blockade,guerrilla,songwriting,administrators,intake,drought,implementing,fraction,cannes,refusal,inscribed,meditation,announcing,exported,ballots,formula_3,curator,basel,arches,flour,subordinate,confrontation,gravel,simplified,berkshire,patriotic,tuition,employing,servers,castile,posting,combinations,discharged,miniature,mutations,constellation,incarnation,ideals,necessity,granting,ancestral,crowds,pioneered,mormon,methodology,rama,indirect,complexes,bavarian,patrons,uttar,skeleton,bollywood,flemish,viable,bloc,breeds,triggered,sustainability,tailed,referenced,comply,takeover,latvian,homestead,platoon,communal,nationality,excavated,targeting,sundays,posed,physicist,turret,endowment,marginal,dispatched,commentators,renovations,attachment,collaborations,ridges,barriers,obligations,shareholders,prof.,defenses,presided,rite,backgrounds,arbitrary,affordable,gloucestershire,thirteenth,inlet,miniseries,possesses,detained,pressures,subscription,realism,solidarity,proto,postgraduate,noun,burmese,abundance,homage,reasoning,anterior,robust,fencing,shifting,vowels,garde,profitable,loch,anchored,coastline,samoa,terminology,prostitution,magistrate,venezuelan,speculated,regulate,fixture,colonists,digit,induction,manned,expeditionary,computational,centennial,principally,vein,preserving,engineered,numerical,cancellation,conferred,continually,borne,seeded,advertisement,unanimously,treaties,infections,ions,sensors,lowered,amphibious,lava,fourteenth,bahrain,niagara,nicaragua,squares,congregations,
26th,periodic,proprietary,
1860s,contributors,seller,overs,emission,procession,presumed,illustrator,zinc,gases,tens,applicable,stretches,reproductive,sixteenth,apparatus,accomplishments,canoe,guam,oppose,recruitment,accumulated,limerick,namibia,staging,remixes,ordnance,uncertainty,pedestrian,temperate,treason,deposited,registry,cerambycidae,attracting,lankan,reprinted,shipbuilding,homosexuality,neurons,eliminating,
1900s,resume,ministries,beneficial,blackpool,surplus,northampton,licenses,constructing,announcer,standardized,alternatives,taipei,inadequate,failures,yields,medalist,titular,obsolete,torah,burlington,predecessors,lublin,retailers,castles,depiction,issuing,gubernatorial,propulsion,tiles,damascus,discs,alternating,pomerania,peasant,tavern,redesignated,
27th,illustration,focal,mans,codex,specialists,productivity,antiquity,controversies,promoter,pits,companions,behaviors,lyrical,prestige,creativity,swansea,dramas,approximate,feudal,tissues,crude,campaigned,unprecedented,chancel,amendments,surroundings,allegiance,exchanges,align,firmly,optimal,commenting,reigning,landings,obscure,
1850s,contemporaries,paternal,devi,endurance,communes,incorporation,denominations,exchanged,routing,resorts,amnesty,slender,explores,suppression,heats,pronunciation,centred,coupe,stirling,freelance,treatise,linguistics,laos,informs,discovering,pillars,encourages,halted,robots,definitive,maturity,tuberculosis,venetian,silesian,unchanged,originates,mali,lincolnshire,quotes,seniors,premise,contingent,distribute,danube,gorge,logging,dams,curling,seventeenth,specializes,wetlands,deities,assess,thickness,rigid,culminated,utilities,substrate,insignia,nile,assam,shri,currents,suffrage,canadians,mortar,asteroid,bosnian,discoveries,enzymes,sanctioned,replica,hymn,investigators,tidal,dominate,derivatives,converting,leinster,verbs,honoured,criticisms,dismissal,discrete,masculine,reorganization,unlimited,wurttemberg,sacks,allocation,bahn,jurisdictions,participates,lagoon,famine,communion,culminating,surveyed,shortage,cables,intersects,cassette,foremost,adopting,solicitor,outright,bihar,reissued,farmland,dissertation,turnpike,baton,photographed,christchurch,kyoto,finances,rails,histories,linebacker,kilkenny,accelerated,dispersed,handicap,absorption,rancho,ceramic,captivity,cites,font,weighed,mater,utilize,bravery,extract,validity,slovenian,seminars,discourse,ranged,duel,ironically,warships,sega,temporal,surpassed,prolonged,recruits,northumberland,greenland,contributes,patented,eligibility,unification,discusses,reply,translates,beirut,relies,torque,northward,reviewers,monastic,accession,neural,tramway,heirs,sikh,subscribers,amenities,taliban,audit,rotterdam,wagons,kurdish,favoured,combustion,meanings,persia,browser,diagnostic,niger,formula_4,denomination,dividing,parameter,branding,badminton,leningrad,sparked,hurricanes,beetles,propeller,mozambique,refined,diagram,exhaust,vacated,readings,markers,reconciliation,determines,concurrent,imprint,primera,organism,demonstrating,filmmakers,vanderbilt,affiliates,traction,evaluated,defendants,megachile,investigative,zambia,assassinated,rewarded,probable,staffordshire,foreigners,directorate,nominees,consolidation,commandant,reddish,differing,unrest,drilling,bohemia,resembling,instrumentation,considerations,haute,promptly,variously,dwellings,clans,tablet,enforced,cockpit,semifinal,hussein,prisons,ceylon,emblem,monumental,phrases,correspond,crossover,outlined,characterised,acceleration,caucus,crusade,protested,composing,rajasthan,habsburg,rhythmic,interception,inherent,cooled,ponds,spokesperson,gradual,consultation,kuala,globally,suppressed,builders,avengers,suffix,integer,enforce,fibers,unionist,proclamation,uncovered,infrared,adapt,eisenhower,utilizing,captains,stretched,observing,assumes,prevents,analyses,saxophone,caucasus,notices,villains,dartmouth,mongol,hostilities,stretching,veterinary,lenses,texture,prompting,overthrow,excavation,islanders,masovian,battleship,biographer,replay,degradation,departing,luftwaffe,fleeing,oversight,immigrated,serbs,fishermen,strengthening,respiratory,italians,denotes,radial,escorted,motif,wiltshire,expresses,accessories,reverted,establishments,inequality,protocols,charting,famously,satirical,entirety,trench,friction,atletico,sampling,subset,weekday,upheld,sharply,correlation,incorrect,mughal,travelers,hasan,earnings,offset,evaluate,specialised,recognizing,flexibility,nagar,postseason,algebraic,capitalism,crystals,melodies,polynomial,racecourse,defences,austro,wembley,attracts,anarchist,resurrection,reviewing,decreasing,prefix,ratified,mutation,displaying,separating,restoring,assemblies,ordinance,priesthood,cruisers,appoint,moldova,imports,directive,epidemic,militant,senegal,signaling,restriction,critique,retrospective,nationalists,undertake,sioux,canals,algerian,redesigned,philanthropist,depict,conceptual,turbines,intellectuals,eastward,applicants,contractors,vendors,undergone,namesake,ensured,tones,substituted,hindwings,arrests,tombs,transitional,principality,reelection,taiwanese,cavity,manifesto,broadcasters,spawned,thoroughbred,identities,generators,proposes,hydroelectric,johannesburg,cortex,scandinavian,killings,aggression,boycott,catalyst,physiology,fifteenth,waterfront,chromosome,organist,costly,calculation,cemeteries,flourished,recognise,juniors,merging,disciples,ashore,workplace,enlightenment,diminished,debated,hailed,podium,educate,mandated,distributor,litre,electromagnetic,flotilla,estuary,peterborough,staircase,selections,melodic,confronts,wholesale,integrate,intercepted,catalonia,unite,immense,palatinate,switches,earthquakes,occupational,successors,praising,concluding,faculties,firstly,overhaul,empirical,metacritic,inauguration,evergreen,laden,winged,philosophers,amalgamated,geoff,centimeters,napoleonic,upright,planting,brewing,fined,sensory,migrants,wherein,inactive,headmaster,warwickshire,siberia,terminals,denounced,academia,divinity,bilateral,clive,omitted,peerage,relics,apartheid,syndicate,fearing,fixtures,desirable,dismantled,ethnicity,valves,biodiversity,aquarium,ideological,visibility,creators,analyzed,tenant,balkan,postwar,supplier,smithsonian,risen,morphology,digits,bohemian,wilmington,vishnu,demonstrates,aforementioned,biographical,mapped,khorasan,phosphate,presentations,ecosystem,processors,calculations,mosaic,clashes,penned,recalls,coding,angular,lattice,macau,accountability,extracted,pollen,therapeutic,overlap,violinist,deposed,candidacy,infants,covenant,bacterial,restructuring,dungeons,ordination,conducts,builds,invasive,customary,concurrently,relocation,cello,statutes,borneo,entrepreneurs,sanctions,packet,rockefeller,piedmont,comparisons,waterfall,receptions,glacial,surge,signatures,alterations,advertised,enduring,somali,botanist,
100th,canonical,motifs,longitude,circulated,alloy,indirectly,margins,preserves,internally,besieged,shale,peripheral,drained,baseman,reassigned,tobago,soloist,socio,grazing,contexts,roofs,portraying,ottomans,shrewsbury,noteworthy,lamps,supplying,beams,qualifier,portray,greenhouse,stronghold,hitter,rites,cretaceous,urging,derive,nautical,aiming,fortunes,verde,donors,reliance,exceeding,exclusion,exercised,simultaneous,continents,guiding,pillar,gradient,poznan,eruption,clinics,moroccan,indicator,trams,piers,parallels,fragment,teatro,potassium,satire,compressed,businessmen,influx,seine,perspectives,shelters,decreases,mounting,formula_5,confederacy,equestrian,expulsion,mayors,liberia,resisted,affinity,shrub,unexpectedly,stimulus,amtrak,deported,perpendicular,statesman,wharf,storylines,romanesque,weights,surfaced,interceptions,dhaka,crambidae,orchestras,rwanda,conclude,constitutes,subsidiaries,admissions,prospective,shear,bilingual,campaigning,presiding,domination,commemorative,trailing,confiscated,petrol,acquisitions,polymer,onlyinclude,chloride,elevations,resolutions,hurdles,pledged,likelihood,objected,erect,encoding,databases,aristotle,hindus,marshes,bowled,ministerial,grange,acronym,annexation,squads,ambient,pilgrims,botany,sofla,astronomer,planetary,descending,bestowed,ceramics,diplomacy,metabolism,colonization,potomac,africans,engraved,recycling,commitments,resonance,disciplinary,jamaican,narrated,spectral,tipperary,waterford,stationary,arbitration,transparency,threatens,crossroads,slalom,oversee,centenary,incidence,economies,livery,moisture,newsletter,autobiographical,bhutan,propelled,dependence,moderately,adobe,barrels,subdivisions,outlook,labelled,stratford,arising,diaspora,barony,automobiles,ornamental,slated,norms,primetime,generalized,analysts,vectors,libyan,yielded,certificates,rooted,vernacular,belarusian,marketplace,prediction,fairfax,malawi,viruses,wooded,demos,mauritius,prosperous,coincided,liberties,huddersfield,ascent,warnings,hinduism,glucose,pulitzer,unused,filters,illegitimate,acquitted,protestants,canopy,staple,psychedelic,winding,abbas,pathways,cheltenham,lagos,niche,invaders,proponents,barred,conversely,doncaster,recession,embraced,rematch,concession,emigration,upgrades,bowls,tablets,remixed,loops,kensington,shootout,monarchs,organizers,harmful,punjabi,broadband,exempt,neolithic,profiles,portrays,parma,cyrillic,quasi,attested,regimental,revive,torpedoes,heidelberg,rhythms,spherical,denote,hymns,icons,theologian,qaeda,exceptionally,reinstated,comune,playhouse,lobbying,grossing,viceroy,delivers,visually,armistice,utrecht,syllable,vertices,analogous,annex,refurbished,entrants,knighted,disciple,rhetoric,detailing,inactivated,ballads,algae,intensified,favourable,sanitation,receivers,pornography,commemorated,cannons,entrusted,manifold,photographers,pueblo,textiles,steamer,myths,marquess,onward,liturgical,romney,uzbekistan,consistency,denoted,hertfordshire,convex,hearings,sulfur,universidad,podcast,selecting,emperors,arises,justices,
1840s,mongolian,exploited,termination,digitally,infectious,sedan,symmetric,penal,illustrate,formulation,attribute,problematic,modular,inverse,berth,searches,rutgers,leicestershire,enthusiasts,lockheed,upwards,transverse,accolades,backward,archaeologists,crusaders,nuremberg,defects,ferries,vogue,containers,openings,transporting,separates,lumpur,purchases,attain,wichita,topology,woodlands,deleted,periodically,syntax,overturned,musicals,corp.,strasbourg,instability,nationale,prevailing,cache,marathi,versailles,unmarried,grains,straits,antagonist,segregation,assistants,d'etat,contention,dictatorship,unpopular,motorcycles,criterion,analytical,salzburg,militants,hanged,worcestershire,emphasize,paralympic,erupted,convinces,offences,oxidation,nouns,populace,atari,spanned,hazardous,educators,playable,births,baha'i,preseason,generates,invites,meteorological,handbook,foothills,enclosure,diffusion,mirza,convergence,geelong,coefficient,connector,formula_6,cylindrical,disasters,pleaded,knoxville,contamination,compose,libertarian,arrondissement,franciscan,intercontinental,susceptible,initiation,malaria,unbeaten,consonants,waived,saloon,popularized,estadio,pseudo,interdisciplinary,transports,transformers,carriages,bombings,revolves,ceded,collaborator,celestial,exemption,colchester,maltese,oceanic,ligue,crete,shareholder,routed,depictions,ridden,advisors,calculate,lending,guangzhou,simplicity,newscast,scheduling,snout,eliot,undertaking,armenians,nottinghamshire,whitish,consulted,deficiency,salle,cinemas,superseded,rigorous,kerman,convened,landowners,modernization,evenings,pitches,conditional,scandinavia,differed,formulated,cyclists,swami,guyana,dunes,electrified,appalachian,abdomen,scenarios,prototypes,sindh,consonant,adaptive,boroughs,wolverhampton,modelling,cylinders,amounted,minimize,ambassadors,lenin,settler,coincide,approximation,grouping,murals,bullying,registers,rumours,engagements,energetic,vertex,annals,bordering,geologic,yellowish,runoff,converts,allegheny,facilitated,saturdays,colliery,monitored,rainforest,interfaces,geographically,impaired,prevalence,joachim,paperback,slowed,shankar,distinguishing,seminal,categorized,authorised,auspices,bandwidth,asserts,rebranded,balkans,supplemented,seldom,weaving,capsule,apostles,populous,monmouth,payload,symphonic,densely,shoreline,managerial,masonry,antioch,averages,textbooks,royalist,coliseum,tandem,brewers,diocesan,posthumous,walled,incorrectly,distributions,ensued,reasonably,graffiti,propagation,automation,harmonic,augmented,middleweight,limbs,elongated,landfall,comparatively,literal,grossed,koppen,wavelength,
1830s,cerebral,boasts,congestion,physiological,practitioner,coasts,cartoonist,undisclosed,frontal,launches,burgundy,qualifiers,imposing,stade,flanked,assyrian,raided,multiplayer,montane,chesapeake,pathology,drains,vineyards,intercollegiate,semiconductor,grassland,convey,citations,predominant,rejects,benefited,yahoo,graphs,busiest,encompassing,hamlets,explorers,suppress,minors,graphical,calculus,sediment,intends,diverted,mainline,unopposed,cottages,initiate,alumnus,towed,autism,forums,darlington,modernist,oxfordshire,lectured,capitalist,suppliers,panchayat,actresses,foundry,southbound,commodity,wesleyan,divides,palestinians,luton,caretaker,nobleman,mutiny,organizer,preferences,nomenclature,splits,unwilling,offenders,timor,relying,halftime,semitic,arithmetic,milestone,jesuits,arctiidae,retrieved,consuming,contender,edged,plagued,inclusive,transforming,khmer,federally,insurgents,distributing,amherst,rendition,prosecutors,viaduct,disqualified,kabul,liturgy,prevailed,reelected,instructors,swimmers,aperture,churchyard,interventions,totals,darts,metropolis,fuels,fluent,northbound,correctional,inflicted,barrister,realms,culturally,aristocratic,collaborating,emphasizes,choreographer,inputs,ensembles,humboldt,practised,endowed,strains,infringement,archaeologist,congregational,magna,relativity,efficiently,proliferation,mixtape,abruptly,regeneration,commissioning,yukon,archaic,reluctantly,retailer,northamptonshire,universally,crossings,boilers,nickelodeon,revue,abbreviation,retaliation,scripture,routinely,medicinal,benedictine,kenyan,retention,deteriorated,glaciers,apprenticeship,coupling,researched,topography,entrances,anaheim,pivotal,compensate,arched,modify,reinforce,dusseldorf,journeys,motorsport,conceded,sumatra,spaniards,quantitative,loire,cinematography,discarded,botswana,morale,engined,zionist,philanthropy,sainte,fatalities,cypriot,motorsports,indicators,pricing,institut,bethlehem,implicated,gravitational,differentiation,rotor,thriving,precedent,ambiguous,concessions,forecast,conserved,fremantle,asphalt,landslide,middlesbrough,formula_7,humidity,overseeing,chronological,diaries,multinational,crimean,turnover,improvised,youths,declares,tasmanian,canadiens,fumble,refinery,weekdays,unconstitutional,upward,guardians,brownish,imminent,hamas,endorsement,naturalist,martyrs,caledonia,chords,yeshiva,reptiles,severity,mitsubishi,fairs,installment,substitution,repertory,keyboardist,interpreter,silesia,noticeable,rhineland,transmit,inconsistent,booklet,academies,epithet,pertaining,progressively,aquatics,scrutiny,prefect,toxicity,rugged,consume,o'donnell,evolve,uniquely,cabaret,mediated,landowner,transgender,palazzo,compilations,albuquerque,induce,sinai,remastered,efficacy,underside,analogue,specify,possessing,advocating,compatibility,liberated,greenville,mecklenburg,header,memorials,sewage,rhodesia,
1800s,salaries,atoll,coordinating,partisans,repealed,amidst,subjective,optimization,nectar,evolving,exploits,madhya,styling,accumulation,raion,postage,responds,buccaneers,frontman,brunei,choreography,coated,kinetic,sampled,inflammatory,complementary,eclectic,norte,vijay,a.k.a,mainz,casualty,connectivity,laureate,franchises,yiddish,reputed,unpublished,economical,periodicals,vertically,bicycles,brethren,capacities,unitary,archeological,tehsil,domesday,wehrmacht,justification,angered,mysore,fielded,abuses,nutrients,ambitions,taluk,battleships,symbolism,superiority,neglect,attendees,commentaries,collaborators,predictions,yorker,breeders,investing,libretto,informally,coefficients,memorandum,pounder,collingwood,tightly,envisioned,arbor,mistakenly,captures,nesting,conflicting,enhancing,streetcar,manufactures,buckinghamshire,rewards,commemorating,stony,expenditure,tornadoes,semantic,relocate,weimar,iberian,sighted,intending,ensign,beverages,expectation,differentiate,centro,utilizes,saxophonist,catchment,transylvania,ecosystems,shortest,sediments,socialists,ineffective,kapoor,formidable,heroine,guantanamo,prepares,scattering,pamphlet,verified,elector,barons,totaling,shrubs,pyrenees,amalgamation,mutually,longitudinal,comte,negatively,masonic,envoy,sexes,akbar,mythical,tonga,bishopric,assessments,malaya,warns,interiors,reefs,reflections,neutrality,musically,nomadic,waterways,provence,collaborate,scaled,adulthood,emerges,euros,optics,incentives,overland,periodical,liege,awarding,realization,slang,affirmed,schooner,hokkaido,czechoslovak,protectorate,undrafted,disagreed,commencement,electors,spruce,swindon,fueled,equatorial,inventions,suites,slovene,backdrop,adjunct,energies,remnant,inhabit,alliances,simulcast,reactors,mosques,travellers,outfielder,plumage,migratory,benin,experimented,fibre,projecting,drafting,laude,evidenced,northernmost,indicted,directional,replication,croydon,comedies,jailed,organizes,devotees,reservoirs,turrets,originate,economists,songwriters,junta,trenches,mounds,proportions,comedic,apostle,azerbaijani,farmhouse,resembled,disrupted,playback,mixes,diagonal,relevance,govern,programmer,gdansk,maize,soundtracks,tendencies,mastered,impacted,believers,kilometre,intervene,chairperson,aerodrome,sails,subsidies,ensures,aesthetics,congresses,ratios,sardinia,southernmost,functioned,controllers,downward,randomly,distortion,regents,palatine,disruption,spirituality,vidhan,tracts,compiler,ventilation,anchorage,symposium,assert,pistols,excelled,avenues,convoys,moniker,constructions,proponent,phased,spines,organising,schleswig,policing,campeonato,mined,hourly,croix,lucrative,authenticity,haitian,stimulation,burkina,espionage,midfield,manually,staffed,awakening,metabolic,biographies,entrepreneurship,conspicuous,guangdong,preface,subgroup,mythological,adjutant,feminism,vilnius,oversees,honourable,tripoli,stylized,kinase,societe,notoriety,altitudes,configurations,outward,transmissions,announces,auditor,ethanol,clube,nanjing,mecca,haifa,blogs,postmaster,paramilitary,depart,positioning,potent,recognizable,spire,brackets,remembrance,overlapping,turkic,articulated,scientology,operatic,deploy,readiness,biotechnology,restrict,cinematographer,inverted,synonymous,administratively,westphalia,commodities,replaces,downloads,centralized,munitions,preached,sichuan,fashionable,implementations,matrices,hiv/aids,loyalist,luzon,celebrates,hazards,heiress,mercenaries,synonym,creole,ljubljana,technician,auditioned,technicians,viewpoint,wetland,mongols,princely,sharif,coating,dynasties,southward,doubling,formula_8,mayoral,harvesting,conjecture,goaltender,oceania,spokane,welterweight,bracket,gatherings,weighted,newscasts,mussolini,affiliations,disadvantage,vibrant,spheres,sultanate,distributors,disliked,establishes,marches,drastically,yielding,jewellery,yokohama,vascular,airlift,canons,subcommittee,repression,strengths,graded,outspoken,fused,pembroke,filmography,redundant,fatigue,repeal,threads,reissue,pennant,edible,vapor,corrections,stimuli,commemoration,dictator,anand,secession,amassed,orchards,pontifical,experimentation,greeted,bangor,forwards,decomposition,quran,trolley,chesterfield,traverse,sermons,burials,skier,climbs,consultants,petitioned,reproduce,parted,illuminated,kurdistan,reigned,occupants,packaged,geometridae,woven,regulating,protagonists,crafted,affluent,clergyman,consoles,migrant,supremacy,attackers,caliph,defect,convection,rallies,huron,resin,segunda,quota,warship,overseen,criticizing,shrines,glamorgan,lowering,beaux,hampered,invasions,conductors,collects,bluegrass,surrounds,substrates,perpetual,chronology,pulmonary,executions,crimea,compiling,noctuidae,battled,tumors,minsk,novgorod,serviced,yeast,computation,swamps,theodor,baronetcy,salford,uruguayan,shortages,odisha,siberian,novelty,cinematic,invitational,decks,dowager,oppression,bandits,appellate,state-of-the-art,clade,palaces,signalling,galaxies,industrialist,tensor,learnt,incurred,magistrates,binds,orbits,ciudad,willingness,peninsular,basins,biomedical,shafts,marlborough,bournemouth,withstand,fitzroy,dunedin,variance,steamship,integrating,muscular,fines,akron,bulbophyllum,malmo,disclosed,cornerstone,runways,medicines,twenty20,gettysburg,progresses,frigates,bodied,transformations,transforms,helens,modelled,versatile,regulator,pursuits,legitimacy,amplifier,scriptures,voyages,examines,presenters,octagonal,poultry,formula_9,anatolia,computed,migrate,directorial,hybrids,localized,preferring,guggenheim,persisted,grassroots,inflammation,fishery,otago,vigorous,professions,instructional,inexpensive,insurgency,legislators,sequels,surnames,agrarian,stainless,nairobi,minas,forerunner,aristocracy,transitions,sicilian,showcased,doses,hiroshima,summarized,gearbox,emancipation,limitation,nuclei,seismic,abandonment,dominating,appropriations,occupations,electrification,hilly,contracting,exaggerated,entertainer,kazan,oricon,cartridges,characterization,parcel,maharaja,exceeds,aspiring,obituary,flattened,contrasted,narration,replies,oblique,outpost,fronts,arranger,talmud,keynes,doctrines,endured,confesses,fortification,supervisors,kilometer,academie,jammu,bathurst,piracy,prostitutes,navarre,cumulative,cruises,lifeboat,twinned,radicals,interacting,expenditures,wexford,libre,futsal,curated,clockwise,colloquially,procurement,immaculate,lyricist,enhancement,porcelain,alzheimer,highlighting,judah,disagreements,storytelling,sheltered,wroclaw,vaudeville,contrasts,neoclassical,compares,contrasting,deciduous,francaise,descriptive,cyclic,reactive,antiquities,meiji,repeats,creditors,forcibly,newmarket,picturesque,impending,uneven,bison,raceway,solvent,ecumenical,optic,professorship,harvested,waterway,banjo,pharaoh,geologist,scanning,dissent,recycled,unmanned,retreating,gospels,aqueduct,branched,tallinn,groundbreaking,syllables,hangar,designations,procedural,craters,cabins,encryption,anthropologist,montevideo,outgoing,inverness,chattanooga,fascism,calais,chapels,groundwater,downfall,misleading,robotic,tortricidae,pixel,handel,prohibit,crewe,renaming,reprised,kickoff,leftist,spaced,integers,causeway,pines,authorship,organise,ptolemy,accessibility,virtues,lesions,iroquois,qur'an,atheist,synthesized,biennial,confederates,dietary,skaters,stresses,tariff,koreans,intercity,republics,quintet,baroness,naive,amplitude,insistence,tbilisi,residues,grammatical,diversified,egyptians,accompaniment,vibration,repository,mandal,topological,distinctions,coherent,invariant,batters,nuevo,internationals,implements,follower,bahia,widened,independents,cantonese,totaled,guadalajara,wolverines,befriended,muzzle,surveying,hungarians,medici,deportation,rayon,approx,recounts,attends,clerical,hellenic,furnished,alleging,soluble,systemic,gallantry,bolshevik,intervened,hostel,gunpowder,specialising,stimulate,leiden,removes,thematic,floral,bafta,printers,conglomerate,eroded,analytic,successively,lehigh,thessaloniki,kilda,clauses,ascended,nehru,scripted,tokugawa,competence,diplomats,exclude,consecration,freedoms,assaults,revisions,blacksmith,textual,sparse,concacaf,slain,uploaded,enraged,whaling,guise,stadiums,debuting,dormitory,cardiovascular,yunnan,dioceses,consultancy,notions,lordship,archdeacon,collided,medial,airfields,garment,wrestled,adriatic,reversal,refueling,verification,jakob,horseshoe,intricate,veracruz,sarawak,syndication,synthesizer,anthologies,stature,feasibility,guillaume,narratives,publicized,antrim,intermittent,constituents,grimsby,filmmaking,doping,unlawful,nominally,transmitting,documenting,seater,internationale,ejected,steamboat,alsace,boise,ineligible,geared,vassal,mustered,ville,inline,pairing,eurasian,kyrgyzstan,barnsley,reprise,stereotypes,rushes,conform,firefighters,deportivo,revolutionaries,rabbis,concurrency,charters,sustaining,aspirations,algiers,chichester,falkland,morphological,systematically,volcanoes,designate,artworks,reclaimed,jurist,anglia,resurrected,chaotic,feasible,circulating,simulated,environmentally,confinement,adventist,harrisburg,laborers,ostensibly,universiade,pensions,influenza,bratislava,octave,refurbishment,gothenburg,putin,barangay,annapolis,breaststroke,illustrates,distorted,choreographed,promo,emphasizing,stakeholders,descends,exhibiting,intrinsic,invertebrates,evenly,roundabout,salts,formula_10,strata,inhibition,branching,stylistic,rumored,realises,mitochondrial,commuted,adherents,logos,bloomberg,telenovela,guineas,charcoal,engages,winery,reflective,siena,cambridgeshire,ventral,flashback,installing,engraving,grasses,traveller,rotated,proprietor,nationalities,precedence,sourced,trainers,cambodian,reductions,depleted,saharan,classifications,biochemistry,plaintiffs,arboretum,humanist,fictitious,aleppo,climates,bazaar,his/her,homogeneous,multiplication,moines,indexed,linguist,skeletal,foliage,societal,differentiated,informing,mammal,infancy,archival,cafes,malls,graeme,musee,schizophrenia,fargo,pronouns,derivation,descend,ascending,terminating,deviation,recaptured,confessions,weakening,tajikistan,bahadur,pasture,b/hip,donegal,supervising,sikhs,thinkers,euclidean,reinforcement,friars,portage,fuscous,lucknow,synchronized,assertion,choirs,privatization,corrosion,multitude,skyscraper,royalties,ligament,usable,spores,directs,clashed,stockport,fronted,dependency,contiguous,biologist,backstroke,powerhouse,frescoes,phylogenetic,welding,kildare,gabon,conveyed,augsburg,severn,continuum,sahib,lille,injuring,passeriformesfamily,succeeds,translating,unitarian,startup,turbulent,outlying,philanthropic,stanislaw,idols,claremont,conical,haryana,armagh,blended,implicit,conditioned,modulation,rochdale,labourers,coinage,shortstop,potsdam,gears,obesity,bestseller,advisers,bouts,comedians,jozef,lausanne,taxonomic,correlated,columbian,marne,indications,psychologists,libel,edict,beaufort,disadvantages,renal,finalized,racehorse,unconventional,disturbances,falsely,zoology,adorned,redesign,executing,narrower,commended,appliances,stalls,resurgence,saskatoon,miscellaneous,permitting,epoch,formula_11,cumbria,forefront,vedic,eastenders,disposed,supermarkets,rower,inhibitor,magnesium,colourful,yusuf,harrow,formulas,centrally,balancing,ionic,nocturnal,consolidate,ornate,raiding,charismatic,accelerate,nominate,residual,dhabi,commemorates,attribution,uninhabited,mindanao,atrocities,genealogical,romani,applicant,enactment,abstraction,trough,pulpit,minuscule,misconduct,grenades,timely,supplements,messaging,curvature,ceasefire,telangana,susquehanna,braking,redistribution,shreveport,neighbourhoods,gregorian,widowed,khuzestan,empowerment,scholastic,evangelist,peptide,topical,theorist,historia,thence,sudanese,museo,jurisprudence,masurian,frankish,headlined,recounted,netball,petitions,tolerant,hectare,truncated,southend,methane,captives,reigns,massif,subunit,acidic,weightlifting,footballers,sabah,britannia,tunisian,segregated,sawmill,withdrawing,unpaid,weaponry,somme,perceptions,unicode,alcoholism,durban,wrought,waterfalls,jihad,auschwitz,upland,eastbound,adjective,anhalt,evaluating,regimes,guildford,reproduced,pamphlets,hierarchical,maneuvers,hanoi,fabricated,repetition,enriched,arterial,replacements,tides,globalization,adequately,westbound,satisfactory,fleets,phosphorus,lastly,neuroscience,anchors,xinjiang,membranes,improvisation,shipments,orthodoxy,submissions,bolivian,mahmud,ramps,leyte,pastures,outlines,flees,transmitters,fares,sequential,stimulated,novice,alternately,symmetrical,breakaway,layered,baronets,lizards,blackish,edouard,horsepower,penang,principals,mercantile,maldives,overwhelmingly,hawke,rallied,prostate,conscription,juveniles,maccabi,carvings,strikers,sudbury,spurred,improves,lombardy,macquarie,parisian,elastic,distillery,shetland,humane,brentford,wrexham,warehouses,routines,encompassed,introductory,isfahan,instituto,palais,revolutions,sporadic,impoverished,portico,fellowships,speculative,enroll,dormant,adhere,fundamentally,sculpted,meritorious,template,upgrading,reformer,rectory,uncredited,indicative,creeks,galveston,radically,hezbollah,firearm,educating,prohibits,trondheim,locus,refit,headwaters,screenings,lowlands,wasps,coarse,attaining,sedimentary,perished,pitchfork,interned,cerro,stagecoach,aeronautical,liter,transitioned,haydn,inaccurate,legislatures,bromwich,knesset,spectroscopy,butte,asiatic,degraded,concordia,catastrophic,lobes,wellness,pensacola,periphery,hapoel,theta,horizontally,freiburg,liberalism,pleas,durable,warmian,offenses,mesopotamia,shandong,unsuitable,hospitalized,appropriately,phonetic,encompass,conversions,observes,illnesses,breakout,assigns,crowns,inhibitors,nightly,manifestation,fountains,maximize,alphabetical,sloop,expands,newtown,widening,gaddafi,commencing,camouflage,footprint,tyrol,barangays,universite,highlanders,budgets,query,lobbied,westchester,equator,stipulated,pointe,distinguishes,allotted,embankment,advises,storing,loyalists,fourier,rehearsals,starvation,gland,rihanna,tubular,expressive,baccalaureate,intersections,revered,carbonate,eritrea,craftsmen,cosmopolitan,sequencing,corridors,shortlisted,bangladeshi,persians,mimic,parades,repetitive,recommends,flanks,promoters,incompatible,teaming,ammonia,greyhound,solos,improper,legislator,newsweek,recurrent,vitro,cavendish,eireann,crises,prophets,mandir,strategically,guerrillas,formula_12,ghent,contenders,equivalence,drone,sociological,hamid,castes,statehood,aland,clinched,relaunched,tariffs,simulations,williamsburg,rotate,mediation,smallpox,harmonica,lodges,lavish,restrictive,o'sullivan,detainees,polynomials,echoes,intersecting,learners,elects,charlemagne,defiance,epsom,liszt,facilitating,absorbing,revelations,padua,pieter,pious,penultimate,mammalian,montenegrin,supplementary,widows,aromatic,croats,roanoke,trieste,legions,subdistrict,babylonian,grasslands,volga,violently,sparsely,oldies,telecommunication,respondents,quarries,downloadable,commandos,taxpayer,catalytic,malabar,afforded,copying,declines,nawab,junctions,assessing,filtering,classed,disused,compliant,christoph,gottingen,civilizations,hermitage,caledonian,whereupon,ethnically,springsteen,mobilization,terraces,indus,excel,zoological,enrichment,simulate,guitarists,registrar,cappella,invoked,reused,manchu,configured,uppsala,genealogy,mergers,casts,curricular,rebelled,subcontinent,horticultural,parramatta,orchestrated,dockyard,claudius,decca,prohibiting,turkmenistan,brahmin,clandestine,obligatory,elaborated,parasitic,helix,constraint,spearheaded,rotherham,eviction,adapting,albans,rescues,sociologist,guiana,convicts,occurrences,kamen,antennas,asturias,wheeled,sanitary,deterioration,trier,theorists,baseline,announcements,valea,planners,factual,serialized,serials,bilbao,demoted,fission,jamestown,cholera,alleviate,alteration,indefinite,sulfate,paced,climatic,valuation,artisans,proficiency,aegean,regulators,fledgling,sealing,influencing,servicemen,frequented,cancers,tambon,narayan,bankers,clarified,embodied,engraver,reorganisation,dissatisfied,dictated,supplemental,temperance,ratification,puget,nutrient,pretoria,papyrus,uniting,ascribed,cores,coptic,schoolhouse,barrio,
1910s,armory,defected,transatlantic,regulates,ported,artefacts,specifies,boasted,scorers,mollusks,emitted,navigable,quakers,projective,dialogues,reunification,exponential,vastly,banners,unsigned,dissipated,halves,coincidentally,leasing,purported,escorting,estimation,foxes,lifespan,inflorescence,assimilation,showdown,staunch,prologue,ligand,superliga,telescopes,northwards,keynote,heaviest,taunton,redeveloped,vocalists,podlaskie,soyuz,rodents,azores,moravian,outset,parentheses,apparel,domestically,authoritative,polymers,monterrey,inhibit,launcher,jordanian,folds,taxis,mandates,singled,liechtenstein,subsistence,marxism,ousted,governorship,servicing,offseason,modernism,prism,devout,translators,islamist,chromosomes,pitted,bedfordshire,fabrication,authoritarian,javanese,leaflets,transient,substantive,predatory,sigismund,assassinate,diagrams,arrays,rediscovered,reclamation,spawning,fjord,peacekeeping,strands,fabrics,highs,regulars,tirana,ultraviolet,athenian,filly,barnet,naacp,nueva,favourites,terminates,showcases,clones,inherently,interpreting,bjorn,finely,lauded,unspecified,chola,pleistocene,insulation,antilles,donetsk,funnel,nutritional,biennale,reactivated,southport,primate,cavaliers,austrians,interspersed,restarted,suriname,amplifiers,wladyslaw,blockbuster,sportsman,minogue,brightness,benches,bridgeport,initiating,israelis,orbiting,newcomers,externally,scaling,transcribed,impairment,luxurious,longevity,impetus,temperament,ceilings,tchaikovsky,spreads,pantheon,bureaucracy,
1820s,heraldic,villas,formula_13,galician,meath,avoidance,corresponded,headlining,connacht,seekers,rappers,solids,monograph,scoreless,opole,isotopes,himalayas,parodies,garments,microscopic,republished,havilland,orkney,demonstrators,pathogen,saturated,hellenistic,facilitates,aerodynamic,relocating,indochina,laval,astronomers,bequeathed,administrations,extracts,nagoya,torquay,demography,medicare,ambiguity,renumbered,pursuant,concave,syriac,electrode,dispersal,henan,bialystok,walsall,crystalline,puebla,janata,illumination,tianjin,enslaved,coloration,championed,defamation,grille,johor,rejoin,caspian,fatally,planck,workings,appointing,institutionalized,wessex,modernized,exemplified,regatta,jacobite,parochial,programmers,blending,eruptions,insurrection,regression,indices,sited,dentistry,mobilized,furnishings,levant,primaries,ardent,nagasaki,conqueror,dorchester,opined,heartland,amman,mortally,wellesley,bowlers,outputs,coveted,orthography,immersion,disrepair,disadvantaged,curate,childless,condensed,codice_1,remodeled,resultant,bolsheviks,superfamily,saxons,
2010s,contractual,rivalries,malacca,oaxaca,magnate,vertebrae,quezon,olympiad,yucatan,tyres,macro,specialization,commendation,caliphate,gunnery,exiles,excerpts,fraudulent,adjustable,aramaic,interceptor,drumming,standardization,reciprocal,adolescents,federalist,aeronautics,favorably,enforcing,reintroduced,zhejiang,refining,biplane,banknotes,accordion,intersect,illustrating,summits,classmate,militias,biomass,massacres,epidemiology,reworked,wrestlemania,nantes,auditory,taxon,elliptical,chemotherapy,asserting,avoids,proficient,airmen,yellowstone,multicultural,alloys,utilization,seniority,kuyavian,huntsville,orthogonal,bloomington,cultivars,casimir,internment,repulsed,impedance,revolving,fermentation,parana,shutout,partnering,empowered,islamabad,polled,classify,amphibians,greyish,obedience,
4x100,projectile,khyber,halfback,relational,d'ivoire,synonyms,endeavour,padma,customized,mastery,defenceman,berber,purge,interestingly,covent,promulgated,restricting,condemnation,hillsborough,walkers,privateer,intra,captaincy,naturalized,huffington,detecting,hinted,migrating,bayou,counterattack,anatomical,foraging,unsafe,swiftly,outdated,paraguayan,attire,masjid,endeavors,jerseys,triassic,quechua,growers,axial,accumulate,wastewater,cognition,fungal,animator,pagoda,kochi,uniformly,antibody,yerevan,hypotheses,combatants,italianate,draining,fragmentation,snowfall,formative,inversion,kitchener,identifier,additive,lucha,selects,ashland,cambrian,racetrack,trapping,congenital,primates,wavelengths,expansions,yeomanry,harcourt,wealthiest,awaited,punta,intervening,aggressively,vichy,piloted,midtown,tailored,heyday,metadata,guadalcanal,inorganic,hadith,pulses,francais,tangent,scandals,erroneously,tractors,pigment,constabulary,jiangsu,landfill,merton,basalt,astor,forbade,debuts,collisions,exchequer,stadion,roofed,flavour,sculptors,conservancy,dissemination,electrically,undeveloped,existent,surpassing,pentecostal,manifested,amend,formula_14,superhuman,barges,tunis,analytics,argyll,liquids,mechanized,domes,mansions,himalayan,indexing,reuters,nonlinear,purification,exiting,timbers,triangles,decommissioning,departmental,causal,fonts,americana,sept.,seasonally,incomes,razavi,sheds,memorabilia,rotational,terre,sutra,protege,yarmouth,grandmaster,annum,looted,imperialism,variability,liquidation,baptised,isotope,showcasing,milling,rationale,hammersmith,austen,streamlined,acknowledging,contentious,qaleh,breadth,turing,referees,feral,toulon,unofficially,identifiable,standout,labeling,dissatisfaction,jurgen,angrily,featherweight,cantons,constrained,dominates,standalone,relinquished,theologians,markedly,italics,downed,nitrate,likened,gules,craftsman,singaporean,pixels,mandela,moray,parity,departement,antigen,academically,burgh,brahma,arranges,wounding,triathlon,nouveau,vanuatu,banded,acknowledges,unearthed,stemming,authentication,byzantines,converge,nepali,commonplace,deteriorating,recalling,palette,mathematicians,greenish,pictorial,ahmedabad,rouen,validation,u.s.a.,'best,malvern,archers,converter,undergoes,fluorescent,logistical,notification,transvaal,illicit,symphonies,stabilization,worsened,fukuoka,decrees,enthusiast,seychelles,blogger,louvre,dignitaries,burundi,wreckage,signage,pinyin,bursts,federer,polarization,urbana,lazio,schism,nietzsche,venerable,administers,seton,kilograms,invariably,kathmandu,farmed,disqualification,earldom,appropriated,fluctuations,kermanshah,deployments,deformation,wheelbase,maratha,psalm,bytes,methyl,engravings,skirmish,fayette,vaccines,ideally,astrology,breweries,botanic,opposes,harmonies,irregularities,contended,gaulle,prowess,constants,aground,filipinos,fresco,ochreous,jaipur,willamette,quercus,eastwards,mortars,champaign,braille,reforming,horned,hunan,spacious,agitation,draught,specialties,flourishing,greensboro,necessitated,swedes,elemental,whorls,hugely,structurally,plurality,synthesizers,embassies,assad,contradictory,inference,discontent,recreated,inspectors,unicef,commuters,embryo,modifying,stints,numerals,communicated,boosted,trumpeter,brightly,adherence,remade,leases,restrained,eucalyptus,dwellers,planar,grooves,gainesville,daimler,anzac,szczecin,cornerback,prized,peking,mauritania,khalifa,motorized,lodging,instrumentalist,fortresses,cervical,formula_15,passerine,sectarian,researches,apprenticed,reliefs,disclose,gliding,repairing,queue,kyushu,literate,canoeing,sacrament,separatist,calabria,parkland,flowed,investigates,statistically,visionary,commits,dragoons,scrolls,premieres,revisited,subdued,censored,patterned,elective,outlawed,orphaned,leyland,richly,fujian,miniatures,heresy,plaques,countered,nonfiction,exponent,moravia,dispersion,marylebone,midwestern,enclave,ithaca,federated,electronically,handheld,microscopy,tolls,arrivals,climbers,continual,cossacks,moselle,deserts,ubiquitous,gables,forecasts,deforestation,vertebrates,flanking,drilled,superstructure,inspected,consultative,bypassed,ballast,subsidy,socioeconomic,relic,grenada,journalistic,administering,accommodated,collapses,appropriation,reclassified,foreword,porte,assimilated,observance,fragmented,arundel,thuringia,gonzaga,shenzhen,shipyards,sectional,ayrshire,sloping,dependencies,promenade,ecuadorian,mangrove,constructs,goalscorer,heroism,iteration,transistor,omnibus,hampstead,cochin,overshadowed,chieftain,scalar,finishers,ghanaian,abnormalities,monoplane,encyclopaedia,characterize,travancore,baronetage,bearers,biking,distributes,paving,christened,inspections,banco,humber,corinth,quadratic,albanians,lineages,majored,roadside,inaccessible,inclination,darmstadt,fianna,epilepsy,propellers,papacy,montagu,bhutto,sugarcane,optimized,pilasters,contend,batsmen,brabant,housemates,sligo,ascot,aquinas,supervisory,accorded,gerais,echoed,nunavut,conservatoire,carniola,quartermaster,gminas,impeachment,aquitaine,reformers,quarterfinal,karlsruhe,accelerator,coeducational,archduke,gelechiidae,seaplane,dissident,frenchman,palau,depots,hardcover,aachen,darreh,denominational,groningen,parcels,reluctance,drafts,elliptic,counters,decreed,airship,devotional,contradiction,formula_16,undergraduates,qualitative,guatemalan,slavs,southland,blackhawks,detrimental,abolish,chechen,manifestations,arthritis,perch,fated,hebei,peshawar,palin,immensely,havre,totalling,rampant,ferns,concourse,triples,elites,olympian,larva,herds,lipid,karabakh,distal,monotypic,vojvodina,batavia,multiplied,spacing,spellings,pedestrians,parchment,glossy,industrialization,dehydrogenase,patriotism,abolitionist,mentoring,elizabethan,figurative,dysfunction,abyss,constantin,middletown,stigma,mondays,gambia,gaius,israelites,renounced,nepalese,overcoming,buren,sulphur,divergence,predation,looting,iberia,futuristic,shelved,anthropological,innsbruck,escalated,clermont,entrepreneurial,benchmark,mechanically,detachments,populist,apocalyptic,exited,embryonic,stanza,readership,chiba,landlords,expansive,boniface,therapies,perpetrators,whitehall,kassel,masts,carriageway,clinch,pathogens,mazandaran,undesirable,teutonic,miocene,nagpur,juris,cantata,compile,diffuse,dynastic,reopening,comptroller,o'neal,flourish,electing,scientifically,departs,welded,modal,cosmology,fukushima,libertadores,chang'an,asean,generalization,localization,afrikaans,cricketers,accompanies,emigrants,esoteric,southwards,shutdown,prequel,fittings,innate,wrongly,equitable,dictionaries,senatorial,bipolar,flashbacks,semitism,walkway,lyrically,legality,sorbonne,vigorously,durga,samoan,karel,interchanges,patna,decider,registering,electrodes,anarchists,excursion,overthrown,gilan,recited,michelangelo,advertiser,kinship,taboo,cessation,formula_17,premiers,traversed,madurai,poorest,torneo,exerted,replicate,spelt,sporadically,horde,landscaping,razed,hindered,esperanto,manchuria,propellant,jalan,baha'is,sikkim,linguists,pandit,racially,ligands,dowry,francophone,escarpment,behest,magdeburg,mainstay,villiers,yangtze,grupo,conspirators,martyrdom,noticeably,lexical,kazakh,unrestricted,utilised,sired,inhabits,proofs,joseon,pliny,minted,buddhists,cultivate,interconnected,reuse,viability,australasian,derelict,resolving,overlooks,menon,stewardship,playwrights,thwarted,filmfare,disarmament,protections,bundles,sidelined,hypothesized,singer/songwriter,forage,netted,chancery,townshend,restructured,quotation,hyperbolic,succumbed,parliaments,shenandoah,apical,kibbutz,storeys,pastors,lettering,ukrainians,hardships,chihuahua,avail,aisles,taluka,antisemitism,assent,ventured,banksia,seamen,hospice,faroe,fearful,woreda,outfield,chlorine,transformer,tatar,panoramic,pendulum,haarlem,styria,cornice,importing,catalyzes,subunits,enamel,bakersfield,realignment,sorties,subordinates,deanery,townland,gunmen,tutelage,evaluations,allahabad,thrace,veneto,mennonite,sharia,subgenus,satisfies,puritan,unequal,gastrointestinal,ordinances,bacterium,horticulture,argonauts,adjectives,arable,duets,visualization,woolwich,revamped,euroleague,thorax,completes,originality,vasco,freighter,sardar,oratory,sects,extremes,signatories,exporting,arisen,exacerbated,departures,saipan,furlongs,d'italia,goring,dakar,conquests,docked,offshoot,okrug,referencing,disperse,netting,summed,rewritten,articulation,humanoid,spindle,competitiveness,preventive,facades,westinghouse,wycombe,synthase,emulate,fostering,abdel,hexagonal,myriad,caters,arjun,dismay,axiom,psychotherapy,colloquial,complemented,martinique,fractures,culmination,erstwhile,atrium,electronica,anarchism,nadal,montpellier,algebras,submitting,adopts,stemmed,overcame,internacional,asymmetric,gallipoli,gliders,flushing,extermination,hartlepool,tesla,interwar,patriarchal,hitherto,ganges,combatant,marred,philology,glastonbury,reversible,isthmus,undermined,southwark,gateshead,andalusia,remedies,hastily,optimum,smartphone,evade,patrolled,beheaded,dopamine,waivers,ugandan,gujarati,densities,predicting,intestinal,tentative,interstellar,kolonia,soloists,penetrated,rebellions,qeshlaq,prospered,colegio,deficits,konigsberg,deficient,accessing,relays,kurds,politburo,codified,incarnations,occupancy,cossack,metaphysical,deprivation,chopra,piccadilly,formula_18,makeshift,protestantism,alaskan,frontiers,faiths,tendon,dunkirk,durability,autobots,bonuses,coinciding,emails,gunboat,stucco,magma,neutrons,vizier,subscriptions,visuals,envisaged,carpets,smoky,schema,parliamentarian,immersed,domesticated,parishioners,flinders,diminutive,mahabharata,ballarat,falmouth,vacancies,gilded,twigs,mastering,clerics,dalmatia,islington,slogans,compressor,iconography,congolese,sanction,blends,bulgarians,moderator,outflow,textures,safeguard,trafalgar,tramways,skopje,colonialism,chimneys,jazeera,organisers,denoting,motivations,ganga,longstanding,deficiencies,gwynedd,palladium,holistic,fascia,preachers,embargo,sidings,busan,ignited,artificially,clearwater,cemented,northerly,salim,equivalents,crustaceans,oberliga,quadrangle,historiography,romanians,vaults,fiercely,incidental,peacetime,tonal,bhopal,oskar,radha,pesticides,timeslot,westerly,cathedrals,roadways,aldershot,connectors,brahmins,paler,aqueous,gustave,chromatic,linkage,lothian,specialises,aggregation,tributes,insurgent,enact,hampden,ghulam,federations,instigated,lyceum,fredrik,chairmanship,floated,consequent,antagonists,intimidation,patriarchate,warbler,heraldry,entrenched,expectancy,habitation,partitions,widest,launchers,nascent,ethos,wurzburg,lycee,chittagong,mahatma,merseyside,asteroids,yokosuka,cooperatives,quorum,redistricting,bureaucratic,yachts,deploying,rustic,phonology,chorale,cellist,stochastic,crucifixion,surmounted,confucian,portfolios,geothermal,crested,calibre,tropics,deferred,nasir,iqbal,persistence,essayist,chengdu,aborigines,fayetteville,bastion,interchangeable,burlesque,kilmarnock,specificity,tankers,colonels,fijian,quotations,enquiry,quito,palmerston,delle,multidisciplinary,polynesian,iodine,antennae,emphasised,manganese,baptists,galilee,jutland,latent,excursions,skepticism,tectonic,precursors,negligible,musique,misuse,vitoria,expressly,veneration,sulawesi,footed,mubarak,chongqing,chemically,midday,ravaged,facets,varma,yeovil,ethnographic,discounted,physicists,attache,disbanding,essen,shogunate,cooperated,waikato,realising,motherwell,pharmacology,sulfide,inward,expatriate,devoid,cultivar,monde,andean,groupings,goran,unaffected,moldovan,postdoctoral,coleophora,delegated,pronoun,conductivity,coleridge,disapproval,reappeared,microbial,campground,olsztyn,fostered,vaccination,rabbinical,champlain,milestones,viewership,caterpillar,effected,eupithecia,financier,inferred,uzbek,bundled,bandar,balochistan,mysticism,biosphere,holotype,symbolizes,lovecraft,photons,abkhazia,swaziland,subgroups,measurable,falkirk,valparaiso,ashok,discriminatory,rarity,tabernacle,flyweight,jalisco,westernmost,antiquarian,extracellular,margrave,colspan=
9,midsummer,digestive,reversing,burgeoning,substitutes,medallist,khrushchev,guerre,folio,detonated,partido,plentiful,aggregator,medallion,infiltration,shaded,santander,fared,auctioned,permian,ramakrishna,andorra,mentors,diffraction,bukit,potentials,translucent,feminists,tiers,protracted,coburg,wreath,guelph,adventurer,he/she,vertebrate,pipelines,celsius,outbreaks,australasia,deccan,garibaldi,unionists,buildup,biochemical,reconstruct,boulders,stringent,barbed,wording,furnaces,pests,befriends,organises,popes,rizal,tentacles,cadre,tallahassee,punishments,occidental,formatted,mitigation,rulings,rubens,cascades,inducing,choctaw,volta,synagogues,movable,altarpiece,mitigate,practise,intermittently,encountering,memberships,earns,signify,retractable,amounting,pragmatic,wilfrid,dissenting,divergent,kanji,reconstituted,devonian,constitutions,levied,hendrik,starch,costal,honduran,ditches,polygon,eindhoven,superstars,salient,argus,punitive,purana,alluvial,flaps,inefficient,retracted,advantageous,quang,andersson,danville,binghamton,symbolize,conclave,shaanxi,silica,interpersonal,adept,frans,pavilions,lubbock,equip,sunken,limburg,activates,prosecutions,corinthian,venerated,shootings,retreats,parapet,orissa,riviere,animations,parodied,offline,metaphysics,bluffs,plume,piety,fruition,subsidized,steeplechase,shanxi,eurasia,angled,forecasting,suffragan,ashram,larval,labyrinth,chronicler,summaries,trailed,merges,thunderstorms,filtered,formula_19,advertisers,alpes,informatics,parti,constituting,undisputed,certifications,javascript,molten,sclerosis,rumoured,boulogne,hmong,lewes,breslau,notts,bantu,ducal,messengers,radars,nightclubs,bantamweight,carnatic,kaunas,fraternal,triggering,controversially,londonderry,visas,scarcity,offaly,uprisings,repelled,corinthians,pretext,kuomintang,kielce,empties,matriculated,pneumatic,expos,agile,treatises,midpoint,prehistory,oncology,subsets,hydra,hypertension,axioms,wabash,reiterated,swapped,achieves,premio,ageing,overture,curricula,challengers,subic,selangor,liners,frontline,shutter,validated,normalized,entertainers,molluscs,maharaj,allegation,youngstown,synth,thoroughfare,regionally,pillai,transcontinental,pedagogical,riemann,colonia,easternmost,tentatively,profiled,herefordshire,nativity,meuse,nucleotide,inhibits,huntingdon,throughput,recorders,conceding,domed,homeowners,centric,gabled,canoes,fringes,breeder,subtitled,fluoride,haplogroup,zionism,izmir,phylogeny,kharkiv,romanticism,adhesion,usaaf,delegations,lorestan,whalers,biathlon,vaulted,mathematically,pesos,skirmishes,heisman,kalamazoo,gesellschaft,launceston,interacts,quadruple,kowloon,psychoanalysis,toothed,ideologies,navigational,valence,induces,lesotho,frieze,rigging,undercarriage,explorations,spoof,eucharist,profitability,virtuoso,recitals,subterranean,sizeable,herodotus,subscriber,huxley,pivot,forewing,warring,boleslaw,bharatiya,suffixes,trois,percussionist,downturn,garrisons,philosophies,chants,mersin,mentored,dramatist,guilds,frameworks,thermodynamic,venomous,mehmed,assembling,rabbinic,hegemony,replicas,enlargement,claimant,retitled,utica,dumfries,metis,deter,assortment,tubing,afflicted,weavers,rupture,ornamentation,transept,salvaged,upkeep,callsign,rajput,stevenage,trimmed,intracellular,synchronization,consular,unfavorable,royalists,goldwyn,fasting,hussars,doppler,obscurity,currencies,amiens,acorn,tagore,townsville,gaussian,migrations,porta,anjou,graphite,seaport,monographs,gladiators,metrics,calligraphy,sculptural,swietokrzyskie,tolombeh,eredivisie,shoals,queries,carts,exempted,fiberglass,mirrored,bazar,progeny,formalized,mukherjee,professed,amazon.com,cathode,moreton,removable,mountaineers,nagano,transplantation,augustinian,steeply,epilogue,adapter,decisively,accelerating,mediaeval,substituting,tasman,devonshire,litres,enhancements,himmler,nephews,bypassing,imperfect,argentinian,reims,integrates,sochi,ascii,licences,niches,surgeries,fables,versatility,indra,footpath,afonso,crore,evaporation,encodes,shelling,conformity,simplify,updating,quotient,overt,firmware,umpires,architectures,eocene,conservatism,secretion,embroidery,f.c..,tuvalu,mosaics,shipwreck,prefectural,cohort,grievances,garnering,centerpiece,apoptosis,djibouti,bethesda,formula_20,shonen,richland,justinian,dormitories,meteorite,reliably,obtains,pedagogy,hardness,cupola,manifolds,amplification,steamers,familial,dumbarton,jerzy,genital,maidstone,salinity,grumman,signifies,presbytery,meteorology,procured,aegis,streamed,deletion,nuestra,mountaineering,accords,neuronal,khanate,grenoble,axles,dispatches,tokens,turku,auctions,propositions,planters,proclaiming,recommissioned,stravinsky,obverse,bombarded,waged,saviour,massacred,reformist,purportedly,resettlement,ravenna,embroiled,minden,revitalization,hikers,bridging,torpedoed,depletion,nizam,affectionately,latitudes,lubeck,spore,polymerase,aarhus,nazism,
101st,buyout,galerie,diets,overflow,motivational,renown,brevet,deriving,melee,goddesses,demolish,amplified,tamworth,retake,brokerage,beneficiaries,henceforth,reorganised,silhouette,browsers,pollutants,peron,lichfield,encircled,defends,bulge,dubbing,flamenco,coimbatore,refinement,enshrined,grizzlies,capacitor,usefulness,evansville,interscholastic,rhodesian,bulletins,diamondbacks,rockers,platted,medalists,formosa,transporter,slabs,guadeloupe,disparate,concertos,violins,regaining,mandible,untitled,agnostic,issuance,hamiltonian,brampton,srpska,homology,downgraded,florentine,epitaph,kanye,rallying,analysed,grandstand,infinitely,antitrust,plundered,modernity,colspan=
3|total,amphitheatre,doric,motorists,yemeni,carnivorous,probabilities,prelate,struts,scrapping,bydgoszcz,pancreatic,signings,predicts,compendium,ombudsman,apertura,appoints,rebbe,stereotypical,valladolid,clustered,touted,plywood,inertial,kettering,curving,d'honneur,housewives,grenadier,vandals,barbarossa,necked,waltham,reputedly,jharkhand,cistercian,pursues,viscosity,organiser,cloister,islet,stardom,moorish,himachal,strives,scripps,staggered,blasts,westwards,millimeters,angolan,hubei,agility,admirals,mordellistena,coincides,platte,vehicular,cordillera,riffs,schoolteacher,canaan,acoustics,tinged,reinforcing,concentrates,daleks,monza,selectively,musik,polynesia,exporter,reviving,macclesfield,bunkers,ballets,manors,caudal,microbiology,primes,unbroken,outcry,flocks,pakhtunkhwa,abelian,toowoomba,luminous,mould,appraisal,leuven,experimentally,interoperability,hideout,perak,specifying,knighthood,vasily,excerpt,computerized,niels,networked,byzantium,reaffirmed,geographer,obscured,fraternities,mixtures,allusion,accra,lengthened,inquest,panhandle,pigments,revolts,bluetooth,conjugate,overtaken,foray,coils,breech,streaks,impressionist,mendelssohn,intermediary,panned,suggestive,nevis,upazila,rotunda,mersey,linnaeus,anecdotes,gorbachev,viennese,exhaustive,moldavia,arcades,irrespective,orator,diminishing,predictive,cohesion,polarized,montage,avian,alienation,conus,jaffna,urbanization,seawater,extremity,editorials,scrolling,dreyfus,traverses,topographic,gunboats,extratropical,normans,correspondents,recognises,millennia,filtration,ammonium,voicing,complied,prefixes,diplomas,figurines,weakly,gated,oscillator,lucerne,embroidered,outpatient,airframe,fractional,disobedience,quarterbacks,formula_21,shinto,chiapas,epistle,leakage,pacifist,avignon,penrith,renders,mantua,screenplays,gustaf,tesco,alphabetically,rations,discharges,headland,tapestry,manipur,boolean,mediator,ebenezer,subchannel,fable,bestselling,ateneo,trademarks,recurrence,dwarfs,britannica,signifying,vikram,mediate,condensation,censuses,verbandsgemeinde,cartesian,sprang,surat,britons,chelmsford,courtenay,statistic,retina,abortions,liabilities,closures,mississauga,skyscrapers,saginaw,compounded,aristocrat,msnbc,stavanger,septa,interpretive,hinder,visibly,seeding,shutouts,irregularly,quebecois,footbridge,hydroxide,implicitly,lieutenants,simplex,persuades,midshipman,heterogeneous,officiated,crackdown,lends,tartu,altars,fractions,dissidents,tapered,modernisation,scripting,blazon,aquaculture,thermodynamics,sistan,hasidic,bellator,pavia,propagated,theorized,bedouin,transnational,mekong,chronicled,declarations,kickstarter,quotas,runtime,duquesne,broadened,clarendon,brownsville,saturation,tatars,electorates,malayan,replicated,observable,amphitheater,endorsements,referral,allentown,mormons,pantomime,eliminates,typeface,allegorical,varna,conduction,evoke,interviewer,subordinated,uyghur,landscaped,conventionally,ascend,edifice,postulated,hanja,whitewater,embarking,musicologist,tagalog,frontage,paratroopers,hydrocarbons,transliterated,nicolae,viewpoints,surrealist,asheville,falklands,hacienda,glide,opting,zimbabwean,discal,mortgages,nicaraguan,yadav,ghosh,abstracted,castilian,compositional,cartilage,intergovernmental,forfeited,importation,rapping,artes,republika,narayana,condominium,frisian,bradman,duality,marche,extremist,phosphorylation,genomes,allusions,valencian,habeas,ironworks,multiplex,harpsichord,emigrate,alternated,breda,waffen,smartphones,familiarity,regionalliga,herbaceous,piping,dilapidated,carboniferous,xviii,critiques,carcinoma,sagar,chippewa,postmodern,neapolitan,excludes,notoriously,distillation,tungsten,richness,installments,monoxide,chand,privatisation,molded,maths,projectiles,luoyang,epirus,lemma,concentric,incline,erroneous,sideline,gazetted,leopards,fibres,renovate,corrugated,unilateral,repatriation,orchestration,saeed,rockingham,loughborough,formula_22,bandleader,appellation,openness,nanotechnology,massively,tonnage,dunfermline,exposes,moored,ridership,motte,eurobasket,majoring,feats,silla,laterally,playlist,downwards,methodologies,eastbourne,daimyo,cellulose,leyton,norwalk,oblong,hibernian,opaque,insular,allegory,camogie,inactivation,favoring,masterpieces,rinpoche,serotonin,portrayals,waverley,airliner,longford,minimalist,outsourcing,excise,meyrick,qasim,organisational,synaptic,farmington,gorges,scunthorpe,zoned,tohoku,librarians,davao,decor,theatrically,brentwood,pomona,acquires,planter,capacitors,synchronous,skateboarding,coatings,turbocharged,ephraim,capitulation,scoreboard,hebrides,ensues,cereals,ailing,counterpoint,duplication,antisemitic,clique,aichi,oppressive,transcendental,incursions,rename,renumbering,powys,vestry,bitterly,neurology,supplanted,affine,susceptibility,orbiter,activating,overlaps,ecoregion,raman,canoer,darfur,microorganisms,precipitated,protruding,torun,anthropologists,rennes,kangaroos,parliamentarians,edits,littoral,archived,begum,rensselaer,microphones,ypres,empower,etruscan,wisden,montfort,calibration,isomorphic,rioting,kingship,verbally,smyrna,cohesive,canyons,fredericksburg,rahul,relativistic,micropolitan,maroons,industrialized,henchmen,uplift,earthworks,mahdi,disparity,cultured,transliteration,spiny,fragmentary,extinguished,atypical,inventors,biosynthesis,heralded,curacao,anomalies,aeroplane,surya,mangalore,maastricht,ashkenazi,fusiliers,hangzhou,emitting,monmouthshire,schwarzenegger,ramayana,peptides,thiruvananthapuram,alkali,coimbra,budding,reasoned,epithelial,harbors,rudimentary,classically,parque,ealing,crusades,rotations,riparian,pygmy,inertia,revolted,microprocessor,calendars,solvents,kriegsmarine,accademia,cheshmeh,yoruba,ardabil,mitra,genomic,notables,propagate,narrates,univision,outposts,polio,birkenhead,urinary,crocodiles,pectoral,barrymore,deadliest,rupees,chaim,protons,comical,astrophysics,unifying,formula_23,vassals,cortical,audubon,pedals,tenders,resorted,geophysical,lenders,recognising,tackling,lanarkshire,doctrinal,annan,combating,guangxi,estimating,selectors,tribunals,chambered,inhabiting,exemptions,curtailed,abbasid,kandahar,boron,bissau,
150th,codenamed,wearer,whorl,adhered,subversive,famer,smelting,inserting,mogadishu,zoologist,mosul,stumps,almanac,olympiacos,stamens,participatory,cults,honeycomb,geologists,dividend,recursive,skiers,reprint,pandemic,liber,percentages,adversely,stoppage,chieftains,tubingen,southerly,overcrowding,unorganized,hangars,fulfil,hails,cantilever,woodbridge,pinus,wiesbaden,fertilization,fluorescence,enhances,plenary,troublesome,episodic,thrissur,kickboxing,allele,staffing,garda,televisions,philatelic,spacetime,bullpen,oxides,leninist,enrolling,inventive,truro,compatriot,ruskin,normative,assay,gotha,murad,illawarra,gendarmerie,strasse,mazraeh,rebounded,fanfare,liaoning,rembrandt,iranians,emirate,governs,latency,waterfowl,chairmen,katowice,aristocrats,eclipsed,sentient,sonatas,interplay,sacking,decepticons,dynamical,arbitrarily,resonant,petar,velocities,alludes,wastes,prefectures,belleville,sensibility,salvadoran,consolidating,medicaid,trainees,vivekananda,molar,porous,upload,youngster,infused,doctorates,wuhan,annihilation,enthusiastically,gamespot,kanpur,accumulating,monorail,operetta,tiling,sapporo,finns,calvinist,hydrocarbon,sparrows,orienteering,cornelis,minster,vuelta,plebiscite,embraces,panchayats,focussed,remediation,brahman,olfactory,reestablished,uniqueness,northumbria,rwandan,predominately,abode,ghats,balances,californian,uptake,bruges,inert,westerns,reprints,cairn,yarra,resurfaced,audible,rossini,regensburg,italiana,fleshy,irrigated,alerts,yahya,varanasi,marginalized,expatriates,cantonment,normandie,sahitya,directives,rounder,hulls,fictionalized,constables,inserts,hipped,potosi,navies,biologists,canteen,husbandry,augment,fortnight,assamese,kampala,o'keefe,paleolithic,bluish,promontory,consecutively,striving,niall,reuniting,dipole,friendlies,disapproved,thrived,netflix,liberian,dielectric,medway,strategist,sankt,pickups,hitters,encode,rerouted,claimants,anglesey,partitioned,cavan,flutes,reared,repainted,armaments,bowed,thoracic,balliol,piero,chaplains,dehestan,sender,junkers,sindhi,sickle,dividends,metallurgy,honorific,berths,namco,springboard,resettled,gansu,copyrighted,criticizes,utopian,bendigo,ovarian,binomial,spaceflight,oratorio,proprietors,supergroup,duplicated,foreground,strongholds,revolved,optimize,layouts,westland,hurler,anthropomorphic,excelsior,merchandising,reeds,vetoed,cryptography,hollyoaks,monash,flooring,ionian,resilience,johnstown,resolves,lawmakers,alegre,wildcards,intolerance,subculture,selector,slums,formulate,bayonet,istvan,restitution,interchangeably,awakens,rostock,serpentine,oscillation,reichstag,phenotype,recessed,piotr,annotated,preparedness,consultations,clausura,preferential,euthanasia,genoese,outcrops,freemasonry,geometrical,genesee,islets,prometheus,panamanian,thunderbolt,terraced,stara,shipwrecks,futebol,faroese,sharqi,aldermen,zeitung,unify,formula_24,humanism,syntactic,earthen,blyth,taxed,rescinded,suleiman,cymru,dwindled,vitality,superieure,resupply,adolphe,ardennes,rajiv,profiling,olympique,gestation,interfaith,milosevic,tagline,funerary,druze,silvery,plough,shrubland,relaunch,disband,nunatak,minimizing,excessively,waned,attaching,luminosity,bugle,encampment,electrostatic,minesweeper,dubrovnik,rufous,greenock,hochschule,assyrians,extracting,malnutrition,priya,attainment,anhui,connotations,predicate,seabirds,deduced,pseudonyms,gopal,plovdiv,refineries,imitated,kwazulu,terracotta,tenets,discourses,brandeis,whigs,dominions,pulmonate,landslides,tutors,determinant,richelieu,farmstead,tubercles,technicolor,hegel,redundancy,greenpeace,shortening,mules,distilled,xxiii,fundamentalist,acrylic,outbuildings,lighted,corals,signaled,transistors,cavite,austerity,
76ers,exposures,dionysius,outlining,commutative,permissible,knowledgeable,howrah,assemblage,inhibited,crewmen,mbit/s,pyramidal,aberdeenshire,bering,rotates,atheism,howitzer,saone,lancet,fermented,contradicted,materiel,ofsted,numeric,uniformity,josephus,nazarene,kuwaiti,noblemen,pediment,emergent,campaigner,akademi,murcia,perugia,gallen,allsvenskan,finned,cavities,matriculation,rosters,twickenham,signatory,propel,readable,contends,artisan,flamboyant,reggio,italo,fumbles,widescreen,rectangle,centimetres,collaborates,envoys,rijeka,phonological,thinly,refractive,civilisation,reductase,cognate,dalhousie,monticello,lighthouses,jitsu,luneburg,socialite,fermi,collectible,optioned,marquee,jokingly,architecturally,kabir,concubine,nationalisation,watercolor,wicklow,acharya,pooja,leibniz,rajendra,nationalized,stalemate,bloggers,glutamate,uplands,shivaji,carolingian,bucuresti,dasht,reappears,muscat,functionally,formulations,hinged,hainan,catechism,autosomal,incremental,asahi,coeur,diversification,multilateral,fewest,recombination,finisher,harrogate,hangul,feasts,photovoltaic,paget,liquidity,alluded,incubation,applauded,choruses,malagasy,hispanics,bequest,underparts,cassava,kazimierz,gastric,eradication,mowtowr,tyrosine,archbishopric,e9e9e9,unproductive,uxbridge,hydrolysis,harbours,officio,deterministic,devonport,kanagawa,breaches,freetown,rhinoceros,chandigarh,janos,sanatorium,liberator,inequalities,agonist,hydrophobic,constructors,nagorno,snowboarding,welcomes,subscribed,iloilo,resuming,catalysts,stallions,jawaharlal,harriers,definitively,roughriders,hertford,inhibiting,elgar,randomized,incumbents,episcopate,rainforests,yangon,improperly,kemal,interpreters,diverged,uttarakhand,umayyad,phnom,panathinaikos,shabbat,diode,jiangxi,forbidding,nozzle,artistry,licensee,processions,staffs,decimated,expressionism,shingle,palsy,ontology,mahayana,maribor,sunil,hostels,edwardian,jetty,freehold,overthrew,eukaryotic,schuylkill,rawalpindi,sheath,recessive,ferenc,mandibles,berlusconi,confessor,convergent,ababa,slugging,rentals,sephardic,equivalently,collagen,markov,dynamically,hailing,depressions,sprawling,fairgrounds,indistinguishable,plutarch,pressurized,banff,coldest,braunschweig,mackintosh,sociedad,wittgenstein,tromso,airbase,lecturers,subtitle,attaches,purified,contemplated,dreamworks,telephony,prophetic,rockland,aylesbury,biscay,coherence,aleksandar,judoka,pageants,theses,homelessness,luthor,sitcoms,hinterland,fifths,derwent,privateers,enigmatic,nationalistic,instructs,superimposed,conformation,tricycle,dusan,attributable,unbeknownst,laptops,etching,archbishops,ayatollah,cranial,gharbi,interprets,lackawanna,abingdon,saltwater,tories,lender,minaj,ancillary,ranching,pembrokeshire,topographical,plagiarism,murong,marque,chameleon,assertions,infiltrated,guildhall,reverence,schenectady,formula_25,kollam,notary,mexicana,initiates,abdication,basra,theorems,ionization,dismantling,eared,censors,budgetary,numeral,verlag,excommunicated,distinguishable,quarried,cagliari,hindustan,symbolizing,watertown,descartes,relayed,enclosures,militarily,sault,devolved,dalian,djokovic,filaments,staunton,tumour,curia,villainous,decentralized,galapagos,moncton,quartets,onscreen,necropolis,brasileiro,multipurpose,alamos,comarca,jorgen,concise,mercia,saitama,billiards,entomologist,montserrat,lindbergh,commuting,lethbridge,phoenician,deviations,anaerobic,denouncing,redoubt,fachhochschule,principalities,negros,announcers,seconded,parrots,konami,revivals,approving,devotee,riyadh,overtook,morecambe,lichen,expressionist,waterline,silverstone,geffen,sternites,aspiration,behavioural,grenville,tripura,mediums,genders,pyotr,charlottesville,sacraments,programmable,ps100,shackleton,garonne,sumerian,surpass,authorizing,interlocking,lagoons,voiceless,advert,steeple,boycotted,alouettes,yosef,oxidative,sassanid,benefiting,sayyid,nauru,predetermined,idealism,maxillary,polymerization,semesters,munchen,conor,outfitted,clapham,progenitor,gheorghe,observational,recognitions,numerically,colonized,hazrat,indore,contaminants,fatality,eradicate,assyria,convocation,cameos,skillful,skoda,corfu,confucius,overtly,ramadan,wollongong,placements,d.c..,permutation,contemporaneous,voltages,elegans,universitat,samar,plunder,dwindling,neuter,antonin,sinhala,campania,solidified,stanzas,fibrous,marburg,modernize,sorcery,deutscher,florets,thakur,disruptive,infielder,disintegration,internazionale,vicariate,effigy,tripartite,corrective,klamath,environs,leavenworth,sandhurst,workmen,compagnie,hoseynabad,strabo,palisades,ordovician,sigurd,grandsons,defection,viacom,sinhalese,innovator,uncontrolled,slavonic,indexes,refrigeration,aircrew,superbike,resumption,neustadt,confrontations,arras,hindenburg,ripon,embedding,isomorphism,dwarves,matchup,unison,lofty,argos,louth,constitutionally,transitive,newington,facelift,degeneration,perceptual,aviators,enclosing,igneous,symbolically,academician,constitutionality,iso/iec,sacrificial,maturation,apprentices,enzymology,naturalistic,hajji,arthropods,abbess,vistula,scuttled,gradients,pentathlon,etudes,freedmen,melaleuca,thrice,conductive,sackville,franciscans,stricter,golds,kites,worshiped,monsignor,trios,orally,tiered,primacy,bodywork,castleford,epidemics,alveolar,chapelle,chemists,hillsboro,soulful,warlords,ngati,huguenot,diurnal,remarking,luger,motorways,gauss,jahan,cutoff,proximal,bandai,catchphrase,jonubi,ossetia,codename,codice_2,throated,itinerant,chechnya,riverfront,leela,evoked,entailed,zamboanga,rejoining,circuitry,haymarket,khartoum,feuds,braced,miyazaki,mirren,lubusz,caricature,buttresses,attrition,characterizes,widnes,evanston,materialism,contradictions,marist,midrash,gainsborough,ulithi,turkmen,vidya,escuela,patrician,inspirations,reagent,premierships,humanistic,euphrates,transitioning,belfry,zedong,adaption,kaliningrad,lobos,epics,waiver,coniferous,polydor,inductee,refitted,moraine,unsatisfactory,worsening,polygamy,rajya,nested,subgenre,broadside,stampeders,lingua,incheon,pretender,peloton,persuading,excitation,multan,predates,tonne,brackish,autoimmune,insulated,podcasts,iraqis,bodybuilding,condominiums,midlothian,delft,debtor,asymmetrical,lycaenidae,forcefully,pathogenic,tamaulipas,andaman,intravenous,advancements,senegalese,chronologically,realigned,inquirer,eusebius,dekalb,additives,shortlist,goldwater,hindustani,auditing,caterpillars,pesticide,nakhon,ingestion,lansdowne,traditionalist,northland,thunderbirds,josip,nominating,locale,ventricular,animators,verandah,epistles,surveyors,anthems,dredd,upheaval,passaic,anatolian,svalbard,associative,floodplain,taranaki,estuaries,irreducible,beginners,hammerstein,allocate,coursework,secreted,counteract,handwritten,foundational,passover,discoverer,decoding,wares,bourgeoisie,playgrounds,nazionale,abbreviations,seanad,golan,mishra,godavari,rebranding,attendances,backstory,interrupts,lettered,hasbro,ultralight,hormozgan,armee,moderne,subdue,disuse,improvisational,enrolment,persists,moderated,carinthia,hatchback,inhibitory,capitalized,anatoly,abstracts,albemarle,bergamo,insolvency,sentai,cellars,walloon,joked,kashmiri,dirac,materialized,renomination,homologous,gusts,eighteens,centrifugal,storied,baluchestan,formula_26,poincare,vettel,infuriated,gauges,streetcars,vedanta,stately,liquidated,goguryeo,swifts,accountancy,levee,acadian,hydropower,eustace,comintern,allotment,designating,torsion,molding,irritation,aerobic,halen,concerted,plantings,garrisoned,gramophone,cytoplasm,onslaught,requisitioned,relieving,genitive,centrist,jeong,espanola,dissolving,chatterjee,sparking,connaught,varese,arjuna,carpathian,empowering,meteorologist,decathlon,opioid,hohenzollern,fenced,ibiza,avionics,footscray,scrum,discounts,filament,directories,a.f.c,stiffness,quaternary,adventurers,transmits,harmonious,taizong,radiating,germantown,ejection,projectors,gaseous,nahuatl,vidyalaya,nightlife,redefined,refuted,destitute,arista,potters,disseminated,distanced,jamboree,kaohsiung,tilted,lakeshore,grained,inflicting,kreis,novelists,descendents,mezzanine,recast,fatah,deregulation,ac/dc,australis,kohgiluyeh,boreal,goths,authoring,intoxicated,nonpartisan,theodosius,pyongyang,shree,boyhood,sanfl,plenipotentiary,photosynthesis,presidium,sinaloa,honshu,texan,avenida,transmembrane,malays,acropolis,catalunya,vases,inconsistencies,methodists,quell,suisse,banat,simcoe,cercle,zealanders,discredited,equine,sages,parthian,fascists,interpolation,classifying,spinoff,yehuda,cruised,gypsum,foaled,wallachia,saraswati,imperialist,seabed,footnotes,nakajima,locales,schoolmaster,drosophila,bridgehead,immanuel,courtier,bookseller,niccolo,stylistically,portmanteau,superleague,konkani,millimetres,arboreal,thanjavur,emulation,sounders,decompression,commoners,infusion,methodological,osage,rococo,anchoring,bayreuth,formula_27,abstracting,symbolized,bayonne,electrolyte,rowed,corvettes,traversing,editorship,sampler,presidio,curzon,adirondack,swahili,rearing,bladed,lemur,pashtun,behaviours,bottling,zaire,recognisable,systematics,leeward,formulae,subdistricts,smithfield,vijaya,buoyancy,boosting,cantonal,rishi,airflow,kamakura,adana,emblems,aquifer,clustering,husayn,woolly,wineries,montessori,turntable,exponentially,caverns,espoused,pianists,vorpommern,vicenza,latterly,o'rourke,williamstown,generale,kosice,duisburg,poirot,marshy,mismanagement,mandalay,dagenham,universes,chiral,radiated,stewards,vegan,crankshaft,kyrgyz,amphibian,cymbals,infrequently,offenbach,environmentalist,repatriated,permutations,midshipmen,loudoun,refereed,bamberg,ornamented,nitric,selim,translational,dorsum,annunciation,gippsland,reflector,informational,regia,reactionary,ahmet,weathering,erlewine,legalized,berne,occupant,divas,manifests,analyzes,disproportionate,mitochondria,totalitarian,paulista,interscope,anarcho,correlate,brookfield,elongate,brunel,ordinal,precincts,volatility,equaliser,hittite,somaliland,ticketing,monochrome,ubuntu,chhattisgarh,titleholder,ranches,referendums,blooms,accommodates,merthyr,religiously,ryukyu,tumultuous,checkpoints,anode,mi'kmaq,cannonball,punctuation,remodelled,assassinations,criminology,alternates,yonge,pixar,namibian,piraeus,trondelag,hautes,lifeboats,shoal,atelier,vehemently,sadat,postcode,jainism,lycoming,undisturbed,lutherans,genomics,popmatters,tabriz,isthmian,notched,autistic,horsham,mites,conseil,bloomsbury,seung,cybertron,idris,overhauled,disbandment,idealized,goldfields,worshippers,lobbyist,ailments,paganism,herbarium,athenians,messerschmitt,faraday,entangled,'olya,untreated,criticising,howitzers,parvati,lobed,debussy,atonement,tadeusz,permeability,mueang,sepals,degli,optionally,fuelled,follies,asterisk,pristina,lewiston,congested,overpass,affixed,pleads,telecasts,stanislaus,cryptographic,friesland,hamstring,selkirk,antisubmarine,inundated,overlay,aggregates,fleur,trolleybus,sagan,ibsen,inductees,beltway,tiled,ladders,cadbury,laplace,ascetic,micronesia,conveying,bellingham,cleft,batches,usaid,conjugation,macedon,assisi,reappointed,brine,jinnah,prairies,screenwriting,oxidized,despatches,linearly,fertilizers,brazilians,absorbs,wagga,modernised,scorsese,ashraf,charlestown,esque,habitable,nizhny,lettres,tuscaloosa,esplanade,coalitions,carbohydrates,legate,vermilion,standardised,galleria,psychoanalytic,rearrangement,substation,competency,nationalised,reshuffle,reconstructions,mehdi,bougainville,receivership,contraception,enlistment,conducive,aberystwyth,solicitors,dismisses,fibrosis,montclair,homeowner,surrealism,s.h.i.e.l.d,peregrine,compilers,
1790s,parentage,palmas,rzeszow,worldview,eased,svenska,housemate,bundestag,originator,enlisting,outwards,reciprocity,formula_28,carbohydrate,democratically,firefighting,romagna,acknowledgement,khomeini,carbide,quests,vedas,characteristically,guwahati,brixton,unintended,brothels,parietal,namur,sherbrooke,moldavian,baruch,milieu,undulating,laurier,entre,dijon,ethylene,abilene,heracles,paralleling,ceres,dundalk,falun,auspicious,chisinau,polarity,foreclosure,templates,ojibwe,punic,eriksson,biden,bachchan,glaciation,spitfires,norsk,nonviolent,heidegger,algonquin,capacitance,cassettes,balconies,alleles,airdate,conveys,replays,classifies,infrequent,amine,cuttings,rarer,woking,olomouc,amritsar,rockabilly,illyrian,maoist,poignant,tempore,stalinist,segmented,bandmate,mollusc,muhammed,totalled,byrds,tendered,endogenous,kottayam,aisne,oxidase,overhears,illustrators,verve,commercialization,purplish,directv,moulded,lyttelton,baptismal,captors,saracens,georgios,shorten,polity,grids,fitzwilliam,sculls,impurities,confederations,akhtar,intangible,oscillations,parabolic,harlequin,maulana,ovate,tanzanian,singularity,confiscation,qazvin,speyer,phonemes,overgrown,vicarage,gurion,undocumented,niigata,thrones,preamble,stave,interment,liiga,ataturk,aphrodite,groupe,indentured,habsburgs,caption,utilitarian,ozark,slovenes,reproductions,plasticity,serbo,dulwich,castel,barbuda,salons,feuding,lenape,wikileaks,swamy,breuning,shedding,afield,superficially,operationally,lamented,okanagan,hamadan,accolade,furthering,adolphus,fyodor,abridged,cartoonists,pinkish,suharto,cytochrome,methylation,debit,colspan=
9|,refine,taoist,signalled,herding,leaved,bayan,fatherland,rampart,sequenced,negation,storyteller,occupiers,barnabas,pelicans,nadir,conscripted,railcars,prerequisite,furthered,columba,carolinas,markup,gwalior,franche,chaco,eglinton,ramparts,rangoon,metabolites,pollination,croat,televisa,holyoke,testimonial,setlist,safavid,sendai,georgians,shakespearean,galleys,regenerative,krzysztof,overtones,estado,barbary,cherbourg,obispo,sayings,composites,sainsbury,deliberation,cosmological,mahalleh,embellished,ascap,biala,pancras,calumet,grands,canvases,antigens,marianas,defenseman,approximated,seedlings,soren,stele,nuncio,immunology,testimonies,glossary,recollections,suitability,tampere,venous,cohomology,methanol,echoing,ivanovich,warmly,sterilization,imran,multiplying,whitechapel,undersea,xuanzong,tacitus,bayesian,roundhouse,correlations,rioters,molds,fiorentina,bandmates,mezzo,thani,guerilla,
200th,premiums,tamils,deepwater,chimpanzees,tribesmen,selwyn,globo,turnovers,punctuated,erode,nouvelle,banbury,exponents,abolishing,helical,maimonides,endothelial,goteborg,infield,encroachment,cottonwood,mazowiecki,parable,saarbrucken,reliever,epistemology,artistes,enrich,rationing,formula_29,palmyra,subfamilies,kauai,zoran,fieldwork,arousal,creditor,friuli,celts,comoros,equated,escalation,negev,tallied,inductive,anion,netanyahu,mesoamerican,lepidoptera,aspirated,remit,westmorland,italic,crosse,vaclav,fuego,owain,balmain,venetians,ethnicities,deflected,ticino,apulia,austere,flycatcher,reprising,repressive,hauptbahnhof,subtype,ophthalmology,summarizes,eniwetok,colonisation,subspace,nymphalidae,earmarked,tempe,burnet,crests,abbots,norwegians,enlarge,ashoka,frankfort,livorno,malware,renters,singly,iliad,moresby,rookies,gustavus,affirming,alleges,legume,chekhov,studded,abdicated,suzhou,isidore,townsite,repayment,quintus,yankovic,amorphous,constructor,narrowing,industrialists,tanganyika,capitalization,connective,mughals,rarities,aerodynamics,worthing,antalya,diagnostics,shaftesbury,thracian,obstetrics,benghazi,multiplier,orbitals,livonia,roscommon,intensify,ravel,oaths,overseer,locomotion,necessities,chickasaw,strathclyde,treviso,erfurt,aortic,contemplation,accrington,markazi,predeceased,hippocampus,whitecaps,assemblyman,incursion,ethnography,extraliga,reproducing,directorship,benzene,byway,stupa,taxable,scottsdale,onondaga,favourably,countermeasures,lithuanians,thatched,deflection,tarsus,consuls,annuity,paralleled,contextual,anglian,klang,hoisted,multilingual,enacting,samaj,taoiseach,carthaginian,apologised,hydrology,entrant,seamless,inflorescences,mugabe,westerners,seminaries,wintering,penzance,mitre,sergeants,unoccupied,delimitation,discriminate,upriver,abortive,nihon,bessarabia,calcareous,buffaloes,patil,daegu,streamline,berks,chaparral,laity,conceptions,typified,kiribati,threaded,mattel,eccentricity,signified,patagonia,slavonia,certifying,adnan,astley,sedition,minimally,enumerated,nikos,goalless,walid,narendra,causa,missoula,coolant,dalek,outcrop,hybridization,schoolchildren,peasantry,afghans,confucianism,shahr,gallic,tajik,kierkegaard,sauvignon,commissar,patriarchs,tuskegee,prussians,laois,ricans,talmudic,officiating,aesthetically,baloch,antiochus,separatists,suzerainty,arafat,shading,u.s.c,chancellors,inc..,toolkit,nepenthes,erebidae,solicited,pratap,kabbalah,alchemist,caltech,darjeeling,biopic,spillway,kaiserslautern,nijmegen,bolstered,neath,pahlavi,eugenics,bureaus,retook,northfield,instantaneous,deerfield,humankind,selectivity,putative,boarders,cornhuskers,marathas,raikkonen,aliabad,mangroves,garages,gulch,karzai,poitiers,chernobyl,thane,alexios,belgrano,scion,solubility,urbanized,executable,guizhou,nucleic,tripled,equalled,harare,houseguests,potency,ghazi,repeater,overarching,regrouped,broward,ragtime,d'art,nandi,regalia,campsites,mamluk,plating,wirral,presumption,zenit,archivist,emmerdale,decepticon,carabidae,kagoshima,franconia,guarani,formalism,diagonally,submarginal,denys,walkways,punts,metrolink,hydrographic,droplets,upperside,martyred,hummingbird,antebellum,curiously,mufti,friary,chabad,czechs,shaykh,reactivity,berklee,turbonilla,tongan,sultans,woodville,unlicensed,enmity,dominicans,operculum,quarrying,watercolour,catalyzed,gatwick,'what,mesozoic,auditors,shizuoka,footballing,haldane,telemundo,appended,deducted,disseminate,o'shea,pskov,abrasive,entente,gauteng,calicut,lemurs,elasticity,suffused,scopula,staining,upholding,excesses,shostakovich,loanwords,naidu,championnat,chromatography,boasting,goaltenders,engulfed,salah,kilogram,morristown,shingles,shi'a,labourer,renditions,frantisek,jekyll,zonal,nanda,sheriffs,eigenvalues,divisione,endorsing,ushered,auvergne,cadres,repentance,freemasons,utilising,laureates,diocletian,semiconductors,o'grady,vladivostok,sarkozy,trackage,masculinity,hydroxyl,mervyn,muskets,speculations,gridiron,opportunistic,mascots,aleutian,fillies,sewerage,excommunication,borrowers,capillary,trending,sydenham,synthpop,rajah,cagayan,deportes,kedah,faure,extremism,michoacan,levski,culminates,occitan,bioinformatics,unknowingly,inciting,emulated,footpaths,piacenza,dreadnought,viceroyalty,oceanographic,scouted,combinatorial,ornithologist,cannibalism,mujahideen,independiente,cilicia,hindwing,minimized,odeon,gyorgy,rubles,purchaser,collieries,kickers,interurban,coiled,lynchburg,respondent,plzen,detractors,etchings,centering,intensification,tomography,ranjit,warblers,retelling,reinstatement,cauchy,modulus,redirected,evaluates,beginner,kalateh,perforated,manoeuvre,scrimmage,internships,megawatts,mottled,haakon,tunbridge,kalyan,summarised,sukarno,quetta,canonized,henryk,agglomeration,coahuila,diluted,chiropractic,yogyakarta,talladega,sheik,cation,halting,reprisals,sulfuric,musharraf,sympathizers,publicised,arles,lectionary,fracturing,startups,sangha,latrobe,rideau,ligaments,blockading,cremona,lichens,fabaceae,modulated,evocative,embodies,battersea,indistinct,altai,subsystem,acidity,somatic,formula_30,tariq,rationality,sortie,ashlar,pokal,cytoplasmic,valour,bangla,displacing,hijacking,spectrometry,westmeath,weill,charing,goias,revolvers,individualized,tenured,nawaz,piquet,chanted,discard,bernd,phalanx,reworking,unilaterally,subclass,yitzhak,piloting,circumvent,disregarded,semicircular,viscous,tibetans,endeavours,retaliated,cretan,vienne,workhouse,sufficiency,aurangzeb,legalization,lipids,expanse,eintracht,sanjak,megas,
125th,bahraini,yakima,eukaryotes,thwart,affirmation,peloponnese,retailing,carbonyl,chairwoman,macedonians,dentate,rockaway,correctness,wealthier,metamorphic,aragonese,fermanagh,pituitary,schrodinger,evokes,spoiler,chariots,akita,genitalia,combe,confectionery,desegregation,experiential,commodores,persepolis,viejo,restorations,virtualization,hispania,printmaking,stipend,yisrael,theravada,expended,radium,tweeted,polygonal,lippe,charente,leveraged,cutaneous,fallacy,fragrant,bypasses,elaborately,rigidity,majid,majorca,kongo,plasmodium,skits,audiovisual,eerste,staircases,prompts,coulthard,northwestward,riverdale,beatrix,copyrights,prudential,communicates,mated,obscenity,asynchronous,analyse,hansa,searchlight,farnborough,patras,asquith,qarah,contours,fumbled,pasteur,redistributed,almeria,sanctuaries,jewry,israelite,clinicians,koblenz,bookshop,affective,goulburn,panelist,sikorsky,cobham,mimics,ringed,portraiture,probabilistic,girolamo,intelligible,andalusian,jalal,athenaeum,eritrean,auxiliaries,pittsburg,devolution,sangam,isolating,anglers,cronulla,annihilated,kidderminster,synthesize,popularised,theophilus,bandstand,innumerable,chagrin,retroactively,weser,multiples,birdlife,goryeo,pawnee,grosser,grappling,tactile,ahmadinejad,turboprop,erdogan,matchday,proletarian,adhering,complements,austronesian,adverts,luminaries,archeology,impressionism,conifer,sodomy,interracial,platoons,lessen,postings,pejorative,registrations,cookery,persecutions,microbes,audits,idiosyncratic,subsp,suspensions,restricts,colouring,ratify,instrumentals,nucleotides,sulla,posits,bibliotheque,diameters,oceanography,instigation,subsumed,submachine,acceptor,legation,borrows,sedge,discriminated,loaves,insurers,highgate,detectable,abandons,kilns,sportscaster,harwich,iterations,preakness,arduous,tensile,prabhu,shortwave,philologist,shareholding,vegetative,complexities,councilors,distinctively,revitalize,automaton,amassing,montreux,khanh,surabaya,nurnberg,pernambuco,cuisines,charterhouse,firsts,tercera,inhabitant,homophobia,naturalism,einar,powerplant,coruna,entertainments,whedon,rajputs,raton,democracies,arunachal,oeuvre,wallonia,jeddah,trolleybuses,evangelism,vosges,kiowa,minimise,encirclement,undertakes,emigrant,beacons,deepened,grammars,publius,preeminent,seyyed,repechage,crafting,headingley,osteopathic,lithography,hotly,bligh,inshore,betrothed,olympians,formula_31,dissociation,trivandrum,arran,petrovic,stettin,disembarked,simplification,bronzes,philo,acrobatic,jonsson,conjectured,supercharged,kanto,detects,cheeses,correlates,harmonics,lifecycle,sudamericana,reservists,decayed,elitserien,parametric,
113th,dusky,hogarth,modulo,symbiotic,monopolies,discontinuation,converges,southerners,tucuman,eclipses,enclaves,emits,famicom,caricatures,artistically,levelled,mussels,erecting,mouthparts,cunard,octaves,crucible,guardia,unusable,lagrangian,droughts,ephemeral,pashto,canis,tapering,sasebo,silurian,metallurgical,outscored,evolves,reissues,sedentary,homotopy,greyhawk,reagents,inheriting,onshore,tilting,rebuffed,reusable,naturalists,basingstoke,insofar,offensives,dravidian,curators,planks,rajan,isoforms,flagstaff,preside,globular,egalitarian,linkages,biographers,goalscorers,molybdenum,centralised,nordland,jurists,ellesmere,rosberg,hideyoshi,restructure,biases,borrower,scathing,redress,tunnelling,workflow,magnates,mahendra,dissenters,plethora,transcriptions,handicrafts,keyword,xi'an,petrograd,unser,prokofiev,
90deg,madan,bataan,maronite,kearny,carmarthen,termini,consulates,disallowed,rockville,bowery,fanzine,docklands,bests,prohibitions,yeltsin,selassie,naturalization,realisation,dispensary,tribeca,abdulaziz,pocahontas,stagnation,pamplona,cuneiform,propagating,subsurface,christgau,epithelium,schwerin,lynching,routledge,hanseatic,upanishad,glebe,yugoslavian,complicity,endowments,girona,mynetworktv,entomology,plinth,ba'ath,supercup,torus,akkadian,salted,englewood,commandery,belgaum,prefixed,colorless,dartford,enthroned,caesarea,nominative,sandown,safeguards,hulled,formula_32,leamington,dieppe,spearhead,generalizations,demarcation,llanelli,masque,brickwork,recounting,sufism,strikingly,petrochemical,onslow,monologues,emigrating,anderlecht,sturt,hossein,sakhalin,subduction,novices,deptford,zanjan,airstrikes,coalfield,reintroduction,timbaland,hornby,messianic,stinging,universalist,situational,radiocarbon,strongman,rowling,saloons,traffickers,overran,fribourg,cambrai,gravesend,discretionary,finitely,archetype,assessor,pilipinas,exhumed,invocation,interacted,digitized,timisoara,smelter,teton,sexism,precepts,srinagar,pilsudski,carmelite,hanau,scoreline,hernando,trekking,blogging,fanbase,wielded,vesicles,nationalization,banja,rafts,motoring,luang,takeda,girder,stimulates,histone,sunda,nanoparticles,attains,jumpers,catalogued,alluding,pontus,ancients,examiners,shinkansen,ribbentrop,reimbursement,pharmacological,ramat,stringed,imposes,cheaply,transplanted,taiping,mizoram,looms,wallabies,sideman,kootenay,encased,sportsnet,revolutionized,tangier,benthic,runic,pakistanis,heatseekers,shyam,mishnah,presbyterians,stadt,sutras,straddles,zoroastrian,infer,fueling,gymnasts,ofcom,gunfight,journeyman,tracklist,oshawa,ps500,pa'in,mackinac,xiongnu,mississippian,breckinridge,freemason,bight,autoroute,liberalization,distantly,thrillers,solomons,presumptive,romanization,anecdotal,bohemians,unpaved,milder,concurred,spinners,alphabets,strenuous,rivieres,kerrang,mistreatment,dismounted,intensively,carlist,dancehall,shunting,pluralism,trafficked,brokered,bonaventure,bromide,neckar,designates,malian,reverses,sotheby,sorghum,serine,environmentalists,languedoc,consulship,metering,bankstown,handlers,militiamen,conforming,regularity,pondicherry,armin,capsized,consejo,capitalists,drogheda,granular,purged,acadians,endocrine,intramural,elicit,terns,orientations,miklos,omitting,apocryphal,slapstick,brecon,pliocene,affords,typography,emigre,tsarist,tomasz,beset,nishi,necessitating,encyclical,roleplaying,journeyed,inflow,sprints,progressives,novosibirsk,cameroonian,ephesus,speckled,kinshasa,freiherr,burnaby,dalmatian,torrential,rigor,renegades,bhakti,nurburgring,cosimo,convincingly,reverting,visayas,lewisham,charlottetown,charadriiformesfamily,transferable,jodhpur,converters,deepening,camshaft,underdeveloped,protease,polonia,uterine,quantify,tobruk,dealerships,narasimha,fortran,inactivity,
1780s,victors,categorised,naxos,workstation,skink,sardinian,chalice,precede,dammed,sondheim,phineas,tutored,sourcing,uncompromising,placer,tyneside,courtiers,proclaims,pharmacies,hyogo,booksellers,sengoku,kursk,spectrometer,countywide,wielkopolski,bobsleigh,shetty,llywelyn,consistory,heretics,guinean,cliches,individualism,monolithic,imams,usability,bursa,deliberations,railings,torchwood,inconsistency,balearic,stabilizer,demonstrator,facet,radioactivity,outboard,educates,d'oyly,heretical,handover,jurisdictional,shockwave,hispaniola,conceptually,routers,unaffiliated,trentino,formula_33,cypriots,intervenes,neuchatel,formulating,maggiore,delisted,alcohols,thessaly,potable,estimator,suborder,fluency,mimicry,clergymen,infrastructures,rivals.com,baroda,subplot,majlis,plano,clinching,connotation,carinae,savile,intercultural,transcriptional,sandstones,ailerons,annotations,impresario,heinkel,scriptural,intermodal,astrological,ribbed,northeastward,posited,boers,utilise,kalmar,phylum,breakwater,skype,textured,guideline,azeri,rimini,massed,subsidence,anomalous,wolfsburg,polyphonic,accrediting,vodacom,kirov,captaining,kelantan,logie,fervent,eamon,taper,bundeswehr,disproportionately,divination,slobodan,pundits,hispano,kinetics,reunites,makati,ceasing,statistician,amending,chiltern,eparchy,riverine,melanoma,narragansett,pagans,raged,toppled,breaching,zadar,holby,dacian,ochre,velodrome,disparities,amphoe,sedans,webpage,williamsport,lachlan,groton,baring,swastika,heliport,unwillingness,razorbacks,exhibitors,foodstuffs,impacting,tithe,appendages,dermot,subtypes,nurseries,balinese,simulating,stary,remakes,mundi,chautauqua,geologically,stockade,hakka,dilute,kalimantan,pahang,overlapped,fredericton,baha'u'llah,jahangir,damping,benefactors,shomali,triumphal,cieszyn,paradigms,shielded,reggaeton,maharishi,zambian,shearing,golestan,mirroring,partitioning,flyover,songbook,incandescent,merrimack,huguenots,sangeet,vulnerabilities,trademarked,drydock,tantric,honoris,queenstown,labelling,iterative,enlists,statesmen,anglicans,herge,qinghai,burgundian,islami,delineated,zhuge,aggregated,banknote,qatari,suitably,tapestries,asymptotic,charleroi,majorities,pyramidellidae,leanings,climactic,tahir,ramsar,suppressor,revisionist,trawler,ernakulam,penicillium,categorization,slits,entitlement,collegium,earths,benefice,pinochet,puritans,loudspeaker,stockhausen,eurocup,roskilde,alois,jaroslav,rhondda,boutiques,vigor,neurotransmitter,ansar,malden,ferdinando,sported,relented,intercession,camberwell,wettest,thunderbolts,positional,oriel,cloverleaf,penalized,shoshone,rajkumar,completeness,sharjah,chromosomal,belgians,woolen,ultrasonic,sequentially,boleyn,mordella,microsystems,initiator,elachista,mineralogy,rhododendron,integrals,compostela,hamza,sawmills,stadio,berlioz,maidens,stonework,yachting,tappeh,myocardial,laborer,workstations,costumed,nicaea,lanark,roundtable,mashhad,nablus,algonquian,stuyvesant,sarkar,heroines,diwan,laments,intonation,intrigues,almaty,feuded,grandes,algarve,rehabilitate,macrophages,cruciate,dismayed,heuristic,eliezer,kozhikode,covalent,finalised,dimorphism,yaroslavl,overtaking,leverkusen,middlebury,feeders,brookings,speculates,insoluble,lodgings,jozsef,cysteine,shenyang,habilitation,spurious,brainchild,mtdna,comique,albedo,recife,partick,broadening,shahi,orientated,himalaya,swabia,palme,mennonites,spokeswoman,conscripts,sepulchre,chartres,eurozone,scaffold,invertebrate,parishad,bagan,heian,watercolors,basse,supercomputer,commences,tarragona,plainfield,arthurian,functor,identically,murex,chronicling,pressings,burrowing,histoire,guayaquil,goalkeeping,differentiable,warburg,machining,aeneas,kanawha,holocene,ramesses,reprisal,qingdao,avatars,turkestan,cantatas,besieging,repudiated,teamsters,equipping,hydride,ahmadiyya,euston,bottleneck,computations,terengganu,kalinga,stela,rediscovery,'this,azhar,stylised,karelia,polyethylene,kansai,motorised,lounges,normalization,calculators,
1700s,goalkeepers,unfolded,commissary,cubism,vignettes,multiverse,heaters,briton,sparingly,childcare,thorium,plock,riksdag,eunuchs,catalysis,limassol,perce,uncensored,whitlam,ulmus,unites,mesopotamian,refraction,biodiesel,forza,fulda,unseated,mountbatten,shahrak,selenium,osijek,mimicking,antimicrobial,axons,simulcasting,donizetti,swabian,sportsmen,hafiz,neared,heraclius,locates,evaded,subcarpathian,bhubaneswar,negeri,jagannath,thaksin,aydin,oromo,lateran,goldsmiths,multiculturalism,cilia,mihai,evangelists,lorient,qajar,polygons,vinod,mechanised,anglophone,prefabricated,mosses,supervillain,airliners,biofuels,iodide,innovators,valais,wilberforce,logarithm,intelligentsia,dissipation,sanctioning,duchies,aymara,porches,simulators,mostar,telepathic,coaxial,caithness,burghs,fourths,stratification,joaquim,scribes,meteorites,monarchist,germination,vries,desiring,replenishment,istria,winemaking,tammany,troupes,hetman,lanceolate,pelagic,triptych,primeira,scant,outbound,hyphae,denser,bentham,basie,normale,executes,ladislaus,kontinental,herat,cruiserweight,activision,customization,manoeuvres,inglewood,northwood,waveform,investiture,inpatient,alignments,kiryat,rabat,archimedes,ustad,monsanto,archetypal,kirkby,sikhism,correspondingly,catskill,overlaid,petrels,widowers,unicameral,federalists,metalcore,gamerankings,mussel,formula_34,lymphocytes,cystic,southgate,vestiges,immortals,kalam,strove,amazons,pocono,sociologists,sopwith,adheres,laurens,caregivers,inspecting,transylvanian,rebroadcast,rhenish,miserables,pyrams,blois,newtonian,carapace,redshirt,gotland,nazir,unilever,distortions,linebackers,federalism,mombasa,lumen,bernoulli,favouring,aligarh,denounce,steamboats,dnieper,stratigraphic,synths,bernese,umass,icebreaker,guanajuato,heisenberg,boldly,diodes,ladakh,dogmatic,scriptwriter,maritimes,battlestar,symposia,adaptable,toluca,bhavan,nanking,ieyasu,picardy,soybean,adalbert,brompton,deutsches,brezhnev,glandular,laotian,hispanicized,ibadan,personification,dalit,yamuna,regio,dispensed,yamagata,zweibrucken,revising,fandom,stances,participle,flavours,khitan,vertebral,crores,mayaguez,dispensation,guntur,undefined,harpercollins,unionism,meena,leveling,philippa,refractory,telstra,judea,attenuation,pylons,elaboration,elegy,edging,gracillariidae,residencies,absentia,reflexive,deportations,dichotomy,stoves,sanremo,shimon,menachem,corneal,conifers,mordellidae,facsimile,diagnoses,cowper,citta,viticulture,divisive,riverview,foals,mystics,polyhedron,plazas,airspeed,redgrave,motherland,impede,multiplicity,barrichello,airships,pharmacists,harvester,clays,payloads,differentiating,popularize,caesars,tunneling,stagnant,circadian,indemnity,sensibilities,musicology,prefects,serfs,metra,lillehammer,carmarthenshire,kiosks,welland,barbican,alkyl,tillandsia,gatherers,asociacion,showings,bharati,brandywine,subversion,scalable,pfizer,dawla,barium,dardanelles,nsdap,konig,ayutthaya,hodgkin,sedimentation,completions,purchasers,sponsorships,maximizing,banked,taoism,minot,enrolls,fructose,aspired,capuchin,outages,artois,carrollton,totality,osceola,pawtucket,fontainebleau,converged,queretaro,competencies,botha,allotments,sheaf,shastri,obliquely,banding,catharines,outwardly,monchengladbach,driest,contemplative,cassini,ranga,pundit,kenilworth,tiananmen,disulfide,formula_35,townlands,codice_3,looping,caravans,rachmaninoff,segmentation,fluorine,anglicised,gnostic,dessau,discern,reconfigured,altrincham,rebounding,battlecruiser,ramblers,
1770s,convective,triomphe,miyagi,mourners,instagram,aloft,breastfeeding,courtyards,folkestone,changsha,kumamoto,saarland,grayish,provisionally,appomattox,uncial,classicism,mahindra,elapsed,supremes,monophyletic,cautioned,formula_36,noblewoman,kernels,sucre,swaps,bengaluru,grenfell,epicenter,rockhampton,worshipful,licentiate,metaphorical,malankara,amputated,wattle,palawan,tankobon,nobunaga,polyhedra,transduction,jilin,syrians,affinities,fluently,emanating,anglicized,sportscar,botanists,altona,dravida,chorley,allocations,kunming,luanda,premiering,outlived,mesoamerica,lingual,dissipating,impairments,attenborough,balustrade,emulator,bakhsh,cladding,increments,ascents,workington,qal'eh,winless,categorical,petrel,emphasise,dormer,toros,hijackers,telescopic,solidly,jankovic,cession,gurus,madoff,newry,subsystems,northside,talib,englishmen,farnese,holographic,electives,argonne,scrivener,predated,brugge,nauvoo,catalyses,soared,siddeley,graphically,powerlifting,funicular,sungai,coercive,fusing,uncertainties,locos,acetic,diverge,wedgwood,dressings,tiebreaker,didactic,vyacheslav,acreage,interplanetary,battlecruisers,sunbury,alkaloids,hairpin,automata,wielkie,interdiction,plugins,monkees,nudibranch,esporte,approximations,disabling,powering,characterisation,ecologically,martinsville,termen,perpetuated,lufthansa,ascendancy,motherboard,bolshoi,athanasius,prunus,dilution,invests,nonzero,mendocino,charan,banque,shaheed,counterculture,unita,voivode,hospitalization,vapour,supermarine,resistor,steppes,osnabruck,intermediates,benzodiazepines,sunnyside,privatized,geopolitical,ponta,beersheba,kievan,embody,theoretic,sangh,cartographer,blige,rotors,thruway,battlefields,discernible,demobilized,broodmare,colouration,sagas,policymakers,serialization,augmentation,hoare,frankfurter,transnistria,kinases,detachable,generational,converging,antiaircraft,khaki,bimonthly,coadjutor,arkhangelsk,kannur,buffers,livonian,northwich,enveloped,cysts,yokozuna,herne,beeching,enron,virginian,woollen,excepting,competitively,outtakes,recombinant,hillcrest,clearances,pathe,cumbersome,brasov,u.s.a,likud,christiania,cruciform,hierarchies,wandsworth,lupin,resins,voiceover,sitar,electrochemical,mediacorp,typhus,grenadiers,hepatic,pompeii,weightlifter,bosniak,oxidoreductase,undersecretary,rescuers,ranji,seleucid,analysing,exegesis,tenancy,toure,kristiansand,
110th,carillon,minesweepers,poitou,acceded,palladian,redevelop,naismith,rifled,proletariat,shojo,hackensack,harvests,endpoint,kuban,rosenborg,stonehenge,authorisation,jacobean,revocation,compatriots,colliding,undetermined,okayama,acknowledgment,angelou,fresnel,chahar,ethereal,mg/kg,emmet,mobilised,unfavourable,cultura,characterizing,parsonage,skeptics,expressways,rabaul,medea,guardsmen,visakhapatnam,caddo,homophobic,elmwood,encircling,coexistence,contending,seljuk,mycologist,infertility,moliere,insolvent,covenants,underpass,holme,landesliga,workplaces,delinquency,methamphetamine,contrived,tableau,tithes,overlying,usurped,contingents,spares,oligocene,molde,beatification,mordechai,balloting,pampanga,navigators,flowered,debutant,codec,orogeny,newsletters,solon,ambivalent,ubisoft,archdeaconry,harpers,kirkus,jabal,castings,kazhagam,sylhet,yuwen,barnstaple,amidships,causative,isuzu,watchtower,granules,canaveral,remuneration,insurer,payout,horizonte,integrative,attributing,kiwis,skanderbeg,asymmetry,gannett,urbanism,disassembled,unaltered,precluded,melodifestivalen,ascends,plugin,gurkha,bisons,stakeholder,industrialisation,abbotsford,sextet,bustling,uptempo,slavia,choreographers,midwives,haram,javed,gazetteer,subsection,natively,weighting,lysine,meera,redbridge,muchmusic,abruzzo,adjoins,unsustainable,foresters,kbit/s,cosmopterigidae,secularism,poetics,causality,phonograph,estudiantes,ceausescu,universitario,adjoint,applicability,gastropods,nagaland,kentish,mechelen,atalanta,woodpeckers,lombards,gatineau,romansh,avraham,acetylcholine,perturbation,galois,wenceslaus,fuzhou,meandering,dendritic,sacristy,accented,katha,therapeutics,perceives,unskilled,greenhouses,analogues,chaldean,timbre,sloped,volodymyr,sadiq,maghreb,monogram,rearguard,caucuses,mures,metabolite,uyezd,determinism,theosophical,corbet,gaels,disruptions,bicameral,ribosomal,wolseley,clarksville,watersheds,tarsi,radon,milanese,discontinuous,aristotelian,whistleblower,representational,hashim,modestly,localised,atrial,hazara,ravana,troyes,appointees,rubus,morningside,amity,aberdare,ganglia,wests,zbigniew,aerobatic,depopulated,corsican,introspective,twinning,hardtop,shallower,cataract,mesolithic,emblematic,graced,lubrication,republicanism,voronezh,bastions,meissen,irkutsk,oboes,hokkien,sprites,tenet,individualist,capitulated,oakville,dysentery,orientalist,hillsides,keywords,elicited,incised,lagging,apoel,lengthening,attractiveness,marauders,sportswriter,decentralization,boltzmann,contradicts,draftsman,precipitate,solihull,norske,consorts,hauptmann,riflemen,adventists,syndromes,demolishing,customize,continuo,peripherals,seamlessly,linguistically,bhushan,orphanages,paraul,lessened,devanagari,quarto,responders,patronymic,riemannian,altoona,canonization,honouring,geodetic,exemplifies,republica,enzymatic,porters,fairmount,pampa,sufferers,kamchatka,conjugated,coachella,uthman,repositories,copious,headteacher,awami,phoneme,homomorphism,franconian,moorland,davos,quantified,kamloops,quarks,mayoralty,weald,peacekeepers,valerian,particulate,insiders,perthshire,caches,guimaraes,piped,grenadines,kosciuszko,trombonist,artemisia,covariance,intertidal,soybeans,beatified,ellipse,fruiting,deafness,dnipropetrovsk,accrued,zealous,mandala,causation,junius,kilowatt,bakeries,montpelier,airdrie,rectified,bungalows,toleration,debian,pylon,trotskyist,posteriorly,two-and-a-half,herbivorous,islamists,poetical,donne,wodehouse,frome,allium,assimilate,phonemic,minaret,unprofitable,darpa,untenable,leaflet,bitcoin,zahir,thresholds,argentino,jacopo,bespoke,stratified,wellbeing,shiite,basaltic,timberwolves,secrete,taunts,marathons,isomers,carre,consecrators,penobscot,pitcairn,sakha,crosstown,inclusions,impassable,fenders,indre,uscgc,jordi,retinue,logarithmic,pilgrimages,railcar,cashel,blackrock,macroscopic,aligning,tabla,trestle,certify,ronson,palps,dissolves,thickened,silicate,taman,walsingham,hausa,lowestoft,rondo,oleksandr,cuyahoga,retardation,countering,cricketing,holborn,identifiers,hells,geophysics,infighting,sculpting,balaji,webbed,irradiation,runestone,trusses,oriya,sojourn,forfeiture,colonize,exclaimed,eucharistic,lackluster,glazing,northridge,gutenberg,stipulates,macroeconomic,priori,outermost,annular,udinese,insulating,headliner,godel,polytope,megalithic,salix,sharapova,derided,muskegon,braintree,plateaus,confers,autocratic,isomer,interstitial,stamping,omits,kirtland,hatchery,evidences,intifada,
111th,podgorica,capua,motivating,nuneaton,jakub,korsakov,amitabh,mundial,monrovia,gluten,predictor,marshalling,d'orleans,levers,touchscreen,brantford,fricative,banishment,descendent,antagonism,ludovico,loudspeakers,formula_37,livelihoods,manassas,steamships,dewsbury,uppermost,humayun,lures,pinnacles,dependents,lecce,clumps,observatories,paleozoic,dedicating,samiti,draughtsman,gauls,incite,infringing,nepean,pythagorean,convents,triumvirate,seigneur,gaiman,vagrant,fossa,byproduct,serrated,renfrewshire,sheltering,achaemenid,dukedom,catchers,sampdoria,platelet,bielefeld,fluctuating,phenomenology,strikeout,ethnology,prospectors,woodworking,tatra,wildfires,meditations,agrippa,fortescue,qureshi,wojciech,methyltransferase,accusative,saatchi,amerindian,volcanism,zeeland,toyama,vladimirovich,allege,polygram,redox,budgeted,advisories,nematode,chipset,starscream,tonbridge,hardening,shales,accompanist,paraded,phonographic,whitefish,sportive,audiobook,kalisz,hibernation,latif,duels,ps200,coxeter,nayak,safeguarding,cantabria,minesweeping,zeiss,dunams,catholicos,sawtooth,ontological,nicobar,bridgend,unclassified,intrinsically,hanoverian,rabbitohs,kenseth,alcalde,northumbrian,raritan,septuagint,presse,sevres,origen,dandenong,peachtree,intersected,impeded,usages,hippodrome,novara,trajectories,customarily,yardage,inflected,yanow,kalan,taverns,liguria,librettist,intermarriage,
1760s,courant,gambier,infanta,ptolemaic,ukulele,haganah,sceptical,manchukuo,plexus,implantation,hilal,intersex,efficiencies,arbroath,hagerstown,adelphi,diario,marais,matti,lifes,coining,modalities,divya,bletchley,conserving,ivorian,mithridates,generative,strikeforce,laymen,toponymy,pogrom,satya,meticulously,agios,dufferin,yaakov,fortnightly,cargoes,deterrence,prefrontal,przemysl,mitterrand,commemorations,chatsworth,gurdwara,abuja,chakraborty,badajoz,geometries,artiste,diatonic,ganglion,presides,marymount,nanak,cytokines,feudalism,storks,rowers,widens,politico,evangelicals,assailants,pittsfield,allowable,bijapur,telenovelas,dichomeris,glenelg,herbivores,keita,inked,radom,fundraisers,constantius,boheme,portability,komnenos,crystallography,derrida,moderates,tavistock,fateh,spacex,disjoint,bristles,commercialized,interwoven,empirically,regius,bulacan,newsday,showa,radicalism,yarrow,pleura,sayed,structuring,cotes,reminiscences,acetyl,edicts,escalators,aomori,encapsulated,legacies,bunbury,placings,fearsome,postscript,powerfully,keighley,hildesheim,amicus,crevices,deserters,benelux,aurangabad,freeware,ioannis,carpathians,chirac,seceded,prepaid,landlocked,naturalised,yanukovych,soundscan,blotch,phenotypic,determinants,twente,dictatorial,giessen,composes,recherche,pathophysiology,inventories,ayurveda,elevating,gravestone,degeneres,vilayet,popularizing,spartanburg,bloemfontein,previewed,renunciation,genotype,ogilvy,tracery,blacklisted,emissaries,diploid,disclosures,tupolev,shinjuku,antecedents,pennine,braganza,bhattacharya,countable,spectroscopic,ingolstadt,theseus,corroborated,compounding,thrombosis,extremadura,medallions,hasanabad,lambton,perpetuity,glycol,besancon,palaiologos,pandey,caicos,antecedent,stratum,laserdisc,novitiate,crowdfunding,palatal,sorceress,dassault,toughness,celle,cezanne,vientiane,tioga,hander,crossbar,gisborne,cursor,inspectorate,serif,praia,sphingidae,nameplate,psalter,ivanovic,sitka,equalised,mutineers,sergius,outgrowth,creationism,haredi,rhizomes,predominate,undertakings,vulgate,hydrothermal,abbeville,geodesic,kampung,physiotherapy,unauthorised,asteraceae,conservationist,minoan,supersport,mohammadabad,cranbrook,mentorship,legitimately,marshland,datuk,louvain,potawatomi,carnivores,levies,lyell,hymnal,regionals,tinto,shikoku,conformal,wanganui,beira,lleida,standstill,deloitte,formula_40,corbusier,chancellery,mixtapes,airtime,muhlenberg,formula_39,bracts,thrashers,prodigious,gironde,chickamauga,uyghurs,substitutions,pescara,batangas,gregarious,gijon,paleo,mathura,pumas,proportionally,hawkesbury,yucca,kristiania,funimation,fluted,eloquence,mohun,aftermarket,chroniclers,futurist,nonconformist,branko,mannerisms,lesnar,opengl,altos,retainers,ashfield,shelbourne,sulaiman,divisie,gwent,locarno,lieder,minkowski,bivalve,redeployed,cartography,seaway,bookings,decays,ostend,antiquaries,pathogenesis,formula_38,chrysalis,esperance,valli,motogp,homelands,bridged,bloor,ghazal,vulgaris,baekje,prospector,calculates,debtors,hesperiidae,titian,returner,landgrave,frontenac,kelowna,pregame,castelo,caius,canoeist,watercolours,winterthur,superintendents,dissonance,dubstep,adorn,matic,salih,hillel,swordsman,flavoured,emitter,assays,monongahela,deeded,brazzaville,sufferings,babylonia,fecal,umbria,astrologer,gentrification,frescos,phasing,zielona,ecozone,candido,manoj,quadrilateral,gyula,falsetto,prewar,puntland,infinitive,contraceptive,bakhtiari,ohrid,socialization,tailplane,evoking,havelock,macapagal,plundering,
104th,keynesian,templars,phrasing,morphologically,czestochowa,humorously,catawba,burgas,chiswick,ellipsoid,kodansha,inwards,gautama,katanga,orthopaedic,heilongjiang,sieges,outsourced,subterminal,vijayawada,hares,oration,leitrim,ravines,manawatu,cryogenic,tracklisting,about.com,ambedkar,degenerated,hastened,venturing,lobbyists,shekhar,typefaces,northcote,rugen,'good,ornithology,asexual,hemispheres,unsupported,glyphs,spoleto,epigenetic,musicianship,donington,diogo,kangxi,bisected,polymorphism,megawatt,salta,embossed,cheetahs,cruzeiro,unhcr,aristide,rayleigh,maturing,indonesians,noire,llano,ffffff,camus,purges,annales,convair,apostasy,algol,phage,apaches,marketers,aldehyde,pompidou,kharkov,forgeries,praetorian,divested,retrospectively,gornji,scutellum,bitumen,pausanias,magnification,imitations,nyasaland,geographers,floodlights,athlone,hippolyte,expositions,clarinetist,razak,neutrinos,rotax,sheykh,plush,interconnect,andalus,cladogram,rudyard,resonator,granby,blackfriars,placido,windscreen,sahel,minamoto,haida,cations,emden,blackheath,thematically,blacklist,pawel,disseminating,academical,undamaged,raytheon,harsher,powhatan,ramachandran,saddles,paderborn,capping,zahra,prospecting,glycine,chromatin,profane,banska,helmand,okinawan,dislocation,oscillators,insectivorous,foyle,gilgit,autonomic,tuareg,sluice,pollinated,multiplexed,granary,narcissus,ranchi,staines,nitra,goalscoring,midwifery,pensioners,algorithmic,meetinghouse,biblioteca,besar,narva,angkor,predate,lohan,cyclical,detainee,occipital,eventing,faisalabad,dartmoor,kublai,courtly,resigns,radii,megachilidae,cartels,shortfall,xhosa,unregistered,benchmarks,dystopian,bulkhead,ponsonby,jovanovic,accumulates,papuan,bhutanese,intuitively,gotaland,headliners,recursion,dejan,novellas,diphthongs,imbued,withstood,analgesic,amplify,powertrain,programing,maidan,alstom,affirms,eradicated,summerslam,videogame,molla,severing,foundered,gallium,atmospheres,desalination,shmuel,howmeh,catolica,bossier,reconstructing,isolates,lyase,tweets,unconnected,tidewater,divisible,cohorts,orebro,presov,furnishing,folklorist,simplifying,centrale,notations,factorization,monarchies,deepen,macomb,facilitation,hennepin,declassified,redrawn,microprocessors,preliminaries,enlarging,timeframe,deutschen,shipbuilders,patiala,ferrous,aquariums,genealogies,vieux,unrecognized,bridgwater,tetrahedral,thule,resignations,gondwana,registries,agder,dataset,felled,parva,analyzer,worsen,coleraine,columella,blockaded,polytechnique,reassembled,reentry,narvik,greys,nigra,knockouts,bofors,gniezno,slotted,hamasaki,ferrers,conferring,thirdly,domestication,photojournalist,universality,preclude,ponting,halved,thereupon,photosynthetic,ostrava,mismatch,pangasinan,intermediaries,abolitionists,transited,headings,ustase,radiological,interconnection,dabrowa,invariants,honorius,preferentially,chantilly,marysville,dialectical,antioquia,abstained,gogol,dirichlet,muricidae,symmetries,reproduces,brazos,fatwa,bacillus,ketone,paribas,chowk,multiplicative,dermatitis,mamluks,devotes,adenosine,newbery,meditative,minefields,inflection,oxfam,conwy,bystrica,imprints,pandavas,infinitesimal,conurbation,amphetamine,reestablish,furth,edessa,injustices,frankston,serjeant,
4x200,khazar,sihanouk,longchamp,stags,pogroms,coups,upperparts,endpoints,infringed,nuanced,summing,humorist,pacification,ciaran,jamaat,anteriorly,roddick,springboks,faceted,hypoxia,rigorously,cleves,fatimid,ayurvedic,tabled,ratna,senhora,maricopa,seibu,gauguin,holomorphic,campgrounds,amboy,coordinators,ponderosa,casemates,ouachita,nanaimo,mindoro,zealander,rimsky,cluny,tomaszow,meghalaya,caetano,tilak,roussillon,landtag,gravitation,dystrophy,cephalopods,trombones,glens,killarney,denominated,anthropogenic,pssas,roubaix,carcasses,montmorency,neotropical,communicative,rabindranath,ordinated,separable,overriding,surged,sagebrush,conciliation,codice_4,durrani,phosphatase,qadir,votive,revitalized,taiyuan,tyrannosaurus,graze,slovaks,nematodes,environmentalism,blockhouse,illiteracy,schengen,ecotourism,alternation,conic,wields,hounslow,blackfoot,kwame,ambulatory,volhynia,hordaland,croton,piedras,rohit,drava,conceptualized,birla,illustrative,gurgaon,barisal,tutsi,dezong,nasional,polje,chanson,clarinets,krasnoyarsk,aleksandrovich,cosmonaut,d'este,palliative,midseason,silencing,wardens,durer,girders,salamanders,torrington,supersonics,lauda,farid,circumnavigation,embankments,funnels,bajnoksag,lorries,cappadocia,jains,warringah,retirees,burgesses,equalization,cusco,ganesan,algal,amazonian,lineups,allocating,conquerors,usurper,mnemonic,predating,brahmaputra,ahmadabad,maidenhead,numismatic,subregion,encamped,reciprocating,freebsd,irgun,tortoises,governorates,zionists,airfoil,collated,ajmer,fiennes,etymological,polemic,chadian,clerestory,nordiques,fluctuated,calvados,oxidizing,trailhead,massena,quarrels,dordogne,tirunelveli,pyruvate,pulsed,athabasca,sylar,appointee,serer,japonica,andronikos,conferencing,nicolaus,chemin,ascertained,incited,woodbine,helices,hospitalised,emplacements,to/from,orchestre,tyrannical,pannonia,methodism,pop/rock,shibuya,berbers,despot,seaward,westpac,separator,perpignan,alamein,judeo,publicize,quantization,ethniki,gracilis,menlo,offside,oscillating,unregulated,succumbing,finnmark,metrical,suleyman,raith,sovereigns,bundesstrasse,kartli,fiduciary,darshan,foramen,curler,concubines,calvinism,larouche,bukhara,sophomores,mohanlal,lutheranism,monomer,eamonn,'black,uncontested,immersive,tutorials,beachhead,bindings,permeable,postulates,comite,transformative,indiscriminate,hofstra,associacao,amarna,dermatology,lapland,aosta,babur,unambiguous,formatting,schoolboys,gwangju,superconducting,replayed,adherent,aureus,compressors,forcible,spitsbergen,boulevards,budgeting,nossa,annandale,perumal,interregnum,sassoon,kwajalein,greenbrier,caldas,triangulation,flavius,increment,shakhtar,nullified,pinfall,nomen,microfinance,depreciation,cubist,steeper,splendour,gruppe,everyman,chasers,campaigners,bridle,modality,percussive,darkly,capes,velar,picton,triennial,factional,padang,toponym,betterment,norepinephrine,
112th,estuarine,diemen,warehousing,morphism,ideologically,pairings,immunization,crassus,exporters,sefer,flocked,bulbous,deseret,booms,calcite,bohol,elven,groot,pulau,citigroup,wyeth,modernizing,layering,pastiche,complies,printmaker,condenser,theropod,cassino,oxyrhynchus,akademie,trainings,lowercase,coxae,parte,chetniks,pentagonal,keselowski,monocoque,morsi,reticulum,meiosis,clapboard,recoveries,tinge,an/fps,revista,sidon,livre,epidermis,conglomerates,kampong,congruent,harlequins,tergum,simplifies,epidemiological,underwriting,tcp/ip,exclusivity,multidimensional,mysql,columbine,ecologist,hayat,sicilies,levees,handset,aesop,usenet,pacquiao,archiving,alexandrian,compensatory,broadsheet,annotation,bahamian,d'affaires,interludes,phraya,shamans,marmara,customizable,immortalized,ambushes,chlorophyll,diesels,emulsion,rheumatoid,voluminous,screenwriters,tailoring,sedis,runcorn,democratization,bushehr,anacostia,constanta,antiquary,sixtus,radiate,advaita,antimony,acumen,barristers,reichsbahn,ronstadt,symbolist,pasig,cursive,secessionist,afrikaner,munnetra,inversely,adsorption,syllabic,moltke,idioms,midline,olimpico,diphosphate,cautions,radziwill,mobilisation,copelatus,trawlers,unicron,bhaskar,financiers,minimalism,derailment,marxists,oireachtas,abdicate,eigenvalue,zafar,vytautas,ganguly,chelyabinsk,telluride,subordination,ferried,dived,vendee,pictish,dimitrov,expiry,carnation,cayley,magnitudes,lismore,gretna,sandwiched,unmasked,sandomierz,swarthmore,tetra,nanyang,pevsner,dehradun,mormonism,rashi,complying,seaplanes,ningbo,cooperates,strathcona,mornington,mestizo,yulia,edgbaston,palisade,ethno,polytopes,espirito,tymoshenko,pronunciations,paradoxical,taichung,chipmunks,erhard,maximise,accretion,kanda,`abdu'l,narrowest,umpiring,mycenaean,divisor,geneticist,ceredigion,barque,hobbyists,equates,auxerre,spinose,cheil,sweetwater,guano,carboxylic,archiv,tannery,cormorant,agonists,fundacion,anbar,tunku,hindrance,meerut,concordat,secunderabad,kachin,achievable,murfreesboro,comprehensively,forges,broadest,synchronised,speciation,scapa,aliyev,conmebol,tirelessly,subjugated,pillaged,udaipur,defensively,lakhs,stateless,haasan,headlamps,patterning,podiums,polyphony,mcmurdo,mujer,vocally,storeyed,mucosa,multivariate,scopus,minimizes,formalised,certiorari,bourges,populate,overhanging,gaiety,unreserved,borromeo,woolworths,isotopic,bashar,purify,vertebra,medan,juxtaposition,earthwork,elongation,chaudhary,schematic,piast,steeped,nanotubes,fouls,achaea,legionnaires,abdur,qmjhl,embraer,hardback,centerville,ilocos,slovan,whitehorse,mauritian,moulding,mapuche,donned,provisioning,gazprom,jonesboro,audley,lightest,calyx,coldwater,trigonometric,petroglyphs,psychoanalyst,congregate,zambezi,fissure,supervises,bexley,etobicoke,wairarapa,tectonics,emphasises,formula_41,debugging,linfield,spatially,ionizing,ungulates,orinoco,clades,erlangen,news/talk,vols.,ceara,yakovlev,finsbury,entanglement,fieldhouse,graphene,intensifying,grigory,keyong,zacatecas,ninian,allgemeine,keswick,societa,snorri,femininity,najib,monoclonal,guyanese,postulate,huntly,abbeys,machinist,yunus,emphasising,ishaq,urmia,bremerton,pretenders,lumiere,thoroughfares,chikara,dramatized,metathorax,taiko,transcendence,wycliffe,retrieves,umpired,steuben,racehorses,taylors,kuznetsov,montezuma,precambrian,canopies,gaozong,propodeum,disestablished,retroactive,shoreham,rhizome,doubleheader,clinician,diwali,quartzite,shabaab,agassiz,despatched,stormwater,luxemburg,callao,universidade,courland,skane,glyph,dormers,witwatersrand,curacy,qualcomm,nansen,entablature,lauper,hausdorff,lusaka,ruthenian,
360deg,cityscape,douai,vaishnava,spars,vaulting,rationalist,gygax,sequestration,typology,pollinates,accelerators,leben,colonials,cenotaph,imparted,carthaginians,equaled,rostrum,gobind,bodhisattva,oberst,bicycling,arabi,sangre,biophysics,hainaut,vernal,lunenburg,apportioned,finches,lajos,nenad,repackaged,zayed,nikephoros,r.e.m,swaminarayan,gestalt,unplaced,crags,grohl,sialkot,unsaturated,gwinnett,linemen,forays,palakkad,writs,instrumentalists,aircrews,badged,terrapins,
180deg,oneness,commissariat,changi,pupation,circumscribed,contador,isotropic,administrated,fiefs,nimes,intrusions,minoru,geschichte,nadph,tainan,changchun,carbondale,frisia,swapo,evesham,hawai'i,encyclopedic,transporters,dysplasia,formula_42,onsite,jindal,guetta,judgements,narbonne,permissions,paleogene,rationalism,vilna,isometric,subtracted,chattahoochee,lamina,missa,greville,pervez,lattices,persistently,crystallization,timbered,hawaiians,fouling,interrelated,masood,ripening,stasi,gamal,visigothic,warlike,cybernetics,tanjung,forfar,cybernetic,karelian,brooklands,belfort,greifswald,campeche,inexplicably,refereeing,understory,uninterested,prius,collegiately,sefid,sarsfield,categorize,biannual,elsevier,eisteddfod,declension,autonoma,procuring,misrepresentation,novelization,bibliographic,shamanism,vestments,potash,eastleigh,ionized,turan,lavishly,scilly,balanchine,importers,parlance,'that,kanyakumari,synods,mieszko,crossovers,serfdom,conformational,legislated,exclave,heathland,sadar,differentiates,propositional,konstantinos,photoshop,manche,vellore,appalachia,orestes,taiga,exchanger,grozny,invalidated,baffin,spezia,staunchly,eisenach,robustness,virtuosity,ciphers,inlets,bolagh,understandings,bosniaks,parser,typhoons,sinan,luzerne,webcomic,subtraction,jhelum,businessweek,ceske,refrained,firebox,mitigated,helmholtz,dilip,eslamabad,metalwork,lucan,apportionment,provident,gdynia,schooners,casement,danse,hajjiabad,benazir,buttress,anthracite,newsreel,wollaston,dispatching,cadastral,riverboat,provincetown,nantwich,missal,irreverent,juxtaposed,darya,ennobled,electropop,stereoscopic,maneuverability,laban,luhansk,udine,collectibles,haulage,holyrood,materially,supercharger,gorizia,shkoder,townhouses,pilate,layoffs,folkloric,dialectic,exuberant,matures,malla,ceuta,citizenry,crewed,couplet,stopover,transposition,tradesmen,antioxidant,amines,utterance,grahame,landless,isere,diction,appellant,satirist,urbino,intertoto,subiaco,antonescu,nehemiah,ubiquitin,emcee,stourbridge,fencers,
103rd,wranglers,monteverdi,watertight,expounded,xiamen,manmohan,pirie,threefold,antidepressant,sheboygan,grieg,cancerous,diverging,bernini,polychrome,fundamentalism,bihari,critiqued,cholas,villers,tendulkar,dafydd,vastra,fringed,evangelization,episcopalian,maliki,sana'a,ashburton,trianon,allegany,heptathlon,insufficiently,panelists,pharrell,hexham,amharic,fertilized,plumes,cistern,stratigraphy,akershus,catalans,karoo,rupee,minuteman,quantification,wigmore,leutnant,metanotum,weeknights,iridescent,extrasolar,brechin,deuterium,kuching,lyricism,astrakhan,brookhaven,euphorbia,hradec,bhagat,vardar,aylmer,positron,amygdala,speculators,unaccompanied,debrecen,slurry,windhoek,disaffected,rapporteur,mellitus,blockers,fronds,yatra,sportsperson,precession,physiologist,weeknight,pidgin,pharma,condemns,standardize,zetian,tibor,glycoprotein,emporia,cormorants,amalie,accesses,leonhard,denbighshire,roald,
116th,will.i.am,symbiosis,privatised,meanders,chemnitz,jabalpur,shing,secede,ludvig,krajina,homegrown,snippets,sasanian,euripides,peder,cimarron,streaked,graubunden,kilimanjaro,mbeki,middleware,flensburg,bukovina,lindwall,marsalis,profited,abkhaz,polis,camouflaged,amyloid,morgantown,ovoid,bodleian,morte,quashed,gamelan,juventud,natchitoches,storyboard,freeview,enumeration,cielo,preludes,bulawayo,
1600s,olympiads,multicast,faunal,asura,reinforces,puranas,ziegfeld,handicraft,seamount,kheil,noche,hallmarks,dermal,colorectal,encircle,hessen,umbilicus,sunnis,leste,unwin,disclosing,superfund,montmartre,refuelling,subprime,kolhapur,etiology,bismuth,laissez,vibrational,mazar,alcoa,rumsfeld,recurve,ticonderoga,lionsgate,onlookers,homesteads,filesystem,barometric,kingswood,biofuel,belleza,moshav,occidentalis,asymptomatic,northeasterly,leveson,huygens,numan,kingsway,primogeniture,toyotomi,yazoo,limpets,greenbelt,booed,concurrence,dihedral,ventrites,raipur,sibiu,plotters,kitab,
109th,trackbed,skilful,berthed,effendi,fairing,sephardi,mikhailovich,lockyer,wadham,invertible,paperbacks,alphabetic,deuteronomy,constitutive,leathery,greyhounds,estoril,beechcraft,poblacion,cossidae,excreted,flamingos,singha,olmec,neurotransmitters,ascoli,nkrumah,forerunners,dualism,disenchanted,benefitted,centrum,undesignated,noida,o'donoghue,collages,egrets,egmont,wuppertal,cleave,montgomerie,pseudomonas,srinivasa,lymphatic,stadia,resold,minima,evacuees,consumerism,ronde,biochemist,automorphism,hollows,smuts,improvisations,vespasian,bream,pimlico,eglin,colne,melancholic,berhad,ousting,saale,notaulices,ouest,hunslet,tiberias,abdomina,ramsgate,stanislas,donbass,pontefract,sucrose,halts,drammen,chelm,l'arc,taming,trolleys,konin,incertae,licensees,scythian,giorgos,dative,tanglewood,farmlands,o'keeffe,caesium,romsdal,amstrad,corte,oglethorpe,huntingdonshire,magnetization,adapts,zamosc,shooto,cuttack,centrepiece,storehouse,winehouse,morbidity,woodcuts,ryazan,buddleja,buoyant,bodmin,estero,austral,verifiable,periyar,christendom,curtail,shura,kaifeng,cotswold,invariance,seafaring,gorica,androgen,usman,seabird,forecourt,pekka,juridical,audacious,yasser,cacti,qianlong,polemical,d'amore,espanyol,distrito,cartographers,pacifism,serpents,backa,nucleophilic,overturning,duplicates,marksman,oriente,vuitton,oberleutnant,gielgud,gesta,swinburne,transfiguration,
1750s,retaken,celje,fredrikstad,asuka,cropping,mansard,donates,blacksmiths,vijayanagara,anuradhapura,germinate,betis,foreshore,jalandhar,bayonets,devaluation,frazione,ablaze,abidjan,approvals,homeostasis,corollary,auden,superfast,redcliffe,luxembourgish,datum,geraldton,printings,ludhiana,honoree,synchrotron,invercargill,hurriedly,
108th,three-and-a-half,colonist,bexar,limousin,bessemer,ossetian,nunataks,buddhas,rebuked,thais,tilburg,verdicts,interleukin,unproven,dordrecht,solent,acclamation,muammar,dahomey,operettas,
4x400,arrears,negotiators,whitehaven,apparitions,armoury,psychoactive,worshipers,sculptured,elphinstone,airshow,kjell,o'callaghan,shrank,professorships,predominance,subhash,coulomb,sekolah,retrofitted,samos,overthrowing,vibrato,resistors,palearctic,datasets,doordarshan,subcutaneous,compiles,immorality,patchwork,trinidadian,glycogen,pronged,zohar,visigoths,freres,akram,justo,agora,intakes,craiova,playwriting,bukhari,militarism,iwate,petitioners,harun,wisla,inefficiency,vendome,ledges,schopenhauer,kashi,entombed,assesses,tenn.,noumea,baguio,carex,o'donovan,filings,hillsdale,conjectures,blotches,annuals,lindisfarne,negated,vivek,angouleme,trincomalee,cofactor,verkhovna,backfield,twofold,automaker,rudra,freighters,darul,gharana,busway,formula_43,plattsburgh,portuguesa,showrunner,roadmap,valenciennes,erdos,biafra,spiritualism,transactional,modifies,carne,
107th,cocos,gcses,tiverton,radiotherapy,meadowlands,gunma,srebrenica,foxtel,authenticated,enslavement,classicist,klaipeda,minstrels,searchable,infantrymen,incitement,shiga,nadp+,urals,guilders,banquets,exteriors,counterattacks,visualized,diacritics,patrimony,svensson,transepts,prizren,telegraphy,najaf,emblazoned,coupes,effluent,ragam,omani,greensburg,taino,flintshire,cd/dvd,lobbies,narrating,cacao,seafarers,bicolor,collaboratively,suraj,floodlit,sacral,puppetry,tlingit,malwa,login,motionless,thien,overseers,vihar,golem,specializations,bathhouse,priming,overdubs,winningest,archetypes,uniao,acland,creamery,slovakian,lithographs,maryborough,confidently,excavating,stillborn,ramallah,audiencia,alava,ternary,hermits,rostam,bauxite,gawain,lothair,captions,gulfstream,timelines,receded,mediating,petain,bastia,rudbar,bidders,disclaimer,shrews,tailings,trilobites,yuriy,jamil,demotion,gynecology,rajinikanth,madrigals,ghazni,flycatchers,vitebsk,bizet,computationally,kashgar,refinements,frankford,heralds,europe/africa,levante,disordered,sandringham,queues,ransacked,trebizond,verdes,comedie,primitives,figurine,organists,culminate,gosport,coagulation,ferrying,hoyas,polyurethane,prohibitive,midfielders,ligase,progesterone,defectors,sweetened,backcountry,diodorus,waterside,nieuport,khwaja,jurong,decried,gorkha,ismaili,
300th,octahedral,kindergartens,paseo,codification,notifications,disregarding,risque,reconquista,shortland,atolls,texarkana,perceval,d'etudes,kanal,herbicides,tikva,nuova,gatherer,dissented,soweto,dexterity,enver,bacharach,placekicker,carnivals,automate,maynooth,symplectic,chetnik,militaire,upanishads,distributive,strafing,championing,moiety,miliband,blackadder,enforceable,maung,dimer,stadtbahn,diverges,obstructions,coleophoridae,disposals,shamrocks,aural,banca,bahru,coxed,grierson,vanadium,watermill,radiative,ecoregions,berets,hariri,bicarbonate,evacuations,mallee,nairn,rushden,loggia,slupsk,satisfactorily,milliseconds,cariboo,reine,cyclo,pigmentation,postmodernism,aqueducts,vasari,bourgogne,dilemmas,liquefied,fluminense,alloa,ibaraki,tenements,kumasi,humerus,raghu,labours,putsch,soundcloud,bodybuilder,rakyat,domitian,pesaro,translocation,sembilan,homeric,enforcers,tombstones,lectureship,rotorua,salamis,nikolaos,inferences,superfortress,lithgow,surmised,undercard,tarnow,barisan,stingrays,federacion,coldstream,haverford,ornithological,heerenveen,eleazar,jyoti,murali,bamako,riverbed,subsidised,theban,conspicuously,vistas,conservatorium,madrasa,kingfishers,arnulf,credential,syndicalist,sheathed,discontinuity,prisms,tsushima,coastlines,escapees,vitis,optimizing,megapixel,overground,embattled,halide,sprinters,buoys,mpumalanga,peculiarities,
106th,roamed,menezes,macao,prelates,papyri,freemen,dissertations,irishmen,pooled,sverre,reconquest,conveyance,subjectivity,asturian,circassian,formula_45,comdr,thickets,unstressed,monro,passively,harmonium,moveable,dinar,carlsson,elysees,chairing,b'nai,confusingly,kaoru,convolution,godolphin,facilitator,saxophones,eelam,jebel,copulation,anions,livres,licensure,pontypridd,arakan,controllable,alessandria,propelling,stellenbosch,tiber,wolka,liberators,yarns,d'azur,tsinghua,semnan,amhara,ablation,melies,tonality,historique,beeston,kahne,intricately,sonoran,robespierre,gyrus,boycotts,defaulted,infill,maranhao,emigres,framingham,paraiba,wilhelmshaven,tritium,skyway,labial,supplementation,possessor,underserved,motets,maldivian,marrakech,quays,wikimedia,turbojet,demobilization,petrarch,encroaching,sloops,masted,karbala,corvallis,agribusiness,seaford,stenosis,hieronymus,irani,superdraft,baronies,cortisol,notability,veena,pontic,cyclin,archeologists,newham,culled,concurring,aeolian,manorial,shouldered,fords,philanthropists,
105th,siddharth,gotthard,halim,rajshahi,jurchen,detritus,practicable,earthenware,discarding,travelogue,neuromuscular,elkhart,raeder,zygmunt,metastasis,internees,
102nd,vigour,upmarket,summarizing,subjunctive,offsets,elizabethtown,udupi,pardubice,repeaters,instituting,archaea,substandard,technische,linga,anatomist,flourishes,velika,tenochtitlan,evangelistic,fitchburg,springbok,cascading,hydrostatic,avars,occasioned,filipina,perceiving,shimbun,africanus,consternation,tsing,optically,beitar,
45deg,abutments,roseville,monomers,huelva,lotteries,hypothalamus,internationalist,electromechanical,hummingbirds,fibreglass,salaried,dramatists,uncovers,invokes,earners,excretion,gelding,ancien,aeronautica,haverhill,stour,ittihad,abramoff,yakov,ayodhya,accelerates,industrially,aeroplanes,deleterious,dwelt,belvoir,harpalus,atpase,maluku,alasdair,proportionality,taran,epistemological,interferometer,polypeptide,adjudged,villager,metastatic,marshalls,madhavan,archduchess,weizmann,kalgoorlie,balan,predefined,sessile,sagaing,brevity,insecticide,psychosocial,africana,steelworks,aether,aquifers,belem,mineiro,almagro,radiators,cenozoic,solute,turbocharger,invicta,guested,buccaneer,idolatry,unmatched,paducah,sinestro,dispossessed,conforms,responsiveness,cyanobacteria,flautist,procurator,complementing,semifinalist,rechargeable,permafrost,cytokine,refuges,boomed,gelderland,franchised,jinan,burnie,doubtless,randomness,colspan=
12,angra,ginebra,famers,nuestro,declarative,roughness,lauenburg,motile,rekha,issuer,piney,interceptors,napoca,gipsy,formulaic,formula_44,viswanathan,ebrahim,thessalonica,galeria,muskogee,unsold,html5,taito,mobutu,icann,carnarvon,fairtrade,morphisms,upsilon,nozzles,fabius,meander,murugan,strontium,episcopacy,sandinista,parasol,attenuated,bhima,primeval,panay,ordinator,negara,osteoporosis,glossop,ebook,paradoxically,grevillea,modoc,equating,phonetically,legumes,covariant,dorje,quatre,bruxelles,pyroclastic,shipbuilder,zhaozong,obscuring,sveriges,tremolo,extensible,barrack,multnomah,hakon,chaharmahal,parsing,volumetric,astrophysical,glottal,combinatorics,freestanding,encoder,paralysed,cavalrymen,taboos,heilbronn,orientalis,lockport,marvels,ozawa,dispositions,waders,incurring,saltire,modulate,papilio,phenol,intermedia,rappahannock,plasmid,fortify,phenotypes,transiting,correspondences,leaguer,larnaca,incompatibility,mcenroe,deeming,endeavoured,aboriginals,helmed,salar,arginine,werke,ferrand,expropriated,delimited,couplets,phoenicians,petioles,ouster,anschluss,protectionist,plessis,urchins,orquesta,castleton,juniata,bittorrent,fulani,donji,mykola,rosemont,chandos,scepticism,signer,chalukya,wicketkeeper,coquitlam,programmatic,o'brian,carteret,urology,steelhead,paleocene,konkan,bettered,venkatesh,surfacing,longitudinally,centurions,popularization,yazid,douro,widths,premios,leonards,gristmill,fallujah,arezzo,leftists,ecliptic,glycerol,inaction,disenfranchised,acrimonious,depositing,parashah,cockatoo,marechal,bolzano,chios,cablevision,impartiality,pouches,thickly,equities,bentinck,emotive,boson,ashdown,conquistadors,parsi,conservationists,reductive,newlands,centerline,ornithologists,waveguide,nicene,philological,hemel,setanta,masala,aphids,convening,casco,matrilineal,chalcedon,orthographic,hythe,replete,damming,bolivarian,admixture,embarks,borderlands,conformed,nagarjuna,blenny,chaitanya,suwon,shigeru,tatarstan,lingayen,rejoins,grodno,merovingian,hardwicke,puducherry,prototyping,laxmi,upheavals,headquarter,pollinators,bromine,transom,plantagenet,arbuthnot,chidambaram,woburn,osamu,panelling,coauthored,zhongshu,hyaline,omissions,aspergillus,offensively,electrolytic,woodcut,sodom,intensities,clydebank,piotrkow,supplementing,quipped,focke,harbinger,positivism,parklands,wolfenbuttel,cauca,tryptophan,taunus,curragh,tsonga,remand,obscura,ashikaga,eltham,forelimbs,analogs,trnava,observances,kailash,antithesis,ayumi,abyssinia,dorsally,tralee,pursuers,misadventures,padova,perot,mahadev,tarim,granth,licenced,compania,patuxent,baronial,korda,cochabamba,codices,karna,memorialized,semaphore,playlists,mandibular,halal,sivaji,scherzinger,stralsund,foundries,ribosome,mindfulness,nikolayevich,paraphyletic,newsreader,catalyze,ioannina,thalamus,gbit/s,paymaster,sarab,
500th,replenished,gamepro,cracow,formula_46,gascony,reburied,lessing,easement,transposed,meurthe,satires,proviso,balthasar,unbound,cuckoos,durbar,louisbourg,cowes,wholesalers,manet,narita,xiaoping,mohamad,illusory,cathal,reuptake,alkaloid,tahrir,mmorpg,underlies,anglicanism,repton,aharon,exogenous,buchenwald,indigent,odostomia,milled,santorum,toungoo,nevsky,steyr,urbanisation,darkseid,subsonic,canaanite,akiva,eglise,dentition,mediators,cirencester,peloponnesian,malmesbury,durres,oerlikon,tabulated,saens,canaria,ischemic,esterhazy,ringling,centralization,walthamstow,nalanda,lignite,takht,leninism,expiring,circe,phytoplankton,promulgation,integrable,breeches,aalto,menominee,borgo,scythians,skrull,galleon,reinvestment,raglan,reachable,liberec,airframes,electrolysis,geospatial,rubiaceae,interdependence,symmetrically,simulcasts,keenly,mauna,adipose,zaidi,fairport,vestibular,actuators,monochromatic,literatures,congestive,sacramental,atholl,skytrain,tycho,tunings,jamia,catharina,modifier,methuen,tapings,infiltrating,colima,grafting,tauranga,halides,pontificate,phonetics,koper,hafez,grooved,kintetsu,extrajudicial,linkoping,cyberpunk,repetitions,laurentian,parnu,bretton,darko,sverdlovsk,foreshadowed,akhenaten,rehnquist,gosford,coverts,pragmatism,broadleaf,ethiopians,instated,mediates,sodra,opulent,descriptor,enugu,shimla,leesburg,officership,giffard,refectory,lusitania,cybermen,fiume,corus,tydfil,lawrenceville,ocala,leviticus,burghers,ataxia,richthofen,amicably,acoustical,watling,inquired,tiempo,multiracial,parallelism,trenchard,tokyopop,germanium,usisl,philharmonia,shapur,jacobites,latinized,sophocles,remittances,o'farrell,adder,dimitrios,peshwa,dimitar,orlov,outstretched,musume,satish,dimensionless,serialised,baptisms,pagasa,antiviral,
1740s,quine,arapaho,bombardments,stratosphere,ophthalmic,injunctions,carbonated,nonviolence,asante,creoles,sybra,boilermakers,abington,bipartite,permissive,cardinality,anheuser,carcinogenic,hohenlohe,surinam,szeged,infanticide,generically,floorball,'white,automakers,cerebellar,homozygous,remoteness,effortlessly,allude,'great,headmasters,minting,manchurian,kinabalu,wemyss,seditious,widgets,marbled,almshouses,bards,subgenres,tetsuya,faulting,kickboxer,gaulish,hoseyn,malton,fluvial,questionnaires,mondale,downplayed,traditionalists,vercelli,sumatran,landfills,gamesradar,exerts,franciszek,unlawfully,huesca,diderot,libertarians,professorial,laane,piecemeal,conidae,taiji,curatorial,perturbations,abstractions,szlachta,watercraft,mullah,zoroastrianism,segmental,khabarovsk,rectors,affordability,scuola,diffused,stena,cyclonic,workpiece,romford,'little,jhansi,stalag,zhongshan,skipton,maracaibo,bernadotte,thanet,groening,waterville,encloses,sahrawi,nuffield,moorings,chantry,annenberg,islay,marchers,tenses,wahid,siegen,furstenberg,basques,resuscitation,seminarians,tympanum,gentiles,vegetarianism,tufted,venkata,fantastical,pterophoridae,machined,superposition,glabrous,kaveri,chicane,executors,phyllonorycter,bidirectional,jasta,undertones,touristic,majapahit,navratilova,unpopularity,barbadian,tinian,webcast,hurdler,rigidly,jarrah,staphylococcus,igniting,irrawaddy,stabilised,airstrike,ragas,wakayama,energetically,ekstraklasa,minibus,largemouth,cultivators,leveraging,waitangi,carnaval,weaves,turntables,heydrich,sextus,excavate,govind,ignaz,pedagogue,uriah,borrowings,gemstones,infractions,mycobacterium,batavian,massing,praetor,subalpine,massoud,passers,geostationary,jalil,trainsets,barbus,impair,budejovice,denbigh,pertain,historicity,fortaleza,nederlandse,lamenting,masterchef,doubs,gemara,conductance,ploiesti,cetaceans,courthouses,bhagavad,mihailovic,occlusion,bremerhaven,bulwark,morava,kaine,drapery,maputo,conquistador,kaduna,famagusta,first-past-the-post,erudite,galton,undated,tangential,filho,dismembered,dashes,criterium,darwen,metabolized,blurring,everard,randwick,mohave,impurity,acuity,ansbach,chievo,surcharge,plantain,algoma,porosity,zirconium,selva,sevenoaks,venizelos,gwynne,golgi,imparting,separatism,courtesan,idiopathic,gravestones,hydroelectricity,babar,orford,purposeful,acutely,shard,ridgewood,viterbo,manohar,expropriation,placenames,brevis,cosine,unranked,richfield,newnham,recoverable,flightless,dispersing,clearfield,abu'l,stranraer,kempe,streamlining,goswami,epidermal,pieta,conciliatory,distilleries,electrophoresis,bonne,tiago,curiosities,candidature,picnicking,perihelion,lintel,povoa,gullies,configure,excision,facies,signers,
1730s,insufficiency,semiotics,streatham,deactivation,entomological,skippers,albacete,parodying,escherichia,honorees,singaporeans,counterterrorism,tiruchirappalli,omnivorous,metropole,globalisation,athol,unbounded,codice_5,landforms,classifier,farmhouses,reaffirming,reparation,yomiuri,technologists,mitte,medica,viewable,steampunk,konya,kshatriya,repelling,edgewater,lamiinae,devas,potteries,llandaff,engendered,submits,virulence,uplifted,educationist,metropolitans,frontrunner,dunstable,forecastle,frets,methodius,exmouth,linnean,bouchet,repulsion,computable,equalling,liceo,tephritidae,agave,hydrological,azarenka,fairground,l'homme,enforces,xinhua,cinematographers,cooperstown,sa'id,paiute,christianization,tempos,chippenham,insulator,kotor,stereotyped,dello,cours,hisham,d'souza,eliminations,supercars,passau,rebrand,natures,coote,persephone,rededicated,cleaved,plenum,blistering,indiscriminately,cleese,safed,recursively,compacted,revues,hydration,shillong,echelons,garhwal,pedimented,grower,zwolle,wildflower,annexing,methionine,petah,valens,famitsu,petiole,specialities,nestorian,shahin,tokaido,shearwater,barberini,kinsmen,experimenter,alumnae,cloisters,alumina,pritzker,hardiness,soundgarden,julich,ps300,watercourse,cementing,wordplay,olivet,demesne,chasseurs,amide,zapotec,gaozu,porphyry,absorbers,indium,analogies,devotions,engravers,limestones,catapulted,surry,brickworks,gotra,rodham,landline,paleontologists,shankara,islip,raucous,trollope,arpad,embarkation,morphemes,recites,picardie,nakhchivan,tolerances,formula_47,khorramabad,nichiren,adrianople,kirkuk,assemblages,collider,bikaner,bushfires,roofline,coverings,reredos,bibliotheca,mantras,accentuated,commedia,rashtriya,fluctuation,serhiy,referential,fittipaldi,vesicle,geeta,iraklis,immediacy,chulalongkorn,hunsruck,bingen,dreadnoughts,stonemason,meenakshi,lebesgue,undergrowth,baltistan,paradoxes,parlement,articled,tiflis,dixieland,meriden,tejano,underdogs,barnstable,exemplify,venter,tropes,wielka,kankakee,iskandar,zilina,pharyngeal,spotify,materialised,picts,atlantique,theodoric,prepositions,paramilitaries,pinellas,attlee,actuated,piedmontese,grayling,thucydides,multifaceted,unedited,autonomously,universelle,utricularia,mooted,preto,incubated,underlie,brasenose,nootka,bushland,sensu,benzodiazepine,esteghlal,seagoing,amenhotep,azusa,sappers,culpeper,smokeless,thoroughbreds,dargah,gorda,alumna,mankato,zdroj,deleting,culvert,formula_49,punting,wushu,hindering,immunoglobulin,standardisation,birger,oilfield,quadrangular,ulama,recruiters,netanya,
1630s,communaute,istituto,maciej,pathan,meher,vikas,characterizations,playmaker,interagency,intercepts,assembles,horthy,introspection,narada,matra,testes,radnicki,estonians,csiro,instar,mitford,adrenergic,crewmembers,haaretz,wasatch,lisburn,rangefinder,ordre,condensate,reforestation,corregidor,spvgg,modulator,mannerist,faulted,aspires,maktoum,squarepants,aethelred,piezoelectric,mulatto,dacre,progressions,jagiellonian,norge,samaria,sukhoi,effingham,coxless,hermetic,humanists,centrality,litters,stirlingshire,beaconsfield,sundanese,geometrically,caretakers,habitually,bandra,pashtuns,bradenton,arequipa,laminar,brickyard,hitchin,sustains,shipboard,ploughing,trechus,wheelers,bracketed,ilyushin,subotica,d'hondt,reappearance,bridgestone,intermarried,fulfilment,aphasia,birkbeck,transformational,strathmore,hornbill,millstone,lacan,voids,solothurn,gymnasiums,laconia,viaducts,peduncle,teachta,edgware,shinty,supernovae,wilfried,exclaim,parthia,mithun,flashpoint,moksha,cumbia,metternich,avalanches,militancy,motorist,rivadavia,chancellorsville,federals,gendered,bounding,footy,gauri,caliphs,lingam,watchmaker,unrecorded,riverina,unmodified,seafloor,droit,pfalz,chrysostom,gigabit,overlordship,besiege,espn2,oswestry,anachronistic,ballymena,reactivation,duchovny,ghani,abacetus,duller,legio,watercourses,nord-pas-de-calais,leiber,optometry,swarms,installer,sancti,adverbs,iheartmedia,meiningen,zeljko,kakheti,notional,circuses,patrilineal,acrobatics,infrastructural,sheva,oregonian,adjudication,aamir,wloclawek,overfishing,obstructive,subtracting,aurobindo,archeologist,newgate,'cause,secularization,tehsils,abscess,fingal,janacek,elkhorn,trims,kraftwerk,mandating,irregulars,faintly,congregationalist,sveti,kasai,mishaps,kennebec,provincially,durkheim,scotties,aicte,rapperswil,imphal,surrenders,morphs,nineveh,hoxha,cotabato,thuringian,metalworking,retold,shogakukan,anthers,proteasome,tippeligaen,disengagement,mockumentary,palatial,erupts,flume,corrientes,masthead,jaroslaw,rereleased,bharti,labors,distilling,tusks,varzim,refounded,enniskillen,melkite,semifinalists,vadodara,bermudian,capstone,grasse,origination,populus,alesi,arrondissements,semigroup,verein,opossum,messrs.,portadown,bulbul,tirupati,mulhouse,tetrahedron,roethlisberger,nonverbal,connexion,warangal,deprecated,gneiss,octet,vukovar,hesketh,chambre,despatch,claes,kargil,hideo,gravelly,tyndale,aquileia,tuners,defensible,tutte,theotokos,constructivist,ouvrage,dukla,polisario,monasticism,proscribed,commutation,testers,nipissing,codon,mesto,olivine,concomitant,exoskeleton,purports,coromandel,eyalet,dissension,hippocrates,purebred,yaounde,composting,oecophoridae,procopius,o'day,angiogenesis,sheerness,intelligencer,articular,felixstowe,aegon,endocrinology,trabzon,licinius,pagodas,zooplankton,hooghly,satie,drifters,sarthe,mercian,neuilly,tumours,canal+,scheldt,inclinations,counteroffensive,roadrunners,tuzla,shoreditch,surigao,predicates,carnot,algeciras,militaries,generalize,bulkheads,gawler,pollutant,celta,rundgren,microrna,gewog,olimpija,placental,lubelski,roxburgh,discerned,verano,kikuchi,musicale,l'enfant,ferocity,dimorphic,antigonus,erzurum,prebendary,recitative,discworld,cyrenaica,stigmella,totnes,sutta,pachuca,ulsan,downton,landshut,castellan,pleural,siedlce,siecle,catamaran,cottbus,utilises,trophic,freeholders,holyhead,u.s.s,chansons,responder,waziristan,suzuka,birding,shogi,asker,acetone,beautification,cytotoxic,dixit,hunterdon,cobblestone,formula_48,kossuth,devizes,sokoto,interlaced,shuttered,kilowatts,assiniboine,isaak,salto,alderney,sugarloaf,franchising,aggressiveness,toponyms,plaintext,antimatter,henin,equidistant,salivary,bilingualism,mountings,obligate,extirpated,irenaeus,misused,pastoralists,aftab,immigrating,warping,tyrolean,seaforth,teesside,soundwave,oligarchy,stelae,pairwise,iupac,tezuka,posht,orchestrations,landmass,ironstone,gallia,hjalmar,carmelites,strafford,elmhurst,palladio,fragility,teleplay,gruffudd,karoly,yerba,potok,espoo,inductance,macaque,nonprofits,pareto,rock'n'roll,spiritualist,shadowed,skateboarder,utterances,generality,congruence,prostrate,deterred,yellowknife,albarn,maldon,battlements,mohsen,insecticides,khulna,avellino,menstruation,glutathione,springdale,parlophone,confraternity,korps,countrywide,bosphorus,preexisting,damodar,astride,alexandrovich,sprinting,crystallized,botev,leaching,interstates,veers,angevin,undaunted,yevgeni,nishapur,northerners,alkmaar,bethnal,grocers,sepia,tornus,exemplar,trobe,charcot,gyeonggi,larne,tournai,lorain,voided,genji,enactments,maxilla,adiabatic,eifel,nazim,transducer,thelonious,pyrite,deportiva,dialectal,bengt,rosettes,labem,sergeyevich,synoptic,conservator,statuette,biweekly,adhesives,bifurcation,rajapaksa,mammootty,republique,yusef,waseda,marshfield,yekaterinburg,minnelli,fundy,fenian,matchups,dungannon,supremacist,panelled,drenthe,iyengar,fibula,narmada,homeport,oceanside,precept,antibacterial,altarpieces,swath,ospreys,lillooet,legnica,lossless,formula_50,galvatron,iorga,stormont,rsfsr,loggers,kutno,phenomenological,medallists,cuatro,soissons,homeopathy,bituminous,injures,syndicates,typesetting,displacements,dethroned,makassar,lucchese,abergavenny,targu,alborz,akb48,boldface,gastronomy,sacra,amenity,accumulator,myrtaceae,cornices,mourinho,denunciation,oxbow,diddley,aargau,arbitrage,bedchamber,gruffydd,zamindar,klagenfurt,caernarfon,slowdown,stansted,abrasion,tamaki,suetonius,dukakis,individualistic,ventrally,hotham,perestroika,ketones,fertilisation,sobriquet,couplings,renderings,misidentified,rundfunk,sarcastically,braniff,concours,dismissals,elegantly,modifiers,crediting,combos,crucially,seafront,lieut,ischemia,manchus,derivations,proteases,aristophanes,adenauer,porting,hezekiah,sante,trulli,hornblower,foreshadowing,ypsilanti,dharwad,khani,hohenstaufen,distillers,cosmodrome,intracranial,turki,salesian,gorzow,jihlava,yushchenko,leichhardt,venables,cassia,eurogamer,airtel,curative,bestsellers,timeform,sortied,grandview,massillon,ceding,pilbara,chillicothe,heredity,elblag,rogaland,ronne,millennial,batley,overuse,bharata,fille,campbelltown,abeyance,counterclockwise,
250cc,neurodegenerative,consigned,electromagnetism,sunnah,saheb,exons,coxswain,gleaned,bassoons,worksop,prismatic,immigrate,pickets,takeo,bobsledder,stosur,fujimori,merchantmen,stiftung,forli,endorses,taskforce,thermally,atman,gurps,floodplains,enthalpy,extrinsic,setubal,kennesaw,grandis,scalability,durations,showrooms,prithvi,outro,overruns,andalucia,amanita,abitur,hipper,mozambican,sustainment,arsene,chesham,palaeolithic,reportage,criminality,knowsley,haploid,atacama,shueisha,ridgefield,astern,getafe,lineal,timorese,restyled,hollies,agincourt,unter,justly,tannins,mataram,industrialised,tarnovo,mumtaz,mustapha,stretton,synthetase,condita,allround,putra,stjepan,troughs,aechmea,specialisation,wearable,kadokawa,uralic,aeros,messiaen,existentialism,jeweller,effigies,gametes,fjordane,cochlear,interdependent,demonstrative,unstructured,emplacement,famines,spindles,amplitudes,actuator,tantalum,psilocybe,apnea,monogatari,expulsions,seleucus,tsuen,hospitaller,kronstadt,eclipsing,olympiakos,clann,canadensis,inverter,helio,egyptologist,squamous,resonate,munir,histology,torbay,khans,jcpenney,veterinarians,aintree,microscopes,colonised,reflectors,phosphorylated,pristimantis,tulare,corvinus,multiplexing,midweek,demosthenes,transjordan,ecija,tengku,vlachs,anamorphic,counterweight,radnor,trinitarian,armidale,maugham,njsiaa,futurism,stairways,avicenna,montebello,bridgetown,wenatchee,lyonnais,amass,surinamese,streptococcus,m*a*s*h,hydrogenation,frazioni,proscenium,kalat,pennsylvanian,huracan,tallying,kralove,nucleolar,phrygian,seaports,hyacinthe,ignace,donning,instalment,regnal,fonds,prawn,carell,folktales,goaltending,bracknell,vmware,patriarchy,mitsui,kragujevac,pythagoras,soult,thapa,disproved,suwalki,secures,somoza,l'ecole,divizia,chroma,herders,technologist,deduces,maasai,rampur,paraphrase,raimi,imaged,magsaysay,ivano,turmeric,formula_51,subcommittees,axillary,ionosphere,organically,indented,refurbishing,pequot,violinists,bearn,colle,contralto,silverton,mechanization,etruscans,wittelsbach,pasir,redshirted,marrakesh,scarp,plein,wafers,qareh,teotihuacan,frobenius,sinensis,rehoboth,bundaberg,newbridge,hydrodynamic,traore,abubakar,adjusts,storytellers,dynamos,verbandsliga,concertmaster,exxonmobil,appreciable,sieradz,marchioness,chaplaincy,rechristened,cunxu,overpopulation,apolitical,sequencer,beaked,nemanja,binaries,intendant,absorber,filamentous,indebtedness,nusra,nashik,reprises,psychedelia,abwehr,ligurian,isoform,resistive,pillaging,mahathir,reformatory,lusatia,allerton,ajaccio,tepals,maturin,njcaa,abyssinian,objector,fissures,sinuous,ecclesiastic,dalits,caching,deckers,phosphates,wurlitzer,navigated,trofeo,berea,purefoods,solway,unlockable,grammys,kostroma,vocalizations,basilan,rebuke,abbasi,douala,helsingborg,ambon,bakar,runestones,cenel,tomislav,pigmented,northgate,excised,seconda,kirke,determinations,dedicates,vilas,pueblos,reversion,unexploded,overprinted,ekiti,deauville,masato,anaesthesia,endoplasmic,transponders,aguascalientes,hindley,celluloid,affording,bayeux,piaget,rickshaws,eishockey,camarines,zamalek,undersides,hardwoods,hermitian,mutinied,monotone,blackmails,affixes,jpmorgan,habermas,mitrovica,paleontological,polystyrene,thana,manas,conformist,turbofan,decomposes,logano,castration,metamorphoses,patroness,herbicide,mikolaj,rapprochement,macroeconomics,barranquilla,matsudaira,lintels,femina,hijab,spotsylvania,morpheme,bitola,baluchistan,kurukshetra,otway,extrusion,waukesha,menswear,helder,trung,bingley,protester,boars,overhang,differentials,exarchate,hejaz,kumara,unjustified,timings,sharpness,nuovo,taisho,sundar,etc..,jehan,unquestionably,muscovy,daltrey,canute,paneled,amedeo,metroplex,elaborates,telus,tetrapods,dragonflies,epithets,saffir,parthenon,lucrezia,refitting,pentateuch,hanshin,montparnasse,lumberjacks,sanhedrin,erectile,odors,greenstone,resurgent,leszek,amory,substituents,prototypical,viewfinder,monck,universiteit,joffre,revives,chatillon,seedling,scherzo,manukau,ashdod,gympie,homolog,stalwarts,ruinous,weibo,tochigi,wallenberg,gayatri,munda,satyagraha,storefronts,heterogeneity,tollway,sportswriters,binocular,gendarmes,ladysmith,tikal,ortsgemeinde,ja'far,osmotic,linlithgow,bramley,telecoms,pugin,repose,rupaul,sieur,meniscus,garmisch,reintroduce,
400th,shoten,poniatowski,drome,kazakhstani,changeover,astronautics,husserl,herzl,hypertext,katakana,polybius,antananarivo,seong,breguet,reliquary,utada,aggregating,liangshan,sivan,tonawanda,audiobooks,shankill,coulee,phenolic,brockton,bookmakers,handsets,boaters,wylde,commonality,mappings,silhouettes,pennines,maurya,pratchett,singularities,eschewed,pretensions,vitreous,ibero,totalitarianism,poulenc,lingered,directx,seasoning,deputation,interdict,illyria,feedstock,counterbalance,muzik,buganda,parachuted,violist,homogeneity,comix,fjords,corsairs,punted,verandahs,equilateral,laoghaire,magyars,
117th,alesund,televoting,mayotte,eateries,refurbish,nswrl,yukio,caragiale,zetas,dispel,codecs,inoperable,outperformed,rejuvenation,elstree,modernise,contributory,pictou,tewkesbury,chechens,ashina,psionic,refutation,medico,overdubbed,nebulae,sandefjord,personages,eccellenza,businessperson,placename,abenaki,perryville,threshing,reshaped,arecibo,burslem,colspan=
3|turnout,rebadged,lumia,erinsborough,interactivity,bitmap,indefatigable,theosophy,excitatory,gleizes,edsel,bermondsey,korce,saarinen,wazir,diyarbakir,cofounder,liberalisation,onsen,nighthawks,siting,retirements,semyon,d'histoire,
114th,redditch,venetia,praha,'round,valdosta,hieroglyphic,postmedial,edirne,miscellany,savona,cockpits,minimization,coupler,jacksonian,appeasement,argentines,saurashtra,arkwright,hesiod,folios,fitzalan,publica,rivaled,civitas,beermen,constructivism,ribeira,zeitschrift,solanum,todos,deformities,chilliwack,verdean,meagre,bishoprics,gujrat,yangzhou,reentered,inboard,mythologies,virtus,unsurprisingly,rusticated,museu,symbolise,proportionate,thesaban,symbian,aeneid,mitotic,veliki,compressive,cisterns,abies,winemaker,massenet,bertolt,ahmednagar,triplemania,armorial,administracion,tenures,smokehouse,hashtag,fuerza,regattas,gennady,kanazawa,mahmudabad,crustal,asaph,valentinian,ilaiyaraaja,honeyeater,trapezoidal,cooperatively,unambiguously,mastodon,inhospitable,harnesses,riverton,renewables,djurgardens,haitians,airings,humanoids,boatswain,shijiazhuang,faints,veera,punjabis,steepest,narain,karlovy,serre,sulcus,collectives,
1500m,arion,subarctic,liberally,apollonius,ostia,droplet,headstones,norra,robusta,maquis,veronese,imola,primers,luminance,escadrille,mizuki,irreconcilable,stalybridge,temur,paraffin,stuccoed,parthians,counsels,fundamentalists,vivendi,polymath,sugababes,mikko,yonne,fermions,vestfold,pastoralist,kigali,unseeded,glarus,cusps,amasya,northwesterly,minorca,astragalus,verney,trevelyan,antipathy,wollstonecraft,bivalves,boulez,royle,divisao,quranic,bareilly,coronal,deviates,lulea,erectus,petronas,chandan,proxies,aeroflot,postsynaptic,memoriam,moyne,gounod,kuznetsova,pallava,ordinating,reigate,'first,lewisburg,exploitative,danby,academica,bailiwick,brahe,injective,stipulations,aeschylus,computes,gulden,hydroxylase,liveries,somalis,underpinnings,muscovite,kongsberg,domus,overlain,shareware,variegated,jalalabad,agence,ciphertext,insectivores,dengeki,menuhin,cladistic,baerum,betrothal,tokushima,wavelet,expansionist,pottsville,siyuan,prerequisites,carpi,nemzeti,nazar,trialled,eliminator,irrorated,homeward,redwoods,undeterred,strayed,lutyens,multicellular,aurelian,notated,lordships,alsatian,idents,foggia,garros,chalukyas,lillestrom,podlaski,pessimism,hsien,demilitarized,whitewashed,willesden,kirkcaldy,sanctorum,lamia,relaying,escondido,paediatric,contemplates,demarcated,bluestone,betula,penarol,capitalise,kreuznach,kenora,
115th,hold'em,reichswehr,vaucluse,m.i.a,windings,boys/girls,cajon,hisar,predictably,flemington,ysgol,mimicked,clivina,grahamstown,ionia,glyndebourne,patrese,aquaria,sleaford,dayal,sportscenter,malappuram,m.b.a.,manoa,carbines,solvable,designator,ramanujan,linearity,academicians,sayid,lancastrian,factorial,strindberg,vashem,delos,comyn,condensing,superdome,merited,kabaddi,intransitive,bideford,neuroimaging,duopoly,scorecards,ziggler,heriot,boyars,virology,marblehead,microtubules,westphalian,anticipates,hingham,searchers,harpist,rapides,morricone,convalescent,mises,nitride,metrorail,matterhorn,bicol,drivetrain,marketer,snippet,winemakers,muban,scavengers,halberstadt,herkimer,peten,laborious,stora,montgomeryshire,booklist,shamir,herault,eurostar,anhydrous,spacewalk,ecclesia,calliostoma,highschool,d'oro,suffusion,imparts,overlords,tagus,rectifier,counterinsurgency,ministered,eilean,milecastle,contre,micromollusk,okhotsk,bartoli,matroid,hasidim,thirunal,terme,tarlac,lashkar,presque,thameslink,flyby,troopship,renouncing,fatih,messrs,vexillum,bagration,magnetite,bornholm,androgynous,vehement,tourette,philosophic,gianfranco,tuileries,codice_6,radially,flexion,hants,reprocessing,setae,burne,palaeographically,infantryman,shorebirds,tamarind,moderna,threading,militaristic,crohn,norrkoping,
125cc,stadtholder,troms,klezmer,alphanumeric,brome,emmanuelle,tiwari,alchemical,formula_52,onassis,bleriot,bipedal,colourless,hermeneutics,hosni,precipitating,turnstiles,hallucinogenic,panhellenic,wyandotte,elucidated,chita,ehime,generalised,hydrophilic,biota,niobium,rnzaf,gandhara,longueuil,logics,sheeting,bielsko,cuvier,kagyu,trefoil,docent,pancrase,stalinism,postures,encephalopathy,monckton,imbalances,epochs,leaguers,anzio,diminishes,pataki,nitrite,amuro,nabil,maybach,l'aquila,babbler,bacolod,thutmose,evora,gaudi,breakage,recur,preservative,
60deg,mendip,functionaries,columnar,maccabiah,chert,verden,bromsgrove,clijsters,dengue,pastorate,phuoc,principia,viareggio,kharagpur,scharnhorst,anyang,bosons,l'art,criticises,ennio,semarang,brownian,mirabilis,asperger,calibers,typographical,cartooning,minos,disembark,supranational,undescribed,etymologically,alappuzha,vilhelm,lanao,pakenham,bhagavata,rakoczi,clearings,astrologers,manitowoc,bunuel,acetylene,scheduler,defamatory,trabzonspor,leaded,scioto,pentathlete,abrahamic,minigames,aldehydes,peerages,legionary,
1640s,masterworks,loudness,bryansk,likeable,genocidal,vegetated,towpath,declination,pyrrhus,divinely,vocations,rosebery,associazione,loaders,biswas,oeste,tilings,xianzong,bhojpuri,annuities,relatedness,idolator,psers,constriction,chuvash,choristers,hanafi,fielders,grammarian,orpheum,asylums,millbrook,gyatso,geldof,stabilise,tableaux,diarist,kalahari,panini,cowdenbeath,melanin,
4x100m,resonances,pinar,atherosclerosis,sheringham,castlereagh,aoyama,larks,pantograph,protrude,natak,gustafsson,moribund,cerevisiae,cleanly,polymeric,holkar,cosmonauts,underpinning,lithosphere,firuzabad,languished,mingled,citrate,spadina,lavas,daejeon,fibrillation,porgy,pineville,ps1000,cobbled,emamzadeh,mukhtar,dampers,indelible,salonika,nanoscale,treblinka,eilat,purporting,fluctuate,mesic,hagiography,cutscenes,fondation,barrens,comically,accrue,ibrox,makerere,defections,'there,hollandia,skene,grosseto,reddit,objectors,inoculation,rowdies,playfair,calligrapher,namor,sibenik,abbottabad,propellants,hydraulically,chloroplasts,tablelands,tecnico,schist,klasse,shirvan,bashkortostan,bullfighting,north/south,polski,hanns,woodblock,kilmore,ejecta,ignacy,nanchang,danubian,commendations,snohomish,samaritans,argumentation,vasconcelos,hedgehogs,vajrayana,barents,kulkarni,kumbakonam,identifications,hillingdon,weirs,nayanar,beauvoir,messe,divisors,atlantiques,broods,affluence,tegucigalpa,unsuited,autodesk,akash,princeps,culprits,kingstown,unassuming,goole,visayan,asceticism,blagojevich,irises,paphos,unsound,maurier,pontchartrain,desertification,sinfonietta,latins,especial,limpet,valerenga,glial,brainstem,mitral,parables,sauropod,judean,iskcon,sarcoma,venlo,justifications,zhuhai,blavatsky,alleviated,usafe,steppenwolf,inversions,janko,chagall,secretory,basildon,saguenay,pergamon,hemispherical,harmonized,reloading,franjo,domaine,extravagance,relativism,metamorphosed,labuan,baloncesto,gmail,byproducts,calvinists,counterattacked,vitus,bubonic,
120th,strachey,ritually,brookwood,selectable,savinja,incontinence,meltwater,jinja,
1720s,brahmi,morgenthau,sheaves,sleeved,stratovolcano,wielki,utilisation,avoca,fluxus,panzergrenadier,philately,deflation,podlaska,prerogatives,kuroda,theophile,zhongzong,gascoyne,magus,takao,arundell,fylde,merdeka,prithviraj,venkateswara,liepaja,daigo,dreamland,reflux,sunnyvale,coalfields,seacrest,soldering,flexor,structuralism,alnwick,outweighed,unaired,mangeshkar,batons,glaad,banshees,irradiated,organelles,biathlete,cabling,chairlift,lollapalooza,newsnight,capacitive,succumbs,flatly,miramichi,burwood,comedienne,charteris,biotic,workspace,aficionados,sokolka,chatelet,o'shaughnessy,prosthesis,neoliberal,refloated,oppland,hatchlings,econometrics,loess,thieu,androids,appalachians,jenin,pterostichinae,downsized,foils,chipsets,stencil,danza,narrate,maginot,yemenite,bisects,crustacean,prescriptive,melodious,alleviation,empowers,hansson,autodromo,obasanjo,osmosis,daugava,rheumatism,moraes,leucine,etymologies,chepstow,delaunay,bramall,bajaj,flavoring,approximates,marsupials,incisive,microcomputer,tactically,waals,wilno,fisichella,ursus,hindmarsh,mazarin,lomza,xenophobia,lawlessness,annecy,wingers,gornja,gnaeus,superieur,tlaxcala,clasps,symbolises,slats,rightist,effector,blighted,permanence,divan,progenitors,kunsthalle,anointing,excelling,coenzyme,indoctrination,dnipro,landholdings,adriaan,liturgies,cartan,ethmia,attributions,sanctus,trichy,chronicon,tancred,affinis,kampuchea,gantry,pontypool,membered,distrusted,fissile,dairies,hyposmocoma,craigie,adarsh,martinsburg,taxiway,
30deg,geraint,vellum,bencher,khatami,formula_53,zemun,teruel,endeavored,palmares,pavements,u.s..,internationalization,satirized,carers,attainable,wraparound,muang,parkersburg,extinctions,birkenfeld,wildstorm,payers,cohabitation,unitas,culloden,capitalizing,clwyd,daoist,campinas,emmylou,orchidaceae,halakha,orientales,fealty,domnall,chiefdom,nigerians,ladislav,dniester,avowed,ergonomics,newsmagazine,kitsch,cantilevered,benchmarking,remarriage,alekhine,coldfield,taupo,almirante,substations,apprenticeships,seljuq,levelling,eponym,symbolising,salyut,opioids,underscore,ethnologue,mohegan,marikina,libro,bassano,parse,semantically,disjointed,dugdale,padraig,tulsi,modulating,xfinity,headlands,mstislav,earthworms,bourchier,lgbtq,embellishments,pennants,rowntree,betel,motet,mulla,catenary,washoe,mordaunt,dorking,colmar,girardeau,glentoran,grammatically,samad,recreations,technion,staccato,mikoyan,spoilers,lyndhurst,victimization,chertsey,belafonte,tondo,tonsberg,narrators,subcultures,malformations,edina,augmenting,attests,euphemia,cabriolet,disguising,
1650s,navarrese,demoralized,cardiomyopathy,welwyn,wallachian,smoothness,planktonic,voles,issuers,sardasht,survivability,cuauhtemoc,thetis,extruded,signet,raghavan,lombok,eliyahu,crankcase,dissonant,stolberg,trencin,desktops,bursary,collectivization,charlottenburg,triathlete,curvilinear,involuntarily,mired,wausau,invades,sundaram,deletions,bootstrap,abellio,axiomatic,noguchi,setups,malawian,visalia,materialist,kartuzy,wenzong,plotline,yeshivas,parganas,tunica,citric,conspecific,idlib,superlative,reoccupied,blagoevgrad,masterton,immunological,hatta,courbet,vortices,swallowtail,delves,haridwar,diptera,boneh,bahawalpur,angering,mardin,equipments,deployable,guanine,normality,rimmed,artisanal,boxset,chandrasekhar,jools,chenar,tanakh,carcassonne,belatedly,millville,anorthosis,reintegration,velde,surfactant,kanaan,busoni,glyphipterix,personas,fullness,rheims,tisza,stabilizers,bharathi,joost,spinola,mouldings,perching,esztergom,afzal,apostate,lustre,s.league,motorboat,monotheistic,armature,barat,asistencia,bloomsburg,hippocampal,fictionalised,defaults,broch,hexadecimal,lusignan,ryanair,boccaccio,breisgau,southbank,bskyb,adjoined,neurobiology,aforesaid,sadhu,langue,headship,wozniacki,hangings,regulus,prioritized,dynamism,allier,hannity,shimin,antoninus,gymnopilus,caledon,preponderance,melayu,electrodynamics,syncopated,ibises,krosno,mechanistic,morpeth,harbored,albini,monotheism,'real,hyperactivity,haveli,writer/director,minato,nimoy,caerphilly,chitral,amirabad,fanshawe,l'oreal,lorde,mukti,authoritarianism,valuing,spyware,hanbury,restarting,stato,embed,suiza,empiricism,stabilisation,stari,castlemaine,orbis,manufactory,mauritanian,shoji,taoyuan,prokaryotes,oromia,ambiguities,embodying,slims,frente,innovate,ojibwa,powdery,gaeltacht,argentinos,quatermass,detergents,fijians,adaptor,tokai,chileans,bulgars,oxidoreductases,bezirksliga,conceicao,myosin,nellore,
500cc,supercomputers,approximating,glyndwr,polypropylene,haugesund,cockerell,tudman,ashbourne,hindemith,bloodlines,rigveda,etruria,romanos,steyn,oradea,deceleration,manhunter,laryngeal,fraudulently,janez,wendover,haplotype,janaki,naoki,belizean,mellencamp,cartographic,sadhana,tricolour,pseudoscience,satara,bytow,s.p.a.,jagdgeschwader,arcot,omagh,sverdrup,masterplan,surtees,apocrypha,ahvaz,d'amato,socratic,leumit,unnumbered,nandini,witold,marsupial,coalesced,interpolated,gimnasia,karadzic,keratin,mamoru,aldeburgh,speculator,escapement,irfan,kashyap,satyajit,haddington,solver,rothko,ashkelon,kickapoo,yeomen,superbly,bloodiest,greenlandic,lithic,autofocus,yardbirds,poona,keble,javan,sufis,expandable,tumblr,ursuline,swimwear,winwood,counsellors,aberrations,marginalised,befriending,workouts,predestination,varietal,siddhartha,dunkeld,judaic,esquimalt,shabab,ajith,telefonica,stargard,hoysala,radhakrishnan,sinusoidal,strada,hiragana,cebuano,monoid,independencia,floodwaters,mildura,mudflats,ottokar,translit,radix,wigner,philosophically,tephritid,synthesizing,castletown,installs,stirner,resettle,bushfire,choirmaster,kabbalistic,shirazi,lightship,rebus,colonizers,centrifuge,leonean,kristofferson,thymus,clackamas,ratnam,rothesay,municipally,centralia,thurrock,gulfport,bilinear,desirability,merite,psoriasis,macaw,erigeron,consignment,mudstone,distorting,karlheinz,ramen,tailwheel,vitor,reinsurance,edifices,superannuation,dormancy,contagion,cobden,rendezvoused,prokaryotic,deliberative,patricians,feigned,degrades,starlings,sopot,viticultural,beaverton,overflowed,convener,garlands,michiel,ternopil,naturelle,biplanes,bagot,gamespy,ventspils,disembodied,flattening,profesional,londoners,arusha,scapular,forestall,pyridine,ulema,eurodance,aruna,callus,periodontal,coetzee,immobilized,o'meara,maharani,katipunan,reactants,zainab,microgravity,saintes,britpop,carrefour,constrain,adversarial,firebirds,brahmo,kashima,simca,surety,surpluses,superconductivity,gipuzkoa,cumans,tocantins,obtainable,humberside,roosting,'king,formula_54,minelayer,bessel,sulayman,cycled,biomarkers,annealing,shusha,barda,cassation,djing,polemics,tuple,directorates,indomitable,obsolescence,wilhelmine,pembina,bojan,tambo,dioecious,pensioner,magnificat,
1660s,estrellas,southeasterly,immunodeficiency,railhead,surreptitiously,codeine,encores,religiosity,tempera,camberley,efendi,boardings,malleable,hagia,input/output,lucasfilm,ujjain,polymorphisms,creationist,berners,mickiewicz,irvington,linkedin,endures,kinect,munition,apologetics,fairlie,predicated,reprinting,ethnographer,variances,levantine,mariinsky,jadid,jarrow,asia/oceania,trinamool,waveforms,bisexuality,preselection,pupae,buckethead,hieroglyph,lyricists,marionette,dunbartonshire,restorer,monarchical,pazar,kickoffs,cabildo,savannas,gliese,dench,spoonbills,novelette,diliman,hypersensitivity,authorising,montefiore,mladen,qu'appelle,theistic,maruti,laterite,conestoga,saare,californica,proboscis,carrickfergus,imprecise,hadassah,baghdadi,jolgeh,deshmukh,amusements,heliopolis,berle,adaptability,partenkirchen,separations,baikonur,cardamom,southeastward,southfield,muzaffar,adequacy,metropolitana,rajkot,kiyoshi,metrobus,evictions,reconciles,librarianship,upsurge,knightley,badakhshan,proliferated,spirituals,burghley,electroacoustic,professing,featurette,reformists,skylab,descriptors,oddity,greyfriars,injects,salmond,lanzhou,dauntless,subgenera,underpowered,transpose,mahinda,gatos,aerobatics,seaworld,blocs,waratahs,joris,giggs,perfusion,koszalin,mieczyslaw,ayyubid,ecologists,modernists,sant'angelo,quicktime,him/her,staves,sanyo,melaka,acrocercops,qigong,iterated,generalizes,recuperation,vihara,circassians,psychical,chavo,memoires,infiltrates,notaries,pelecaniformesfamily,strident,chivalric,pierrepont,alleviating,broadsides,centipede,b.tech,reinterpreted,sudetenland,hussite,covenanters,radhika,ironclads,gainsbourg,testis,penarth,plantar,azadegan,beano,espn.com,leominster,autobiographies,nbcuniversal,eliade,khamenei,montferrat,undistinguished,ethnological,wenlock,fricatives,polymorphic,biome,joule,sheaths,astrophysicist,salve,neoclassicism,lovat,downwind,belisarius,forma,usurpation,freie,depopulation,backbench,ascenso,'high,aagpbl,gdanski,zalman,mouvement,encapsulation,bolshevism,statny,voyageurs,hywel,vizcaya,mazra'eh,narthex,azerbaijanis,cerebrospinal,mauretania,fantail,clearinghouse,bolingbroke,pequeno,ansett,remixing,microtubule,wrens,jawahar,palembang,gambian,hillsong,fingerboard,repurposed,sundry,incipient,veolia,theologically,ulaanbaatar,atsushi,foundling,resistivity,myeloma,factbook,mazowiecka,diacritic,urumqi,clontarf,provokes,intelsat,professes,materialise,portobello,benedictines,panionios,introverted,reacquired,bridport,mammary,kripke,oratorios,vlore,stoning,woredas,unreported,antti,togolese,fanzines,heuristics,conservatories,carburetors,clitheroe,cofounded,formula_57,erupting,quinnipiac,bootle,ghostface,sittings,aspinall,sealift,transferase,boldklub,siskiyou,predominated,francophonie,ferruginous,castrum,neogene,sakya,madama,precipitous,'love,posix,bithynia,uttara,avestan,thrushes,seiji,memorably,septimius,libri,cibernetico,hyperinflation,dissuaded,cuddalore,peculiarity,vaslui,grojec,albumin,thurles,casks,fasteners,fluidity,buble,casals,terek,gnosticism,cognates,ulnar,radwanska,babylonians,majuro,oxidizer,excavators,rhythmically,liffey,gorakhpur,eurydice,underscored,arborea,lumumba,tuber,catholique,grama,galilei,scrope,centreville,jacobin,bequests,ardeche,polygamous,montauban,terai,weatherboard,readability,attainder,acraea,transversely,rivets,winterbottom,reassures,bacteriology,vriesea,chera,andesite,dedications,homogenous,reconquered,bandon,forrestal,ukiyo,gurdjieff,tethys,sparc,muscogee,grebes,belchatow,mansa,blantyre,palliser,sokolow,fibroblasts,exmoor,misaki,soundscapes,housatonic,middelburg,convenor,leyla,antipope,histidine,okeechobee,alkenes,sombre,alkene,rubik,macaques,calabar,trophee,pinchot,'free,frusciante,chemins,falaise,vasteras,gripped,schwarzenberg,cumann,kanchipuram,acoustically,silverbacks,fangio,inset,plympton,kuril,vaccinations,recep,theropods,axils,stavropol,encroached,apoptotic,papandreou,wailers,moonstone,assizes,micrometers,hornchurch,truncation,annapurna,egyptologists,rheumatic,promiscuity,satiric,fleche,caloptilia,anisotropy,quaternions,gruppo,viscounts,awardees,aftershocks,sigint,concordance,oblasts,gaumont,stent,commissars,kesteven,hydroxy,vijayanagar,belorussian,fabricius,watermark,tearfully,mamet,leukaemia,sorkh,milepost,tattooing,vosta,abbasids,uncompleted,hedong,woodwinds,extinguishing,malus,multiplexes,francoist,pathet,responsa,bassists,'most,postsecondary,ossory,grampian,saakashvili,alito,strasberg,impressionistic,volador,gelatinous,vignette,underwing,campanian,abbasabad,albertville,hopefuls,nieuwe,taxiways,reconvened,recumbent,pathologists,unionized,faversham,asymptotically,romulo,culling,donja,constricted,annesley,duomo,enschede,lovech,sharpshooter,lansky,dhamma,papillae,alanine,mowat,delius,wrest,mcluhan,podkarpackie,imitators,bilaspur,stunting,pommel,casemate,handicaps,nagas,testaments,hemings,necessitate,rearward,locative,cilla,klitschko,lindau,merion,consequential,antic,soong,copula,berthing,chevrons,rostral,sympathizer,budokan,ranulf,beria,stilt,replying,conflated,alcibiades,painstaking,yamanashi,calif.,arvid,ctesiphon,xizong,rajas,caxton,downbeat,resurfacing,rudders,miscegenation,deathmatch,foregoing,arthropod,attestation,karts,reapportionment,harnessing,eastlake,schola,dosing,postcolonial,imtiaz,formula_55,insulators,gunung,accumulations,pampas,llewelyn,bahnhof,cytosol,grosjean,teaneck,briarcliff,arsenio,canara,elaborating,passchendaele,searchlights,holywell,mohandas,preventable,gehry,mestizos,ustinov,cliched,'national,heidfeld,tertullian,jihadist,tourer,miletus,semicircle,outclassed,bouillon,cardinalate,clarifies,dakshina,bilayer,pandyan,unrwa,chandragupta,formula_56,portola,sukumaran,lactation,islamia,heikki,couplers,misappropriation,catshark,montt,ploughs,carib,stator,leaderboard,kenrick,dendrites,scape,tillamook,molesworth,mussorgsky,melanesia,restated,troon,glycoside,truckee,headwater,mashup,sectoral,gangwon,docudrama,skirting,psychopathology,dramatised,ostroleka,infestations,thabo,depolarization,wideroe,eisenbahn,thomond,kumaon,upendra,foreland,acronyms,yaqui,retaking,raphaelite,specie,dupage,villars,lucasarts,chloroplast,werribee,balsa,ascribe,havant,flava,khawaja,tyumen,subtract,interrogators,reshaping,buzzcocks,eesti,campanile,potemkin,apertures,snowboarder,registrars,handbooks,boyar,contaminant,depositors,proximate,jeunesse,zagora,pronouncements,mists,nihilism,deified,margraviate,pietersen,moderators,amalfi,adjectival,copepods,magnetosphere,pallets,clemenceau,castra,perforation,granitic,troilus,grzegorz,luthier,dockyards,antofagasta,ffestiniog,subroutine,afterword,waterwheel,druce,nitin,undifferentiated,emacs,readmitted,barneveld,tapers,hittites,infomercials,infirm,braathens,heligoland,carpark,geomagnetic,musculoskeletal,nigerien,machinima,harmonize,repealing,indecency,muskoka,verite,steubenville,suffixed,cytoskeleton,surpasses,harmonia,imereti,ventricles,heterozygous,envisions,otsego,ecoles,warrnambool,burgenland,seria,rawat,capistrano,welby,kirin,enrollments,caricom,dragonlance,schaffhausen,expanses,photojournalism,brienne,etude,referent,jamtland,schemas,xianbei,cleburne,bicester,maritima,shorelines,diagonals,bjelke,nonpublic,aliasing,m.f.a,ovals,maitreya,skirmishing,grothendieck,sukhothai,angiotensin,bridlington,durgapur,contras,gakuen,skagit,rabbinate,tsunamis,haphazard,tyldesley,microcontroller,discourages,hialeah,compressing,septimus,larvik,condoleezza,psilocybin,protectionism,songbirds,clandestinely,selectmen,wargame,cinemascope,khazars,agronomy,melzer,latifah,cherokees,recesses,assemblymen,basescu,banaras,bioavailability,subchannels,adenine,o'kelly,prabhakar,leonese,dimethyl,testimonials,geoffroy,oxidant,universiti,gheorghiu,bohdan,reversals,zamorin,herbivore,jarre,sebastiao,infanterie,dolmen,teddington,radomsko,spaceships,cuzco,recapitulation,mahoning,bainimarama,myelin,aykroyd,decals,tokelau,nalgonda,rajasthani,
121st,quelled,tambov,illyrians,homilies,illuminations,hypertrophy,grodzisk,inundation,incapacity,equilibria,combats,elihu,steinitz,berengar,gowda,canwest,khosrau,maculata,houten,kandinsky,onside,leatherhead,heritable,belvidere,federative,chukchi,serling,eruptive,patan,entitlements,suffragette,evolutions,migrates,demobilisation,athleticism,trope,sarpsborg,kensal,translink,squamish,concertgebouw,energon,timestamp,competences,zalgiris,serviceman,codice_7,spoofing,assange,mahadevan,skien,suceava,augustan,revisionism,unconvincing,hollande,drina,gottlob,lippi,broglie,darkening,tilapia,eagerness,nacht,kolmogorov,photometric,leeuwarden,jrotc,haemorrhage,almanack,cavalli,repudiation,galactose,zwickau,cetinje,houbraken,heavyweights,gabonese,ordinals,noticias,museveni,steric,charaxes,amjad,resection,joinville,leczyca,anastasius,purbeck,subtribe,dalles,leadoff,monoamine,jettisoned,kaori,anthologized,alfreton,indic,bayezid,tottori,colonizing,assassinating,unchanging,eusebian,d'estaing,tsingtao,toshio,transferases,peronist,metrology,equus,mirpur,libertarianism,kovil,indole,'green,abstention,quantitatively,icebreakers,tribals,mainstays,dryandra,eyewear,nilgiri,chrysanthemum,inositol,frenetic,merchantman,hesar,physiotherapist,transceiver,dancefloor,rankine,neisse,marginalization,lengthen,unaided,rework,pageantry,savio,striated,funen,witton,illuminates,frass,hydrolases,akali,bistrita,copywriter,firings,handballer,tachinidae,dmytro,coalesce,neretva,menem,moraines,coatbridge,crossrail,spoofed,drosera,ripen,protour,kikuyu,boleslav,edwardes,troubadours,haplogroups,wrasse,educationalist,sroda,khaneh,dagbladet,apennines,neuroscientist,deplored,terje,maccabees,daventry,spaceport,lessening,ducats,singer/guitarist,chambersburg,yeong,configurable,ceremonially,unrelenting,caffe,graaf,denizens,kingsport,ingush,panhard,synthesised,tumulus,homeschooled,bozorg,idiomatic,thanhouser,queensway,radek,hippolytus,inking,banovina,peacocks,piaui,handsworth,pantomimes,abalone,thera,kurzweil,bandura,augustinians,bocelli,ferrol,jiroft,quadrature,contravention,saussure,rectification,agrippina,angelis,matanzas,nidaros,palestrina,latium,coriolis,clostridium,ordain,uttering,lanchester,proteolytic,ayacucho,merseburg,holbein,sambalpur,algebraically,inchon,ostfold,savoia,calatrava,lahiri,judgeship,ammonite,masaryk,meyerbeer,hemorrhagic,superspeedway,ningxia,panicles,encircles,khmelnytsky,profusion,esher,babol,inflationary,anhydride,gaspe,mossy,periodicity,nacion,meteorologists,mahjong,interventional,sarin,moult,enderby,modell,palgrave,warners,montcalm,siddha,functionalism,rilke,politicized,broadmoor,kunste,orden,brasileira,araneta,eroticism,colquhoun,mamba,blacktown,tubercle,seagrass,manoel,camphor,neoregelia,llandudno,annexe,enplanements,kamien,plovers,statisticians,iturbide,madrasah,nontrivial,publican,landholders,manama,uninhabitable,revivalist,trunkline,friendliness,gurudwara,rocketry,unido,tripos,besant,braque,evolutionarily,abkhazian,staffel,ratzinger,brockville,bohemond,intercut,djurgarden,utilitarianism,deploys,sastri,absolutism,subhas,asghar,fictions,sepinwall,proportionately,titleholders,thereon,foursquare,machinegun,knightsbridge,siauliai,aqaba,gearboxes,castaways,weakens,phallic,strzelce,buoyed,ruthenia,pharynx,intractable,neptunes,koine,leakey,netherlandish,preempted,vinay,terracing,instigating,alluvium,prosthetics,vorarlberg,politiques,joinery,reduplication,nebuchadnezzar,lenticular,banka,seaborne,pattinson,helpline,aleph,beckenham,californians,namgyal,franziska,aphid,branagh,transcribe,appropriateness,surakarta,takings,propagates,juraj,b0d3fb,brera,arrayed,tailback,falsehood,hazleton,prosody,egyptology,pinnate,tableware,ratan,camperdown,ethnologist,tabari,classifiers,biogas,
126th,kabila,arbitron,apuestas,membranous,kincardine,oceana,glories,natick,populism,synonymy,ghalib,mobiles,motherboards,stationers,germinal,patronised,formula_58,gaborone,torts,jeezy,interleague,novaya,batticaloa,offshoots,wilbraham,filename,nswrfl,'well,trilobite,pythons,optimally,scientologists,rhesus,pilsen,backdrops,batang,unionville,hermanos,shrikes,fareham,outlawing,discontinuing,boisterous,shamokin,scanty,southwestward,exchangers,unexpired,mewar,h.m.s,saldanha,pawan,condorcet,turbidity,donau,indulgences,coincident,cliques,weeklies,bardhaman,violators,kenai,caspase,xperia,kunal,fistula,epistemic,cammell,nephi,disestablishment,rotator,germaniawerft,pyaar,chequered,jigme,perlis,anisotropic,popstars,kapil,appendices,berat,defecting,shacks,wrangel,panchayath,gorna,suckling,aerosols,sponheim,talal,borehole,encodings,enlai,subduing,agong,nadar,kitsap,syrmia,majumdar,pichilemu,charleville,embryology,booting,literati,abutting,basalts,jussi,repubblica,hertogenbosch,digitization,relents,hillfort,wiesenthal,kirche,bhagwan,bactrian,oases,phyla,neutralizing,helsing,ebooks,spearheading,margarine,'golden,phosphor,picea,stimulants,outliers,timescale,gynaecology,integrator,skyrocketed,bridgnorth,senecio,ramachandra,suffragist,arrowheads,aswan,inadvertent,microelectronics,
118th,sofer,kubica,melanesian,tuanku,balkh,vyborg,crystallographic,initiators,metamorphism,ginzburg,looters,unimproved,finistere,newburyport,norges,immunities,franchisees,asterism,kortrijk,camorra,komsomol,fleurs,draughts,patagonian,voracious,artin,collaborationist,revolucion,revitalizing,xaver,purifying,antipsychotic,disjunct,pompeius,dreamwave,juvenal,beinn,adiyaman,antitank,allama,boletus,melanogaster,dumitru,caproni,aligns,athabaskan,stobart,phallus,veikkausliiga,hornsey,buffering,bourbons,dobruja,marga,borax,electrics,gangnam,motorcyclist,whidbey,draconian,lodger,galilean,sanctification,imitates,boldness,underboss,wheatland,cantabrian,terceira,maumee,redefining,uppercase,ostroda,characterise,universalism,equalized,syndicalism,haringey,masovia,deleuze,funkadelic,conceals,thuan,minsky,pluralistic,ludendorff,beekeeping,bonfires,endoscopic,abuts,prebend,jonkoping,amami,tribunes,yup'ik,awadh,gasification,pforzheim,reforma,antiwar,vaishnavism,maryville,inextricably,margrethe,empresa,neutrophils,sanctified,ponca,elachistidae,curiae,quartier,mannar,hyperplasia,wimax,busing,neologism,florins,underrepresented,digitised,nieuw,cooch,howards,frege,hughie,plied,swale,kapellmeister,vajpayee,quadrupled,aeronautique,dushanbe,custos,saltillo,kisan,tigray,manaus,epigrams,shamanic,peppered,frosts,promotion/relegation,concedes,zwingli,charentes,whangarei,hyung,spring/summer,sobre,eretz,initialization,sawai,ephemera,grandfathered,arnaldo,customised,permeated,parapets,growths,visegrad,estudios,altamont,provincia,apologises,stoppard,carburettor,rifts,kinematic,zhengzhou,eschatology,prakrit,folate,yvelines,scapula,stupas,rishon,reconfiguration,flutist,
1680s,apostolate,proudhon,lakshman,articulating,stortford,faithfull,bitterns,upwelling,qur'anic,lidar,interferometry,waterlogged,koirala,ditton,wavefunction,fazal,babbage,antioxidants,lemberg,deadlocked,tolled,ramapo,mathematica,leiria,topologies,khali,photonic,balti,
1080p,corrects,recommenced,polyglot,friezes,tiebreak,copacabana,cholmondeley,armband,abolishment,sheamus,buttes,glycolysis,cataloged,warrenton,sassari,kishan,foodservice,cryptanalysis,holmenkollen,cosplay,machi,yousuf,mangal,allying,fertiliser,otomi,charlevoix,metallurg,parisians,bottlenose,oakleigh,debug,cidade,accede,ligation,madhava,pillboxes,gatefold,aveyron,sorin,thirsk,immemorial,menelik,mehra,domingos,underpinned,fleshed,harshness,diphthong,crestwood,miskolc,dupri,pyrausta,muskingum,tuoba,prodi,incidences,waynesboro,marquesas,heydar,artesian,calinescu,nucleation,funders,covalently,compaction,derbies,seaters,sodor,tabular,amadou,peckinpah,o'halloran,zechariah,libyans,kartik,daihatsu,chandran,erzhu,heresies,superheated,yarder,dorde,tanjore,abusers,xuanwu,juniperus,moesia,trusteeship,birdwatching,beatz,moorcock,harbhajan,sanga,choreographic,photonics,boylston,amalgamate,prawns,electrifying,sarath,inaccurately,exclaims,powerpoint,chaining,cpusa,adulterous,saccharomyces,glogow,vfl/afl,syncretic,simla,persisting,functors,allosteric,euphorbiaceae,juryo,mlada,moana,gabala,thornycroft,kumanovo,ostrovsky,sitio,tutankhamun,sauropods,kardzhali,reinterpretation,sulpice,rosyth,originators,halesowen,delineation,asesoria,abatement,gardai,elytra,taillights,overlays,monsoons,sandpipers,ingmar,henrico,inaccuracy,irwell,arenabowl,elche,pressburg,signalman,interviewees,sinkhole,pendle,ecommerce,cellos,nebria,organometallic,surrealistic,propagandist,interlaken,canandaigua,aerials,coutinho,pascagoula,tonopah,letterkenny,gropius,carbons,hammocks,childe,polities,hosiery,donitz,suppresses,diaghilev,stroudsburg,bagram,pistoia,regenerating,unitarians,takeaway,offstage,vidin,glorification,bakunin,yavapai,lutzow,sabercats,witney,abrogated,gorlitz,validating,dodecahedron,stubbornly,telenor,glaxosmithkline,solapur,undesired,jellicoe,dramatization,four-and-a-half,seawall,waterpark,artaxerxes,vocalization,typographic,byung,sachsenhausen,shepparton,kissimmee,konnan,belsen,dhawan,khurd,mutagenesis,vejle,perrot,estradiol,formula_60,saros,chiloe,misiones,lamprey,terrains,speke,miasto,eigenvectors,haydock,reservist,corticosteroids,savitri,shinawatra,developmentally,yehudi,berates,janissaries,recapturing,rancheria,subplots,gresley,nikkatsu,oryol,cosmas,boavista,formula_59,playfully,subsections,commentated,kathakali,dorid,vilaine,seepage,hylidae,keiji,kazakhs,triphosphate,
1620s,supersede,monarchists,falla,miyako,notching,bhumibol,polarizing,secularized,shingled,bronislaw,lockerbie,soleyman,bundesbahn,latakia,redoubts,boult,inwardly,invents,ondrej,minangkabau,newquay,permanente,alhaji,madhav,malini,ellice,bookmaker,mankiewicz,etihad,o'dea,interrogative,mikawa,wallsend,canisius,bluesy,vitruvius,noord,ratifying,mixtec,gujranwala,subprefecture,keelung,goiania,nyssa,shi'ite,semitone,ch'uan,computerised,pertuan,catapults,nepomuk,shruti,millstones,buskerud,acolytes,tredegar,sarum,armia,dell'arte,devises,custodians,upturned,gallaudet,disembarking,thrashed,sagrada,myeon,undeclared,qumran,gaiden,tepco,janesville,showground,condense,chalon,unstaffed,pasay,undemocratic,hauts,viridis,uninjured,escutcheon,gymkhana,petaling,hammam,dislocations,tallaght,rerum,shias,indios,guaranty,simplicial,benares,benediction,tajiri,prolifically,huawei,onerous,grantee,ferencvaros,otranto,carbonates,conceit,digipak,qadri,masterclasses,swamiji,cradock,plunket,helmsman,
119th,salutes,tippecanoe,murshidabad,intelligibility,mittal,diversifying,bidar,asansol,crowdsourcing,rovere,karakoram,grindcore,skylights,tulagi,furrows,ligne,stuka,sumer,subgraph,amata,regionalist,bulkeley,teletext,glorify,readied,lexicographer,sabadell,predictability,quilmes,phenylalanine,bandaranaike,pyrmont,marksmen,quisling,viscountess,sociopolitical,afoul,pediments,swazi,martyrology,nullify,panagiotis,superconductors,veldenz,jujuy,l'isle,hematopoietic,shafi,subsea,hattiesburg,jyvaskyla,kebir,myeloid,landmine,derecho,amerindians,birkenau,scriabin,milhaud,mucosal,nikaya,freikorps,theoretician,proconsul,o'hanlon,clerked,bactria,houma,macular,topologically,shrubby,aryeh,ghazali,afferent,magalhaes,moduli,ashtabula,vidarbha,securitate,ludwigsburg,adoor,varun,shuja,khatun,chengde,bushels,lascelles,professionnelle,elfman,rangpur,unpowered,citytv,chojnice,quaternion,stokowski,aschaffenburg,commutes,subramaniam,methylene,satrap,gharb,namesakes,rathore,helier,gestational,heraklion,colliers,giannis,pastureland,evocation,krefeld,mahadeva,churchmen,egret,yilmaz,galeazzo,pudukkottai,artigas,generalitat,mudslides,frescoed,enfeoffed,aphorisms,melilla,montaigne,gauliga,parkdale,mauboy,linings,prema,sapir,xylophone,kushan,rockne,sequoyah,vasyl,rectilinear,vidyasagar,microcosm,san'a,carcinogen,thicknesses,aleut,farcical,moderating,detested,hegemonic,instalments,vauban,verwaltungsgemeinschaft,picayune,razorback,magellanic,moluccas,pankhurst,exportation,waldegrave,sufferer,bayswater,
1up.com,rearmament,orangutans,varazdin,b.o.b,elucidate,harlingen,erudition,brankovic,lapis,slipway,urraca,shinde,unwell,elwes,euboea,colwyn,srivijaya,grandstands,hortons,generalleutnant,fluxes,peterhead,gandhian,reals,alauddin,maximized,fairhaven,endow,ciechanow,perforations,darters,panellist,manmade,litigants,exhibitor,tirol,caracalla,conformance,hotelier,stabaek,hearths,borac,frisians,ident,veliko,emulators,schoharie,uzbeks,samarra,prestwick,wadia,universita,tanah,bucculatrix,predominates,genotypes,denounces,roadsides,ganassi,keokuk,philatelist,tomic,ingots,conduits,samplers,abdus,johar,allegories,timaru,wolfpacks,secunda,smeaton,sportivo,inverting,contraindications,whisperer,moradabad,calamities,bakufu,soundscape,smallholders,nadeem,crossroad,xenophobic,zakir,nationalliga,glazes,retroflex,schwyz,moroder,rubra,quraysh,theodoros,endemol,infidels,km/hr,repositioned,portraitist,lluis,answerable,arges,mindedness,coarser,eyewall,teleported,scolds,uppland,vibraphone,ricoh,isenburg,bricklayer,cuttlefish,abstentions,communicable,cephalopod,stockyards,balto,kinston,armbar,bandini,elphaba,maxims,bedouins,sachsen,friedkin,tractate,pamir,ivanovo,mohini,kovalainen,nambiar,melvyn,orthonormal,matsuyama,cuernavaca,veloso,overstated,streamer,dravid,informers,analyte,sympathized,streetscape,gosta,thomasville,grigore,futuna,depleting,whelks,kiedis,armadale,earner,wynyard,dothan,animating,tridentine,sabri,immovable,rivoli,ariege,parley,clinker,circulates,junagadh,fraunhofer,congregants,
180th,buducnost,formula_62,olmert,dedekind,karnak,bayernliga,mazes,sandpiper,ecclestone,yuvan,smallmouth,decolonization,lemmy,adjudicated,retiro,legia,benue,posit,acidification,wahab,taconic,floatplane,perchlorate,atria,wisbech,divestment,dallara,phrygia,palustris,cybersecurity,rebates,facie,mineralogical,substituent,proteges,fowey,mayenne,smoothbore,cherwell,schwarzschild,junin,murrumbidgee,smalltalk,d'orsay,emirati,calaveras,titusville,theremin,vikramaditya,wampanoag,burra,plaines,onegin,emboldened,whampoa,langa,soderbergh,arnaz,sowerby,arendal,godunov,pathanamthitta,damselfly,bestowing,eurosport,iconoclasm,outfitters,acquiesced,badawi,hypotension,ebbsfleet,annulus,sohrab,thenceforth,chagatai,necessitates,aulus,oddities,toynbee,uniontown,innervation,populaire,indivisible,rossellini,minuet,cyrene,gyeongju,chania,cichlids,harrods,
1690s,plunges,abdullahi,gurkhas,homebuilt,sortable,bangui,rediff,incrementally,demetrios,medaille,sportif,svend,guttenberg,tubules,carthusian,pleiades,torii,hoppus,phenyl,hanno,conyngham,teschen,cronenberg,wordless,melatonin,distinctiveness,autos,freising,xuanzang,dunwich,satanism,sweyn,predrag,contractually,pavlovic,malaysians,micrometres,expertly,pannonian,abstaining,capensis,southwesterly,catchphrases,commercialize,frankivsk,normanton,hibernate,verso,deportees,dubliners,codice_8,condors,zagros,glosses,leadville,conscript,morrisons,usury,ossian,oulton,vaccinium,civet,ayman,codrington,hadron,nanometers,geochemistry,extractor,grigori,tyrrhenian,neocollyris,drooping,falsification,werft,courtauld,brigantine,orhan,chapultepec,supercopa,federalized,praga,havering,encampments,infallibility,sardis,pawar,undirected,reconstructionist,ardrossan,varuna,pastimes,archdiocesan,fledging,shenhua,molise,secondarily,stagnated,replicates,ciencias,duryodhana,marauding,ruislip,ilyich,intermixed,ravenswood,shimazu,mycorrhizal,icosahedral,consents,dunblane,follicular,pekin,suffield,muromachi,kinsale,gauche,businesspeople,thereto,watauga,exaltation,chelmno,gorse,proliferate,drainages,burdwan,kangra,transducers,inductor,duvalier,maguindanao,moslem,uncaf,givenchy,plantarum,liturgics,telegraphs,lukashenko,chenango,andante,novae,ironwood,faubourg,torme,chinensis,ambala,pietermaritzburg,virginians,landform,bottlenecks,o'driscoll,darbhanga,baptistery,ameer,needlework,naperville,auditoriums,mullingar,starrer,animatronic,topsoil,madura,cannock,vernet,santurce,catocala,ozeki,pontevedra,multichannel,sundsvall,strategists,medio,
135th,halil,afridi,trelawny,caloric,ghraib,allendale,hameed,ludwigshafen,spurned,pavlo,palmar,strafed,catamarca,aveiro,harmonization,surah,predictors,solvay,mande,omnipresent,parenthesis,echolocation,equaling,experimenters,acyclic,lithographic,sepoys,katarzyna,sridevi,impoundment,khosrow,caesarean,nacogdoches,rockdale,lawmaker,caucasians,bahman,miyan,rubric,exuberance,bombastic,ductile,snowdonia,inlays,pinyon,anemones,hurries,hospitallers,tayyip,pulleys,treme,photovoltaics,testbed,polonium,ryszard,osgoode,profiting,ironwork,unsurpassed,nepticulidae,makai,lumbini,preclassic,clarksburg,egremont,videography,rehabilitating,ponty,sardonic,geotechnical,khurasan,solzhenitsyn,henna,phoenicia,rhyolite,chateaux,retorted,tomar,deflections,repressions,harborough,renan,brumbies,vandross,storia,vodou,clerkenwell,decking,universo,salon.com,imprisoning,sudwest,ghaziabad,subscribing,pisgah,sukhumi,econometric,clearest,pindar,yildirim,iulia,atlases,cements,remaster,dugouts,collapsible,resurrecting,batik,unreliability,thiers,conjunctions,colophon,marcher,placeholder,flagella,wolds,kibaki,viviparous,twelver,screenshots,aroostook,khadr,iconographic,itasca,jaume,basti,propounded,varro,be'er,jeevan,exacted,shrublands,creditable,brocade,boras,bittern,oneonta,attentional,herzliya,comprehensible,lakeville,discards,caxias,frankland,camerata,satoru,matlab,commutator,interprovincial,yorkville,benefices,nizami,edwardsville,amigaos,cannabinoid,indianola,amateurliga,pernicious,ubiquity,anarchic,novelties,precondition,zardari,symington,sargodha,headphone,thermopylae,mashonaland,zindagi,thalberg,loewe,surfactants,dobro,crocodilians,samhita,diatoms,haileybury,berwickshire,supercritical,sofie,snorna,slatina,intramolecular,agung,osteoarthritis,obstetric,teochew,vakhtang,connemara,deformations,diadem,ferruccio,mainichi,qualitatively,refrigerant,rerecorded,methylated,karmapa,krasinski,restatement,rouvas,cubitt,seacoast,schwarzkopf,homonymous,shipowner,thiamine,approachable,xiahou,
160th,ecumenism,polistes,internazionali,fouad,berar,biogeography,texting,inadequately,'when,
4kids,hymenoptera,emplaced,cognomen,bellefonte,supplant,michaelmas,uriel,tafsir,morazan,schweinfurt,chorister,ps400,nscaa,petipa,resolutely,ouagadougou,mascarene,supercell,konstanz,bagrat,harmonix,bergson,shrimps,resonators,veneta,camas,mynydd,rumford,generalmajor,khayyam,web.com,pappus,halfdan,tanana,suomen,yutaka,bibliographical,traian,silat,noailles,contrapuntal,agaricus,'special,minibuses,
1670s,obadiah,deepa,rorschach,malolos,lymington,valuations,imperials,caballeros,ambroise,judicature,elegiac,sedaka,shewa,checksum,gosforth,legionaries,corneille,microregion,friedrichshafen,antonis,surnamed,mycelium,cantus,educations,topmost,outfitting,ivica,nankai,gouda,anthemic,iosif,supercontinent,antifungal,belarusians,mudaliar,mohawks,caversham,glaciated,basemen,stevan,clonmel,loughton,deventer,positivist,manipuri,tensors,panipat,changeup,impermeable,dubbo,elfsborg,maritimo,regimens,bikram,bromeliad,substratum,norodom,gaultier,queanbeyan,pompeo,redacted,eurocopter,mothballed,centaurs,borno,copra,bemidji,'home,sopron,neuquen,passo,cineplex,alexandrov,wysokie,mammoths,yossi,sarcophagi,congreve,petkovic,extraneous,waterbirds,slurs,indias,phaeton,discontented,prefaced,abhay,prescot,interoperable,nordisk,bicyclists,validly,sejong,litovsk,zanesville,kapitanleutnant,kerch,changeable,mcclatchy,celebi,attesting,maccoll,sepahan,wayans,veined,gaudens,markt,dansk,soane,quantized,petersham,forebears,nayarit,frenzied,queuing,bygone,viggo,ludwik,tanka,hanssen,brythonic,cornhill,primorsky,stockpiles,conceptualization,lampeter,hinsdale,mesoderm,bielsk,rosenheim,ultron,joffrey,stanwyck,khagan,tiraspol,pavelic,ascendant,empoli,metatarsal,descentralizado,masada,ligier,huseyin,ramadi,waratah,tampines,ruthenium,statoil,mladost,liger,grecian,multiparty,digraph,maglev,reconsideration,radiography,cartilaginous,taizu,wintered,anabaptist,peterhouse,shoghi,assessors,numerator,paulet,painstakingly,halakhic,rocroi,motorcycling,gimel,kryptonian,emmeline,cheeked,drawdown,lelouch,dacians,brahmana,reminiscence,disinfection,optimizations,golders,extensor,tsugaru,tolling,liman,gulzar,unconvinced,crataegus,oppositional,dvina,pyrolysis,mandan,alexius,prion,stressors,loomed,moated,dhivehi,recyclable,relict,nestlings,sarandon,kosovar,solvers,czeslaw,kenta,maneuverable,middens,berkhamsted,comilla,folkways,loxton,beziers,batumi,petrochemicals,optimised,sirjan,rabindra,musicality,rationalisation,drillers,subspaces,'live,bbwaa,outfielders,tsung,danske,vandalised,norristown,striae,kanata,gastroenterology,steadfastly,equalising,bootlegging,mannerheim,notodontidae,lagoa,commentating,peninsulas,chishti,seismology,modigliani,preceptor,canonically,awardee,boyaca,hsinchu,stiffened,nacelle,bogor,dryness,unobstructed,yaqub,scindia,peeters,irritant,ammonites,ferromagnetic,speechwriter,oxygenated,walesa,millais,canarian,faience,calvinistic,discriminant,rasht,inker,annexes,howth,allocates,conditionally,roused,regionalism,regionalbahn,functionary,nitrates,bicentenary,recreates,saboteurs,koshi,plasmids,thinned,
124th,plainview,kardashian,neuville,victorians,radiates,
127th,vieques,schoolmates,petru,tokusatsu,keying,sunaina,flamethrower,'bout,demersal,hosokawa,corelli,omniscient,o'doherty,niksic,reflectivity,transdev,cavour,metronome,temporally,gabba,nsaids,geert,mayport,hematite,boeotia,vaudreuil,torshavn,sailplane,mineralogist,eskisehir,practises,gallifrey,takumi,unease,slipstream,hedmark,paulinus,ailsa,wielkopolska,filmworks,adamantly,vinaya,facelifted,franchisee,augustana,toppling,velvety,crispa,stonington,histological,genealogist,tactician,tebow,betjeman,nyingma,overwinter,oberoi,rampal,overwinters,petaluma,lactarius,stanmore,balikpapan,vasant,inclines,laminate,munshi,sociedade,rabbah,septal,boyband,ingrained,faltering,inhumans,nhtsa,affix,l'ordre,kazuki,rossendale,mysims,latvians,slaveholders,basilicata,neuburg,assize,manzanillo,scrobipalpa,formula_61,belgique,pterosaurs,privateering,vaasa,veria,northport,pressurised,hobbyist,austerlitz,sahih,bhadra,siliguri,bistrica,bursaries,wynton,corot,lepidus,lully,libor,libera,olusegun,choline,mannerism,lymphocyte,chagos,duxbury,parasitism,ecowas,morotai,cancion,coniston,aggrieved,sputnikmusic,parle,ammonian,civilisations,malformation,cattaraugus,skyhawks,d'arc,demerara,bronfman,midwinter,piscataway,jogaila,threonine,matins,kohlberg,hubli,pentatonic,camillus,nigam,potro,unchained,chauvel,orangeville,cistercians,redeployment,xanthi,manju,carabinieri,pakeha,nikolaevich,kantakouzenos,sesquicentennial,gunships,symbolised,teramo,ballo,crusading,l'oeil,bharatpur,lazier,gabrovo,hysteresis,rothbard,chaumont,roundel,ma'mun,sudhir,queried,newts,shimane,presynaptic,playfield,taxonomists,sensitivities,freleng,burkinabe,orfeo,autovia,proselytizing,bhangra,pasok,jujutsu,heung,pivoting,hominid,commending,formula_64,epworth,christianized,oresund,hantuchova,rajputana,hilversum,masoretic,dayak,bakri,assen,magog,macromolecules,waheed,qaida,spassky,rumped,protrudes,preminger,misogyny,glencairn,salafi,lacunae,grilles,racemes,areva,alighieri,inari,epitomized,photoshoot,one-of-a-kind,tring,muralist,tincture,backwaters,weaned,yeasts,analytically,smaland,caltrans,vysocina,jamuna,mauthausen,
175th,nouvelles,censoring,reggina,christology,gilad,amplifying,mehmood,johnsons,redirects,eastgate,sacrum,meteoric,riverbanks,guidebooks,ascribes,scoparia,iconoclastic,telegraphic,chine,merah,mistico,lectern,sheung,aethelstan,capablanca,anant,uspto,albatrosses,mymensingh,antiretroviral,clonal,coorg,vaillant,liquidator,gigas,yokai,eradicating,motorcyclists,waitakere,tandon,nears,montenegrins,
250th,tatsuya,yassin,atheistic,syncretism,nahum,berisha,transcended,owensboro,lakshmana,abteilung,unadorned,nyack,overflows,harrisonburg,complainant,uematsu,frictional,worsens,sangguniang,abutment,bulwer,sarma,apollinaire,shippers,lycia,alentejo,porpoises,optus,trawling,augustow,blackwall,workbench,westmount,leaped,sikandar,conveniences,stornoway,culverts,zoroastrians,hristo,ansgar,assistive,reassert,fanned,compasses,delgada,maisons,arima,plonsk,verlaine,starstruck,rakhine,befell,spirally,wyclef,expend,colloquium,formula_63,albertus,bellarmine,handedness,holon,introns,movimiento,profitably,lohengrin,discoverers,awash,erste,pharisees,dwarka,oghuz,hashing,heterodox,uloom,vladikavkaz,linesman,rehired,nucleophile,germanicus,gulshan,songz,bayerische,paralympian,crumlin,enjoined,khanum,prahran,penitent,amersfoort,saranac,semisimple,vagrants,compositing,tualatin,oxalate,lavra,ironi,ilkeston,umpqua,calum,stretford,zakat,guelders,hydrazine,birkin,spurring,modularity,aspartate,sodermanland,hopital,bellary,legazpi,clasico,cadfael,hypersonic,volleys,pharmacokinetics,carotene,orientale,pausini,bataille,lunga,retailed,m.phil,mazowieckie,vijayan,rawal,sublimation,promissory,estimators,ploughed,conflagration,penda,segregationist,otley,amputee,coauthor,sopra,pellew,wreckers,tollywood,circumscription,permittivity,strabane,landward,articulates,beaverbrook,rutherglen,coterminous,whistleblowers,colloidal,surbiton,atlante,oswiecim,bhasa,lampooned,chanter,saarc,landkreis,tribulation,tolerates,daiichi,hatun,cowries,dyschirius,abercromby,attock,aldwych,inflows,absolutist,l'histoire,committeeman,vanbrugh,headstock,westbourne,appenzell,hoxton,oculus,westfalen,roundabouts,nickelback,trovatore,quenching,summarises,conservators,transmutation,talleyrand,barzani,unwillingly,axonal,'blue,opining,enveloping,fidesz,rafah,colborne,flickr,lozenge,dulcimer,ndebele,swaraj,oxidize,gonville,resonated,gilani,superiore,endeared,janakpur,shepperton,solidifying,memoranda,sochaux,kurnool,rewari,emirs,kooning,bruford,unavailability,kayseri,judicious,negating,pterosaur,cytosolic,chernihiv,variational,sabretooth,seawolves,devalued,nanded,adverb,volunteerism,sealers,nemours,smederevo,kashubian,bartin,animax,vicomte,polotsk,polder,archiepiscopal,acceptability,quidditch,tussock,seminaire,immolation,belge,coves,wellingborough,khaganate,mckellen,nayaka,brega,kabhi,pontoons,bascule,newsreels,injectors,cobol,weblog,diplo,biggar,wheatbelt,erythrocytes,pedra,showgrounds,bogdanovich,eclecticism,toluene,elegies,formalize,andromedae,airworthiness,springville,mainframes,overexpression,magadha,bijelo,emlyn,glutamine,accenture,uhuru,metairie,arabidopsis,patanjali,peruvians,berezovsky,accion,astrolabe,jayanti,earnestly,sausalito,recurved,
1500s,ramla,incineration,galleons,laplacian,shiki,smethwick,isomerase,dordevic,janow,jeffersonville,internationalism,penciled,styrene,ashur,nucleoside,peristome,horsemanship,sedges,bachata,medes,kristallnacht,schneerson,reflectance,invalided,strutt,draupadi,destino,partridges,tejas,quadrennial,aurel,halych,ethnomusicology,autonomist,radyo,rifting,shi'ar,crvena,telefilm,zawahiri,plana,sultanates,theodorus,subcontractors,pavle,seneschal,teleports,chernivtsi,buccal,brattleboro,stankovic,safar,dunhuang,electrocution,chastised,ergonomic,midsomer,
130th,zomba,nongovernmental,escapist,localize,xuzhou,kyrie,carinthian,karlovac,nisan,kramnik,pilipino,digitisation,khasi,andronicus,highwayman,maior,misspelling,sebastopol,socon,rhaetian,archimandrite,partway,positivity,otaku,dingoes,tarski,geopolitics,disciplinarian,zulfikar,kenzo,globose,electrophilic,modele,storekeeper,pohang,wheldon,washers,interconnecting,digraphs,intrastate,campy,helvetic,frontispiece,ferrocarril,anambra,petraeus,midrib,endometrial,dwarfism,mauryan,endocytosis,brigs,percussionists,furtherance,synergistic,apocynaceae,krona,berthier,circumvented,casal,siltstone,precast,ethnikos,realists,geodesy,zarzuela,greenback,tripathi,persevered,interments,neutralization,olbermann,departements,supercomputing,demobilised,cassavetes,dunder,ministering,veszprem,barbarism,'world,pieve,apologist,frentzen,sulfides,firewalls,pronotum,staatsoper,hachette,makhachkala,oberland,phonon,yoshihiro,instars,purnima,winslet,mutsu,ergative,sajid,nizamuddin,paraphrased,ardeidae,kodagu,monooxygenase,skirmishers,sportiva,o'byrne,mykolaiv,ophir,prieta,gyllenhaal,kantian,leche,copan,herero,ps250,gelsenkirchen,shalit,sammarinese,chetwynd,wftda,travertine,warta,sigmaringen,concerti,namespace,ostergotland,biomarker,universals,collegio,embarcadero,wimborne,fiddlers,likening,ransomed,stifled,unabated,kalakaua,khanty,gongs,goodrem,countermeasure,publicizing,geomorphology,swedenborg,undefended,catastrophes,diverts,storyboards,amesbury,contactless,placentia,festivity,authorise,terrane,thallium,stradivarius,antonine,consortia,estimations,consecrate,supergiant,belichick,pendants,butyl,groza,univac,afire,kavala,studi,teletoon,paucity,gonbad,koninklijke,
128th,stoichiometric,multimodal,facundo,anatomic,melamine,creuse,altan,brigands,mcguinty,blomfield,tsvangirai,protrusion,lurgan,warminster,tenzin,russellville,discursive,definable,scotrail,lignin,reincorporated,o'dell,outperform,redland,multicolored,evaporates,dimitrie,limbic,patapsco,interlingua,surrogacy,cutty,potrero,masud,cahiers,jintao,ardashir,centaurus,plagiarized,minehead,musings,statuettes,logarithms,seaview,prohibitively,downforce,rivington,tomorrowland,microbiologist,ferric,morag,capsid,kucinich,clairvaux,demotic,seamanship,cicada,painterly,cromarty,carbonic,tupou,oconee,tehuantepec,typecast,anstruther,internalized,underwriters,tetrahedra,flagrant,quakes,pathologies,ulrik,nahal,tarquini,dongguan,parnassus,ryoko,senussi,seleucia,airasia,einer,sashes,d'amico,matriculating,arabesque,honved,biophysical,hardinge,kherson,mommsen,diels,icbms,reshape,brasiliensis,palmach,netaji,oblate,functionalities,grigor,blacksburg,recoilless,melanchthon,reales,astrodome,handcrafted,memes,theorizes,isma'il,aarti,pirin,maatschappij,stabilizes,honiara,ashbury,copts,rootes,defensed,queiroz,mantegna,galesburg,coraciiformesfamily,cabrillo,tokio,antipsychotics,kanon,
173rd,apollonia,finial,lydian,hadamard,rangi,dowlatabad,monolingual,platformer,subclasses,chiranjeevi,mirabeau,newsgroup,idmanyurdu,kambojas,walkover,zamoyski,generalist,khedive,flanges,knowle,bande,
157th,alleyn,reaffirm,pininfarina,zuckerberg,hakodate,
131st,aditi,bellinzona,vaulter,planking,boscombe,colombians,lysis,toppers,metered,nahyan,queensryche,minho,nagercoil,firebrand,foundress,bycatch,mendota,freeform,antena,capitalisation,martinus,overijssel,purists,interventionist,zgierz,burgundians,hippolyta,trompe,umatilla,moroccans,dictionnaire,hydrography,changers,chota,rimouski,aniline,bylaw,grandnephew,neamt,lemnos,connoisseurs,tractive,rearrangements,fetishism,finnic,apalachicola,landowning,calligraphic,circumpolar,mansfeld,legible,orientalism,tannhauser,blamey,maximization,noinclude,blackbirds,angara,ostersund,pancreatitis,glabra,acleris,juried,jungian,triumphantly,singlet,plasmas,synesthesia,yellowhead,unleashes,choiseul,quanzhong,brookville,kaskaskia,igcse,skatepark,jatin,jewellers,scaritinae,techcrunch,tellurium,lachaise,azuma,codeshare,dimensionality,unidirectional,scolaire,macdill,camshafts,unassisted,verband,kahlo,eliya,prelature,chiefdoms,saddleback,sockers,iommi,coloratura,llangollen,biosciences,harshest,maithili,k'iche,plical,multifunctional,andreu,tuskers,confounding,sambre,quarterdeck,ascetics,berdych,transversal,tuolumne,sagami,petrobras,brecker,menxia,instilling,stipulating,korra,oscillate,deadpan,v/line,pyrotechnic,stoneware,prelims,intracoastal,retraining,ilija,berwyn,encrypt,achievers,zulfiqar,glycoproteins,khatib,farmsteads,occultist,saman,fionn,derulo,khilji,obrenovic,argosy,toowong,dementieva,sociocultural,iconostasis,craigslist,festschrift,taifa,intercalated,tanjong,penticton,sharad,marxian,extrapolation,guises,wettin,prabang,exclaiming,kosta,famas,conakry,wanderings,'aliabad,macleay,exoplanet,bancorp,besiegers,surmounting,checkerboard,rajab,vliet,tarek,operable,wargaming,haldimand,fukuyama,uesugi,aggregations,erbil,brachiopods,tokyu,anglais,unfavorably,ujpest,escorial,armagnac,nagara,funafuti,ridgeline,cocking,o'gorman,compactness,retardant,krajowa,barua,coking,bestows,thampi,chicagoland,variably,o'loughlin,minnows,schwa,shaukat,polycarbonate,chlorinated,godalming,gramercy,delved,banqueting,enlil,sarada,prasanna,domhnall,decadal,regressive,lipoprotein,collectable,surendra,zaporizhia,cycliste,suchet,offsetting,formula_65,pudong,d'arte,blyton,quonset,osmania,tientsin,manorama,proteomics,bille,jalpaiguri,pertwee,barnegat,inventiveness,gollancz,euthanized,henricus,shortfalls,wuxia,chlorides,cerrado,polyvinyl,folktale,straddled,bioengineering,eschewing,greendale,recharged,olave,ceylonese,autocephalous,peacebuilding,wrights,guyed,rosamund,abitibi,bannockburn,gerontology,scutari,souness,seagram,codice_9,'open,xhtml,taguig,purposed,darbar,orthopedics,unpopulated,kisumu,tarrytown,feodor,polyhedral,monadnock,gottorp,priam,redesigning,gasworks,elfin,urquiza,homologation,filipovic,bohun,manningham,gornik,soundness,shorea,lanus,gelder,darke,sandgate,criticality,paranaense,
153rd,vieja,lithograph,trapezoid,tiebreakers,convalescence,yan'an,actuaries,balad,altimeter,thermoelectric,trailblazer,previn,tenryu,ancaster,endoscopy,nicolet,discloses,fracking,plaine,salado,americanism,placards,absurdist,propylene,breccia,jirga,documenta,ismailis,
161st,brentano,dallas/fort,embellishment,calipers,subscribes,mahavidyalaya,wednesbury,barnstormers,miwok,schembechler,minigame,unterberger,dopaminergic,inacio,nizamabad,overridden,monotype,cavernous,stichting,sassafras,sotho,argentinean,myrrh,rapidity,flatts,gowrie,dejected,kasaragod,cyprinidae,interlinked,arcseconds,degeneracy,infamously,incubate,substructure,trigeminal,sectarianism,marshlands,hooliganism,hurlers,isolationist,urania,burrard,switchover,lecco,wilts,interrogator,strived,ballooning,volterra,raciborz,relegating,gilding,cybele,dolomites,parachutist,lochaber,orators,raeburn,backend,benaud,rallycross,facings,banga,nuclides,defencemen,futurity,emitters,yadkin,eudonia,zambales,manasseh,sirte,meshes,peculiarly,mcminnville,roundly,boban,decrypt,icelanders,sanam,chelan,jovian,grudgingly,penalised,subscript,gambrinus,poaceae,infringements,maleficent,runciman,
148th,supersymmetry,granites,liskeard,eliciting,involution,hallstatt,kitzbuhel,shankly,sandhills,inefficiencies,yishuv,psychotropic,nightjars,wavell,sangamon,vaikundar,choshu,retrospectives,pitesti,gigantea,hashemi,bosna,gakuin,siochana,arrangers,baronetcies,narayani,temecula,creston,koscierzyna,autochthonous,wyandot,anniston,igreja,mobilise,buzau,dunster,musselburgh,wenzhou,khattak,detoxification,decarboxylase,manlius,campbells,coleoptera,copyist,sympathisers,suisun,eminescu,defensor,transshipment,thurgau,somerton,fluctuates,ambika,weierstrass,lukow,giambattista,volcanics,romanticized,innovated,matabeleland,scotiabank,garwolin,purine,d'auvergne,borderland,maozhen,pricewaterhousecoopers,testator,pallium,scout.com,mv/pi,nazca,curacies,upjohn,sarasvati,monegasque,ketrzyn,malory,spikelets,biomechanics,haciendas,rapped,dwarfed,stews,nijinsky,subjection,matsu,perceptible,schwarzburg,midsection,entertains,circuitous,epiphytic,wonsan,alpini,bluefield,sloths,transportable,braunfels,dictum,szczecinek,jukka,wielun,wejherowo,hucknall,grameen,duodenum,ribose,deshpande,shahar,nexstar,injurious,dereham,lithographer,dhoni,structuralist,progreso,deschutes,christus,pulteney,quoins,yitzchak,gyeongsang,breviary,makkah,chiyoda,jutting,vineland,angiosperms,necrotic,novelisation,redistribute,tirumala,
140th,featureless,mafic,rivaling,toyline,
2/
1st,martius,saalfeld,monthan,texian,kathak,melodramas,mithila,regierungsbezirk,
509th,fermenting,schoolmate,virtuosic,briain,kokoda,heliocentric,handpicked,kilwinning,sonically,dinars,kasim,parkways,bogdanov,luxembourgian,halland,avesta,bardic,daugavpils,excavator,qwest,frustrate,physiographic,majoris,'ndrangheta,unrestrained,firmness,montalban,abundances,preservationists,adare,executioners,guardsman,bonnaroo,neglects,nazrul,pro12,hoorn,abercorn,refuting,kabud,cationic,parapsychology,troposphere,venezuelans,malignancy,khoja,unhindered,accordionist,medak,visby,ejercito,laparoscopic,dinas,umayyads,valmiki,o'dowd,saplings,stranding,incisions,illusionist,avocets,buccleuch,amazonia,fourfold,turboprops,roosts,priscus,turnstile,areal,certifies,pocklington,spoofs,viseu,commonalities,dabrowka,annam,homesteaders,daredevils,mondrian,negotiates,fiestas,perennials,maximizes,lubavitch,ravindra,scrapers,finials,kintyre,violas,snoqualmie,wilders,openbsd,mlawa,peritoneal,devarajan,congke,leszno,mercurial,fakir,joannes,bognor,overloading,unbuilt,gurung,scuttle,temperaments,bautzen,jardim,tradesman,visitations,barbet,sagamore,graaff,forecasters,wilsons,assis,l'air,shariah,sochaczew,russa,dirge,biliary,neuve,heartbreakers,strathearn,jacobian,overgrazing,edrich,anticline,parathyroid,petula,lepanto,decius,channelled,parvathi,puppeteers,communicators,francorchamps,kahane,longus,panjang,intron,traite,xxvii,matsuri,amrit,katyn,disheartened,cacak,omonia,alexandrine,partaking,wrangling,adjuvant,haskovo,tendrils,greensand,lammermoor,otherworld,volusia,stabling,one-and-a-half,bresson,zapatista,eotvos,ps150,webisodes,stepchildren,microarray,braganca,quanta,dolne,superoxide,bellona,delineate,ratha,lindenwood,bruhl,cingulate,tallies,bickerton,helgi,bevin,takoma,tsukuba,statuses,changeling,alister,bytom,dibrugarh,magnesia,duplicating,outlier,abated,goncalo,strelitz,shikai,mardan,musculature,ascomycota,springhill,tumuli,gabaa,odenwald,reformatted,autocracy,theresienstadt,suplex,chattopadhyay,mencken,congratulatory,weatherfield,systema,solemnity,projekt,quanzhou,kreuzberg,postbellum,nobuo,mediaworks,finisterre,matchplay,bangladeshis,kothen,oocyte,hovered,aromas,afshar,browed,teases,chorlton,arshad,cesaro,backbencher,iquique,vulcans,padmini,unabridged,cyclase,despotic,kirilenko,achaean,queensberry,debre,octahedron,iphigenia,curbing,karimnagar,sagarmatha,smelters,surrealists,sanada,shrestha,turridae,leasehold,jiedushi,eurythmics,appropriating,correze,thimphu,amery,musicomh,cyborgs,sandwell,pushcart,retorts,ameliorate,deteriorates,stojanovic,spline,entrenchments,bourse,chancellorship,pasolini,lendl,personage,reformulated,pubescens,loiret,metalurh,reinvention,nonhuman,eilema,tarsal,complutense,magne,broadview,metrodome,outtake,stouffville,seinen,bataillon,phosphoric,ostensible,opatow,aristides,beefheart,glorifying,banten,romsey,seamounts,fushimi,prophylaxis,sibylla,ranjith,goslar,balustrades,georgiev,caird,lafitte,peano,canso,bankura,halfpenny,segregate,caisson,bizerte,jamshedpur,euromaidan,philosophie,ridged,cheerfully,reclassification,aemilius,visionaries,samoans,wokingham,chemung,wolof,unbranched,cinerea,bhosle,ourense,immortalised,cornerstones,sourcebook,khufu,archimedean,universitatea,intermolecular,fiscally,suffices,metacomet,adjudicator,stablemate,specks,glace,inowroclaw,patristic,muharram,agitating,ashot,neurologic,didcot,gamla,ilves,putouts,siraj,laski,coaling,diarmuid,ratnagiri,rotulorum,liquefaction,morbihan,harel,aftershock,gruiformesfamily,bonnier,falconiformesfamily,adorns,wikis,maastrichtian,stauffenberg,bishopsgate,fakhr,sevenfold,ponders,quantifying,castiel,opacity,depredations,lenten,gravitated,o'mahony,modulates,inuktitut,paston,kayfabe,vagus,legalised,balked,arianism,tendering,sivas,birthdate,awlaki,khvajeh,shahab,samtgemeinde,bridgeton,amalgamations,biogenesis,recharging,tsukasa,mythbusters,chamfered,enthronement,freelancers,maharana,constantia,sutil,messines,monkton,okanogan,reinvigorated,apoplexy,tanahashi,neues,valiants,harappan,russes,carding,volkoff,funchal,statehouse,imitative,intrepidity,mellotron,samaras,turkana,besting,longitudes,exarch,diarrhoea,transcending,zvonareva,darna,ramblin,disconnection,
137th,refocused,diarmait,agricole,ba'athist,turenne,contrabass,communis,daviess,fatimids,frosinone,fittingly,polyphyletic,qanat,theocratic,preclinical,abacha,toorak,marketplaces,conidia,seiya,contraindicated,retford,bundesautobahn,rebuilds,climatology,seaworthy,starfighter,qamar,categoria,malai,hellinsia,newstead,airworthy,catenin,avonmouth,arrhythmias,ayyavazhi,downgrade,ashburnham,ejector,kinematics,petworth,rspca,filmation,accipitridae,chhatrapati,g/mol,bacau,agama,ringtone,yudhoyono,orchestrator,arbitrators,
138th,powerplants,cumbernauld,alderley,misamis,hawai`i,cuando,meistriliiga,jermyn,alans,pedigrees,ottavio,approbation,omnium,purulia,prioress,rheinland,lymphoid,lutsk,oscilloscope,ballina,iliac,motorbikes,modernising,uffizi,phylloxera,kalevala,bengalis,amravati,syntheses,interviewers,inflectional,outflank,maryhill,unhurt,profiler,nacelles,heseltine,personalised,guarda,herpetologist,airpark,pigot,margaretha,dinos,peleliu,breakbeat,kastamonu,shaivism,delamere,kingsville,epigram,khlong,phospholipids,journeying,lietuvos,congregated,deviance,celebes,subsoil,stroma,kvitova,lubricating,layoff,alagoas,olafur,doron,interuniversity,raycom,agonopterix,uzice,nanna,springvale,raimundo,wrested,pupal,talat,skinheads,vestige,unpainted,handan,odawara,ammar,attendee,lapped,myotis,gusty,ciconiiformesfamily,traversal,subfield,vitaphone,prensa,hasidism,inwood,carstairs,kropotkin,turgenev,dobra,remittance,purim,tannin,adige,tabulation,lethality,pacha,micronesian,dhruva,defensemen,tibeto,siculus,radioisotope,sodertalje,phitsanulok,euphonium,oxytocin,overhangs,skinks,fabrica,reinterred,emulates,bioscience,paragliding,raekwon,perigee,plausibility,frolunda,erroll,aznar,vyasa,albinus,trevally,confederacion,terse,sixtieth,
1530s,kendriya,skateboarders,frontieres,muawiyah,easements,shehu,conservatively,keystones,kasem,brutalist,peekskill,cowry,orcas,syllabary,paltz,elisabetta,denticles,hampering,dolni,eidos,aarau,lermontov,yankton,shahbaz,barrages,kongsvinger,reestablishment,acetyltransferase,zulia,mrnas,slingsby,eucalypt,efficacious,weybridge,gradation,cinematheque,malthus,bampton,coexisted,cisse,hamdi,cupertino,saumarez,chionodes,libertine,formers,sakharov,pseudonymous,vol
.1,mcduck,gopalakrishnan,amberley,jorhat,grandmasters,rudiments,dwindle,param,bukidnon,menander,americanus,multipliers,pulawy,homoerotic,pillbox,cd+dvd,epigraph,aleksandrow,extrapolated,horseshoes,contemporain,angiography,hasselt,shawinigan,memorization,legitimized,cyclades,outsold,rodolphe,kelis,powerball,dijkstra,analyzers,incompressible,sambar,orangeburg,osten,reauthorization,adamawa,sphagnum,hypermarket,millipedes,zoroaster,madea,ossuary,murrayfield,pronominal,gautham,resellers,ethers,quarrelled,dolna,stragglers,asami,tangut,passos,educacion,sharaf,texel,berio,bethpage,bezalel,marfa,noronha,
36ers,genteel,avram,shilton,compensates,sweetener,reinstalled,disables,noether,
1590s,balakrishnan,kotaro,northallerton,cataclysm,gholam,cancellara,schiphol,commends,longinus,albinism,gemayel,hamamatsu,volos,islamism,sidereal,pecuniary,diggings,townsquare,neosho,lushan,chittoor,akhil,disputation,desiccation,cambodians,thwarting,deliberated,ellipsis,bahini,susumu,separators,kohneh,plebeians,kultur,ogaden,pissarro,trypeta,latur,liaodong,vetting,datong,sohail,alchemists,lengthwise,unevenly,masterly,microcontrollers,occupier,deviating,farringdon,baccalaureat,theocracy,chebyshev,archivists,jayaram,ineffectiveness,scandinavians,jacobins,encomienda,nambu,g/cm3,catesby,paavo,heeded,rhodium,idealised,
10deg,infective,mecyclothorax,halevy,sheared,minbari,audax,lusatian,rebuffs,hitfix,fastener,subjugate,tarun,binet,compuserve,synthesiser,keisuke,amalric,ligatures,tadashi,ignazio,abramovich,groundnut,otomo,maeve,mortlake,ostrogoths,antillean,todor,recto,millimetre,espousing,inaugurate,paracetamol,galvanic,harpalinae,jedrzejow,reassessment,langlands,civita,mikan,stikine,bijar,imamate,istana,kaiserliche,erastus,federale,cytosine,expansionism,hommes,norrland,smriti,snapdragon,gulab,taleb,lossy,khattab,urbanised,sesto,rekord,diffuser,desam,morganatic,silting,pacts,extender,beauharnais,purley,bouches,halfpipe,discontinuities,houthi,farmville,animism,horni,saadi,interpretative,blockades,symeon,biogeographic,transcaucasian,jetties,landrieu,astrocytes,conjunto,stumpings,weevils,geysers,redux,arching,romanus,tazeh,marcellinus,casein,opava,misrata,anare,sattar,declarer,dreux,oporto,venta,vallis,icosahedron,cortona,lachine,mohammedan,sandnes,zynga,clarin,diomedes,tsuyoshi,pribram,gulbarga,chartist,superettan,boscawen,altus,subang,gating,epistolary,vizianagaram,ogdensburg,panna,thyssen,tarkovsky,dzogchen,biograph,seremban,unscientific,nightjar,legco,deism,n.w.a,sudha,siskel,sassou,flintlock,jovial,montbeliard,pallida,formula_66,tranquillity,nisei,adornment,'people,yamhill,hockeyallsvenskan,adopters,appian,lowicz,haplotypes,succinctly,starogard,presidencies,kheyrabad,sobibor,kinesiology,cowichan,militum,cromwellian,leiningen,ps1.5,concourses,dalarna,goldfield,brzeg,faeces,aquarii,matchless,harvesters,
181st,numismatics,korfball,sectioned,transpires,facultative,brandishing,kieron,forages,menai,glutinous,debarge,heathfield,
1580s,malang,photoelectric,froome,semiotic,alwar,grammophon,chiaroscuro,mentalist,maramures,flacco,liquors,aleutians,marvell,sutlej,patnaik,qassam,flintoff,bayfield,haeckel,sueno,avicii,exoplanets,hoshi,annibale,vojislav,honeycombs,celebrant,rendsburg,veblen,quails,
141st,carronades,savar,narrations,jeeva,ontologies,hedonistic,marinette,godot,munna,bessarabian,outrigger,thame,gravels,hoshino,falsifying,stereochemistry,nacionalista,medially,radula,ejecting,conservatorio,odile,ceiba,jaina,essonne,isometry,allophones,recidivism,iveco,ganda,grammarians,jagan,signposted,uncompressed,facilitators,constancy,ditko,propulsive,impaling,interbank,botolph,amlaib,intergroup,sorbus,cheka,debye,praca,adorning,presbyteries,dormition,strategos,qarase,pentecostals,beehives,hashemite,goldust,euronext,egress,arpanet,soames,jurchens,slovenska,copse,kazim,appraisals,marischal,mineola,sharada,caricaturist,sturluson,galba,faizabad,overwintering,grete,uyezds,didsbury,libreville,ablett,microstructure,anadolu,belenenses,elocution,cloaks,timeslots,halden,rashidun,displaces,sympatric,germanus,tuples,ceska,equalize,disassembly,krautrock,babangida,memel,deild,gopala,hematology,underclass,sangli,wawrinka,assur,toshack,refrains,nicotinic,bhagalpur,badami,racetracks,pocatello,walgreens,nazarbayev,occultation,spinnaker,geneon,josias,hydrolyzed,dzong,corregimiento,waistcoat,thermoplastic,soldered,anticancer,lactobacillus,shafi'i,carabus,adjournment,schlumberger,triceratops,despotate,mendicant,krishnamurti,bahasa,earthworm,lavoisier,noetherian,kalki,fervently,bhawan,saanich,coquille,gannet,motagua,kennels,mineralization,fitzherbert,svein,bifurcated,hairdressing,felis,abounded,dimers,fervour,hebdo,bluffton,aetna,corydon,clevedon,carneiro,subjectively,deutz,gastropoda,overshot,concatenation,varman,carolla,maharshi,mujib,inelastic,riverhead,initialized,safavids,rohini,caguas,bulges,fotbollforbund,hefei,spithead,westville,maronites,lytham,americo,gediminas,stephanus,chalcolithic,hijra,gnu/linux,predilection,rulership,sterility,haidar,scarlatti,saprissa,sviatoslav,pointedly,sunroof,guarantor,thevar,airstrips,pultusk,sture,
129th,divinities,daizong,dolichoderus,cobourg,maoists,swordsmanship,uprated,bohme,tashi,largs,chandi,bluebeard,householders,richardsonian,drepanidae,antigonish,elbasan,occultism,marca,hypergeometric,oirat,stiglitz,ignites,dzungar,miquelon,pritam,d'automne,ulidiid,niamey,vallecano,fondo,billiton,incumbencies,raceme,chambery,cadell,barenaked,kagame,summerside,haussmann,hatshepsut,apothecaries,criollo,feint,nasals,timurid,feltham,plotinus,oxygenation,marginata,officinalis,salat,participations,ising,downe,izumo,unguided,pretence,coursed,haruna,viscountcy,mainstage,justicia,powiat,takara,capitoline,implacable,farben,stopford,cosmopterix,tuberous,kronecker,galatians,kweli,dogmas,exhorted,trebinje,skanda,newlyn,ablative,basidia,bhiwani,encroachments,stranglers,regrouping,tubal,shoestring,wawel,anionic,mesenchymal,creationists,pyrophosphate,moshi,despotism,powerbook,fatehpur,rupiah,segre,ternate,jessore,b.i.g,shevardnadze,abounds,gliwice,densest,memoria,suborbital,vietcong,ratepayers,karunanidhi,toolbar,descents,rhymney,exhortation,zahedan,carcinomas,hyperbaric,botvinnik,billets,neuropsychological,tigranes,hoards,chater,biennially,thistles,scotus,wataru,flotillas,hungama,monopolistic,payouts,vetch,generalissimo,caries,naumburg,piran,blizzards,escalates,reactant,shinya,theorize,rizzoli,transitway,ecclesiae,streptomyces,cantal,nisibis,superconductor,unworkable,thallus,roehampton,scheckter,viceroys,makuuchi,ilkley,superseding,takuya,klodzko,borbon,raspberries,operand,w.a.k.o,sarabande,factionalism,egalitarianism,temasek,torbat,unscripted,jorma,westerner,perfective,vrije,underlain,goldfrapp,blaenau,jomon,barthes,drivetime,bassa,bannock,umaga,fengxiang,zulus,sreenivasan,farces,codice_10,freeholder,poddebice,imperialists,deregulated,wingtip,o'hagan,pillared,overtone,hofstadter,
149th,kitano,saybrook,standardizing,aldgate,staveley,o'flaherty,hundredths,steerable,soltan,empted,cruyff,intramuros,taluks,cotonou,marae,karur,figueres,barwon,lucullus,niobe,zemlya,lathes,homeported,chaux,amyotrophic,opines,exemplars,bhamo,homomorphisms,gauleiter,ladin,mafiosi,airdrieonians,b/soul,decal,transcaucasia,solti,defecation,deaconess,numidia,sampradaya,normalised,wingless,schwaben,alnus,cinerama,yakutsk,ketchikan,orvieto,unearned,monferrato,rotem,aacsb,loong,decoders,skerries,cardiothoracic,repositioning,pimpernel,yohannan,tenebrionoidea,nargis,nouvel,costliest,interdenominational,noize,redirecting,zither,morcha,radiometric,frequenting,irtysh,gbagbo,chakri,litvinenko,infotainment,ravensbruck,harith,corbels,maegashira,jousting,natan,novus,falcao,minis,railed,decile,rauma,ramaswamy,cavitation,paranaque,berchtesgaden,reanimated,schomberg,polysaccharides,exclusionary,cleon,anurag,ravaging,dhanush,mitchells,granule,contemptuous,keisei,rolleston,atlantean,yorkist,daraa,wapping,micrometer,keeneland,comparably,baranja,oranje,schlafli,yogic,dinajpur,unimpressive,masashi,recreativo,alemannic,petersfield,naoko,vasudeva,autosport,rajat,marella,busko,wethersfield,ssris,soulcalibur,kobani,wildland,rookery,hoffenheim,kauri,aliphatic,balaclava,ferrite,publicise,victorias,theism,quimper,chapbook,functionalist,roadbed,ulyanovsk,cupen,purpurea,calthorpe,teofilo,mousavi,cochlea,linotype,detmold,ellerslie,gakkai,telkom,southsea,subcontractor,inguinal,philatelists,zeebrugge,piave,trochidae,dempo,spoilt,saharanpur,mihrab,parasympathetic,barbarous,chartering,antiqua,katsina,bugis,categorizes,altstadt,kandyan,pambansa,overpasses,miters,assimilating,finlandia,uneconomic,am/fm,harpsichordist,dresdner,luminescence,authentically,overpowers,magmatic,cliftonville,oilfields,skirted,berthe,cuman,oakham,frelimo,glockenspiel,confection,saxophonists,piaseczno,multilevel,antipater,levying,maltreatment,velho,opoczno,harburg,pedophilia,unfunded,palettes,plasterwork,breve,dharmendra,auchinleck,nonesuch,blackmun,libretti,rabbani,
145th,hasselbeck,kinnock,malate,vanden,cloverdale,ashgabat,nares,radians,steelworkers,sabor,possums,catterick,hemispheric,ostra,outpaced,dungeness,almshouse,penryn,texians,
1000m,franchitti,incumbency,texcoco,newar,tramcars,toroidal,meitetsu,spellbound,agronomist,vinifera,riata,bunko,pinas,ba'al,github,vasilyevich,obsolescent,geodesics,ancestries,tujue,capitalised,unassigned,throng,unpaired,psychometric,skegness,exothermic,buffered,kristiansund,tongued,berenger,basho,alitalia,prolongation,archaeologically,fractionation,cyprinid,echinoderms,agriculturally,justiciar,sonam,ilium,baits,danceable,grazer,ardahan,grassed,preemption,glassworks,hasina,ugric,umbra,wahhabi,vannes,tinnitus,capitaine,tikrit,lisieux,scree,hormuz,despenser,jagiellon,maisonneuve,gandaki,santarem,basilicas,lancing,landskrona,weilburg,fireside,elysian,isleworth,krishnamurthy,filton,cynon,tecmo,subcostal,scalars,triglycerides,hyperplane,farmingdale,unione,meydan,pilings,mercosur,reactivate,akiba,fecundity,jatra,natsume,zarqawi,preta,masao,presbyter,oakenfold,rhodri,ferran,ruizong,cloyne,nelvana,epiphanius,borde,scutes,strictures,troughton,whitestone,sholom,toyah,shingon,kutuzov,abelard,passant,lipno,cafeterias,residuals,anabaptists,paratransit,criollos,pleven,radiata,destabilizing,hadiths,bazaars,mannose,taiyo,crookes,welbeck,baoding,archelaus,nguesso,alberni,wingtips,herts,viasat,lankans,evreux,wigram,fassbinder,ryuichi,storting,reducible,olesnica,znojmo,hyannis,theophanes,flatiron,mustering,rajahmundry,kadir,wayang,prome,lethargy,zubin,illegality,conall,dramedy,beerbohm,hipparchus,ziarat,ryuji,shugo,glenorchy,microarchitecture,morne,lewinsky,cauvery,battenberg,hyksos,wayanad,hamilcar,buhari,brazo,bratianu,solms,aksaray,elamite,chilcotin,bloodstock,sagara,dolny,reunified,umlaut,proteaceae,camborne,calabrian,dhanbad,vaxjo,cookware,potez,rediffusion,semitones,lamentations,allgau,guernica,suntory,pleated,stationing,urgell,gannets,bertelsmann,entryway,raphitomidae,acetaldehyde,nephrology,categorizing,beiyang,permeate,tourney,geosciences,khana,masayuki,crucis,universitaria,slaskie,khaimah,finno,advani,astonishingly,tubulin,vampiric,jeolla,sociale,cleethorpes,badri,muridae,suzong,debater,decimation,kenyans,mutualism,pontifex,middlemen,insee,halevi,lamentation,psychopathy,brassey,wenders,kavya,parabellum,prolactin,inescapable,apses,malignancies,rinzai,stigmatized,menahem,comox,ateliers,welshpool,setif,centimetre,truthfulness,downfield,drusus,woden,glycosylation,emanated,agulhas,dalkeith,jazira,nucky,unifil,jobim,operon,oryzomys,heroically,seances,supernumerary,backhouse,hashanah,tatler,imago,invert,hayato,clockmaker,kingsmill,swiecie,analogously,golconda,poste,tacitly,decentralised,ge'ez,diplomatically,fossiliferous,linseed,mahavira,pedestals,archpriest,byelection,domiciled,jeffersonian,bombus,winegrowing,waukegan,uncultivated,haverfordwest,saumur,communally,disbursed,cleeve,zeljeznicar,speciosa,vacationers,sigur,vaishali,zlatko,iftikhar,cropland,transkei,incompleteness,bohra,subantarctic,slieve,physiologic,similis,klerk,replanted,'right,chafee,reproducible,bayburt,regicide,muzaffarpur,plurals,hanyu,orthologs,diouf,assailed,kamui,tarik,dodecanese,gorne,on/off,
179th,shimoga,granaries,carlists,valar,tripolitania,sherds,simmern,dissociated,isambard,polytechnical,yuvraj,brabazon,antisense,pubmed,glans,minutely,masaaki,raghavendra,savoury,podcasting,tachi,bienville,gongsun,ridgely,deform,yuichi,binders,canna,carcetti,llobregat,implored,berri,njegos,intermingled,offload,athenry,motherhouse,corpora,kakinada,dannebrog,imperio,prefaces,musicologists,aerospatiale,shirai,nagapattinam,servius,cristoforo,pomfret,reviled,entebbe,stane,east/west,thermometers,matriarchal,siglo,bodil,legionnaire,ze'ev,theorizing,sangeetha,horticulturist,uncountable,lookalike,anoxic,ionospheric,genealogists,chicopee,imprinting,popish,crematoria,diamondback,cyathea,hanzhong,cameramen,halogaland,naklo,waclaw,storehouses,flexed,comuni,frits,glauca,nilgiris,compresses,nainital,continuations,albay,hypoxic,samajwadi,dunkerque,nanticoke,sarwar,interchanged,jubal,corba,jalgaon,derleth,deathstroke,magny,vinnytsia,hyphenated,rimfire,sawan,boehner,disrepute,normalize,aromanian,dualistic,approximant,chama,karimabad,barnacles,sanok,stipends,dyfed,rijksmuseum,reverberation,suncorp,fungicides,reverie,spectrograph,stereophonic,niazi,ordos,alcan,karaite,lautrec,tableland,lamellar,rieti,langmuir,russula,webern,tweaks,hawick,southerner,morphy,naturalisation,enantiomer,michinoku,barbettes,relieves,carburettors,redruth,oblates,vocabularies,mogilev,bagmati,galium,reasserted,extolled,symon,eurosceptic,inflections,tirtha,recompense,oruro,roping,gouverneur,pared,yayoi,watermills,retooled,leukocytes,jubilant,mazhar,nicolau,manheim,touraine,bedser,hambledon,kohat,powerhouses,tlemcen,reuven,sympathetically,afrikaners,interes,handcrafts,etcher,baddeley,wodonga,amaury,
155th,vulgarity,pompadour,automorphisms,
1540s,oppositions,prekmurje,deryni,fortifying,arcuate,mahila,bocage,uther,nozze,slashes,atlantica,hadid,rhizomatous,azeris,'with,osmena,lewisville,innervated,bandmaster,outcropping,parallelogram,dominicana,twang,ingushetia,extensional,ladino,sastry,zinoviev,relatable,nobilis,cbeebies,hitless,eulima,sporangia,synge,longlisted,criminalized,penitential,weyden,tubule,volyn,priestesses,glenbrook,kibbutzim,windshaft,canadair,falange,zsolt,bonheur,meine,archangels,safeguarded,jamaicans,malarial,teasers,badging,merseyrail,operands,pulsars,gauchos,biotin,bambara,necaxa,egmond,tillage,coppi,anxiolytic,preah,mausoleums,plautus,feroz,debunked,
187th,belediyespor,mujibur,wantage,carboxyl,chettiar,murnau,vagueness,racemic,backstretch,courtland,municipio,palpatine,dezful,hyperbola,sreekumar,chalons,altay,arapahoe,tudors,sapieha,quilon,burdensome,kanya,xxviii,recension,generis,siphuncle,repressor,bitrate,mandals,midhurst,dioxin,democratique,upholds,rodez,cinematographic,epoque,jinping,rabelais,zhytomyr,glenview,rebooted,khalidi,reticulata,
122nd,monnaie,passersby,ghazals,europaea,lippmann,earthbound,tadic,andorran,artvin,angelicum,banksy,epicentre,resemblances,shuttled,rathaus,bernt,stonemasons,balochi,siang,tynemouth,cygni,biosynthetic,precipitates,sharecroppers,d'annunzio,softbank,shiji,apeldoorn,polycyclic,wenceslas,wuchang,samnites,tamarack,silmarillion,madinah,palaeontology,kirchberg,sculpin,rohtak,aquabats,oviparous,thynne,caney,blimps,minimalistic,whatcom,palatalization,bardstown,direct3d,paramagnetic,kamboja,khash,globemaster,lengua,matej,chernigov,swanage,arsenals,cascadia,cundinamarca,tusculum,leavers,organics,warplanes,'three,exertions,arminius,gandharva,inquires,comercio,kuopio,chabahar,plotlines,mersenne,anquetil,paralytic,buckminster,ambit,acrolophus,quantifiers,clacton,ciliary,ansaldo,fergana,egoism,thracians,chicoutimi,northbrook,analgesia,brotherhoods,hunza,adriaen,fluoridation,snowfalls,soundboard,fangoria,cannibalistic,orthogonius,chukotka,dindigul,manzoni,chainz,macromedia,beltline,muruga,schistura,provable,litex,initio,pneumoniae,infosys,cerium,boonton,cannonballs,d'une,solvency,mandurah,houthis,dolmens,apologists,radioisotopes,blaxploitation,poroshenko,stawell,coosa,maximilien,tempelhof,espouse,declaratory,hambro,xalapa,outmoded,mihiel,benefitting,desirous,archeparchy,repopulated,telescoping,captor,mackaye,disparaged,ramanathan,crowne,tumbled,technetium,silted,chedi,nievre,hyeon,cartoonish,interlock,infocom,rediff.com,dioramas,timekeeping,concertina,kutaisi,cesky,lubomirski,unapologetic,epigraphic,stalactites,sneha,biofilm,falconry,miraflores,catena,'outstanding,prospekt,apotheosis,o'odham,pacemakers,arabica,gandhinagar,reminisces,iroquoian,ornette,tilling,neoliberalism,chameleons,pandava,prefontaine,haiyan,gneisenau,utama,bando,reconstitution,azaria,canola,paratroops,ayckbourn,manistee,stourton,manifestos,lympne,denouement,tractatus,rakim,bellflower,nanometer,sassanids,turlough,presbyterianism,varmland,
20deg,phool,nyerere,almohad,manipal,vlaanderen,quickness,removals,makow,circumflex,eatery,morane,fondazione,alkylation,unenforceable,galliano,silkworm,junior/senior,abducts,phlox,konskie,lofoten,buuren,glyphosate,faired,naturae,cobbles,taher,skrulls,dostoevsky,walkout,wagnerian,orbited,methodically,denzil,sarat,extraterritorial,kohima,d'armor,brinsley,rostropovich,fengtian,comitatus,aravind,moche,wrangell,giscard,vantaa,viljandi,hakoah,seabees,muscatine,ballade,camanachd,sothern,mullioned,durad,margraves,maven,arete,chandni,garifuna,
142nd,reading/literature,thickest,intensifies,trygve,khaldun,perinatal,asana,powerline,acetylation,nureyev,omiya,montesquieu,riverwalk,marly,correlating,intermountain,bulgar,hammerheads,underscores,wiretapping,quatrain,ruisseau,newsagent,tuticorin,polygyny,hemsworth,partisanship,banna,istrian,evaporator".split(","),
45721 female_names:"mary,patricia,linda,barbara,elizabeth,jennifer,maria,susan,margaret,dorothy,lisa,nancy,karen,betty,helen,sandra,donna,carol,ruth,sharon,michelle,laura,sarah,kimberly,deborah,jessica,shirley,cynthia,angela,melissa,brenda,amy,anna,rebecca,virginia,kathleen,pamela,martha,debra,amanda,stephanie,carolyn,christine,marie,janet,catherine,frances,ann,joyce,diane,alice,julie,heather,teresa,doris,gloria,evelyn,jean,cheryl,mildred,katherine,joan,ashley,judith,rose,janice,kelly,nicole,judy,christina,kathy,theresa,beverly,denise,tammy,irene,jane,lori,rachel,marilyn,andrea,kathryn,louise,sara,anne,jacqueline,wanda,bonnie,julia,ruby,lois,tina,phyllis,norma,paula,diana,annie,lillian,emily,robin,peggy,crystal,gladys,rita,dawn,connie,florence,tracy,edna,tiffany,carmen,rosa,cindy,grace,wendy,victoria,edith,kim,sherry,sylvia,josephine,thelma,shannon,sheila,ethel,ellen,elaine,marjorie,carrie,charlotte,monica,esther,pauline,emma,juanita,anita,rhonda,hazel,amber,eva,debbie,april,leslie,clara,lucille,jamie,joanne,eleanor,valerie,danielle,megan,alicia,suzanne,michele,gail,bertha,darlene,veronica,jill,erin,geraldine,lauren,cathy,joann,lorraine,lynn,sally,regina,erica,beatrice,dolores,bernice,audrey,yvonne,annette,marion,dana,stacy,ana,renee,ida,vivian,roberta,holly,brittany,melanie,loretta,yolanda,jeanette,laurie,katie,kristen,vanessa,alma,sue,elsie,beth,jeanne,vicki,carla,tara,rosemary,eileen,terri,gertrude,lucy,tonya,ella,stacey,wilma,gina,kristin,jessie,natalie,agnes,vera,charlene,bessie,delores,melinda,pearl,arlene,maureen,colleen,allison,tamara,joy,georgia,constance,lillie,claudia,jackie,marcia,tanya,nellie,minnie,marlene,heidi,glenda,lydia,viola,courtney,marian,stella,caroline,dora,vickie,mattie,maxine,irma,mabel,marsha,myrtle,lena,christy,deanna,patsy,hilda,gwendolyn,jennie,nora,margie,nina,cassandra,leah,penny,kay,priscilla,naomi,carole,olga,billie,dianne,tracey,leona,jenny,felicia,sonia,miriam,velma,becky,bobbie,violet,kristina,toni,misty,mae,shelly,daisy,ramona,sherri,erika,katrina,claire,lindsey,lindsay,geneva,guadalupe,belinda,margarita,sheryl,cora,faye,ada,sabrina,isabel,marguerite,hattie,harriet,molly,cecilia,kristi,brandi,blanche,sandy,rosie,joanna,iris,eunice,angie,inez,lynda,madeline,amelia,alberta,genevieve,monique,jodi,janie,kayla,sonya,jan,kristine,candace,fannie,maryann,opal,alison,yvette,melody,luz,susie,olivia,flora,shelley,kristy,mamie,lula,lola,verna,beulah,antoinette,candice,juana,jeannette,pam,kelli,whitney,bridget,karla,celia,latoya,patty,shelia,gayle,della,vicky,lynne,sheri,marianne,kara,jacquelyn,erma,blanca,myra,leticia,pat,krista,roxanne,angelica,robyn,adrienne,rosalie,alexandra,brooke,bethany,sadie,bernadette,traci,jody,kendra,nichole,rachael,mable,ernestine,muriel,marcella,elena,krystal,angelina,nadine,kari,estelle,dianna,paulette,lora,mona,doreen,rosemarie,desiree,antonia,janis,betsy,christie,freda,meredith,lynette,teri,cristina,eula,leigh,meghan,sophia,eloise,rochelle,gretchen,cecelia,raquel,henrietta,alyssa,jana,gwen,jenna,tricia,laverne,olive,tasha,silvia,elvira,delia,kate,patti,lorena,kellie,sonja,lila,lana,darla,mindy,essie,mandy,lorene,elsa,josefina,jeannie,miranda,dixie,lucia,marta,faith,lela,johanna,shari,camille,tami,shawna,elisa,ebony,melba,ora,nettie,tabitha,ollie,winifred,kristie,alisha,aimee,rena,myrna,marla,tammie,latasha,bonita,patrice,ronda,sherrie,addie,francine,deloris,stacie,adriana,cheri,abigail,celeste,jewel,cara,adele,rebekah,lucinda,dorthy,effie,trina,reba,sallie,aurora,lenora,etta,lottie,kerri,trisha,nikki,estella,francisca,josie,tracie,marissa,karin,brittney,janelle,lourdes,laurel,helene,fern,elva,corinne,kelsey,ina,bettie,elisabeth,aida,caitlin,ingrid,iva,eugenia,christa,goldie,maude,jenifer,therese,dena,lorna,janette,latonya,candy,consuelo,tamika,rosetta,debora,cherie,polly,dina,jewell,fay,jillian,dorothea,nell,trudy,esperanza,patrica,kimberley,shanna,helena,cleo,stefanie,rosario,ola,janine,mollie,lupe,alisa,lou,maribel,susanne,bette,susana,elise,cecile,isabelle,lesley,jocelyn,paige,joni,rachelle,leola,daphne,alta,ester,petra,graciela,imogene,jolene,keisha,lacey,glenna,gabriela,keri,ursula,lizzie,kirsten,shana,adeline,mayra,jayne,jaclyn,gracie,sondra,carmela,marisa,rosalind,charity,tonia,beatriz,marisol,clarice,jeanine,sheena,angeline,frieda,lily,shauna,millie,claudette,cathleen,angelia,gabrielle,autumn,katharine,jodie,staci,lea,christi,justine,elma,luella,margret,dominique,socorro,martina,margo,mavis,callie,bobbi,maritza,lucile,leanne,jeannine,deana,aileen,lorie,ladonna,willa,manuela,gale,selma,dolly,sybil,abby,ivy,dee,winnie,marcy,luisa,jeri,magdalena,ofelia,meagan,audra,matilda,leila,cornelia,bianca,simone,bettye,randi,virgie,latisha,barbra,georgina,eliza,leann,bridgette,rhoda,haley,adela,nola,bernadine,flossie,ila,greta,ruthie,nelda,minerva,lilly,terrie,letha,hilary,estela,valarie,brianna,rosalyn,earline,catalina,ava,mia,clarissa,lidia,corrine,alexandria,concepcion,tia,sharron,rae,dona,ericka,jami,elnora,chandra,lenore,neva,marylou,melisa,tabatha,serena,avis,allie,sofia,jeanie,odessa,nannie,harriett,loraine,penelope,milagros,emilia,benita,allyson,ashlee,tania,esmeralda,eve,pearlie,zelma,malinda,noreen,tameka,saundra,hillary,amie,althea,rosalinda,lilia,alana,clare,alejandra,elinor,lorrie,jerri,darcy,earnestine,carmella,noemi,marcie,liza,annabelle,louisa,earlene,mallory,carlene,nita,selena,tanisha,katy,julianne,lakisha,edwina,maricela,margery,kenya,dollie,roxie,roslyn,kathrine,nanette,charmaine,lavonne,ilene,tammi,suzette,corine,kaye,chrystal,lina,deanne,lilian,juliana,aline,luann,kasey,maryanne,evangeline,colette,melva,lawanda,yesenia,nadia,madge,kathie,ophelia,valeria,nona,mitzi,mari,georgette,claudine,fran,alissa,roseann,lakeisha,susanna,reva,deidre,chasity,sheree,elvia,alyce,deirdre,gena,briana,araceli,katelyn,rosanne,wendi,tessa,berta,marva,imelda,marietta,marci,leonor,arline,sasha,madelyn,janna,juliette,deena,aurelia,josefa,augusta,liliana,lessie,amalia,savannah,anastasia,vilma,natalia,rosella,lynnette,corina,alfreda,leanna,amparo,coleen,tamra,aisha,wilda,karyn,maura,mai,evangelina,rosanna,hallie,erna,enid,mariana,lacy,juliet,jacklyn,freida,madeleine,mara,cathryn,lelia,casandra,bridgett,angelita,jannie,dionne,annmarie,katina,beryl,millicent,katheryn,diann,carissa,maryellen,liz,lauri,helga,gilda,rhea,marquita,hollie,tisha,tamera,angelique,francesca,kaitlin,lolita,florine,rowena,reyna,twila,fanny,janell,ines,concetta,bertie,alba,brigitte,alyson,vonda,pansy,elba,noelle,letitia,deann,brandie,louella,leta,felecia,sharlene,lesa,beverley,isabella,herminia,terra,celina,tori,octavia,jade,denice,germaine,michell,cortney,nelly,doretha,deidra,monika,lashonda,judi,chelsey,antionette,margot,adelaide,leeann,elisha,dessie,libby,kathi,gayla,latanya,mina,mellisa,kimberlee,jasmin,renae,zelda,elda,justina,gussie,emilie,camilla,abbie,rocio,kaitlyn,edythe,ashleigh,selina,lakesha,geri,allene,pamala,michaela,dayna,caryn,rosalia,jacquline,rebeca,marybeth,krystle,iola,dottie,belle,griselda,ernestina,elida,adrianne,demetria,delma,jaqueline,arleen,virgina,retha,fatima,tillie,eleanore,cari,treva,wilhelmina,rosalee,maurine,latrice,jena,taryn,elia,debby,maudie,jeanna,delilah,catrina,shonda,hortencia,theodora,teresita,robbin,danette,delphine,brianne,nilda,danna,cindi,bess,iona,winona,vida,rosita,marianna,racheal,guillermina,eloisa,celestine,caren,malissa,lona,chantel,shellie,marisela,leora,agatha,soledad,migdalia,ivette,christen,athena,janel,veda,pattie,tessie,tera,marilynn,lucretia,karrie,dinah,daniela,alecia,adelina,vernice,shiela,portia,merry,lashawn,dara,tawana,verda,alene,zella,sandi,rafaela,maya,kira,candida,alvina,suzan,shayla,lettie,samatha,oralia,matilde,larissa,vesta,renita,delois,shanda,phillis,lorri,erlinda,cathrine,barb,isabell,ione,gisela,roxanna,mayme,kisha,ellie,mellissa,dorris,dalia,bella,annetta,zoila,reta,reina,lauretta,kylie,christal,pilar,charla,elissa,tiffani,tana,paulina,leota,breanna,jayme,carmel,vernell,tomasa,mandi,dominga,santa,melodie,lura,alexa,tamela,mirna,kerrie,venus,felicita,cristy,carmelita,berniece,annemarie,tiara,roseanne,missy,cori,roxana,pricilla,kristal,jung,elyse,haydee,aletha,bettina,marge,gillian,filomena,zenaida,harriette,caridad,vada,aretha,pearline,marjory,marcela,flor,evette,elouise,alina,damaris,catharine,belva,nakia,marlena,luanne,lorine,karon,dorene,danita,brenna,tatiana,louann,julianna,andria,philomena,lucila,leonora,dovie,romona,mimi,jacquelin,gaye,tonja,misti,chastity,stacia,roxann,micaela,velda,marlys,johnna,aura,ivonne,hayley,nicki,majorie,herlinda,yadira,perla,gregoria,antonette,shelli,mozelle,mariah,joelle,cordelia,josette,chiquita,trista,laquita,georgiana,candi,shanon,hildegard,stephany,magda,karol,gabriella,tiana,roma,richelle,oleta,jacque,idella,alaina,suzanna,jovita,tosha,nereida,marlyn,kyla,delfina,tena,stephenie,sabina,nathalie,marcelle,gertie,darleen,thea,sharonda,shantel,belen,venessa,rosalina,genoveva,clementine,rosalba,renate,renata,georgianna,floy,dorcas,ariana,tyra,theda,mariam,juli,jesica,vikki,verla,roselyn,melvina,jannette,ginny,debrah,corrie,violeta,myrtis,latricia,collette,charleen,anissa,viviana,twyla,nedra,latonia,hellen,fabiola,annamarie,adell,sharyn,chantal,niki,maud,lizette,lindy,kesha,jeana,danelle,charline,chanel,valorie,dortha,cristal,sunny,leone,leilani,gerri,debi,andra,keshia,eulalia,easter,dulce,natividad,linnie,kami,georgie,catina,brook,alda,winnifred,sharla,ruthann,meaghan,magdalene,lissette,adelaida,venita,trena,shirlene,shameka,elizebeth,dian,shanta,latosha,carlotta,windy,rosina,mariann,leisa,jonnie,dawna,cathie,astrid,laureen,janeen,holli,fawn,vickey,teressa,shante,rubye,marcelina,chanda,terese,scarlett,marnie,lulu,lisette,jeniffer,elenor,dorinda,donita,carman,bernita,altagracia,aleta,adrianna,zoraida,lyndsey,janina,starla,phylis,phuong,kyra,charisse,blanch,sanjuanita,rona,nanci,marilee,maranda,brigette,sanjuana,marita,kassandra,joycelyn,felipa,chelsie,bonny,mireya,lorenza,kyong,ileana,candelaria,sherie,lucie,leatrice,lakeshia,gerda,edie,bambi,marylin,lavon,hortense,garnet,evie,tressa,shayna,lavina,kyung,jeanetta,sherrill,shara,phyliss,mittie,anabel,alesia,thuy,tawanda,joanie,tiffanie,lashanda,karissa,enriqueta,daria,daniella,corinna,alanna,abbey,roxane,roseanna,magnolia,lida,joellen,coral,carleen,tresa,peggie,novella,nila,maybelle,jenelle,carina,nova,melina,marquerite,margarette,josephina,evonne,cinthia,albina,toya,tawnya,sherita,myriam,lizabeth,lise,keely,jenni,giselle,cheryle,ardith,ardis,alesha,adriane,shaina,linnea,karolyn,felisha,dori,darci,artie,armida,zola,xiomara,vergie,shamika,nena,nannette,maxie,lovie,jeane,jaimie,inge,farrah,elaina,caitlyn,felicitas,cherly,caryl,yolonda,yasmin,teena,prudence,pennie,nydia,mackenzie,orpha,marvel,lizbeth,laurette,jerrie,hermelinda,carolee,tierra,mirian,meta,melony,kori,jennette,jamila,yoshiko,susannah,salina,rhiannon,joleen,cristine,ashton,aracely,tomeka,shalonda,marti,lacie,kala,jada,ilse,hailey,brittani,zona,syble,sherryl,nidia,marlo,kandice,kandi,alycia,ronna,norene,mercy,ingeborg,giovanna,gemma,christel,audry,zora,vita,trish,stephaine,shirlee,shanika,melonie,mazie,jazmin,inga,hettie,geralyn,fonda,estrella,adella,sarita,rina,milissa,maribeth,golda,evon,ethelyn,enedina,cherise,chana,velva,tawanna,sade,mirta,karie,jacinta,elna,davina,cierra,ashlie,albertha,tanesha,nelle,mindi,lorinda,larue,florene,demetra,dedra,ciara,chantelle,ashly,suzy,rosalva,noelia,lyda,leatha,krystyna,kristan,karri,darline,darcie,cinda,cherrie,awilda,almeda,rolanda,lanette,jerilyn,gisele,evalyn,cyndi,cleta,carin,zina,zena,velia,tanika,charissa,talia,margarete,lavonda,kaylee,kathlene,jonna,irena,ilona,idalia,candis,candance,brandee,anitra,alida,sigrid,nicolette,maryjo,linette,hedwig,christiana,alexia,tressie,modesta,lupita,lita,gladis,evelia,davida,cherri,cecily,ashely,annabel,agustina,wanita,shirly,rosaura,hulda,yetta,verona,thomasina,sibyl,shannan,mechelle,leandra,lani,kylee,kandy,jolynn,ferne,eboni,corene,alysia,zula,nada,moira,lyndsay,lorretta,jammie,hortensia,gaynell,adria,vina,vicenta,tangela,stephine,norine,nella,liana,leslee,kimberely,iliana,glory,felica,emogene,elfriede,eden,eartha,carma,ocie,lennie,kiara,jacalyn,carlota,arielle,otilia,kirstin,kacey,johnetta,joetta,jeraldine,jaunita,elana,dorthea,cami,amada,adelia,vernita,tamar,siobhan,renea,rashida,ouida,nilsa,meryl,kristyn,julieta,danica,breanne,aurea,anglea,sherron,odette,malia,lorelei,leesa,kenna,kathlyn,fiona,charlette,suzie,shantell,sabra,racquel,myong,mira,martine,lucienne,lavada,juliann,elvera,delphia,christiane,charolette,carri,asha,angella,paola,ninfa,leda,stefani,shanell,palma,machelle,lissa,kecia,kathryne,karlene,julissa,jettie,jenniffer,corrina,carolann,alena,rosaria,myrtice,marylee,liane,kenyatta,judie,janey,elmira,eldora,denna,cristi,cathi,zaida,vonnie,viva,vernie,rosaline,mariela,luciana,lesli,karan,felice,deneen,adina,wynona,tarsha,sheron,shanita,shani,shandra,randa,pinkie,nelida,marilou,lyla,laurene,laci,janene,dorotha,daniele,dani,carolynn,carlyn,berenice,ayesha,anneliese,alethea,thersa,tamiko,rufina,oliva,mozell,marylyn,kristian,kathyrn,kasandra,kandace,janae,domenica,debbra,dannielle,chun,arcelia,zenobia,sharen,sharee,lavinia,kacie,jackeline,huong,felisa,emelia,eleanora,cythia,cristin,claribel,anastacia,zulma,zandra,yoko,tenisha,susann,sherilyn,shay,shawanda,romana,mathilda,linsey,keiko,joana,isela,gretta,georgetta,eugenie,desirae,delora,corazon,antonina,anika,willene,tracee,tamatha,nichelle,mickie,maegan,luana,lanita,kelsie,edelmira,bree,afton,teodora,tamie,shena,linh,keli,kaci,danyelle,arlette,albertine,adelle,tiffiny,simona,nicolasa,nichol,nakisha,maira,loreen,kizzy,fallon,christene,bobbye,ying,vincenza,tanja,rubie,roni,queenie,margarett,kimberli,irmgard,idell,hilma,evelina,esta,emilee,dennise,dania,carie,risa,rikki,particia,masako,luvenia,loree,loni,lien,gigi,florencia,denita,billye,tomika,sharita,rana,nikole,neoma,margarite,madalyn,lucina,laila,kali,jenette,gabriele,evelyne,elenora,clementina,alejandrina,zulema,violette,vannessa,thresa,retta,patience,noella,nickie,jonell,chaya,camelia,bethel,anya,suzann,mila,lilla,laverna,keesha,kattie,georgene,eveline,estell,elizbeth,vivienne,vallie,trudie,stephane,magaly,madie,kenyetta,karren,janetta,hermine,drucilla,debbi,celestina,candie,britni,beckie,amina,zita,yolande,vivien,vernetta,trudi,pearle,patrina,ossie,nicolle,loyce,letty,katharina,joselyn,jonelle,jenell,iesha,heide,florinda,florentina,elodia,dorine,brunilda,brigid,ashli,ardella,twana,tarah,shavon,serina,rayna,ramonita,margurite,lucrecia,kourtney,kati,jesenia,crista,ayana,alica,alia,vinnie,suellen,romelia,rachell,olympia,michiko,kathaleen,jolie,jessi,janessa,hana,elease,carletta,britany,shona,salome,rosamond,regena,raina,ngoc,nelia,louvenia,lesia,latrina,laticia,larhonda,jina,jacki,emmy,deeann,coretta,arnetta,thalia,shanice,neta,mikki,micki,lonna,leana,lashunda,kiley,joye,jacqulyn,ignacia,hyun,hiroko,henriette,elayne,delinda,dahlia,coreen,consuela,conchita,babette,ayanna,anette,albertina,shawnee,shaneka,quiana,pamelia,merri,merlene,margit,kiesha,kiera,kaylene,jodee,jenise,erlene,emmie,dalila,daisey,casie,belia,babara,versie,vanesa,shelba,shawnda,nikia,naoma,marna,margeret,madaline,lawana,kindra,jutta,jazmine,janett,hannelore,glendora,gertrud,garnett,freeda,frederica,florance,flavia,carline,beverlee,anjanette,valda,tamala,shonna,sarina,oneida,merilyn,marleen,lurline,lenna,katherin,jeni,gracia,glady,farah,enola,dominque,devona,delana,cecila,caprice,alysha,alethia,vena,theresia,tawny,shakira,samara,sachiko,rachele,pamella,marni,mariel,maren,malisa,ligia,lera,latoria,larae,kimber,kathern,karey,jennefer,janeth,halina,fredia,delisa,debroah,ciera,angelika,andree,altha,vivan,terresa,tanna,sudie,signe,salena,ronni,rebbecca,myrtie,malika,maida,leonarda,kayleigh,ethyl,ellyn,dayle,cammie,brittni,birgit,avelina,asuncion,arianna,akiko,venice,tyesha,tonie,tiesha,takisha,steffanie,sindy,meghann,manda,macie,kellye,kellee,joslyn,inger,indira,glinda,glennis,fernanda,faustina,eneida,elicia,digna,dell,arletta,willia,tammara,tabetha,sherrell,sari,rebbeca,pauletta,natosha,nakita,mammie,kenisha,kazuko,kassie,earlean,daphine,corliss,clotilde,carolyne,bernetta,augustina,audrea,annis,annabell,tennille,tamica,selene,rosana,regenia,qiana,markita,macy,leeanne,laurine,jessenia,janita,georgine,genie,emiko,elvie,deandra,dagmar,corie,collen,cherish,romaine,porsha,pearlene,micheline,merna,margorie,margaretta,lore,jenine,hermina,fredericka,elke,drusilla,dorathy,dione,celena,brigida,allegra,tamekia,synthia,sook,slyvia,rosann,reatha,raye,marquetta,margart,ling,layla,kymberly,kiana,kayleen,katlyn,karmen,joella,emelda,eleni,detra,clemmie,cheryll,chantell,cathey,arnita,arla,angle,angelic,alyse,zofia,thomasine,tennie,sherly,sherley,sharyl,remedios,petrina,nickole,myung,myrle,mozella,louanne,lisha,latia,krysta,julienne,jeanene,jacqualine,isaura,gwenda,earleen,cleopatra,carlie,audie,antonietta,alise,verdell,tomoko,thao,talisha,shemika,savanna,santina,rosia,raeann,odilia,nana,minna,magan,lynelle,karma,joeann,ivana,inell,ilana,gudrun,dreama,crissy,chante,carmelina,arvilla,annamae,alvera,aleida,yanira,vanda,tianna,stefania,shira,nicol,nancie,monserrate,melynda,melany,lovella,laure,kacy,jacquelynn,hyon,gertha,eliana,christena,christeen,charise,caterina,carley,candyce,arlena,ammie,willette,vanita,tuyet,syreeta,penney,nyla,maryam,marya,magen,ludie,loma,livia,lanell,kimberlie,julee,donetta,diedra,denisha,deane,dawne,clarine,cherryl,bronwyn,alla,valery,tonda,sueann,soraya,shoshana,shela,sharleen,shanelle,nerissa,meridith,mellie,maye,maple,magaret,lili,leonila,leonie,leeanna,lavonia,lavera,kristel,kathey,kathe,jann,ilda,hildred,hildegarde,genia,fumiko,evelin,ermelinda,elly,dung,doloris,dionna,danae,berneice,annice,alix,verena,verdie,shawnna,shawana,shaunna,rozella,randee,ranae,milagro,lynell,luise,loida,lisbeth,karleen,junita,jona,isis,hyacinth,hedy,gwenn,ethelene,erline,donya,domonique,delicia,dannette,cicely,branda,blythe,bethann,ashlyn,annalee,alline,yuko,vella,trang,towanda,tesha,sherlyn,narcisa,miguelina,meri,maybell,marlana,marguerita,madlyn,lory,loriann,leonore,leighann,laurice,latesha,laronda,katrice,kasie,kaley,jadwiga,glennie,gearldine,francina,epifania,dyan,dorie,diedre,denese,demetrice,delena,cristie,cleora,catarina,carisa,barbera,almeta,trula,tereasa,solange,sheilah,shavonne,sanora,rochell,mathilde,margareta,maia,lynsey,lawanna,launa,kena,keena,katia,glynda,gaylene,elvina,elanor,danuta,danika,cristen,cordie,coletta,clarita,carmon,brynn,azucena,aundrea,angele,verlie,verlene,tamesha,silvana,sebrina,samira,reda,raylene,penni,norah,noma,mireille,melissia,maryalice,laraine,kimbery,karyl,karine,jolanda,johana,jesusa,jaleesa,jacquelyne,iluminada,hilaria,hanh,gennie,francie,floretta,exie,edda,drema,delpha,barbar,assunta,ardell,annalisa,alisia,yukiko,yolando,wonda,waltraud,veta,temeka,tameika,shirleen,shenita,piedad,ozella,mirtha,marilu,kimiko,juliane,jenice,janay,jacquiline,hilde,elois,echo,devorah,chau,brinda,betsey,arminda,aracelis,apryl,annett,alishia,veola,usha,toshiko,theola,tashia,talitha,shery,renetta,reiko,rasheeda,obdulia,mika,melaine,meggan,marlen,marget,marceline,mana,magdalen,librada,lezlie,latashia,lasandra,kelle,isidra,inocencia,gwyn,francoise,erminia,erinn,dimple,devora,criselda,armanda,arie,ariane,angelena,aliza,adriene,adaline,xochitl,twanna,tomiko,tamisha,taisha,susy,rutha,rhona,noriko,natashia,merrie,marinda,mariko,margert,loris,lizzette,leisha,kaila,joannie,jerrica,jene,jannet,janee,jacinda,herta,elenore,doretta,delaine,daniell,claudie,britta,apolonia,amberly,alease,yuri,waneta,tomi,sharri,sandie,roselle,reynalda,raguel,phylicia,patria,olimpia,odelia,mitzie,minda,mignon,mica,mendy,marivel,maile,lynetta,lavette,lauryn,latrisha,lakiesha,kiersten,kary,josphine,jolyn,jetta,janise,jacquie,ivelisse,glynis,gianna,gaynelle,danyell,danille,dacia,coralee,cher,ceola,arianne,aleshia,yung,williemae,trinh,thora,sherika,shemeka,shaunda,roseline,ricki,melda,mallie,lavonna,latina,laquanda,lala,lachelle,klara,kandis,johna,jeanmarie,jaye,grayce,gertude,emerita,ebonie,clorinda,ching,chery,carola,breann,blossom,bernardine,becki,arletha,argelia,alita,yulanda,yessenia,tobi,tasia,sylvie,shirl,shirely,shella,shantelle,sacha,rebecka,providencia,paulene,misha,miki,marline,marica,lorita,latoyia,lasonya,kerstin,kenda,keitha,kathrin,jaymie,gricelda,ginette,eryn,elina,elfrieda,danyel,cheree,chanelle,barrie,aurore,annamaria,alleen,ailene,aide,yasmine,vashti,treasa,tiffaney,sheryll,sharie,shanae,raisa,neda,mitsuko,mirella,milda,maryanna,maragret,mabelle,luetta,lorina,letisha,latarsha,lanelle,lajuana,krissy,karly,karena,jessika,jerica,jeanelle,jalisa,jacelyn,izola,euna,etha,domitila,dominica,daina,creola,carli,camie,brittny,ashanti,anisha,aleen,adah,yasuko,valrie,tona,tinisha,terisa,taneka,simonne,shalanda,serita,ressie,refugia,olene,margherita,mandie,maire,lyndia,luci,lorriane,loreta,leonia,lavona,lashawnda,lakia,kyoko,krystina,krysten,kenia,kelsi,jeanice,isobel,georgiann,genny,felicidad,eilene,deloise,deedee,conception,clora,cherilyn,calandra,armandina,anisa,tiera,theressa,stephania,sima,shyla,shonta,shera,shaquita,shala,rossana,nohemi,nery,moriah,melita,melida,melani,marylynn,marisha,mariette,malorie,madelene,ludivina,loria,lorette,loralee,lianne,lavenia,laurinda,lashon,kimi,keila,katelynn,jone,joane,jayna,janella,hertha,francene,elinore,despina,delsie,deedra,clemencia,carolin,bulah,brittanie,blondell,bibi,beaulah,beata,annita,agripina,virgen,valene,twanda,tommye,tarra,tari,tammera,shakia,sadye,ruthanne,rochel,rivka,pura,nenita,natisha,ming,merrilee,melodee,marvis,lucilla,leena,laveta,larita,lanie,keren,ileen,georgeann,genna,frida,eufemia,emely,edyth,deonna,deadra,darlena,chanell,cathern,cassondra,cassaundra,bernarda,berna,arlinda,anamaria,vertie,valeri,torri,stasia,sherise,sherill,sanda,ruthe,rosy,robbi,ranee,quyen,pearly,palmira,onita,nisha,niesha,nida,merlyn,mayola,marylouise,marth,margene,madelaine,londa,leontine,leoma,leia,lauralee,lanora,lakita,kiyoko,keturah,katelin,kareen,jonie,johnette,jenee,jeanett,izetta,hiedi,heike,hassie,giuseppina,georgann,fidela,fernande,elwanda,ellamae,eliz,dusti,dotty,cyndy,coralie,celesta,alverta,xenia,wava,vanetta,torrie,tashina,tandy,tambra,tama,stepanie,shila,shaunta,sharan,shaniqua,shae,setsuko,serafina,sandee,rosamaria,priscila,olinda,nadene,muoi,michelina,mercedez,maryrose,marcene,magali,mafalda,lannie,kayce,karoline,kamilah,kamala,justa,joline,jennine,jacquetta,iraida,georgeanna,franchesca,emeline,elane,ehtel,earlie,dulcie,dalene,classie,chere,charis,caroyln,carmina,carita,bethanie,ayako,arica,alysa,alessandra,akilah,adrien,zetta,youlanda,yelena,yahaira,xuan,wendolyn,tijuana,terina,teresia,suzi,sherell,shavonda,shaunte,sharda,shakita,sena,ryann,rubi,riva,reginia,rachal,parthenia,pamula,monnie,monet,michaele,melia,malka,maisha,lisandra,lekisha,lean,lakendra,krystin,kortney,kizzie,kittie,kera,kendal,kemberly,kanisha,julene,jule,johanne,jamee,halley,gidget,fredricka,fleta,fatimah,eusebia,elza,eleonore,dorthey,doria,donella,dinorah,delorse,claretha,christinia,charlyn,bong,belkis,azzie,andera,aiko,adena,yajaira,vania,ulrike,toshia,tifany,stefany,shizue,shenika,shawanna,sharolyn,sharilyn,shaquana,shantay,rozanne,roselee,remona,reanna,raelene,phung,petronila,natacha,nancey,myrl,miyoko,miesha,merideth,marvella,marquitta,marhta,marchelle,lizeth,libbie,lahoma,ladawn,kina,katheleen,katharyn,karisa,kaleigh,junie,julieann,johnsie,janean,jaimee,jackqueline,hisako,herma,helaine,gwyneth,gita,eustolia,emelina,elin,edris,donnette,donnetta,dierdre,denae,darcel,clarisa,cinderella,chia,charlesetta,charita,celsa,cassy,cassi,carlee,bruna,brittaney,brande,billi,antonetta,angla,angelyn,analisa,alane,wenona,wendie,veronique,vannesa,tobie,tempie,sumiko,sulema,somer,sheba,sharice,shanel,shalon,rosio,roselia,renay,rema,reena,ozie,oretha,oralee,ngan,nakesha,milly,marybelle,margrett,maragaret,manie,lurlene,lillia,lieselotte,lavelle,lashaunda,lakeesha,kaycee,kalyn,joya,joette,jenae,janiece,illa,grisel,glayds,genevie,gala,fredda,eleonor,debera,deandrea,corrinne,cordia,contessa,colene,cleotilde,chantay,cecille,beatris,azalee,arlean,ardath,anjelica,anja,alfredia,aleisha,zada,yuonne,xiao,willodean,vennie,vanna,tyisha,tova,torie,tonisha,tilda,tien,sirena,sherril,shanti,shan,senaida,samella,robbyn,renda,reita,phebe,paulita,nobuko,nguyet,neomi,mikaela,melania,maximina,marg,maisie,lynna,lilli,lashaun,lakenya,lael,kirstie,kathline,kasha,karlyn,karima,jovan,josefine,jennell,jacqui,jackelyn,hien,grazyna,florrie,floria,eleonora,dwana,dorla,delmy,deja,dede,dann,crysta,clelia,claris,chieko,cherlyn,cherelle,charmain,chara,cammy,arnette,ardelle,annika,amiee,amee,allena,yvone,yuki,yoshie,yevette,yael,willetta,voncile,venetta,tula,tonette,timika,temika,telma,teisha,taren,stacee,shawnta,saturnina,ricarda,pasty,onie,nubia,marielle,mariella,marianela,mardell,luanna,loise,lisabeth,lindsy,lilliana,lilliam,lelah,leigha,leanora,kristeen,khalilah,keeley,kandra,junko,joaquina,jerlene,jani,jamika,hsiu,hermila,genevive,evia,eugena,emmaline,elfreda,elene,donette,delcie,deeanna,darcey,clarinda,cira,chae,celinda,catheryn,casimira,carmelia,camellia,breana,bobette,bernardina,bebe,basilia,arlyne,amal,alayna,zonia,zenia,yuriko,yaeko,wynell,willena,vernia,tora,terrilyn,terica,tenesha,tawna,tajuana,taina,stephnie,sona,sina,shondra,shizuko,sherlene,sherice,sharika,rossie,rosena,rima,rheba,renna,natalya,nancee,melodi,meda,matha,marketta,maricruz,marcelene,malvina,luba,louetta,leida,lecia,lauran,lashawna,laine,khadijah,katerine,kasi,kallie,julietta,jesusita,jestine,jessia,jeffie,janyce,isadora,georgianne,fidelia,evita,eura,eulah,estefana,elsy,eladia,dodie,denisse,deloras,delila,daysi,crystle,concha,claretta,charlsie,charlena,carylon,bettyann,asley,ashlea,amira,agueda,agnus,yuette,vinita,victorina,tynisha,treena,toccara,tish,thomasena,tegan,soila,shenna,sharmaine,shantae,shandi,saran,sarai,sana,rosette,rolande,regine,otelia,olevia,nicholle,necole,naida,myrta,myesha,mitsue,minta,mertie,margy,mahalia,madalene,loura,lorean,lesha,leonida,lenita,lavone,lashell,lashandra,lamonica,kimbra,katherina,karry,kanesha,jong,jeneva,jaquelyn,gilma,ghislaine,gertrudis,fransisca,fermina,ettie,etsuko,ellan,elidia,edra,dorethea,doreatha,denyse,deetta,daine,cyrstal,corrin,cayla,carlita,camila,burma,bula,buena,barabara,avril,alaine,zana,wilhemina,wanetta,verline,vasiliki,tonita,tisa,teofila,tayna,taunya,tandra,takako,sunni,suanne,sixta,sharell,seema,rosenda,robena,raymonde,pamila,ozell,neida,mistie,micha,merissa,maurita,maryln,maryetta,marcell,malena,makeda,lovetta,lourie,lorrine,lorilee,laurena,lashay,larraine,laree,lacresha,kristle,keva,keira,karole,joie,jinny,jeannetta,jama,heidy,gilberte,gema,faviola,evelynn,enda,elli,ellena,divina,dagny,collene,codi,cindie,chassidy,chasidy,catrice,catherina,cassey,caroll,carlena,candra,calista,bryanna,britteny,beula,bari,audrie,audria,ardelia,annelle,angila,alona,allyn".split(","),surnames:"smith,johnson,williams,jones,brown,davis,miller,wilson,moore,taylor,anderson,jackson,white,harris,martin,thompson,garcia,martinez,robinson,clark,rodriguez,lewis,lee,walker,hall,allen,young,hernandez,king,wright,lopez,hill,green,adams,baker,gonzalez,nelson,carter,mitchell,perez,roberts,turner,phillips,campbell,parker,evans,edwards,collins,stewart,sanchez,morris,rogers,reed,cook,morgan,bell,murphy,bailey,rivera,cooper,richardson,cox,howard,ward,torres,peterson,gray,ramirez,watson,brooks,sanders,price,bennett,wood,barnes,ross,henderson,coleman,jenkins,perry,powell,long,patterson,hughes,flores,washington,butler,simmons,foster,gonzales,bryant,alexander,griffin,diaz,hayes,myers,ford,hamilton,graham,sullivan,wallace,woods,cole,west,owens,reynolds,fisher,ellis,harrison,gibson,mcdonald,cruz,marshall,ortiz,gomez,murray,freeman,wells,webb,simpson,stevens,tucker,porter,hicks,crawford,boyd,mason,morales,kennedy,warren,dixon,ramos,reyes,burns,gordon,shaw,holmes,rice,robertson,hunt,black,daniels,palmer,mills,nichols,grant,knight,ferguson,stone,hawkins,dunn,perkins,hudson,spencer,gardner,stephens,payne,pierce,berry,matthews,arnold,wagner,willis,watkins,olson,carroll,duncan,snyder,hart,cunningham,lane,andrews,ruiz,harper,fox,riley,armstrong,carpenter,weaver,greene,elliott,chavez,sims,peters,kelley,franklin,lawson,fields,gutierrez,schmidt,carr,vasquez,castillo,wheeler,chapman,montgomery,richards,williamson,johnston,banks,meyer,bishop,mccoy,howell,alvarez,morrison,hansen,fernandez,garza,harvey,burton,nguyen,jacobs,reid,fuller,lynch,garrett,romero,welch,larson,frazier,burke,hanson,mendoza,moreno,bowman,medina,fowler,brewer,hoffman,carlson,silva,pearson,holland,fleming,jensen,vargas,byrd,davidson,hopkins,herrera,wade,soto,walters,neal,caldwell,lowe,jennings,barnett,graves,jimenez,horton,shelton,barrett,obrien,castro,sutton,mckinney,lucas,miles,rodriquez,chambers,holt,lambert,fletcher,watts,bates,hale,rhodes,pena,beck,newman,haynes,mcdaniel,mendez,bush,vaughn,parks,dawson,santiago,norris,hardy,steele,curry,powers,schultz,barker,guzman,page,munoz,ball,keller,chandler,weber,walsh,lyons,ramsey,wolfe,schneider,mullins,benson,sharp,bowen,barber,cummings,hines,baldwin,griffith,valdez,hubbard,salazar,reeves,warner,stevenson,burgess,santos,tate,cross,garner,mann,mack,moss,thornton,mcgee,farmer,delgado,aguilar,vega,glover,manning,cohen,harmon,rodgers,robbins,newton,blair,higgins,ingram,reese,cannon,strickland,townsend,potter,goodwin,walton,rowe,hampton,ortega,patton,swanson,goodman,maldonado,yates,becker,erickson,hodges,rios,conner,adkins,webster,malone,hammond,flowers,cobb,moody,quinn,pope,osborne,mccarthy,guerrero,estrada,sandoval,gibbs,gross,fitzgerald,stokes,doyle,saunders,wise,colon,gill,alvarado,greer,padilla,waters,nunez,ballard,schwartz,mcbride,houston,christensen,klein,pratt,briggs,parsons,mclaughlin,zimmerman,buchanan,moran,copeland,pittman,brady,mccormick,holloway,brock,poole,logan,bass,marsh,drake,wong,jefferson,morton,abbott,sparks,norton,huff,massey,figueroa,carson,bowers,roberson,barton,tran,lamb,harrington,boone,cortez,clarke,mathis,singleton,wilkins,cain,underwood,hogan,mckenzie,collier,luna,phelps,mcguire,bridges,wilkerson,nash,summers,atkins,wilcox,pitts,conley,marquez,burnett,cochran,chase,davenport,hood,gates,ayala,sawyer,vazquez,dickerson,hodge,acosta,flynn,espinoza,nicholson,monroe,wolf,morrow,whitaker,oconnor,skinner,ware,molina,kirby,huffman,gilmore,dominguez,oneal,lang,combs,kramer,hancock,gallagher,gaines,shaffer,wiggins,mathews,mcclain,fischer,wall,melton,hensley,bond,dyer,grimes,contreras,wyatt,baxter,snow,mosley,shepherd,larsen,hoover,beasley,petersen,whitehead,meyers,garrison,shields,horn,savage,olsen,schroeder,hartman,woodard,mueller,kemp,deleon,booth,patel,calhoun,wiley,eaton,cline,navarro,harrell,humphrey,parrish,duran,hutchinson,hess,dorsey,bullock,robles,beard,dalton,avila,rich,blackwell,johns,blankenship,trevino,salinas,campos,pruitt,callahan,montoya,hardin,guerra,mcdowell,stafford,gallegos,henson,wilkinson,booker,merritt,atkinson,orr,decker,hobbs,tanner,knox,pacheco,stephenson,glass,rojas,serrano,marks,hickman,sweeney,strong,mcclure,conway,roth,maynard,farrell,lowery,hurst,nixon,weiss,trujillo,ellison,sloan,juarez,winters,mclean,boyer,villarreal,mccall,gentry,carrillo,ayers,lara,sexton,pace,hull,leblanc,browning,velasquez,leach,chang,sellers,herring,noble,foley,bartlett,mercado,landry,durham,walls,barr,mckee,bauer,rivers,bradshaw,pugh,velez,rush,estes,dodson,morse,sheppard,weeks,camacho,bean,barron,livingston,middleton,spears,branch,blevins,chen,kerr,mcconnell,hatfield,harding,solis,frost,giles,blackburn,pennington,woodward,finley,mcintosh,koch,mccullough,blanchard,rivas,brennan,mejia,kane,benton,buckley,valentine,maddox,russo,mcknight,buck,moon,mcmillan,crosby,berg,dotson,mays,roach,chan,richmond,meadows,faulkner,oneill,knapp,kline,ochoa,jacobson,gay,hendricks,horne,shepard,hebert,cardenas,mcintyre,waller,holman,donaldson,cantu,morin,gillespie,fuentes,tillman,bentley,peck,key,salas,rollins,gamble,dickson,santana,cabrera,cervantes,howe,hinton,hurley,spence,zamora,yang,mcneil,suarez,petty,gould,mcfarland,sampson,carver,bray,macdonald,stout,hester,melendez,dillon,farley,hopper,galloway,potts,joyner,stein,aguirre,osborn,mercer,bender,franco,rowland,sykes,pickett,sears,mayo,dunlap,hayden,wilder,mckay,coffey,mccarty,ewing,cooley,vaughan,bonner,cotton,holder,stark,ferrell,cantrell,fulton,lott,calderon,pollard,hooper,burch,mullen,fry,riddle,levy,duke,odonnell,britt,daugherty,berger,dillard,alston,frye,riggs,chaney,odom,duffy,fitzpatrick,valenzuela,mayer,alford,mcpherson,acevedo,barrera,cote,reilly,compton,mooney,mcgowan,craft,clemons,wynn,nielsen,baird,stanton,snider,rosales,bright,witt,hays,holden,rutledge,kinney,clements,castaneda,slater,hahn,burks,delaney,pate,lancaster,sharpe,whitfield,talley,macias,burris,ratliff,mccray,madden,kaufman,beach,goff,cash,bolton,mcfadden,levine,byers,kirkland,kidd,workman,carney,mcleod,holcomb,finch,sosa,haney,franks,sargent,nieves,downs,rasmussen,bird,hewitt,foreman,valencia,oneil,delacruz,vinson,dejesus,hyde,forbes,gilliam,guthrie,wooten,huber,barlow,boyle,mcmahon,buckner,rocha,puckett,langley,knowles,cooke,velazquez,whitley,vang,shea,rouse,hartley,mayfield,elder,rankin,hanna,cowan,lucero,arroyo,slaughter,haas,oconnell,minor,boucher,archer,boggs,dougherty,andersen,newell,crowe,wang,friedman,bland,swain,holley,pearce,childs,yarbrough,galvan,proctor,meeks,lozano,mora,rangel,bacon,villanueva,schaefer,rosado,helms,boyce,goss,stinson,ibarra,hutchins,covington,crowley,hatcher,mackey,bunch,womack,polk,dodd,childress,childers,villa,springer,mahoney,dailey,belcher,lockhart,griggs,costa,brandt,walden,moser,tatum,mccann,akers,lutz,pryor,orozco,mcallister,lugo,davies,shoemaker,rutherford,newsome,magee,chamberlain,blanton,simms,godfrey,flanagan,crum,cordova,escobar,downing,sinclair,donahue,krueger,mcginnis,gore,farris,webber,corbett,andrade,starr,lyon,yoder,hastings,mcgrath,spivey,krause,harden,crabtree,kirkpatrick,arrington,ritter,mcghee,bolden,maloney,gagnon,dunbar,ponce,pike,mayes,beatty,mobley,kimball,butts,montes,eldridge,braun,hamm,gibbons,moyer,manley,herron,plummer,elmore,cramer,rucker,pierson,fontenot,rubio,goldstein,elkins,wills,novak,hickey,worley,gorman,katz,dickinson,broussard,woodruff,crow,britton,nance,lehman,bingham,zuniga,whaley,shafer,coffman,steward,delarosa,neely,mata,davila,mccabe,kessler,hinkle,welsh,pagan,goldberg,goins,crouch,cuevas,quinones,mcdermott,hendrickson,samuels,denton,bergeron,ivey,locke,haines,snell,hoskins,byrne,arias,corbin,beltran,chappell,downey,dooley,tuttle,couch,payton,mcelroy,crockett,groves,cartwright,dickey,mcgill,dubois,muniz,tolbert,dempsey,cisneros,sewell,latham,vigil,tapia,rainey,norwood,stroud,meade,tipton,kuhn,hilliard,bonilla,teague,gunn,greenwood,correa,reece,pineda,phipps,frey,kaiser,ames,gunter,schmitt,milligan,espinosa,bowden,vickers,lowry,pritchard,costello,piper,mcclellan,lovell,sheehan,hatch,dobson,singh,jeffries,hollingsworth,sorensen,meza,fink,donnelly,burrell,tomlinson,colbert,billings,ritchie,helton,sutherland,peoples,mcqueen,thomason,givens,crocker,vogel,robison,dunham,coker,swartz,keys,ladner,richter,hargrove,edmonds,brantley,albright,murdock,boswell,muller,quintero,padgett,kenney,daly,connolly,inman,quintana,lund,barnard,villegas,simons,huggins,tidwell,sanderson,bullard,mcclendon,duarte,draper,marrero,dwyer,abrams,stover,goode,fraser,crews,bernal,godwin,conklin,mcneal,baca,esparza,crowder,bower,brewster,mcneill,rodrigues,leal,coates,raines,mccain,mccord,miner,holbrook,swift,dukes,carlisle,aldridge,ackerman,starks,ricks,holliday,ferris,hairston,sheffield,lange,fountain,doss,betts,kaplan,carmichael,bloom,ruffin,penn,kern,bowles,sizemore,larkin,dupree,seals,metcalf,hutchison,henley,farr,mccauley,hankins,gustafson,curran,waddell,ramey,cates,pollock,cummins,messer,heller,funk,cornett,palacios,galindo,cano,hathaway,pham,enriquez,salgado,pelletier,painter,wiseman,blount,feliciano,houser,doherty,mead,mcgraw,swan,capps,blanco,blackmon,thomson,mcmanus,burkett,gleason,dickens,cormier,voss,rushing,rosenberg,hurd,dumas,benitez,arellano,marin,caudill,bragg,jaramillo,huerta,gipson,colvin,biggs,vela,platt,cassidy,tompkins,mccollum,dolan,daley,crump,sneed,kilgore,grove,grimm,davison,brunson,prater,marcum,devine,dodge,stratton,rosas,choi,tripp,ledbetter,hightower,feldman,epps,yeager,posey,scruggs,cope,stubbs,richey,overton,trotter,sprague,cordero,butcher,stiles,burgos,woodson,horner,bassett,purcell,haskins,akins,ziegler,spaulding,hadley,grubbs,sumner,murillo,zavala,shook,lockwood,driscoll,dahl,thorpe,redmond,putnam,mcwilliams,mcrae,romano,joiner,sadler,hedrick,hager,hagen,fitch,coulter,thacker,mansfield,langston,guidry,ferreira,corley,conn,rossi,lackey,baez,saenz,mcnamara,mcmullen,mckenna,mcdonough,link,engel,browne,roper,peacock,eubanks,drummond,stringer,pritchett,parham,mims,landers,grayson,schafer,egan,timmons,ohara,keen,hamlin,finn,cortes,mcnair,nadeau,moseley,michaud,rosen,oakes,kurtz,jeffers,calloway,beal,bautista,winn,suggs,stern,stapleton,lyles,laird,montano,dawkins,hagan,goldman,bryson,barajas,lovett,segura,metz,lockett,langford,hinson,eastman,hooks,smallwood,shapiro,crowell,whalen,triplett,chatman,aldrich,cahill,youngblood,ybarra,stallings,sheets,reeder,connelly,bateman,abernathy,winkler,wilkes,masters,hackett,granger,gillis,schmitz,sapp,napier,souza,lanier,gomes,weir,otero,ledford,burroughs,babcock,ventura,siegel,dugan,bledsoe,atwood,wray,varner,spangler,anaya,staley,kraft,fournier,belanger,wolff,thorne,bynum,burnette,boykin,swenson,purvis,pina,khan,duvall,darby,xiong,kauffman,healy,engle,benoit,valle,steiner,spicer,shaver,randle,lundy,chin,calvert,staton,neff,kearney,darden,oakley,medeiros,mccracken,crenshaw,perdue,dill,whittaker,tobin,washburn,hogue,goodrich,easley,bravo,dennison,shipley,kerns,jorgensen,crain,villalobos,maurer,longoria,keene,coon,witherspoon,staples,pettit,kincaid,eason,madrid,echols,lusk,stahl,currie,thayer,shultz,mcnally,seay,maher,gagne,barrow,nava,moreland,honeycutt,hearn,diggs,caron,whitten,westbrook,stovall,ragland,munson,meier,looney,kimble,jolly,hobson,goddard,culver,burr,presley,negron,connell,tovar,huddleston,ashby,salter,root,pendleton,oleary,nickerson,myrick,judd,jacobsen,bain,adair,starnes,matos,busby,herndon,hanley,bellamy,doty,bartley,yazzie,rowell,parson,gifford,cullen,christiansen,benavides,barnhart,talbot,mock,crandall,connors,bonds,whitt,gage,bergman,arredondo,addison,lujan,dowdy,jernigan,huynh,bouchard,dutton,rhoades,ouellette,kiser,herrington,hare,blackman,babb,allred,rudd,paulson,ogden,koenig,geiger,begay,parra,lassiter,hawk,esposito,waldron,ransom,prather,chacon,vick,sands,roark,parr,mayberry,greenberg,coley,bruner,whitman,skaggs,shipman,leary,hutton,romo,medrano,ladd,kruse,askew,schulz,alfaro,tabor,mohr,gallo,bermudez,pereira,bliss,reaves,flint,comer,woodall,naquin,guevara,delong,carrier,pickens,tilley,schaffer,knutson,fenton,doran,vogt,vann,prescott,mclain,landis,corcoran,zapata,hyatt,hemphill,faulk,dove,boudreaux,aragon,whitlock,trejo,tackett,shearer,saldana,hanks,mckinnon,koehler,bourgeois,keyes,goodson,foote,lunsford,goldsmith,flood,winslow,sams,reagan,mccloud,hough,esquivel,naylor,loomis,coronado,ludwig,braswell,bearden,huang,fagan,ezell,edmondson,cronin,nunn,lemon,guillory,grier,dubose,traylor,ryder,dobbins,coyle,aponte,whitmore,smalls,rowan,malloy,cardona,braxton,borden,humphries,carrasco,ruff,metzger,huntley,hinojosa,finney,madsen,ernst,dozier,burkhart,bowser,peralta,daigle,whittington,sorenson,saucedo,roche,redding,fugate,avalos,waite,lind,huston,hawthorne,hamby,boyles,boles,regan,faust,crook,beam,barger,hinds,gallardo,willoughby,willingham,eckert,busch,zepeda,worthington,tinsley,hoff,hawley,carmona,varela,rector,newcomb,kinsey,dube,whatley,ragsdale,bernstein,becerra,yost,mattson,felder,cheek,handy,grossman,gauthier,escobedo,braden,beckman,mott,hillman,flaherty,dykes,stockton,stearns,lofton,coats,cavazos,beavers,barrios,tang,mosher,cardwell,coles,burnham,weller,lemons,beebe,aguilera,parnell,harman,couture,alley,schumacher,redd,dobbs,blum,blalock,merchant,ennis,denson,cottrell,brannon,bagley,aviles,watt,sousa,rosenthal,rooney,dietz,blank,paquette,mcclelland,duff,velasco,lentz,grubb,burrows,barbour,ulrich,shockley,rader,beyer,mixon,layton,altman,weathers,stoner,squires,shipp,priest,lipscomb,cutler,caballero,zimmer,willett,thurston,storey,medley,epperson,shah,mcmillian,baggett,torrez,hirsch,dent,poirier,peachey,farrar,creech,barth,trimble,dupre,albrecht,sample,lawler,crisp,conroy,wetzel,nesbitt,murry,jameson,wilhelm,patten,minton,matson,kimbrough,guinn,croft,toth,pulliam,nugent,newby,littlejohn,dias,canales,bernier,baron,singletary,renteria,pruett,mchugh,mabry,landrum,brower,stoddard,cagle,stjohn,scales,kohler,kellogg,hopson,gant,tharp,gann,zeigler,pringle,hammons,fairchild,deaton,chavis,carnes,rowley,matlock,kearns,irizarry,carrington,starkey,lopes,jarrell,craven,baum,littlefield,linn,humphreys,etheridge,cuellar,chastain,bundy,speer,skelton,quiroz,pyle,portillo,ponder,moulton,machado,killian,hutson,hitchcock,dowling,cloud,burdick,spann,pedersen,levin,leggett,hayward,dietrich,beaulieu,barksdale,wakefield,snowden,briscoe,bowie,berman,ogle,mcgregor,laughlin,helm,burden,wheatley,schreiber,pressley,parris,alaniz,agee,swann,snodgrass,schuster,radford,monk,mattingly,harp,girard,cheney,yancey,wagoner,ridley,lombardo,hudgins,gaskins,duckworth,coburn,willey,prado,newberry,magana,hammonds,elam,whipple,slade,serna,ojeda,liles,dorman,diehl,upton,reardon,michaels,goetz,eller,bauman,baer,layne,hummel,brenner,amaya,adamson,ornelas,dowell,cloutier,castellanos,wellman,saylor,orourke,moya,montalvo,kilpatrick,durbin,shell,oldham,kang,garvin,foss,branham,bartholomew,templeton,maguire,holton,rider,monahan,mccormack,beaty,anders,streeter,nieto,nielson,moffett,lankford,keating,heck,gatlin,delatorre,callaway,adcock,worrell,unger,robinette,nowak,jeter,brunner,steen,parrott,overstreet,nobles,montanez,clevenger,brinkley,trahan,quarles,pickering,pederson,jansen,grantham,gilchrist,crespo,aiken,schell,schaeffer,lorenz,leyva,harms,dyson,wallis,pease,leavitt,cheng,cavanaugh,batts,warden,seaman,rockwell,quezada,paxton,linder,houck,fontaine,durant,caruso,adler,pimentel,mize,lytle,cleary,cason,acker,switzer,isaacs,higginbotham,waterman,vandyke,stamper,sisk,shuler,riddick,mcmahan,levesque,hatton,bronson,bollinger,arnett,okeefe,gerber,gannon,farnsworth,baughman,silverman,satterfield,mccrary,kowalski,grigsby,greco,cabral,trout,rinehart,mahon,linton,gooden,curley,baugh,wyman,weiner,schwab,schuler,morrissey,mahan,bunn,thrasher,spear,waggoner,qualls,purdy,mcwhorter,mauldin,gilman,perryman,newsom,menard,martino,graf,billingsley,artis,simpkins,salisbury,quintanilla,gilliland,fraley,foust,crouse,scarborough,grissom,fultz,marlow,markham,madrigal,lawton,barfield,whiting,varney,schwarz,gooch,arce,wheat,truong,poulin,hurtado,selby,gaither,fortner,culpepper,coughlin,brinson,boudreau,bales,stepp,holm,schilling,morrell,kahn,heaton,gamez,causey,turpin,shanks,schrader,meek,isom,hardison,carranza,yanez,scroggins,schofield,runyon,ratcliff,murrell,moeller,irby,currier,butterfield,ralston,pullen,pinson,estep,carbone,hawks,ellington,casillas,spurlock,sikes,motley,mccartney,kruger,isbell,houle,burk,tomlin,quigley,neumann,lovelace,fennell,cheatham,bustamante,skidmore,hidalgo,forman,culp,bowens,betancourt,aquino,robb,milner,martel,gresham,wiles,ricketts,dowd,collazo,bostic,blakely,sherrod,kenyon,gandy,ebert,deloach,allard,sauer,robins,olivares,gillette,chestnut,bourque,paine,hite,hauser,devore,crawley,chapa,talbert,poindexter,meador,mcduffie,mattox,kraus,harkins,choate,wren,sledge,sanborn,kinder,geary,cornwell,barclay,abney,seward,rhoads,howland,fortier,benner,vines,tubbs,troutman,rapp,mccurdy,deluca,westmoreland,havens,guajardo,clary,seal,meehan,herzog,guillen,ashcraft,waugh,renner,milam,elrod,churchill,breaux,bolin,asher,windham,tirado,pemberton,nolen,noland,knott,emmons,cornish,christenson,brownlee,barbee,waldrop,pitt,olvera,lombardi,gruber,gaffney,eggleston,banda,archuleta,slone,prewitt,pfeiffer,nettles,mena,mcadams,henning,gardiner,cromwell,chisholm,burleson,vest,oglesby,mccarter,lumpkin,wofford,vanhorn,thorn,teel,swafford,stclair,stanfield,ocampo,herrmann,hannon,arsenault,roush,mcalister,hiatt,gunderson,forsythe,duggan,delvalle,cintron,wilks,weinstein,uribe,rizzo,noyes,mclendon,gurley,bethea,winstead,maples,guyton,giordano,alderman,valdes,polanco,pappas,lively,grogan,griffiths,bobo,arevalo,whitson,sowell,rendon,fernandes,farrow,benavidez,ayres,alicea,stump,smalley,seitz,schulte,gilley,gallant,canfield,wolford,omalley,mcnutt,mcnulty,mcgovern,hardman,harbin,cowart,chavarria,brink,beckett,bagwell,armstead,anglin,abreu,reynoso,krebs,jett,hoffmann,greenfield,forte,burney,broome,sisson,trammell,partridge,mace,lomax,lemieux,gossett,frantz,fogle,cooney,broughton,pence,paulsen,muncy,mcarthur,hollins,beauchamp,withers,osorio,mulligan,hoyle,dockery,cockrell,begley,amador,roby,rains,lindquist,gentile,everhart,bohannon,wylie,sommers,purnell,fortin,dunning,breeden,vail,phelan,phan,marx,cosby,colburn,boling,biddle,ledesma,gaddis,denney,chow,bueno,berrios,wicker,tolliver,thibodeaux,nagle,lavoie,fisk,crist,barbosa,reedy,locklear,kolb,himes,behrens,beckwith,weems,wahl,shorter,shackelford,rees,muse,cerda,valadez,thibodeau,saavedra,ridgeway,reiter,mchenry,majors,lachance,keaton,ferrara,clemens,blocker,applegate,needham,mojica,kuykendall,hamel,escamilla,doughty,burchett,ainsworth,vidal,upchurch,thigpen,strauss,spruill,sowers,riggins,ricker,mccombs,harlow,buffington,sotelo,olivas,negrete,morey,macon,logsdon,lapointe,bigelow,bello,westfall,stubblefield,lindley,hein,hawes,farrington,breen,birch,wilde,steed,sepulveda,reinhardt,proffitt,minter,messina,mcnabb,maier,keeler,gamboa,donohue,basham,shinn,crooks,cota,borders,bills,bachman,tisdale,tavares,schmid,pickard,gulley,fonseca,delossantos,condon,batista,wicks,wadsworth,martell,littleton,ison,haag,folsom,brumfield,broyles,brito,mireles,mcdonnell,leclair,hamblin,gough,fanning,binder,winfield,whitworth,soriano,palumbo,newkirk,mangum,hutcherson,comstock,carlin,beall,bair,wendt,watters,walling,putman,otoole,morley,mares,lemus,keener,hundley,dial,damico,billups,strother,mcfarlane,lamm,eaves,crutcher,caraballo,canty,atwell,taft,siler,rust,rawls,rawlings,prieto,mcneely,mcafee,hulsey,hackney,galvez,escalante,delagarza,crider,bandy,wilbanks,stowe,steinberg,renfro,masterson,massie,lanham,haskell,hamrick,dehart,burdette,branson,bourne,babin,aleman,worthy,tibbs,smoot,slack,paradis,mull,luce,houghton,gantt,furman,danner,christianson,burge,ashford,arndt,almeida,stallworth,shade,searcy,sager,noonan,mclemore,mcintire,maxey,lavigne,jobe,ferrer,falk,coffin,byrnes,aranda,apodaca,stamps,rounds,peek,olmstead,lewandowski,kaminski,dunaway,bruns,brackett,amato,reich,mcclung,lacroix,koontz,herrick,hardesty,flanders,cousins,cato,cade,vickery,shank,nagel,dupuis,croteau,cotter,stuckey,stine,porterfield,pauley,moffitt,knudsen,hardwick,goforth,dupont,blunt,barrows,barnhill,shull,rash,loftis,lemay,kitchens,horvath,grenier,fuchs,fairbanks,culbertson,calkins,burnside,beattie,ashworth,albertson,wertz,vaught,vallejo,turk,tuck,tijerina,sage,peterman,marroquin,marr,lantz,hoang,demarco,cone,berube,barnette,wharton,stinnett,slocum,scanlon,sander,pinto,mancuso,lima,headley,epstein,counts,clarkson,carnahan,boren,arteaga,adame,zook,whittle,whitehurst,wenzel,saxton,reddick,puente,handley,haggerty,earley,devlin,chaffin,cady,acuna,solano,sigler,pollack,pendergrass,ostrander,janes,francois,crutchfield,chamberlin,brubaker,baptiste,willson,reis,neeley,mullin,mercier,lira,layman,keeling,higdon,espinal,chapin,warfield,toledo,pulido,peebles,nagy,montague,mello,lear,jaeger,hogg,graff,furr,soliz,poore,mendenhall,mclaurin,maestas,gable,barraza,tillery,snead,pond,neill,mcculloch,mccorkle,lightfoot,hutchings,holloman,harness,dorn,bock,zielinski,turley,treadwell,stpierre,starling,somers,oswald,merrick,easterling,bivens,truitt,poston,parry,ontiveros,olivarez,moreau,medlin,lenz,knowlton,fairley,cobbs,chisolm,bannister,woodworth,toler,ocasio,noriega,neuman,moye,milburn,mcclanahan,lilley,hanes,flannery,dellinger,danielson,conti,blodgett,beers,weatherford,strain,karr,hitt,denham,custer,coble,clough,casteel,bolduc,batchelor,ammons,whitlow,tierney,staten,sibley,seifert,schubert,salcedo,mattison,laney,haggard,grooms,dees,cromer,cooks,colson,caswell,zarate,swisher,shin,ragan,pridgen,mcvey,matheny,lafleur,franz,ferraro,dugger,whiteside,rigsby,mcmurray,lehmann,jacoby,hildebrand,hendrick,headrick,goad,fincher,drury,borges,archibald,albers,woodcock,trapp,soares,seaton,monson,luckett,lindberg,kopp,keeton,healey,garvey,gaddy,fain,burchfield,wentworth,strand,stack,spooner,saucier,ricci,plunkett,pannell,ness,leger,freitas,fong,elizondo,duval,beaudoin,urbina,rickard,partin,mcgrew,mcclintock,ledoux,forsyth,faison,devries,bertrand,wasson,tilton,scarbrough,leung,irvine,garber,denning,corral,colley,castleberry,bowlin,bogan,beale,baines,trice,rayburn,parkinson,nunes,mcmillen,leahy,kimmel,higgs,fulmer,carden,bedford,taggart,spearman,prichard,morrill,koonce,heinz,hedges,guenther,grice,findley,dover,creighton,boothe,bayer,arreola,vitale,valles,raney,osgood,hanlon,burley,bounds,worden,weatherly,vetter,tanaka,stiltner,nevarez,mosby,montero,melancon,harter,hamer,goble,gladden,gist,ginn,akin,zaragoza,tarver,sammons,royster,oreilly,muir,morehead,luster,kingsley,kelso,grisham,glynn,baumann,alves,yount,tamayo,paterson,oates,menendez,longo,hargis,gillen,desantis,conover,breedlove,sumpter,scherer,rupp,reichert,heredia,creel,cohn,clemmons,casas,bickford,belton,bach,williford,whitcomb,tennant,sutter,stull,mccallum,langlois,keel,keegan,dangelo,dancy,damron,clapp,clanton,bankston,oliveira,mintz,mcinnis,martens,mabe,laster,jolley,hildreth,hefner,glaser,duckett,demers,brockman,blais,alcorn,agnew,toliver,tice,seeley,najera,musser,mcfall,laplante,galvin,fajardo,doan,coyne,copley,clawson,cheung,barone,wynne,woodley,tremblay,stoll,sparrow,sparkman,schweitzer,sasser,samples,roney,legg,heim,farias,colwell,christman,bratcher,winchester,upshaw,southerland,sorrell,sells,mccloskey,martindale,luttrell,loveless,lovejoy,linares,latimer,embry,coombs,bratton,bostick,venable,tuggle,toro,staggs,sandlin,jefferies,heckman,griffis,crayton,clem,browder,thorton,sturgill,sprouse,royer,rousseau,ridenour,pogue,perales,peeples,metzler,mesa,mccutcheon,mcbee,hornsby,heffner,corrigan,armijo,plante,peyton,paredes,macklin,hussey,hodgson,granados,frias,becnel,batten,almanza,turney,teal,sturgeon,meeker,mcdaniels,limon,keeney,hutto,holguin,gorham,fishman,fierro,blanchette,rodrigue,reddy,osburn,oden,lerma,kirkwood,keefer,haugen,hammett,chalmers,brinkman,baumgartner,zhang,valerio,tellez,steffen,shumate,sauls,ripley,kemper,guffey,evers,craddock,carvalho,blaylock,banuelos,balderas,wheaton,turnbull,shuman,pointer,mosier,mccue,ligon,kozlowski,johansen,ingle,herr,briones,snipes,rickman,pipkin,pantoja,orosco,moniz,lawless,kunkel,hibbard,galarza,enos,bussey,schott,salcido,perreault,mcdougal,mccool,haight,garris,easton,conyers,atherton,wimberly,utley,spellman,smithson,slagle,ritchey,rand,petit,osullivan,oaks,nutt,mcvay,mccreary,mayhew,knoll,jewett,harwood,cardoza,ashe,arriaga,zeller,wirth,whitmire,stauffer,rountree,redden,mccaffrey,martz,larose,langdon,humes,gaskin,faber,devito,cass,almond,wingfield,wingate,villareal,tyner,smothers,severson,reno,pennell,maupin,leighton,janssen,hassell,hallman,halcomb,folse,fitzsimmons,fahey,cranford,bolen,battles,battaglia,wooldridge,trask,rosser,regalado,mcewen,keefe,fuqua,echevarria,caro,boynton,andrus,viera,vanmeter,taber,spradlin,seibert,provost,prentice,oliphant,laporte,hwang,hatchett,hass,greiner,freedman,covert,chilton,byars,wiese,venegas,swank,shrader,roberge,mullis,mortensen,mccune,marlowe,kirchner,keck,isaacson,hostetler,halverson,gunther,griswold,fenner,durden,blackwood,ahrens,sawyers,savoy,nabors,mcswain,mackay,lavender,lash,labbe,jessup,fullerton,cruse,crittenden,correia,centeno,caudle,canady,callender,alarcon,ahern,winfrey,tribble,salley,roden,musgrove,minnick,fortenberry,carrion,bunting,batiste,whited,underhill,stillwell,rauch,pippin,perrin,messenger,mancini,lister,kinard,hartmann,fleck,wilt,treadway,thornhill,spalding,rafferty,pitre,patino,ordonez,linkous,kelleher,homan,galbraith,feeney,curtin,coward,camarillo,buss,bunnell,bolt,beeler,autry,alcala,witte,wentz,stidham,shively,nunley,meacham,martins,lemke,lefebvre,hynes,horowitz,hoppe,holcombe,dunne,derr,cochrane,brittain,bedard,beauregard,torrence,strunk,soria,simonson,shumaker,scoggins,oconner,moriarty,kuntz,ives,hutcheson,horan,hales,garmon,fitts,bohn,atchison,wisniewski,vanwinkle,sturm,sallee,prosser,moen,lundberg,kunz,kohl,keane,jorgenson,jaynes,funderburk,freed,durr,creamer,cosgrove,batson,vanhoose,thomsen,teeter,smyth,redmon,orellana,maness,heflin,goulet,frick,forney,bunker,asbury,aguiar,talbott,southard,mowery,mears,lemmon,krieger,hickson,elston,duong,delgadillo,dayton,dasilva,conaway,catron,bruton,bradbury,bordelon,bivins,bittner,bergstrom,beals,abell,whelan,tejada,pulley,pino,norfleet,nealy,maes,loper,gatewood,frierson,freund,finnegan,cupp,covey,catalano,boehm,bader,yoon,walston,tenney,sipes,rawlins,medlock,mccaskill,mccallister,marcotte,maclean,hughey,henke,harwell,gladney,gilson,chism,caskey,brandenburg,baylor,villasenor,veal,thatcher,stegall,petrie,nowlin,navarrete,lombard,loftin,lemaster,kroll,kovach,kimbrell,kidwell,hershberger,fulcher,cantwell,bustos,boland,bobbitt,binkley,wester,weis,verdin,tong,tiller,sisco,sharkey,seymore,rosenbaum,rohr,quinonez,pinkston,malley,logue,lessard,lerner,lebron,krauss,klinger,halstead,haller,getz,burrow,alger,shores,pfeifer,perron,nelms,munn,mcmaster,mckenney,manns,knudson,hutchens,huskey,goebel,flagg,cushman,click,castellano,carder,bumgarner,wampler,spinks,robson,neel,mcreynolds,mathias,maas,loera,jenson,florez,coons,buckingham,brogan,berryman,wilmoth,wilhite,thrash,shephard,seidel,schulze,roldan,pettis,obryan,maki,mackie,hatley,frazer,fiore,chesser,bottoms,bisson,benefield,allman,wilke,trudeau,timm,shifflett,mundy,milliken,mayers,leake,kohn,huntington,horsley,hermann,guerin,fryer,frizzell,foret,flemming,fife,criswell,carbajal,bozeman,boisvert,angulo,wallen,tapp,silvers,ramsay,oshea,orta,moll,mckeever,mcgehee,linville,kiefer,ketchum,howerton,groce,gass,fusco,corbitt,betz,bartels,amaral,aiello,weddle,sperry,seiler,runyan,raley,overby,osteen,olds,mckeown,matney,lauer,lattimore,hindman,hartwell,fredrickson,fredericks,espino,clegg,carswell,cambell,burkholder,woodbury,welker,totten,thornburg,theriault,stitt,stamm,stackhouse,scholl,saxon,rife,razo,quinlan,pinkerton,olivo,nesmith,nall,mattos,lafferty,justus,giron,geer,fielder,drayton,dortch,conners,conger,boatwright,billiot,barden,armenta,tibbetts,steadman,slattery,rinaldi,raynor,pinckney,pettigrew,milne,matteson,halsey,gonsalves,fellows,durand,desimone,cowley,cowles,brill,barham,barela,barba,ashmore,withrow,valenti,tejeda,spriggs,sayre,salerno,peltier,peel,merriman,matheson,lowman,lindstrom,hyland,giroux,earls,dugas,dabney,collado,briseno,baxley,whyte,wenger,vanover,vanburen,thiel,schindler,schiller,rigby,pomeroy,passmore,marble,manzo,mahaffey,lindgren,laflamme,greathouse,fite,calabrese,bayne,yamamoto,wick,townes,thames,reinhart,peeler,naranjo,montez,mcdade,mast,markley,marchand,leeper,kellum,hudgens,hennessey,hadden,gainey,coppola,borrego,bolling,beane,ault,slaton,pape,null,mulkey,lightner,langer,hillard,ethridge,enright,derosa,baskin,weinberg,turman,somerville,pardo,noll,lashley,ingraham,hiller,hendon,glaze,cothran,cooksey,conte,carrico,abner,wooley,swope,summerlin,sturgis,sturdivant,stott,spurgeon,spillman,speight,roussel,popp,nutter,mckeon,mazza,magnuson,lanning,kozak,jankowski,heyward,forster,corwin,callaghan,bays,wortham,usher,theriot,sayers,sabo,poling,loya,lieberman,laroche,labelle,howes,harr,garay,fogarty,everson,durkin,dominquez,chaves,chambliss,witcher,vieira,vandiver,terrill,stoker,schreiner,moorman,liddell,lawhorn,krug,irons,hylton,hollenbeck,herrin,hembree,goolsby,goodin,gilmer,foltz,dinkins,daughtry,caban,brim,briley,bilodeau,wyant,vergara,tallent,swearingen,stroup,scribner,quillen,pitman,mccants,maxfield,martinson,holtz,flournoy,brookins,brody,baumgardner,straub,sills,roybal,roundtree,oswalt,mcgriff,mcdougall,mccleary,maggard,gragg,gooding,godinez,doolittle,donato,cowell,cassell,bracken,appel,zambrano,reuter,perea,nakamura,monaghan,mickens,mcclinton,mcclary,marler,kish,judkins,gilbreath,freese,flanigan,felts,erdmann,dodds,chew,brownell,boatright,barreto,slayton,sandberg,saldivar,pettway,odum,narvaez,moultrie,montemayor,merrell,lees,keyser,hoke,hardaway,hannan,gilbertson,fogg,dumont,deberry,coggins,buxton,bucher,broadnax,beeson,araujo,appleton,amundson,aguayo,ackley,yocum,worsham,shivers,sanches,sacco,robey,rhoden,pender,ochs,mccurry,madera,luong,knotts,jackman,heinrich,hargrave,gault,comeaux,chitwood,caraway,boettcher,bernhardt,barrientos,zink,wickham,whiteman,thorp,stillman,settles,schoonover,roque,riddell,pilcher,phifer,novotny,macleod,hardee,haase,grider,doucette,clausen,bevins,beamon,badillo,tolley,tindall,soule,snook,seale,pinkney,pellegrino,nowell,nemeth,mondragon,mclane,lundgren,ingalls,hudspeth,hixson,gearhart,furlong,downes,dibble,deyoung,cornejo,camara,brookshire,boyette,wolcott,surratt,sellars,segal,salyer,reeve,rausch,labonte,haro,gower,freeland,fawcett,eads,driggers,donley,collett,bromley,boatman,ballinger,baldridge,volz,trombley,stonge,shanahan,rivard,rhyne,pedroza,matias,jamieson,hedgepeth,hartnett,estevez,eskridge,denman,chiu,chinn,catlett,carmack,buie,bechtel,beardsley,bard,ballou,ulmer,skeen,robledo,rincon,reitz,piazza,munger,moten,mcmichael,loftus,ledet,kersey,groff,fowlkes,crumpton,clouse,bettis,villagomez,timmerman,strom,santoro,roddy,penrod,musselman,macpherson,leboeuf,harless,haddad,guido,golding,fulkerson,fannin,dulaney,dowdell,cottle,ceja,cate,bosley,benge,albritton,voigt,trowbridge,soileau,seely,rohde,pearsall,paulk,orth,nason,mota,mcmullin,marquardt,madigan,hoag,gillum,gabbard,fenwick,danforth,cushing,cress,creed,cazares,bettencourt,barringer,baber,stansberry,schramm,rutter,rivero,oquendo,necaise,mouton,montenegro,miley,mcgough,marra,macmillan,lamontagne,jasso,horst,hetrick,heilman,gaytan,gall,fortney,dingle,desjardins,dabbs,burbank,brigham,breland,beaman,arriola,yarborough,wallin,toscano,stowers,reiss,pichardo,orton,michels,mcnamee,mccrory,leatherman,kell,keister,horning,hargett,guay,ferro,deboer,dagostino,carper,blanks,beaudry,towle,tafoya,stricklin,strader,soper,sonnier,sigmon,schenk,saddler,pedigo,mendes,lunn,lohr,lahr,kingsbury,jarman,hume,holliman,hofmann,haworth,harrelson,hambrick,flick,edmunds,dacosta,crossman,colston,chaplin,carrell,budd,weiler,waits,valentino,trantham,tarr,solorio,roebuck,powe,plank,pettus,pagano,mink,luker,leathers,joslin,hartzell,gambrell,cepeda,carty,caputo,brewington,bedell,ballew,applewhite,warnock,walz,urena,tudor,reel,pigg,parton,mickelson,meagher,mclellan,mcculley,mandel,leech,lavallee,kraemer,kling,kipp,kehoe,hochstetler,harriman,gregoire,grabowski,gosselin,gammon,fancher,edens,desai,brannan,armendariz,woolsey,whitehouse,whetstone,ussery,towne,testa,tallman,studer,strait,steinmetz,sorrells,sauceda,rolfe,paddock,mitchem,mcginn,mccrea,lovato,hazen,gilpin,gaynor,fike,devoe,delrio,curiel,burkhardt,bode,backus,zinn,watanabe,wachter,vanpelt,turnage,shaner,schroder,sato,riordan,quimby,portis,natale,mckoy,mccown,kilmer,hotchkiss,hesse,halbert,gwinn,godsey,delisle,chrisman,canter,arbogast,angell,acree,yancy,woolley,wesson,weatherspoon,trainor,stockman,spiller,sipe,rooks,reavis,propst,porras,neilson,mullens,loucks,llewellyn,kumar,koester,klingensmith,kirsch,kester,honaker,hodson,hennessy,helmick,garrity,garibay,drain,casarez,callis,botello,aycock,avant,wingard,wayman,tully,theisen,szymanski,stansbury,segovia,rainwater,preece,pirtle,padron,mincey,mckelvey,mathes,larrabee,kornegay,klug,ingersoll,hecht,germain,eggers,dykstra,deering,decoteau,deason,dearing,cofield,carrigan,bonham,bahr,aucoin,appleby,almonte,yager,womble,wimmer,weimer,vanderpool,stancil,sprinkle,romine,remington,pfaff,peckham,olivera,meraz,maze,lathrop,koehn,hazelton,halvorson,hallock,haddock,ducharme,dehaven,caruthers,brehm,bosworth,bost,bias,beeman,basile,bane,aikens,wold,walther,tabb,suber,strawn,stocker,shirey,schlosser,riedel,rembert,reimer,pyles,peele,merriweather,letourneau,latta,kidder,hixon,hillis,hight,herbst,henriquez,haygood,hamill,gabel,fritts,eubank,dawes,correll,bushey,buchholz,brotherton,botts,barnwell,auger,atchley,westphal,veilleux,ulloa,stutzman,shriver,ryals,pilkington,moyers,marrs,mangrum,maddux,lockard,laing,kuhl,harney,hammock,hamlett,felker,doerr,depriest,carrasquillo,carothers,bogle,bischoff,bergen,albanese,wyckoff,vermillion,vansickle,thibault,tetreault,stickney,shoemake,ruggiero,rawson,racine,philpot,paschal,mcelhaney,mathison,legrand,lapierre,kwan,kremer,jiles,hilbert,geyer,faircloth,ehlers,egbert,desrosiers,dalrymple,cotten,cashman,cadena,boardman,alcaraz,wyrick,therrien,tankersley,strickler,puryear,plourde,pattison,pardue,mcginty,mcevoy,landreth,kuhns,koon,hewett,giddens,emerick,eades,deangelis,cosme,ceballos,birdsong,benham,bemis,armour,anguiano,welborn,tsosie,storms,shoup,sessoms,samaniego,rood,rojo,rhinehart,raby,northcutt,myer,munguia,morehouse,mcdevitt,mallett,lozada,lemoine,kuehn,hallett,grim,gillard,gaylor,garman,gallaher,feaster,faris,darrow,dardar,coney,carreon,braithwaite,boylan,boyett,bixler,bigham,benford,barragan,barnum,zuber,wyche,westcott,vining,stoltzfus,simonds,shupe,sabin,ruble,rittenhouse,richman,perrone,mulholland,millan,lomeli,kite,jemison,hulett,holler,hickerson,herold,hazelwood,griffen,gause,forde,eisenberg,dilworth,charron,chaisson,bristow,breunig,brace,boutwell,bentz,belk,bayless,batchelder,baran,baeza,zimmermann,weathersby,volk,toole,theis,tedesco,searle,schenck,satterwhite,ruelas,rankins,partida,nesbit,morel,menchaca,levasseur,kaylor,johnstone,hulse,hollar,hersey,harrigan,harbison,guyer,gish,giese,gerlach,geller,geisler,falcone,elwell,doucet,deese,darr,corder,chafin,byler,bussell,burdett,brasher,bowe,bellinger,bastian,barner,alleyne,wilborn,weil,wegner,tatro,spitzer,smithers,schoen,resendez,parisi,overman,obrian,mudd,mahler,maggio,lindner,lalonde,lacasse,laboy,killion,kahl,jessen,jamerson,houk,henshaw,gustin,graber,durst,duenas,davey,cundiff,conlon,colunga,coakley,chiles,capers,buell,bricker,bissonnette,bartz,bagby,zayas,volpe,treece,toombs,thom,terrazas,swinney,skiles,silveira,shouse,senn,ramage,moua,langham,kyles,holston,hoagland,herd,feller,denison,carraway,burford,bickel,ambriz,abercrombie,yamada,weidner,waddle,verduzco,thurmond,swindle,schrock,sanabria,rosenberger,probst,peabody,olinger,nazario,mccafferty,mcbroom,mcabee,mazur,matherne,mapes,leverett,killingsworth,heisler,griego,gosnell,frankel,franke,ferrante,fenn,ehrlich,christopherso,chasse,caton,brunelle,bloomfield,babbitt,azevedo,abramson,ables,abeyta,youmans,wozniak,wainwright,stowell,smitherman,samuelson,runge,rothman,rosenfeld,peake,owings,olmos,munro,moreira,leatherwood,larkins,krantz,kovacs,kizer,kindred,karnes,jaffe,hubbell,hosey,hauck,goodell,erdman,dvorak,doane,cureton,cofer,buehler,bierman,berndt,banta,abdullah,warwick,waltz,turcotte,torrey,stith,seger,sachs,quesada,pinder,peppers,pascual,paschall,parkhurst,ozuna,oster,nicholls,lheureux,lavalley,kimura,jablonski,haun,gourley,gilligan,croy,cotto,cargill,burwell,burgett,buckman,booher,adorno,wrenn,whittemore,urias,szabo,sayles,saiz,rutland,rael,pharr,pelkey,ogrady,nickell,musick,moats,mather,massa,kirschner,kieffer,kellar,hendershot,gott,godoy,gadson,furtado,fiedler,erskine,dutcher,dever,daggett,chevalier,brake,ballesteros,amerson,wingo,waldon,trott,silvey,showers,schlegel,ritz,pepin,pelayo,parsley,palermo,moorehead,mchale,lett,kocher,kilburn,iglesias,humble,hulbert,huckaby,hartford,hardiman,gurney,grigg,grasso,goings,fillmore,farber,depew,dandrea,cowen,covarrubias,burrus,bracy,ardoin,thompkins,standley,radcliffe,pohl,persaud,parenteau,pabon,newson,newhouse,napolitano,mulcahy,malave,keim,hooten,hernandes,heffernan,hearne,greenleaf,glick,fuhrman,fetter,faria,dishman,dickenson,crites,criss,clapper,chenault,castor,casto,bugg,bove,bonney,anderton,allgood,alderson,woodman,warrick,toomey,tooley,tarrant,summerville,stebbins,sokol,searles,schutz,schumann,scheer,remillard,raper,proulx,palmore,monroy,messier,melo,melanson,mashburn,manzano,lussier,jenks,huneycutt,hartwig,grimsley,fulk,fielding,fidler,engstrom,eldred,dantzler,crandell,calder,brumley,breton,brann,bramlett,boykins,bianco,bancroft,almaraz,alcantar,whitmer,whitener,welton,vineyard,rahn,paquin,mizell,mcmillin,mckean,marston,maciel,lundquist,liggins,lampkin,kranz,koski,kirkham,jiminez,hazzard,harrod,graziano,grammer,gendron,garrido,fordham,englert,dryden,demoss,deluna,crabb,comeau,brummett,blume,benally,wessel,vanbuskirk,thorson,stumpf,stockwell,reams,radtke,rackley,pelton,niemi,newland,nelsen,morrissette,miramontes,mcginley,mccluskey,marchant,luevano,lampe,lail,jeffcoat,infante,hinman,gaona,eady,desmarais,decosta,dansby,cisco,choe,breckenridge,bostwick,borg,bianchi,alberts,wilkie,whorton,vargo,tait,soucy,schuman,ousley,mumford,lippert,leath,lavergne,laliberte,kirksey,kenner,johnsen,izzo,hiles,gullett,greenwell,gaspar,galbreath,gaitan,ericson,delapaz,croom,cottingham,clift,bushnell,bice,beason,arrowood,waring,voorhees,truax,shreve,shockey,schatz,sandifer,rubino,rozier,roseberry,pieper,peden,nester,nave,murphey,malinowski,macgregor,lafrance,kunkle,kirkman,hipp,hasty,haddix,gervais,gerdes,gamache,fouts,fitzwater,dillingham,deming,deanda,cedeno,cannady,burson,bouldin,arceneaux,woodhouse,whitford,wescott,welty,weigel,torgerson,toms,surber,sunderland,sterner,setzer,riojas,pumphrey,puga,metts,mcgarry,mccandless,magill,lupo,loveland,llamas,leclerc,koons,kahler,huss,holbert,heintz,haupt,grimmett,gaskill,ellingson,dorr,dingess,deweese,desilva,crossley,cordeiro,converse,conde,caldera,cairns,burmeister,burkhalter,brawner,bott,youngs,vierra,valladares,shrum,shropshire,sevilla,rusk,rodarte,pedraza,nino,merino,mcminn,markle,mapp,lajoie,koerner,kittrell,kato,hyder,hollifield,heiser,hazlett,greenwald,fant,eldredge,dreher,delafuente,cravens,claypool,beecher,aronson,alanis,worthen,wojcik,winger,whitacre,valverde,valdivia,troupe,thrower,swindell,suttles,stroman,spires,slate,shealy,sarver,sartin,sadowski,rondeau,rolon,rascon,priddy,paulino,nolte,munroe,molloy,mciver,lykins,loggins,lenoir,klotz,kempf,hupp,hollowell,hollander,haynie,harkness,harker,gottlieb,frith,eddins,driskell,doggett,densmore,charette,cassady,byrum,burcham,buggs,benn,whitted,warrington,vandusen,vaillancourt,steger,siebert,scofield,quirk,purser,plumb,orcutt,nordstrom,mosely,michalski,mcphail,mcdavid,mccraw,marchese,mannino,lefevre,largent,lanza,kress,isham,hunsaker,hoch,hildebrandt,guarino,grijalva,graybill,fick,ewell,ewald,cusick,crumley,coston,cathcart,carruthers,bullington,bowes,blain,blackford,barboza,yingling,wert,weiland,varga,silverstein,sievers,shuster,shumway,runnels,rumsey,renfroe,provencher,polley,mohler,middlebrooks,kutz,koster,groth,glidden,fazio,deen,chipman,chenoweth,champlin,cedillo,carrero,carmody,buckles,brien,boutin,bosch,berkowitz,altamirano,wilfong,wiegand,waites,truesdale,toussaint,tobey,tedder,steelman,sirois,schnell,robichaud,richburg,plumley,pizarro,piercy,ortego,oberg,neace,mertz,mcnew,matta,lapp,lair,kibler,howlett,hollister,hofer,hatten,hagler,falgoust,engelhardt,eberle,dombrowski,dinsmore,daye,casares,braud,balch,autrey,wendel,tyndall,strobel,stoltz,spinelli,serrato,reber,rathbone,palomino,nickels,mayle,mathers,mach,loeffler,littrell,levinson,leong,lemire,lejeune,lazo,lasley,koller,kennard,hoelscher,hintz,hagerman,greaves,fore,eudy,engler,corrales,cordes,brunet,bidwell,bennet,tyrrell,tharpe,swinton,stribling,southworth,sisneros,savoie,samons,ruvalcaba,ries,ramer,omara,mosqueda,millar,mcpeak,macomber,luckey,litton,lehr,lavin,hubbs,hoard,hibbs,hagans,futrell,exum,evenson,culler,carbaugh,callen,brashear,bloomer,blakeney,bigler,addington,woodford,unruh,tolentino,sumrall,stgermain,smock,sherer,rayner,pooler,oquinn,nero,mcglothlin,linden,kowal,kerrigan,ibrahim,harvell,hanrahan,goodall,geist,fussell,fung,ferebee,eley,eggert,dorsett,dingman,destefano,colucci,clemmer,burnell,brumbaugh,boddie,berryhill,avelar,alcantara,winder,winchell,vandenberg,trotman,thurber,thibeault,stlouis,stilwell,sperling,shattuck,sarmiento,ruppert,rumph,renaud,randazzo,rademacher,quiles,pearman,palomo,mercurio,lowrey,lindeman,lawlor,larosa,lander,labrecque,hovis,holifield,henninger,hawkes,hartfield,hann,hague,genovese,garrick,fudge,frink,eddings,dinh,cribbs,calvillo,bunton,brodeur,bolding,blanding,agosto,zahn,wiener,trussell,tello,teixeira,speck,sharma,shanklin,sealy,scanlan,santamaria,roundy,robichaux,ringer,rigney,prevost,polson,nord,moxley,medford,mccaslin,mcardle,macarthur,lewin,lasher,ketcham,keiser,heine,hackworth,grose,grizzle,gillman,gartner,frazee,fleury,edson,edmonson,derry,cronk,conant,burress,burgin,broom,brockington,bolick,boger,birchfield,billington,baily,bahena,armbruster,anson,yoho,wilcher,tinney,timberlake,thielen,sutphin,stultz,sikora,serra,schulman,scheffler,santillan,rego,preciado,pinkham,mickle,lomas,lizotte,lent,kellerman,keil,johanson,hernadez,hartsfield,haber,gorski,farkas,eberhardt,duquette,delano,cropper,cozart,cockerham,chamblee,cartagena,cahoon,buzzell,brister,brewton,blackshear,benfield,aston,ashburn,arruda,wetmore,weise,vaccaro,tucci,sudduth,stromberg,stoops,showalter,shears,runion,rowden,rosenblum,riffle,renfrow,peres,obryant,leftwich,lark,landeros,kistler,killough,kerley,kastner,hoggard,hartung,guertin,govan,gatling,gailey,fullmer,fulford,flatt,esquibel,endicott,edmiston,edelstein,dufresne,dressler,dickman,chee,busse,bonnett,berard,yoshida,velarde,veach,vanhouten,vachon,tolson,tolman,tennyson,stites,soler,shutt,ruggles,rhone,pegues,neese,muro,moncrief,mefford,mcphee,mcmorris,mceachern,mcclurg,mansour,mader,leija,lecompte,lafountain,labrie,jaquez,heald,hash,hartle,gainer,frisby,farina,eidson,edgerton,dyke,durrett,duhon,cuomo,cobos,cervantez,bybee,brockway,borowski,binion,beery,arguello,amaro,acton,yuen,winton,wigfall,weekley,vidrine,vannoy,tardiff,shoop,shilling,schick,safford,prendergast,pilgrim,pellerin,osuna,nissen,nalley,moller,messner,messick,merrifield,mcguinness,matherly,marcano,mahone,lemos,lebrun,jara,hoffer,herren,hecker,haws,haug,gwin,gober,gilliard,fredette,favela,echeverria,downer,donofrio,desrochers,crozier,corson,bechtold,argueta,aparicio,zamudio,westover,westerman,utter,troyer,thies,tapley,slavin,shirk,sandler,roop,rimmer,raymer,radcliff,otten,moorer,millet,mckibben,mccutchen,mcavoy,mcadoo,mayorga,mastin,martineau,marek,madore,leflore,kroeger,kennon,jimerson,hostetter,hornback,hendley,hance,guardado,granado,gowen,goodale,flinn,fleetwood,fitz,durkee,duprey,dipietro,dilley,clyburn,brawley,beckley,arana,weatherby,vollmer,vestal,tunnell,trigg,tingle,takahashi,sweatt,storer,snapp,shiver,rooker,rathbun,poisson,perrine,perri,parmer,parke,pare,papa,palmieri,midkiff,mecham,mccomas,mcalpine,lovelady,lillard,lally,knopp,kile,kiger,haile,gupta,goldsberry,gilreath,fulks,friesen,franzen,flack,findlay,ferland,dreyer,dore,dennard,deckard,debose,crim,coulombe,chancey,cantor,branton,bissell,barns,woolard,witham,wasserman,spiegel,shoffner,scholz,ruch,rossman,petry,palacio,paez,neary,mortenson,millsap,miele,menke,mckim,mcanally,martines,lemley,larochelle,klaus,klatt,kaufmann,kapp,helmer,hedge,halloran,glisson,frechette,fontana,eagan,distefano,danley,creekmore,chartier,chaffee,carillo,burg,bolinger,berkley,benz,basso,bash,zelaya,woodring,witkowski,wilmot,wilkens,wieland,verdugo,urquhart,tsai,timms,swiger,swaim,sussman,pires,molnar,mcatee,lowder,loos,linker,landes,kingery,hufford,higa,hendren,hammack,hamann,gillam,gerhardt,edelman,delk,deans,curl,constantine,cleaver,claar,casiano,carruth,carlyle,brophy,bolanos,bibbs,bessette,beggs,baugher,bartel,averill,andresen,amin,adames,valente,turnbow,swink,sublett,stroh,stringfellow,ridgway,pugliese,poteat,ohare,neubauer,murchison,mingo,lemmons,kwon,kellam,kean,jarmon,hyden,hudak,hollinger,henkel,hemingway,hasson,hansel,halter,haire,ginsberg,gillispie,fogel,flory,etter,elledge,eckman,deas,currin,crafton,coomer,colter,claxton,bulter,braddock,bowyer,binns,bellows,baskerville,barros,ansley,woolf,wight,waldman,wadley,tull,trull,tesch,stouffer,stadler,slay,shubert,sedillo,santacruz,reinke,poynter,neri,neale,mowry,moralez,monger,mitchum,merryman,manion,macdougall,litchfield,levitt,lepage,lasalle,khoury,kavanagh,karns,ivie,huebner,hodgkins,halpin,garica,eversole,dutra,dunagan,duffey,dillman,dillion,deville,dearborn,damato,courson,coulson,burdine,bousquet,bonin,bish,atencio,westbrooks,wages,vaca,toner,tillis,swett,struble,stanfill,solorzano,slusher,sipple,silvas,shults,schexnayder,saez,rodas,rager,pulver,penton,paniagua,meneses,mcfarlin,mcauley,matz,maloy,magruder,lohman,landa,lacombe,jaimes,holzer,holst,heil,hackler,grundy,gilkey,farnham,durfee,dunton,dunston,duda,dews,craver,corriveau,conwell,colella,chambless,bremer,boutte,bourassa,blaisdell,backman,babineaux,audette,alleman,towner,taveras,tarango,sullins,suiter,stallard,solberg,schlueter,poulos,pimental,owsley,okelley,moffatt,metcalfe,meekins,medellin,mcglynn,mccowan,marriott,marable,lennox,lamoureux,koss,kerby,karp,isenberg,howze,hockenberry,highsmith,hallmark,gusman,greeley,giddings,gaudet,gallup,fleenor,eicher,edington,dimaggio,dement,demello,decastro,bushman,brundage,brooker,bourg,blackstock,bergmann,beaton,banister,argo,appling,wortman,watterson,villalpando,tillotson,tighe,sundberg,sternberg,stamey,shipe,seeger,scarberry,sattler,sain,rothstein,poteet,plowman,pettiford,penland,partain,pankey,oyler,ogletree,ogburn,moton,merkel,lucier,lakey,kratz,kinser,kershaw,josephson,imhoff,hendry,hammon,frisbie,frawley,fraga,forester,eskew,emmert,drennan,doyon,dandridge,cawley,carvajal,bracey,belisle,batey,ahner,wysocki,weiser,veliz,tincher,sansone,sankey,sandstrom,rohrer,risner,pridemore,pfeffer,persinger,peery,oubre,nowicki,musgrave,murdoch,mullinax,mccary,mathieu,livengood,kyser,klink,kimes,kellner,kavanaugh,kasten,imes,hoey,hinshaw,hake,gurule,grube,grillo,geter,gatto,garver,garretson,farwell,eiland,dunford,decarlo,corso,colman,collard,cleghorn,chasteen,cavender,carlile,calvo,byerly,brogdon,broadwater,breault,bono,bergin,behr,ballenger,amick,tamez,stiffler,steinke,simmon,shankle,schaller,salmons,sackett,saad,rideout,ratcliffe,ranson,plascencia,petterson,olszewski,olney,olguin,nilsson,nevels,morelli,montiel,monge,michaelson,mertens,mcchesney,mcalpin,mathewson,loudermilk,lineberry,liggett,kinlaw,kight,jost,hereford,hardeman,halpern,halliday,hafer,gaul,friel,freitag,forsberg,evangelista,doering,dicarlo,dendy,delp,deguzman,dameron,curtiss,cosper,cauthen,bradberry,bouton,bonnell,bixby,bieber,beveridge,bedwell,barhorst,bannon,baltazar,baier,ayotte,attaway,arenas,abrego,turgeon,tunstall,thaxton,tenorio,stotts,sthilaire,shedd,seabolt,scalf,salyers,ruhl,rowlett,robinett,pfister,perlman,pepe,parkman,nunnally,norvell,napper,modlin,mckellar,mcclean,mascarenas,leibowitz,ledezma,kuhlman,kobayashi,hunley,holmquist,hinkley,hazard,hartsell,gribble,gravely,fifield,eliason,doak,crossland,carleton,bridgeman,bojorquez,boggess,auten,woosley,whiteley,wexler,twomey,tullis,townley,standridge,santoyo,rueda,riendeau,revell,pless,ottinger,nigro,nickles,mulvey,menefee,mcshane,mcloughlin,mckinzie,markey,lockridge,lipsey,knisley,knepper,kitts,kiel,jinks,hathcock,godin,gallego,fikes,fecteau,estabrook,ellinger,dunlop,dudek,countryman,chauvin,chatham,bullins,brownfield,boughton,bloodworth,bibb,baucom,barbieri,aubin,armitage,alessi,absher,abbate,zito,woolery,wiggs,wacker,tynes,tolle,telles,tarter,swarey,strode,stockdale,stalnaker,spina,schiff,saari,risley,rameriz,rakes,pettaway,penner,paulus,palladino,omeara,montelongo,melnick,mehta,mcgary,mccourt,mccollough,marchetti,manzanares,lowther,leiva,lauderdale,lafontaine,kowalczyk,knighton,joubert,jaworski,huth,hurdle,housley,hackman,gulick,gordy,gilstrap,gehrke,gebhart,gaudette,foxworth,endres,dunkle,cimino,caddell,brauer,braley,bodine,blackmore,belden,backer,ayer,andress,wisner,vuong,valliere,twigg,tavarez,strahan,steib,staub,sowder,seiber,schutt,scharf,schade,rodriques,risinger,renshaw,rahman,presnell,piatt,nieman,nevins,mcilwain,mcgaha,mccully,mccomb,massengale,macedo,lesher,kearse,jauregui,husted,hudnall,holmberg,hertel,hardie,glidewell,frausto,fassett,dalessandro,dahlgren,corum,constantino,conlin,colquitt,colombo,claycomb,cardin,buller,boney,bocanegra,biggers,benedetto,araiza,andino,albin,zorn,werth,weisman,walley,vanegas,ulibarri,towe,tedford,teasley,suttle,steffens,stcyr,squire,singley,sifuentes,shuck,schram,sass,rieger,ridenhour,rickert,richerson,rayborn,rabe,raab,pendley,pastore,ordway,moynihan,mellott,mckissick,mcgann,mccready,mauney,marrufo,lenhart,lazar,lafave,keele,kautz,jardine,jahnke,jacobo,hord,hardcastle,hageman,giglio,gehring,fortson,duque,duplessis,dicken,derosier,deitz,dalessio,cram,castleman,candelario,callison,caceres,bozarth,biles,bejarano,bashaw,avina,armentrout,alverez,acord,waterhouse,vereen,vanlandingham,strawser,shotwell,severance,seltzer,schoonmaker,schock,schaub,schaffner,roeder,rodrigez,riffe,rasberry,rancourt,railey,quade,pursley,prouty,perdomo,oxley,osterman,nickens,murphree,mounts,merida,maus,mattern,masse,martinelli,mangan,lutes,ludwick,loney,laureano,lasater,knighten,kissinger,kimsey,kessinger,honea,hollingshead,hockett,heyer,heron,gurrola,gove,glasscock,gillett,galan,featherstone,eckhardt,duron,dunson,dasher,culbreth,cowden,cowans,claypoole,churchwell,chabot,caviness,cater,caston,callan,byington,burkey,boden,beckford,atwater,archambault,alvey,alsup,whisenant,weese,voyles,verret,tsang,tessier,sweitzer,sherwin,shaughnessy,revis,remy,prine,philpott,peavy,paynter,parmenter,ovalle,offutt,nightingale,newlin,nakano,myatt,muth,mohan,mcmillon,mccarley,mccaleb,maxson,marinelli,maley,liston,letendre,kain,huntsman,hirst,hagerty,gulledge,greenway,grajeda,gorton,goines,gittens,frederickson,fanelli,embree,eichelberger,dunkin,dixson,dillow,defelice,chumley,burleigh,borkowski,binette,biggerstaff,berglund,beller,audet,arbuckle,allain,alfano,youngman,wittman,weintraub,vanzant,vaden,twitty,stollings,standifer,sines,shope,scalise,saville,posada,pisano,otte,nolasco,mier,merkle,mendiola,melcher,mejias,mcmurry,mccalla,markowitz,manis,mallette,macfarlane,lough,looper,landin,kittle,kinsella,kinnard,hobart,helman,hellman,hartsock,halford,hage,gordan,glasser,gayton,gattis,gastelum,gaspard,frisch,fitzhugh,eckstein,eberly,dowden,despain,crumpler,crotty,cornelison,chouinard,chamness,catlin,cann,bumgardner,budde,branum,bradfield,braddy,borst,birdwell,bazan,banas,bade,arango,ahearn,addis,zumwalt,wurth,wilk,widener,wagstaff,urrutia,terwilliger,tart,steinman,staats,sloat,rives,riggle,revels,reichard,prickett,poff,pitzer,petro,pell,northrup,nicks,moline,mielke,maynor,mallon,magness,lingle,lindell,lieb,lesko,lebeau,lammers,lafond,kiernan,ketron,jurado,holmgren,hilburn,hayashi,hashimoto,harbaugh,guillot,gard,froehlich,feinberg,falco,dufour,drees,doney,diep,delao,daves,dail,crowson,coss,congdon,carner,camarena,butterworth,burlingame,bouffard,bloch,bilyeu,barta,bakke,baillargeon,avent,aquilar,zeringue,yarber,wolfson,vogler,voelker,truss,troxell,thrift,strouse,spielman,sistrunk,sevigny,schuller,schaaf,ruffner,routh,roseman,ricciardi,peraza,pegram,overturf,olander,odaniel,millner,melchor,maroney,machuca,macaluso,livesay,layfield,laskowski,kwiatkowski,kilby,hovey,heywood,hayman,havard,harville,haigh,hagood,grieco,glassman,gebhardt,fleischer,fann,elson,eccles,cunha,crumb,blakley,bardwell,abshire,woodham,wines,welter,wargo,varnado,tutt,traynor,swaney,stricker,stoffel,stambaugh,sickler,shackleford,selman,seaver,sansom,sanmiguel,royston,rourke,rockett,rioux,puleo,pitchford,nardi,mulvaney,middaugh,malek,leos,lathan,kujawa,kimbro,killebrew,houlihan,hinckley,herod,hepler,hamner,hammel,hallowell,gonsalez,gingerich,gambill,funkhouser,fricke,fewell,falkner,endsley,dulin,drennen,deaver,dambrosio,chadwell,castanon,burkes,brune,brisco,brinker,bowker,boldt,berner,beaumont,beaird,bazemore,barrick,albano,younts,wunderlich,weidman,vanness,toland,theobald,stickler,steiger,stanger,spies,spector,sollars,smedley,seibel,scoville,saito,rummel,rowles,rouleau,roos,rogan,roemer,ream,raya,purkey,priester,perreira,penick,paulin,parkins,overcash,oleson,neves,muldrow,minard,midgett,michalak,melgar,mcentire,mcauliffe,marte,lydon,lindholm,leyba,langevin,lagasse,lafayette,kesler,kelton,kaminsky,jaggers,humbert,huck,howarth,hinrichs,higley,gupton,guimond,gravois,giguere,fretwell,fontes,feeley,faucher,eichhorn,ecker,earp,dole,dinger,derryberry,demars,deel,copenhaver,collinsworth,colangelo,cloyd,claiborne,caulfield,carlsen,calzada,caffey,broadus,brenneman,bouie,bodnar,blaney,blanc,beltz,behling,barahona,yockey,winkle,windom,wimer,villatoro,trexler,teran,taliaferro,sydnor,swinson,snelling,smtih,simonton,simoneaux,simoneau,sherrer,seavey,scheel,rushton,rupe,ruano,rippy,reiner,reiff,rabinowitz,quach,penley,odle,nock,minnich,mckown,mccarver,mcandrew,longley,laux,lamothe,lafreniere,kropp,krick,kates,jepson,huie,howse,howie,henriques,haydon,haught,hatter,hartzog,harkey,grimaldo,goshorn,gormley,gluck,gilroy,gillenwater,giffin,fluker,feder,eyre,eshelman,eakins,detwiler,delrosario,davisson,catalan,canning,calton,brammer,botelho,blakney,bartell,averett,askins,aker,witmer,winkelman,widmer,whittier,weitzel,wardell,wagers,ullman,tupper,tingley,tilghman,talton,simard,seda,scheller,sala,rundell,rost,ribeiro,rabideau,primm,pinon,peart,ostrom,ober,nystrom,nussbaum,naughton,murr,moorhead,monti,monteiro,melson,meissner,mclin,mcgruder,marotta,makowski,majewski,madewell,lunt,lukens,leininger,lebel,lakin,kepler,jaques,hunnicutt,hungerford,hoopes,hertz,heins,halliburton,grosso,gravitt,glasper,gallman,gallaway,funke,fulbright,falgout,eakin,dostie,dorado,dewberry,derose,cutshall,crampton,costanzo,colletti,cloninger,claytor,chiang,campagna,burd,brokaw,broaddus,bretz,brainard,binford,bilbrey,alpert,aitken,ahlers,zajac,woolfolk,witten,windle,wayland,tramel,tittle,talavera,suter,straley,specht,sommerville,soloman,skeens,sigman,sibert,shavers,schuck,schmit,sartain,sabol,rosenblatt,rollo,rashid,rabb,polston,nyberg,northrop,navarra,muldoon,mikesell,mcdougald,mcburney,mariscal,lozier,lingerfelt,legere,latour,lagunas,lacour,kurth,killen,kiely,kayser,kahle,isley,huertas,hower,hinz,haugh,gumm,galicia,fortunato,flake,dunleavy,duggins,doby,digiovanni,devaney,deltoro,cribb,corpuz,coronel,coen,charbonneau,caine,burchette,blakey,blakemore,bergquist,beene,beaudette,bayles,ballance,bakker,bailes,asberry,arwood,zucker,willman,whitesell,wald,walcott,vancleave,trump,strasser,simas,shick,schleicher,schaal,saleh,rotz,resnick,rainer,partee,ollis,oller,oday,noles,munday,mong,millican,merwin,mazzola,mansell,magallanes,llanes,lewellen,lepore,kisner,keesee,jeanlouis,ingham,hornbeck,hawn,hartz,harber,haffner,gutshall,guth,grays,gowan,finlay,finkelstein,eyler,enloe,dungan,diez,dearman,cull,crosson,chronister,cassity,campion,callihan,butz,breazeale,blumenthal,berkey,batty,batton,arvizu,alderete,aldana,albaugh,abernethy,wolter,wille,tweed,tollefson,thomasson,teter,testerman,sproul,spates,southwick,soukup,skelly,senter,sealey,sawicki,sargeant,rossiter,rosemond,repp,pifer,ormsby,nickelson,naumann,morabito,monzon,millsaps,millen,mcelrath,marcoux,mantooth,madson,macneil,mackinnon,louque,leister,lampley,kushner,krouse,kirwan,jessee,janson,jahn,jacquez,islas,hutt,holladay,hillyer,hepburn,hensel,harrold,gingrich,geis,gales,fults,finnell,ferri,featherston,epley,ebersole,eames,dunigan,drye,dismuke,devaughn,delorenzo,damiano,confer,collum,clower,clow,claussen,clack,caylor,cawthon,casias,carreno,bluhm,bingaman,bewley,belew,beckner,auld,amey,wolfenbarger,wilkey,wicklund,waltman,villalba,valero,valdovinos,ullrich,tyus,twyman,trost,tardif,tanguay,stripling,steinbach,shumpert,sasaki,sappington,sandusky,reinhold,reinert,quijano,placencia,pinkard,phinney,perrotta,pernell,parrett,oxendine,owensby,orman,nuno,mori,mcroberts,mcneese,mckamey,mccullum,markel,mardis,maines,lueck,lubin,lefler,leffler,larios,labarbera,kershner,josey,jeanbaptiste,izaguirre,hermosillo,haviland,hartshorn,hafner,ginter,getty,franck,fiske,dufrene,doody,davie,dangerfield,dahlberg,cuthbertson,crone,coffelt,chidester,chesson,cauley,caudell,cantara,campo,caines,bullis,bucci,brochu,bogard,bickerstaff,benning,arzola,antonelli,adkinson,zellers,wulf,worsley,woolridge,whitton,westerfield,walczak,vassar,truett,trueblood,trawick,townsley,topping,tobar,telford,steverson,stagg,sitton,sill,sergent,schoenfeld,sarabia,rutkowski,rubenstein,rigdon,prentiss,pomerleau,plumlee,philbrick,patnode,oloughlin,obregon,nuss,morell,mikell,mele,mcinerney,mcguigan,mcbrayer,lollar,kuehl,kinzer,kamp,joplin,jacobi,howells,holstein,hedden,hassler,harty,halle,greig,gouge,goodrum,gerhart,geier,geddes,gast,forehand,ferree,fendley,feltner,esqueda,encarnacion,eichler,egger,edmundson,eatmon,doud,donohoe,donelson,dilorenzo,digiacomo,diggins,delozier,dejong,danford,crippen,coppage,cogswell,clardy,cioffi,cabe,brunette,bresnahan,blomquist,blackstone,biller,bevis,bevan,bethune,benbow,baty,basinger,balcom,andes,aman,aguero,adkisson,yandell,wilds,whisenhunt,weigand,weeden,voight,villar,trottier,tillett,suazo,setser,scurry,schuh,schreck,schauer,samora,roane,rinker,reimers,ratchford,popovich,parkin,natal,melville,mcbryde,magdaleno,loehr,lockman,lingo,leduc,larocca,lamere,laclair,krall,korte,koger,jalbert,hughs,higbee,henton,heaney,haith,gump,greeson,goodloe,gholston,gasper,gagliardi,fregoso,farthing,fabrizio,ensor,elswick,elgin,eklund,eaddy,drouin,dorton,dizon,derouen,deherrera,davy,dampier,cullum,culley,cowgill,cardoso,cardinale,brodsky,broadbent,brimmer,briceno,branscum,bolyard,boley,bennington,beadle,baur,ballentine,azure,aultman,arciniega,aguila,aceves,yepez,woodrum,wethington,weissman,veloz,trusty,troup,trammel,tarpley,stivers,steck,sprayberry,spraggins,spitler,spiers,sohn,seagraves,schiffman,rudnick,rizo,riccio,rennie,quackenbush,puma,plott,pearcy,parada,paiz,munford,moskowitz,mease,mcnary,mccusker,lozoya,longmire,loesch,lasky,kuhlmann,krieg,koziol,kowalewski,konrad,kindle,jowers,jolin,jaco,horgan,hine,hileman,hepner,heise,heady,hawkinson,hannigan,haberman,guilford,grimaldi,garton,gagliano,fruge,follett,fiscus,ferretti,ebner,easterday,eanes,dirks,dimarco,depalma,deforest,cruce,craighead,christner,candler,cadwell,burchell,buettner,brinton,brazier,brannen,brame,bova,bomar,blakeslee,belknap,bangs,balzer,athey,armes,alvis,alverson,alvardo,yeung,wheelock,westlund,wessels,volkman,threadgill,thelen,tague,symons,swinford,sturtevant,straka,stier,stagner,segarra,seawright,rutan,roux,ringler,riker,ramsdell,quattlebaum,purifoy,poulson,permenter,peloquin,pasley,pagel,osman,obannon,nygaard,newcomer,munos,motta,meadors,mcquiston,mcniel,mcmann,mccrae,mayne,matte,legault,lechner,kucera,krohn,kratzer,koopman,jeske,horrocks,hock,hibbler,hesson,hersh,harvin,halvorsen,griner,grindle,gladstone,garofalo,frampton,forbis,eddington,diorio,dingus,dewar,desalvo,curcio,creasy,cortese,cordoba,connally,cluff,cascio,capuano,canaday,calabro,bussard,brayton,borja,bigley,arnone,arguelles,acuff,zamarripa,wooton,widner,wideman,threatt,thiele,templin,teeters,synder,swint,swick,sturges,stogner,stedman,spratt,siegfried,shetler,scull,savino,sather,rothwell,rook,rone,rhee,quevedo,privett,pouliot,poche,pickel,petrillo,pellegrini,peaslee,partlow,otey,nunnery,morelock,morello,meunier,messinger,mckie,mccubbin,mccarron,lerch,lavine,laverty,lariviere,lamkin,kugler,krol,kissel,keeter,hubble,hickox,hetzel,hayner,hagy,hadlock,groh,gottschalk,goodsell,gassaway,garrard,galligan,firth,fenderson,feinstein,etienne,engleman,emrick,ellender,drews,doiron,degraw,deegan,dart,crissman,corr,cookson,coil,cleaves,charest,chapple,chaparro,castano,carpio,byer,bufford,bridgewater,bridgers,brandes,borrero,bonanno,aube,ancheta,abarca,abad,wooster,wimbush,willhite,willams,wigley,weisberg,wardlaw,vigue,vanhook,unknow,torre,tasker,tarbox,strachan,slover,shamblin,semple,schuyler,schrimsher,sayer,salzman,rubalcava,riles,reneau,reichel,rayfield,rabon,pyatt,prindle,poss,polito,plemmons,pesce,perrault,pereyra,ostrowski,nilsen,niemeyer,munsey,mundell,moncada,miceli,meader,mcmasters,mckeehan,matsumoto,marron,marden,lizarraga,lingenfelter,lewallen,langan,lamanna,kovac,kinsler,kephart,keown,kass,kammerer,jeffreys,hysell,hosmer,hardnett,hanner,guyette,greening,glazer,ginder,fromm,fluellen,finkle,fessler,essary,eisele,duren,dittmer,crochet,cosentino,cogan,coelho,cavin,carrizales,campuzano,brough,bopp,bookman,bobb,blouin,beesley,battista,bascom,bakken,badgett,arneson,anselmo,albino,ahumada,woodyard,wolters,wireman,willison,warman,waldrup,vowell,vantassel,twombly,toomer,tennison,teets,tedeschi,swanner,stutz,stelly,sheehy,schermerhorn,scala,sandidge,salters,salo,saechao,roseboro,rolle,ressler,renz,renn,redford,raposa,rainbolt,pelfrey,orndorff,oney,nolin,nimmons,nardone,myhre,morman,menjivar,mcglone,mccammon,maxon,marciano,manus,lowrance,lorenzen,lonergan,lollis,littles,lindahl,lamas,lach,kuster,krawczyk,knuth,knecht,kirkendall,keitt,keever,kantor,jarboe,hoye,houchens,holter,holsinger,hickok,helwig,helgeson,hassett,harner,hamman,hames,hadfield,goree,goldfarb,gaughan,gaudreau,gantz,gallion,frady,foti,flesher,ferrin,faught,engram,donegan,desouza,degroot,cutright,crowl,criner,coan,clinkscales,chewning,chavira,catchings,carlock,bulger,buenrostro,bramblett,brack,boulware,bookout,bitner,birt,baranowski,baisden,allmon,acklin,yoakum,wilbourn,whisler,weinberger,washer,vasques,vanzandt,vanatta,troxler,tomes,tindle,tims,throckmorton,thach,stpeter,stlaurent,stenson,spry,spitz,songer,snavely,shroyer,shortridge,shenk,sevier,seabrook,scrivner,saltzman,rosenberry,rockwood,robeson,roan,reiser,ramires,raber,posner,popham,piotrowski,pinard,peterkin,pelham,peiffer,peay,nadler,musso,millett,mestas,mcgowen,marques,marasco,manriquez,manos,mair,lipps,leiker,krumm,knorr,kinslow,kessel,kendricks,kelm,irick,ickes,hurlburt,horta,hoekstra,heuer,helmuth,heatherly,hampson,hagar,haga,greenlaw,grau,godbey,gingras,gillies,gibb,gayden,gauvin,garrow,fontanez,florio,finke,fasano,ezzell,ewers,eveland,eckenrode,duclos,drumm,dimmick,delancey,defazio,dashiell,cusack,crowther,crigger,cray,coolidge,coldiron,cleland,chalfant,cassel,camire,cabrales,broomfield,brittingham,brisson,brickey,braziel,brazell,bragdon,boulanger,boman,bohannan,beem,barre,azar,ashbaugh,armistead,almazan,adamski,zendejas,winburn,willaims,wilhoit,westberry,wentzel,wendling,visser,vanscoy,vankirk,vallee,tweedy,thornberry,sweeny,spradling,spano,smelser,shim,sechrist,schall,scaife,rugg,rothrock,roesler,riehl,ridings,render,ransdell,radke,pinero,petree,pendergast,peluso,pecoraro,pascoe,panek,oshiro,navarrette,murguia,moores,moberg,michaelis,mcwhirter,mcsweeney,mcquade,mccay,mauk,mariani,marceau,mandeville,maeda,lunde,ludlow,loeb,lindo,linderman,leveille,leith,larock,lambrecht,kulp,kinsley,kimberlin,kesterson,hoyos,helfrich,hanke,grisby,goyette,gouveia,glazier,gile,gerena,gelinas,gasaway,funches,fujimoto,flynt,fenske,fellers,fehr,eslinger,escalera,enciso,duley,dittman,dineen,diller,devault,collings,clymer,clowers,chavers,charland,castorena,castello,camargo,bunce,bullen,boyes,borchers,borchardt,birnbaum,birdsall,billman,benites,bankhead,ange,ammerman,adkison,winegar,wickman,warr,warnke,villeneuve,veasey,vassallo,vannatta,vadnais,twilley,towery,tomblin,tippett,theiss,talkington,talamantes,swart,swanger,streit,stines,stabler,spurling,sobel,sine,simmers,shippy,shiflett,shearin,sauter,sanderlin,rusch,runkle,ruckman,rorie,roesch,richert,rehm,randel,ragin,quesenberry,puentes,plyler,plotkin,paugh,oshaughnessy,ohalloran,norsworthy,niemann,nader,moorefield,mooneyham,modica,miyamoto,mickel,mebane,mckinnie,mazurek,mancilla,lukas,lovins,loughlin,lotz,lindsley,liddle,levan,lederman,leclaire,lasseter,lapoint,lamoreaux,lafollette,kubiak,kirtley,keffer,kaczmarek,housman,hiers,hibbert,herrod,hegarty,hathorn,greenhaw,grafton,govea,futch,furst,franko,forcier,foran,flickinger,fairfield,eure,emrich,embrey,edgington,ecklund,eckard,durante,deyo,delvecchio,dade,currey,creswell,cottrill,casavant,cartier,cargile,capel,cammack,calfee,burse,burruss,brust,brousseau,bridwell,braaten,borkholder,bloomquist,bjork,bartelt,amburgey,yeary,whitefield,vinyard,vanvalkenburg,twitchell,timmins,tapper,stringham,starcher,spotts,slaugh,simonsen,sheffer,sequeira,rosati,rhymes,quint,pollak,peirce,patillo,parkerson,paiva,nilson,nevin,narcisse,mitton,merriam,merced,meiners,mckain,mcelveen,mcbeth,marsden,marez,manke,mahurin,mabrey,luper,krull,hunsicker,hornbuckle,holtzclaw,hinnant,heston,hering,hemenway,hegwood,hearns,halterman,guiterrez,grote,granillo,grainger,glasco,gilder,garren,garlock,garey,fryar,fredricks,fraizer,foshee,ferrel,felty,everitt,evens,esser,elkin,eberhart,durso,duguay,driskill,doster,dewall,deveau,demps,demaio,delreal,deleo,darrah,cumberbatch,culberson,cranmer,cordle,colgan,chesley,cavallo,castellon,castelli,carreras,carnell,carlucci,bontrager,blumberg,blasingame,becton,artrip,andujar,alkire,alder,zukowski,zuckerman,wroblewski,wrigley,woodside,wigginton,westman,westgate,werts,washam,wardlow,walser,waiters,tadlock,stringfield,stimpson,stickley,standish,spurlin,spindler,speller,spaeth,sotomayor,sluder,shryock,shepardson,shatley,scannell,santistevan,rosner,resto,reinhard,rathburn,prisco,poulsen,pinney,phares,pennock,pastrana,oviedo,ostler,nauman,mulford,moise,moberly,mirabal,metoyer,metheny,mentzer,meldrum,mcinturff,mcelyea,mcdougle,massaro,lumpkins,loveday,lofgren,lirette,lesperance,lefkowitz,ledger,lauzon,lachapelle,klassen,keough,kempton,kaelin,jeffords,hsieh,hoyer,horwitz,hoeft,hennig,haskin,gourdine,golightly,girouard,fulgham,fritsch,freer,frasher,foulk,firestone,fiorentino,fedor,ensley,englehart,eells,dunphy,donahoe,dileo,dibenedetto,dabrowski,crick,coonrod,conder,coddington,chunn,chaput,cerna,carreiro,calahan,braggs,bourdon,bollman,bittle,bauder,barreras,aubuchon,anzalone,adamo,zerbe,willcox,westberg,weikel,waymire,vroman,vinci,vallejos,truesdell,troutt,trotta,tollison,toles,tichenor,symonds,surles,strayer,stgeorge,sroka,sorrentino,solares,snelson,silvestri,sikorski,shawver,schumaker,schorr,schooley,scates,satterlee,satchell,rymer,roselli,robitaille,riegel,regis,reames,provenzano,priestley,plaisance,pettey,palomares,nowakowski,monette,minyard,mclamb,mchone,mccarroll,masson,magoon,maddy,lundin,licata,leonhardt,landwehr,kircher,kinch,karpinski,johannsen,hussain,houghtaling,hoskinson,hollaway,holeman,hobgood,hiebert,goggin,geissler,gadbois,gabaldon,fleshman,flannigan,fairman,eilers,dycus,dunmire,duffield,dowler,deloatch,dehaan,deemer,clayborn,christofferso,chilson,chesney,chatfield,carron,canale,brigman,branstetter,bosse,borton,bonar,biron,barroso,arispe,zacharias,zabel,yaeger,woolford,whetzel,weakley,veatch,vandeusen,tufts,troxel,troche,traver,townsel,talarico,swilley,sterrett,stenger,speakman,sowards,sours,souders,souder,soles,sobers,snoddy,smither,shute,shoaf,shahan,schuetz,scaggs,santini,rosson,rolen,robidoux,rentas,recio,pixley,pawlowski,pawlak,paull,overbey,orear,oliveri,oldenburg,nutting,naugle,mossman,misner,milazzo,michelson,mcentee,mccullar,mccree,mcaleer,mazzone,mandell,manahan,malott,maisonet,mailloux,lumley,lowrie,louviere,lipinski,lindemann,leppert,leasure,labarge,kubik,knisely,knepp,kenworthy,kennelly,kelch,kanter,houchin,hosley,hosler,hollon,holleman,heitman,haggins,gwaltney,goulding,gorden,geraci,gathers,frison,feagin,falconer,espada,erving,erikson,eisenhauer,ebeling,durgin,dowdle,dinwiddie,delcastillo,dedrick,crimmins,covell,cournoyer,coria,cohan,cataldo,carpentier,canas,campa,brode,brashears,blaser,bicknell,bednar,barwick,ascencio,althoff,almodovar,alamo,zirkle,zabala,wolverton,winebrenner,wetherell,westlake,wegener,weddington,tuten,trosclair,tressler,theroux,teske,swinehart,swensen,sundquist,southall,socha,sizer,silverberg,shortt,shimizu,sherrard,shaeffer,scheid,scheetz,saravia,sanner,rubinstein,rozell,romer,rheaume,reisinger,randles,pullum,petrella,payan,nordin,norcross,nicoletti,nicholes,newbold,nakagawa,monteith,milstead,milliner,mellen,mccardle,liptak,leitch,latimore,larrison,landau,laborde,koval,izquierdo,hymel,hoskin,holte,hoefer,hayworth,hausman,harrill,harrel,hardt,gully,groover,grinnell,greenspan,graver,grandberry,gorrell,goldenberg,goguen,gilleland,fuson,feldmann,everly,dyess,dunnigan,downie,dolby,deatherage,cosey,cheever,celaya,caver,cashion,caplinger,cansler,byrge,bruder,breuer,breslin,brazelton,botkin,bonneau,bondurant,bohanan,bogue,bodner,boatner,blatt,bickley,belliveau,beiler,beier,beckstead,bachmann,atkin,altizer,alloway,allaire,albro,abron,zellmer,yetter,yelverton,wiens,whidden,viramontes,vanwormer,tarantino,tanksley,sumlin,strauch,strang,stice,spahn,sosebee,sigala,shrout,seamon,schrum,schneck,schantz,ruddy,romig,roehl,renninger,reding,polak,pohlman,pasillas,oldfield,oldaker,ohanlon,ogilvie,norberg,nolette,neufeld,nellis,mummert,mulvihill,mullaney,monteleone,mendonca,meisner,mcmullan,mccluney,mattis,massengill,manfredi,luedtke,lounsbury,liberatore,lamphere,laforge,jourdan,iorio,iniguez,ikeda,hubler,hodgdon,hocking,heacock,haslam,haralson,hanshaw,hannum,hallam,haden,garnes,garces,gammage,gambino,finkel,faucett,ehrhardt,eggen,dusek,durrant,dubay,dones,depasquale,delucia,degraff,decamp,davalos,cullins,conard,clouser,clontz,cifuentes,chappel,chaffins,celis,carwile,byram,bruggeman,bressler,brathwaite,brasfield,bradburn,boose,bodie,blosser,bertsch,bernardi,bernabe,bengtson,barrette,astorga,alday,albee,abrahamson,yarnell,wiltse,wiebe,waguespack,vasser,upham,turek,traxler,torain,tomaszewski,tinnin,tiner,tindell,styron,stahlman,staab,skiba,sheperd,seidl,secor,schutte,sanfilippo,ruder,rondon,rearick,procter,prochaska,pettengill,pauly,neilsen,nally,mullenax,morano,meads,mcnaughton,mcmurtry,mcmath,mckinsey,matthes,massenburg,marlar,margolis,malin,magallon,mackin,lovette,loughran,loring,longstreet,loiselle,lenihan,kunze,koepke,kerwin,kalinowski,kagan,innis,innes,holtzman,heinemann,harshman,haider,haack,grondin,grissett,greenawalt,goudy,goodlett,goldston,gokey,gardea,galaviz,gafford,gabrielson,furlow,fritch,fordyce,folger,elizalde,ehlert,eckhoff,eccleston,ealey,dubin,diemer,deschamps,delapena,decicco,debolt,cullinan,crittendon,crase,cossey,coppock,coots,colyer,cluck,chamberland,burkhead,bumpus,buchan,borman,birkholz,berardi,benda,behnke,barter,amezquita,wotring,wirtz,wingert,wiesner,whitesides,weyant,wainscott,venezia,varnell,tussey,thurlow,tabares,stiver,stell,starke,stanhope,stanek,sisler,sinnott,siciliano,shehan,selph,seager,scurlock,scranton,santucci,santangelo,saltsman,rogge,rettig,renwick,reidy,reider,redfield,premo,parente,paolucci,palmquist,ohler,netherton,mutchler,morita,mistretta,minnis,middendorf,menzel,mendosa,mendelson,meaux,mcspadden,mcquaid,mcnatt,manigault,maney,mager,lukes,lopresti,liriano,letson,lechuga,lazenby,lauria,larimore,krupp,krupa,kopec,kinchen,kifer,kerney,kerner,kennison,kegley,karcher,justis,johson,jellison,janke,huskins,holzman,hinojos,hefley,hatmaker,harte,halloway,hallenbeck,goodwyn,glaspie,geise,fullwood,fryman,frakes,fraire,farrer,enlow,engen,ellzey,eckles,earles,dunkley,drinkard,dreiling,draeger,dinardo,dills,desroches,desantiago,curlee,crumbley,critchlow,coury,courtright,coffield,cleek,charpentier,cardone,caples,cantin,buntin,bugbee,brinkerhoff,brackin,bourland,blassingame,beacham,banning,auguste,andreasen,amann,almon,alejo,adelman,abston,yerger,wymer,woodberry,windley,whiteaker,westfield,weibel,wanner,waldrep,villani,vanarsdale,utterback,updike,triggs,topete,tolar,tigner,thoms,tauber,tarvin,tally,swiney,sweatman,studebaker,stennett,starrett,stannard,stalvey,sonnenberg,smithey,sieber,sickles,shinault,segars,sanger,salmeron,rothe,rizzi,restrepo,ralls,ragusa,quiroga,papenfuss,oropeza,okane,mudge,mozingo,molinaro,mcvicker,mcgarvey,mcfalls,mccraney,matus,magers,llanos,livermore,linehan,leitner,laymon,lawing,lacourse,kwong,kollar,kneeland,kennett,kellett,kangas,janzen,hutter,huling,hofmeister,hewes,harjo,habib,guice,grullon,greggs,grayer,granier,grable,gowdy,giannini,getchell,gartman,garnica,ganey,gallimore,fetters,fergerson,farlow,fagundes,exley,esteves,enders,edenfield,easterwood,drakeford,dipasquale,desousa,deshields,deeter,dedmon,debord,daughtery,cutts,courtemanche,coursey,copple,coomes,collis,cogburn,clopton,choquette,chaidez,castrejon,calhoon,burbach,bulloch,buchman,bruhn,bohon,blough,baynes,barstow,zeman,zackery,yardley,yamashita,wulff,wilken,wiliams,wickersham,wible,whipkey,wedgeworth,walmsley,walkup,vreeland,verrill,umana,traub,swingle,summey,stroupe,stockstill,steffey,stefanski,statler,stapp,speights,solari,soderberg,shunk,shorey,shewmaker,sheilds,schiffer,schank,schaff,sagers,rochon,riser,rickett,reale,raglin,polen,plata,pitcock,percival,palen,orona,oberle,nocera,navas,nault,mullings,montejano,monreal,minick,middlebrook,meece,mcmillion,mccullen,mauck,marshburn,maillet,mahaney,magner,maclin,lucey,litteral,lippincott,leite,leaks,lamarre,jurgens,jerkins,jager,hurwitz,hughley,hotaling,horstman,hohman,hocker,hively,hipps,hessler,hermanson,hepworth,helland,hedlund,harkless,haigler,gutierez,grindstaff,glantz,giardina,gerken,gadsden,finnerty,farnum,encinas,drakes,dennie,cutlip,curtsinger,couto,cortinas,corby,chiasson,carle,carballo,brindle,borum,bober,blagg,berthiaume,beahm,batres,basnight,backes,axtell,atterberry,alvares,alegria,woodell,wojciechowski,winfree,winbush,wiest,wesner,wamsley,wakeman,verner,truex,trafton,toman,thorsen,theus,tellier,tallant,szeto,strope,stills,simkins,shuey,shaul,servin,serio,serafin,salguero,ryerson,rudder,ruark,rother,rohrbaugh,rohrbach,rohan,rogerson,risher,reeser,pryce,prokop,prins,priebe,prejean,pinheiro,petrone,petri,penson,pearlman,parikh,natoli,murakami,mullikin,mullane,motes,morningstar,mcveigh,mcgrady,mcgaughey,mccurley,marchan,manske,lusby,linde,likens,licon,leroux,lemaire,legette,laskey,laprade,laplant,kolar,kittredge,kinley,kerber,kanagy,jetton,janik,ippolito,inouye,hunsinger,howley,howery,horrell,holthaus,hiner,hilson,hilderbrand,hartzler,harnish,harada,hansford,halligan,hagedorn,gwynn,gudino,greenstein,greear,gracey,goudeau,goodner,ginsburg,gerth,gerner,fujii,frier,frenette,folmar,fleisher,fleischmann,fetzer,eisenman,earhart,dupuy,dunkelberger,drexler,dillinger,dilbeck,dewald,demby,deford,craine,chesnut,casady,carstens,carrick,carino,carignan,canchola,bushong,burman,buono,brownlow,broach,britten,brickhouse,boyden,boulton,borland,bohrer,blubaugh,bever,berggren,benevides,arocho,arends,amezcua,almendarez,zalewski,witzel,winkfield,wilhoite,vangundy,vanfleet,vanetten,vandergriff,urbanski,troiano,thibodaux,straus,stoneking,stjean,stillings,stange,speicher,speegle,smeltzer,slawson,simmonds,shuttleworth,serpa,senger,seidman,schweiger,schloss,schimmel,schechter,sayler,sabatini,ronan,rodiguez,riggleman,richins,reamer,prunty,porath,plunk,piland,philbrook,pettitt,perna,peralez,pascale,padula,oboyle,nivens,nickols,mundt,munden,montijo,mcmanis,mcgrane,mccrimmon,manzi,mangold,malick,mahar,maddock,losey,litten,leedy,leavell,ladue,krahn,kluge,junker,iversen,imler,hurtt,huizar,hubbert,howington,hollomon,holdren,hoisington,heiden,hauge,hartigan,gutirrez,griffie,greenhill,gratton,granata,gottfried,gertz,gautreaux,furry,furey,funderburg,flippen,fitzgibbon,drucker,donoghue,dildy,devers,detweiler,despres,denby,degeorge,cueto,cranston,courville,clukey,cirillo,chivers,caudillo,butera,bulluck,buckmaster,braunstein,bracamonte,bourdeau,bonnette".split(","),
45722 us_tv_and_film:"you,i,to,that,it,me,what,this,know,i'm,no,have,my,don't,just,not,do,be,your,we,it's,so,but,all,well,oh,about,right,you're,get,here,out,going,like,yeah,if,can,up,want,think,that's,now,go,him,how,got,did,why,see,come,good,really,look,will,okay,back,can't,mean,tell,i'll,hey,he's,could,didn't,yes,something,because,say,take,way,little,make,need,gonna,never,we're,too,she's,i've,sure,our,sorry,what's,let,thing,maybe,down,man,very,there's,should,anything,said,much,any,even,off,please,doing,thank,give,thought,help,talk,god,still,wait,find,nothing,again,things,let's,doesn't,call,told,great,better,ever,night,away,believe,feel,everything,you've,fine,last,keep,does,put,around,stop,they're,i'd,guy,isn't,always,listen,wanted,guys,huh,those,big,lot,happened,thanks,won't,trying,kind,wrong,talking,guess,care,bad,mom,remember,getting,we'll,together,dad,leave,understand,wouldn't,actually,hear,baby,nice,father,else,stay,done,wasn't,course,might,mind,every,enough,try,hell,came,someone,you'll,whole,yourself,idea,ask,must,coming,looking,woman,room,knew,tonight,real,son,hope,went,hmm,happy,pretty,saw,girl,sir,friend,already,saying,next,job,problem,minute,thinking,haven't,heard,honey,matter,myself,couldn't,exactly,having,probably,happen,we've,hurt,boy,dead,gotta,alone,excuse,start,kill,hard,you'd,today,car,ready,without,wants,hold,wanna,yet,seen,deal,once,gone,morning,supposed,friends,head,stuff,worry,live,truth,face,forget,true,cause,soon,knows,telling,wife,who's,chance,run,move,anyone,person,bye,somebody,heart,miss,making,meet,anyway,phone,reason,damn,lost,looks,bring,case,turn,wish,tomorrow,kids,trust,check,change,anymore,least,aren't,working,makes,taking,means,brother,hate,ago,says,beautiful,gave,fact,crazy,sit,afraid,important,rest,fun,kid,word,watch,glad,everyone,sister,minutes,everybody,bit,couple,whoa,either,mrs,feeling,daughter,wow,gets,asked,break,promise,door,close,hand,easy,question,tried,far,walk,needs,mine,killed,hospital,anybody,alright,wedding,shut,able,die,perfect,stand,comes,hit,waiting,dinner,funny,husband,almost,pay,answer,cool,eyes,news,child,shouldn't,yours,moment,sleep,read,where's,sounds,sonny,pick,sometimes,bed,date,plan,hours,lose,hands,serious,shit,behind,inside,ahead,week,wonderful,fight,past,cut,quite,he'll,sick,it'll,eat,nobody,goes,save,seems,finally,lives,worried,upset,carly,met,brought,seem,sort,safe,weren't,leaving,front,shot,loved,asking,running,clear,figure,hot,felt,parents,drink,absolutely,how's,daddy,sweet,alive,sense,meant,happens,bet,blood,ain't,kidding,lie,meeting,dear,seeing,sound,fault,ten,buy,hour,speak,lady,jen,thinks,christmas,outside,hang,possible,worse,mistake,ooh,handle,spend,totally,giving,here's,marriage,realize,unless,sex,send,needed,scared,picture,talked,ass,hundred,changed,completely,explain,certainly,sign,boys,relationship,loves,hair,lying,choice,anywhere,future,weird,luck,she'll,turned,touch,kiss,crane,questions,obviously,wonder,pain,calling,somewhere,throw,straight,cold,fast,words,food,none,drive,feelings,they'll,marry,drop,cannot,dream,protect,twenty,surprise,sweetheart,poor,looked,mad,except,gun,y'know,dance,takes,appreciate,especially,situation,besides,pull,hasn't,worth,sheridan,amazing,expect,swear,piece,busy,happening,movie,we'd,catch,perhaps,step,fall,watching,kept,darling,dog,honor,moving,till,admit,problems,murder,he'd,evil,definitely,feels,honest,eye,broke,missed,longer,dollars,tired,evening,starting,entire,trip,niles,suppose,calm,imagine,fair,caught,blame,sitting,favor,apartment,terrible,clean,learn,frasier,relax,accident,wake,prove,smart,message,missing,forgot,interested,table,nbsp,mouth,pregnant,ring,careful,shall,dude,ride,figured,wear,shoot,stick,follow,angry,write,stopped,ran,standing,forgive,jail,wearing,ladies,kinda,lunch,cristian,greenlee,gotten,hoping,phoebe,thousand,ridge,paper,tough,tape,count,boyfriend,proud,agree,birthday,they've,share,offer,hurry,feet,wondering,decision,ones,finish,voice,herself,would've,mess,deserve,evidence,cute,dress,interesting,hotel,enjoy,quiet,concerned,staying,beat,sweetie,mention,clothes,fell,neither,mmm,fix,respect,prison,attention,holding,calls,surprised,bar,keeping,gift,hadn't,putting,dark,owe,ice,helping,normal,aunt,lawyer,apart,plans,jax,girlfriend,floor,whether,everything's,box,judge,upstairs,sake,mommy,possibly,worst,acting,accept,blow,strange,saved,conversation,plane,mama,yesterday,lied,quick,lately,stuck,difference,store,she'd,bought,doubt,listening,walking,cops,deep,dangerous,buffy,sleeping,chloe,rafe,join,card,crime,gentlemen,willing,window,walked,guilty,likes,fighting,difficult,soul,joke,favorite,uncle,promised,bother,seriously,cell,knowing,broken,advice,somehow,paid,losing,push,helped,killing,boss,liked,innocent,rules,learned,thirty,risk,letting,speaking,ridiculous,afternoon,apologize,nervous,charge,patient,boat,how'd,hide,detective,planning,huge,breakfast,horrible,awful,pleasure,driving,hanging,picked,sell,quit,apparently,dying,notice,congratulations,visit,could've,c'mon,letter,decide,forward,fool,showed,smell,seemed,spell,memory,pictures,slow,seconds,hungry,hearing,kitchen,ma'am,should've,realized,kick,grab,discuss,fifty,reading,idiot,suddenly,agent,destroy,bucks,shoes,peace,arms,demon,livvie,consider,papers,incredible,witch,drunk,attorney,tells,knock,ways,gives,nose,skye,turns,keeps,jealous,drug,sooner,cares,plenty,extra,outta,weekend,matters,gosh,opportunity,impossible,waste,pretend,jump,eating,proof,slept,arrest,breathe,perfectly,warm,pulled,twice,easier,goin,dating,suit,romantic,drugs,comfortable,finds,checked,divorce,begin,ourselves,closer,ruin,smile,laugh,treat,fear,what'd,otherwise,excited,mail,hiding,stole,pacey,noticed,fired,excellent,bringing,bottom,note,sudden,bathroom,honestly,sing,foot,remind,charges,witness,finding,tree,dare,hardly,that'll,steal,silly,contact,teach,shop,plus,colonel,fresh,trial,invited,roll,reach,dirty,choose,emergency,dropped,butt,credit,obvious,locked,loving,nuts,agreed,prue,goodbye,condition,guard,fuckin,grow,cake,mood,crap,crying,belong,partner,trick,pressure,dressed,taste,neck,nurse,raise,lots,carry,whoever,drinking,they'd,breaking,file,lock,wine,spot,paying,assume,asleep,turning,viki,bedroom,shower,nikolas,camera,fill,reasons,forty,bigger,nope,breath,doctors,pants,freak,movies,folks,cream,wild,truly,desk,convince,client,threw,hurts,spending,answers,shirt,chair,rough,doin,sees,ought,empty,wind,aware,dealing,pack,tight,hurting,guest,arrested,salem,confused,surgery,expecting,deacon,unfortunately,goddamn,bottle,beyond,whenever,pool,opinion,starts,jerk,secrets,falling,necessary,barely,dancing,tests,copy,cousin,ahem,twelve,tess,skin,fifteen,speech,orders,complicated,nowhere,escape,biggest,restaurant,grateful,usual,burn,address,someplace,screw,everywhere,regret,goodness,mistakes,details,responsibility,suspect,corner,hero,dumb,terrific,whoo,hole,memories,o'clock,teeth,ruined,bite,stenbeck,liar,showing,cards,desperate,search,pathetic,spoke,scare,marah,afford,settle,stayed,checking,hired,heads,concern,blew,alcazar,champagne,connection,tickets,happiness,saving,kissing,hated,personally,suggest,prepared,onto,downstairs,ticket,it'd,loose,holy,duty,convinced,throwing,kissed,legs,loud,saturday,babies,where'd,warning,miracle,carrying,blind,ugly,shopping,hates,sight,bride,coat,clearly,celebrate,brilliant,wanting,forrester,lips,custody,screwed,buying,toast,thoughts,reality,lexie,attitude,advantage,grandfather,sami,grandma,someday,roof,marrying,powerful,grown,grandmother,fake,must've,ideas,exciting,familiar,bomb,bout,harmony,schedule,capable,practically,correct,clue,forgotten,appointment,deserves,threat,bloody,lonely,shame,jacket,hook,scary,investigation,invite,shooting,lesson,criminal,victim,funeral,considering,burning,strength,harder,sisters,pushed,shock,pushing,heat,chocolate,miserable,corinthos,nightmare,brings,zander,crash,chances,sending,recognize,healthy,boring,feed,engaged,headed,treated,knife,drag,badly,hire,paint,pardon,behavior,closet,warn,gorgeous,milk,survive,ends,dump,rent,remembered,thanksgiving,rain,revenge,prefer,spare,pray,disappeared,aside,statement,sometime,meat,fantastic,breathing,laughing,stood,affair,ours,depends,protecting,jury,brave,fingers,murdered,explanation,picking,blah,stronger,handsome,unbelievable,anytime,shake,oakdale,wherever,pulling,facts,waited,lousy,circumstances,disappointed,weak,trusted,license,nothin,trash,understanding,slip,sounded,awake,friendship,stomach,weapon,threatened,mystery,vegas,understood,basically,switch,frankly,cheap,lifetime,deny,clock,garbage,why'd,tear,ears,indeed,changing,singing,tiny,decent,avoid,messed,filled,touched,disappear,exact,pills,kicked,harm,fortune,pretending,insurance,fancy,drove,cared,belongs,nights,lorelai,lift,timing,guarantee,chest,woke,burned,watched,heading,selfish,drinks,doll,committed,elevator,freeze,noise,wasting,ceremony,uncomfortable,staring,files,bike,stress,permission,thrown,possibility,borrow,fabulous,doors,screaming,bone,xander,what're,meal,apology,anger,honeymoon,bail,parking,fixed,wash,stolen,sensitive,stealing,photo,chose,lets,comfort,worrying,pocket,mateo,bleeding,shoulder,ignore,talent,tied,garage,dies,demons,dumped,witches,rude,crack,bothering,radar,soft,meantime,gimme,kinds,fate,concentrate,throat,prom,messages,intend,ashamed,somethin,manage,guilt,interrupt,guts,tongue,shoe,basement,sentence,purse,glasses,cabin,universe,repeat,mirror,wound,travers,tall,engagement,therapy,emotional,jeez,decisions,soup,thrilled,stake,chef,moves,extremely,moments,expensive,counting,shots,kidnapped,cleaning,shift,plate,impressed,smells,trapped,aidan,knocked,charming,attractive,argue,puts,whip,embarrassed,package,hitting,bust,stairs,alarm,pure,nail,nerve,incredibly,walks,dirt,stamp,terribly,friendly,damned,jobs,suffering,disgusting,stopping,deliver,riding,helps,disaster,bars,crossed,trap,talks,eggs,chick,threatening,spoken,introduce,confession,embarrassing,bags,impression,gate,reputation,presents,chat,suffer,argument,talkin,crowd,homework,coincidence,cancel,pride,solve,hopefully,pounds,pine,mate,illegal,generous,outfit,maid,bath,punch,freaked,begging,recall,enjoying,prepare,wheel,defend,signs,painful,yourselves,maris,that'd,suspicious,cooking,button,warned,sixty,pity,yelling,awhile,confidence,offering,pleased,panic,hers,gettin,refuse,grandpa,testify,choices,cruel,mental,gentleman,coma,cutting,proteus,guests,expert,benefit,faces,jumped,toilet,sneak,halloween,privacy,smoking,reminds,twins,swing,solid,options,commitment,crush,ambulance,wallet,gang,eleven,option,laundry,assure,stays,skip,fail,discussion,clinic,betrayed,sticking,bored,mansion,soda,sheriff,suite,handled,busted,load,happier,studying,romance,procedure,commit,assignment,suicide,minds,swim,yell,llanview,chasing,proper,believes,humor,hopes,lawyers,giant,latest,escaped,parent,tricks,insist,dropping,cheer,medication,flesh,routine,sandwich,handed,false,beating,warrant,awfully,odds,treating,thin,suggesting,fever,sweat,silent,clever,sweater,mall,sharing,assuming,judgment,goodnight,divorced,surely,steps,confess,math,listened,comin,answered,vulnerable,bless,dreaming,chip,zero,pissed,nate,kills,tears,knees,chill,brains,unusual,packed,dreamed,cure,lookin,grave,cheating,breaks,locker,gifts,awkward,thursday,joking,reasonable,dozen,curse,quartermaine,millions,dessert,rolling,detail,alien,delicious,closing,vampires,wore,tail,secure,salad,murderer,spit,offense,dust,conscience,bread,answering,lame,invitation,grief,smiling,pregnancy,prisoner,delivery,guards,virus,shrink,freezing,wreck,massimo,wire,technically,blown,anxious,cave,holidays,cleared,wishes,caring,candles,bound,charm,pulse,jumping,jokes,boom,occasion,silence,nonsense,frightened,slipped,dimera,blowing,relationships,kidnapping,spin,tool,roxy,packing,blaming,wrap,obsessed,fruit,torture,personality,there'll,fairy,necessarily,seventy,print,motel,underwear,grams,exhausted,believing,freaking,carefully,trace,touching,messing,recovery,intention,consequences,belt,sacrifice,courage,enjoyed,attracted,remove,testimony,intense,heal,defending,unfair,relieved,loyal,slowly,buzz,alcohol,surprises,psychiatrist,plain,attic,who'd,uniform,terrified,cleaned,zach,threaten,fella,enemies,satisfied,imagination,hooked,headache,forgetting,counselor,andie,acted,badge,naturally,frozen,sakes,appropriate,trunk,dunno,costume,sixteen,impressive,kicking,junk,grabbed,understands,describe,clients,owns,affect,witnesses,starving,instincts,happily,discussing,deserved,strangers,surveillance,admire,questioning,dragged,barn,deeply,wrapped,wasted,tense,hoped,fellas,roommate,mortal,fascinating,stops,arrangements,agenda,literally,propose,honesty,underneath,sauce,promises,lecture,eighty,torn,shocked,backup,differently,ninety,deck,biological,pheebs,ease,creep,waitress,telephone,ripped,raising,scratch,rings,prints,thee,arguing,ephram,asks,oops,diner,annoying,taggert,sergeant,blast,towel,clown,habit,creature,bermuda,snap,react,paranoid,handling,eaten,therapist,comment,sink,reporter,nurses,beats,priority,interrupting,warehouse,loyalty,inspector,pleasant,excuses,threats,guessing,tend,praying,motive,unconscious,mysterious,unhappy,tone,switched,rappaport,sookie,neighbor,loaded,swore,piss,balance,toss,misery,thief,squeeze,lobby,goa'uld,geez,exercise,forth,booked,sandburg,poker,eighteen,d'you,bury,everyday,digging,creepy,wondered,liver,hmmm,magical,fits,discussed,moral,helpful,searching,flew,depressed,aisle,cris,amen,vows,neighbors,darn,cents,arrange,annulment,useless,adventure,resist,fourteen,celebrating,inch,debt,violent,sand,teal'c,celebration,reminded,phones,paperwork,emotions,stubborn,pound,tension,stroke,steady,overnight,chips,beef,suits,boxes,cassadine,collect,tragedy,spoil,realm,wipe,surgeon,stretch,stepped,nephew,neat,limo,confident,perspective,climb,punishment,finest,springfield,hint,furniture,blanket,twist,proceed,fries,worries,niece,gloves,soap,signature,disappoint,crawl,convicted,flip,counsel,doubts,crimes,accusing,shaking,remembering,hallway,halfway,bothered,madam,gather,cameras,blackmail,symptoms,rope,ordinary,imagined,cigarette,supportive,explosion,trauma,ouch,furious,cheat,avoiding,whew,thick,oooh,boarding,approve,urgent,shhh,misunderstanding,drawer,phony,interfere,catching,bargain,tragic,respond,punish,penthouse,thou,rach,ohhh,insult,bugs,beside,begged,absolute,strictly,socks,senses,sneaking,reward,polite,checks,tale,physically,instructions,fooled,blows,tabby,bitter,adorable,y'all,tested,suggestion,jewelry,alike,jacks,distracted,shelter,lessons,constable,circus,audition,tune,shoulders,mask,helpless,feeding,explains,sucked,robbery,objection,behave,valuable,shadows,courtroom,confusing,talented,smarter,mistaken,customer,bizarre,scaring,motherfucker,alert,vecchio,reverend,foolish,compliment,bastards,worker,wheelchair,protective,gentle,reverse,picnic,knee,cage,wives,wednesday,voices,toes,stink,scares,pour,cheated,slide,ruining,filling,exit,cottage,upside,proves,parked,diary,complaining,confessed,pipe,merely,massage,chop,spill,prayer,betray,waiter,scam,rats,fraud,brush,tables,sympathy,pill,filthy,seventeen,employee,bracelet,pays,fairly,deeper,arrive,tracking,spite,shed,recommend,oughta,nanny,menu,diet,corn,roses,patch,dime,devastated,subtle,bullets,beans,pile,confirm,strings,parade,borrowed,toys,straighten,steak,premonition,planted,honored,exam,convenient,traveling,laying,insisted,dish,aitoro,kindly,grandson,donor,temper,teenager,proven,mothers,denial,backwards,tent,swell,noon,happiest,drives,thinkin,spirits,potion,holes,fence,whatsoever,rehearsal,overheard,lemme,hostage,bench,tryin,taxi,shove,moron,impress,needle,intelligent,instant,disagree,stinks,rianna,recover,groom,gesture,constantly,bartender,suspects,sealed,legally,hears,dresses,sheet,psychic,teenage,knocking,judging,accidentally,waking,rumor,manners,homeless,hollow,desperately,tapes,referring,item,genoa,gear,majesty,cried,tons,spells,instinct,quote,motorcycle,convincing,fashioned,aids,accomplished,grip,bump,upsetting,needing,invisible,forgiveness,feds,compare,bothers,tooth,inviting,earn,compromise,cocktail,tramp,jabot,intimate,dignity,dealt,souls,informed,gods,dressing,cigarettes,alistair,leak,fond,corky,seduce,liquor,fingerprints,enchantment,butters,stuffed,stavros,emotionally,transplant,tips,oxygen,nicely,lunatic,drill,complain,announcement,unfortunate,slap,prayers,plug,opens,oath,o'neill,mutual,yacht,remembers,fried,extraordinary,bait,warton,sworn,stare,safely,reunion,burst,might've,dive,aboard,expose,buddies,trusting,booze,sweep,sore,scudder,properly,parole,ditch,canceled,speaks,glow,wears,thirsty,skull,ringing,dorm,dining,bend,unexpected,pancakes,harsh,flattered,ahhh,troubles,fights,favourite,eats,rage,undercover,spoiled,sloane,shine,destroying,deliberately,conspiracy,thoughtful,sandwiches,plates,nails,miracles,fridge,drank,contrary,beloved,allergic,washed,stalking,solved,sack,misses,forgiven,bent,maciver,involve,dragging,cooked,pointing,foul,dull,beneath,heels,faking,deaf,stunt,jealousy,hopeless,fears,cuts,scenario,necklace,crashed,accuse,restraining,homicide,helicopter,firing,safer,auction,videotape,tore,reservations,pops,appetite,wounds,vanquish,ironic,fathers,excitement,anyhow,tearing,sends,rape,laughed,belly,dealer,cooperate,accomplish,wakes,spotted,sorts,reservation,ashes,tastes,supposedly,loft,intentions,integrity,wished,towels,suspected,investigating,inappropriate,lipstick,lawn,compassion,cafeteria,scarf,precisely,obsession,loses,lighten,infection,granddaughter,explode,balcony,this'll,spying,publicity,depend,cracked,conscious,ally,absurd,vicious,invented,forbid,directions,defendant,bare,announce,screwing,salesman,robbed,leap,lakeview,insanity,reveal,possibilities,kidnap,gown,chairs,wishing,setup,punished,criminals,regrets,raped,quarters,lamp,dentist,anyways,anonymous,semester,risks,owes,lungs,explaining,delicate,tricked,eager,doomed,adoption,stab,sickness,scum,floating,envelope,vault,sorel,pretended,potatoes,plea,photograph,payback,misunderstood,kiddo,healing,cascade,capeside,stabbed,remarkable,brat,privilege,passionate,nerves,lawsuit,kidney,disturbed,cozy,tire,shirts,oven,ordering,delay,risky,monsters,honorable,grounded,closest,breakdown,bald,abandon,scar,collar,worthless,sucking,enormous,disturbing,disturb,distract,deals,conclusions,vodka,dishes,crawling,briefcase,wiped,whistle,sits,roast,rented,pigs,flirting,deposit,bottles,topic,riot,overreacting,logical,hostile,embarrass,casual,beacon,amusing,altar,claus,survival,skirt,shave,porch,ghosts,favors,drops,dizzy,chili,advise,strikes,rehab,photographer,peaceful,leery,heavens,fortunately,fooling,expectations,cigar,weakness,ranch,practicing,examine,cranes,bribe,sail,prescription,hush,fragile,forensics,expense,drugged,cows,bells,visitor,suitcase,sorta,scan,manticore,insecure,imagining,hardest,clerk,wrist,what'll,starters,silk,pump,pale,nicer,haul,flies,boot,thumb,there'd,how're,elders,quietly,pulls,idiots,erase,denying,ankle,amnesia,accepting,heartbeat,devane,confront,minus,legitimate,fixing,arrogant,tuna,supper,slightest,sins,sayin,recipe,pier,paternity,humiliating,genuine,snack,rational,minded,guessed,weddings,tumor,humiliated,aspirin,spray,picks,eyed,drowning,contacts,ritual,perfume,hiring,hating,docks,creatures,visions,thanking,thankful,sock,nineteen,fork,throws,teenagers,stressed,slice,rolls,plead,ladder,kicks,detectives,assured,tellin,shallow,responsibilities,repay,howdy,girlfriends,deadly,comforting,ceiling,verdict,insensitive,spilled,respected,messy,interrupted,halliwell,blond,bleed,wardrobe,takin,murders,backs,underestimate,justify,harmless,frustrated,fold,enzo,communicate,bugging,arson,whack,salary,rumors,obligation,liking,dearest,congratulate,vengeance,rack,puzzle,fires,courtesy,caller,blamed,tops,quiz,prep,curiosity,circles,barbecue,sunnydale,spinning,psychotic,cough,accusations,resent,laughs,freshman,envy,drown,bartlet,asses,sofa,poster,highness,dock,apologies,theirs,stat,stall,realizes,psych,mmmm,fools,understandable,treats,succeed,stir,relaxed,makin,gratitude,faithful,accent,witter,wandering,locate,inevitable,gretel,deed,crushed,controlling,smelled,robe,gossip,gambling,cosmetics,accidents,surprising,stiff,sincere,rushed,refrigerator,preparing,nightmares,mijo,ignoring,hunch,fireworks,drowned,brass,whispering,sophisticated,luggage,hike,explore,emotion,crashing,contacted,complications,shining,rolled,righteous,reconsider,goody,geek,frightening,ethics,creeps,courthouse,camping,affection,smythe,haircut,essay,baked,apologized,vibe,respects,receipt,mami,hats,destructive,adore,adopt,tracked,shorts,reminding,dough,creations,cabot,barrel,snuck,slight,reporters,pressing,magnificent,madame,lazy,glorious,fiancee,bits,visitation,sane,kindness,shoulda,rescued,mattress,lounge,lifted,importantly,glove,enterprises,disappointment,condo,beings,admitting,yelled,waving,spoon,screech,satisfaction,reads,nailed,worm,tick,resting,marvelous,fuss,cortlandt,chased,pockets,luckily,lilith,filing,conversations,consideration,consciousness,worlds,innocence,forehead,aggressive,trailer,slam,quitting,inform,delighted,daylight,danced,confidential,aunts,washing,tossed,spectra,marrow,lined,implying,hatred,grill,corpse,clues,sober,offended,morgue,infected,humanity,distraction,cart,wired,violation,promising,harassment,glue,d'angelo,cursed,brutal,warlocks,wagon,unpleasant,proving,priorities,mustn't,lease,flame,disappearance,depressing,thrill,sitter,ribs,flush,earrings,deadline,corporal,collapsed,update,snapped,smack,melt,figuring,delusional,coulda,burnt,tender,sperm,realise,pork,popped,interrogation,esteem,choosing,undo,pres,prayed,plague,manipulate,insulting,detention,delightful,coffeehouse,betrayal,apologizing,adjust,wrecked,wont,whipped,rides,reminder,monsieur,faint,bake,distress,correctly,complaint,blocked,tortured,risking,pointless,handing,dumping,cups,alibi,struggling,shiny,risked,mummy,mint,hose,hobby,fortunate,fleischman,fitting,curtain,counseling,rode,puppet,modeling,memo,irresponsible,humiliation,hiya,freakin,felony,choke,blackmailing,appreciated,tabloid,suspicion,recovering,pledge,panicked,nursery,louder,jeans,investigator,homecoming,frustrating,buys,busting,buff,sleeve,irony,dope,declare,autopsy,workin,torch,prick,limb,hysterical,goddamnit,fetch,dimension,crowded,clip,climbing,bonding,woah,trusts,negotiate,lethal,iced,fantasies,deeds,bore,babysitter,questioned,outrageous,kiriakis,insulted,grudge,driveway,deserted,definite,beep,wires,suggestions,searched,owed,lend,drunken,demanding,costanza,conviction,bumped,weigh,touches,tempted,shout,resolve,relate,poisoned,meals,invitations,haunted,bogus,autograph,affects,tolerate,stepping,spontaneous,sleeps,probation,manny,fist,spectacular,hostages,heroin,havin,habits,encouraging,consult,burgers,boyfriends,bailed,baggage,watches,troubled,torturing,teasing,sweetest,qualities,postpone,overwhelmed,malkovich,impulse,classy,charging,amazed,policeman,hypocrite,humiliate,hideous,d'ya,costumes,bluffing,betting,bein,bedtime,alcoholic,vegetable,tray,suspicions,spreading,splendid,shrimp,shouting,pressed,nooo,grieving,gladly,fling,eliminate,cereal,aaah,sonofabitch,paralyzed,lotta,locks,guaranteed,dummy,despise,dental,briefing,bluff,batteries,whatta,sounding,servants,presume,handwriting,fainted,dried,allright,acknowledge,whacked,toxic,reliable,quicker,overwhelming,lining,harassing,fatal,endless,dolls,convict,whatcha,unlikely,shutting,positively,overcome,goddam,essence,dose,diagnosis,cured,bully,ahold,yearbook,tempting,shelf,prosecution,pouring,possessed,greedy,wonders,thorough,spine,rath,psychiatric,meaningless,latte,jammed,ignored,fiance,evidently,contempt,compromised,cans,weekends,urge,theft,suing,shipment,scissors,responding,proposition,noises,matching,hormones,hail,grandchildren,gently,smashed,sexually,sentimental,nicest,manipulated,intern,handcuffs,framed,errands,entertaining,crib,carriage,barge,spends,slipping,seated,rubbing,rely,reject,recommendation,reckon,headaches,float,embrace,corners,whining,sweating,skipped,mountie,motives,listens,cristobel,cleaner,cheerleader,balsom,unnecessary,stunning,scent,quartermaines,pose,montega,loosen,info,hottest,haunt,gracious,forgiving,errand,cakes,blames,abortion,sketch,shifts,plotting,perimeter,pals,mere,mattered,lonigan,interference,eyewitness,enthusiasm,diapers,strongest,shaken,punched,portal,catches,backyard,terrorists,sabotage,organs,needy,cuff,civilization,woof,who'll,prank,obnoxious,mates,hereby,gabby,faked,cellar,whitelighter,void,strangle,sour,muffins,interfering,demonic,clearing,boutique,barrington,terrace,smoked,righty,quack,petey,pact,knot,ketchup,disappearing,cordy,uptight,ticking,terrifying,tease,swamp,secretly,rejection,reflection,realizing,rays,mentally,marone,doubted,deception,congressman,cheesy,toto,stalling,scoop,ribbon,immune,expects,destined,bets,bathing,appreciation,accomplice,wander,shoved,sewer,scroll,retire,lasts,fugitive,freezer,discount,cranky,crank,clearance,bodyguard,anxiety,accountant,whoops,volunteered,talents,stinking,remotely,garlic,decency,cord,beds,altogether,uniforms,tremendous,popping,outa,observe,lung,hangs,feelin,dudes,donation,disguise,curb,bites,antique,toothbrush,realistic,predict,landlord,hourglass,hesitate,consolation,babbling,tipped,stranded,smartest,repeating,puke,psst,paycheck,overreacted,macho,juvenile,grocery,freshen,disposal,cuffs,caffeine,vanished,unfinished,ripping,pinch,flattering,expenses,dinners,colleague,ciao,belthazor,attorneys,woulda,whereabouts,waitin,truce,tripped,tasted,steer,poisoning,manipulative,immature,husbands,heel,granddad,delivering,condoms,addict,trashed,raining,pasta,needles,leaning,detector,coolest,batch,appointments,almighty,vegetables,spark,perfection,pains,momma,mole,meow,hairs,getaway,cracking,compliments,behold,verge,tougher,timer,tapped,taped,specialty,snooping,shoots,rendezvous,pentagon,leverage,jeopardize,janitor,grandparents,forbidden,clueless,bidding,ungrateful,unacceptable,tutor,serum,scuse,pajamas,mouths,lure,irrational,doom,cries,beautifully,arresting,approaching,traitor,sympathetic,smug,smash,rental,prostitute,premonitions,jumps,inventory,darlin,committing,banging,asap,worms,violated,vent,traumatic,traced,sweaty,shaft,overboard,insight,healed,grasp,experiencing,crappy,crab,chunk,awww,stain,shack,reacted,pronounce,poured,moms,marriages,jabez,handful,flipped,fireplace,embarrassment,disappears,concussion,bruises,brakes,twisting,swept,summon,splitting,sloppy,settling,reschedule,notch,hooray,grabbing,exquisite,disrespect,thornhart,straw,slapped,shipped,shattered,ruthless,refill,payroll,numb,mourning,manly,hunk,entertain,drift,dreadful,doorstep,confirmation,chops,appreciates,vague,tires,stressful,stashed,stash,sensed,preoccupied,predictable,noticing,madly,gunshot,dozens,dork,confuse,cleaners,charade,chalk,cappuccino,bouquet,amulet,addiction,who've,warming,unlock,satisfy,sacrificed,relaxing,lone,blocking,blend,blankets,addicted,yuck,hunger,hamburger,greeting,greet,gravy,gram,dreamt,dice,caution,backpack,agreeing,whale,taller,supervisor,sacrifices,phew,ounce,irrelevant,gran,felon,favorites,farther,fade,erased,easiest,convenience,compassionate,cane,backstage,agony,adores,veins,tweek,thieves,surgical,strangely,stetson,recital,proposing,productive,meaningful,immunity,hassle,goddamned,frighten,dearly,cease,ambition,wage,unstable,salvage,richer,refusing,raging,pumping,pressuring,mortals,lowlife,intimidated,intentionally,inspire,forgave,devotion,despicable,deciding,dash,comfy,breach,bark,aaaah,switching,swallowed,stove,screamed,scars,russians,pounding,poof,pipes,pawn,legit,invest,farewell,curtains,civilized,caviar,boost,token,superstition,supernatural,sadness,recorder,psyched,motivated,microwave,hallelujah,fraternity,dryer,cocoa,chewing,acceptable,unbelievably,smiled,smelling,simpler,respectable,remarks,khasinau,indication,gutter,grabs,fulfill,flashlight,ellenor,blooded,blink,blessings,beware,uhhh,turf,swings,slips,shovel,shocking,puff,mirrors,locking,heartless,fras,childish,cardiac,utterly,tuscany,ticked,stunned,statesville,sadly,purely,kiddin,jerks,hitch,flirt,fare,equals,dismiss,christening,casket,c'mere,breakup,biting,antibiotics,accusation,abducted,witchcraft,thread,runnin,punching,paramedics,newest,murdering,masks,lawndale,initials,grampa,choking,charms,careless,bushes,buns,bummed,shred,saves,saddle,rethink,regards,precinct,persuade,meds,manipulating,llanfair,leash,hearted,guarantees,fucks,disgrace,deposition,bookstore,boil,vitals,veil,trespassing,sidewalk,sensible,punishing,overtime,optimistic,obsessing,notify,mornin,jeopardy,jaffa,injection,hilarious,desires,confide,cautious,yada,where're,vindictive,vial,teeny,stroll,sittin,scrub,rebuild,posters,ordeal,nuns,intimacy,inheritance,exploded,donate,distracting,despair,crackers,wildwind,virtue,thoroughly,tails,spicy,sketches,sights,sheer,shaving,seize,scarecrow,refreshing,prosecute,platter,napkin,misplaced,merchandise,loony,jinx,heroic,frankenstein,ambitious,syrup,solitary,resemblance,reacting,premature,lavery,flashes,cheque,awright,acquainted,wrapping,untie,salute,realised,priceless,partying,lightly,lifting,kasnoff,insisting,glowing,generator,explosives,cutie,confronted,buts,blouse,ballistic,antidote,analyze,allowance,adjourned,unto,understatement,tucked,touchy,subconscious,screws,sarge,roommates,rambaldi,offend,nerd,knives,irresistible,incapable,hostility,goddammit,fuse,frat,curfew,blackmailed,walkin,starve,sleigh,sarcastic,recess,rebound,pinned,parlor,outfits,livin,heartache,haired,fundraiser,doorman,discreet,dilucca,cracks,considerate,climbed,catering,apophis,zoey,urine,strung,stitches,sordid,sark,protector,phoned,pets,hostess,flaw,flavor,deveraux,consumed,confidentiality,bourbon,straightened,specials,spaghetti,prettier,powerless,playin,playground,paranoia,instantly,havoc,exaggerating,eavesdropping,doughnuts,diversion,deepest,cutest,comb,bela,behaving,anyplace,accessory,workout,translate,stuffing,speeding,slime,royalty,polls,marital,lurking,lottery,imaginary,greetings,fairwinds,elegant,elbow,credibility,credentials,claws,chopped,bridal,bedside,babysitting,witty,unforgivable,underworld,tempt,tabs,sophomore,selfless,secrecy,restless,okey,movin,metaphor,messes,meltdown,lecter,incoming,gasoline,diefenbaker,buckle,admired,adjustment,warmth,throats,seduced,queer,parenting,noses,luckiest,graveyard,gifted,footsteps,dimeras,cynical,wedded,verbal,unpredictable,tuned,stoop,slides,sinking,rigged,plumbing,lingerie,hankey,greed,everwood,elope,dresser,chauffeur,bulletin,bugged,bouncing,temptation,strangest,slammed,sarcasm,pending,packages,orderly,obsessive,murderers,meteor,inconvenience,glimpse,froze,execute,courageous,consulate,closes,bosses,bees,amends,wuss,wolfram,wacky,unemployed,testifying,syringe,stew,startled,sorrow,sleazy,shaky,screams,rsquo,remark,poke,nutty,mentioning,mend,inspiring,impulsive,housekeeper,foam,fingernails,conditioning,baking,whine,thug,starved,sniffing,sedative,programmed,picket,paged,hound,homosexual,homo,hips,forgets,flipping,flea,flatter,dwell,dumpster,choo,assignments,ants,vile,unreasonable,tossing,thanked,steals,souvenir,scratched,psychopath,outs,obstruction,obey,lump,insists,harass,gloat,filth,edgy,didn,coroner,confessing,bruise,betraying,bailing,appealing,adebisi,wrath,wandered,waist,vain,traps,stepfather,poking,obligated,heavenly,dilemma,crazed,contagious,coaster,cheering,bundle,vomit,thingy,speeches,robbing,raft,pumped,pillows,peep,packs,neglected,m'kay,loneliness,intrude,helluva,gardener,forresters,drooling,betcha,vase,supermarket,squat,spitting,rhyme,relieve,receipts,racket,pictured,pause,overdue,motivation,morgendorffer,kidnapper,insect,horns,feminine,eyeballs,dumps,disappointing,crock,convertible,claw,clamp,canned,cambias,bathtub,avanya,artery,weep,warmer,suspense,summoned,spiders,reiber,raving,pushy,postponed,ohhhh,noooo,mold,laughter,incompetent,hugging,groceries,drip,communicating,auntie,adios,wraps,wiser,willingly,weirdest,timmih,thinner,swelling,swat,steroids,sensitivity,scrape,rehearse,prophecy,ledge,justified,insults,hateful,handles,doorway,chatting,buyer,buckaroo,bedrooms,askin,ammo,tutoring,subpoena,scratching,privileges,pager,mart,intriguing,idiotic,grape,enlighten,corrupt,brunch,bridesmaid,barking,applause,acquaintance,wretched,superficial,soak,smoothly,sensing,restraint,posing,pleading,payoff,oprah,nemo,morals,loaf,jumpy,ignorant,herbal,hangin,germs,generosity,flashing,doughnut,clumsy,chocolates,captive,behaved,apologise,vanity,stumbled,preview,poisonous,perjury,parental,onboard,mugged,minding,linen,knots,interviewing,humour,grind,greasy,goons,drastic,coop,comparing,cocky,clearer,bruised,brag,bind,worthwhile,whoop,vanquishing,tabloids,sprung,spotlight,sentencing,racist,provoke,pining,overly,locket,imply,impatient,hovering,hotter,fest,endure,dots,doren,debts,crawled,chained,brit,breaths,weirdo,warmed,wand,troubling,tok'ra,strapped,soaked,skipping,scrambled,rattle,profound,musta,mocking,misunderstand,limousine,kacl,hustle,forensic,enthusiastic,duct,drawers,devastating,conquer,clarify,chores,cheerleaders,cheaper,callin,blushing,barging,abused,yoga,wrecking,wits,waffles,virginity,vibes,uninvited,unfaithful,teller,strangled,scheming,ropes,rescuing,rave,postcard,o'reily,morphine,lotion,lads,kidneys,judgement,itch,indefinitely,grenade,glamorous,genetically,freud,discretion,delusions,crate,competent,bakery,argh,ahhhh,wedge,wager,unfit,tripping,torment,superhero,stirring,spinal,sorority,seminar,scenery,rabble,pneumonia,perks,override,ooooh,mija,manslaughter,mailed,lime,lettuce,intimidate,guarded,grieve,grad,frustration,doorbell,chinatown,authentic,arraignment,annulled,allergies,wanta,verify,vegetarian,tighter,telegram,stalk,spared,shoo,satisfying,saddam,requesting,pens,overprotective,obstacles,notified,nasedo,grandchild,genuinely,flushed,fluids,floss,escaping,ditched,cramp,corny,bunk,bitten,billions,bankrupt,yikes,wrists,ultrasound,ultimatum,thirst,sniff,shakes,salsa,retrieve,reassuring,pumps,neurotic,negotiating,needn't,monitors,millionaire,lydecker,limp,incriminating,hatchet,gracias,gordie,fills,feeds,doubting,decaf,biopsy,whiz,voluntarily,ventilator,unpack,unload,toad,spooked,snitch,schillinger,reassure,persuasive,mystical,mysteries,matrimony,mails,jock,headline,explanations,dispatch,curly,cupid,condolences,comrade,cassadines,bulb,bragging,awaits,assaulted,ambush,adolescent,abort,yank,whit,vaguely,undermine,tying,swamped,stabbing,slippers,slash,sincerely,sigh,setback,secondly,rotting,precaution,pcpd,melting,liaison,hots,hooking,headlines,haha,ganz,fury,felicity,fangs,encouragement,earring,dreidel,dory,donut,dictate,decorating,cocktails,bumps,blueberry,believable,backfired,backfire,apron,adjusting,vous,vouch,vitamins,ummm,tattoos,slimy,sibling,shhhh,renting,peculiar,parasite,paddington,marries,mailbox,magically,lovebirds,knocks,informant,exits,drazen,distractions,disconnected,dinosaurs,dashwood,crooked,conveniently,wink,warped,underestimated,tacky,shoving,seizure,reset,pushes,opener,mornings,mash,invent,indulge,horribly,hallucinating,festive,eyebrows,enjoys,desperation,dealers,darkest,daph,boragora,belts,bagel,authorization,auditions,agitated,wishful,wimp,vanish,unbearable,tonic,suffice,suction,slaying,safest,rocking,relive,puttin,prettiest,noisy,newlyweds,nauseous,misguided,mildly,midst,liable,judgmental,indy,hunted,givin,fascinated,elephants,dislike,deluded,decorate,crummy,contractions,carve,bottled,bonded,bahamas,unavailable,twenties,trustworthy,surgeons,stupidity,skies,remorse,preferably,pies,nausea,napkins,mule,mourn,melted,mashed,inherit,greatness,golly,excused,dumbo,drifting,delirious,damaging,cubicle,compelled,comm,chooses,checkup,boredom,bandages,alarms,windshield,who're,whaddya,transparent,surprisingly,sunglasses,slit,roar,reade,prognosis,probe,pitiful,persistent,peas,nosy,nagging,morons,masterpiece,martinis,limbo,liars,irritating,inclined,hump,hoynes,fiasco,eatin,cubans,concentrating,colorful,clam,cider,brochure,barto,bargaining,wiggle,welcoming,weighing,vanquished,stains,sooo,snacks,smear,sire,resentment,psychologist,pint,overhear,morality,landingham,kisser,hoot,holling,handshake,grilled,formality,elevators,depths,confirms,boathouse,accidental,westbridge,wacko,ulterior,thugs,thighs,tangled,stirred,snag,sling,sleaze,rumour,ripe,remarried,puddle,pins,perceptive,miraculous,longing,lockup,librarian,impressions,immoral,hypothetically,guarding,gourmet,gabe,faxed,extortion,downright,digest,cranberry,bygones,buzzing,burying,bikes,weary,taping,takeout,sweeping,stepmother,stale,senor,seaborn,pros,pepperoni,newborn,ludicrous,injected,geeks,forged,faults,drue,dire,dief,desi,deceiving,caterer,calmed,budge,ankles,vending,typing,tribbiani,there're,squared,snowing,shades,sexist,rewrite,regretted,raises,picky,orphan,mural,misjudged,miscarriage,memorize,leaking,jitters,invade,interruption,illegally,handicapped,glitch,gittes,finer,distraught,dispose,dishonest,digs,dads,cruelty,circling,canceling,butterflies,belongings,barbrady,amusement,alias,zombies,where've,unborn,swearing,stables,squeezed,sensational,resisting,radioactive,questionable,privileged,portofino,owning,overlook,orson,oddly,interrogate,imperative,impeccable,hurtful,hors,heap,graders,glance,disgust,devious,destruct,crazier,countdown,chump,cheeseburger,burglar,berries,ballroom,assumptions,annoyed,allergy,admirer,admirable,activate,underpants,twit,tack,strokes,stool,sham,scrap,retarded,resourceful,remarkably,refresh,pressured,precautions,pointy,nightclub,mustache,maui,lace,hunh,hubby,flare,dont,dokey,dangerously,crushing,clinging,choked,chem,cheerleading,checkbook,cashmere,calmly,blush,believer,amazingly,alas,what've,toilets,tacos,stairwell,spirited,sewing,rubbed,punches,protects,nuisance,motherfuckers,mingle,kynaston,knack,kinkle,impose,gullible,godmother,funniest,friggin,folding,fashions,eater,dysfunctional,drool,dripping,ditto,cruising,criticize,conceive,clone,cedars,caliber,brighter,blinded,birthdays,banquet,anticipate,annoy,whim,whichever,volatile,veto,vested,shroud,rests,reindeer,quarantine,pleases,painless,orphans,orphanage,offence,obliged,negotiation,narcotics,mistletoe,meddling,manifest,lookit,lilah,intrigued,injustice,homicidal,gigantic,exposing,elves,disturbance,disastrous,depended,demented,correction,cooped,cheerful,buyers,brownies,beverage,basics,arvin,weighs,upsets,unethical,swollen,sweaters,stupidest,sensation,scalpel,props,prescribed,pompous,objections,mushrooms,mulwray,manipulation,lured,internship,insignificant,inmate,incentive,fulfilled,disagreement,crypt,cornered,copied,brightest,beethoven,attendant,amaze,yogurt,wyndemere,vocabulary,tulsa,tactic,stuffy,respirator,pretends,polygraph,pennies,ordinarily,olives,necks,morally,martyr,leftovers,joints,hopping,homey,hints,heartbroken,forge,florist,firsthand,fiend,dandy,crippled,corrected,conniving,conditioner,clears,chemo,bubbly,bladder,beeper,baptism,wiring,wench,weaknesses,volunteering,violating,unlocked,tummy,surrogate,subid,stray,startle,specifics,slowing,scoot,robbers,rightful,richest,qfxmjrie,puffs,pierced,pencils,paralysis,makeover,luncheon,linksynergy,jerky,jacuzzi,hitched,hangover,fracture,flock,firemen,disgusted,darned,clams,borrowing,banged,wildest,weirder,unauthorized,stunts,sleeves,sixties,shush,shalt,retro,quits,pegged,painfully,paging,omelet,memorized,lawfully,jackets,intercept,ingredient,grownup,glued,fulfilling,enchanted,delusion,daring,compelling,carton,bridesmaids,bribed,boiling,bathrooms,bandage,awaiting,assign,arrogance,antiques,ainsley,turkeys,trashing,stockings,stalked,stabilized,skates,sedated,robes,respecting,psyche,presumptuous,prejudice,paragraph,mocha,mints,mating,mantan,lorne,loads,listener,itinerary,hepatitis,heave,guesses,fading,examining,dumbest,dishwasher,deceive,cunning,cripple,convictions,confided,compulsive,compromising,burglary,bumpy,brainwashed,benes,arnie,affirmative,adrenaline,adamant,watchin,waitresses,transgenic,toughest,tainted,surround,stormed,spree,spilling,spectacle,soaking,shreds,sewers,severed,scarce,scamming,scalp,rewind,rehearsing,pretentious,potions,overrated,obstacle,nerds,meems,mcmurphy,maternity,maneuver,loathe,fertility,eloping,ecstatic,ecstasy,divorcing,dignan,costing,clubhouse,clocks,candid,bursting,breather,braces,bending,arsonist,adored,absorb,valiant,uphold,unarmed,topolsky,thrilling,thigh,terminate,sustain,spaceship,snore,sneeze,smuggling,salty,quaint,patronize,patio,morbid,mamma,kettle,joyous,invincible,interpret,insecurities,impulses,illusions,holed,exploit,drivin,defenseless,dedicate,cradle,coupon,countless,conjure,cardboard,booking,backseat,accomplishment,wordsworth,wisely,valet,vaccine,urges,unnatural,unlucky,truths,traumatized,tasting,swears,strawberries,steaks,stats,skank,seducing,secretive,scumbag,screwdriver,schedules,rooting,rightfully,rattled,qualifies,puppets,prospects,pronto,posse,polling,pedestal,palms,muddy,morty,microscope,merci,lecturing,inject,incriminate,hygiene,grapefruit,gazebo,funnier,cuter,bossy,booby,aides,zende,winthrop,warrants,valentines,undressed,underage,truthfully,tampered,suffers,speechless,sparkling,sidelines,shrek,railing,puberty,pesky,outrage,outdoors,motions,moods,lunches,litter,kidnappers,itching,intuition,imitation,humility,hassling,gallons,drugstore,dosage,disrupt,dipping,deranged,debating,cuckoo,cremated,craziness,cooperating,circumstantial,chimney,blinking,biscuits,admiring,weeping,triad,trashy,soothing,slumber,slayers,skirts,siren,shindig,sentiment,rosco,riddance,quaid,purity,proceeding,pretzels,panicking,mckechnie,lovin,leaked,intruding,impersonating,ignorance,hamburgers,footprints,fluke,fleas,festivities,fences,feisty,evacuate,emergencies,deceived,creeping,craziest,corpses,conned,coincidences,bounced,bodyguards,blasted,bitterness,baloney,ashtray,apocalypse,zillion,watergate,wallpaper,telesave,sympathize,sweeter,startin,spades,sodas,snowed,sleepover,signor,seein,retainer,restroom,rested,repercussions,reliving,reconcile,prevail,preaching,overreact,o'neil,noose,moustache,manicure,maids,landlady,hypothetical,hopped,homesick,hives,hesitation,herbs,hectic,heartbreak,haunting,gangs,frown,fingerprint,exhausting,everytime,disregard,cling,chevron,chaperone,blinding,bitty,beads,battling,badgering,anticipation,upstanding,unprofessional,unhealthy,turmoil,truthful,toothpaste,tippin,thoughtless,tagataya,shooters,senseless,rewarding,propane,preposterous,pigeons,pastry,overhearing,obscene,negotiable,loner,jogging,itchy,insinuating,insides,hospitality,hormone,hearst,forthcoming,fists,fifties,etiquette,endings,destroys,despises,deprived,cuddy,crust,cloak,circumstance,chewed,casserole,bidder,bearer,artoo,applaud,appalling,vowed,virgins,vigilante,undone,throttle,testosterone,tailor,symptom,swoop,suitcases,stomp,sticker,stakeout,spoiling,snatched,smoochy,smitten,shameless,restraints,researching,renew,refund,reclaim,raoul,puzzles,purposely,punks,prosecuted,plaid,picturing,pickin,parasites,mysteriously,multiply,mascara,jukebox,interruptions,gunfire,furnace,elbows,duplicate,drapes,deliberate,decoy,cryptic,coupla,condemn,complicate,colossal,clerks,clarity,brushed,banished,argon,alarmed,worships,versa,uncanny,technicality,sundae,stumble,stripping,shuts,schmuck,satin,saliva,robber,relentless,reconnect,recipes,rearrange,rainy,psychiatrists,policemen,plunge,plugged,patched,overload,o'malley,mindless,menus,lullaby,lotte,leavin,killin,karinsky,invalid,hides,grownups,griff,flaws,flashy,flaming,fettes,evicted,dread,degrassi,dealings,dangers,cushion,bowel,barged,abide,abandoning,wonderfully,wait'll,violate,suicidal,stayin,sorted,slamming,sketchy,shoplifting,raiser,quizmaster,prefers,needless,motherhood,momentarily,migraine,lifts,leukemia,leftover,keepin,hinks,hellhole,gowns,goodies,gallon,futures,entertained,eighties,conspiring,cheery,benign,apiece,adjustments,abusive,abduction,wiping,whipping,welles,unspeakable,unidentified,trivial,transcripts,textbook,supervise,superstitious,stricken,stimulating,spielberg,slices,shelves,scratches,sabotaged,retrieval,repressed,rejecting,quickie,ponies,peeking,outraged,o'connell,moping,moaning,mausoleum,licked,kovich,klutz,interrogating,interfered,insulin,infested,incompetence,hyper,horrified,handedly,gekko,fraid,fractured,examiner,eloped,disoriented,dashing,crashdown,courier,cockroach,chipped,brushing,bombed,bolts,baths,baptized,astronaut,assurance,anemia,abuela,abiding,withholding,weave,wearin,weaker,suffocating,straws,straightforward,stench,steamed,starboard,sideways,shrinks,shortcut,scram,roasted,roaming,riviera,respectfully,repulsive,psychiatry,provoked,penitentiary,painkillers,ninotchka,mitzvah,milligrams,midge,marshmallows,looky,lapse,kubelik,intellect,improvise,implant,goa'ulds,giddy,geniuses,fruitcake,footing,fightin,drinkin,doork,detour,cuddle,crashes,combo,colonnade,cheats,cetera,bailiff,auditioning,assed,amused,alienate,aiding,aching,unwanted,topless,tongues,tiniest,superiors,soften,sheldrake,rawley,raisins,presses,plaster,nessa,narrowed,minions,merciful,lawsuits,intimidating,infirmary,inconvenient,imposter,hugged,honoring,holdin,hades,godforsaken,fumes,forgery,foolproof,folder,flattery,fingertips,exterminator,explodes,eccentric,dodging,disguised,crave,constructive,concealed,compartment,chute,chinpokomon,bodily,astronauts,alimony,accustomed,abdominal,wrinkle,wallow,valium,untrue,uncover,trembling,treasures,torched,toenails,timed,termites,telly,taunting,taransky,talker,succubus,smarts,sliding,sighting,semen,seizures,scarred,savvy,sauna,saddest,sacrificing,rubbish,riled,ratted,rationally,provenance,phonse,perky,pedal,overdose,nasal,nanites,mushy,movers,missus,midterm,merits,melodramatic,manure,knitting,invading,interpol,incapacitated,hotline,hauling,gunpoint,grail,ganza,framing,flannel,faded,eavesdrop,desserts,calories,breathtaking,bleak,blacked,batter,aggravated,yanked,wigand,whoah,unwind,undoubtedly,unattractive,twitch,trimester,torrance,timetable,taxpayers,strained,stared,slapping,sincerity,siding,shenanigans,shacking,sappy,samaritan,poorer,politely,paste,oysters,overruled,nightcap,mosquito,millimeter,merrier,manhood,lucked,kilos,ignition,hauled,harmed,goodwill,freshmen,fenmore,fasten,farce,exploding,erratic,drunks,ditching,d'artagnan,cramped,contacting,closets,clientele,chimp,bargained,arranging,anesthesia,amuse,altering,afternoons,accountable,abetting,wolek,waved,uneasy,toddy,tattooed,spauldings,sliced,sirens,schibetta,scatter,rinse,remedy,redemption,pleasures,optimism,oblige,mmmmm,masked,malicious,mailing,kosher,kiddies,judas,isolate,insecurity,incidentally,heals,headlights,growl,grilling,glazed,flunk,floats,fiery,fairness,exercising,excellency,disclosure,cupboard,counterfeit,condescending,conclusive,clicked,cleans,cholesterol,cashed,broccoli,brats,blueprints,blindfold,billing,attach,appalled,alrighty,wynant,unsolved,unreliable,toots,tighten,sweatshirt,steinbrenner,steamy,spouse,sonogram,slots,sleepless,shines,retaliate,rephrase,redeem,rambling,quilt,quarrel,prying,proverbial,priced,prescribe,prepped,pranks,possessive,plaintiff,pediatrics,overlooked,outcast,nightgown,mumbo,mediocre,mademoiselle,lunchtime,lifesaver,leaned,lambs,interns,hounding,hellmouth,hahaha,goner,ghoul,gardening,frenzy,foyer,extras,exaggerate,everlasting,enlightened,dialed,devote,deceitful,d'oeuvres,cosmetic,contaminated,conspired,conning,cavern,carving,butting,boiled,blurry,babysit,ascension,aaaaah,wildly,whoopee,whiny,weiskopf,walkie,vultures,vacations,upfront,unresolved,tampering,stockholders,snaps,sleepwalking,shrunk,sermon,seduction,scams,revolve,phenomenal,patrolling,paranormal,ounces,omigod,nightfall,lashing,innocents,infierno,incision,humming,haunts,gloss,gloating,frannie,fetal,feeny,entrapment,discomfort,detonator,dependable,concede,complication,commotion,commence,chulak,caucasian,casually,brainer,bolie,ballpark,anwar,analyzing,accommodations,youse,wring,wallowing,transgenics,thrive,tedious,stylish,strippers,sterile,squeezing,squeaky,sprained,solemn,snoring,shattering,shabby,seams,scrawny,revoked,residue,reeks,recite,ranting,quoting,predicament,plugs,pinpoint,petrified,pathological,passports,oughtta,nighter,navigate,kippie,intrigue,intentional,insufferable,hunky,how've,horrifying,hearty,hamptons,grazie,funerals,forks,fetched,excruciating,enjoyable,endanger,dumber,drying,diabolical,crossword,corry,comprehend,clipped,classmates,candlelight,brutally,brutality,boarded,bathrobe,authorize,assemble,aerobics,wholesome,whiff,vermin,trophies,trait,tragically,toying,testy,tasteful,stocked,spinach,sipping,sidetracked,scrubbing,scraping,sanctity,robberies,ridin,retribution,refrain,realities,radiant,protesting,projector,plutonium,payin,parting,o'reilly,nooooo,motherfucking,measly,manic,lalita,juggling,jerking,intro,inevitably,hypnosis,huddle,horrendous,hobbies,heartfelt,harlin,hairdresser,gonorrhea,fussing,furtwangler,fleeting,flawless,flashed,fetus,eulogy,distinctly,disrespectful,denies,crossbow,cregg,crabs,cowardly,contraction,contingency,confirming,condone,coffins,cleansing,cheesecake,certainty,cages,c'est,briefed,bravest,bosom,boils,binoculars,bachelorette,appetizer,ambushed,alerted,woozy,withhold,vulgar,utmost,unleashed,unholy,unhappiness,unconditional,typewriter,typed,twists,supermodel,subpoenaed,stringing,skeptical,schoolgirl,romantically,rocked,revoir,reopen,puncture,preach,polished,planetarium,penicillin,peacefully,nurturing,more'n,mmhmm,midgets,marklar,lodged,lifeline,jellyfish,infiltrate,hutch,horseback,heist,gents,frickin,freezes,forfeit,flakes,flair,fathered,eternally,epiphany,disgruntled,discouraged,delinquent,decipher,danvers,cubes,credible,coping,chills,cherished,catastrophe,bombshell,birthright,billionaire,ample,affections,admiration,abbotts,whatnot,watering,vinegar,unthinkable,unseen,unprepared,unorthodox,underhanded,uncool,timeless,thump,thermometer,theoretically,tapping,tagged,swung,stares,spiked,solves,smuggle,scarier,saucer,quitter,prudent,powdered,poked,pointers,peril,penetrate,penance,opium,nudge,nostrils,neurological,mockery,mobster,medically,loudly,insights,implicate,hypocritical,humanly,holiness,healthier,hammered,haldeman,gunman,gloom,freshly,francs,flunked,flawed,emptiness,drugging,dozer,derevko,deprive,deodorant,cryin,crocodile,coloring,colder,cognac,clocked,clippings,charades,chanting,certifiable,caterers,brute,brochures,botched,blinders,bitchin,banter,woken,ulcer,tread,thankfully,swine,swimsuit,swans,stressing,steaming,stamped,stabilize,squirm,snooze,shuffle,shredded,seafood,scratchy,savor,sadistic,rhetorical,revlon,realist,prosecuting,prophecies,polyester,petals,persuasion,paddles,o'leary,nuthin,neighbour,negroes,muster,meningitis,matron,lockers,letterman,legged,indictment,hypnotized,housekeeping,hopelessly,hallucinations,grader,goldilocks,girly,flask,envelopes,downside,doves,dissolve,discourage,disapprove,diabetic,deliveries,decorator,crossfire,criminally,containment,comrades,complimentary,chatter,catchy,cashier,cartel,caribou,cardiologist,brawl,booted,barbershop,aryan,angst,administer,zellie,wreak,whistles,vandalism,vamps,uterus,upstate,unstoppable,understudy,tristin,transcript,tranquilizer,toxins,tonsils,stempel,spotting,spectator,spatula,softer,snotty,slinging,showered,sexiest,sensual,sadder,rimbaud,restrain,resilient,remission,reinstate,rehash,recollection,rabies,popsicle,plausible,pediatric,patronizing,ostrich,ortolani,oooooh,omelette,mistrial,marseilles,loophole,laughin,kevvy,irritated,infidelity,hypothermia,horrific,groupie,grinding,graceful,goodspeed,gestures,frantic,extradition,echelon,disks,dawnie,dared,damsel,curled,collateral,collage,chant,calculating,bumping,bribes,boardwalk,blinds,blindly,bleeds,bickering,beasts,backside,avenge,apprehended,anguish,abusing,youthful,yells,yanking,whomever,when'd,vomiting,vengeful,unpacking,unfamiliar,undying,tumble,trolls,treacherous,tipping,tantrum,tanked,summons,straps,stomped,stinkin,stings,staked,squirrels,sprinkles,speculate,sorting,skinned,sicko,sicker,shootin,shatter,seeya,schnapps,s'posed,ronee,respectful,regroup,regretting,reeling,reckoned,ramifications,puddy,projections,preschool,plissken,platonic,permalash,outdone,outburst,mutants,mugging,misfortune,miserably,miraculously,medications,margaritas,manpower,lovemaking,logically,leeches,latrine,kneel,inflict,impostor,hypocrisy,hippies,heterosexual,heightened,hecuba,healer,gunned,grooming,groin,gooey,gloomy,frying,friendships,fredo,firepower,fathom,exhaustion,evils,endeavor,eggnog,dreaded,d'arcy,crotch,coughing,coronary,cookin,consummate,congrats,companionship,caved,caspar,bulletproof,brilliance,breakin,brash,blasting,aloud,airtight,advising,advertise,adultery,aches,wronged,upbeat,trillion,thingies,tending,tarts,surreal,specs,specialize,spade,shrew,shaping,selves,schoolwork,roomie,recuperating,rabid,quart,provocative,proudly,pretenses,prenatal,pharmaceuticals,pacing,overworked,originals,nicotine,murderous,mileage,mayonnaise,massages,losin,interrogated,injunction,impartial,homing,heartbreaker,hacks,glands,giver,fraizh,flips,flaunt,englishman,electrocuted,dusting,ducking,drifted,donating,cylon,crutches,crates,cowards,comfortably,chummy,chitchat,childbirth,businesswoman,brood,blatant,bethy,barring,bagged,awakened,asbestos,airplanes,worshipped,winnings,why're,visualize,unprotected,unleash,trays,thicker,therapists,takeoff,streisand,storeroom,stethoscope,stacked,spiteful,sneaks,snapping,slaughtered,slashed,simplest,silverware,shits,secluded,scruples,scrubs,scraps,ruptured,roaring,receptionist,recap,raditch,radiator,pushover,plastered,pharmacist,perverse,perpetrator,ornament,ointment,nineties,napping,nannies,mousse,moors,momentary,misunderstandings,manipulator,malfunction,laced,kivar,kickin,infuriating,impressionable,holdup,hires,hesitated,headphones,hammering,groundwork,grotesque,graces,gauze,gangsters,frivolous,freeing,fours,forwarding,ferrars,faulty,fantasizing,extracurricular,empathy,divorces,detonate,depraved,demeaning,deadlines,dalai,cursing,cufflink,crows,coupons,comforted,claustrophobic,casinos,camped,busboy,bluth,bennetts,baskets,attacker,aplastic,angrier,affectionate,zapped,wormhole,weaken,unrealistic,unravel,unimportant,unforgettable,twain,suspend,superbowl,stutter,stewardess,stepson,standin,spandex,souvenirs,sociopath,skeletons,shivering,sexier,selfishness,scrapbook,ritalin,ribbons,reunite,remarry,relaxation,rattling,rapist,psychosis,prepping,poses,pleasing,pisses,piling,persecuted,padded,operatives,negotiator,natty,menopause,mennihan,martimmys,loyalties,laynie,lando,justifies,intimately,inexperienced,impotent,immortality,horrors,hooky,hinges,heartbreaking,handcuffed,gypsies,guacamole,grovel,graziella,goggles,gestapo,fussy,ferragamo,feeble,eyesight,explosions,experimenting,enchanting,doubtful,dizziness,dismantle,detectors,deserving,defective,dangling,dancin,crumble,creamed,cramping,conceal,clockwork,chrissakes,chrissake,chopping,cabinets,brooding,bonfire,blurt,bloated,blackmailer,beforehand,bathed,bathe,barcode,banish,badges,babble,await,attentive,aroused,antibodies,animosity,ya'll,wrinkled,wonderland,willed,whisk,waltzing,waitressing,vigilant,upbringing,unselfish,uncles,trendy,trajectory,striped,stamina,stalled,staking,stacks,spoils,snuff,snooty,snide,shrinking,senora,secretaries,scoundrel,saline,salads,rundown,riddles,relapse,recommending,raspberry,plight,pecan,pantry,overslept,ornaments,niner,negligent,negligence,nailing,mucho,mouthed,monstrous,malpractice,lowly,loitering,logged,lingering,lettin,lattes,kamal,juror,jillefsky,jacked,irritate,intrusion,insatiable,infect,impromptu,icing,hmmmm,hefty,gasket,frightens,flapping,firstborn,faucet,estranged,envious,dopey,doesn,disposition,disposable,disappointments,dipped,dignified,deceit,dealership,deadbeat,curses,coven,counselors,concierge,clutches,casbah,callous,cahoots,brotherly,britches,brides,bethie,beige,autographed,attendants,attaboy,astonishing,appreciative,antibiotic,aneurysm,afterlife,affidavit,zoning,whats,whaddaya,vasectomy,unsuspecting,toula,topanga,tonio,toasted,tiring,terrorized,tenderness,tailing,sweats,suffocated,sucky,subconsciously,starvin,sprouts,spineless,sorrows,snowstorm,smirk,slicery,sledding,slander,simmer,signora,sigmund,seventies,sedate,scented,sandals,rollers,retraction,resigning,recuperate,receptive,racketeering,queasy,provoking,priors,prerogative,premed,pinched,pendant,outsiders,orbing,opportunist,olanov,neurologist,nanobot,mommies,molested,misread,mannered,laundromat,intercom,inspect,insanely,infatuation,indulgent,indiscretion,inconsiderate,hurrah,howling,herpes,hasta,harassed,hanukkah,groveling,groosalug,gander,galactica,futile,fridays,flier,fixes,exploiting,exorcism,evasive,endorse,emptied,dreary,dreamy,downloaded,dodged,doctored,disobeyed,disneyland,disable,dehydrated,contemplating,coconuts,cockroaches,clogged,chilling,chaperon,cameraman,bulbs,bucklands,bribing,brava,bracelets,bowels,bluepoint,appetizers,appendix,antics,anointed,analogy,almonds,yammering,winch,weirdness,wangler,vibrations,vendor,unmarked,unannounced,twerp,trespass,travesty,transfusion,trainee,towelie,tiresome,straightening,staggering,sonar,socializing,sinus,sinners,shambles,serene,scraped,scones,scepter,sarris,saberhagen,ridiculously,ridicule,rents,reconciled,radios,publicist,pubes,prune,prude,precrime,postponing,pluck,perish,peppermint,peeled,overdo,nutshell,nostalgic,mulan,mouthing,mistook,meddle,maybourne,martimmy,lobotomy,livelihood,lippman,likeness,kindest,kaffee,jocks,jerked,jeopardizing,jazzed,insured,inquisition,inhale,ingenious,holier,helmets,heirloom,heinous,haste,harmsway,hardship,hanky,gutters,gruesome,groping,goofing,godson,glare,finesse,figuratively,ferrie,endangerment,dreading,dozed,dorky,dmitri,divert,discredit,dialing,cufflinks,crutch,craps,corrupted,cocoon,cleavage,cannery,bystander,brushes,bruising,bribery,brainstorm,bolted,binge,ballistics,astute,arroway,adventurous,adoptive,addicts,addictive,yadda,whitelighters,wematanye,weeds,wedlock,wallets,vulnerability,vroom,vents,upped,unsettling,unharmed,trippin,trifle,tracing,tormenting,thats,syphilis,subtext,stickin,spices,sores,smacked,slumming,sinks,signore,shitting,shameful,shacked,septic,seedy,righteousness,relish,rectify,ravishing,quickest,phoebs,perverted,peeing,pedicure,pastrami,passionately,ozone,outnumbered,oregano,offender,nukes,nosed,nighty,nifty,mounties,motivate,moons,misinterpreted,mercenary,mentality,marsellus,lupus,lumbar,lovesick,lobsters,leaky,laundering,latch,jafar,instinctively,inspires,indoors,incarcerated,hundredth,handkerchief,gynecologist,guittierez,groundhog,grinning,goodbyes,geese,fullest,eyelashes,eyelash,enquirer,endlessly,elusive,disarm,detest,deluding,dangle,cotillion,corsage,conjugal,confessional,cones,commandment,coded,coals,chuckle,christmastime,cheeseburgers,chardonnay,celery,campfire,calming,burritos,brundle,broflovski,brighten,borderline,blinked,bling,beauties,bauers,battered,articulate,alienated,ahhhhh,agamemnon,accountants,y'see,wrongful,wrapper,workaholic,winnebago,whispered,warts,vacate,unworthy,unanswered,tonane,tolerated,throwin,throbbing,thrills,thorns,thereof,there've,tarot,sunscreen,stretcher,stereotype,soggy,sobbing,sizable,sightings,shucks,shrapnel,sever,senile,seaboard,scorned,saver,rebellious,rained,putty,prenup,pores,pinching,pertinent,peeping,paints,ovulating,opposites,occult,nutcracker,nutcase,newsstand,newfound,mocked,midterms,marshmallow,marbury,maclaren,leans,krudski,knowingly,keycard,junkies,juilliard,jolinar,irritable,invaluable,inuit,intoxicating,instruct,insolent,inexcusable,incubator,illustrious,hunsecker,houseguest,homosexuals,homeroom,hernia,harming,handgun,hallways,hallucination,gunshots,groupies,groggy,goiter,gingerbread,giggling,frigging,fledged,fedex,fairies,exchanging,exaggeration,esteemed,enlist,drags,dispense,disloyal,disconnect,desks,dentists,delacroix,degenerate,daydreaming,cushions,cuddly,corroborate,complexion,compensated,cobbler,closeness,chilled,checkmate,channing,carousel,calms,bylaws,benefactor,ballgame,baiting,backstabbing,artifact,airspace,adversary,actin,accuses,accelerant,abundantly,abstinence,zissou,zandt,yapping,witchy,willows,whadaya,vilandra,veiled,undress,undivided,underestimating,ultimatums,twirl,truckload,tremble,toasting,tingling,tents,tempered,sulking,stunk,sponges,spills,softly,snipers,scourge,rooftop,riana,revolting,revisit,refreshments,redecorating,recapture,raysy,pretense,prejudiced,precogs,pouting,poofs,pimple,piles,pediatrician,padre,packets,paces,orvelle,oblivious,objectivity,nighttime,nervosa,mexicans,meurice,melts,matchmaker,maeby,lugosi,lipnik,leprechaun,kissy,kafka,introductions,intestines,inspirational,insightful,inseparable,injections,inadvertently,hussy,huckabees,hittin,hemorrhaging,headin,haystack,hallowed,grudges,granilith,grandkids,grading,gracefully,godsend,gobbles,fragrance,fliers,finchley,farts,eyewitnesses,expendable,existential,dorms,delaying,degrading,deduction,darlings,danes,cylons,counsellor,contraire,consciously,conjuring,congratulating,cokes,buffay,brooch,bitching,bistro,bijou,bewitched,benevolent,bends,bearings,barren,aptitude,amish,amazes,abomination,worldly,whispers,whadda,wayward,wailing,vanishing,upscale,untouchable,unspoken,uncontrollable,unavoidable,unattended,trite,transvestite,toupee,timid,timers,terrorizing,swana,stumped,strolling,storybook,storming,stomachs,stoked,stationery,springtime,spontaneity,spits,spins,soaps,sentiments,scramble,scone,rooftops,retract,reflexes,rawdon,ragged,quirky,quantico,psychologically,prodigal,pounce,potty,pleasantries,pints,petting,perceive,onstage,notwithstanding,nibble,newmans,neutralize,mutilated,millionaires,mayflower,masquerade,mangy,macreedy,lunatics,lovable,locating,limping,lasagna,kwang,keepers,juvie,jaded,ironing,intuitive,intensely,insure,incantation,hysteria,hypnotize,humping,happenin,griet,grasping,glorified,ganging,g'night,focker,flunking,flimsy,flaunting,fixated,fitzwallace,fainting,eyebrow,exonerated,ether,electrician,egotistical,earthly,dusted,dignify,detonation,debrief,dazzling,dan'l,damnedest,daisies,crushes,crucify,contraband,confronting,collapsing,cocked,clicks,cliche,circled,chandelier,carburetor,callers,broads,breathes,bloodshed,blindsided,blabbing,bialystock,bashing,ballerina,aviva,arteries,anomaly,airstrip,agonizing,adjourn,aaaaa,yearning,wrecker,witnessing,whence,warhead,unsure,unheard,unfreeze,unfold,unbalanced,ugliest,troublemaker,toddler,tiptoe,threesome,thirties,thermostat,swipe,surgically,subtlety,stung,stumbling,stubs,stride,strangling,sprayed,socket,smuggled,showering,shhhhh,sabotaging,rumson,rounding,risotto,repairman,rehearsed,ratty,ragging,radiology,racquetball,racking,quieter,quicksand,prowl,prompt,premeditated,prematurely,prancing,porcupine,plated,pinocchio,peeked,peddle,panting,overweight,overrun,outing,outgrown,obsess,nursed,nodding,negativity,negatives,musketeers,mugger,motorcade,merrily,matured,masquerading,marvellous,maniacs,lovey,louse,linger,lilies,lawful,kudos,knuckle,juices,judgments,itches,intolerable,intermission,inept,incarceration,implication,imaginative,huckleberry,holster,heartburn,gunna,groomed,graciously,fulfillment,fugitives,forsaking,forgives,foreseeable,flavors,flares,fixation,fickle,fantasize,famished,fades,expiration,exclamation,erasing,eiffel,eerie,earful,duped,dulles,dissing,dissect,dispenser,dilated,detergent,desdemona,debriefing,damper,curing,crispina,crackpot,courting,cordial,conflicted,comprehension,commie,cleanup,chiropractor,charmer,chariot,cauldron,catatonic,bullied,buckets,brilliantly,breathed,booths,boardroom,blowout,blindness,blazing,biologically,bibles,biased,beseech,barbaric,balraj,audacity,anticipating,alcoholics,airhead,agendas,admittedly,absolution,youre,yippee,wittlesey,withheld,willful,whammy,weakest,washes,virtuous,videotapes,vials,unplugged,unpacked,unfairly,turbulence,tumbling,tricking,tremendously,traitors,torches,tinga,thyroid,teased,tawdry,taker,sympathies,swiped,sundaes,suave,strut,stepdad,spewing,spasm,socialize,slither,simulator,shutters,shrewd,shocks,semantics,schizophrenic,scans,savages,rya'c,runny,ruckus,royally,roadblocks,rewriting,revoke,repent,redecorate,recovers,recourse,ratched,ramali,racquet,quince,quiche,puppeteer,puking,puffed,problemo,praises,pouch,postcards,pooped,poised,piled,phoney,phobia,patching,parenthood,pardner,oozing,ohhhhh,numbing,nostril,nosey,neatly,nappa,nameless,mortuary,moronic,modesty,midwife,mcclane,matuka,maitre,lumps,lucid,loosened,loins,lawnmower,lamotta,kroehner,jinxy,jessep,jamming,jailhouse,jacking,intruders,inhuman,infatuated,indigestion,implore,implanted,hormonal,hoboken,hillbilly,heartwarming,headway,hatched,hartmans,harping,grapevine,gnome,forties,flyin,flirted,fingernail,exhilarating,enjoyment,embark,dumper,dubious,drell,docking,disillusioned,dishonor,disbarred,dicey,custodial,counterproductive,corned,cords,contemplate,concur,conceivable,cobblepot,chickened,checkout,carpe,cap'n,campers,buyin,bullies,braid,boxed,bouncy,blueberries,blubbering,bloodstream,bigamy,beeped,bearable,autographs,alarming,wretch,wimps,widower,whirlwind,whirl,warms,vandelay,unveiling,undoing,unbecoming,turnaround,touche,togetherness,tickles,ticker,teensy,taunt,sweethearts,stitched,standpoint,staffers,spotless,soothe,smothered,sickening,shouted,shepherds,shawl,seriousness,schooled,schoolboy,s'mores,roped,reminders,raggedy,preemptive,plucked,pheromones,particulars,pardoned,overpriced,overbearing,outrun,ohmigod,nosing,nicked,neanderthal,mosquitoes,mortified,milky,messin,mecha,markinson,marivellas,mannequin,manderley,madder,macready,lookie,locusts,lifetimes,lanna,lakhi,kholi,impersonate,hyperdrive,horrid,hopin,hogging,hearsay,harpy,harboring,hairdo,hafta,grasshopper,gobble,gatehouse,foosball,floozy,fished,firewood,finalize,felons,euphemism,entourage,elitist,elegance,drokken,drier,dredge,dossier,diseased,diarrhea,diagnose,despised,defuse,d'amour,contesting,conserve,conscientious,conjured,collars,clogs,chenille,chatty,chamomile,casing,calculator,brittle,breached,blurted,birthing,bikinis,astounding,assaulting,aroma,appliance,antsy,amnio,alienating,aliases,adolescence,xerox,wrongs,workload,willona,whistling,werewolves,wallaby,unwelcome,unseemly,unplug,undermining,ugliness,tyranny,tuesdays,trumpets,transference,ticks,tangible,tagging,swallowing,superheroes,studs,strep,stowed,stomping,steffy,sprain,spouting,sponsoring,sneezing,smeared,slink,shakin,sewed,seatbelt,scariest,scammed,sanctimonious,roasting,rightly,retinal,rethinking,resented,reruns,remover,racks,purest,progressing,presidente,preeclampsia,postponement,portals,poppa,pliers,pinning,pelvic,pampered,padding,overjoyed,ooooo,one'll,octavius,nonono,nicknames,neurosurgeon,narrows,misled,mislead,mishap,milltown,milking,meticulous,mediocrity,meatballs,machete,lurch,layin,knockin,khruschev,jurors,jumpin,jugular,jeweler,intellectually,inquiries,indulging,indestructible,indebted,imitate,ignores,hyperventilating,hyenas,hurrying,hermano,hellish,heheh,harshly,handout,grunemann,glances,giveaway,getup,gerome,furthest,frosting,frail,forwarded,forceful,flavored,flammable,flaky,fingered,fatherly,ethic,embezzlement,duffel,dotted,distressed,disobey,disappearances,dinky,diminish,diaphragm,deuces,creme,courteous,comforts,coerced,clots,clarification,chunks,chickie,chases,chaperoning,cartons,caper,calves,caged,bustin,bulging,bringin,boomhauer,blowin,blindfolded,biscotti,ballplayer,bagging,auster,assurances,aschen,arraigned,anonymity,alters,albatross,agreeable,adoring,abduct,wolfi,weirded,watchers,washroom,warheads,vincennes,urgency,understandably,uncomplicated,uhhhh,twitching,treadmill,thermos,tenorman,tangle,talkative,swarm,surrendering,summoning,strive,stilts,stickers,squashed,spraying,sparring,soaring,snort,sneezed,slaps,skanky,singin,sidle,shreck,shortness,shorthand,sharper,shamed,sadist,rydell,rusik,roulette,resumes,respiration,recount,reacts,purgatory,princesses,presentable,ponytail,plotted,pinot,pigtails,phillippe,peddling,paroled,orbed,offends,o'hara,moonlit,minefield,metaphors,malignant,mainframe,magicks,maggots,maclaine,loathing,leper,leaps,leaping,lashed,larch,larceny,lapses,ladyship,juncture,jiffy,jakov,invoke,infantile,inadmissible,horoscope,hinting,hideaway,hesitating,heddy,heckles,hairline,gripe,gratifying,governess,goebbels,freddo,foresee,fascination,exemplary,executioner,etcetera,escorts,endearing,eaters,earplugs,draped,disrupting,disagrees,dimes,devastate,detain,depositions,delicacy,darklighter,cynicism,cyanide,cutters,cronus,continuance,conquering,confiding,compartments,combing,cofell,clingy,cleanse,christmases,cheered,cheekbones,buttle,burdened,bruenell,broomstick,brained,bozos,bontecou,bluntman,blazes,blameless,bizarro,bellboy,beaucoup,barkeep,awaken,astray,assailant,appease,aphrodisiac,alleys,yesss,wrecks,woodpecker,wondrous,wimpy,willpower,wheeling,weepy,waxing,waive,videotaped,veritable,untouched,unlisted,unfounded,unforeseen,twinge,triggers,traipsing,toxin,tombstone,thumping,therein,testicles,telephones,tarmac,talby,tackled,swirling,suicides,suckered,subtitles,sturdy,strangler,stockbroker,stitching,steered,standup,squeal,sprinkler,spontaneously,splendor,spiking,spender,snipe,snagged,skimming,siddown,showroom,shovels,shotguns,shoelaces,shitload,shellfish,sharpest,shadowy,seizing,scrounge,scapegoat,sayonara,saddled,rummaging,roomful,renounce,reconsidered,recharge,realistically,radioed,quirks,quadrant,punctual,practising,pours,poolhouse,poltergeist,pocketbook,plainly,picnics,pesto,pawing,passageway,partied,oneself,numero,nostalgia,nitwit,neuro,mixer,meanest,mcbeal,matinee,margate,marce,manipulations,manhunt,manger,magicians,loafers,litvack,lightheaded,lifeguard,lawns,laughingstock,ingested,indignation,inconceivable,imposition,impersonal,imbecile,huddled,housewarming,horizons,homicides,hiccups,hearse,hardened,gushing,gushie,greased,goddamit,freelancer,forging,fondue,flustered,flung,flinch,flicker,fixin,festivus,fertilizer,farted,faggots,exonerate,evict,enormously,encrypted,emdash,embracing,duress,dupres,dowser,doormat,disfigured,disciplined,dibbs,depository,deathbed,dazzled,cuttin,cures,crowding,crepe,crammed,copycat,contradict,confidant,condemning,conceited,commute,comatose,clapping,circumference,chuppah,chore,choksondik,chestnuts,briault,bottomless,bonnet,blokes,berluti,beret,beggars,bankroll,bania,athos,arsenic,apperantly,ahhhhhh,afloat,accents,zipped,zeros,zeroes,zamir,yuppie,youngsters,yorkers,wisest,wipes,wield,whyn't,weirdos,wednesdays,vicksburg,upchuck,untraceable,unsupervised,unpleasantness,unhook,unconscionable,uncalled,trappings,tragedies,townie,thurgood,things'll,thine,tetanus,terrorize,temptations,tanning,tampons,swarming,straitjacket,steroid,startling,starry,squander,speculating,sollozzo,sneaked,slugs,skedaddle,sinker,silky,shortcomings,sellin,seasoned,scrubbed,screwup,scrapes,scarves,sandbox,salesmen,rooming,romances,revere,reproach,reprieve,rearranging,ravine,rationalize,raffle,punchy,psychobabble,provocation,profoundly,prescriptions,preferable,polishing,poached,pledges,pirelli,perverts,oversized,overdressed,outdid,nuptials,nefarious,mouthpiece,motels,mopping,mongrel,missin,metaphorically,mertin,memos,melodrama,melancholy,measles,meaner,mantel,maneuvering,mailroom,luring,listenin,lifeless,licks,levon,legwork,kneecaps,kippur,kiddie,kaput,justifiable,insistent,insidious,innuendo,innit,indecent,imaginable,horseshit,hemorrhoid,hella,healthiest,haywire,hamsters,hairbrush,grouchy,grisly,gratuitous,glutton,glimmer,gibberish,ghastly,gentler,generously,geeky,fuhrer,fronting,foolin,faxes,faceless,extinguisher,expel,etched,endangering,ducked,dodgeball,dives,dislocated,discrepancy,devour,derail,dementia,daycare,cynic,crumbling,cowardice,covet,cornwallis,corkscrew,cookbook,commandments,coincidental,cobwebs,clouded,clogging,clicking,clasp,chopsticks,chefs,chaps,cashing,carat,calmer,brazen,brainwashing,bradys,bowing,boned,bloodsucking,bleachers,bleached,bedpan,bearded,barrenger,bachelors,awwww,assures,assigning,asparagus,apprehend,anecdote,amoral,aggravation,afoot,acquaintances,accommodating,yakking,worshipping,wladek,willya,willies,wigged,whoosh,whisked,watered,warpath,volts,violates,valuables,uphill,unwise,untimely,unsavory,unresponsive,unpunished,unexplained,tubby,trolling,toxicology,tormented,toothache,tingly,timmiihh,thursdays,thoreau,terrifies,temperamental,telegrams,talkie,takers,symbiote,swirl,suffocate,stupider,strapping,steckler,springing,someway,sleepyhead,sledgehammer,slant,slams,showgirl,shoveling,shmoopy,sharkbait,shan't,scrambling,schematics,sandeman,sabbatical,rummy,reykjavik,revert,responsive,rescheduled,requisition,relinquish,rejoice,reckoning,recant,rebadow,reassurance,rattlesnake,ramble,primed,pricey,prance,pothole,pocus,persist,perpetrated,pekar,peeling,pastime,parmesan,pacemaker,overdrive,ominous,observant,nothings,noooooo,nonexistent,nodded,nieces,neglecting,nauseating,mutated,musket,mumbling,mowing,mouthful,mooseport,monologue,mistrust,meetin,masseuse,mantini,mailer,madre,lowlifes,locksmith,livid,liven,limos,liberating,lhasa,leniency,leering,laughable,lashes,lasagne,laceration,korben,katan,kalen,jittery,jammies,irreplaceable,intubate,intolerant,inhaler,inhaled,indifferent,indifference,impound,impolite,humbly,heroics,heigh,guillotine,guesthouse,grounding,grips,gossiping,goatee,gnomes,gellar,frutt,frobisher,freudian,foolishness,flagged,femme,fatso,fatherhood,fantasized,fairest,faintest,eyelids,extravagant,extraterrestrial,extraordinarily,escalator,elevate,drivel,dissed,dismal,disarray,dinnertime,devastation,dermatologist,delicately,defrost,debutante,debacle,damone,dainty,cuvee,culpa,crucified,creeped,crayons,courtship,convene,congresswoman,concocted,compromises,comprende,comma,coleslaw,clothed,clinically,chickenshit,checkin,cesspool,caskets,calzone,brothel,boomerang,bodega,blasphemy,bitsy,bicentennial,berlini,beatin,beards,barbas,barbarians,backpacking,arrhythmia,arousing,arbitrator,antagonize,angling,anesthetic,altercation,aggressor,adversity,acathla,aaahhh,wreaking,workup,wonderin,wither,wielding,what'm,what'cha,waxed,vibrating,veterinarian,venting,vasey,valor,validate,upholstery,untied,unscathed,uninterrupted,unforgiving,undies,uncut,twinkies,tucking,treatable,treasured,tranquility,townspeople,torso,tomei,tipsy,tinsel,tidings,thirtieth,tantrums,tamper,talky,swayed,swapping,suitor,stylist,stirs,standoff,sprinklers,sparkly,snobby,snatcher,smoother,sleepin,shrug,shoebox,sheesh,shackles,setbacks,sedatives,screeching,scorched,scanned,satyr,roadblock,riverbank,ridiculed,resentful,repellent,recreate,reconvene,rebuttal,realmedia,quizzes,questionnaire,punctured,pucker,prolong,professionalism,pleasantly,pigsty,penniless,paychecks,patiently,parading,overactive,ovaries,orderlies,oracles,oiled,offending,nudie,neonatal,neighborly,moops,moonlighting,mobilize,mmmmmm,milkshake,menial,meats,mayan,maxed,mangled,magua,lunacy,luckier,liters,lansbury,kooky,knowin,jeopardized,inkling,inhalation,inflated,infecting,incense,inbound,impractical,impenetrable,idealistic,i'mma,hypocrites,hurtin,humbled,hologram,hokey,hocus,hitchhiking,hemorrhoids,headhunter,hassled,harts,hardworking,haircuts,hacksaw,genitals,gazillion,gammy,gamesphere,fugue,footwear,folly,flashlights,fives,filet,extenuating,estrogen,entails,embezzled,eloquent,egomaniac,ducts,drowsy,drones,doree,donovon,disguises,diggin,deserting,depriving,defying,deductible,decorum,decked,daylights,daybreak,dashboard,damnation,cuddling,crunching,crickets,crazies,councilman,coughed,conundrum,complimented,cohaagen,clutching,clued,clader,cheques,checkpoint,chats,channeling,ceases,carasco,capisce,cantaloupe,cancelling,campsite,burglars,breakfasts,bra'tac,blueprint,bleedin,blabbed,beneficiary,basing,avert,atone,arlyn,approves,apothecary,antiseptic,aleikuum,advisement,zadir,wobbly,withnail,whattaya,whacking,wedged,wanders,vaginal,unimaginable,undeniable,unconditionally,uncharted,unbridled,tweezers,tvmegasite,trumped,triumphant,trimming,treading,tranquilizers,toontown,thunk,suture,suppressing,strays,stonewall,stogie,stepdaughter,stace,squint,spouses,splashed,speakin,sounder,sorrier,sorrel,sombrero,solemnly,softened,snobs,snippy,snare,smoothing,slump,slimeball,slaving,silently,shiller,shakedown,sensations,scrying,scrumptious,screamin,saucy,santoses,roundup,roughed,rosary,robechaux,retrospect,rescind,reprehensible,repel,remodeling,reconsidering,reciprocate,railroaded,psychics,promos,prob'ly,pristine,printout,priestess,prenuptial,precedes,pouty,phoning,peppy,pariah,parched,panes,overloaded,overdoing,nymphs,nother,notebooks,nearing,nearer,monstrosity,milady,mieke,mephesto,medicated,marshals,manilow,mammogram,m'lady,lotsa,loopy,lesion,lenient,learner,laszlo,kross,kinks,jinxed,involuntary,insubordination,ingrate,inflatable,incarnate,inane,hypoglycemia,huntin,humongous,hoodlum,honking,hemorrhage,helpin,hathor,hatching,grotto,grandmama,gorillas,godless,girlish,ghouls,gershwin,frosted,flutter,flagpole,fetching,fatter,faithfully,exert,evasion,escalate,enticing,enchantress,elopement,drills,downtime,downloading,dorks,doorways,divulge,dissociative,disgraceful,disconcerting,deteriorate,destinies,depressive,dented,denim,decruz,decidedly,deactivate,daydreams,curls,culprit,cruelest,crippling,cranberries,corvis,copped,commend,coastguard,cloning,cirque,churning,chock,chivalry,catalogues,cartwheels,carols,canister,buttered,bundt,buljanoff,bubbling,brokers,broaden,brimstone,brainless,bores,badmouthing,autopilot,ascertain,aorta,ampata,allenby,accosted,absolve,aborted,aaagh,aaaaaah,yonder,yellin,wyndham,wrongdoing,woodsboro,wigging,wasteland,warranty,waltzed,walnuts,vividly,veggie,unnecessarily,unloaded,unicorns,understated,unclean,umbrellas,twirling,turpentine,tupperware,triage,treehouse,tidbit,tickled,threes,thousandth,thingie,terminally,teething,tassel,talkies,swoon,switchboard,swerved,suspiciously,subsequentlyne,subscribe,strudel,stroking,strictest,stensland,starin,stannart,squirming,squealing,sorely,softie,snookums,sniveling,smidge,sloth,skulking,simian,sightseeing,siamese,shudder,shoppers,sharpen,shannen,semtex,secondhand,seance,scowl,scorn,safekeeping,russe,rummage,roshman,roomies,roaches,rinds,retrace,retires,resuscitate,rerun,reputations,rekall,refreshment,reenactment,recluse,ravioli,raves,raking,purses,punishable,punchline,puked,prosky,previews,poughkeepsie,poppins,polluted,placenta,pissy,petulant,perseverance,pears,pawns,pastries,partake,panky,palate,overzealous,orchids,obstructing,objectively,obituaries,obedient,nothingness,musty,motherly,mooning,momentous,mistaking,minutemen,milos,microchip,meself,merciless,menelaus,mazel,masturbate,mahogany,lysistrata,lillienfield,likable,liberate,leveled,letdown,larynx,lardass,lainey,lagged,klorel,kidnappings,keyed,karmic,jeebies,irate,invulnerable,intrusive,insemination,inquire,injecting,informative,informants,impure,impasse,imbalance,illiterate,hurled,hunts,hematoma,headstrong,handmade,handiwork,growling,gorky,getcha,gesundheit,gazing,galley,foolishly,fondness,floris,ferocious,feathered,fateful,fancies,fakes,faker,expire,ever'body,essentials,eskimos,enlightening,enchilada,emissary,embolism,elsinore,ecklie,drenched,drazi,doped,dogging,doable,dislikes,dishonesty,disengage,discouraging,derailed,deformed,deflect,defer,deactivated,crips,constellations,congressmen,complimenting,clubbing,clawing,chromium,chimes,chews,cheatin,chaste,cellblock,caving,catered,catacombs,calamari,bucking,brulee,brits,brisk,breezes,bounces,boudoir,binks,better'n,bellied,behrani,behaves,bedding,balmy,badmouth,backers,avenging,aromatherapy,armpit,armoire,anythin,anonymously,anniversaries,aftershave,affliction,adrift,admissible,adieu,acquittal,yucky,yearn,whitter,whirlpool,wendigo,watchdog,wannabes,wakey,vomited,voicemail,valedictorian,uttered,unwed,unrequited,unnoticed,unnerving,unkind,unjust,uniformed,unconfirmed,unadulterated,unaccounted,uglier,turnoff,trampled,tramell,toads,timbuktu,throwback,thimble,tasteless,tarantula,tamale,takeovers,swish,supposing,streaking,stargher,stanzi,stabs,squeamish,splattered,spiritually,spilt,speciality,smacking,skywire,skips,skaara,simpatico,shredding,showin,shortcuts,shite,shielding,shamelessly,serafine,sentimentality,seasick,schemer,scandalous,sainted,riedenschneider,rhyming,revel,retractor,retards,resurrect,remiss,reminiscing,remanded,reiben,regains,refuel,refresher,redoing,redheaded,reassured,rearranged,rapport,qumar,prowling,prejudices,precarious,powwow,pondering,plunger,plunged,pleasantville,playpen,phlegm,perfected,pancreas,paley,ovary,outbursts,oppressed,ooohhh,omoroca,offed,o'toole,nurture,nursemaid,nosebleed,necktie,muttering,munchies,mucking,mogul,mitosis,misdemeanor,miscarried,millionth,migraines,midler,manicurist,mandelbaum,manageable,malfunctioned,magnanimous,loudmouth,longed,lifestyles,liddy,lickety,leprechauns,komako,klute,kennel,justifying,irreversible,inventing,intergalactic,insinuate,inquiring,ingenuity,inconclusive,incessant,improv,impersonation,hyena,humperdinck,hubba,housework,hoffa,hither,hissy,hippy,hijacked,heparin,hellooo,hearth,hassles,hairstyle,hahahaha,hadda,guys'll,gutted,gulls,gritty,grievous,graft,gossamer,gooder,gambled,gadgets,fundamentals,frustrations,frolicking,frock,frilly,foreseen,footloose,fondly,flirtation,flinched,flatten,farthest,exposer,evading,escrow,empathize,embryos,embodiment,ellsberg,ebola,dulcinea,dreamin,drawbacks,doting,doose,doofy,disturbs,disorderly,disgusts,detox,denominator,demeanor,deliriously,decode,debauchery,croissant,cravings,cranked,coworkers,councilor,confuses,confiscate,confines,conduit,compress,combed,clouding,clamps,cinch,chinnery,celebratory,catalogs,carpenters,carnal,canin,bundys,bulldozer,buggers,bueller,brainy,booming,bookstores,bloodbath,bittersweet,bellhop,beeping,beanstalk,beady,baudelaire,bartenders,bargains,averted,armadillo,appreciating,appraised,antlers,aloof,allowances,alleyway,affleck,abject,zilch,youore,xanax,wrenching,wouldn,witted,wicca,whorehouse,whooo,whips,vouchers,victimized,vicodin,untested,unsolicited,unfocused,unfettered,unfeeling,unexplainable,understaffed,underbelly,tutorial,tryst,trampoline,towering,tirade,thieving,thang,swimmin,swayzak,suspecting,superstitions,stubbornness,streamers,strattman,stonewalling,stiffs,stacking,spout,splice,sonrisa,smarmy,slows,slicing,sisterly,shrill,shined,seeming,sedley,seatbelts,scour,scold,schoolyard,scarring,salieri,rustling,roxbury,rewire,revved,retriever,reputable,remodel,reins,reincarnation,rance,rafters,rackets,quail,pumbaa,proclaim,probing,privates,pried,prewedding,premeditation,posturing,posterity,pleasurable,pizzeria,pimps,penmanship,penchant,pelvis,overturn,overstepped,overcoat,ovens,outsmart,outed,ooohh,oncologist,omission,offhand,odour,nyazian,notarized,nobody'll,nightie,navel,nabbed,mystique,mover,mortician,morose,moratorium,mockingbird,mobsters,mingling,methinks,messengered,merde,masochist,martouf,martians,marinara,manray,majorly,magnifying,mackerel,lurid,lugging,lonnegan,loathsome,llantano,liberace,leprosy,latinos,lanterns,lamest,laferette,kraut,intestine,innocencia,inhibitions,ineffectual,indisposed,incurable,inconvenienced,inanimate,improbable,implode,hydrant,hustling,hustled,huevos,how'm,hooey,hoods,honcho,hinge,hijack,heimlich,hamunaptra,haladki,haiku,haggle,gutsy,grunting,grueling,gribbs,greevy,grandstanding,godparents,glows,glistening,gimmick,gaping,fraiser,formalities,foreigner,folders,foggy,fitty,fiends,fe'nos,favours,eyeing,extort,expedite,escalating,epinephrine,entitles,entice,eminence,eights,earthlings,eagerly,dunville,dugout,doublemeat,doling,dispensing,dispatcher,discoloration,diners,diddly,dictates,diazepam,derogatory,delights,defies,decoder,dealio,danson,cutthroat,crumbles,croissants,crematorium,craftsmanship,could'a,cordless,cools,conked,confine,concealing,complicates,communique,cockamamie,coasters,clobbered,clipping,clipboard,clemenza,cleanser,circumcision,chanukah,certainaly,cellmate,cancels,cadmium,buzzed,bumstead,bucko,browsing,broth,braver,boggling,bobbing,blurred,birkhead,benet,belvedere,bellies,begrudge,beckworth,banky,baldness,baggy,babysitters,aversion,astonished,assorted,appetites,angina,amiss,ambulances,alibis,airway,admires,adhesive,yoyou,xxxxxx,wreaked,wracking,woooo,wooing,wised,wilshire,wedgie,waging,violets,vincey,uplifting,untrustworthy,unmitigated,uneventful,undressing,underprivileged,unburden,umbilical,tweaking,turquoise,treachery,tosses,torching,toothpick,toasts,thickens,tereza,tenacious,teldar,taint,swill,sweatin,subtly,subdural,streep,stopwatch,stockholder,stillwater,stalkers,squished,squeegee,splinters,spliced,splat,spied,spackle,sophistication,snapshots,smite,sluggish,slithered,skeeters,sidewalks,sickly,shrugs,shrubbery,shrieking,shitless,settin,sentinels,selfishly,scarcely,sangria,sanctum,sahjhan,rustle,roving,rousing,rosomorf,riddled,responsibly,renoir,remoray,remedial,refundable,redirect,recheck,ravenwood,rationalizing,ramus,ramelle,quivering,pyjamas,psychos,provocations,prouder,protestors,prodded,proctologist,primordial,pricks,prickly,precedents,pentangeli,pathetically,parka,parakeet,panicky,overthruster,outsmarted,orthopedic,oncoming,offing,nutritious,nuthouse,nourishment,nibbling,newlywed,narcissist,mutilation,mundane,mummies,mumble,mowed,morvern,mortem,mopes,molasses,misplace,miscommunication,miney,midlife,menacing,memorizing,massaging,masking,magnets,luxuries,lounging,lothario,liposuction,lidocaine,libbets,levitate,leeway,launcelot,larek,lackeys,kumbaya,kryptonite,knapsack,keyhole,katarangura,juiced,jakey,ironclad,invoice,intertwined,interlude,interferes,injure,infernal,indeedy,incur,incorrigible,incantations,impediment,igloo,hysterectomy,hounded,hollering,hindsight,heebie,havesham,hasenfuss,hankering,hangers,hakuna,gutless,gusto,grubbing,grrrr,grazed,gratification,grandeur,gorak,godammit,gnawing,glanced,frostbite,frees,frazzled,fraulein,fraternizing,fortuneteller,formaldehyde,followup,foggiest,flunky,flickering,firecrackers,figger,fetuses,fates,eyeliner,extremities,extradited,expires,exceedingly,evaporate,erupt,epileptic,entrails,emporium,egregious,eggshells,easing,duwayne,droll,dreyfuss,dovey,doubly,doozy,donkeys,donde,distrust,distressing,disintegrate,discreetly,decapitated,dealin,deader,dashed,darkroom,dares,daddies,dabble,cushy,cupcakes,cuffed,croupier,croak,crapped,coursing,coolers,contaminate,consummated,construed,condos,concoction,compulsion,commish,coercion,clemency,clairvoyant,circulate,chesterton,checkered,charlatan,chaperones,categorically,cataracts,carano,capsules,capitalize,burdon,bullshitting,brewed,breathless,breasted,brainstorming,bossing,borealis,bonsoir,bobka,boast,blimp,bleep,bleeder,blackouts,bisque,billboards,beatings,bayberry,bashed,bamboozled,balding,baklava,baffled,backfires,babak,awkwardness,attest,attachments,apologizes,anyhoo,antiquated,alcante,advisable,aahhh,aaahh,zatarc,yearbooks,wuddya,wringing,womanhood,witless,winging,whatsa,wetting,waterproof,wastin,vogelman,vocation,vindicated,vigilance,vicariously,venza,vacuuming,utensils,uplink,unveil,unloved,unloading,uninhibited,unattached,tweaked,turnips,trinkets,toughen,toting,topside,terrors,terrify,technologically,tarnish,tagliati,szpilman,surly,supple,summation,suckin,stepmom,squeaking,splashmore,souffle,solitaire,solicitation,solarium,smokers,slugged,slobbering,skylight,skimpy,sinuses,silenced,sideburns,shrinkage,shoddy,shhhhhh,shelled,shareef,shangri,seuss,serenade,scuffle,scoff,scanners,sauerkraut,sardines,sarcophagus,salvy,rusted,russells,rowboat,rolfsky,ringside,respectability,reparations,renegotiate,reminisce,reimburse,regimen,raincoat,quibble,puzzled,purposefully,pubic,proofing,prescribing,prelim,poisons,poaching,personalized,personable,peroxide,pentonville,payphone,payoffs,paleontology,overflowing,oompa,oddest,objecting,o'hare,o'daniel,notches,nobody'd,nightstand,neutralized,nervousness,nerdy,needlessly,naquadah,nappy,nantucket,nambla,mountaineer,motherfuckin,morrie,monopolizing,mohel,mistreated,misreading,misbehave,miramax,minivan,milligram,milkshakes,metamorphosis,medics,mattresses,mathesar,matchbook,matata,marys,malucci,magilla,lymphoma,lowers,lordy,linens,lindenmeyer,limelight,leapt,laxative,lather,lapel,lamppost,laguardia,kindling,kegger,kawalsky,juries,jokin,jesminder,interning,innermost,injun,infallible,industrious,indulgence,incinerator,impossibility,impart,illuminate,iguanas,hypnotic,hyped,hospitable,hoses,homemaker,hirschmuller,helpers,headset,guardianship,guapo,grubby,granola,granddaddy,goren,goblet,gluttony,globes,giorno,getter,geritol,gassed,gaggle,foxhole,fouled,foretold,floorboards,flippers,flaked,fireflies,feedings,fashionably,farragut,fallback,facials,exterminate,excites,everything'll,evenin,ethically,ensue,enema,empath,eluded,eloquently,eject,edema,dumpling,droppings,dolled,distasteful,disputing,displeasure,disdain,deterrent,dehydration,defied,decomposing,dawned,dailies,custodian,crusts,crucifix,crowning,crier,crept,craze,crawls,couldn,correcting,corkmaster,copperfield,cooties,contraption,consumes,conspire,consenting,consented,conquers,congeniality,complains,communicator,commendable,collide,coladas,colada,clout,clooney,classifieds,clammy,civility,cirrhosis,chink,catskills,carvers,carpool,carelessness,cardio,carbs,capades,butabi,busmalis,burping,burdens,bunks,buncha,bulldozers,browse,brockovich,breakthroughs,bravado,boogety,blossoms,blooming,bloodsucker,blight,betterton,betrayer,belittle,beeps,bawling,barts,bartending,bankbooks,babish,atropine,assertive,armbrust,anyanka,annoyance,anemic,anago,airwaves,aimlessly,aaargh,aaand,yoghurt,writhing,workable,winking,winded,widen,whooping,whiter,whatya,wazoo,voila,virile,vests,vestibule,versed,vanishes,urkel,uproot,unwarranted,unscheduled,unparalleled,undergrad,tweedle,turtleneck,turban,trickery,transponder,toyed,townhouse,thyself,thunderstorm,thinning,thawed,tether,technicalities,tau'ri,tarnished,taffeta,tacked,systolic,swerve,sweepstakes,swabs,suspenders,superwoman,sunsets,succulent,subpoenas,stumper,stosh,stomachache,stewed,steppin,stepatech,stateside,spicoli,sparing,soulless,sonnets,sockets,snatching,smothering,slush,sloman,slashing,sitters,simpleton,sighs,sidra,sickens,shunned,shrunken,showbiz,shopped,shimmering,shagging,semblance,segue,sedation,scuzzlebutt,scumbags,screwin,scoundrels,scarsdale,scabs,saucers,saintly,saddened,runaways,runaround,rheya,resenting,rehashing,rehabilitated,regrettable,refreshed,redial,reconnecting,ravenous,raping,rafting,quandary,pylea,putrid,puffing,psychopathic,prunes,probate,prayin,pomegranate,plummeting,planing,plagues,pinata,pithy,perversion,personals,perched,peeps,peckish,pavarotti,pajama,packin,pacifier,overstepping,okama,obstetrician,nutso,nuance,normalcy,nonnegotiable,nomak,ninny,nines,nicey,newsflash,neutered,nether,negligee,necrosis,navigating,narcissistic,mylie,muses,momento,moisturizer,moderation,misinformed,misconception,minnifield,mikkos,methodical,mebbe,meager,maybes,matchmaking,masry,markovic,malakai,luzhin,lusting,lumberjack,loopholes,loaning,lightening,leotard,launder,lamaze,kubla,kneeling,kibosh,jumpsuit,joliet,jogger,janover,jakovasaurs,irreparable,innocently,inigo,infomercial,inexplicable,indispensable,impregnated,impossibly,imitating,hunches,hummus,houmfort,hothead,hostiles,hooves,hooligans,homos,homie,hisself,heyyy,hesitant,hangout,handsomest,handouts,hairless,gwennie,guzzling,guinevere,grungy,goading,glaring,gavel,gardino,gangrene,fruitful,friendlier,freckle,freakish,forthright,forearm,footnote,flops,fixer,firecracker,finito,figgered,fezzik,fastened,farfetched,fanciful,familiarize,faire,fahrenheit,extravaganza,exploratory,explanatory,everglades,eunuch,estas,escapade,erasers,emptying,embarassing,dweeb,dutiful,dumplings,dries,drafty,dollhouse,dismissing,disgraced,discrepancies,disbelief,disagreeing,digestion,didnt,deviled,deviated,demerol,delectable,decaying,decadent,dears,dateless,d'algout,cultivating,cryto,crumpled,crumbled,cronies,crease,craves,cozying,corduroy,congratulated,confidante,compressions,complicating,compadre,coerce,classier,chums,chumash,chivalrous,chinpoko,charred,chafing,celibacy,carted,carryin,carpeting,carotid,cannibals,candor,butterscotch,busts,busier,bullcrap,buggin,brookside,brodski,brassiere,brainwash,brainiac,botrelle,bonbon,boatload,blimey,blaring,blackness,bipartisan,bimbos,bigamist,biebe,biding,betrayals,bestow,bellerophon,bedpans,bassinet,basking,barzini,barnyard,barfed,backups,audited,asinine,asalaam,arouse,applejack,annoys,anchovies,ampule,alameida,aggravate,adage,accomplices,yokel,y'ever,wringer,witwer,withdrawals,windward,willfully,whorfin,whimsical,whimpering,weddin,weathered,warmest,wanton,volant,visceral,vindication,veggies,urinate,uproar,unwritten,unwrap,unsung,unsubstantiated,unspeakably,unscrupulous,unraveling,unquote,unqualified,unfulfilled,undetectable,underlined,unattainable,unappreciated,ummmm,ulcers,tylenol,tweak,turnin,tuatha,tropez,trellis,toppings,tootin,toodle,tinkering,thrives,thespis,theatrics,thatherton,tempers,tavington,tartar,tampon,swelled,sutures,sustenance,sunflowers,sublet,stubbins,strutting,strewn,stowaway,stoic,sternin,stabilizing,spiraling,spinster,speedometer,speakeasy,soooo,soiled,sneakin,smithereens,smelt,smacks,slaughterhouse,slacks,skids,sketching,skateboards,sizzling,sixes,sirree,simplistic,shouts,shorted,shoelace,sheeit,shards,shackled,sequestered,selmak,seduces,seclusion,seamstress,seabeas,scoops,scooped,scavenger,satch,s'more,rudeness,romancing,rioja,rifkin,rieper,revise,reunions,repugnant,replicating,repaid,renewing,relaxes,rekindle,regrettably,regenerate,reels,reciting,reappear,readin,ratting,rapes,rancher,rammed,rainstorm,railroading,queers,punxsutawney,punishes,pssst,prudy,proudest,protectors,procrastinating,proactive,priss,postmortem,pompoms,poise,pickings,perfectionist,peretti,people'll,pecking,patrolman,paralegal,paragraphs,paparazzi,pankot,pampering,overstep,overpower,outweigh,omnipotent,odious,nuwanda,nurtured,newsroom,neeson,needlepoint,necklaces,neato,muggers,muffler,mousy,mourned,mosey,mopey,mongolians,moldy,misinterpret,minibar,microfilm,mendola,mended,melissande,masturbating,masbath,manipulates,maimed,mailboxes,magnetism,m'lord,m'honey,lymph,lunge,lovelier,lefferts,leezak,ledgers,larraby,laloosh,kundun,kozinski,knockoff,kissin,kiosk,kennedys,kellman,karlo,kaleidoscope,jeffy,jaywalking,instructing,infraction,informer,infarction,impulsively,impressing,impersonated,impeach,idiocy,hyperbole,hurray,humped,huhuh,hsing,hordes,hoodlums,honky,hitchhiker,hideously,heaving,heathcliff,headgear,headboard,hazing,harem,handprint,hairspray,gutiurrez,goosebumps,gondola,glitches,gasping,frolic,freeways,frayed,fortitude,forgetful,forefathers,fonder,foiled,foaming,flossing,flailing,fitzgeralds,firehouse,finders,fiftieth,fellah,fawning,farquaad,faraway,fancied,extremists,exorcist,exhale,ethros,entrust,ennui,energized,encephalitis,embezzling,elster,elixir,electrolytes,duplex,dryers,drexl,dredging,drawback,don'ts,dobisch,divorcee,disrespected,disprove,disobeying,disinfectant,dingy,digress,dieting,dictating,devoured,devise,detonators,desist,deserter,derriere,deron,deceptive,debilitating,deathwok,daffodils,curtsy,cursory,cuppa,cumin,cronkite,cremation,credence,cranking,coverup,courted,countin,counselling,cornball,contentment,consensual,compost,cluett,cleverly,cleansed,cleanliness,chopec,chomp,chins,chime,cheswick,chessler,cheapest,chatted,cauliflower,catharsis,catchin,caress,camcorder,calorie,cackling,bystanders,buttoned,buttering,butted,buries,burgel,buffoon,brogna,bragged,boutros,bogeyman,blurting,blurb,blowup,bloodhound,blissful,birthmark,bigot,bestest,belted,belligerent,beggin,befall,beeswax,beatnik,beaming,barricade,baggoli,badness,awoke,artsy,artful,aroun,armpits,arming,annihilate,anise,angiogram,anaesthetic,amorous,ambiance,alligators,adoration,admittance,adama,abydos,zonked,zhivago,yorkin,wrongfully,writin,wrappers,worrywart,woops,wonderfalls,womanly,wickedness,whoopie,wholeheartedly,whimper,which'll,wheelchairs,what'ya,warranted,wallop,wading,wacked,virginal,vermouth,vermeil,verger,ventriss,veneer,vampira,utero,ushers,urgently,untoward,unshakable,unsettled,unruly,unlocks,ungodly,undue,uncooperative,uncontrollably,unbeatable,twitchy,tumbler,truest,triumphs,triplicate,tribbey,tortures,tongaree,tightening,thorazine,theres,testifies,teenaged,tearful,taxing,taldor,syllabus,swoops,swingin,suspending,sunburn,stuttering,stupor,strides,strategize,strangulation,stooped,stipulation,stingy,stapled,squeaks,squawking,spoilsport,splicing,spiel,spencers,spasms,spaniard,softener,sodding,soapbox,smoldering,smithbauer,skittish,sifting,sickest,sicilians,shuffling,shrivel,segretti,seeping,securely,scurrying,scrunch,scrote,screwups,schenkman,sawing,savin,satine,sapiens,salvaging,salmonella,sacrilege,rumpus,ruffle,roughing,rotted,rondall,ridding,rickshaw,rialto,rhinestone,restrooms,reroute,requisite,repress,rednecks,redeeming,rayed,ravell,raked,raincheck,raffi,racked,pushin,profess,prodding,procure,presuming,preppy,prednisone,potted,posttraumatic,poorhouse,podiatrist,plowed,pledging,playroom,plait,placate,pinback,picketing,photographing,pharoah,petrak,petal,persecuting,perchance,pellets,peeved,peerless,payable,pauses,pathologist,pagliacci,overwrought,overreaction,overqualified,overheated,outcasts,otherworldly,opinionated,oodles,oftentimes,occured,obstinate,nutritionist,numbness,nubile,nooooooo,nobodies,nepotism,neanderthals,mushu,mucus,mothering,mothballs,monogrammed,molesting,misspoke,misspelled,misconstrued,miscalculated,minimums,mince,mildew,mighta,middleman,mementos,mellowed,mayol,mauled,massaged,marmalade,mardi,makings,lundegaard,lovingly,loudest,lotto,loosing,loompa,looming,longs,loathes,littlest,littering,lifelike,legalities,laundered,lapdog,lacerations,kopalski,knobs,knitted,kittridge,kidnaps,kerosene,karras,jungles,jockeys,iranoff,invoices,invigorating,insolence,insincere,insectopia,inhumane,inhaling,ingrates,infestation,individuality,indeterminate,incomprehensible,inadequacy,impropriety,importer,imaginations,illuminating,ignite,hysterics,hypodermic,hyperventilate,hyperactive,humoring,honeymooning,honed,hoist,hoarding,hitching,hiker,hightail,hemoglobin,hell'd,heinie,growin,grasped,grandparent,granddaughters,gouged,goblins,gleam,glades,gigantor,get'em,geriatric,gatekeeper,gargoyles,gardenias,garcon,garbo,gallows,gabbing,futon,fulla,frightful,freshener,fortuitous,forceps,fogged,fodder,foamy,flogging,flaun,flared,fireplaces,feverish,favell,fattest,fattening,fallow,extraordinaire,evacuating,errant,envied,enchant,enamored,egocentric,dussander,dunwitty,dullest,dropout,dredged,dorsia,doornail,donot,dongs,dogged,dodgy,ditty,dishonorable,discriminating,discontinue,dings,dilly,dictation,dialysis,delly,delightfully,daryll,dandruff,cruddy,croquet,cringe,crimp,credo,crackling,courtside,counteroffer,counterfeiting,corrupting,copping,conveyor,contusions,contusion,conspirator,consoling,connoisseur,confetti,composure,compel,colic,coddle,cocksuckers,coattails,cloned,claustrophobia,clamoring,churn,chugga,chirping,chasin,chapped,chalkboard,centimeter,caymans,catheter,casings,caprica,capelli,cannolis,cannoli,camogli,camembert,butchers,butchered,busboys,bureaucrats,buckled,bubbe,brownstone,bravely,brackley,bouquets,botox,boozing,boosters,bodhi,blunders,blunder,blockage,biocyte,betrays,bested,beryllium,beheading,beggar,begbie,beamed,bastille,barstool,barricades,barbecues,barbecued,bandwagon,backfiring,bacarra,avenged,autopsies,aunties,associating,artichoke,arrowhead,appendage,apostrophe,antacid,ansel,annul,amuses,amped,amicable,amberg,alluring,adversaries,admirers,adlai,acupuncture,abnormality,aaaahhhh,zooming,zippity,zipping,zeroed,yuletide,yoyodyne,yengeese,yeahhh,wrinkly,wracked,withered,winks,windmills,whopping,wendle,weigart,waterworks,waterbed,watchful,wantin,wagging,waaah,vying,ventricle,varnish,vacuumed,unreachable,unprovoked,unmistakable,unfriendly,unfolding,underpaid,uncuff,unappealing,unabomber,typhoid,tuxedos,tushie,turds,tumnus,troubadour,trinium,treaters,treads,transpired,transgression,tought,thready,thins,thinners,techs,teary,tattaglia,tassels,tarzana,tanking,tablecloths,synchronize,symptomatic,sycophant,swimmingly,sweatshop,surfboard,superpowers,sunroom,sunblock,sugarplum,stupidly,strumpet,strapless,stooping,stools,stealthy,stalks,stairmaster,staffer,sshhh,squatting,squatters,spectacularly,sorbet,socked,sociable,snubbed,snorting,sniffles,snazzy,snakebite,smuggler,smorgasbord,smooching,slurping,slouch,slingshot,slaved,skimmed,sisterhood,silliest,sidarthur,sheraton,shebang,sharpening,shanghaied,shakers,sendoff,scurvy,scoliosis,scaredy,scagnetti,sawchuk,saugus,sasquatch,sandbag,saltines,s'pose,roston,rostle,riveting,ristle,rifling,revulsion,reverently,retrograde,restful,resents,reptilian,reorganize,renovating,reiterate,reinvent,reinmar,reibers,reechard,recuse,reconciling,recognizance,reclaiming,recitation,recieved,rebate,reacquainted,rascals,railly,quintuplets,quahog,pygmies,puzzling,punctuality,prosthetic,proms,probie,preys,preserver,preppie,poachers,plummet,plumbers,plannin,pitying,pitfalls,piqued,pinecrest,pinches,pillage,pigheaded,physique,pessimistic,persecute,perjure,percentile,pentothal,pensky,penises,peini,pazzi,pastels,parlour,paperweight,pamper,pained,overwhelm,overalls,outrank,outpouring,outhouse,outage,ouija,obstructed,obsessions,obeying,obese,o'riley,o'higgins,nosebleeds,norad,noooooooo,nononono,nonchalant,nippy,neurosis,nekhorvich,necronomicon,naquada,n'est,mystik,mystified,mumps,muddle,mothership,moped,monumentally,monogamous,mondesi,misogynistic,misinterpreting,mindlock,mending,megaphone,meeny,medicating,meanie,masseur,markstrom,marklars,margueritas,manifesting,maharajah,lukewarm,loveliest,loran,lizardo,liquored,lipped,lingers,limey,lemkin,leisurely,lathe,latched,lapping,ladle,krevlorneswath,kosygin,khakis,kenaru,keats,kaitlan,julliard,jollies,jaundice,jargon,jackals,invisibility,insipid,inflamed,inferiority,inexperience,incinerated,incinerate,incendiary,incan,inbred,implicating,impersonator,hunks,horsing,hooded,hippopotamus,hiked,hetson,hetero,hessian,henslowe,hendler,hellstrom,headstone,hayloft,harbucks,handguns,hallucinate,haldol,haggling,gynaecologist,gulag,guilder,guaranteeing,groundskeeper,grindstone,grimoir,grievance,griddle,gribbit,greystone,graceland,gooders,goeth,gentlemanly,gelatin,gawking,ganged,fukes,fromby,frenchmen,foursome,forsley,forbids,footwork,foothold,floater,flinging,flicking,fittest,fistfight,fireballs,fillings,fiddling,fennyman,felonious,felonies,feces,favoritism,fatten,fanatics,faceman,excusing,excepted,entwined,entree,ensconced,eladio,ehrlichman,easterland,dueling,dribbling,drape,downtrodden,doused,dosed,dorleen,dokie,distort,displeased,disown,dismount,disinherited,disarmed,disapproves,diperna,dined,diligent,dicaprio,depress,decoded,debatable,dealey,darsh,damsels,damning,dad'll,d'oeuvre,curlers,curie,cubed,crikey,crepes,countrymen,cornfield,coppers,copilot,copier,cooing,conspiracies,consigliere,condoning,commoner,commies,combust,comas,colds,clawed,clamped,choosy,chomping,chimps,chigorin,chianti,cheep,checkups,cheaters,celibate,cautiously,cautionary,castell,carpentry,caroling,carjacking,caritas,caregiver,cardiology,candlesticks,canasta,cain't,burro,burnin,bunking,bumming,bullwinkle,brummel,brooms,brews,breathin,braslow,bracing,botulism,boorish,bloodless,blayne,blatantly,blankie,bedbugs,becuase,barmaid,bared,baracus,banal,bakes,backpacks,attentions,atrocious,ativan,athame,asunder,astound,assuring,aspirins,asphyxiation,ashtrays,aryans,arnon,apprehension,applauding,anvil,antiquing,antidepressants,annoyingly,amputate,altruistic,alotta,alerting,afterthought,affront,affirm,actuality,abysmal,absentee,yeller,yakushova,wuzzy,wriggle,worrier,woogyman,womanizer,windpipe,windbag,willin,whisking,whimsy,wendall,weeny,weensy,weasels,watery,watcha,wasteful,waski,washcloth,waaay,vouched,viznick,ventriloquist,vendettas,veils,vayhue,vamanos,vadimus,upstage,uppity,unsaid,unlocking,unintentionally,undetected,undecided,uncaring,unbearably,tween,tryout,trotting,trini,trimmings,trickier,treatin,treadstone,trashcan,transcendent,tramps,townsfolk,torturous,torrid,toothpicks,tolerable,tireless,tiptoeing,timmay,tillinghouse,tidying,tibia,thumbing,thrusters,thrashing,these'll,thatos,testicular,teriyaki,tenors,tenacity,tellers,telemetry,tarragon,switchblade,swicker,swells,sweatshirts,swatches,surging,supremely,sump'n,succumb,subsidize,stumbles,stuffs,stoppin,stipulate,stenographer,steamroll,stasis,stagger,squandered,splint,splendidly,splashy,splashing,specter,sorcerers,somewheres,somber,snuggled,snowmobile,sniffed,snags,smugglers,smudged,smirking,smearing,slings,sleet,sleepovers,sleek,slackers,siree,siphoning,singed,sincerest,sickened,shuffled,shriveled,shorthanded,shittin,shish,shipwrecked,shins,sheetrock,shawshank,shamu,sha're,servitude,sequins,seascape,scrapings,scoured,scorching,sandpaper,saluting,salud,ruffled,roughnecks,rougher,rosslyn,rosses,roost,roomy,romping,revolutionize,reprimanded,refute,refrigerated,reeled,redundancies,rectal,recklessly,receding,reassignment,reapers,readout,ration,raring,ramblings,raccoons,quarantined,purging,punters,psychically,premarital,pregnancies,predisposed,precautionary,pollute,podunk,plums,plaything,pixilated,pitting,piranhas,pieced,piddles,pickled,photogenic,phosphorous,pffft,pestilence,pessimist,perspiration,perps,penticoff,passageways,pardons,panics,pancamo,paleontologist,overwhelms,overstating,overpaid,overdid,outlive,orthodontist,orgies,oreos,ordover,ordinates,ooooooh,oooohhh,omelettes,officiate,obtuse,obits,nymph,novocaine,noooooooooo,nipping,nilly,nightstick,negate,neatness,natured,narcotic,narcissism,namun,nakatomi,murky,muchacho,mouthwash,motzah,morsel,morph,morlocks,mooch,moloch,molest,mohra,modus,modicum,mockolate,misdemeanors,miscalculation,middies,meringue,mercilessly,meditating,mayakovsky,maximillian,marlee,markovski,maniacal,maneuvered,magnificence,maddening,lutze,lunged,lovelies,lorry,loosening,lookee,littered,lilac,lightened,laces,kurzon,kurtzweil,kind've,kimono,kenji,kembu,keanu,kazuo,jonesing,jilted,jiggling,jewelers,jewbilee,jacqnoud,jacksons,ivories,insurmountable,innocuous,innkeeper,infantery,indulged,indescribable,incoherent,impervious,impertinent,imperfections,hunnert,huffy,horsies,horseradish,hollowed,hogwash,hockley,hissing,hiromitsu,hidin,hereafter,helpmann,hehehe,haughty,happenings,hankie,handsomely,halliwells,haklar,haise,gunsights,grossly,grope,grocer,grits,gripping,grabby,glorificus,gizzard,gilardi,gibarian,geminon,gasses,garnish,galloping,gairwyn,futterman,futility,fumigated,fruitless,friendless,freon,foregone,forego,floored,flighty,flapjacks,fizzled,ficus,festering,farbman,fabricate,eyghon,extricate,exalted,eventful,esophagus,enterprising,entail,endor,emphatically,embarrasses,electroshock,easel,duffle,drumsticks,dissection,dissected,disposing,disparaging,disorientation,disintegrated,disarming,devoting,dessaline,deprecating,deplorable,delve,degenerative,deduct,decomposed,deathly,dearie,daunting,dankova,cyclotron,cyberspace,cutbacks,culpable,cuddled,crumpets,cruelly,crouching,cranium,cramming,cowering,couric,cordesh,conversational,conclusively,clung,clotting,cleanest,chipping,chimpanzee,chests,cheapen,chainsaws,censure,catapult,caravaggio,carats,captivating,calrissian,butlers,busybody,bussing,bunion,bulimic,budging,brung,browbeat,brokenhearted,brecher,breakdowns,bracebridge,boning,blowhard,blisters,blackboard,bigotry,bialy,bhamra,bended,begat,battering,baste,basquiat,barricaded,barometer,balled,baited,badenweiler,backhand,ascenscion,argumentative,appendicitis,apparition,anxiously,antagonistic,angora,anacott,amniotic,ambience,alonna,aleck,akashic,ageless,abouts,aawwww,aaaaarrrrrrggghhh,aaaaaa,zendi,yuppies,yodel,y'hear,wrangle,wombosi,wittle,withstanding,wisecracks,wiggling,wierd,whittlesley,whipper,whattya,whatsamatter,whatchamacallit,whassup,whad'ya,weakling,warfarin,waponis,wampum,wadn't,vorash,vizzini,virtucon,viridiana,veracity,ventilated,varicose,varcon,vandalized,vamos,vamoose,vaccinated,vacationing,usted,urinal,uppers,unwittingly,unsealed,unplanned,unhinged,unhand,unfathomable,unequivocally,unbreakable,unadvisedly,udall,tynacorp,tuxes,tussle,turati,tunic,tsavo,trussed,troublemakers,trollop,tremors,transsexual,transfusions,toothbrushes,toned,toddlers,tinted,tightened,thundering,thorpey,this'd,thespian,thaddius,tenuous,tenths,tenement,telethon,teleprompter,teaspoon,taunted,tattle,tardiness,taraka,tappy,tapioca,tapeworm,talcum,tacks,swivel,swaying,superpower,summarize,sumbitch,sultry,suburbia,styrofoam,stylings,strolls,strobe,stockpile,stewardesses,sterilized,sterilize,stealin,stakeouts,squawk,squalor,squabble,sprinkled,sportsmanship,spokes,spiritus,sparklers,spareribs,sowing,sororities,sonovabitch,solicit,softy,softness,softening,snuggling,snatchers,snarling,snarky,snacking,smears,slumped,slowest,slithering,sleazebag,slayed,slaughtering,skidded,skated,sivapathasundaram,sissies,silliness,silences,sidecar,sicced,shylock,shtick,shrugged,shriek,shoves,should'a,shortcake,shockingly,shirking,shaves,shatner,sharpener,shapely,shafted,sexless,septum,selflessness,seabea,scuff,screwball,scoping,scooch,scolding,schnitzel,schemed,scalper,santy,sankara,sanest,salesperson,sakulos,safehouse,sabers,runes,rumblings,rumbling,ruijven,ringers,righto,rhinestones,retrieving,reneging,remodelling,relentlessly,regurgitate,refills,reeking,reclusive,recklessness,recanted,ranchers,rafer,quaking,quacks,prophesied,propensity,profusely,problema,prided,prays,postmark,popsicles,poodles,pollyanna,polaroids,pokes,poconos,pocketful,plunging,plugging,pleeease,platters,pitied,pinetti,piercings,phooey,phonies,pestering,periscope,pentagram,pelts,patronized,paramour,paralyze,parachutes,pales,paella,paducci,owatta,overdone,overcrowded,overcompensating,ostracized,ordinate,optometrist,operandi,omens,okayed,oedipal,nuttier,nuptial,nunheim,noxious,nourish,notepad,nitroglycerin,nibblet,neuroses,nanosecond,nabbit,mythic,munchkins,multimillion,mulroney,mucous,muchas,mountaintop,morlin,mongorians,moneybags,mom'll,molto,mixup,misgivings,mindset,michalchuk,mesmerized,merman,mensa,meaty,mbwun,materialize,materialistic,masterminded,marginally,mapuhe,malfunctioning,magnify,macnamara,macinerney,machinations,macadamia,lysol,lurks,lovelorn,lopsided,locator,litback,litany,linea,limousines,limes,lighters,liebkind,levity,levelheaded,letterhead,lesabre,leron,lepers,lefts,leftenant,laziness,layaway,laughlan,lascivious,laryngitis,lapsed,landok,laminated,kurten,kobol,knucklehead,knowed,knotted,kirkeby,kinsa,karnovsky,jolla,jimson,jettison,jeric,jawed,jankis,janitors,jango,jalopy,jailbreak,jackers,jackasses,invalidate,intercepting,intercede,insinuations,infertile,impetuous,impaled,immerse,immaterial,imbeciles,imagines,idyllic,idolized,icebox,i'd've,hypochondriac,hyphen,hurtling,hurried,hunchback,hullo,horsting,hoooo,homeboys,hollandaise,hoity,hijinks,hesitates,herrero,herndorff,helplessly,heeyy,heathen,hearin,headband,harrassment,harpies,halstrom,hahahahaha,hacer,grumbling,grimlocks,grift,greets,grandmothers,grander,grafts,gordievsky,gondorff,godorsky,glscripts,gaudy,gardeners,gainful,fuses,fukienese,frizzy,freshness,freshening,fraught,frantically,foxbooks,fortieth,forked,foibles,flunkies,fleece,flatbed,fisted,firefight,fingerpaint,filibuster,fhloston,fenceline,femur,fatigues,fanucci,fantastically,familiars,falafel,fabulously,eyesore,expedient,ewwww,eviscerated,erogenous,epidural,enchante,embarassed,embarass,embalming,elude,elspeth,electrocute,eigth,eggshell,echinacea,eases,earpiece,earlobe,dumpsters,dumbshit,dumbasses,duloc,duisberg,drummed,drinkers,dressy,dorma,doily,divvy,diverting,dissuade,disrespecting,displace,disorganized,disgustingly,discord,disapproving,diligence,didja,diced,devouring,detach,destructing,desolate,demerits,delude,delirium,degrade,deevak,deemesa,deductions,deduce,debriefed,deadbeats,dateline,darndest,damnable,dalliance,daiquiri,d'agosta,cussing,cryss,cripes,cretins,crackerjack,cower,coveting,couriers,countermission,cotswolds,convertibles,conversationalist,consorting,consoled,consarn,confides,confidentially,commited,commiserate,comme,comforter,comeuppance,combative,comanches,colosseum,colling,coexist,coaxing,cliffside,chutes,chucked,chokes,childlike,childhoods,chickening,chenowith,charmingly,changin,catsup,captioning,capsize,cappucino,capiche,candlewell,cakewalk,cagey,caddie,buxley,bumbling,bulky,buggered,brussel,brunettes,brumby,brotha,bronck,brisket,bridegroom,braided,bovary,bookkeeper,bluster,bloodline,blissfully,blase,billionaires,bicker,berrisford,bereft,berating,berate,bendy,belive,belated,beikoku,beens,bedspread,bawdy,barreling,baptize,banya,balthazar,balmoral,bakshi,bails,badgered,backstreet,awkwardly,auras,attuned,atheists,astaire,assuredly,arrivederci,appetit,appendectomy,apologetic,antihistamine,anesthesiologist,amulets,albie,alarmist,aiight,adstream,admirably,acquaint,abound,abominable,aaaaaaah,zekes,zatunica,wussy,worded,wooed,woodrell,wiretap,windowsill,windjammer,windfall,whisker,whims,whatiya,whadya,weirdly,weenies,waunt,washout,wanto,waning,victimless,verdad,veranda,vandaley,vancomycin,valise,vaguest,upshot,unzip,unwashed,untrained,unstuck,unprincipled,unmentionables,unjustly,unfolds,unemployable,uneducated,unduly,undercut,uncovering,unconsciousness,unconsciously,tyndareus,turncoat,turlock,tulle,tryouts,trouper,triplette,trepkos,tremor,treeger,trapeze,traipse,tradeoff,trach,torin,tommorow,tollan,toity,timpani,thumbprint,thankless,tell'em,telepathy,telemarketing,telekinesis,teevee,teeming,tarred,tambourine,talentless,swooped,switcheroo,swirly,sweatpants,sunstroke,suitors,sugarcoat,subways,subterfuge,subservient,subletting,stunningly,strongbox,striptease,stravanavitch,stradling,stoolie,stodgy,stocky,stifle,stealer,squeezes,squatter,squarely,sprouted,spool,spindly,speedos,soups,soundly,soulmates,somebody'll,soliciting,solenoid,sobering,snowflakes,snowballs,snores,slung,slimming,skulk,skivvies,skewered,skewer,sizing,sistine,sidebar,sickos,shushing,shunt,shugga,shone,shol'va,sharpened,shapeshifter,shadowing,shadoe,selectman,sefelt,seared,scrounging,scribbling,scooping,scintillating,schmoozing,scallops,sapphires,sanitarium,sanded,safes,rudely,roust,rosebush,rosasharn,rondell,roadhouse,riveted,rewrote,revamp,retaliatory,reprimand,replicators,replaceable,remedied,relinquishing,rejoicing,reincarnated,reimbursed,reevaluate,redid,redefine,recreating,reconnected,rebelling,reassign,rearview,rayne,ravings,ratso,rambunctious,radiologist,quiver,quiero,queef,qualms,pyrotechnics,pulsating,psychosomatic,proverb,promiscuous,profanity,prioritize,preying,predisposition,precocious,precludes,prattling,prankster,povich,potting,postpartum,porridge,polluting,plowing,pistachio,pissin,pickpocket,physicals,peruse,pertains,personified,personalize,perjured,perfecting,pepys,pepperdine,pembry,peering,peels,pedophile,patties,passkey,paratrooper,paraphernalia,paralyzing,pandering,paltry,palpable,pagers,pachyderm,overstay,overestimated,overbite,outwit,outgrow,outbid,ooops,oomph,oohhh,oldie,obliterate,objectionable,nygma,notting,noches,nitty,nighters,newsstands,newborns,neurosurgery,nauseated,nastiest,narcolepsy,mutilate,muscled,murmur,mulva,mulling,mukada,muffled,morgues,moonbeams,monogamy,molester,molestation,molars,moans,misprint,mismatched,mirth,mindful,mimosas,millander,mescaline,menstrual,menage,mellowing,medevac,meddlesome,matey,manicures,malevolent,madmen,macaroons,lydell,lycra,lunchroom,lunching,lozenges,looped,litigious,liquidate,linoleum,lingk,limitless,limber,lilacs,ligature,liftoff,lemmiwinks,leggo,learnin,lazarre,lawyered,lactose,knelt,kenosha,kemosabe,jussy,junky,jordy,jimmies,jeriko,jakovasaur,issacs,isabela,irresponsibility,ironed,intoxication,insinuated,inherits,ingest,ingenue,inflexible,inflame,inevitability,inedible,inducement,indignant,indictments,indefensible,incomparable,incommunicado,improvising,impounded,illogical,ignoramus,hydrochloric,hydrate,hungover,humorless,humiliations,hugest,hoverdrone,hovel,hmmph,hitchhike,hibernating,henchman,helloooo,heirlooms,heartsick,headdress,hatches,harebrained,hapless,hanen,handsomer,hallows,habitual,guten,gummy,guiltier,guidebook,gstaad,gruff,griss,grieved,grata,gorignak,goosed,goofed,glowed,glitz,glimpses,glancing,gilmores,gianelli,geraniums,garroway,gangbusters,gamblers,galls,fuddy,frumpy,frowning,frothy,fro'tak,frere,fragrances,forgettin,follicles,flowery,flophouse,floatin,flirts,flings,flatfoot,fingerprinting,fingerprinted,fingering,finald,fillet,fianc,femoral,federales,fawkes,fascinates,farfel,fambly,falsified,fabricating,exterminators,expectant,excusez,excrement,excercises,evian,etins,esophageal,equivalency,equate,equalizer,entrees,enquire,endearment,empathetic,emailed,eggroll,earmuffs,dyslexic,duper,duesouth,drunker,druggie,dreadfully,dramatics,dragline,downplay,downers,dominatrix,doers,docket,docile,diversify,distracts,disloyalty,disinterested,discharging,disagreeable,dirtier,dinghy,dimwitted,dimoxinil,dimmy,diatribe,devising,deviate,detriment,desertion,depressants,depravity,deniability,delinquents,defiled,deepcore,deductive,decimate,deadbolt,dauthuille,dastardly,daiquiris,daggers,dachau,curiouser,curdled,cucamonga,cruller,cruces,crosswalk,crinkle,crescendo,cremate,counseled,couches,cornea,corday,copernicus,contrition,contemptible,constipated,conjoined,confounded,condescend,concoct,conch,compensating,committment,commandeered,comely,coddled,cockfight,cluttered,clunky,clownfish,cloaked,clenched,cleanin,civilised,circumcised,cimmeria,cilantro,chutzpah,chucking,chiseled,chicka,chattering,cervix,carrey,carpal,carnations,cappuccinos,candied,calluses,calisthenics,bushy,burners,budington,buchanans,brimming,braids,boycotting,bouncers,botticelli,botherin,bookkeeping,bogyman,bogged,bloodthirsty,blintzes,blanky,binturong,billable,bigboote,bewildered,betas,bequeath,behoove,befriend,bedpost,bedded,baudelaires,barreled,barboni,barbeque,bangin,baltus,bailout,backstabber,baccarat,awning,augie,arguillo,archway,apricots,apologising,annyong,anchorman,amenable,amazement,allspice,alannis,airfare,airbags,ahhhhhhhhh,ahhhhhhhh,ahhhhhhh,agitator,adrenal,acidosis,achoo,accessorizing,accentuate,abrasions,abductor,aaaahhh,aaaaaaaa,aaaaaaa,zeroing,zelner,zeldy,yevgeny,yeska,yellows,yeesh,yeahh,yamuri,wouldn't've,workmanship,woodsman,winnin,winked,wildness,whoring,whitewash,whiney,when're,wheezer,wheelman,wheelbarrow,westerburg,weeding,watermelons,washboard,waltzes,wafting,voulez,voluptuous,vitone,vigilantes,videotaping,viciously,vices,veruca,vermeer,verifying,vasculitis,valets,upholstered,unwavering,untold,unsympathetic,unromantic,unrecognizable,unpredictability,unmask,unleashing,unintentional,unglued,unequivocal,underrated,underfoot,unchecked,unbutton,unbind,unbiased,unagi,uhhhhh,tugging,triads,trespasses,treehorn,traviata,trappers,transplants,trannie,tramping,tracheotomy,tourniquet,tooty,toothless,tomarrow,toasters,thruster,thoughtfulness,thornwood,tengo,tenfold,telltale,telephoto,telephoned,telemarketer,tearin,tastic,tastefully,tasking,taser,tamed,tallow,taketh,taillight,tadpoles,tachibana,syringes,sweated,swarthy,swagger,surges,supermodels,superhighway,sunup,sun'll,sulfa,sugarless,sufficed,subside,strolled,stringy,strengthens,straightest,straightens,storefront,stopper,stockpiling,stimulant,stiffed,steyne,sternum,stepladder,stepbrother,steers,steelheads,steakhouse,stathis,stankylecartmankennymr,standoffish,stalwart,squirted,spritz,sprig,sprawl,spousal,sphincter,spenders,spearmint,spatter,spangled,southey,soured,sonuvabitch,somethng,snuffed,sniffs,smokescreen,smilin,slobs,sleepwalker,sleds,slays,slayage,skydiving,sketched,skanks,sixed,siphoned,siphon,simpering,sigfried,sidearm,siddons,sickie,shuteye,shuffleboard,shrubberies,shrouded,showmanship,shouldn't've,shoplift,shiatsu,sentries,sentance,sensuality,seething,secretions,searing,scuttlebutt,sculpt,scowling,scouring,scorecard,schoolers,schmucks,scepters,scaly,scalps,scaffolding,sauces,sartorius,santen,salivating,sainthood,saget,saddens,rygalski,rusting,ruination,rueland,rudabaga,rottweiler,roofies,romantics,rollerblading,roldy,roadshow,rickets,rible,rheza,revisiting,retentive,resurface,restores,respite,resounding,resorting,resists,repulse,repressing,repaying,reneged,refunds,rediscover,redecorated,reconstructive,recommitted,recollect,receptacle,reassess,reanimation,realtors,razinin,rationalization,ratatouille,rashum,rasczak,rancheros,rampler,quizzing,quips,quartered,purring,pummeling,puede,proximo,prospectus,pronouncing,prolonging,procreation,proclamations,principled,prides,preoccupation,prego,precog,prattle,pounced,potshots,potpourri,porque,pomegranates,polenta,plying,pluie,plesac,playmates,plantains,pillowcase,piddle,pickers,photocopied,philistine,perpetuate,perpetually,perilous,pawned,pausing,pauper,parter,parlez,parlay,pally,ovulation,overtake,overstate,overpowering,overpowered,overconfident,overbooked,ovaltine,outweighs,outings,ottos,orrin,orifice,orangutan,oopsy,ooooooooh,oooooo,ooohhhh,ocular,obstruct,obscenely,o'dwyer,nutjob,nunur,notifying,nostrand,nonny,nonfat,noblest,nimble,nikes,nicht,newsworthy,nestled,nearsighted,ne'er,nastier,narco,nakedness,muted,mummified,mudda,mozzarella,moxica,motivator,motility,mothafucka,mortmain,mortgaged,mores,mongers,mobbed,mitigating,mistah,misrepresented,mishke,misfortunes,misdirection,mischievous,mineshaft,millaney,microwaves,metzenbaum,mccovey,masterful,masochistic,marliston,marijawana,manya,mantumbi,malarkey,magnifique,madrona,madox,machida,m'hidi,lullabies,loveliness,lotions,looka,lompoc,litterbug,litigator,lithe,liquorice,linds,limericks,lightbulb,lewises,letch,lemec,layover,lavatory,laurels,lateness,laparotomy,laboring,kuato,kroff,krispy,krauts,knuckleheads,kitschy,kippers,kimbrow,keypad,keepsake,kebab,karloff,junket,judgemental,jointed,jezzie,jetting,jeeze,jeeter,jeesus,jeebs,janeane,jails,jackhammer,ixnay,irritates,irritability,irrevocable,irrefutable,irked,invoking,intricacies,interferon,intents,insubordinate,instructive,instinctive,inquisitive,inlay,injuns,inebriated,indignity,indecisive,incisors,incacha,inalienable,impresses,impregnate,impregnable,implosion,idolizes,hypothyroidism,hypoglycemic,huseni,humvee,huddling,honing,hobnobbing,hobnob,histrionics,histamine,hirohito,hippocratic,hindquarters,hikita,hikes,hightailed,hieroglyphics,heretofore,herbalist,hehey,hedriks,heartstrings,headmistress,headlight,hardheaded,happend,handlebars,hagitha,habla,gyroscope,guys'd,guy'd,guttersnipe,grump,growed,grovelling,groan,greenbacks,gravedigger,grating,grasshoppers,grandiose,grandest,grafted,gooood,goood,gooks,godsakes,goaded,glamorama,giveth,gingham,ghostbusters,germane,georgy,gazzo,gazelles,gargle,garbled,galgenstein,gaffe,g'day,fyarl,furnish,furies,fulfills,frowns,frowned,frighteningly,freebies,freakishly,forewarned,foreclose,forearms,fordson,fonics,flushes,flitting,flemmer,flabby,fishbowl,fidgeting,fevers,feigning,faxing,fatigued,fathoms,fatherless,fancier,fanatical,factored,eyelid,eyeglasses,expresso,expletive,expectin,excruciatingly,evidentiary,ever'thing,eurotrash,eubie,estrangement,erlich,epitome,entrap,enclose,emphysema,embers,emasculating,eighths,eardrum,dyslexia,duplicitous,dumpty,dumbledore,dufus,duddy,duchamp,drunkenness,drumlin,drowns,droid,drinky,drifts,drawbridge,dramamine,douggie,douchebag,dostoyevsky,doodling,don'tcha,domineering,doings,dogcatcher,doctoring,ditzy,dissimilar,dissecting,disparage,disliking,disintegrating,dishwalla,dishonored,dishing,disengaged,disavowed,dippy,diorama,dimmed,dilate,digitalis,diggory,dicing,diagnosing,devola,desolation,dennings,denials,deliverance,deliciously,delicacies,degenerates,degas,deflector,defile,deference,decrepit,deciphered,dawdle,dauphine,daresay,dangles,dampen,damndest,cucumbers,cucaracha,cryogenically,croaks,croaked,criticise,crisper,creepiest,creams,crackle,crackin,covertly,counterintelligence,corrosive,cordially,cops'll,convulsions,convoluted,conversing,conga,confrontational,confab,condolence,condiments,complicit,compiegne,commodus,comings,cometh,collusion,collared,cockeyed,clobber,clemonds,clarithromycin,cienega,christmasy,christmassy,chloroform,chippie,chested,cheeco,checklist,chauvinist,chandlers,chambermaid,chakras,cellophane,caveat,cataloguing,cartmanland,carples,carny,carded,caramels,cappy,caped,canvassing,callback,calibrated,calamine,buttermilk,butterfingers,bunsen,bulimia,bukatari,buildin,budged,brobich,bringer,brendell,brawling,bratty,braised,boyish,boundless,botch,boosh,bookies,bonbons,bodes,bobunk,bluntly,blossoming,bloomers,bloodstains,bloodhounds,blech,biter,biometric,bioethics,bijan,bigoted,bicep,bereaved,bellowing,belching,beholden,beached,batmobile,barcodes,barch,barbecuing,bandanna,backwater,backtrack,backdraft,augustino,atrophy,atrocity,atley,atchoo,asthmatic,assoc,armchair,arachnids,aptly,appetizing,antisocial,antagonizing,anorexia,anini,andersons,anagram,amputation,alleluia,airlock,aimless,agonized,agitate,aggravating,aerosol,acing,accomplishing,accidently,abuser,abstain,abnormally,aberration,aaaaahh,zlotys,zesty,zerzura,zapruder,zantopia,yelburton,yeess,y'knowwhati'msayin,wwhat,wussies,wrenched,would'a,worryin,wormser,wooooo,wookiee,wolchek,wishin,wiseguys,windbreaker,wiggy,wieners,wiedersehen,whoopin,whittled,wherefore,wharvey,welts,wellstone,wedges,wavered,watchit,wastebasket,wango,waken,waitressed,wacquiem,vrykolaka,voula,vitally,visualizing,viciousness,vespers,vertes,verily,vegetarians,vater,vaporize,vannacutt,vallens,ussher,urinating,upping,unwitting,untangle,untamed,unsanitary,unraveled,unopened,unisex,uninvolved,uninteresting,unintelligible,unimaginative,undeserving,undermines,undergarments,unconcerned,tyrants,typist,tykes,tybalt,twosome,twits,tutti,turndown,tularemia,tuberculoma,tsimshian,truffaut,truer,truant,trove,triumphed,tripe,trigonometry,trifled,trifecta,tribulations,tremont,tremoille,transcends,trafficker,touchin,tomfoolery,tinkered,tinfoil,tightrope,thousan,thoracotomy,thesaurus,thawing,thatta,tessio,temps,taxidermist,tator,tachycardia,t'akaya,swelco,sweetbreads,swatting,supercollider,sunbathing,summarily,suffocation,sueleen,succinct,subsided,submissive,subjecting,subbing,subatomic,stupendous,stunted,stubble,stubbed,streetwalker,strategizing,straining,straightaway,stoli,stiffer,stickup,stens,steamroller,steadwell,steadfast,stateroom,stans,sshhhh,squishing,squinting,squealed,sprouting,sprimp,spreadsheets,sprawled,spotlights,spooning,spirals,speedboat,spectacles,speakerphone,southglen,souse,soundproof,soothsayer,sommes,somethings,solidify,soars,snorted,snorkeling,snitches,sniping,snifter,sniffin,snickering,sneer,snarl,smila,slinking,slanted,slanderous,slammin,skimp,skilosh,siteid,sirloin,singe,sighing,sidekicks,sicken,showstopper,shoplifter,shimokawa,sherborne,shavadai,sharpshooters,sharking,shagged,shaddup,senorita,sesterces,sensuous,seahaven,scullery,scorcher,schotzie,schnoz,schmooze,schlep,schizo,scents,scalping,scalped,scallop,scalding,sayeth,saybrooke,sawed,savoring,sardine,sandstorm,sandalwood,salutations,sagman,s'okay,rsvp'd,rousted,rootin,romper,romanovs,rollercoaster,rolfie,robinsons,ritzy,ritualistic,ringwald,rhymed,rheingold,rewrites,revoking,reverts,retrofit,retort,retinas,respirations,reprobate,replaying,repaint,renquist,renege,relapsing,rekindled,rejuvenating,rejuvenated,reinstating,recriminations,rechecked,reassemble,rears,reamed,reacquaint,rayanne,ravish,rathole,raspail,rarest,rapists,rants,racketeer,quittin,quitters,quintessential,queremos,quellek,quelle,quasimodo,pyromaniac,puttanesca,puritanical,purer,puree,pungent,pummel,puedo,psychotherapist,prosecutorial,prosciutto,propositioning,procrastination,probationary,primping,preventative,prevails,preservatives,preachy,praetorians,practicality,powders,potus,postop,positives,poser,portolano,portokalos,poolside,poltergeists,pocketed,poach,plummeted,plucking,plimpton,playthings,plastique,plainclothes,pinpointed,pinkus,pinks,pigskin,piffle,pictionary,piccata,photocopy,phobias,perignon,perfumes,pecks,pecked,patently,passable,parasailing,paramus,papier,paintbrush,pacer,paaiint,overtures,overthink,overstayed,overrule,overestimate,overcooked,outlandish,outgrew,outdoorsy,outdo,orchestrate,oppress,opposable,oooohh,oomupwah,okeydokey,okaaay,ohashi,of'em,obscenities,oakie,o'gar,nurection,nostradamus,norther,norcom,nooch,nonsensical,nipped,nimbala,nervously,neckline,nebbleman,narwhal,nametag,n'n't,mycenae,muzak,muumuu,mumbled,mulvehill,muggings,muffet,mouthy,motivates,motaba,moocher,mongi,moley,moisturize,mohair,mocky,mmkay,mistuh,missis,misdeeds,mincemeat,miggs,miffed,methadone,messieur,menopausal,menagerie,mcgillicuddy,mayflowers,matrimonial,matick,masai,marzipan,maplewood,manzelle,mannequins,manhole,manhandle,malfunctions,madwoman,machiavelli,lynley,lynched,lurconis,lujack,lubricant,looove,loons,loofah,lonelyhearts,lollipops,lineswoman,lifers,lexter,lepner,lemony,leggy,leafy,leadeth,lazerus,lazare,lawford,languishing,lagoda,ladman,kundera,krinkle,krendler,kreigel,kowolski,knockdown,knifed,kneed,kneecap,kids'll,kennie,kenmore,keeled,kazootie,katzenmoyer,kasdan,karak,kapowski,kakistos,julyan,jockstrap,jobless,jiggly,jaunt,jarring,jabbering,irrigate,irrevocably,irrationally,ironies,invitro,intimated,intently,intentioned,intelligently,instill,instigator,instep,inopportune,innuendoes,inflate,infects,infamy,indiscretions,indiscreet,indio,indignities,indict,indecision,inconspicuous,inappropriately,impunity,impudent,impotence,implicates,implausible,imperfection,impatience,immutable,immobilize,idealist,iambic,hysterically,hyperspace,hygienist,hydraulics,hydrated,huzzah,husks,hunched,huffed,hubris,hubbub,hovercraft,houngan,hosed,horoscopes,hopelessness,hoodwinked,honorably,honeysuckle,homegirl,holiest,hippity,hildie,hieroglyphs,hexton,herein,heckle,heaping,healthilizer,headfirst,hatsue,harlot,hardwired,halothane,hairstyles,haagen,haaaaa,gutting,gummi,groundless,groaning,gristle,grills,graynamore,grabbin,goodes,goggle,glittering,glint,gleaming,glassy,girth,gimbal,giblets,gellers,geezers,geeze,garshaw,gargantuan,garfunkel,gangway,gandarium,gamut,galoshes,gallivanting,gainfully,gachnar,fusionlips,fusilli,furiously,frugal,fricking,frederika,freckling,frauds,fountainhead,forthwith,forgo,forgettable,foresight,foresaw,fondling,fondled,fondle,folksy,fluttering,fluffing,floundering,flirtatious,flexing,flatterer,flaring,fixating,finchy,figurehead,fiendish,fertilize,ferment,fending,fellahs,feelers,fascinate,fantabulous,falsify,fallopian,faithless,fairer,fainter,failings,facetious,eyepatch,exxon,extraterrestrials,extradite,extracurriculars,extinguish,expunged,expelling,exorbitant,exhilarated,exertion,exerting,excercise,everbody,evaporated,escargot,escapee,erases,epizootics,epithelials,ephrum,entanglements,enslave,engrossed,emphatic,emeralds,ember,emancipated,elevates,ejaculate,effeminate,eccentricities,easygoing,earshot,dunks,dullness,dulli,dulled,drumstick,dropper,driftwood,dregs,dreck,dreamboat,draggin,downsizing,donowitz,dominoes,diversions,distended,dissipate,disraeli,disqualify,disowned,dishwashing,disciplining,discerning,disappoints,dinged,digested,dicking,detonating,despising,depressor,depose,deport,dents,defused,deflecting,decryption,decoys,decoupage,decompress,decibel,decadence,deafening,dawning,dater,darkened,dappy,dallying,dagon,czechoslovakians,cuticles,cuteness,cupboards,culottes,cruisin,crosshairs,cronyn,criminalistics,creatively,creaming,crapping,cranny,cowed,contradicting,constipation,confining,confidences,conceiving,conceivably,concealment,compulsively,complainin,complacent,compels,communing,commode,comming,commensurate,columnists,colonoscopy,colchicine,coddling,clump,clubbed,clowning,cliffhanger,clang,cissy,choosers,choker,chiffon,channeled,chalet,cellmates,cathartic,caseload,carjack,canvass,canisters,candlestick,candlelit,camry,calzones,calitri,caldy,byline,butterball,bustier,burlap,bureaucrat,buffoons,buenas,brookline,bronzed,broiled,broda,briss,brioche,briar,breathable,brays,brassieres,boysenberry,bowline,boooo,boonies,booklets,bookish,boogeyman,boogey,bogas,boardinghouse,bluuch,blundering,bluer,blowed,blotchy,blossomed,bloodwork,bloodied,blithering,blinks,blathering,blasphemous,blacking,birdson,bings,bfmid,bfast,bettin,berkshires,benjamins,benevolence,benched,benatar,bellybutton,belabor,behooves,beddy,beaujolais,beattle,baxworth,baseless,barfing,bannish,bankrolled,banek,ballsy,ballpoint,baffling,badder,badda,bactine,backgammon,baako,aztreonam,authoritah,auctioning,arachtoids,apropos,aprons,apprised,apprehensive,anythng,antivenin,antichrist,anorexic,anoint,anguished,angioplasty,angio,amply,ampicillin,amphetamines,alternator,alcove,alabaster,airlifted,agrabah,affidavits,admonished,admonish,addled,addendum,accuser,accompli,absurdity,absolved,abrusso,abreast,aboot,abductions,abducting,aback,ababwa,aaahhhh,zorin,zinthar,zinfandel,zillions,zephyrs,zatarcs,zacks,youuu,yokels,yardstick,yammer,y'understand,wynette,wrung,wreaths,wowed,wouldn'ta,worming,wormed,workday,woodsy,woodshed,woodchuck,wojadubakowski,withering,witching,wiseass,wiretaps,wining,willoby,wiccaning,whupped,whoopi,whoomp,wholesaler,whiteness,whiner,whatchya,wharves,wenus,weirdoes,weaning,watusi,waponi,waistband,wackos,vouching,votre,vivica,viveca,vivant,vivacious,visor,visitin,visage,vicrum,vetted,ventriloquism,venison,varnsen,vaporized,vapid,vanstock,uuuuh,ushering,urologist,urination,upstart,uprooted,unsubtitled,unspoiled,unseat,unseasonably,unseal,unsatisfying,unnerve,unlikable,unleaded,uninsured,uninspired,unicycle,unhooked,unfunny,unfreezing,unflattering,unfairness,unexpressed,unending,unencumbered,unearth,undiscovered,undisciplined,understan,undershirt,underlings,underline,undercurrent,uncivilized,uncharacteristic,umpteenth,uglies,tuney,trumps,truckasaurus,trubshaw,trouser,tringle,trifling,trickster,trespassers,trespasser,traumas,trattoria,trashes,transgressions,trampling,tp'ed,toxoplasmosis,tounge,tortillas,topsy,topple,topnotch,tonsil,tions,timmuh,timithious,tilney,tighty,tightness,tightens,tidbits,ticketed,thyme,threepio,thoughtfully,thorkel,thommo,thing'll,thefts,that've,thanksgivings,tetherball,testikov,terraforming,tepid,tendonitis,tenboom,telex,teenybopper,tattered,tattaglias,tanneke,tailspin,tablecloth,swooping,swizzle,swiping,swindled,swilling,swerving,sweatshops,swaddling,swackhammer,svetkoff,supossed,superdad,sumptuous,sugary,sugai,subvert,substantiate,submersible,sublimating,subjugation,stymied,strychnine,streetlights,strassmans,stranglehold,strangeness,straddling,straddle,stowaways,stotch,stockbrokers,stifling,stepford,steerage,steena,statuary,starlets,staggeringly,ssshhh,squaw,spurt,spungeon,spritzer,sprightly,sprays,sportswear,spoonful,splittin,splitsville,speedily,specialise,spastic,sparrin,souvlaki,southie,sourpuss,soupy,soundstage,soothes,somebody'd,softest,sociopathic,socialized,snyders,snowmobiles,snowballed,snatches,smugness,smoothest,smashes,sloshed,sleight,skyrocket,skied,skewed,sixpence,sipowicz,singling,simulates,shyness,shuvanis,showoff,shortsighted,shopkeeper,shoehorn,shithouse,shirtless,shipshape,shifu,shelve,shelbyville,sheepskin,sharpens,shaquille,shanshu,servings,sequined,seizes,seashells,scrambler,scopes,schnauzer,schmo,schizoid,scampered,savagely,saudis,santas,sandovals,sanding,saleswoman,sagging,s'cuse,rutting,ruthlessly,runneth,ruffians,rubes,rosalita,rollerblades,rohypnol,roasts,roadies,ritten,rippling,ripples,rigoletto,richardo,rethought,reshoot,reserving,reseda,rescuer,reread,requisitions,repute,reprogram,replenish,repetitious,reorganizing,reinventing,reinvented,reheat,refrigerators,reenter,recruiter,recliner,rawdy,rashes,rajeski,raison,raisers,rages,quinine,questscape,queller,pygmalion,pushers,pusan,purview,pumpin,pubescent,prudes,provolone,propriety,propped,procrastinate,processional,preyed,pretrial,portent,pooling,poofy,polloi,policia,poacher,pluses,pleasuring,platitudes,plateaued,plaguing,pittance,pinheads,pincushion,pimply,pimped,piggyback,piecing,phillipe,philipse,philby,pharaohs,petyr,petitioner,peshtigo,pesaram,persnickety,perpetrate,percolating,pepto,penne,penell,pemmican,peeks,pedaling,peacemaker,pawnshop,patting,pathologically,patchouli,pasts,pasties,passin,parlors,paltrow,palamon,padlock,paddling,oversleep,overheating,overdosed,overcharge,overblown,outrageously,ornery,opportune,oooooooooh,oohhhh,ohhhhhh,ogres,odorless,obliterated,nyong,nymphomaniac,ntozake,novocain,nough,nonnie,nonissue,nodules,nightmarish,nightline,niceties,newsman,needra,nedry,necking,navour,nauseam,nauls,narim,namath,nagged,naboo,n'sync,myslexia,mutator,mustafi,musketeer,murtaugh,murderess,munching,mumsy,muley,mouseville,mortifying,morgendorffers,moola,montel,mongoloid,molestered,moldings,mocarbies,mo'ss,mixers,misrell,misnomer,misheard,mishandled,miscreant,misconceptions,miniscule,millgate,mettle,metricconverter,meteors,menorah,mengele,melding,meanness,mcgruff,mcarnold,matzoh,matted,mastectomy,massager,marveling,marooned,marmaduke,marick,manhandled,manatees,man'll,maltin,maliciously,malfeasance,malahide,maketh,makeovers,maiming,machismo,lumpectomy,lumbering,lucci,lording,lorca,lookouts,loogie,loners,loathed,lissen,lighthearted,lifer,lickin,lewen,levitation,lestercorp,lessee,lentils,legislate,legalizing,lederhosen,lawmen,lasskopf,lardner,lambeau,lamagra,ladonn,lactic,lacquer,labatier,krabappel,kooks,knickknacks,klutzy,kleynach,klendathu,kinross,kinkaid,kind'a,ketch,kesher,karikos,karenina,kanamits,junshi,jumbled,joust,jotted,jobson,jingling,jigalong,jerries,jellies,jeeps,javna,irresistable,internist,intercranial,inseminated,inquisitor,infuriate,inflating,infidelities,incessantly,incensed,incase,incapacitate,inasmuch,inaccuracies,imploding,impeding,impediments,immaturity,illegible,iditarod,icicles,ibuprofen,i'i'm,hymie,hydrolase,hunker,humps,humons,humidor,humdinger,humbling,huggin,huffing,housecleaning,hothouse,hotcakes,hosty,hootenanny,hootchie,hoosegow,honks,honeymooners,homily,homeopathic,hitchhikers,hissed,hillnigger,hexavalent,hewwo,hershe,hermey,hergott,henny,hennigans,henhouse,hemolytic,helipad,heifer,hebrews,hebbing,heaved,headlock,harrowing,harnessed,hangovers,handi,handbasket,halfrek,hacene,gyges,guys're,gundersons,gumption,gruntmaster,grubs,grossie,groped,grins,greaseball,gravesite,gratuity,granma,grandfathers,grandbaby,gradski,gracing,gossips,gooble,goners,golitsyn,gofer,godsake,goddaughter,gnats,gluing,glares,givers,ginza,gimmie,gimmee,gennero,gemme,gazpacho,gazed,gassy,gargling,gandhiji,galvanized,gallbladder,gaaah,furtive,fumigation,fucka,fronkonsteen,frills,freezin,freewald,freeloader,frailty,forger,foolhardy,fondest,fomin,followin,follicle,flotation,flopping,floodgates,flogged,flicked,flenders,fleabag,fixings,fixable,fistful,firewater,firelight,fingerbang,finalizing,fillin,filipov,fiderer,felling,feldberg,feign,faunia,fatale,farkus,fallible,faithfulness,factoring,eyeful,extramarital,exterminated,exhume,exasperated,eviscerate,estoy,esmerelda,escapades,epoxy,enticed,enthused,entendre,engrossing,endorphins,emptive,emmys,eminently,embezzler,embarressed,embarrassingly,embalmed,eludes,eling,elated,eirie,egotitis,effecting,eerily,eecom,eczema,earthy,earlobes,eally,dyeing,dwells,duvet,duncans,dulcet,droves,droppin,drools,drey'auc,downriver,domesticity,dollop,doesnt,dobler,divulged,diversionary,distancing,dispensers,disorienting,disneyworld,dismissive,disingenuous,disheveled,disfiguring,dinning,dimming,diligently,dilettante,dilation,dickensian,diaphragms,devastatingly,destabilize,desecrate,deposing,deniece,demony,delving,delicates,deigned,defraud,deflower,defibrillator,defiantly,defenceless,defacing,deconstruction,decompose,deciphering,decibels,deceptively,deceptions,decapitation,debutantes,debonair,deadlier,dawdling,davic,darwinism,darnit,darks,danke,danieljackson,dangled,cytoxan,cutout,cutlery,curveball,curfews,cummerbund,crunches,crouched,crisps,cripples,crilly,cribs,crewman,creepin,creeds,credenza,creak,crawly,crawlin,crawlers,crated,crackheads,coworker,couldn't've,corwins,coriander,copiously,convenes,contraceptives,contingencies,contaminating,conniption,condiment,concocting,comprehending,complacency,commendatore,comebacks,com'on,collarbone,colitis,coldly,coiffure,coffers,coeds,codependent,cocksucking,cockney,cockles,clutched,closeted,cloistered,cleve,cleats,clarifying,clapped,cinnabar,chunnel,chumps,cholinesterase,choirboy,chocolatey,chlamydia,chigliak,cheesie,chauvinistic,chasm,chartreuse,charo,charnier,chapil,chalked,chadway,certifiably,cellulite,celled,cavalcade,cataloging,castrated,cassio,cashews,cartouche,carnivore,carcinogens,capulet,captivated,capt'n,cancellations,campin,callate,callar,caffeinated,cadavers,cacophony,cackle,buzzes,buttoning,busload,burglaries,burbs,buona,bunions,bullheaded,buffs,bucyk,buckling,bruschetta,browbeating,broomsticks,broody,bromly,brolin,briefings,brewskies,breathalyzer,breakups,bratwurst,brania,braiding,brags,braggin,bradywood,bottomed,bossa,bordello,bookshelf,boogida,bondsman,bolder,boggles,bludgeoned,blowtorch,blotter,blips,blemish,bleaching,blainetologists,blading,blabbermouth,birdseed,bimmel,biloxi,biggly,bianchinni,betadine,berenson,belus,belloq,begets,befitting,beepers,beelzebub,beefed,bedridden,bedevere,beckons,beaded,baubles,bauble,battleground,bathrobes,basketballs,basements,barroom,barnacle,barkin,barked,baretta,bangles,bangler,banality,bambang,baltar,ballplayers,bagman,baffles,backroom,babysat,baboons,averse,audiotape,auctioneer,atten,atcha,astonishment,arugula,arroz,antihistamines,annoyances,anesthesiology,anatomically,anachronism,amiable,amaretto,allahu,alight,aimin,ailment,afterglow,affronte,advil,adrenals,actualization,acrost,ached,accursed,accoutrements,absconded,aboveboard,abetted,aargh,aaaahh,zuwicky,zolda,ziploc,zakamatak,youve,yippie,yesterdays,yella,yearns,yearnings,yearned,yawning,yalta,yahtzee,y'mean,y'are,wuthering,wreaks,worrisome,workiiing,wooooooo,wonky,womanizing,wolodarsky,wiwith,withdraws,wishy,wisht,wipers,wiper,winos,windthorne,windsurfing,windermere,wiggled,wiggen,whwhat,whodunit,whoaaa,whittling,whitesnake,whereof,wheezing,wheeze,whatd'ya,whataya,whammo,whackin,wellll,weightless,weevil,wedgies,webbing,weasly,wayside,waxes,waturi,washy,washrooms,wandell,waitaminute,waddya,waaaah,vornac,vishnoor,virulent,vindictiveness,vinceres,villier,vigeous,vestigial,ventilate,vented,venereal,veering,veered,veddy,vaslova,valosky,vailsburg,vaginas,vagas,urethra,upstaged,uploading,unwrapping,unwieldy,untapped,unsatisfied,unquenchable,unnerved,unmentionable,unlovable,unknowns,uninformed,unimpressed,unhappily,unguarded,unexplored,undergarment,undeniably,unclench,unclaimed,uncharacteristically,unbuttoned,unblemished,ululd,uhhhm,tweeze,tutsami,tushy,tuscarora,turkle,turghan,turbinium,tubers,trucoat,troxa,tropicana,triquetra,trimmers,triceps,trespassed,traya,traumatizing,transvestites,trainors,tradin,trackers,townies,tourelles,toucha,tossin,tortious,topshop,topes,tonics,tongs,tomsk,tomorrows,toiling,toddle,tizzy,tippers,timmi,thwap,thusly,ththe,thrusts,throwers,throwed,throughway,thickening,thermonuclear,thelwall,thataway,terrifically,tendons,teleportation,telepathically,telekinetic,teetering,teaspoons,tarantulas,tapas,tanned,tangling,tamales,tailors,tahitian,tactful,tachy,tablespoon,syrah,synchronicity,synch,synapses,swooning,switchman,swimsuits,sweltering,sweetly,suvolte,suslov,surfed,supposition,suppertime,supervillains,superfluous,superego,sunspots,sunning,sunless,sundress,suckah,succotash,sublevel,subbasement,studious,striping,strenuously,straights,stonewalled,stillness,stilettos,stevesy,steno,steenwyck,stargates,stammering,staedert,squiggly,squiggle,squashing,squaring,spreadsheet,spramp,spotters,sporto,spooking,splendido,spittin,spirulina,spiky,spate,spartacus,spacerun,soonest,something'll,someth,somepin,someone'll,sofas,soberly,sobered,snowmen,snowbank,snowballing,snivelling,sniffling,snakeskin,snagging,smush,smooter,smidgen,smackers,slumlord,slossum,slimmer,slighted,sleepwalk,sleazeball,skokie,skeptic,sitarides,sistah,sipped,sindell,simpletons,simony,silkwood,silks,silken,sightless,sideboard,shuttles,shrugging,shrouds,showy,shoveled,shouldn'ta,shoplifters,shitstorm,sheeny,shapetype,shaming,shallows,shackle,shabbily,shabbas,seppuku,senility,semite,semiautomatic,selznick,secretarial,sebacio,scuzzy,scummy,scrutinized,scrunchie,scribbled,scotches,scolded,scissor,schlub,scavenging,scarin,scarfing,scallions,scald,savour,savored,saute,sarcoidosis,sandbar,saluted,salish,saith,sailboats,sagittarius,sacre,saccharine,sacamano,rushdie,rumpled,rumba,rulebook,rubbers,roughage,rotisserie,rootie,roofy,roofie,romanticize,rittle,ristorante,rippin,rinsing,ringin,rincess,rickety,reveling,retest,retaliating,restorative,reston,restaurateur,reshoots,resetting,resentments,reprogramming,repossess,repartee,renzo,remore,remitting,remeber,relaxants,rejuvenate,rejections,regenerated,refocus,referrals,reeno,recycles,recrimination,reclining,recanting,reattach,reassigning,razgul,raved,rattlesnakes,rattles,rashly,raquetball,ransack,raisinettes,raheem,radisson,radishes,raban,quoth,qumari,quints,quilts,quilting,quien,quarreled,purty,purblind,punchbowl,publically,psychotics,psychopaths,psychoanalyze,pruning,provasik,protectin,propping,proportioned,prophylactic,proofed,prompter,procreate,proclivities,prioritizing,prinze,pricked,press'll,presets,prescribes,preocupe,prejudicial,prefex,preconceived,precipice,pralines,pragmatist,powerbar,pottie,pottersville,potsie,potholes,posses,posies,portkey,porterhouse,pornographers,poring,poppycock,poppers,pomponi,pokin,poitier,podiatry,pleeze,pleadings,playbook,platelets,plane'arium,placebos,place'll,pistachios,pirated,pinochle,pineapples,pinafore,pimples,piggly,piddling,picon,pickpockets,picchu,physiologically,physic,phobic,philandering,phenomenally,pheasants,pewter,petticoat,petronis,petitioning,perturbed,perpetuating,permutat,perishable,perimeters,perfumed,percocet,per'sus,pepperjack,penalize,pelting,pellet,peignoir,pedicures,peckers,pecans,pawning,paulsson,pattycake,patrolmen,patois,pathos,pasted,parishioner,parcheesi,parachuting,papayas,pantaloons,palpitations,palantine,paintballing,overtired,overstress,oversensitive,overnights,overexcited,overanxious,overachiever,outwitted,outvoted,outnumber,outlast,outlander,out've,orphey,orchestrating,openers,ooooooo,okies,ohhhhhhhhh,ohhhhhhhh,ogling,offbeat,obsessively,obeyed,o'hana,o'bannon,o'bannion,numpce,nummy,nuked,nuances,nourishing,nosedive,norbu,nomlies,nomine,nixed,nihilist,nightshift,newmeat,neglectful,neediness,needin,naphthalene,nanocytes,nanite,naivete,n'yeah,mystifying,myhnegon,mutating,musing,mulled,muggy,muerto,muckraker,muchachos,mountainside,motherless,mosquitos,morphed,mopped,moodoo,moncho,mollem,moisturiser,mohicans,mocks,mistresses,misspent,misinterpretation,miscarry,minuses,mindee,mimes,millisecond,milked,mightn't,mightier,mierzwiak,microchips,meyerling,mesmerizing,mershaw,meecrob,medicate,meddled,mckinnons,mcgewan,mcdunnough,mcats,mbien,matzah,matriarch,masturbated,masselin,martialed,marlboros,marksmanship,marinate,marchin,manicured,malnourished,malign,majorek,magnon,magnificently,macking,machiavellian,macdougal,macchiato,macaws,macanaw,m'self,lydells,lusts,lucite,lubricants,lopper,lopped,loneliest,lonelier,lomez,lojack,loath,liquefy,lippy,limps,likin,lightness,liesl,liebchen,licious,libris,libation,lhamo,leotards,leanin,laxatives,lavished,latka,lanyard,lanky,landmines,lameness,laddies,lacerated,labored,l'amour,kreskin,kovitch,kournikova,kootchy,konoss,knknow,knickety,knackety,kmart,klicks,kiwanis,kissable,kindergartners,kilter,kidnet,kid'll,kicky,kickbacks,kickback,kholokov,kewpie,kendo,katra,kareoke,kafelnikov,kabob,junjun,jumba,julep,jordie,jondy,jolson,jenoff,jawbone,janitorial,janiro,ipecac,invigorated,intruded,intros,intravenously,interruptus,interrogations,interject,interfacing,interestin,insuring,instilled,insensitivity,inscrutable,inroads,innards,inlaid,injector,ingratitude,infuriates,infra,infliction,indelicate,incubators,incrimination,inconveniencing,inconsolable,incestuous,incas,incarcerate,inbreeding,impudence,impressionists,impeached,impassioned,imipenem,idling,idiosyncrasies,icebergs,hypotensive,hydrochloride,hushed,humus,humph,hummm,hulking,hubcaps,hubald,howya,howbout,how'll,housebroken,hotwire,hotspots,hotheaded,horrace,hopsfield,honto,honkin,honeymoons,homewrecker,hombres,hollers,hollerin,hoedown,hoboes,hobbling,hobble,hoarse,hinky,highlighters,hexes,heru'ur,hernias,heppleman,hell're,heighten,heheheheheh,heheheh,hedging,heckling,heckled,heavyset,heatshield,heathens,heartthrob,headpiece,hayseed,haveo,hauls,hasten,harridan,harpoons,hardens,harcesis,harbouring,hangouts,halkein,haleh,halberstam,hairnet,hairdressers,hacky,haaaa,h'yah,gusta,gushy,gurgling,guilted,gruel,grudging,grrrrrr,grosses,groomsmen,griping,gravest,gratified,grated,goulash,goopy,goona,goodly,godliness,godawful,godamn,glycerin,glutes,glowy,globetrotters,glimpsed,glenville,glaucoma,girlscout,giraffes,gilbey,gigglepuss,ghora,gestating,gelato,geishas,gearshift,gayness,gasped,gaslighting,garretts,garba,gablyczyck,g'head,fumigating,fumbling,fudged,fuckwad,fuck're,fuchsia,fretting,freshest,frenchies,freezers,fredrica,fraziers,fraidy,foxholes,fourty,fossilized,forsake,forfeits,foreclosed,foreal,footsies,florists,flopped,floorshow,floorboard,flinching,flecks,flaubert,flatware,flatulence,flatlined,flashdance,flail,flagging,fiver,fitzy,fishsticks,finetti,finelli,finagle,filko,fieldstone,fibber,ferrini,feedin,feasting,favore,fathering,farrouhk,farmin,fairytale,fairservice,factoid,facedown,fabled,eyeballin,extortionist,exquisitely,expedited,exorcise,existentialist,execs,exculpatory,exacerbate,everthing,eventuality,evander,euphoric,euphemisms,estamos,erred,entitle,enquiries,enormity,enfants,endive,encyclopedias,emulating,embittered,effortless,ectopic,ecirc,easely,earphones,earmarks,dweller,durslar,durned,dunois,dunking,dunked,dumdum,dullard,dudleys,druthers,druggist,drossos,drooled,driveways,drippy,dreamless,drawstring,drang,drainpipe,dozing,dotes,dorkface,doorknobs,doohickey,donnatella,doncha,domicile,dokos,dobermans,dizzying,divola,ditsy,distaste,disservice,dislodged,dislodge,disinherit,disinformation,discounting,dinka,dimly,digesting,diello,diddling,dictatorships,dictators,diagnostician,devours,devilishly,detract,detoxing,detours,detente,destructs,desecrated,derris,deplore,deplete,demure,demolitions,demean,delish,delbruck,delaford,degaulle,deftly,deformity,deflate,definatly,defector,decrypted,decontamination,decapitate,decanter,dardis,dampener,damme,daddy'll,dabbling,dabbled,d'etre,d'argent,d'alene,d'agnasti,czechoslovakian,cymbal,cyberdyne,cutoffs,cuticle,curvaceous,curiousity,crowing,crowed,croutons,cropped,criminy,crescentis,crashers,cranwell,coverin,courtrooms,countenance,cosmically,cosign,corroboration,coroners,cornflakes,copperpot,copperhead,copacetic,coordsize,convulsing,consults,conjures,congenial,concealer,compactor,commercialism,cokey,cognizant,clunkers,clumsily,clucking,cloves,cloven,cloths,clothe,clods,clocking,clings,clavicle,classless,clashing,clanking,clanging,clamping,civvies,citywide,circulatory,circuited,chronisters,chromic,choos,chloroformed,chillun,cheesed,chatterbox,chaperoned,channukah,cerebellum,centerpieces,centerfold,ceecee,ccedil,cavorting,cavemen,cauterized,cauldwell,catting,caterine,cassiopeia,carves,cartwheel,carpeted,carob,caressing,carelessly,careening,capricious,capitalistic,capillaries,candidly,camaraderie,callously,calfskin,caddies,buttholes,busywork,busses,burps,burgomeister,bunkhouse,bungchow,bugler,buffets,buffed,brutish,brusque,bronchitis,bromden,brolly,broached,brewskis,brewin,brean,breadwinner,brana,bountiful,bouncin,bosoms,borgnine,bopping,bootlegs,booing,bombosity,bolting,boilerplate,bluey,blowback,blouses,bloodsuckers,bloodstained,bloat,bleeth,blackface,blackest,blackened,blacken,blackballed,blabs,blabbering,birdbrain,bipartisanship,biodegradable,biltmore,bilked,big'uns,bidet,besotted,bernheim,benegas,bendiga,belushi,bellboys,belittling,behinds,begone,bedsheets,beckoning,beaute,beaudine,beastly,beachfront,bathes,batak,baser,baseballs,barbella,bankrolling,bandaged,baerly,backlog,backin,babying,azkaban,awwwww,aviary,authorizes,austero,aunty,attics,atreus,astounded,astonish,artemus,arses,arintero,appraiser,apathetic,anybody'd,anxieties,anticlimactic,antar,anglos,angleman,anesthetist,androscoggin,andolini,andale,amway,amuck,amniocentesis,amnesiac,americano,amara,alvah,altruism,alternapalooza,alphabetize,alpaca,allus,allergist,alexandros,alaikum,akimbo,agoraphobia,agides,aggrhh,aftertaste,adoptions,adjuster,addictions,adamantium,activator,accomplishes,aberrant,aaaaargh,aaaaaaaaaaaaa,a'ight,zzzzzzz,zucchini,zookeeper,zirconia,zippers,zequiel,zellary,zeitgeist,zanuck,zagat,you'n,ylang,yes'm,yenta,yecchh,yecch,yawns,yankin,yahdah,yaaah,y'got,xeroxed,wwooww,wristwatch,wrangled,wouldst,worthiness,worshiping,wormy,wormtail,wormholes,woosh,wollsten,wolfing,woefully,wobbling,wintry,wingding,windstorm,windowtext,wiluna,wilting,wilted,willick,willenholly,wildflowers,wildebeest,whyyy,whoppers,whoaa,whizzing,whizz,whitest,whistled,whist,whinny,wheelies,whazzup,whatwhatwhaaat,whato,whatdya,what'dya,whacks,wewell,wetsuit,welluh,weeps,waylander,wavin,wassail,wasnt,warneford,warbucks,waltons,wallbanger,waiving,waitwait,vowing,voucher,vornoff,vorhees,voldemort,vivre,vittles,vindaloo,videogames,vichyssoise,vicarious,vesuvius,verguenza,ven't,velveteen,velour,velociraptor,vastness,vasectomies,vapors,vanderhof,valmont,validates,valiantly,vacuums,usurp,usernum,us'll,urinals,unyielding,unvarnished,unturned,untouchables,untangled,unsecured,unscramble,unreturned,unremarkable,unpretentious,unnerstand,unmade,unimpeachable,unfashionable,underwrite,underlining,underling,underestimates,underappreciated,uncouth,uncork,uncommonly,unclog,uncircumcised,unchallenged,uncas,unbuttoning,unapproved,unamerican,unafraid,umpteen,umhmm,uhwhy,ughuh,typewriters,twitches,twitched,twirly,twinkling,twinges,twiddling,turners,turnabout,tumblin,tryed,trowel,trousseau,trivialize,trifles,tribianni,trenchcoat,trembled,traumatize,transitory,transients,transfuse,transcribing,tranq,trampy,traipsed,trainin,trachea,traceable,touristy,toughie,toscanini,tortola,tortilla,torreon,toreador,tommorrow,tollbooth,tollans,toidy,togas,tofurkey,toddling,toddies,toasties,toadstool,to've,tingles,timin,timey,timetables,tightest,thuggee,thrusting,thrombus,throes,thrifty,thornharts,thinnest,thicket,thetas,thesulac,tethered,testaburger,tersenadine,terrif,terdlington,tepui,temping,tector,taxidermy,tastebuds,tartlets,tartabull,tar'd,tantamount,tangy,tangles,tamer,tabula,tabletops,tabithia,szechwan,synthedyne,svenjolly,svengali,survivalists,surmise,surfboards,surefire,suprise,supremacists,suppositories,superstore,supercilious,suntac,sunburned,summercliff,sullied,sugared,suckle,subtleties,substantiated,subsides,subliminal,subhuman,strowman,stroked,stroganoff,streetlight,straying,strainer,straighter,straightener,stoplight,stirrups,stewing,stereotyping,stepmommy,stephano,stashing,starshine,stairwells,squatsie,squandering,squalid,squabbling,squab,sprinkling,spreader,spongy,spokesmen,splintered,spittle,spitter,spiced,spews,spendin,spect,spearchucker,spatulas,southtown,soused,soshi,sorter,sorrowful,sooth,some'in,soliloquy,soiree,sodomized,sobriki,soaping,snows,snowcone,snitching,snitched,sneering,snausages,snaking,smoothed,smoochies,smarten,smallish,slushy,slurring,sluman,slithers,slippin,sleuthing,sleeveless,skinless,skillfully,sketchbook,skagnetti,sista,sinning,singularly,sinewy,silverlake,siguto,signorina,sieve,sidearms,shying,shunning,shtud,shrieks,shorting,shortbread,shopkeepers,shmancy,shizzit,shitheads,shitfaced,shipmates,shiftless,shelving,shedlow,shavings,shatters,sharifa,shampoos,shallots,shafter,sha'nauc,sextant,serviceable,sepsis,senores,sendin,semis,semanski,selflessly,seinfelds,seers,seeps,seductress,secaucus,sealant,scuttling,scusa,scrunched,scissorhands,schreber,schmancy,scamps,scalloped,savoir,savagery,sarong,sarnia,santangel,samool,sallow,salino,safecracker,sadism,sacrilegious,sabrini,sabath,s'aright,ruttheimer,rudest,rubbery,rousting,rotarian,roslin,roomed,romari,romanica,rolltop,rolfski,rockettes,roared,ringleader,riffing,ribcage,rewired,retrial,reting,resuscitated,restock,resale,reprogrammed,replicant,repentant,repellant,repays,repainting,renegotiating,rendez,remem,relived,relinquishes,relearn,relaxant,rekindling,rehydrate,refueled,refreshingly,refilling,reexamine,reeseman,redness,redeemable,redcoats,rectangles,recoup,reciprocated,reassessing,realy,realer,reachin,re'kali,rawlston,ravages,rappaports,ramoray,ramming,raindrops,rahesh,radials,racists,rabartu,quiches,quench,quarreling,quaintly,quadrants,putumayo,put'em,purifier,pureed,punitis,pullout,pukin,pudgy,puddings,puckering,pterodactyl,psychodrama,psats,protestations,protectee,prosaic,propositioned,proclivity,probed,printouts,prevision,pressers,preset,preposition,preempt,preemie,preconceptions,prancan,powerpuff,potties,potpie,poseur,porthole,poops,pooping,pomade,polyps,polymerized,politeness,polisher,polack,pocketknife,poatia,plebeian,playgroup,platonically,platitude,plastering,plasmapheresis,plaids,placemats,pizzazz,pintauro,pinstripes,pinpoints,pinkner,pincer,pimento,pileup,pilates,pigmen,pieeee,phrased,photocopies,phoebes,philistines,philanderer,pheromone,phasers,pfeffernuesse,pervs,perspire,personify,perservere,perplexed,perpetrating,perkiness,perjurer,periodontist,perfunctory,perdido,percodan,pentameter,pentacle,pensive,pensione,pennybaker,pennbrooke,penhall,pengin,penetti,penetrates,pegnoir,peeve,peephole,pectorals,peckin,peaky,peaksville,paxcow,paused,patted,parkishoff,parkers,pardoning,paraplegic,paraphrasing,paperers,papered,pangs,paneling,palooza,palmed,palmdale,palatable,pacify,pacified,owwwww,oversexed,overrides,overpaying,overdrawn,overcompensate,overcomes,overcharged,outmaneuver,outfoxed,oughtn't,ostentatious,oshun,orthopedist,or'derves,ophthalmologist,operagirl,oozes,oooooooh,onesie,omnis,omelets,oktoberfest,okeydoke,ofthe,ofher,obstetrical,obeys,obeah,o'henry,nyquil,nyanyanyanyah,nuttin,nutsy,nutball,nurhachi,numbskull,nullifies,nullification,nucking,nubbin,nourished,nonspecific,noing,noinch,nohoho,nobler,nitwits,newsprint,newspaperman,newscaster,neuropathy,netherworld,neediest,navasky,narcissists,napped,nafta,mache,mykonos,mutilating,mutherfucker,mutha,mutates,mutate,musn't,murchy,multitasking,mujeeb,mudslinging,muckraking,mousetrap,mourns,mournful,motherf,mostro,morphing,morphate,moralistic,moochy,mooching,monotonous,monopolize,monocle,molehill,moland,mofet,mockup,mobilizing,mmmmmmm,mitzvahs,mistreating,misstep,misjudge,misinformation,misdirected,miscarriages,miniskirt,mindwarped,minced,milquetoast,miguelito,mightily,midstream,midriff,mideast,microbe,methuselah,mesdames,mescal,men'll,memma,megaton,megara,megalomaniac,meeee,medulla,medivac,meaninglessness,mcnuggets,mccarthyism,maypole,may've,mauve,mateys,marshack,markles,marketable,mansiere,manservant,manse,manhandling,mallomars,malcontent,malaise,majesties,mainsail,mailmen,mahandra,magnolias,magnified,magev,maelstrom,machu,macado,m'boy,m'appelle,lustrous,lureen,lunges,lumped,lumberyard,lulled,luego,lucks,lubricated,loveseat,loused,lounger,loski,lorre,loora,looong,loonies,loincloth,lofts,lodgers,lobbing,loaner,livered,liqueur,ligourin,lifesaving,lifeguards,lifeblood,liaisons,let'em,lesbianism,lence,lemonlyman,legitimize,leadin,lazars,lazarro,lawyering,laugher,laudanum,latrines,lations,laters,lapels,lakefront,lahit,lafortunata,lachrymose,l'italien,kwaini,kruczynski,kramerica,kowtow,kovinsky,korsekov,kopek,knowakowski,knievel,knacks,kiowas,killington,kickball,keyworth,keymaster,kevie,keveral,kenyons,keggers,keepsakes,kechner,keaty,kavorka,karajan,kamerev,kaggs,jujyfruit,jostled,jonestown,jokey,joists,jocko,jimmied,jiggled,jests,jenzen,jenko,jellyman,jedediah,jealitosis,jaunty,jarmel,jankle,jagoff,jagielski,jackrabbits,jabbing,jabberjaw,izzat,irresponsibly,irrepressible,irregularity,irredeemable,inuvik,intuitions,intubated,intimates,interminable,interloper,intercostal,instyle,instigate,instantaneously,ining,ingrown,ingesting,infusing,infringe,infinitum,infact,inequities,indubitably,indisputable,indescribably,indentation,indefinable,incontrovertible,inconsequential,incompletes,incoherently,inclement,incidentals,inarticulate,inadequacies,imprudent,improprieties,imprison,imprinted,impressively,impostors,importante,imperious,impale,immodest,immobile,imbedded,imbecilic,illegals,idn't,hysteric,hypotenuse,hygienic,hyeah,hushpuppies,hunhh,humpback,humored,hummed,humiliates,humidifier,huggy,huggers,huckster,hotbed,hosing,hosers,horsehair,homebody,homebake,holing,holies,hoisting,hogwallop,hocks,hobbits,hoaxes,hmmmmm,hisses,hippest,hillbillies,hilarity,heurh,herniated,hermaphrodite,hennifer,hemlines,hemline,hemery,helplessness,helmsley,hellhound,heheheheh,heeey,hedda,heartbeats,heaped,healers,headstart,headsets,headlong,hawkland,havta,haulin,harvey'll,hanta,hansom,hangnail,handstand,handrail,handoff,hallucinogen,hallor,halitosis,haberdashery,gypped,guy'll,gumbel,guerillas,guava,guardrail,grunther,grunick,groppi,groomer,grodin,gripes,grinds,grifters,gretch,greevey,greasing,graveyards,grandkid,grainy,gouging,gooney,googly,goldmuff,goldenrod,goingo,godly,gobbledygook,gobbledegook,glues,gloriously,glengarry,glassware,glamor,gimmicks,giggly,giambetti,ghoulish,ghettos,ghali,gether,geriatrics,gerbils,geosynchronous,georgio,gente,gendarme,gelbman,gazillionth,gayest,gauging,gastro,gaslight,gasbag,garters,garish,garas,gantu,gangy,gangly,gangland,galling,gadda,furrowed,funnies,funkytown,fugimotto,fudging,fuckeen,frustrates,froufrou,froot,fromberge,frizzies,fritters,frightfully,friendliest,freeloading,freelancing,freakazoid,fraternization,framers,fornication,fornicating,forethought,footstool,foisting,focussing,focking,flurries,fluffed,flintstones,fledermaus,flayed,flawlessly,flatters,flashbang,flapped,fishies,firmer,fireproof,firebug,fingerpainting,finessed,findin,financials,finality,fillets,fiercest,fiefdom,fibbing,fervor,fentanyl,fenelon,fedorchuk,feckless,feathering,faucets,farewells,fantasyland,fanaticism,faltered,faggy,faberge,extorting,extorted,exterminating,exhumation,exhilaration,exhausts,exfoliate,excels,exasperating,exacting,everybody'd,evasions,espressos,esmail,errrr,erratically,eroding,ernswiler,epcot,enthralled,ensenada,enriching,enrage,enhancer,endear,encrusted,encino,empathic,embezzle,emanates,electricians,eking,egomaniacal,egging,effacing,ectoplasm,eavesdropped,dummkopf,dugray,duchaisne,drunkard,drudge,droop,droids,drips,dripped,dribbles,drazens,downy,downsize,downpour,dosages,doppelganger,dopes,doohicky,dontcha,doneghy,divining,divest,diuretics,diuretic,distrustful,disrupts,dismemberment,dismember,disinfect,disillusionment,disheartening,discourteous,discotheque,discolored,dirtiest,diphtheria,dinks,dimpled,didya,dickwad,diatribes,diathesis,diabetics,deviants,detonates,detests,detestable,detaining,despondent,desecration,derision,derailing,deputized,depressors,dependant,dentures,denominators,demur,demonology,delts,dellarte,delacour,deflated,defib,defaced,decorators,deaqon,davola,datin,darwinian,darklighters,dandelions,dampened,damaskinos,dalrimple,d'peshu,d'hoffryn,d'astier,cynics,cutesy,cutaway,curmudgeon,curdle,culpability,cuisinart,cuffing,crypts,cryptid,crunched,crumblers,crudely,crosscheck,croon,crissake,crevasse,creswood,creepo,creases,creased,creaky,cranks,crabgrass,coveralls,couple'a,coughs,coslaw,corporeal,cornucopia,cornering,corks,cordoned,coolly,coolin,cookbooks,contrite,contented,constrictor,confound,confit,confiscating,condoned,conditioners,concussions,comprendo,comers,combustible,combusted,collingswood,coldness,coitus,codicil,coasting,clydesdale,cluttering,clunker,clunk,clumsiness,clotted,clothesline,clinches,clincher,cleverness,clench,clein,cleanses,claymores,clammed,chugging,chronically,christsakes,choque,chompers,chiseling,chirpy,chirp,chinks,chingachgook,chickenpox,chickadee,chewin,chessboard,chargin,chanteuse,chandeliers,chamdo,chagrined,chaff,certs,certainties,cerreno,cerebrum,censured,cemetary,caterwauling,cataclysmic,casitas,cased,carvel,carting,carrear,carolling,carolers,carnie,cardiogram,carbuncle,capulets,canines,candaules,canape,caldecott,calamitous,cadillacs,cachet,cabeza,cabdriver,buzzards,butai,businesswomen,bungled,bumpkins,bummers,bulldoze,buffybot,bubut,bubbies,brrrrr,brownout,brouhaha,bronzing,bronchial,broiler,briskly,briefcases,bricked,breezing,breeher,breakable,breadstick,bravenet,braved,brandies,brainwaves,brainiest,braggart,bradlee,boys're,boys'll,boys'd,boutonniere,bossed,bosomy,borans,boosts,bookshelves,bookends,boneless,bombarding,bollo,boinked,boink,bluest,bluebells,bloodshot,blockhead,blockbusters,blithely,blather,blankly,bladders,blackbeard,bitte,bippy,biogenetics,bilge,bigglesworth,bicuspids,beususe,betaseron,besmirch,bernece,bereavement,bentonville,benchley,benching,bembe,bellyaching,bellhops,belie,beleaguered,behrle,beginnin,begining,beenie,beefs,beechwood,becau,beaverhausen,beakers,bazillion,baudouin,barrytown,barringtons,barneys,barbs,barbers,barbatus,bankrupted,bailiffs,backslide,baby'd,baaad,b'fore,awwwk,aways,awakes,automatics,authenticate,aught,aubyn,attired,attagirl,atrophied,asystole,astroturf,assertiveness,artichokes,arquillians,aright,archenemy,appraise,appeased,antin,anspaugh,anesthetics,anaphylactic,amscray,ambivalence,amalio,alriiight,alphabetized,alpena,alouette,allora,alliteration,allenwood,allegiances,algerians,alcerro,alastor,ahaha,agitators,aforethought,advertises,admonition,adirondacks,adenoids,acupuncturist,acula,actuarial,activators,actionable,achingly,accusers,acclimated,acclimate,absurdly,absorbent,absolvo,absolutes,absences,abdomenizer,aaaaaaaaah,aaaaaaaaaa,a'right".split(","),
45723 male_names:"james,john,robert,michael,william,david,richard,charles,joseph,thomas,christopher,daniel,paul,mark,donald,george,kenneth,steven,edward,brian,ronald,anthony,kevin,jason,matthew,gary,timothy,jose,larry,jeffrey,frank,scott,eric,stephen,andrew,raymond,gregory,joshua,jerry,dennis,walter,patrick,peter,harold,douglas,henry,carl,arthur,ryan,roger,joe,juan,jack,albert,jonathan,justin,terry,gerald,keith,samuel,willie,ralph,lawrence,nicholas,roy,benjamin,bruce,brandon,adam,harry,fred,wayne,billy,steve,louis,jeremy,aaron,randy,eugene,carlos,russell,bobby,victor,ernest,phillip,todd,jesse,craig,alan,shawn,clarence,sean,philip,chris,johnny,earl,jimmy,antonio,danny,bryan,tony,luis,mike,stanley,leonard,nathan,dale,manuel,rodney,curtis,norman,marvin,vincent,glenn,jeffery,travis,jeff,chad,jacob,melvin,alfred,kyle,francis,bradley,jesus,herbert,frederick,ray,joel,edwin,don,eddie,ricky,troy,randall,barry,bernard,mario,leroy,francisco,marcus,micheal,theodore,clifford,miguel,oscar,jay,jim,tom,calvin,alex,jon,ronnie,bill,lloyd,tommy,leon,derek,darrell,jerome,floyd,leo,alvin,tim,wesley,dean,greg,jorge,dustin,pedro,derrick,dan,zachary,corey,herman,maurice,vernon,roberto,clyde,glen,hector,shane,ricardo,sam,rick,lester,brent,ramon,tyler,gilbert,gene,marc,reginald,ruben,brett,nathaniel,rafael,edgar,milton,raul,ben,cecil,duane,andre,elmer,brad,gabriel,ron,roland,jared,adrian,karl,cory,claude,erik,darryl,neil,christian,javier,fernando,clinton,ted,mathew,tyrone,darren,lonnie,lance,cody,julio,kurt,allan,clayton,hugh,max,dwayne,dwight,armando,felix,jimmie,everett,ian,ken,bob,jaime,casey,alfredo,alberto,dave,ivan,johnnie,sidney,byron,julian,isaac,clifton,willard,daryl,virgil,andy,salvador,kirk,sergio,seth,kent,terrance,rene,eduardo,terrence,enrique,freddie,stuart,fredrick,arturo,alejandro,joey,nick,luther,wendell,jeremiah,evan,julius,donnie,otis,trevor,luke,homer,gerard,doug,kenny,hubert,angelo,shaun,lyle,matt,alfonso,orlando,rex,carlton,ernesto,pablo,lorenzo,omar,wilbur,blake,horace,roderick,kerry,abraham,rickey,ira,andres,cesar,johnathan,malcolm,rudolph,damon,kelvin,rudy,preston,alton,archie,marco,pete,randolph,garry,geoffrey,jonathon,felipe,bennie,gerardo,dominic,loren,delbert,colin,guillermo,earnest,benny,noel,rodolfo,myron,edmund,salvatore,cedric,lowell,gregg,sherman,devin,sylvester,roosevelt,israel,jermaine,forrest,wilbert,leland,simon,irving,owen,rufus,woodrow,sammy,kristopher,levi,marcos,gustavo,jake,lionel,marty,gilberto,clint,nicolas,laurence,ismael,orville,drew,ervin,dewey,wilfred,josh,hugo,ignacio,caleb,tomas,sheldon,erick,frankie,darrel,rogelio,terence,alonzo,elias,bert,elbert,ramiro,conrad,noah,grady,phil,cornelius,lamar,rolando,clay,percy,bradford,merle,darin,amos,terrell,moses,irvin,saul,roman,darnell,randal,tommie,timmy,darrin,brendan,toby,van,abel,dominick,emilio,elijah,cary,domingo,aubrey,emmett,marlon,emanuel,jerald,edmond,emil,dewayne,otto,teddy,reynaldo,bret,jess,trent,humberto,emmanuel,stephan,louie,vicente,lamont,garland,micah,efrain,heath,rodger,demetrius,ethan,eldon,rocky,pierre,eli,bryce,antoine,robbie,kendall,royce,sterling,grover,elton,cleveland,dylan,chuck,damian,reuben,stan,leonardo,russel,erwin,benito,hans,monte,blaine,ernie,curt,quentin,agustin,jamal,devon,adolfo,tyson,wilfredo,bart,jarrod,vance,denis,damien,joaquin,harlan,desmond,elliot,darwin,gregorio,kermit,roscoe,esteban,anton,solomon,norbert,elvin,nolan,carey,rod,quinton,hal,brain,rob,elwood,kendrick,darius,moises,marlin,fidel,thaddeus,cliff,marcel,ali,raphael,bryon,armand,alvaro,jeffry,dane,joesph,thurman,ned,sammie,rusty,michel,monty,rory,fabian,reggie,kris,isaiah,gus,avery,loyd,diego,adolph,millard,rocco,gonzalo,derick,rodrigo,gerry,rigoberto,alphonso,rickie,noe,vern,elvis,bernardo,mauricio,hiram,donovan,basil,nickolas,scot,vince,quincy,eddy,sebastian,federico,ulysses,heriberto,donnell,denny,gavin,emery,romeo,jayson,dion,dante,clement,coy,odell,jarvis,bruno,issac,dudley,sanford,colby,carmelo,nestor,hollis,stefan,donny,linwood,beau,weldon,galen,isidro,truman,delmar,johnathon,silas,frederic,irwin,merrill,charley,marcelino,carlo,trenton,kurtis,aurelio,winfred,vito,collin,denver,leonel,emory,pasquale,mohammad,mariano,danial,landon,dirk,branden,adan,numbers,clair,buford,bernie,wilmer,emerson,zachery,jacques,errol,josue,edwardo,wilford,theron,raymundo,daren,tristan,robby,lincoln,jame,genaro,octavio,cornell,hung,arron,antony,herschel,alva,giovanni,garth,cyrus,cyril,ronny,stevie,lon,kennith,carmine,augustine,erich,chadwick,wilburn,russ,myles,jonas,mitchel,mervin,zane,jamel,lazaro,alphonse,randell,johnie,jarrett,ariel,abdul,dusty,luciano,seymour,scottie,eugenio,mohammed,arnulfo,lucien,ferdinand,thad,ezra,aldo,rubin,mitch,earle,abe,marquis,lanny,kareem,jamar,boris,isiah,emile,elmo,aron,leopoldo,everette,josef,eloy,dorian,rodrick,reinaldo,lucio,jerrod,weston,hershel,lemuel,lavern,burt,jules,gil,eliseo,ahmad,nigel,efren,antwan,alden,margarito,refugio,dino,osvaldo,les,deandre,normand,kieth,ivory,trey,norberto,napoleon,jerold,fritz,rosendo,milford,sang,deon,christoper,alfonzo,lyman,josiah,brant,wilton,rico,jamaal,dewitt,brenton,yong,olin,faustino,claudio,judson,gino,edgardo,alec,jarred,donn,trinidad,tad,porfirio,odis,lenard,chauncey,tod,mel,marcelo,kory,augustus,keven,hilario,bud,sal,orval,mauro,dannie,zachariah,olen,anibal,milo,jed,thanh,amado,lenny,tory,richie,horacio,brice,mohamed,delmer,dario,mac,jonah,jerrold,robt,hank,sung,rupert,rolland,kenton,damion,chi,antone,waldo,fredric,bradly,kip,burl,tyree,jefferey,ahmed,willy,stanford,oren,moshe,mikel,enoch,brendon,quintin,jamison,florencio,darrick,tobias,minh,hassan,giuseppe,demarcus,cletus,tyrell,lyndon,keenan,werner,theo,geraldo,columbus,chet,bertram,markus,huey,hilton,dwain,donte,tyron,omer,isaias,hipolito,fermin,chung,adalberto,jamey,teodoro,mckinley,maximo,raleigh,lawerence,abram,rashad,emmitt,daron,chong,samual,otha,miquel,eusebio,dong,domenic,darron,wilber,renato,hoyt,haywood,ezekiel,chas,florentino,elroy,clemente,arden,neville,edison,deshawn,carrol,shayne,nathanial,jordon,danilo,claud,sherwood,raymon,rayford,cristobal,ambrose,titus,hyman,felton,ezequiel,erasmo,lonny,milan,lino,jarod,herb,andreas,rhett,jude,douglass,cordell,oswaldo,ellsworth,virgilio,toney,nathanael,benedict,mose,hong,isreal,garret,fausto,arlen,zack,modesto,francesco,manual,gaylord,gaston,filiberto,deangelo,michale,granville,malik,zackary,tuan,nicky,cristopher,antione,malcom,korey,jospeh,colton,waylon,hosea,shad,santo,rudolf,rolf,renaldo,marcellus,lucius,kristofer,harland,arnoldo,rueben,leandro,kraig,jerrell,jeromy,hobert,cedrick,arlie,winford,wally,luigi,keneth,jacinto,graig,franklyn,edmundo,leif,jeramy,willian,vincenzo,shon,michal,lynwood,jere,elden,darell,broderick,alonso".split(",")},module.exports=frequency_lists;
45725 },{}],
4:[function(require,module,exports){
45726 var feedback,matching,scoring,time,time_estimates,zxcvbn;matching=require("./matching"),scoring=require("./scoring"),time_estimates=require("./time_estimates"),feedback=require("./feedback"),time=function(){return(new Date).getTime()},zxcvbn=function(e,t){var i,n,c,s,a,r,m,o,u,g,_;for(null==t&&(t=[]),g=time(),u=[],c=
0,s=t.length;c
<s;c++)i=t[c],
"string"!=(m=typeof i)&&
"number"!==m&&
"boolean"!==m||u.push(i.toString().toLowerCase());matching.set_user_input_dictionary(u),a=matching.omnimatch(e),o=scoring.most_guessable_match_sequence(e,a),o.calc_time=time()-g,n=time_estimates.estimate_attack_times(o.guesses);for(r in n)_=n[r],o[r]=_;return o.feedback=feedback.get_feedback(o.score,o.sequence),o},module.exports=zxcvbn;
45728 },{
"./feedback":
2,
"./matching":
5,
"./scoring":
6,
"./time_estimates":
7}],
5:[function(require,module,exports){
45729 var DATE_MAX_YEAR,DATE_MIN_YEAR,DATE_SPLITS,GRAPHS,L33T_TABLE,RANKED_DICTIONARIES,REGEXEN,adjacency_graphs,build_ranked_dict,frequency_lists,lst,matching,name,scoring;frequency_lists=require(
"./frequency_lists"),adjacency_graphs=require(
"./adjacency_graphs"),scoring=require(
"./scoring"),build_ranked_dict=function(e){var t,n,r,i,a;for(i={},t=
1,r=
0,n=e.length;r
<n;r++)a=e[r],i[a]=t,t+=
1;return i},RANKED_DICTIONARIES={};for(name in frequency_lists)lst=frequency_lists[name],RANKED_DICTIONARIES[name]=build_ranked_dict(lst);GRAPHS={qwerty:adjacency_graphs.qwerty,dvorak:adjacency_graphs.dvorak,keypad:adjacency_graphs.keypad,mac_keypad:adjacency_graphs.mac_keypad},L33T_TABLE={a:[
"4",
"@"],b:[
"8"],c:[
"(",
"{",
"[",
"<"],e:[
"3"],g:[
"6",
"9"],i:[
"1",
"!",
"|"],l:[
"1",
"|",
"7"],o:[
"0"],s:[
"$",
"5"],t:[
"+",
"7"],x:[
"%"],z:[
"2"]},REGEXEN={recent_year:/
19\d\d|
200\d|
201\d/g},DATE_MAX_YEAR=
2050,DATE_MIN_YEAR=
1e3,DATE_SPLITS={
4:[[
1,
2],[
2,
3]],
5:[[
1,
3],[
2,
3]],
6:[[
1,
2],[
2,
4],[
4,
5]],
7:[[
1,
3],[
2,
3],[
4,
5],[
4,
6]],
8:[[
2,
4],[
4,
6]]},matching={empty:function(e){var t;return
0===function(){var n;n=[];for(t in e)n.push(t);return n}().length},extend:function(e,t){return e.push.apply(e,t)},translate:function(e,t){var n;return function(){var r,i,a,s;for(a=e.split(
""),s=[],i=
0,r=a.length;i
<r;i++)n=a[i],s.push(t[n]||n);return s}().join(
"")},mod:function(e,t){return(e%t+t)%t},sorted:function(e){return e.sort(function(e,t){return e.i-t.i||e.j-t.j})},omnimatch:function(e){var t,n,r,i,a;for(i=[],r=[this.dictionary_match,this.reverse_dictionary_match,this.l33t_match,this.spatial_match,this.repeat_match,this.sequence_match,this.regex_match,this.date_match],a=
0,t=r.length;a
<t;a++)n=r[a],this.extend(i,n.call(this,e));return this.sorted(i)},dictionary_match:function(e,t){var n,r,i,a,s,o,h,u,c,l,_,f,d,p;null==t&&(t=RANKED_DICTIONARIES),s=[],a=e.length,u=e.toLowerCase();for(n in t)for(l=t[n],r=o=
0,_=a;
0<=_?o
<_:o>_;r=
0<=_?++o:--o)for(i=h=f=r,d=a;f<=d?h
<d:h>d;i=f<=d?++h:--h)u.slice(r,+i+
1||
9e9)in l&&(p=u.slice(r,+i+
1||
9e9),c=l[p],s.push({pattern:"dictionary",i:r,j:i,token:e.slice(r,+i+
1||
9e9),matched_word:p,rank:c,dictionary_name:n,reversed:!
1,l33t:!
1}));return this.sorted(s)},reverse_dictionary_match:function(e,t){var n,r,i,a,s,o;for(null==t&&(t=RANKED_DICTIONARIES),o=e.split("").reverse().join(""),i=this.dictionary_match(o,t),a=
0,n=i.length;a
<n;a++)r=i[a],r.token=r.token.split(
"").reverse().join(
""),r.reversed=!
0,s=[e.length-
1-r.j,e.length-
1-r.i],r.i=s[
0],r.j=s[
1];return this.sorted(i)},set_user_input_dictionary:function(e){return RANKED_DICTIONARIES.user_inputs=build_ranked_dict(e.slice())},relevant_l33t_subtable:function(e,t){var n,r,i,a,s,o,h,u,c,l;for(s={},o=e.split(
""),a=
0,r=o.length;a
<r;a++)n=o[a],s[n]=!
0;l={};for(i in t)c=t[i],h=function(){var e,t,n;for(n=[],t=
0,e=c.length;t
<e;t++)u=c[t],u in s&&n.push(u);return n}(),h.length
>0&&(l[i]=h);return l},enumerate_l33t_subs:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p;a=function(){var t;t=[];for(i in e)t.push(i);return t}(),p=[[]],n=function(e){var t,n,r,a,s,o,h,u;for(n=[],s={},o=
0,a=e.length;o
<a;o++)h=e[o],t=function(){var e,t,n;for(n=[],u=t=
0,e=h.length;t
<e;u=++t)i=h[u],n.push([i,u]);return n}(),t.sort(),r=function(){var e,n,r;for(r=[],u=n=
0,e=t.length;n
<e;u=++n)i=t[u],r.push(i+
","+u);return r}().join(
"-"),r in s||(s[r]=!
0,n.push(h));return n},r=function(t){var i,a,s,o,h,u,c,l,_,f,d,g,m,A,E,y;if(t.length){for(a=t[
0],m=t.slice(
1),c=[],d=e[a],l=
0,h=d.length;l
<h;l++)for(o=d[l],_=
0,u=p.length;_
<u;_++){for(A=p[_],i=-
1,s=f=
0,g=A.length;
0<=g?f
<g:f>g;s=
0<=g?++f:--f)if(A[s][
0]===o){i=s;break}i===-
1?(y=A.concat([[o,a]]),c.push(y)):(E=A.slice(
0),E.splice(i,
1),E.push([o,a]),c.push(A),c.push(E))}return p=n(c),r(m)}},r(a),d=[];for(u=
0,o=p.length;u
<o;u++){for(_=p[u],f={},c=
0,h=_.length;c
<h;c++)l=_[c],s=l[
0],t=l[
1],f[s]=t;d.push(f)}return d},l33t_match:function(e,t,n){var r,i,a,s,o,h,u,c,l,_,f,d,p,g,m,A;for(null==t&&(t=RANKED_DICTIONARIES),null==n&&(n=L33T_TABLE),u=[],_=this.enumerate_l33t_subs(this.relevant_l33t_subtable(e,n)),c=
0,a=_.length;c
<a&&(d=_[c],!this.empty(d));c++)for(g=this.translate(e,d),f=this.dictionary_match(g,t),l=
0,s=f.length;l
<s;l++)if(o=f[l],m=e.slice(o.i,+o.j+
1||
9e9),m.toLowerCase()!==o.matched_word){h={};for(p in d)r=d[p],m.indexOf(p)!==-
1&&(h[p]=r);o.l33t=!
0,o.token=m,o.sub=h,o.sub_display=function(){var e;e=[];for(i in h)A=h[i],e.push(i+
" -> "+A);return e}().join(
", "),u.push(o)}return this.sorted(u.filter(function(e){return e.token.length
>1}))},spatial_match:function(e,t){var n,r,i;null==t&&(t=GRAPHS),i=[];for(r in t)n=t[r],this.extend(i,this.spatial_match_helper(e,n,r));return this.sorted(i)},SHIFTED_RX:/[~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:
"ZXCVBNM<>?]/,spatial_match_helper:function(e,t,n){var r,i,a,s,o,h,u,c,l,_,f,d,p,g,m;for(f=[],u=0;u<e.length-1;)for(c=u+1,l=null,m=0,g="qwerty
"!==n&&"dvorak
"!==n||!this.SHIFTED_RX.exec(e.charAt(u))?0:1;;){if(p=e.charAt(c-1),o=!1,h=-1,s=-1,i=t[p]||[],c<e.length)for(a=e.charAt(c),d=0,_=i.length;d<_;d++)if(r=i[d],s+=1,r&&r.indexOf(a)!==-1){o=!0,h=s,1===r.indexOf(a)&&(g+=1),l!==h&&(m+=1,l=h);break}if(!o){c-u>2&&f.push({pattern:"spatial
",i:u,j:c-1,token:e.slice(u,c),graph:n,turns:m,shifted_count:g}),u=c;break}c+=1}return f},repeat_match:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p;for(d=[],a=/(.+)\1+/g,c=/(.+?)\1+/g,l=/^(.+?)\1+$/,u=0;u<e.length&&(a.lastIndex=c.lastIndex=u,s=a.exec(e),_=c.exec(e),null!=s);)s[0].length>_[0].length?(f=s,i=l.exec(f[0])[1]):(f=_,i=f[1]),p=[f.index,f.index+f[0].length-1],o=p[0],h=p[1],t=scoring.most_guessable_match_sequence(i,this.omnimatch(i)),r=t.sequence,n=t.guesses,d.push({pattern:"repeat",i:o,j:h,token:f[
0],base_token:i,base_guesses:n,base_matches:r,repeat_count:f[
0].length/i.length}),u=h+
1;return d},MAX_DELTA:
5,sequence_match:function(e){var t,n,r,i,a,s,o,h,u;if(
1===e.length)return[];for(u=function(t){return function(n,r,i){var a,s,o,u;if((r-n
>1||
1===Math.abs(i))&&
0<(a=Math.abs(i))&&a<=t.MAX_DELTA)return u=e.slice(n,+r+
1||
9e9),/^[a-z]+$/.test(u)?(
s=
"lower",o=
26):/^[A-Z]+$/.test(u)?(
s=
"upper",o=
26):/^\d+$/.test(u)?(
s=
"digits",o=
10):(
s=
"unicode",o=
26),h.push({pattern:
"sequence",i:n,j:r,token:e.slice(n,+r+
1||
9e9),sequence_name:s,sequence_space:o,ascending:i
>0})}}(this),h=[],n=
0,a=null,i=s=
1,o=e.length;
1<=o?s
<o:s>o;i=
1<=o?++s:--s)t=e.charCodeAt(i)-e.charCodeAt(i-
1),null==a&&(a=t),t!==a&&(r=i-
1,u(n,r,a),n=r,a=t);return u(n,e.length-
1,a),h},regex_match:function(e,t){var n,r,i,a;null==t&&(t=REGEXEN),n=[];for(name in t)for(r=t[name],r.lastIndex=
0;i=r.exec(e);)a=i[
0],n.push({pattern:"regex",token:a,i:i.index,j:i.index+i[
0].length-
1,regex_name:name,regex_match:i});return this.sorted(n)},date_match:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p,g,m,A,E,y,v,I,R,T,D,k,x,j,b,N,S,q,L,M;for(_=[],f=/^\d{
4,
8}$/,d=/^(\d{
1,
4})([\s\/\\_.-])(\d{
1,
2})\
2(\d{
1,
4})$/,s=m=
0,v=e.length-
4;
0<=v?m<=v:m
>=v;s=
0<=v?++m:--m)for(o=A=I=s+
3,R=s+
7;(I<=R?A<=R:A
>=R)&&!(o
>=e.length);o=I<=R?++A:--A)if(M=e.slice(s,+o+
1||
9e9),f.exec(M)){for(r=[],T=DATE_SPLITS[M.length],E=
0,c=T.length;E
<c;E++)D=T[E],h=D[
0],u=D[
1],a=this.map_ints_to_dmy([parseInt(M.slice(
0,h)),parseInt(M.slice(h,u)),parseInt(M.slice(u))]),null!=a&&r.push(a);if(r.length
>0){for(t=r[
0],p=function(e){return Math.abs(e.year-scoring.REFERENCE_YEAR)},g=p(r[
0]),k=r.slice(
1),y=
0,l=k.length;y
<l;y++)n=k[y],i=p(n),i
<g&&(x=[n,i],t=x[
0],g=x[
1]);_.push({pattern:
"date",token:M,i:s,j:o,separator:
"",year:t.year,month:t.month,day:t.day})}}for(s=q=
0,j=e.length-
6;
0<=j?q<=j:q
>=j;s=
0<=j?++q:--q)for(o=L=b=s+
5,N=s+
9;(b<=N?L<=N:L
>=N)&&!(o
>=e.length);o=b<=N?++L:--L)M=e.slice(s,+o+
1||
9e9),S=d.exec(M),null!=S&&(a=this.map_ints_to_dmy([parseInt(S[
1]),parseInt(S[
3]),parseInt(S[
4])]),null!=a&&_.push({pattern:"date",token:M,i:s,j:o,separator:S[
2],year:a.year,month:a.month,day:a.day}));return this.sorted(_.filter(function(e){var t,n,r,i;for(t=!
1,i=
0,n=_.length;i
<n;i++)if(r=_[i],e!==r&&r.i<=e.i&&r.j
>=e.j){t=!
0;break}return!t}))},map_ints_to_dmy:function(e){var t,n,r,i,a,s,o,h,u,c,l,_,f,d,p,g;if(!(e[
1]
>31||e[
1]<=
0)){for(o=
0,h=
0,p=
0,s=
0,r=e.length;s
<r;s++){if(n=e[s],
99<n&&n
<DATE_MIN_YEAR||n
>DATE_MAX_YEAR)return;n
>31&&(h+=
1),n
>12&&(o+=
1),n<=
0&&(p+=
1)}if(!(h
>=
2||
3===o||p
>=
2)){for(c=[[e[
2],e.slice(
0,
2)],[e[
0],e.slice(
1,
3)]],u=
0,i=c.length;u
<i;u++)if(_=c[u],g=_[
0],d=_[
1],DATE_MIN_YEAR<=g&&g<=DATE_MAX_YEAR)return t=this.map_ints_to_dm(d),null!=t?{year:g,month:t.month,day:t.day}:void
0;for(l=
0,a=c.length;l
<a;l++)if(f=c[l],g=f[
0],d=f[
1],t=this.map_ints_to_dm(d),null!=t)return g=this.two_to_four_digit_year(g),{year:g,month:t.month,day:t.day}}}},map_ints_to_dm:function(e){var t,n,r,i,a,s;for(a=[e,e.slice().reverse()],i=
0,n=a.length;i
<n;i++)if(s=a[i],t=s[
0],r=s[
1],
1<=t&&t<=
31&&
1<=r&&r<=
12)return{day:t,month:r}},two_to_four_digit_year:function(e){return e
>99?e:e
>50?e+
1900:e+
2e3}},module.exports=matching;
45731 },{
"./adjacency_graphs":
1,
"./frequency_lists":
3,
"./scoring":
6}],
6:[function(require,module,exports){
45732 var BRUTEFORCE_CARDINALITY,MIN_GUESSES_BEFORE_GROWING_SEQUENCE,MIN_SUBMATCH_GUESSES_MULTI_CHAR,MIN_SUBMATCH_GUESSES_SINGLE_CHAR,adjacency_graphs,calc_average_degree,k,scoring,v;adjacency_graphs=require(
"./adjacency_graphs"),calc_average_degree=function(e){var t,r,n,s,a,u;t=
0;for(n in e)a=e[n],t+=function(){var e,t,r;for(r=[],t=
0,e=a.length;t
<e;t++)s=a[t],s&&r.push(s);return r}().length;return t/=function(){var t;t=[];for(r in e)u=e[r],t.push(r);return t}().length},BRUTEFORCE_CARDINALITY=
10,MIN_GUESSES_BEFORE_GROWING_SEQUENCE=
1e4,MIN_SUBMATCH_GUESSES_SINGLE_CHAR=
10,MIN_SUBMATCH_GUESSES_MULTI_CHAR=
50,scoring={nCk:function(e,t){var r,n,s,a;if(t
>e)return
0;if(
0===t)return
1;for(s=
1,r=n=
1,a=t;
1<=a?n<=a:n
>=a;r=
1<=a?++n:--n)s*=e,s/=r,e-=
1;return s},log10:function(e){return Math.log(e)/Math.log(
10)},log2:function(e){return Math.log(e)/Math.log(
2)},factorial:function(e){var t,r,n,s;if(e
<2)return
1;for(t=
1,r=n=
2,s=e;
2<=s?n<=s:n
>=s;r=
2<=s?++n:--n)t*=r;return t},most_guessable_match_sequence:function(e,t,r){var n,s,a,u,i,_,o,h,E,c,g,f,l,p,A,S,R,v,I,M,N,C,U,T;for(null==r&&(r=!
1),l=e.length,f=function(){var e,t,r;for(r=[],n=e=
0,t=l;
0<=t?e
<t:e>t;n=
0<=t?++e:--e)r.push([]);return r}(),p=
0,_=t.length;p
<_;p++)c=t[p],f[c.j].push(c);for(v=
0,o=f.length;v
<o;v++)E=f[v],E.sort(function(e,t){return e.i-t.i});for(A={m:function(){var e,t,r;for(t=[],n=r=
0,e=l;
0<=e?r
<e:r>e;n=
0<=e?++r:--r)t.push({});return t}(),pi:function(){var e,t,r;for(t=[],n=r=
0,e=l;
0<=e?r
<e:r>e;n=
0<=e?++r:--r)t.push({});return t}(),g:function(){var e,t,r;for(t=[],n=r=
0,e=l;
0<=e?r
<e:r>e;n=
0<=e?++r:--r)t.push({});return t}()},U=function(t){return function(n,s){var a,u,i,_,o,h;_=n.j,o=t.estimate_guesses(n,e),s
>1&&(o*=A.pi[n.i-
1][s-
1]),i=t.factorial(s)*o,r||(i+=Math.pow(MIN_GUESSES_BEFORE_GROWING_SEQUENCE,s-
1)),h=A.g[_];for(u in h)if(a=h[u],!(u
>s)&&a<=i)return;return A.g[_][s]=i,A.m[_][s]=n,A.pi[_][s]=o}}(this),s=function(e){return function(e){var t,r,n,s,a,u;for(c=g(
0,e),U(c,
1),a=[],t=u=
1,s=e;
1<=s?u<=s:u
>=s;t=
1<=s?++u:--u)c=g(t,e),a.push(function(){var e,s;e=A.m[t-
1],s=[];for(r in e)n=e[r],r=parseInt(r),"bruteforce"!==n.pattern&&s.push(U(c,r+
1));return s}());return a}}(this),g=function(t){return function(t,r){return{pattern:"bruteforce",token:e.slice(t,+r+
1||
9e9),i:t,j:r}}}(this),C=function(e){return function(e){var t,r,n,s,a,u,i;u=[],s=e-
1,a=void
0,n=
1/
0,i=A.g[s];for(r in i)t=i[r],t
<n&&(a=r,n=t);for(;s
>=
0;)c=A.m[s][a],u.unshift(c),s=c.i-
1,a--;return u}}(this),u=N=
0,I=l;
0<=I?N
<I:N>I;u=
0<=I?++N:--N){for(M=f[u],T=
0,h=M.length;T
<h;T++)if(c=M[T],c.i
>0)for(i in A.m[c.i-
1])i=parseInt(i),U(c,i+
1);else U(c,
1);s(u)}return R=C(l),S=R.length,a=
0===e.length?
1:A.g[l-
1][S],{password:e,guesses:a,guesses_log10:this.log10(a),sequence:R}},estimate_guesses:function(e,t){var r,n,s;return null!=e.guesses?e.guesses:(s=
1,e.token.length
<t.length&&(s=
1===e.token.length?MIN_SUBMATCH_GUESSES_SINGLE_CHAR:MIN_SUBMATCH_GUESSES_MULTI_CHAR),r={bruteforce:this.bruteforce_guesses,dictionary:this.dictionary_guesses,spatial:this.spatial_guesses,repeat:this.repeat_guesses,sequence:this.sequence_guesses,regex:this.regex_guesses,date:this.date_guesses},n=r[e.pattern].call(this,e),e.guesses=Math.max(n,s),e.guesses_log10=this.log10(e.guesses),e.guesses)},bruteforce_guesses:function(e){var t,r;return t=Math.pow(BRUTEFORCE_CARDINALITY,e.token.length),r=
1===e.token.length?MIN_SUBMATCH_GUESSES_SINGLE_CHAR+
1:MIN_SUBMATCH_GUESSES_MULTI_CHAR+
1,Math.max(t,r)},repeat_guesses:function(e){return e.base_guesses*e.repeat_count},sequence_guesses:function(e){var t,r;return r=e.token.charAt(
0),
t=
"a"===r||
"A"===r||
"z"===r||
"Z"===r||
"0"===r||
"1"===r||
"9"===r?
4:r.match(/\d/)?
10:
26,e.ascending||(t*=
2),t*e.token.length},MIN_YEAR_SPACE:
20,REFERENCE_YEAR:
2016,regex_guesses:function(e){var t,r;if(t={alpha_lower:
26,alpha_upper:
26,alpha:
52,alphanumeric:
62,digits:
10,symbols:
33},e.regex_name in t)return Math.pow(t[e.regex_name],e.token.length);switch(e.regex_name){case
"recent_year":return r=Math.abs(parseInt(e.regex_match[
0])-this.REFERENCE_YEAR),r=Math.max(r,this.MIN_YEAR_SPACE)}},date_guesses:function(e){var t,r;return r=Math.max(Math.abs(e.year-this.REFERENCE_YEAR),this.MIN_YEAR_SPACE),t=
365*r,e.separator&&(t*=
4),t},KEYBOARD_AVERAGE_DEGREE:calc_average_degree(adjacency_graphs.qwerty),KEYPAD_AVERAGE_DEGREE:calc_average_degree(adjacency_graphs.keypad),KEYBOARD_STARTING_POSITIONS:function(){var e,t;e=adjacency_graphs.qwerty,t=[];for(k in e)v=e[k],t.push(k);return t}().length,KEYPAD_STARTING_POSITIONS:function(){var e,t;e=adjacency_graphs.keypad,t=[];for(k in e)v=e[k],t.push(k);return t}().length,spatial_guesses:function(e){var t,r,n,s,a,u,i,_,o,h,E,c,g,f,l,p,A,S;for(
"qwerty"===(E=e.graph)||
"dvorak"===E?(l=this.KEYBOARD_STARTING_POSITIONS,s=this.KEYBOARD_AVERAGE_DEGREE):(l=this.KEYPAD_STARTING_POSITIONS,s=this.KEYPAD_AVERAGE_DEGREE),a=
0,t=e.token.length,A=e.turns,u=_=
2,c=t;
2<=c?_<=c:_
>=c;u=
2<=c?++_:--_)for(o=Math.min(A,u-
1),i=h=
1,g=o;
1<=g?h<=g:h
>=g;i=
1<=g?++h:--h)a+=this.nCk(u-
1,i-
1)*l*Math.pow(s,i);if(e.shifted_count)if(r=e.shifted_count,n=e.token.length-e.shifted_count,
0===r||
0===n)a*=
2;else{for(p=
0,u=S=
1,f=Math.min(r,n);
1<=f?S<=f:S
>=f;u=
1<=f?++S:--S)p+=this.nCk(r+n,u);a*=p}return a},dictionary_guesses:function(e){var t;return e.base_guesses=e.rank,e.uppercase_variations=this.uppercase_variations(e),e.l33t_variations=this.l33t_variations(e),t=e.reversed&&
2||
1,e.base_guesses*e.uppercase_variations*e.l33t_variations*t},START_UPPER:/^[A-Z][^A-Z]+$/,END_UPPER:/^[^A-Z]+[A-Z]$/,ALL_UPPER:/^[^a-z]+$/,ALL_LOWER:/^[^A-Z]+$/,uppercase_variations:function(e){var t,r,n,s,a,u,i,_,o,h,E,c;if(c=e.token,c.match(this.ALL_LOWER)||c.toLowerCase()===c)return
1;for(_=[this.START_UPPER,this.END_UPPER,this.ALL_UPPER],u=
0,a=_.length;u
<a;u++)if(h=_[u],c.match(h))return
2;for(r=function(){var e,t,r,s;for(r=c.split(
""),s=[],t=
0,e=r.length;t
<e;t++)n=r[t],n.match(/[A-Z]/)&&s.push(n);return s}().length,t=function(){var e,t,r,s;for(r=c.split(
""),s=[],t=
0,e=r.length;t
<e;t++)n=r[t],n.match(/[a-z]/)&&s.push(n);return s}().length,E=
0,s=i=
1,o=Math.min(r,t);
1<=o?i<=o:i
>=o;s=
1<=o?++i:--i)E+=this.nCk(r+t,s);return E},l33t_variations:function(e){var t,r,n,s,a,u,i,_,o,h,E,c,g;if(!e.l33t)return
1;g=
1,o=e.sub;for(E in o)if(c=o[E],s=e.token.toLowerCase().split(""),t=function(){var e,t,r;for(r=[],t=
0,e=s.length;t
<e;t++)n=s[t],n===E&&r.push(n);return r}().length,r=function(){var e,t,r;for(r=[],t=
0,e=s.length;t
<e;t++)n=s[t],n===c&&r.push(n);return r}().length,
0===t||
0===r)g*=
2;else{for(i=Math.min(r,t),_=
0,a=u=
1,h=i;
1<=h?u<=h:u
>=h;a=
1<=h?++u:--u)_+=this.nCk(r+t,a);g*=_}return g}},module.exports=scoring;
45734 },{"./adjacency_graphs":
1}],
7:[function(require,module,exports){
45735 var time_estimates;time_estimates={estimate_attack_times:function(e){var t,n,s,o;n={online_throttling_100_per_hour:e/(
100/
3600),online_no_throttling_10_per_second:e/
10,offline_slow_hashing_1e4_per_second:e/
1e4,offline_fast_hashing_1e10_per_second:e/
1e10},t={};for(s in n)o=n[s],t[s]=this.display_time(o);return{crack_times_seconds:n,crack_times_display:t,score:this.guesses_to_score(e)}},guesses_to_score:function(e){var t;return t=
5,e
<1e3+t?
0:e
<1e6+t?
1:e
<1e8+t?
2:e
<1e10+t?
3:
4},display_time:function(e){var t,n,s,o,_,r,i,a,u,c;return i=
60,r=
60*i,s=
24*r,a=
31*s,c=
12*a,n=
100*c,u=e
<1?[null,
"less than a second"]:e
<i?(t=Math.round(e),[t,t+
" second"]):e
<r?(t=Math.round(e/i),[t,t+
" minute"]):e
<s?(t=Math.round(e/r),[t,t+
" hour"]):e
<a?(t=Math.round(e/s),[t,t+
" day"]):e
<c?(t=Math.round(e/a),[t,t+
" month"]):e
<n?(t=Math.round(e/c),[t,t+
" year"]):[null,
"centuries"],o=u[
0],_=u[
1],null!=o&&
1!==o&&(_+=
"s"),_}},module.exports=time_estimates;
45739 //# sourceMappingURL=zxcvbn.js.map
45742 * Detects entropy from a string.
45749 * hexadecimal [
0-
9A-F]
45750 * card [A2-
9TJQK][CDHS]
45752 * Automatically uses lowest entropy to avoid issues such as interpretting
0101
45753 * as hexadecimal which would be
16 bits when really it's only
4 bits of binary
45757 window.Entropy = new (function() {
45759 var TWO = new BigInteger(
2);
45761 // matchers returns an array of the matched events for each type of entropy.
45763 // matchers.binary("
010") returns ["
0", "
1", "
0"]
45764 // matchers.binary("a10") returns ["
1", "
0"]
45765 // matchers.hex("a10") returns ["a", "
1", "
0"]
45767 binary: function(str) {
45768 return str.match(/[
0-
1]/gi) || [];
45770 base6: function(str) {
45771 return str.match(/[
0-
5]/gi) || [];
45773 dice: function(str) {
45774 return str.match(/[
1-
6]/gi) || []; // ie dice numbers
45776 base10: function(str) {
45777 return str.match(/[
0-
9]/gi) || [];
45779 hex: function(str) {
45780 return str.match(/[
0-
9A-F]/gi) || [];
45782 card: function(str) {
45783 // Format is NumberSuit, eg
45784 // AH ace of hearts
45785 //
8C eight of clubs
45786 // TD ten of diamonds
45787 // JS jack of spades
45788 // QH queen of hearts
45789 // KC king of clubs
45790 return str.match(/([A2-
9TJQK][CDHS])/gi) || [];
45794 // Convert array of cards from ["ac", "
4d", "ks"]
45795 // to numbers between
0 and
51 [
0,
16,
51]
45796 function convertCardsToInts(cards) {
45798 var values = "a23456789tjqk";
45799 var suits = "cdhs";
45800 for (var i=
0; i
<cards.length; i++) {
45801 var card = cards[i].toLowerCase();
45802 var value = card[
0];
45803 var suit = card[
1];
45804 var asInt =
13 * suits.indexOf(suit) + values.indexOf(value);
45810 this.fromString = function(rawEntropyStr) {
45811 // Find type of entropy being used (binary, hex, dice etc)
45812 var base = getBase(rawEntropyStr);
45813 // Convert dice to base6 entropy (ie
1-
6 to
0-
5)
45814 // This is done by changing all
6s to
0s
45815 if (base.str ==
"dice") {
45818 for (var i=
0; i
<base.parts.length; i++) {
45819 var c = base.parts[i];
45820 if (
"12345".indexOf(c)
> -
1) {
45821 newParts[i] = base.parts[i];
45822 newInts[i] = base.ints[i];
45829 base.str = "base
6 (dice)";
45830 base.ints = newInts;
45831 base.parts = newParts;
45832 base.matcher = matchers.base6;
45834 // Detect empty entropy
45835 if (base.parts.length ==
0) {
45843 // Convert base.ints to BigInteger.
45844 // Due to using unusual bases, eg cards of base52, this is not as simple as
45845 // using BigInteger.parse()
45846 var entropyInt = BigInteger.ZERO;
45847 for (var i=base.ints.length-
1; i
>=
0; i--) {
45848 var thisInt = BigInteger.parse(base.ints[i]);
45849 var power = (base.ints.length -
1) - i;
45850 var additionalEntropy = BigInteger.parse(base.asInt).pow(power).multiply(thisInt);
45851 entropyInt = entropyInt.add(additionalEntropy);
45853 // Convert entropy to binary
45854 var entropyBin = entropyInt.toString(
2);
45855 // If the first integer is small, it must be padded with zeros.
45856 // Otherwise the chance of the first bit being
1 is
100%, which is
45857 // obviously incorrect.
45858 // This is not perfect for non-
2^n bases.
45859 var expectedBits = Math.floor(base.parts.length * Math.log2(base.asInt));
45860 while (entropyBin.length < expectedBits) {
45861 entropyBin = "
0" + entropyBin;
45863 // Calculate the number of bits per event
45864 var bitsPerEvent = Math.log2(base.asInt);
45865 // Cards binary must be handled differently, since they're not replaced
45866 if (base.asInt ==
52) {
45867 var cardEntropy = processCardEntropy(base.parts);
45868 entropyBin = cardEntropy.binaryStr;
45869 bitsPerEvent = cardEntropy.bitsPerEvent;
45871 // Supply a 'filtered' entropy string for display purposes
45872 var entropyClean = base.parts.join("");
45873 var entropyHtml = base.parts.join("");
45874 if (base.asInt ==
52) {
45875 entropyClean = base.parts.join(" ").toUpperCase();
45876 entropyClean = entropyClean.replace(/C/g, "\u2663");
45877 entropyClean = entropyClean.replace(/D/g, "\u2666");
45878 entropyClean = entropyClean.replace(/H/g, "\u2665");
45879 entropyClean = entropyClean.replace(/S/g, "\u2660");
45880 entropyHtml = base.parts.join(" ").toUpperCase();
45881 entropyHtml = entropyHtml.replace(/C/g, "
<span class='card-suit club'
>\u2663
</span>");
45882 entropyHtml = entropyHtml.replace(/D/g, "<span class='card-suit diamond'
>\u2666
</span>");
45883 entropyHtml = entropyHtml.replace(/H/g, "<span class='card-suit heart'
>\u2665
</span>");
45884 entropyHtml = entropyHtml.replace(/S/g, "<span class='card-suit spade'
>\u2660
</span>");
45886 // Return the result
45888 binaryStr: entropyBin,
45889 cleanStr: entropyClean,
45890 cleanHtml: entropyHtml,
45891 bitsPerEvent: bitsPerEvent,
45897 function getSortedDeck() {
45899 var suits = "CDHS
";
45900 var values = "A23456789TJQK
";
45901 for (var i=0; i<suits.length; i++) {
45902 for (var j=0; j<values.length; j++) {
45903 s.push(values[j]+suits[i]);
45909 function getBase(str) {
45910 // Need to get the lowest base for the supplied entropy.
45911 // This prevents interpreting, say, dice rolls as hexadecimal.
45912 var binaryMatches = matchers.binary(str);
45913 var hexMatches = matchers.hex(str);
45914 // Find the lowest base that can be used, whilst ignoring any irrelevant chars
45915 if (binaryMatches.length == hexMatches.length && hexMatches.length > 0) {
45916 var ints = binaryMatches.map(function(i) { return parseInt(i, 2) });
45919 parts: binaryMatches,
45920 matcher: matchers.binary,
45925 var cardMatches = matchers.card(str);
45926 if (cardMatches.length >= hexMatches.length / 2) {
45927 var ints = convertCardsToInts(cardMatches);
45930 parts: cardMatches,
45931 matcher: matchers.card,
45936 var diceMatches = matchers.dice(str);
45937 if (diceMatches.length == hexMatches.length && hexMatches.length
> 0) {
45938 var ints = diceMatches.map(function(i) { return parseInt(i) });
45941 parts: diceMatches,
45942 matcher: matchers.dice,
45947 var base6Matches = matchers.base6(str);
45948 if (base6Matches.length == hexMatches.length && hexMatches.length
> 0) {
45949 var ints = base6Matches.map(function(i) { return parseInt(i) });
45952 parts: base6Matches,
45953 matcher: matchers.base6,
45958 var base10Matches = matchers.base10(str);
45959 if (base10Matches.length == hexMatches.length && hexMatches.length
> 0) {
45960 var ints = base10Matches.map(function(i) { return parseInt(i) });
45963 parts: base10Matches,
45964 matcher: matchers.base10,
45969 var ints = hexMatches.map(function(i) { return parseInt(i,
16) });
45973 matcher: matchers.hex,
45975 str:
"hexadecimal",
45979 // Assume cards are NOT replaced.
45980 // Additional entropy decreases as more cards are used. This means
45981 // total possible entropy is measured using n!, not base^n.
45982 // eg the second last card can be only one of two, not one of fifty two
45983 // so the added entropy for that card is only one bit at most
45984 function processCardEntropy(cards) {
45985 // Track how many instances of each card have been used, and thus
45986 // how many decks are in use.
45987 var cardCounts = {};
45988 var numberOfDecks =
0;
45989 // Work out number of decks by max(duplicates)
45990 for (var i=
0; i
<cards.length; i++) {
45991 // Get the card that was drawn
45992 var cardLower = cards[i];
45993 var card = cardLower.toUpperCase();
45994 // Initialize the count for this card if needed
45995 if (!(card in cardCounts)) {
45996 cardCounts[card] =
0;
45998 cardCounts[card] +=
1;
45999 // See if this is max(duplicates)
46000 if (cardCounts[card]
> numberOfDecks) {
46001 numberOfDecks = cardCounts[card];
46004 // Work out the total number of bits for this many decks
46005 // See http://crypto.stackexchange.com/q/
41886
46006 var gainedBits =
0;
46007 // Equivalent of Math.log2(factorial(
52*numberOfDecks))
46008 // which becomes infinity for numberOfDecks
> 4
46009 for (var i=
1; i<=
52*numberOfDecks; i++) {
46010 gainedBits = gainedBits + Math.log2(i);
46012 var lostBits =
52 * Math.log2(factorial(numberOfDecks));
46013 var maxBits = gainedBits - lostBits;
46014 // Convert the drawn cards to a binary representation.
46015 // The exact technique for doing this is unclear.
46017 // http://crypto.stackexchange.com/a/
41896
46018 //
"I even doubt that this is well defined (only the average entropy
46019 // is, I believe)."
46021 // https://github.com/iancoleman/bip39/issues/
33#issuecomment-
263021856
46022 //
"The binary representation can be the first log(permutations,2) bits
46023 // of the sha-2 hash of the normalized deck string."
46025 // In this specific implementation, the first N bits of the hash of the
46026 // normalized cards string is being used. Uppercase, no spaces; eg
46027 // sha256(
"AH8DQSTC2H")
46028 var totalCards = numberOfDecks *
52;
46029 var percentUsed = cards.length / totalCards;
46030 // Calculate the average number of bits of entropy for the number of
46032 var numberOfBits = Math.floor(maxBits * percentUsed);
46033 // Create a normalized string of the selected cards
46034 var normalizedCards = cards.join(
"").toUpperCase();
46035 // Convert to binary using the SHA256 hash of the normalized cards.
46036 // If the number of bits is more than
256, multiple hashes
46037 // are used until the required number of bits is reached.
46038 var entropyBin =
"";
46039 var iterations =
0;
46040 while (entropyBin.length < numberOfBits) {
46041 var hashedCards = sjcl.hash.sha256.hash(normalizedCards +
":" + iterations);
46042 var hashHex = sjcl.codec.hex.fromBits(hashedCards);
46043 for (var i=
0; i
<hashHex.length; i++) {
46044 var decimal = parseInt(hashHex[i],
16);
46045 var binary = decimal.toString(
2);
46046 while (binary.length <
4) {
46047 binary =
"0" + binary;
46049 entropyBin = entropyBin + binary;
46051 iterations = iterations +
1;
46053 // Truncate to the appropriate number of bits.
46054 entropyBin = entropyBin.substring(
0, numberOfBits);
46055 // Get the number of bits per event
46056 bitsPerEvent = maxBits / totalCards;
46058 binaryStr: entropyBin,
46059 bitsPerEvent: bitsPerEvent,
46063 // Polyfill for Math.log2
46064 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2#Polyfill
46065 Math.log2 = Math.log2 || function(x) {
46066 // The polyfill isn't good enough because of the poor accuracy of
46068 // log2(
8) gave
2.9999999999999996 which when floored causes issues.
46069 // So instead use the BigInteger library to get it right.
46070 return BigInteger.log(x) / BigInteger.log(
2);
46073 // Depends on BigInteger
46074 function factorial(n) {
46078 f = BigInteger.ONE;
46079 for (var i=
1; i<=n; i++) {
46080 f = f.multiply(new BigInteger(i));
46087 <script>(function() {
46089 // mnemonics is populated as required by getLanguage
46090 var mnemonics = { "english": new Mnemonic("english") };
46091 var mnemonic = mnemonics["english"];
46093 var bip32RootKey = null;
46094 var bip32ExtendedKey = null;
46095 var network = bitcoinjs.bitcoin.networks.bitcoin;
46096 var addressRowTemplate = $("#address-row-template");
46098 var showIndex = true;
46099 var showAddress = true;
46100 var showPubKey = true;
46101 var showPrivKey = true;
46102 var showQr = false;
46104 var entropyChangeTimeoutEvent = null;
46105 var phraseChangeTimeoutEvent = null;
46106 var rootKeyChangedTimeoutEvent = null;
46108 var generationProcesses = [];
46111 DOM.network = $(".network");
46112 DOM.bip32Client = $("#bip32-client");
46113 DOM.phraseNetwork = $("#network-phrase");
46114 DOM.useEntropy = $(".use-entropy");
46115 DOM.entropyContainer = $(".entropy-container");
46116 DOM.entropy = $(".entropy");
46117 DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
46118 DOM.entropyType = DOM.entropyContainer.find(".type");
46119 DOM.entropyCrackTime = DOM.entropyContainer.find(".crack-time");
46120 DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
46121 DOM.entropyBits = DOM.entropyContainer.find(".bits");
46122 DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
46123 DOM.entropyWordCount = DOM.entropyContainer.find(".word-count");
46124 DOM.entropyBinary = DOM.entropyContainer.find(".binary");
46125 DOM.entropyMnemonicLength = DOM.entropyContainer.find(".mnemonic-length");
46126 DOM.phrase = $(".phrase");
46127 DOM.passphrase = $(".passphrase");
46128 DOM.generateContainer = $(".generate-container");
46129 DOM.generate = $(".generate");
46130 DOM.seed = $(".seed");
46131 DOM.rootKey = $(".root-key");
46132 DOM.extendedPrivKey = $(".extended-priv-key");
46133 DOM.extendedPubKey = $(".extended-pub-key");
46134 DOM.bip32tab = $("#bip32-tab");
46135 DOM.bip44tab = $("#bip44-tab");
46136 DOM.bip49tab = $("#bip49-tab");
46137 DOM.bip32panel = $("#bip32");
46138 DOM.bip44panel = $("#bip44");
46139 DOM.bip49panel = $("#bip49");
46140 DOM.bip32path = $("#bip32-path");
46141 DOM.bip44path = $("#bip44-path");
46142 DOM.bip44purpose = $("#bip44 .purpose");
46143 DOM.bip44coin = $("#bip44 .coin");
46144 DOM.bip44account = $("#bip44 .account");
46145 DOM.bip44accountXprv = $("#bip44 .account-xprv");
46146 DOM.bip44accountXpub = $("#bip44 .account-xpub");
46147 DOM.bip44change = $("#bip44 .change");
46148 DOM.bip49unavailable = $("#bip49 .unavailable");
46149 DOM.bip49available = $("#bip49 .available");
46150 DOM.bip49path = $("#bip49-path");
46151 DOM.bip49purpose = $("#bip49 .purpose");
46152 DOM.bip49coin = $("#bip49 .coin");
46153 DOM.bip49account = $("#bip49 .account");
46154 DOM.bip49accountXprv = $("#bip49 .account-xprv");
46155 DOM.bip49accountXpub = $("#bip49 .account-xpub");
46156 DOM.bip49change = $("#bip49 .change");
46157 DOM.generatedStrength = $(".generate-container .strength");
46158 DOM.hardenedAddresses = $(".hardened-addresses");
46159 DOM.addresses = $(".addresses");
46160 DOM.rowsToAdd = $(".rows-to-add");
46161 DOM.more = $(".more");
46162 DOM.feedback = $(".feedback");
46163 DOM.tab = $(".derivation-type a");
46164 DOM.indexToggle = $(".index-toggle");
46165 DOM.addressToggle = $(".address-toggle");
46166 DOM.publicKeyToggle = $(".public-key-toggle");
46167 DOM.privateKeyToggle = $(".private-key-toggle");
46168 DOM.languages = $(".languages a");
46169 DOM.qrContainer = $(".qr-container");
46170 DOM.qrHider = DOM.qrContainer.find(".qr-hider");
46171 DOM.qrImage = DOM.qrContainer.find(".qr-image");
46172 DOM.qrHint = DOM.qrContainer.find(".qr-hint");
46173 DOM.showQrEls = $("[data-show-qr]");
46177 DOM.network.on("change", networkChanged);
46178 DOM.bip32Client.on("change", bip32ClientChanged);
46179 DOM.useEntropy.on("change", setEntropyVisibility);
46180 DOM.entropy.on("input", delayedEntropyChanged);
46181 DOM.entropyMnemonicLength.on("change", entropyChanged);
46182 DOM.phrase.on("input", delayedPhraseChanged);
46183 DOM.passphrase.on("input", delayedPhraseChanged);
46184 DOM.generate.on("click", generateClicked);
46185 DOM.more.on("click", showMore);
46186 DOM.rootKey.on("input", delayedRootKeyChanged);
46187 DOM.bip32path.on("input", calcForDerivationPath);
46188 DOM.bip44account.on("input", calcForDerivationPath);
46189 DOM.bip44change.on("input", calcForDerivationPath);
46190 DOM.bip49account.on("input", calcForDerivationPath);
46191 DOM.bip49change.on("input", calcForDerivationPath);
46192 DOM.tab.on("shown.bs.tab", calcForDerivationPath);
46193 DOM.hardenedAddresses.on("change", calcForDerivationPath);
46194 DOM.indexToggle.on("click", toggleIndexes);
46195 DOM.addressToggle.on("click", toggleAddresses);
46196 DOM.publicKeyToggle.on("click", togglePublicKeys);
46197 DOM.privateKeyToggle.on("click", togglePrivateKeys);
46198 DOM.languages.on("click", languageChanged);
46199 setQrEvents(DOM.showQrEls);
46202 hideValidationError();
46203 populateNetworkSelect();
46204 populateClientSelect();
46209 function networkChanged(e) {
46210 clearDerivedKeys();
46211 clearAddressesList();
46212 var networkIndex = e.target.value;
46213 var network = networks[networkIndex];
46214 network.onSelect();
46215 if (network.bip49available) {
46221 if (seed != null) {
46229 function bip32ClientChanged(e) {
46230 var clientIndex = DOM.bip32Client.val();
46231 if (clientIndex == "custom") {
46232 DOM.bip32path.prop("readonly", false);
46235 DOM.bip32path.prop("readonly", true);
46236 clients[clientIndex].onSelect();
46237 if (seed != null) {
46246 function setEntropyVisibility() {
46247 if (isUsingOwnEntropy()) {
46248 DOM.entropyContainer.removeClass("hidden");
46249 DOM.generateContainer.addClass("hidden");
46250 DOM.phrase.prop("readonly", true);
46251 DOM.entropy.focus();
46255 DOM.entropyContainer.addClass("hidden");
46256 DOM.generateContainer.removeClass("hidden");
46257 DOM.phrase.prop("readonly", false);
46262 function delayedPhraseChanged() {
46263 hideValidationError();
46265 bip32RootKey = null;
46266 bip32ExtendedKey = null;
46267 clearAddressesList();
46269 if (phraseChangeTimeoutEvent != null) {
46270 clearTimeout(phraseChangeTimeoutEvent);
46272 phraseChangeTimeoutEvent = setTimeout(phraseChanged,
400);
46275 function phraseChanged() {
46277 setMnemonicLanguage();
46278 // Get the mnemonic phrase
46279 var phrase = DOM.phrase.val();
46280 var errorText = findPhraseErrors(phrase);
46282 showValidationError(errorText);
46285 // Calculate and display
46286 var passphrase = DOM.passphrase.val();
46287 calcBip32RootKeyFromSeed(phrase, passphrase);
46288 calcForDerivationPath();
46291 function delayedEntropyChanged() {
46292 hideValidationError();
46294 if (entropyChangeTimeoutEvent != null) {
46295 clearTimeout(entropyChangeTimeoutEvent);
46297 entropyChangeTimeoutEvent = setTimeout(entropyChanged,
400);
46300 function entropyChanged() {
46301 // If blank entropy, clear mnemonic, addresses, errors
46302 if (DOM.entropy.val().trim().length ==
0) {
46304 clearEntropyFeedback();
46305 DOM.phrase.val("");
46306 showValidationError("Blank entropy");
46309 // Get the current phrase to detect changes
46310 var phrase = DOM.phrase.val();
46311 // Set the phrase from the entropy
46312 setMnemonicFromEntropy();
46313 // Recalc addresses if the phrase has changed
46314 var newPhrase = DOM.phrase.val();
46315 if (newPhrase != phrase) {
46316 if (newPhrase.length ==
0) {
46328 function delayedRootKeyChanged() {
46329 // Warn if there is an existing mnemonic or passphrase.
46330 if (DOM.phrase.val().length
> 0 || DOM.passphrase.val().length
> 0) {
46331 if (!confirm(
"This will clear existing mnemonic and passphrase")) {
46332 DOM.rootKey.val(bip32RootKey);
46336 hideValidationError();
46338 // Clear existing mnemonic and passphrase
46339 DOM.phrase.val(
"");
46340 DOM.passphrase.val(
"");
46342 if (rootKeyChangedTimeoutEvent != null) {
46343 clearTimeout(rootKeyChangedTimeoutEvent);
46345 rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged,
400);
46348 function rootKeyChanged() {
46350 hideValidationError();
46351 // Validate the root key TODO
46352 var rootKeyBase58 = DOM.rootKey.val();
46353 var errorText = validateRootKey(rootKeyBase58);
46355 showValidationError(errorText);
46358 // Calculate and display
46359 calcBip32RootKeyFromBase58(rootKeyBase58);
46360 calcForDerivationPath();
46363 function calcForDerivationPath() {
46364 clearDerivedKeys();
46365 clearAddressesList();
46367 // Don't show bip49 if it's selected but network doesn't support it
46368 if (bip49TabSelected() && !networkHasBip49()) {
46371 // Get the derivation path
46372 var derivationPath = getDerivationPath();
46373 var errorText = findDerivationPathErrors(derivationPath);
46375 showValidationError(errorText);
46378 bip32ExtendedKey = calcBip32ExtendedKey(derivationPath);
46379 if (bip44TabSelected()) {
46380 displayBip44Info();
46382 if (bip49TabSelected()) {
46383 displayBip49Info();
46385 displayBip32Info();
46388 function generateClicked() {
46389 if (isUsingOwnEntropy()) {
46394 setTimeout(function() {
46395 setMnemonicLanguage();
46396 var phrase = generateRandomPhrase();
46404 function languageChanged() {
46405 setTimeout(function() {
46406 setMnemonicLanguage();
46407 if (DOM.phrase.val().length
> 0) {
46408 var newPhrase = convertPhraseToNewLanguage();
46409 DOM.phrase.val(newPhrase);
46413 DOM.generate.trigger(
"click");
46418 function toggleIndexes() {
46419 showIndex = !showIndex;
46420 $(
"td.index span").toggleClass(
"invisible");
46423 function toggleAddresses() {
46424 showAddress = !showAddress;
46425 $(
"td.address span").toggleClass(
"invisible");
46428 function togglePublicKeys() {
46429 showPubKey = !showPubKey;
46430 $(
"td.pubkey span").toggleClass(
"invisible");
46433 function togglePrivateKeys() {
46434 showPrivKey = !showPrivKey;
46435 $(
"td.privkey span").toggleClass(
"invisible");
46440 function generateRandomPhrase() {
46441 if (!hasStrongRandom()) {
46442 var errorText =
"This browser does not support strong randomness";
46443 showValidationError(errorText);
46446 var numWords = parseInt(DOM.generatedStrength.val());
46447 var strength = numWords /
3 *
32;
46448 var words = mnemonic.generate(strength);
46449 DOM.phrase.val(words);
46453 function calcBip32RootKeyFromSeed(phrase, passphrase) {
46454 seed = mnemonic.toSeed(phrase, passphrase);
46455 bip32RootKey = bitcoinjs.bitcoin.HDNode.fromSeedHex(seed, network);
46458 function calcBip32RootKeyFromBase58(rootKeyBase58) {
46459 bip32RootKey = bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58, network);
46462 function calcBip32ExtendedKey(path) {
46463 // Check there's a root key to derive from
46464 if (!bip32RootKey) {
46465 return bip32RootKey;
46467 var extendedKey = bip32RootKey;
46468 // Derive the key from the path
46469 var pathBits = path.split(
"/");
46470 for (var i=
0; i
<pathBits.length; i++) {
46471 var bit = pathBits[i];
46472 var index = parseInt(bit);
46473 if (isNaN(index)) {
46476 var hardened = bit[bit.length-
1] ==
"'";
46477 var isPriv = !(extendedKey.isNeutered());
46478 var invalidDerivationPath = hardened && !isPriv;
46479 if (invalidDerivationPath) {
46480 extendedKey = null;
46482 else if (hardened) {
46483 extendedKey = extendedKey.deriveHardened(index);
46486 extendedKey = extendedKey.derive(index);
46492 function showValidationError(errorText) {
46498 function hideValidationError() {
46504 function findPhraseErrors(phrase) {
46505 // Preprocess the words
46506 phrase = mnemonic.normalizeString(phrase);
46507 var words = phraseToWordArray(phrase);
46508 // Detect blank phrase
46509 if (words.length ==
0) {
46510 return
"Blank mnemonic";
46513 for (var i=
0; i
<words.length; i++) {
46514 var word = words[i];
46515 var language = getLanguage();
46516 if (WORDLISTS[language].indexOf(word) == -
1) {
46517 console.log(
"Finding closest match to " + word);
46518 var nearestWord = findNearestWord(word);
46519 return word +
" not in wordlist, did you mean " + nearestWord +
"?";
46522 // Check the words are valid
46523 var properPhrase = wordArrayToPhrase(words);
46524 var isValid = mnemonic.check(properPhrase);
46526 return
"Invalid mnemonic";
46531 function validateRootKey(rootKeyBase58) {
46533 bitcoinjs.bitcoin.HDNode.fromBase58(rootKeyBase58);
46536 return
"Invalid root key";
46541 function getDerivationPath() {
46542 if (bip44TabSelected()) {
46543 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
46544 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
46545 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
46546 var change = parseIntNoNaN(DOM.bip44change.val(),
0);
46548 path += purpose +
"'/";
46549 path += coin +
"'/";
46550 path += account +
"'/";
46552 DOM.bip44path.val(path);
46553 var derivationPath = DOM.bip44path.val();
46554 console.log(
"Using derivation path from BIP44 tab: " + derivationPath);
46555 return derivationPath;
46557 if (bip49TabSelected()) {
46558 var purpose = parseIntNoNaN(DOM.bip49purpose.val(),
49);
46559 var coin = parseIntNoNaN(DOM.bip49coin.val(),
0);
46560 var account = parseIntNoNaN(DOM.bip49account.val(),
0);
46561 var change = parseIntNoNaN(DOM.bip49change.val(),
0);
46563 path += purpose +
"'/";
46564 path += coin +
"'/";
46565 path += account +
"'/";
46567 DOM.bip49path.val(path);
46568 var derivationPath = DOM.bip49path.val();
46569 console.log(
"Using derivation path from BIP49 tab: " + derivationPath);
46570 return derivationPath;
46572 else if (bip32TabSelected()) {
46573 var derivationPath = DOM.bip32path.val();
46574 console.log(
"Using derivation path from BIP32 tab: " + derivationPath);
46575 return derivationPath;
46578 console.log(
"Unknown derivation path");
46582 function findDerivationPathErrors(path) {
46583 // TODO is not perfect but is better than nothing
46585 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#test-vectors
46587 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#extended-keys
46588 var maxDepth =
255; // TODO verify this!!
46589 var maxIndexValue = Math.pow(
2,
31); // TODO verify this!!
46590 if (path[
0] !=
"m") {
46591 return
"First character must be 'm'";
46593 if (path.length
> 1) {
46594 if (path[
1] !=
"/") {
46595 return
"Separator must be '/'";
46597 var indexes = path.split(
"/");
46598 if (indexes.length
> maxDepth) {
46599 return "Derivation depth is " + indexes.length + ", must be less than " + maxDepth;
46601 for (var depth =
1; depth
<indexes.length; depth++) {
46602 var index = indexes[depth];
46603 var invalidChars = index.replace(/^[
0-
9]+'?$/g,
"")
46604 if (invalidChars.length
> 0) {
46605 return
"Invalid characters " + invalidChars +
" found at depth " + depth;
46607 var indexValue = parseInt(index.replace(
"'",
""));
46608 if (isNaN(depth)) {
46609 return
"Invalid number at depth " + depth;
46611 if (indexValue
> maxIndexValue) {
46612 return "Value of " + indexValue + " at depth " + depth + " must be less than " + maxIndexValue;
46616 // Check root key exists or else derivation path is useless!
46617 if (!bip32RootKey) {
46618 return "No root key";
46620 // Check no hardened derivation path when using xpub keys
46621 var hardened = path.indexOf("'")
> -
1;
46622 var isXpubkey = bip32RootKey.isNeutered();
46623 if (hardened && isXpubkey) {
46624 return "Hardened derivation path is invalid with xpub key";
46629 function displayBip44Info() {
46630 // Get the derivation path for the account
46631 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
46632 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
46633 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
46635 path += purpose + "'/";
46636 path += coin + "'/";
46637 path += account + "'/";
46638 // Calculate the account extended keys
46639 var accountExtendedKey = calcBip32ExtendedKey(path);
46640 var accountXprv = accountExtendedKey.toBase58();
46641 var accountXpub = accountExtendedKey.neutered().toBase58();
46642 // Display the extended keys
46643 DOM.bip44accountXprv.val(accountXprv);
46644 DOM.bip44accountXpub.val(accountXpub);
46647 function displayBip49Info() {
46648 // Get the derivation path for the account
46649 var purpose = parseIntNoNaN(DOM.bip49purpose.val(),
49);
46650 var coin = parseIntNoNaN(DOM.bip49coin.val(),
0);
46651 var account = parseIntNoNaN(DOM.bip49account.val(),
0);
46653 path += purpose + "'/";
46654 path += coin + "'/";
46655 path += account + "'/";
46656 // Calculate the account extended keys
46657 var accountExtendedKey = calcBip32ExtendedKey(path);
46658 var accountXprv = accountExtendedKey.toBase58();
46659 var accountXpub = accountExtendedKey.neutered().toBase58();
46660 // Display the extended keys
46661 DOM.bip49accountXprv.val(accountXprv);
46662 DOM.bip49accountXpub.val(accountXpub);
46665 function displayBip32Info() {
46667 DOM.seed.val(seed);
46668 var rootKey = bip32RootKey.toBase58();
46669 DOM.rootKey.val(rootKey);
46670 var xprvkeyB58 = "NA";
46671 if (!bip32ExtendedKey.isNeutered()) {
46672 xprvkeyB58 = bip32ExtendedKey.toBase58();
46674 var extendedPrivKey = xprvkeyB58;
46675 DOM.extendedPrivKey.val(extendedPrivKey);
46676 var extendedPubKey = bip32ExtendedKey.neutered().toBase58();
46677 DOM.extendedPubKey.val(extendedPubKey);
46678 // Display the addresses and privkeys
46679 clearAddressesList();
46680 displayAddresses(
0,
20);
46683 function displayAddresses(start, total) {
46684 generationProcesses.push(new (function() {
46688 this.stop = function() {
46689 for (var i=
0; i
<rows.length; i++) {
46690 rows[i].shouldGenerate = false;
46695 for (var i=
0; i
<total; i++) {
46696 var index = i + start;
46697 var isLast = i == total -
1;
46698 rows.push(new TableRow(index, isLast));
46704 function TableRow(index, isLast) {
46707 this.shouldGenerate = true;
46708 var useHardenedAddresses = DOM.hardenedAddresses.prop(
"checked");
46709 var isBip49 = bip49TabSelected();
46710 var bip49available = networkHasBip49();
46716 function calculateValues() {
46717 setTimeout(function() {
46718 if (!self.shouldGenerate) {
46722 if (useHardenedAddresses) {
46723 key = bip32ExtendedKey.deriveHardened(index);
46726 key = bip32ExtendedKey.derive(index);
46728 var address = key.getAddress().toString();
46729 var privkey =
"NA";
46730 if (!key.isNeutered()) {
46731 privkey = key.keyPair.toWIF(network);
46733 var pubkey = key.getPublicKeyBuffer().toString('hex');
46734 var indexText = getDerivationPath() +
"/" + index;
46735 if (useHardenedAddresses) {
46736 indexText = indexText +
"'";
46738 // Ethereum values are different
46739 if (networks[DOM.network.val()].name ==
"ETH - Ethereum") {
46740 var privKeyBuffer = key.keyPair.d.toBuffer();
46741 privkey = privKeyBuffer.toString('hex');
46742 var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
46743 var hexAddress = addressBuffer.toString('hex');
46744 var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
46745 address = ethUtil.addHexPrefix(checksumAddress);
46746 privkey = ethUtil.addHexPrefix(privkey);
46747 pubkey = ethUtil.addHexPrefix(pubkey);
46749 // Ripple values are different
46750 if (networks[DOM.network.val()].name ==
"XRP - Ripple") {
46751 privkey = convertRipplePriv(privkey);
46752 address = convertRippleAdrr(address);
46754 // BIP49 addresses are different
46756 if (!bip49available) {
46759 var keyhash = bitcoinjs.bitcoin.crypto.hash160(key.getPublicKeyBuffer());
46760 var scriptsig = bitcoinjs.bitcoin.script.witnessPubKeyHash.output.encode(keyhash);
46761 var addressbytes = bitcoinjs.bitcoin.crypto.hash160(scriptsig);
46762 var scriptpubkey = bitcoinjs.bitcoin.script.scriptHash.output.encode(addressbytes);
46763 address = bitcoinjs.bitcoin.address.fromOutputScript(scriptpubkey, network)
46765 addAddressToList(indexText, address, pubkey, privkey);
46776 function showMore() {
46777 var start = DOM.addresses.children().length;
46778 var rowsToAdd = parseInt(DOM.rowsToAdd.val());
46779 if (isNaN(rowsToAdd)) {
46781 DOM.rowsToAdd.val(
"20");
46783 if (rowsToAdd
> 200) {
46784 var msg =
"Generating " + rowsToAdd +
" rows could take a while. ";
46785 msg +=
"Do you want to continue?";
46786 if (!confirm(msg)) {
46790 displayAddresses(start, rowsToAdd);
46793 function clearDisplay() {
46794 clearAddressesList();
46796 hideValidationError();
46799 function clearAddressesList() {
46800 DOM.addresses.empty();
46804 function stopGenerating() {
46805 while (generationProcesses.length
> 0) {
46806 var generation = generationProcesses.shift();
46811 function clearKeys() {
46813 clearDerivedKeys();
46816 function clearRootKey() {
46817 DOM.rootKey.val(
"");
46820 function clearDerivedKeys() {
46821 DOM.extendedPrivKey.val(
"");
46822 DOM.extendedPubKey.val(
"");
46823 DOM.bip44accountXprv.val(
"");
46824 DOM.bip44accountXpub.val(
"");
46827 function addAddressToList(indexText, address, pubkey, privkey) {
46828 var row = $(addressRowTemplate.html());
46830 var indexCell = row.find(
".index span");
46831 var addressCell = row.find(
".address span");
46832 var pubkeyCell = row.find(
".pubkey span");
46833 var privkeyCell = row.find(
".privkey span");
46835 indexCell.text(indexText);
46836 addressCell.text(address);
46837 pubkeyCell.text(pubkey);
46838 privkeyCell.text(privkey);
46841 indexCell.addClass(
"invisible");
46843 if (!showAddress) {
46844 addressCell.addClass(
"invisible");
46847 pubkeyCell.addClass(
"invisible");
46849 if (!showPrivKey) {
46850 privkeyCell.addClass(
"invisible");
46852 DOM.addresses.append(row);
46853 var rowShowQrEls = row.find(
"[data-show-qr]");
46854 setQrEvents(rowShowQrEls);
46857 function hasStrongRandom() {
46858 return 'crypto' in window && window['crypto'] !== null;
46861 function disableForms() {
46862 $(
"form").on(
"submit", function(e) {
46863 e.preventDefault();
46867 function parseIntNoNaN(val, defaultVal) {
46868 var v = parseInt(val);
46875 function showPending() {
46877 .text(
"Calculating...")
46881 function findNearestWord(word) {
46882 var language = getLanguage();
46883 var words = WORDLISTS[language];
46884 var minDistance =
99;
46885 var closestWord = words[
0];
46886 for (var i=
0; i
<words.length; i++) {
46887 var comparedTo = words[i];
46888 if (comparedTo.indexOf(word) ==
0) {
46891 var distance = Levenshtein.get(word, comparedTo);
46892 if (distance < minDistance) {
46893 closestWord = comparedTo;
46894 minDistance = distance;
46897 return closestWord;
46900 function hidePending() {
46906 function populateNetworkSelect() {
46907 for (var i=
0; i
<networks.length; i++) {
46908 var network = networks[i];
46909 var option = $(
"<option>");
46910 option.attr(
"value", i);
46911 option.text(network.name);
46912 if (network.name ==
"BTC - Bitcoin") {
46913 option.prop(
"selected", true);
46915 DOM.phraseNetwork.append(option);
46919 function populateClientSelect() {
46920 for (var i=
0; i
<clients.length; i++) {
46921 var client = clients[i];
46922 var option = $(
"<option>");
46923 option.attr(
"value", i);
46924 option.text(client.name);
46925 DOM.bip32Client.append(option);
46929 function getLanguage() {
46930 var defaultLanguage =
"english";
46931 // Try to get from existing phrase
46932 var language = getLanguageFromPhrase();
46933 // Try to get from url if not from phrase
46934 if (language.length ==
0) {
46935 language = getLanguageFromUrl();
46937 // Default to English if no other option
46938 if (language.length ==
0) {
46939 language = defaultLanguage;
46944 function getLanguageFromPhrase(phrase) {
46945 // Check if how many words from existing phrase match a language.
46948 phrase = DOM.phrase.val();
46950 if (phrase.length
> 0) {
46951 var words = phraseToWordArray(phrase);
46952 var languageMatches = {};
46953 for (l in WORDLISTS) {
46954 // Track how many words match in this language
46955 languageMatches[l] =
0;
46956 for (var i=
0; i
<words.length; i++) {
46957 var wordInLanguage = WORDLISTS[l].indexOf(words[i])
> -
1;
46958 if (wordInLanguage) {
46959 languageMatches[l]++;
46962 // Find languages with most word matches.
46963 // This is made difficult due to commonalities between Chinese
46964 // simplified vs traditional.
46965 var mostMatches =
0;
46966 var mostMatchedLanguages = [];
46967 for (var l in languageMatches) {
46968 var numMatches = languageMatches[l];
46969 if (numMatches
> mostMatches) {
46970 mostMatches = numMatches;
46971 mostMatchedLanguages = [l];
46973 else if (numMatches == mostMatches) {
46974 mostMatchedLanguages.push(l);
46978 if (mostMatchedLanguages.length
> 0) {
46979 // Use first language and warn if multiple detected
46980 language = mostMatchedLanguages[
0];
46981 if (mostMatchedLanguages.length
> 1) {
46982 console.warn(
"Multiple possible languages");
46983 console.warn(mostMatchedLanguages);
46990 function getLanguageFromUrl() {
46991 for (var language in WORDLISTS) {
46992 if (window.location.hash.indexOf(language)
> -
1) {
46999 function setMnemonicLanguage() {
47000 var language = getLanguage();
47001 // Load the bip39 mnemonic generator for this language if required
47002 if (!(language in mnemonics)) {
47003 mnemonics[language] = new Mnemonic(language);
47005 mnemonic = mnemonics[language];
47008 function convertPhraseToNewLanguage() {
47009 var oldLanguage = getLanguageFromPhrase();
47010 var newLanguage = getLanguageFromUrl();
47011 var oldPhrase = DOM.phrase.val();
47012 var oldWords = phraseToWordArray(oldPhrase);
47014 for (var i=
0; i
<oldWords.length; i++) {
47015 var oldWord = oldWords[i];
47016 var index = WORDLISTS[oldLanguage].indexOf(oldWord);
47017 var newWord = WORDLISTS[newLanguage][index];
47018 newWords.push(newWord);
47020 newPhrase = wordArrayToPhrase(newWords);
47024 // TODO look at jsbip39 - mnemonic.splitWords
47025 function phraseToWordArray(phrase) {
47026 var words = phrase.split(/\s/g);
47028 for (var i=
0; i
<words.length; i++) {
47029 var word = words[i];
47030 if (word.length
> 0) {
47031 noBlanks.push(word);
47037 // TODO look at jsbip39 - mnemonic.joinWords
47038 function wordArrayToPhrase(words) {
47039 var phrase = words.join(
" ");
47040 var language = getLanguageFromPhrase(phrase);
47041 if (language ==
"japanese") {
47042 phrase = words.join(
"\u3000");
47047 function isUsingOwnEntropy() {
47048 return DOM.useEntropy.prop(
"checked");
47051 function setMnemonicFromEntropy() {
47052 clearEntropyFeedback();
47053 // Get entropy value
47054 var entropyStr = DOM.entropy.val();
47055 // Work out minimum base for entropy
47056 var entropy = Entropy.fromString(entropyStr);
47057 if (entropy.binaryStr.length ==
0) {
47060 // Show entropy details
47061 showEntropyFeedback(entropy);
47062 // Use entropy hash if not using raw entropy
47063 var bits = entropy.binaryStr;
47064 var mnemonicLength = DOM.entropyMnemonicLength.val();
47065 if (mnemonicLength !=
"raw") {
47066 // Get bits by hashing entropy with SHA256
47067 var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
47068 var hex = sjcl.codec.hex.fromBits(hash);
47069 bits = BigInteger.parse(hex,
16).toString(
2);
47070 while (bits.length %
256 !=
0) {
47073 // Truncate hash to suit number of words
47074 mnemonicLength = parseInt(mnemonicLength);
47075 var numberOfBits =
32 * mnemonicLength /
3;
47076 bits = bits.substring(
0, numberOfBits);
47078 // Discard trailing entropy
47079 var bitsToUse = Math.floor(bits.length /
32) *
32;
47080 var start = bits.length - bitsToUse;
47081 var binaryStr = bits.substring(start);
47082 // Convert entropy string to numeric array
47083 var entropyArr = [];
47084 for (var i=
0; i
<binaryStr.length /
8; i++) {
47085 var byteAsBits = binaryStr.substring(i*
8, i*
8+
8);
47086 var entropyByte = parseInt(byteAsBits,
2);
47087 entropyArr.push(entropyByte)
47089 // Convert entropy array to mnemonic
47090 var phrase = mnemonic.toMnemonic(entropyArr);
47091 // Set the mnemonic in the UI
47092 DOM.phrase.val(phrase);
47095 function clearEntropyFeedback() {
47096 DOM.entropyCrackTime.text(
"...");
47097 DOM.entropyType.text(
"");
47098 DOM.entropyWordCount.text(
"0");
47099 DOM.entropyEventCount.text(
"0");
47100 DOM.entropyBitsPerEvent.text(
"0");
47101 DOM.entropyBits.text(
"0");
47102 DOM.entropyFiltered.html(
" ");
47103 DOM.entropyBinary.html(
" ");
47106 function showEntropyFeedback(entropy) {
47107 var numberOfBits = entropy.binaryStr.length;
47108 var timeToCrack =
"unknown";
47110 var z = zxcvbn(entropy.base.parts.join(
""));
47111 timeToCrack = z.crack_times_display.offline_fast_hashing_1e10_per_second;
47112 if (z.feedback.warning !=
"") {
47113 timeToCrack = timeToCrack +
" - " + z.feedback.warning;
47117 console.log(
"Error detecting entropy strength with zxcvbn:");
47120 var entropyTypeStr = getEntropyTypeStr(entropy);
47121 var wordCount = Math.floor(numberOfBits /
32) *
3;
47122 var bitsPerEvent = entropy.bitsPerEvent.toFixed(
2);
47123 DOM.entropyFiltered.html(entropy.cleanHtml);
47124 DOM.entropyType.text(entropyTypeStr);
47125 DOM.entropyCrackTime.text(timeToCrack);
47126 DOM.entropyEventCount.text(entropy.base.ints.length);
47127 DOM.entropyBits.text(numberOfBits);
47128 DOM.entropyWordCount.text(wordCount);
47129 DOM.entropyBinary.text(entropy.binaryStr);
47130 DOM.entropyBitsPerEvent.text(bitsPerEvent);
47133 function getEntropyTypeStr(entropy) {
47134 var typeStr = entropy.base.str;
47135 // Add some detail if these are cards
47136 if (entropy.base.asInt ==
52) {
47137 var cardDetail = []; // array of message strings
47138 // Detect duplicates
47140 var dupeTracker = {};
47141 for (var i=
0; i
<entropy.base.parts.length; i++) {
47142 var card = entropy.base.parts[i];
47143 var cardUpper = card.toUpperCase();
47144 if (cardUpper in dupeTracker) {
47147 dupeTracker[cardUpper] = true;
47149 if (dupes.length
> 0) {
47150 var dupeWord =
"duplicates";
47151 if (dupes.length ==
1) {
47152 dupeWord =
"duplicate";
47154 var msg = dupes.length +
" " + dupeWord +
": " + dupes.slice(
0,
3).join(
" ");
47155 if (dupes.length
> 3) {
47158 cardDetail.push(msg);
47160 // Detect full deck
47161 var uniqueCards = [];
47162 for (var uniqueCard in dupeTracker) {
47163 uniqueCards.push(uniqueCard);
47165 if (uniqueCards.length ==
52) {
47166 cardDetail.unshift(
"full deck");
47168 // Detect missing cards
47169 var values =
"A23456789TJQK";
47170 var suits =
"CDHS";
47171 var missingCards = [];
47172 for (var i=
0; i
<suits.length; i++) {
47173 for (var j=
0; j
<values.length; j++) {
47174 var card = values[j] + suits[i];
47175 if (!(card in dupeTracker)) {
47176 missingCards.push(card);
47180 // Display missing cards if six or less, ie clearly going for full deck
47181 if (missingCards.length
> 0 && missingCards.length <=
6) {
47182 var msg = missingCards.length +
" missing: " + missingCards.slice(
0,
3).join(
" ");
47183 if (missingCards.length
> 3) {
47186 cardDetail.push(msg);
47188 // Add card details to typeStr
47189 if (cardDetail.length
> 0) {
47190 typeStr +=
" (" + cardDetail.join(
", ") +
")";
47196 function setQrEvents(els) {
47197 els.on(
"mouseenter", createQr);
47198 els.on(
"mouseleave", destroyQr);
47199 els.on(
"click", toggleQr);
47202 function createQr(e) {
47203 var content = e.target.textContent || e.target.value;
47206 DOM.qrImage.qrcode({width: size, height: size, text: content});
47208 DOM.qrHider.addClass(
"hidden");
47211 DOM.qrHider.removeClass(
"hidden");
47213 DOM.qrContainer.removeClass(
"hidden");
47217 function destroyQr() {
47218 DOM.qrImage.text(
"");
47219 DOM.qrContainer.addClass(
"hidden");
47222 function toggleQr() {
47224 DOM.qrHider.toggleClass(
"hidden");
47225 DOM.qrHint.toggleClass(
"hidden");
47228 function bip44TabSelected() {
47229 return DOM.bip44tab.hasClass(
"active");
47232 function bip32TabSelected() {
47233 return DOM.bip32tab.hasClass(
"active");
47236 function networkHasBip49() {
47237 return networks[DOM.network.val()].bip49available;
47240 function bip49TabSelected() {
47241 return DOM.bip49tab.hasClass(
"active");
47244 function setHdCoin(coinValue) {
47245 DOM.bip44coin.val(coinValue);
47246 DOM.bip49coin.val(coinValue);
47249 function showBip49() {
47250 DOM.bip49unavailable.addClass(
"hidden");
47251 DOM.bip49available.removeClass(
"hidden");
47254 function hideBip49() {
47255 DOM.bip49available.addClass(
"hidden");
47256 DOM.bip49unavailable.removeClass(
"hidden");
47261 name:
"BCH - Bitcoin Cash",
47262 bip49available: false,
47263 onSelect: function() {
47264 network = bitcoinjs.bitcoin.networks.bitcoin;
47269 name:
"BTC - Bitcoin",
47270 bip49available: true,
47271 onSelect: function() {
47272 network = bitcoinjs.bitcoin.networks.bitcoin;
47277 name:
"BTC - Bitcoin Testnet",
47278 bip49available: true,
47279 onSelect: function() {
47280 network = bitcoinjs.bitcoin.networks.testnet;
47285 name:
"CLAM - Clams",
47286 bip49available: false,
47287 onSelect: function() {
47288 network = bitcoinjs.bitcoin.networks.clam;
47293 name:
"CRW - Crown",
47294 bip49available: false,
47295 onSelect: function() {
47296 network = bitcoinjs.bitcoin.networks.crown;
47301 name:
"DASH - Dash",
47302 bip49available: false,
47303 onSelect: function() {
47304 network = bitcoinjs.bitcoin.networks.dash;
47309 name:
"DASH - Dash Testnet",
47310 bip49available: false,
47311 onSelect: function() {
47312 network = bitcoinjs.bitcoin.networks.dashtn;
47317 name:
"DOGE - Dogecoin",
47318 bip49available: false,
47319 onSelect: function() {
47320 network = bitcoinjs.bitcoin.networks.dogecoin;
47325 name:
"ETH - Ethereum",
47326 bip49available: false,
47327 onSelect: function() {
47328 network = bitcoinjs.bitcoin.networks.bitcoin;
47333 name:
"GAME - GameCredits",
47334 bip49available: false,
47335 onSelect: function() {
47336 network = bitcoinjs.bitcoin.networks.game;
47341 name:
"JBS - Jumbucks",
47342 bip49available: false,
47343 onSelect: function() {
47344 network = bitcoinjs.bitcoin.networks.jumbucks;
47349 name:
"LTC - Litecoin",
47350 bip49available: false,
47351 onSelect: function() {
47352 network = bitcoinjs.bitcoin.networks.litecoin;
47357 name:
"NMC - Namecoin",
47358 bip49available: false,
47359 onSelect: function() {
47360 network = bitcoinjs.bitcoin.networks.namecoin;
47365 name:
"PIVX - PIVX",
47366 bip49available: false,
47367 onSelect: function() {
47368 network = bitcoinjs.bitcoin.networks.pivx;
47373 name:
"PIVX - PIVX Testnet",
47374 bip49available: false,
47375 onSelect: function() {
47376 network = bitcoinjs.bitcoin.networks.pivxtestnet;
47381 name:
"PPC - Peercoin",
47382 bip49available: false,
47383 onSelect: function() {
47384 network = bitcoinjs.bitcoin.networks.peercoin;
47389 name:
"SDC - ShadowCash",
47390 bip49available: false,
47391 onSelect: function() {
47392 network = bitcoinjs.bitcoin.networks.shadow;
47397 name:
"SDC - ShadowCash Testnet",
47398 bip49available: false,
47399 onSelect: function() {
47400 network = bitcoinjs.bitcoin.networks.shadowtn;
47405 name:
"SLM - Slimcoin",
47406 bip49available: false,
47407 onSelect: function() {
47408 network = bitcoinjs.bitcoin.networks.slimcoin;
47413 name:
"SLM - Slimcoin Testnet",
47414 bip49available: false,
47415 onSelect: function() {
47416 network = bitcoinjs.bitcoin.networks.slimcointn;
47421 name:
"VIA - Viacoin",
47422 bip49available: false,
47423 onSelect: function() {
47424 network = bitcoinjs.bitcoin.networks.viacoin;
47429 name:
"VIA - Viacoin Testnet",
47430 bip49available: false,
47431 onSelect: function() {
47432 network = bitcoinjs.bitcoin.networks.viacointestnet;
47437 name:
"XMY - Myriadcoin",
47438 bip49available: false,
47439 onSelect: function() {
47440 network = bitcoinjs.bitcoin.networks.myriadcoin;
47445 name:
"XRP - Ripple",
47446 bip49available: false,
47447 onSelect: function() {
47448 network = bitcoinjs.bitcoin.networks.bitcoin;
47456 name:
"Bitcoin Core",
47457 onSelect: function() {
47458 DOM.bip32path.val(
"m/0'/0'");
47459 DOM.hardenedAddresses.prop('checked', true);
47463 name:
"blockchain.info",
47464 onSelect: function() {
47465 DOM.bip32path.val(
"m/44'/0'/0'");
47466 DOM.hardenedAddresses.prop('checked', false);
47470 name:
"MultiBit HD",
47471 onSelect: function() {
47472 DOM.bip32path.val(
"m/0'/0");
47473 DOM.hardenedAddresses.prop('checked', false);