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.1
.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">
283 <li id=
"bip44-tab" class=
"active">
284 <a href=
"#bip44" role=
"tab" data-toggle=
"tab">BIP44
</a>
287 <a href=
"#bip32" role=
"tab" data-toggle=
"tab">BIP32
</a>
290 <div class=
"derivation-type tab-content">
291 <div id=
"bip44" class=
"tab-pane active">
292 <form class=
"form-horizontal" role=
"form">
294 <div class=
"col-sm-2"></div>
295 <div class=
"col-sm-10">
296 <p data-translate-html
>
297 For more info see the
298 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">BIP44 spec
</a>.
301 <div class=
"form-group">
302 <label for=
"purpose" class=
"col-sm-2 control-label">
303 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target=
"_blank" data-translate
>Purpose
</a>
305 <div class=
"col-sm-10">
306 <input id=
"purpose" type=
"text" class=
"purpose form-control" value=
"44">
309 <div class=
"form-group">
310 <label for=
"coin" class=
"col-sm-2 control-label">
311 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target=
"_blank" data-translate
>Coin
</a>
313 <div class=
"col-sm-10">
314 <input id=
"coin" type=
"text" class=
"coin form-control" value=
"0">
317 <div class=
"form-group">
318 <label for=
"account" class=
"col-sm-2 control-label">
319 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target=
"_blank" data-translate
>Account
</a>
321 <div class=
"col-sm-10">
322 <input id=
"account" type=
"text" class=
"account form-control" value=
"0">
325 <div class=
"form-group">
326 <label for=
"change" class=
"col-sm-2 control-label">
327 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target=
"_blank" data-translate
>External / Internal
</a>
329 <div class=
"col-sm-10">
330 <input id=
"change" type=
"text" class=
"change form-control" value=
"0">
333 <div class=
"form-group">
334 <label class=
"col-sm-2 control-label">
336 <div class=
"col-sm-10">
337 <p data-translate
>The account extended keys can be used for importing to most BIP44 compatible wallets, such as mycelium or electrum.
</p>
340 <div class=
"form-group">
341 <label for=
"account-xprv" class=
"col-sm-2 control-label">
342 <span data-translate
>Account Extended Private Key
</span>
344 <div class=
"col-sm-10">
345 <textarea id=
"account-xprv" type=
"text" class=
"account-xprv form-control" readonly data-show-qr
></textarea>
348 <div class=
"form-group">
349 <label for=
"account-xpub" class=
"col-sm-2 control-label">
350 <span data-translate
>Account Extended Public Key
</span>
352 <div class=
"col-sm-10">
353 <textarea id=
"account-xpub" type=
"text" class=
"account-xpub form-control" readonly data-show-qr
></textarea>
356 <div class=
"form-group">
357 <label class=
"col-sm-2 control-label">
359 <div class=
"col-sm-10">
360 <p data-translate
>The BIP32 derivation path and extended keys are the basis for the derived addresses.
</p>
363 <div class=
"form-group">
364 <label for=
"bip44-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
365 <div class=
"col-sm-10">
366 <input id=
"bip44-path" type=
"text" class=
"path form-control" value=
"m/44'/0'/0'/0" readonly=
"readonly">
371 <div id=
"bip32" class=
"tab-pane">
372 <form class=
"form-horizontal" role=
"form">
374 <div class=
"col-sm-2"></div>
375 <div class=
"col-sm-10">
377 For more info see the
378 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">BIP32 spec
</a>
381 <div class=
"form-group">
382 <label for=
"bip32-client" class=
"col-sm-2 control-label" data-translate
>Client
</label>
383 <div class=
"col-sm-10">
384 <select id=
"bip32-client" class=
"client form-control">
385 <option value=
"custom">Custom derivation path
</option>
386 <!-- populated by javascript -->
390 <div class=
"form-group">
391 <label for=
"bip32-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
392 <div class=
"col-sm-10">
393 <input id=
"bip32-path" type=
"text" class=
"path form-control" value=
"m/0">
396 <div class=
"form-group">
397 <div class=
"col-sm-2"></div>
398 <label class=
"col-sm-10">
399 <input class=
"hardened-addresses" type=
"checkbox">
400 <span data-translate
>Use hardened addresses
</span>
403 <div class=
"form-group">
404 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Bitcoin Core
</label>
405 <div class=
"col-sm-10">
406 <p class=
"form-control no-border" data-translate-html
>
407 Use path
<code>m/
0'/
0'
</code> with hardened addresses.
409 <p class=
"form-control no-border" data-translate-html
>
410 For more info see the
411 <a href=
"https://github.com/bitcoin/bitcoin/pull/8035" target=
"_blank">Bitcoin Core BIP32 implementation
</a>
415 <div class=
"form-group">
416 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Multibit
</label>
417 <div class=
"col-sm-10">
418 <p class=
"form-control no-border">
419 <span data-translate-html
>Use path
<code>m/
0'/
0</code>.
</span>
421 <p class=
"form-control no-border">
422 <span data-translate
>For more info see
</span>
423 <a href=
"https://multibit.org/" target=
"_blank">MultiBit HD
</a>
427 <div class=
"form-group">
428 <label class=
"col-sm-2 control-label" data-translate
>Block Explorers
</label>
429 <div class=
"col-sm-10">
430 <p class=
"form-control no-border">
431 <span data-translate-html
>Use path
<code>m/
44'/
0'/
0'
</code>.
</span>
432 <span data-translate-html
>Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.
</span>
434 <p class=
"form-control no-border">
435 <span data-translate
>Can be used with
</span>:
436 <a href=
"https://blockchain.info/" target=
"_blank">blockchain.info
</a>
443 <form class=
"form-horizontal" role=
"form">
444 <div class=
"form-group">
445 <label for=
"extended-priv-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Private Key
</label>
446 <div class=
"col-sm-10">
447 <textarea id=
"extended-priv-key" class=
"extended-priv-key form-control" readonly=
"readonly" data-show-qr
></textarea>
450 <div class=
"form-group">
451 <label for=
"extended-pub-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Public Key
</label>
452 <div class=
"col-sm-10">
453 <textarea id=
"extended-pub-key" class=
"extended-pub-key form-control" readonly=
"readonly" data-show-qr
></textarea>
463 <div class=
"col-md-12">
464 <h2>Derived Addresses
</h2>
465 <p data-translate
>Note these addreses are derived from the BIP32 Extended Key
</p>
466 <table class=
"table table-striped">
469 <div class=
"input-group">
470 <span data-translate
>Path
</span>
471 <button class=
"index-toggle" data-translate
>Toggle
</button>
475 <div class=
"input-group">
476 <span data-translate
>Address
</span>
477 <button class=
"address-toggle" data-translate
>Toggle
</button>
481 <div class=
"input-group">
482 <span data-translate
>Public Key
</span>
483 <button class=
"public-key-toggle" data-translate
>Toggle
</button>
487 <div class=
"input-group">
488 <span data-translate
>Private Key
</span>
489 <button class=
"private-key-toggle" data-translate
>Toggle
</button>
493 <tbody class=
"addresses monospace">
494 <tr><td> </td><td> </td><td> </td><td> </td></tr>
495 <tr><td> </td><td> </td><td> </td><td> </td></tr>
496 <tr><td> </td><td> </td><td> </td><td> </td></tr>
497 <tr><td> </td><td> </td><td> </td><td> </td></tr>
498 <tr><td> </td><td> </td><td> </td><td> </td></tr>
503 <span data-translate
>Show more rows
</span>:
504 <input type=
"number" class=
"rows-to-add" value=
"20">
505 <button class=
"more" data-translate
>Show
</button>
510 <div class=
"col-md-12">
511 <h2 data-translate
>More info
</h2>
512 <h3>BIP39
<span class=
"small" data-translate
>Mnemonic code for generating deterministic keys
</span></h3>
513 <p data-translate-html
>
515 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki">official BIP39 spec
</a>
517 <h3>BIP32
<span class=
"small" data-translate
>Hierarchical Deterministic Wallets
</span></h3>
518 <p data-translate-html
>
520 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">official BIP32 spec
</a>
522 <p data-translate-html
>
524 <a href=
"http://bip32.org/" target=
"_blank">bip32.org
</a>
526 <h3>BIP44
<span class=
"small" data-translate
>Multi-Account Hierarchy for Deterministic Wallets
</span></h3>
527 <p data-translate-html
>
529 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">official BIP44 spec
</a>
531 <h3 data-translate
>Private Keys
</h3>
533 <span data-translate-html
>
535 <a href=
"https://web.archive.org/web/20150707020924/https://brainwallet.org/" target=
"_blank">brainwallet.org
</a>.
537 <span data-translate
>Be careful - it can be easy to make mistakes if you don't know what you're doing.
</span>
539 <h3 id=
"entropy-notes" data-translate
>Entropy
</h3>
541 <span data-translate-html
>
542 Entropy values must be sourced from a
543 <a href=
"https://en.wikipedia.org/wiki/Random_number_generation" target=
"_blank">strong source of randomness
</a>.
545 <span data-translate
>This means flipping a fair coin, rolling a fair dice, noise measurements etc.
</span>
546 <span data-translate-html
>
547 Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address,
548 keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't
549 random enough for the needs of this tool.
553 <strong><span data-translate
>Do not store entropy.
</span></strong>
556 <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>
557 <span data-translate
>Instead of storing entropy, store the mnemonic generated from the entropy.
</span>
558 <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>
561 <span data-translate-html
>
562 The random mnemonic generator on this page uses a
563 <a href=
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target=
"_blank">cryptographically secure random number generator
</a>.
565 <span data-translate
>The built in random generator can generally be trusted more than your own intuition about randomness.
</span>
566 <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>
567 <span data-translate
>In that case you might choose to use your own source of entropy.
</span>
570 <a href=
"https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target=
"_blank" data-translate
>You are not a good source of entropy.
</a>
572 <h3 data-translate
>License
</h3>
574 <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.
577 <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>
584 <div class=
"col-md-12">
586 <h2 data-translate
>Offline Usage
</h2>
589 You can use this tool without having to be online.
592 In your browser, select file save-as, and save this page
596 Double-click that file to open it in a browser
597 on any offline computer.
600 <span data-translate
>Alternatively, download the file from the repository
</span>
602 <a href=
"https://github.com/iancoleman/bip39">https://github.com/iancoleman/bip39
</a>
611 <div class=
"col-md-12">
613 <h2 data-translate
>This project is
100% open-source code
</h2>
616 <span data-translate
>Get the source code from the repository
</span>
618 <a href=
"https://github.com/iancoleman/bip39" target=
"_blank">
619 https://github.com/iancoleman/bip39
623 <h3 data-translate
>Libraries
</h3>
626 <span>BitcoinJS -
</span>
627 <a href=
"https://github.com/bitcoinjs/bitcoinjs-lib" target=
"_blank">
628 https://github.com/bitcoinjs/bitcoinjs-lib
633 <span>jsBIP39 -
</span>
634 <a href=
"https://github.com/iancoleman/jsbip39" target=
"_blank">
635 https://github.com/iancoleman/jsbip39
641 <a href=
"https://github.com/bitwiseshiftleft/sjcl" target=
"_blank">
642 https://github.com/bitwiseshiftleft/sjcl
647 <span>jQuery -
</span>
648 <a href=
"https://jquery.com/" target=
"_blank">
654 <span>Twitter Bootstrap -
</span>
655 <a href=
"http://getbootstrap.com/" target=
"_blank">
656 http://getbootstrap.com/
665 <div class=
"qr-container hidden">
666 <div class=
"qr-hint bg-primary hidden" data-translate
>Click field to hide QR
</div>
667 <div class=
"qr-hint bg-primary" data-translate
>Click field to show QR
</div>
668 <div class=
"qr-hider hidden">
669 <div class=
"qr-image"></div>
670 <div class=
"qr-warning bg-primary" data-translate
>Caution: Scanner may keep history
</div>
674 <div class=
"feedback-container">
675 <div class=
"feedback">Loading...
</div>
678 <script type=
"text/template" id=
"address-row-template">
680 <td class=
"index"><span></span></td>
681 <td class=
"address"><span data-show-qr
></span></td>
682 <td class=
"pubkey"><span data-show-qr
></span></td>
683 <td class=
"privkey"><span data-show-qr
></span></td>
687 // https://raw.githubusercontent.com/inexorabletash/polyfill/a6bc6ced78160c994f76a909b6ff6bbbab3d43de/es6.js
688 // Required for ethereumjs-utils.js when run in phantomjs-
2.1.1
689 // but is not required in any modern browsers.
690 // For more information, see
691 // https://www.bountysource.com/issues/
38485709-error-rendering-plot-with-phantomjs
693 //----------------------------------------------------------------------
695 // ECMAScript
2015 Polyfills
697 //----------------------------------------------------------------------
702 // Set this to always override native implementations, for testing
703 // the polyfill in browsers with partial/full ES2015 support.
704 var OVERRIDE_NATIVE_FOR_TESTING = false;
706 var undefined = (void
0); // Paranoia
711 return o === global ? undefined : o;
714 function hook(o, p, f) {
716 console.assert(typeof op === 'function', 'Hooking a non-function');
718 var o = strict(this);
719 var r = f.apply(o, arguments);
720 return r !== undefined ? r : op.apply(o, arguments);
724 function isSymbol(s) {
725 return (typeof s === 'symbol') || ('Symbol' in global && s instanceof global.Symbol);
728 function getPropertyDescriptor(target, name) {
729 var desc = Object.getOwnPropertyDescriptor(target, name);
730 var proto = Object.getPrototypeOf(target);
731 while (!desc && proto) {
732 desc = Object.getOwnPropertyDescriptor(proto, name);
733 proto = Object.getPrototypeOf(proto);
738 var enqueue = (function(nativePromise, nativeSetImmediate) {
740 return function(job) { nativePromise.resolve().then(function() { job(); }); };
741 if (nativeSetImmediate)
742 return function(job) { nativeSetImmediate(job); };
743 return function(job) { setTimeout(job,
0); };
744 }(global['Promise'], global['setImmediate']));
746 function define(o, p, v, override) {
747 if (p in o && !override && !OVERRIDE_NATIVE_FOR_TESTING)
750 if (typeof v === 'function') {
751 // Sanity check that functions are appropriately named (where possible)
752 console.assert(isSymbol(p) || !('name' in v) || v.name === p || v.name === p + '_', 'Expected function name "' + p.toString() + '", was "' + v.name + '"');
753 Object.defineProperty(o, p, {
760 Object.defineProperty(o, p, {
769 function set_internal(o, p, v) {
770 Object.defineProperty(o, p, {
778 // Snapshot intrinsic functions
779 var $isNaN = global.isNaN,
780 $parseInt = global.parseInt,
781 $parseFloat = global.parseFloat;
784 LOG10E = Math.LOG10E,
794 random = Math.random,
797 var orig_match = String.prototype.match,
798 orig_replace = String.prototype.replace,
799 orig_search = String.prototype.search,
800 orig_split = String.prototype.split;
802 // These are used for implementing the polyfills, but not exported.
804 // Inspired by https://gist.github.com/
1638059
806 function EphemeronTable() {
807 var secretKey = ObjectCreate(null);
809 function conceal(o) {
810 var oValueOf = o.valueOf, secrets = ObjectCreate(null);
811 Object.defineProperty(o, 'valueOf', {
812 value: (function(secretKey) {
813 return function (k) {
814 return (k === secretKey) ? secrets : oValueOf.apply(o, arguments);
825 var v = typeof o.valueOf === 'function' && o.valueOf(secretKey);
826 return v === o ? null : v;
831 secretKey = ObjectCreate(null);
833 remove: function(key) {
834 var secrets = reveal(key);
835 if (secrets && HasOwnProperty(secrets, 'value')) {
836 delete secrets.value;
841 get: function(key, defaultValue) {
842 var secrets = reveal(key);
843 return (secrets && HasOwnProperty(secrets, 'value')) ? secrets.value : defaultValue;
846 var secrets = reveal(key);
847 return Boolean(secrets && HasOwnProperty(secrets, 'value'));
849 set: function(key, value) {
850 var secrets = reveal(key) || conceal(key);
851 secrets.value = value;
856 var empty = Object.create(null);
858 //----------------------------------------------------------------------
861 // http://www.ecma-international.org/ecma-
262/
6.0/
863 //----------------------------------------------------------------------
865 // ---------------------------------------
866 //
19.4 Symbol Objects
867 // ---------------------------------------
869 // NOTE: Symbols are defined here - out of spec order - since we need the
870 // properties and prototype to be populated for other polyfills.
872 // NOTE: Not secure, nor is obj[$$symbol] hidden from Object.keys()
876 var secret = Object.create(null);
878 symbolForKey = function(k) {
882 var GlobalSymbolRegistry = [];
884 function unique(bits) {
885 return Array(bits +
1).join('x').replace(/x/g, function() {
886 return random() <
0.5 ? '\u200C' : '\u200D'; // JWNJ / ZWJ
890 //
19.4.1 The Symbol Constructor
891 //
19.4.1.1 Symbol ( description=undefined )
892 function Symbol(description) {
893 if (!(this instanceof Symbol)) return new Symbol(description, secret);
894 if (this instanceof Symbol && arguments[
1] !== secret) throw TypeError();
896 var descString = description === undefined ? undefined : String(description);
898 set_internal(this, '[[SymbolData]]', unique(
128));
899 set_internal(this, '[[Description]]', descString);
901 symbolMap[this] = this;
905 if (!('Symbol' in global) || OVERRIDE_NATIVE_FOR_TESTING)
906 global.Symbol = Symbol;
908 //
19.4.2 Properties of the Symbol Constructor
910 //
19.4.2.1 Symbol.for (key)
911 define(Symbol, 'for', function for_(key) {
912 var stringKey = String(key);
913 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
914 var e = GlobalSymbolRegistry[i];
915 if (SameValue(e['[[key]]'], stringKey)) return e['[[symbol]]'];
917 var newSymbol = Symbol(key);
918 GlobalSymbolRegistry.push({'[[key]]': stringKey, '[[symbol]]': newSymbol});
922 //
19.4.2.2 Symbol.hasInstance
923 //
19.4.2.3 Symbol.isConcatSpreadable
925 //
19.4.2.4 Symbol.iterator
926 define(global.Symbol, 'iterator', global.Symbol('Symbol.iterator'));
928 //
19.4.2.5 Symbol.keyFor (sym)
929 define(Symbol, 'keyFor', function keyFor(sym) {
930 if (!(sym instanceof Symbol)) throw TypeError();
931 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
932 var e = GlobalSymbolRegistry[i];
933 if (SameValue(e['[[symbol]]'], sym)) return e['[[key]]'];
938 //
19.4.2.6 Symbol.match
939 define(global.Symbol, 'match', global.Symbol('Symbol.match'));
941 //
19.4.2.7 Symbol.prototype
943 //
19.4.2.8 Symbol.replace
944 define(global.Symbol, 'replace', global.Symbol('Symbol.replace'));
946 //
19.4.2.9 Symbol.search
947 define(global.Symbol, 'search', global.Symbol('Symbol.search'));
949 //
19.4.2.10 Symbol.species
951 //
19.4.2.11 Symbol.search
952 define(global.Symbol, 'split', global.Symbol('Symbol.split'));
954 //
19.4.2.12 Symbol.toPrimitive
956 //
19.4.2.13 Symbol.toStringTag
957 define(global.Symbol, 'toStringTag', global.Symbol('Symbol.toStringTag'));
959 //
19.4.2.14 Symbol.unscopables
961 //
19.4.3 Properties of the Symbol Prototype Object
962 //
19.4.3.1 Symbol.prototype.constructor
964 //
19.4.3.2 Symbol.prototype.toString ( )
965 Object.defineProperty(Symbol.prototype, 'toString', {
966 value: function toString() {
967 var s = strict(this);
968 var desc = s['[[Description]]'];
969 return 'Symbol(' + (desc === undefined ? '' : desc) + s['[[SymbolData]]'] + ')';
971 configurable: true, writeable: true, enumerable: false });
973 //
19.4.3.3 Symbol.prototype.valueOf ( )
974 Object.defineProperty(Symbol.prototype, 'valueOf', {
975 value: function valueOf() {
976 // To prevent automatic string conversion:
979 // Spec has approximately the following:
980 //var s = strict(this);
981 //if (Type(s) === 'symbol') return s;
982 //if (Type(s) !== 'object') throw TypeError();
983 //if (!('[[SymbolData]]' in s)) throw TypeError();
984 //return s['[[SymbolData]]'];
986 configurable: true, writeable: true, enumerable: false });
988 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
989 // (Done later to polyfill partial implementations)
991 //
19.4.4 Properties of Symbol Instances
994 console.assert(typeof global.Symbol() === 'symbol' || symbolForKey(String(global.Symbol('x'))));
996 // Defined here so that other prototypes can reference it
997 //
25.1.2 The %IteratorPrototype% Object
998 var $IteratorPrototype$ = {};
1000 //----------------------------------------
1001 //
6 ECMAScript Data Types and Values
1002 //----------------------------------------
1004 //
6.1 ECMAScript Language Types
1006 // "Type(x)" is used as shorthand for "the type of x"...
1009 case 'undefined': return 'undefined';
1010 case 'boolean': return 'boolean';
1011 case 'number': return 'number';
1012 case 'string': return 'string';
1013 case 'symbol': return 'symbol';
1015 if (v === null) return 'null';
1016 if (v instanceof global.Symbol) return 'symbol';
1021 //
6.1.5.1 Well-Known Symbols
1022 var $$iterator = global.Symbol.iterator,
1023 $$match = global.Symbol.match,
1024 $$replace = global.Symbol.replace,
1025 $$search = global.Symbol.search,
1026 $$split = global.Symbol.split,
1027 $$toStringTag = global.Symbol.toStringTag;
1029 //----------------------------------------
1030 //
7 Abstract Operations
1031 //----------------------------------------
1033 //----------------------------------------
1034 //
7.1 Type Conversion
1035 //----------------------------------------
1037 //
7.1.1 ToPrimitive ( input [, PreferredType] )
1038 // just use valueOf()
1040 //
7.1.2 ToBoolean ( argument )
1041 // just use Boolean()
1043 //
7.1.3 ToNumber ( argument )
1044 // just use Number()
1046 //
7.1.4 ToInteger ( argument )
1047 function ToInteger(n) {
1049 if ($isNaN(n)) return
0;
1050 if (n ===
0 || n === Infinity || n === -Infinity) return n;
1051 return ((n <
0) ? -
1 :
1) * floor(abs(n));
1054 //
7.1.5 ToInt32 ( argument )
1055 function ToInt32(v) { return v
>> 0; }
1057 //
7.1.6 ToUint32 ( argument )
1058 function ToUint32(v) { return v
>>> 0; }
1060 //
7.1.7 ToInt16 ( argument )
1061 function ToInt16(v) { return (v <<
16)
>> 16; }
1063 //
7.1.8 ToUint16 ( argument )
1064 function ToUint16(v) { return v &
0xFFFF; }
1066 //
7.1.9 ToInt8 ( argument )
1067 function ToInt8(v) { return (v <<
24)
>> 24; }
1069 //
7.1.10 ToUint8 ( argument )
1070 function ToUint8(v) { return v &
0xFF; }
1072 //
7.1.11 ToUint8Clamp ( argument )
1073 function ToUint8Clamp(argument) {
1074 var number = Number(argument);
1075 if ($isNaN(number)) return
0;
1076 if (number <=
0) return
0;
1077 if (number
>=
255) return
255;
1078 var f = floor(number);
1079 if ((f +
0.5) < number) return f +
1;
1080 if (number < (f +
0.5)) return f;
1081 if (f %
2) return f +
1;
1085 //
7.1.12 ToString ( argument )
1086 // just use String()
1088 //
7.1.13 ToObject ( argument )
1089 function ToObject(v) {
1090 if (v === null || v === undefined) throw TypeError();
1094 //
7.1.14 ToPropertyKey ( argument )
1095 function ToPropertyKey(v) {
1099 //
7.1.15 ToLength ( argument )
1100 function ToLength(v) {
1101 var len = ToInteger(v);
1102 if (len <=
0) return
0;
1103 if (len === Infinity) return
0x20000000000000 -
1; //
2^
53-
1
1104 return min(len,
0x20000000000000 -
1); //
2^
53-
1
1107 //
7.1.16 CanonicalNumericIndexString ( argument )
1109 //----------------------------------------
1110 //
7.2 Testing and Comparison Operations
1111 //----------------------------------------
1113 //
7.2.1 RequireObjectCoercible ( argument )
1114 //
7.2.2 IsArray ( argument )
1116 //
7.2.3 IsCallable ( argument )
1117 function IsCallable(o) { return typeof o === 'function'; }
1119 //
7.2.4 IsConstructor ( argument )
1120 function IsConstructor(o) {
1121 // Hacks for Safari
7 TypedArray XXXConstructor objects
1122 if (/Constructor/.test(Object.prototype.toString.call(o))) return true;
1123 if (/Function/.test(Object.prototype.toString.call(o))) return true;
1124 // TODO: Can this be improved on?
1125 return typeof o === 'function';
1128 //
7.2.5 IsExtensible (O)
1129 //
7.2.6 IsInteger ( argument )
1131 //
7.2.7 IsPropertyKey ( argument )
1132 function IsPropertyKey(argument) {
1133 if (Type(argument) === 'string') return true;
1134 if (Type(argument) === 'symbol') return true;
1138 //
7.2.8 IsRegExp ( argument )
1139 //
7.2.5 IsConstructor ( argument )
1141 //
7.2.9 SameValue(x, y)
1142 function SameValue(x, y) {
1143 if (typeof x !== typeof y) return false;
1148 if (x !== x && y !== y) return true;
1149 if (x ===
0 && y ===
0) return
1/x ===
1/y;
1159 //
7.2.10 SameValueZero(x, y)
1160 function SameValueZero(x, y) {
1161 if (typeof x !== typeof y) return false;
1166 if (x !== x && y !== y) return true;
1176 //----------------------------------------
1177 //
7.3 Operations on Objects
1178 //----------------------------------------
1181 // - just use o.p or o[p]
1183 //
7.3.2 GetV (V, P)
1184 function GetV(v, p) {
1185 var o = ToObject(v);
1189 //
7.3.3 Set (O, P, V, Throw)
1190 // - just use o.p = v or o[p] = v
1195 //
7.3.9 GetMethod (O, P)
1196 function GetMethod(o, p) {
1197 var func = GetV(o, p);
1198 if (func === undefined || func === null) return undefined;
1199 if (!IsCallable(func)) throw TypeError();
1203 //
7.3.10 HasProperty (O, P)
1204 function HasProperty(o, p) {
1206 if (Object.prototype.hasOwnProperty.call(o, p)) return true;
1207 if (Type(o) !== 'object') return false;
1208 o = Object.getPrototypeOf(o);
1213 //
7.3.11 HasOwnProperty (O, P)
1214 function HasOwnProperty(o, p) {
1215 return Object.prototype.hasOwnProperty.call(o, p);
1218 //----------------------------------------
1219 //
7.4 Operations on Iterator Objects
1220 //----------------------------------------
1222 //
7.4.1 GetIterator ( obj, method )
1223 function GetIterator(obj, method) {
1224 if (arguments.length <
2)
1225 method = GetMethod(obj, $$iterator);
1226 var iterator = method.call(obj);
1227 if (Type(iterator) !== 'object') throw TypeError();
1231 //
7.4.2 IteratorNext ( iterator, value )
1232 function IteratorNext(iterator, value) {
1233 if (arguments.length <
2)
1234 var result = iterator.next();
1236 result = iterator.next(value);
1237 if (Type(result) !== 'object') throw TypeError();
1241 //
7.4.3 IteratorComplete ( iterResult )
1242 function IteratorComplete(iterResult) {
1243 console.assert(Type(iterResult) === 'object');
1244 return Boolean(iterResult.done);
1247 //
7.4.4 IteratorValue ( iterResult )
1248 function IteratorValue(iterResult) {
1249 console.assert(Type(iterResult) === 'object');
1250 return iterResult.value;
1253 //
7.4.5 IteratorStep ( iterator )
1254 function IteratorStep( iterator, value ) {
1255 var result = IteratorNext(iterator, value);
1256 var done = result['done'];
1257 if (Boolean(done) === true) return false;
1261 //
7.4.6 IteratorClose( iterator, completion )
1262 function IteratorClose( iterator, completion ) {
1263 console.assert(Type(iterator) === 'object');
1264 var _return = GetMethod(iterator, 'return');
1265 if (_return === undefined) return completion;
1267 var innerResult = _return[iterator]();
1269 // TODO: If completion.[[type]] is throw, return completion
1272 if (Type(innerResult) !== 'object') throw TypeError();
1276 //
7.4.7 CreateIterResultObject (value, done)
1277 function CreateIterResultObject(value, done) {
1278 console.assert(Type(done) === 'boolean');
1280 obj["value"] = value;
1285 //
7.4.8 CreateListIterator (list)
1286 //
7.4.8.1 ListIterator next( )
1287 //
7.4.9 CreateCompoundIterator ( iterator1, iterator2 )
1288 //
7.4.9.1 CompoundIterator next( )
1290 //----------------------------------------
1291 //
8 Executable Code and Execution Contexts
1292 //----------------------------------------
1294 //----------------------------------------
1295 //
8.4 Jobs and Job Queues
1296 //----------------------------------------
1298 //
8.4.1 EnqueueJob ( queueName, job, arguments)
1299 function EnqueueJob(queueName, job, args) {
1300 var fn = function() { job.apply(undefined, args); };
1304 //
8.4.2 NextJob result
1305 function NextJob(result) {
1309 //----------------------------------------
1310 //
9 Ordinary and Exotic Objects Behaviors
1311 //----------------------------------------
1313 //
9.1.11 [[Enumerate]] ()
1314 function Enumerate(obj) {
1316 if (Object(obj) !== obj) return e;
1317 var visited = new Set;
1318 while (obj !== null) {
1319 Object.getOwnPropertyNames(obj).forEach(function(name) {
1320 if (!visited.has(name)) {
1321 var desc = Object.getOwnPropertyDescriptor(obj, name);
1324 if (desc.enumerable) e.push(name);
1328 obj = Object.getPrototypeOf(obj);
1330 return e[$$iterator]();
1333 //
9.1.12 [[OwnPropertyKeys]] ( )
1334 function OwnPropertyKeys(o) {
1335 return Object.getOwnPropertyNames(o);
1338 //
9.1.13 ObjectCreate(proto, internalSlotsList)
1339 function ObjectCreate(proto, internalSlotsList) {
1340 return Object.create(proto, internalSlotsList);
1343 // ---------------------------------------
1344 //
19 Fundamental Objects
1345 // ---------------------------------------
1347 // ---------------------------------------
1348 //
19.1 Object Objects
1349 // ---------------------------------------
1351 //
19.1.1 The Object Constructor
1352 //
19.1.1.1 Object ( [ value ] )
1353 //
19.1.2 Properties of the Object Constructor
1354 //
19.1.2.1 Object.assign ( target, ...sources )
1357 function assign(target, /*...*/sources) {
1358 var to = ToObject(target);
1359 if (arguments.length <
2) return to;
1361 var sourcesIndex =
1;
1362 while (sourcesIndex < arguments.length) {
1363 var nextSource = arguments[sourcesIndex++];
1364 if (nextSource === undefined || nextSource === null) {
1367 var from = ToObject(nextSource);
1368 keys = OwnPropertyKeys(from);
1370 for (var keysIndex =
0; keysIndex < keys.length; ++keysIndex) {
1371 var nextKey = keys[keysIndex];
1372 var desc = Object.getOwnPropertyDescriptor(from, nextKey);
1373 if (desc !== undefined && desc.enumerable) {
1374 var propValue = from[nextKey];
1375 to[nextKey] = propValue;
1382 //
19.1.2.2 Object.create ( O [ , Properties ] )
1383 //
19.1.2.3 Object.defineProperties ( O, Properties )
1384 //
19.1.2.4 Object.defineProperty ( O, P, Attributes )
1385 //
19.1.2.5 Object.freeze ( O )
1386 //
19.1.2.6 Object.getOwnPropertyDescriptor ( O, P )
1389 var nativeSymbols = (typeof global.Symbol() === 'symbol'),
1390 $getOwnPropertyNames = Object.getOwnPropertyNames,
1391 $keys = Object.keys,
1392 $window_names = (typeof window === 'object' ? $getOwnPropertyNames(window) : []);
1394 function isStringKey(k) { return !symbolForKey(k); }
1396 //
19.1.2.7 Object.getOwnPropertyNames ( O )
1398 Object, 'getOwnPropertyNames',
1399 function getOwnPropertyNames(o) {
1400 if (Object.prototype.toString.call(o) === '[object Window]') {
1401 // Workaround for cross-realm calling by IE itself.
1402 // https://github.com/inexorabletash/polyfill/issues/
96
1404 return $getOwnPropertyNames(o).filter(isStringKey);
1406 return $window_names.slice();
1409 return $getOwnPropertyNames(o).filter(isStringKey);
1412 //
19.1.2.8 Object.getOwnPropertySymbols ( O )
1414 Object, 'getOwnPropertySymbols',
1415 function getOwnPropertySymbols(o) {
1416 return $getOwnPropertyNames(o).filter(symbolForKey).map(symbolForKey);
1419 //
19.1.2.14 Object.keys ( O )
1423 return $keys(o).filter(isStringKey);
1427 //
19.1.2.9 Object.getPrototypeOf ( O )
1428 //
19.1.2.10 Object.is ( value1, value2 )
1431 function is(value1, value2) {
1432 return SameValue(value1, value2);
1435 //
19.1.2.11 Object.isExtensible ( O )
1436 //
19.1.2.12 Object.isFrozen ( O )
1437 //
19.1.2.13 Object.isSealed ( O )
1439 //
19.1.2.14 Object.keys ( O )
1442 //
19.1.2.15 Object.preventExtensions ( O )
1443 //
19.1.2.16 Object.prototype
1444 //
19.1.2.17 Object.seal ( O )
1446 //
19.1.2.18 Object.setPrototypeOf ( O, proto )
1448 Object, 'setPrototypeOf',
1449 function setPrototypeOf(o, proto) {
1450 if (Type(o) !== 'object') throw TypeError();
1451 if (Type(proto) !== 'object' && Type(proto) !== 'null') throw TypeError();
1452 o.__proto__ = proto;
1457 //
19.1.3 Properties of the Object Prototype Object
1458 //
19.1.3.1 Object.prototype.constructor
1459 //
19.1.3.2 Object.prototype.hasOwnProperty ( V )
1460 //
19.1.3.3 Object.prototype.isPrototypeOf ( V )
1461 //
19.1.3.4 Object.prototype.propertyIsEnumerable ( V )
1462 //
19.1.3.5 Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1463 //
19.1.3.6 Object.prototype.toString ( )
1464 hook(Object.prototype, 'toString',
1466 var o = strict(this);
1467 if (o === Object(o) && $$toStringTag in o) {
1468 return '[object ' + o[$$toStringTag] + ']';
1473 //
19.1.3.7 Object.prototype.valueOf ( )
1474 //
19.1.4 Properties of Object Instances
1476 // ---------------------------------------
1477 //
19.2 Function Objects
1478 // ---------------------------------------
1480 //
19.2.1 The Function Constructor
1481 //
19.2.1.1 Function ( p1, p2, … , pn, body )
1482 //
19.2.2 Properties of the Function Constructor
1483 //
19.2.2.1 Function.length
1484 //
19.2.2.2 Function.prototype
1485 //
19.2.3 Properties of the Function Prototype Object
1486 //
19.2.3.1 Function.prototype.apply ( thisArg, argArray )
1487 //
19.2.3.2 Function.prototype.bind ( thisArg , ...args)
1488 //
19.2.3.3 Function.prototype.call (thisArg , ...args)
1489 //
19.2.3.4 Function.prototype.constructor
1490 //
19.2.3.5 Function.prototype.toString ( )
1491 //
19.2.3.6 Function.prototype[@@hasInstance] ( V )
1492 //
19.2.4 Function Instances
1495 //
19.2.4.3 prototype
1497 // (No polyfillable changes from ES5)
1499 // ---------------------------------------
1500 //
19.3 Boolean Objects
1501 // ---------------------------------------
1503 //
19.3.1 The Boolean Constructor
1504 //
19.3.1.1 Boolean ( value )
1505 //
19.3.2 Properties of the Boolean Constructor
1506 //
19.3.2.1 Boolean.prototype
1507 //
19.3.3 Properties of the Boolean Prototype Object
1508 //
19.3.3.1 Boolean.prototype.constructor
1509 //
19.3.3.2 Boolean.prototype.toString ( )
1510 //
19.3.3.3 Boolean.prototype.valueOf ( )
1511 //
19.3.4 Properties of Boolean Instances
1513 // (No polyfillable changes from ES5)
1515 // ---------------------------------------
1516 //
19.4 Symbol Objects
1517 // ---------------------------------------
1519 // Moved earlier in this script, so that other polyfills can depend on them.
1521 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1522 define(global.Symbol.prototype, global.Symbol.toStringTag, 'Symbol');
1524 // ---------------------------------------
1525 //
19.5 Error Objects
1526 // ---------------------------------------
1528 //
19.5.1 The Error Constructor
1529 //
19.5.1.1 Error ( message )
1530 //
19.5.1.2 new Error( ...argumentsList )
1531 //
19.5.2 Properties of the Error Constructor
1532 //
19.5.2.1 Error.prototype
1533 //
19.5.3 Properties of the Error Prototype Object
1534 //
19.5.3.1 Error.prototype.constructor
1535 //
19.5.3.2 Error.prototype.message
1536 //
19.5.3.3 Error.prototype.name
1537 //
19.5.3.4 Error.prototype.toString ( )
1538 //
19.5.4 Properties of Error Instances
1539 //
19.5.5 Native Error Types Used in This Standard
1540 //
19.5.5.1 EvalError
1541 //
19.5.5.2 RangeError
1542 //
19.5.5.3 ReferenceError
1543 //
19.5.5.4 SyntaxError
1544 //
19.5.5.5 TypeError
1545 //
19.5.5.6 URIError
1546 //
19.5.6 NativeError Object Structure
1547 //
19.5.6.1 NativeError Constructors
1548 //
19.5.6.1.1 NativeError ( message )
1549 //
19.5.6.1.2 new NativeError ( ...argumentsList )
1550 //
19.5.6.2 Properties of the NativeError Constructors
1551 //
19.5.6.2.1 NativeError.prototype
1552 //
19.5.6.3 Properties of the NativeError Prototype Objects
1553 //
19.5.6.4 Properties of NativeError Instances
1555 // (No polyfillable changes from ES5)
1557 // ---------------------------------------
1558 //
20 Numbers and Dates
1559 // ---------------------------------------
1561 // ---------------------------------------
1562 //
20.1 Number Objects
1563 // ---------------------------------------
1565 //
20.1.1 The Number Constructor
1566 //
20.1.1.1 Number ( [ value ] )
1567 //
20.1.1.2 new Number ( ...argumentsList )
1568 //
20.1.2 Properties of the Number Constructor
1570 //
20.1.2.1 Number.EPSILON
1575 for (next =
1;
1 + next !==
1; next = next /
2)
1580 //
20.1.2.2 Number.isFinite ( number )
1583 function isFinite(number) {
1584 if (Type(number) !== 'number') return false;
1585 if (number !== number || number === +Infinity || number === -Infinity) return false;
1589 //
20.1.2.3 Number.isInteger ( number )
1591 Number, 'isInteger',
1592 function isInteger(number) {
1593 if (Type(number) !== 'number') return false;
1594 if (number !== number || number === +Infinity || number === -Infinity) return false;
1595 var integer = ToInteger(number);
1596 if (integer !== number) return false;
1600 //
20.1.2.4 Number.isNaN ( number )
1603 function isNaN(number) {
1604 if (Type(number) !== 'number') return false;
1605 if (number !== number) return true;
1609 //
20.1.2.5 Number.isSafeInteger ( number )
1611 Number, 'isSafeInteger',
1612 function isSafeInteger(number) {
1613 if (Type(number) !== 'number') return false;
1614 if (number !== number || number === +Infinity || number === -Infinity) return false;
1615 var integer = ToInteger(number);
1616 if (integer !== number) return false;
1617 if (abs(integer) <= (
0x20000000000000 -
1)) //
2^
53-
1
1622 //
20.1.2.6 Number.MAX_SAFE_INTEGER
1624 Number, 'MAX_SAFE_INTEGER',
1625 9007199254740991); //
2^
53-
1
1627 //
20.1.2.7 Number.MAX_VALUE
1629 //
20.1.2.8 Number.MIN_SAFE_INTEGER
1631 Number, 'MIN_SAFE_INTEGER',
1632 -
9007199254740991); // -
2^
53+
1
1634 //
20.1.2.9 Number.MIN_VALUE
1635 //
20.1.2.10 Number.NaN
1636 //
20.1.2.11 Number.NEGATIVE_INFINITY
1638 //
20.1.2.12 Number.parseFloat ( string )
1639 define(Number, 'parseFloat', $parseFloat);
1641 //
20.1.2.13 Number.parseInt ( string, radix )
1642 define(Number, 'parseInt', $parseInt);
1644 //
20.1.2.14 Number.POSITIVE_INFINITY
1645 //
20.1.2.15 Number.prototype
1647 //
20.1.3 Properties of the Number Prototype Object
1648 //
20.1.3.1 Number.prototype.constructor
1649 //
20.1.3.2 Number.prototype.toExponential ( fractionDigits )
1650 //
20.1.3.3 Number.prototype.toFixed ( fractionDigits )
1651 //
20.1.3.4 Number.prototype.toLocaleString( [ reserved1 [ , reserved2 ] ])
1652 //
20.1.3.5 Number.prototype.toPrecision ( precision )
1653 //
20.1.3.6 Number.prototype.toString ( [ radix ] )
1654 //
20.1.3.7 Number.prototype.valueOf ( )
1655 //
20.1.4 Properties of Number Instances
1657 // ---------------------------------------
1658 //
20.2 The Math Object
1659 // ---------------------------------------
1661 //
20.2.1 Value Properties of the Math Object
1663 //
20.2.1.2 Math.LN10
1664 //
20.2.1.3 Math.LN2
1665 //
20.2.1.4 Math.LOG10E
1666 //
20.2.1.5 Math.LOG2E
1668 //
20.2.1.7 Math.SQRT1_2
1669 //
20.2.1.8 Math.SQRT2
1671 //
20.2.1.9 Math [ @@toStringTag ]
1672 define(Math, $$toStringTag, 'Math');
1674 //
20.2.2 Function Properties of the Math Object
1675 //
20.2.2.1 Math.abs ( x )
1676 //
20.2.2.2 Math.acos ( x )
1678 //
20.2.2.3 Math.acosh(x)
1683 return log(x + sqrt(x * x -
1));
1686 //
20.2.2.4 Math.asin ( x )
1688 //
20.2.2.5 Math.asinh( x )
1693 if (SameValue(x, -
0)) {
1696 var s = sqrt(x * x +
1);
1697 return (s === -x) ? log(
0) : log(x + s);
1700 //
20.2.2.6 Math.atan ( x )
1702 //
20.2.2.7 Math.atanh( x )
1707 return (x ===
0) ? x : log((
1 + x) / (
1 - x)) /
2;
1710 //
20.2.2.8 Math.atan2 ( y, x )
1712 //
20.2.2.9 Math.cbrt ( x )
1720 var r = pow(abs(x),
1/
3);
1722 return r + (r * (t-r) / (
2*r + t));
1725 //
20.2.2.10 Math.ceil ( x )
1727 //
20.2.2.11 Math.clz32 ( x )
1732 return (x &
0xf0) ? (x &
0x80 ?
0 : x &
0x40 ?
1 : x &
0x20 ?
2 :
3) :
1733 (x &
0x08 ?
4 : x &
0x04 ?
5 : x &
0x02 ?
6 : x &
0x01 ?
7 :
8);
1736 return x &
0xff000000 ? clz8(x
>> 24) :
1737 x &
0xff0000 ? clz8(x
>> 16) +
8 :
1738 x &
0xff00 ? clz8(x
>> 8) +
16 : clz8(x) +
24;
1743 //
20.2.2.12 Math.cos ( x )
1745 //
20.2.2.13 Math.cosh ( x )
1750 return (pow(E, x) + pow(E, -x)) /
2;
1753 //
20.2.2.14 Math.exp ( x )
1755 //
20.2.2.15 Math.expm1 ( x )
1760 // from: http://www.johndcook.com/cpp_log1p.html
1761 if (SameValue(x, -
0)) {
1763 } else if (abs(x) <
1e-5) {
1764 return x +
0.5 * x * x; // two terms of Taylor expansion
1770 //
20.2.2.16 Math.floor ( x )
1772 //
20.2.2.17 Math.fround ( x )
1775 function fround(x) {
1779 if (
1/x === +Infinity ||
1/x === -Infinity || x === +Infinity || x === -Infinity) {
1782 return (new Float32Array([x]))[
0];
1785 //
20.2.2.18 Math.hypot ( value1 [, value2 [ ... ] ] )
1790 var m =
0, sawNaN = false;
1791 for (var i =
0; i < arguments.length; ++i) {
1792 var n = abs(Number(arguments[i]));
1793 if (n === Infinity) return n;
1794 if (n !== n) sawNaN = true;
1798 if (sawNaN) return NaN;
1799 if (m ===
0) return +
0;
1801 for (i =
0; i < values.length; ++i) {
1802 var r = values[i] / m;
1805 return m * sqrt(sum);
1808 //
20.2.2.19 Math.imul ( x, y )
1811 function imul(x, y) {
1812 var a = ToUint32(x);
1813 var b = ToUint32(y);
1814 // (slow but accurate)
1815 var ah = (a
>>> 16) &
0xffff;
1816 var al = a &
0xffff;
1817 var bh = (b
>>> 16) &
0xffff;
1818 var bl = b &
0xffff;
1819 return ((al * bl) + (((ah * bl + al * bh) <<
16)
>>> 0)|
0);
1820 }, ('imul' in Math && Math.imul(
1,
0x80000000) ===
0) // Safari
7 bug
1823 //
20.2.2.20 Math.log ( x )
1825 //
20.2.2.21 Math.log1p ( x )
1830 // from: http://www.johndcook.com/cpp_expm1.html
1833 } else if (SameValue(x, -
0)) {
1835 } else if (abs(x)
> 1e-4) {
1838 return (-
0.5 * x +
1) * x;
1842 //
20.2.2.22 Math.log10 ( x )
1847 return log(x) * LOG10E;
1850 //
20.2.2.23 Math.log2 ( x )
1855 return log(x) * LOG2E;
1858 //
20.2.2.24 Math.max ( value1, value2 , ...values )
1859 //
20.2.2.25 Math.min ( value1, value2 , ...values )
1860 //
20.2.2.26 Math.pow ( x, y )
1861 //
20.2.2.27 Math.random ( )
1862 //
20.2.2.28 Math.round ( x )
1864 //
20.2.2.29 Math.sign(x)
1869 return x <
0 ? -
1 : x
> 0 ?
1 : x;
1872 //
20.2.2.30 Math.sin ( x )
1874 //
20.2.2.31 Math.sinh( x )
1879 return SameValue(x, -
0) ? x : (pow(E, x) - pow(E, -x)) /
2;
1882 //
20.2.2.32 Math.sqrt ( x )
1883 //
20.2.2.33 Math.tan ( x )
1885 //
20.2.2.34 Math.tanh ( x )
1890 var n = pow(E,
2 * x) -
1,
1891 d = pow(E,
2 * x) +
1;
1892 if (SameValue(x, -
0))
1894 return (n === d) ?
1 : n / d; // Handle Infinity/Infinity
1897 //
20.2.2.35 Math.trunc ( x )
1902 return $isNaN(x) ? NaN :
1903 x <
0 ? ceil(x) : floor(x);
1906 // ---------------------------------------
1907 //
20.3 Date Objects
1908 // ---------------------------------------
1910 //
20.3.1 Overview of Date Objects and Definitions of Abstract Operations
1911 //
20.3.1.1 Time Values and Time Range
1912 //
20.3.1.2 Day Number and Time within Day
1913 //
20.3.1.3 Year Number
1914 //
20.3.1.4 Month Number
1915 //
20.3.1.5 Date Number
1916 //
20.3.1.6 Week Day
1917 //
20.3.1.7 Local Time Zone Adjustment
1918 //
20.3.1.8 Daylight Saving Time Adjustment
1919 //
20.3.1.9 Local Time
1920 //
20.3.1.10 Hours, Minutes, Second, and Milliseconds
1921 //
20.3.1.11 MakeTime (hour, min, sec, ms)
1922 //
20.3.1.12 MakeDay (year, month, date)
1923 //
20.3.1.13 MakeDate (day, time)
1924 //
20.3.1.14 TimeClip (time)
1925 //
20.3.1.15 Date Time String Format
1926 //
20.3.1.15.1 Extended years
1927 //
20.3.2 The Date Constructor
1928 //
20.3.2.1 Date ( year, month [, date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
1929 //
20.3.2.2 Date ( value )
1930 //
20.3.2.3 Date ( )
1931 //
20.3.3 Properties of the Date Constructor
1932 //
20.3.3.1 Date.now ( )
1933 //
20.3.3.2 Date.parse (string)
1934 //
20.3.3.3 Date.prototype
1935 //
20.3.3.4 Date.UTC ( year, month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
1936 //
20.3.4 Properties of the Date Prototype Object
1937 //
20.3.4.1 Date.prototype.constructor
1938 //
20.3.4.2 Date.prototype.getDate ( )
1939 //
20.3.4.3 Date.prototype.getDay ( )
1940 //
20.3.4.4 Date.prototype.getFullYear ( )
1941 //
20.3.4.5 Date.prototype.getHours ( )
1942 //
20.3.4.6 Date.prototype.getMilliseconds ( )
1943 //
20.3.4.7 Date.prototype.getMinutes ( )
1944 //
20.3.4.8 Date.prototype.getMonth ( )
1945 //
20.3.4.9 Date.prototype.getSeconds ( )
1946 //
20.3.4.10 Date.prototype.getTime ( )
1947 //
20.3.4.11 Date.prototype.getTimezoneOffset ( )
1948 //
20.3.4.12 Date.prototype.getUTCDate ( )
1949 //
20.3.4.13 Date.prototype.getUTCDay ( )
1950 //
20.3.4.14 Date.prototype.getUTCFullYear ( )
1951 //
20.3.4.15 Date.prototype.getUTCHours ( )
1952 //
20.3.4.16 Date.prototype.getUTCMilliseconds ( )
1953 //
20.3.4.17 Date.prototype.getUTCMinutes ( )
1954 //
20.3.4.18 Date.prototype.getUTCMonth ( )
1955 //
20.3.4.19 Date.prototype.getUTCSeconds ( )
1956 //
20.3.4.20 Date.prototype.setDate ( date )
1957 //
20.3.4.21 Date.prototype.setFullYear ( year [ , month [ , date ] ] )
1958 //
20.3.4.22 Date.prototype.setHours ( hour [ , min [ , sec [ , ms ] ] ] )
1959 //
20.3.4.23 Date.prototype.setMilliseconds ( ms )
1960 //
20.3.4.24 Date.prototype.setMinutes ( min [ , sec [ , ms ] ] )
1961 //
20.3.4.25 Date.prototype.setMonth ( month [ , date ] )
1962 //
20.3.4.26 Date.prototype.setSeconds ( sec [ , ms ] )
1963 //
20.3.4.27 Date.prototype.setTime ( time )
1964 //
20.3.4.28 Date.prototype.setUTCDate ( date )
1965 //
20.3.4.29 Date.prototype.setUTCFullYear ( year [ , month [ , date ] ] )
1966 //
20.3.4.30 Date.prototype.setUTCHours ( hour [ , min [ , sec [ , ms ] ] ] )
1967 //
20.3.4.31 Date.prototype.setUTCMilliseconds ( ms )
1968 //
20.3.4.32 Date.prototype.setUTCMinutes ( min [ , sec [, ms ] ] )
1969 //
20.3.4.33 Date.prototype.setUTCMonth ( month [ , date ] )
1970 //
20.3.4.34 Date.prototype.setUTCSeconds ( sec [ , ms ] )
1971 //
20.3.4.35 Date.prototype.toDateString ( )
1972 //
20.3.4.36 Date.prototype.toISOString ( )
1973 //
20.3.4.37 Date.prototype.toJSON ( key )
1974 //
20.3.4.38 Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] )
1975 //
20.3.4.39 Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1976 //
20.3.4.40 Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] )
1977 //
20.3.4.41 Date.prototype.toString ( )
1978 //
20.3.4.42 Date.prototype.toTimeString ( )
1979 //
20.3.4.43 Date.prototype.toUTCString ( )
1980 //
20.3.4.44 Date.prototype.valueOf ( )
1981 //
20.3.4.45 Date.prototype [ @@toPrimitive ] ( hint )
1982 //
20.3.5 Properties of Date Instances
1984 // (No polyfillable changes from ES5)
1986 // ---------------------------------------
1987 //
21 Text Processing
1988 // ---------------------------------------
1990 var string_regexp_dispatch = (function() {
1991 var faux = {}, secret = Symbol();
1992 faux[Symbol.match] = function() { return secret; };
1993 return (
"").match(faux) === secret;
1996 //
21.1 String Objects
1997 //
21.1.1 The String Constructor
1998 //
21.1.1.1 String ( value )
1999 //
21.1.2 Properties of the String Constructor
2000 //
21.1.2.1 String.fromCharCode ( ...codeUnits )
2002 //
21.1.2.2 String.fromCodePoint ( ...codePoints )
2004 String, 'fromCodePoint',
2005 function fromCodePoint(/*...codePoints*/) {
2006 var codePoints = arguments,
2007 length = codePoints.length,
2010 while (nextIndex < length) {
2011 var next = codePoints[nextIndex];
2012 var nextCP = Number(next);
2013 if (!SameValue(nextCP, ToInteger(nextCP)) ||
2014 nextCP <
0 || nextCP
> 0x10FFFF) {
2015 throw RangeError('Invalid code point ' + nextCP);
2017 if (nextCP <
0x10000) {
2018 elements.push(String.fromCharCode(nextCP));
2021 elements.push(String.fromCharCode((nextCP
>> 10) +
0xD800));
2022 elements.push(String.fromCharCode((nextCP %
0x400) +
0xDC00));
2026 return elements.join('');
2029 //
21.1.2.3 String.prototype
2031 //
21.1.2.4 String.raw ( template , ...substitutions )
2034 function raw(template /*, ...substitutions*/) {
2035 var substitutions = [].slice.call(arguments,
1);
2037 var cooked = Object(template);
2038 var rawValue = cooked['raw'];
2039 var raw = Object(rawValue);
2040 var len = raw['length'];
2041 var literalSegments = ToLength(len);
2042 if (literalSegments <=
0) return '';
2043 var stringElements = [];
2046 var next = raw[nextIndex];
2047 var nextSeg = String(next);
2048 stringElements.push(nextSeg);
2049 if (nextIndex +
1 === literalSegments)
2050 return stringElements.join('');
2051 next = substitutions[nextIndex];
2052 var nextSub = String(next);
2053 stringElements.push(nextSub);
2054 nextIndex = nextIndex +
1;
2058 // See https://githib.com/inexorabletash/uate for a more useful version.
2060 //
21.1.3 Properties of the String Prototype Object
2061 //
21.1.3.1 String.prototype.charAt ( pos )
2062 //
21.1.3.2 String.prototype.charCodeAt ( pos )
2064 //
21.1.3.3 String.prototype.codePointAt ( pos )
2066 String.prototype, 'codePointAt',
2067 function codePointAt(pos) {
2068 var o = strict(this);
2070 var position = ToInteger(pos);
2071 var size = s.length;
2072 if (position <
0 || position
>= size) return undefined;
2073 var first = s.charCodeAt(position);
2074 if (first <
0xD800 || first
> 0xDBFF || position +
1 === size) return first;
2075 var second = s.charCodeAt(position +
1);
2076 if (second <
0xDC00 || second
> 0xDFFF) return first;
2077 return ((first -
0xD800) *
1024) + (second -
0xDC00) +
0x10000;
2080 //
21.1.3.4 String.prototype.concat ( ...args )
2081 //
21.1.3.5 String.prototype.constructor
2083 //
21.1.3.6 String.prototype.endsWith ( searchString [ , endPosition] )
2085 String.prototype, 'endsWith',
2086 function endsWith(searchString) {
2087 var endPosition = arguments[
1];
2089 var o = strict(this);
2091 var searchStr = String(searchString);
2093 var pos = (endPosition === undefined) ? len : ToInteger(endPosition);
2094 var end = min(max(pos,
0), len);
2095 var searchLength = searchStr.length;
2096 var start = end - searchLength;
2097 if (start <
0) return false;
2098 if (s.substring(start, start + searchLength) === searchStr) return true;
2102 //
21.1.3.7 String.prototype.includes ( searchString [ , position ] )
2104 String.prototype, 'includes',
2105 function includes(searchString) {
2106 var position = arguments[
1];
2108 var o = strict(this);
2110 var searchStr = String(searchString);
2111 var pos = ToInteger(position);
2113 var start = min(max(pos,
0), len);
2114 return s.indexOf(searchStr, start) !== -
1;
2117 //
21.1.3.8 String.prototype.indexOf ( searchString [ , position ] )
2118 //
21.1.3.9 String.prototype.lastIndexOf ( searchString [ , position ] )
2119 //
21.1.3.10 String.prototype.localeCompare ( that [, reserved1 [ , reserved2 ] ] )
2120 //
21.1.3.11 String.prototype.match ( regexp )
2122 String.prototype, 'match',
2123 function match(regexp) {
2124 var o = strict(this);
2126 if (HasProperty(regexp, $$match)) var rx = regexp;
2127 else rx = new RegExp(regexp);
2128 return rx[$$match](s);
2129 }, !string_regexp_dispatch);
2131 //
21.1.3.12 String.prototype.normalize ( [ form ] )
2133 // Not practical due to table sizes; if needed, pull in:
2134 // https://github.com/walling/unorm/
2136 //
21.1.3.13 String.prototype.repeat ( count )
2138 String.prototype, 'repeat',
2139 function repeat(count) {
2140 var o = strict(this);
2142 var n = ToInteger(count);
2143 if (n <
0) throw RangeError();
2144 if (n === Infinity) throw RangeError();
2145 var t = new Array(n +
1).join(s);
2149 //
21.1.3.14 String.prototype.replace (searchValue, replaceValue )
2151 String.prototype, 'replace',
2152 function replace(searchValue, replaceValue) {
2153 var o = strict(this);
2154 if (HasProperty(searchValue, $$replace))
2155 return searchValue[$$replace](o, replaceValue);
2156 return orig_replace.call(o, searchValue, replaceValue);
2157 }, !string_regexp_dispatch);
2159 //
21.1.3.15 String.prototype.search ( regexp )
2161 String.prototype, 'search',
2162 function search(regexp) {
2163 var o = strict(this);
2164 var string = String(o);
2165 if (HasProperty(regexp, $$search)) var rx = regexp;
2166 else rx = new RegExp(regexp);
2167 return rx[$$search](string);
2168 }, !string_regexp_dispatch);
2170 //
21.1.3.16 String.prototype.slice ( start, end )
2171 //
21.1.3.17 String.prototype.split ( separator, limit )
2173 String.prototype, 'split',
2174 function split(separator, limit) {
2175 var o = strict(this);
2176 if (HasProperty(separator, $$split))
2177 return separator[$$split](o, limit);
2178 return orig_split.call(o, separator, limit);
2179 }, !string_regexp_dispatch);
2181 //
21.1.3.18 String.prototype.startsWith ( searchString [, position ] )
2183 String.prototype, 'startsWith',
2184 function startsWith(searchString) {
2185 var position = arguments[
1];
2187 var o = strict(this);
2189 var searchStr = String(searchString);
2190 var pos = ToInteger(position);
2192 var start = min(max(pos,
0), len);
2193 var searchLength = searchStr.length;
2194 if (searchLength + start
> len) return false;
2195 if (s.substring(start, start + searchLength) === searchStr) return true;
2199 //
21.1.3.19 String.prototype.substring ( start, end )
2200 //
21.1.3.20 String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )
2201 //
21.1.3.21 String.prototype.toLocaleUpperCase ([ reserved1 [ , reserved2 ] ] )
2202 //
21.1.3.22 String.prototype.toLowerCase ( )
2203 //
21.1.3.23 String.prototype.toString ( )
2204 //
21.1.3.24 String.prototype.toUpperCase ( )
2205 //
21.1.3.25 String.prototype.trim ( )
2206 //
21.1.3.26 String.prototype.valueOf ( )
2208 //
21.1.3.27 String.prototype [ @@iterator ]( )
2210 String.prototype, $$iterator,
2211 function entries() {
2212 return CreateStringIterator(this, 'value');
2215 //
21.1.4 Properties of String Instances
2218 //
21.1.5 String Iterator Objects
2220 function StringIterator() {}
2222 //
21.1.5.1 CreateStringIterator Abstract Operation
2223 function CreateStringIterator(string, kind) {
2224 var s = String(string);
2225 var iterator = new StringIterator;
2226 set_internal(iterator, '[[IteratedString]]', s);
2227 set_internal(iterator, '[[StringIteratorNextIndex]]',
0);
2228 set_internal(iterator, '[[StringIterationKind]]', kind);
2232 //
21.1.5.2 The %StringIteratorPrototype% Object
2233 var $StringIteratorPrototype$ = Object.create($IteratorPrototype$);
2234 StringIterator.prototype = $StringIteratorPrototype$;
2236 //
21.1.5.2.1 %StringIteratorPrototype%.next ( )
2238 $StringIteratorPrototype$, 'next',
2240 var o = ToObject(this);
2241 var s = String(o['[[IteratedString]]']),
2242 index = o['[[StringIteratorNextIndex]]'],
2245 set_internal(o, '[[StringIteratorNextIndex]]', Infinity);
2246 return CreateIterResultObject(undefined, true);
2248 var cp = s.codePointAt(index);
2249 set_internal(o, '[[StringIteratorNextIndex]]', index + (cp
> 0xFFFF ?
2 :
1));
2250 return CreateIterResultObject(String.fromCodePoint(cp), false);
2253 //
21.1.5.2.2 %StringIteratorPrototype% [ @@toStringTag ]
2254 define($StringIteratorPrototype$, $$toStringTag, 'String Iterator');
2256 //
21.1.5.3 Properties of String Iterator Instances
2258 // ---------------------------------------
2259 //
21.2 RegExp (Regular Expression) Objects
2260 // ---------------------------------------
2263 //
21.2.2 Pattern Semantics
2264 //
21.2.2.1 Notation
2266 //
21.2.2.3 Disjunction
2267 //
21.2.2.4 Alternative
2269 //
21.2.2.6 Assertion
2270 //
21.2.2.7 Quantifier
2272 //
21.2.2.9 AtomEscape
2273 //
21.2.2.10 CharacterEscape
2274 //
21.2.2.11 DecimalEscape
2275 //
21.2.2.12 CharacterClassEscape
2276 //
21.2.2.13 CharacterClass
2277 //
21.2.2.14 ClassRanges
2278 //
21.2.2.15 NonemptyClassRanges
2279 //
21.2.2.16 NonemptyClassRangesNoDash
2280 //
21.2.2.17 ClassAtom
2281 //
21.2.2.18 ClassAtomNoDash
2282 //
21.2.2.19 ClassEscape
2283 //
21.2.3 The RegExp Constructor
2284 //
21.2.3.1 RegExp ( pattern, flags )
2285 //
21.2.3.2 new RegExp( ...argumentsList )
2286 //
21.2.3.3 Abstract Operations for the RegExp Constructor
2287 //
21.2.4 Properties of the RegExp Constructor
2288 //
21.2.4.1 RegExp.prototype
2289 //
21.2.5 Properties of the RegExp Prototype Object
2290 //
21.2.5.1 RegExp.prototype.constructor
2291 //
21.2.5.2 RegExp.prototype.exec ( string )
2293 //
21.2.5.3 get RegExp.prototype.flags
2294 if (!('flags' in RegExp.prototype)) {
2295 Object.defineProperty(
2296 RegExp.prototype, 'flags', {
2298 var s = String(this);
2299 return s.substring(s.lastIndexOf('/') +
1);
2304 //
21.2.5.4 get RegExp.prototype.global
2305 //
21.2.5.5 get RegExp.prototype.ignoreCase
2307 //
21.2.5.6 RegExp.prototype [ @@match ] ( string )
2308 define(RegExp.prototype, $$match, function(string) {
2309 var o = strict(this);
2310 return orig_match.call(string, o);
2313 //
21.2.5.7 get RegExp.prototype.multiline
2315 //
21.2.5.8 RegExp.prototype [ @@replace ] ( string, replaceValue )
2316 define(RegExp.prototype, $$replace, function(string, replaceValue) {
2317 var o = strict(this);
2318 return orig_replace.call(string, o, replaceValue);
2321 //
21.2.5.9 RegExp.prototype [ @@search ] ( string )
2322 define(RegExp.prototype, $$search, function(string) {
2323 var o = strict(this);
2324 return orig_search.call(string, o);
2327 //
21.2.5.10 get RegExp.prototype.source
2329 //
21.2.5.11 RegExp.prototype [ @@split ] ( string, limit )
2330 define(RegExp.prototype, $$split, function(string, limit) {
2331 var o = strict(this);
2332 return orig_split.call(string, o, limit);
2335 //
21.2.5.12 get RegExp.prototype.sticky
2336 //
21.2.5.13 RegExp.prototype.test( S )
2337 //
21.2.5.14 RegExp.prototype.toString ( )
2338 //
21.2.5.15 get RegExp.prototype.unicode
2340 //
21.2.6 Properties of RegExp Instances
2341 //
21.2.6.1 lastIndex
2343 // (No polyfillable changes from ES5)
2345 // ---------------------------------------
2346 //
22 Indexed Collections
2347 // ---------------------------------------
2349 // ---------------------------------------
2350 //
22.1 Array Objects
2351 // ---------------------------------------
2353 //
22.1.1 The Array Constructor
2354 //
22.1.1.1 Array ( )
2355 //
22.1.1.2 Array (len)
2356 //
22.1.1.3 Array (...items )
2358 //
22.1.2 Properties of the Array Constructor
2360 //
22.1.2.1 Array.from ( items [ , mapfn [ , thisArg ] ] )
2363 function from(items) {
2364 var mapfn = arguments[
1];
2365 var thisArg = arguments[
2];
2367 var c = strict(this);
2368 if (mapfn === undefined) {
2369 var mapping = false;
2371 if (!IsCallable(mapfn)) throw TypeError();
2375 var usingIterator = GetMethod(items, $$iterator);
2376 if (usingIterator !== undefined) {
2377 if (IsConstructor(c)) {
2382 var iterator = GetIterator(items, usingIterator);
2385 var next = IteratorStep(iterator);
2386 if (next === false) {
2390 var nextValue = IteratorValue(next);
2392 var mappedValue = mapfn.call(t, nextValue);
2394 mappedValue = nextValue;
2399 var arrayLike = ToObject(items);
2400 var lenValue = arrayLike.length;
2401 var len = ToLength(lenValue);
2402 if (IsConstructor(c)) {
2409 var kValue = arrayLike[k];
2411 mappedValue = mapfn.call(t, kValue, k);
2413 mappedValue = kValue;
2421 //
22.1.2.2 Array.isArray ( arg )
2423 //
22.1.2.3 Array.of ( ...items )
2427 var items = arguments;
2429 var lenValue = items.length;
2430 var len = ToUint32(lenValue);
2431 var c = strict(this), a;
2432 if (IsConstructor(c)) {
2447 //
22.1.2.4 Array.prototype
2448 //
22.1.2.5 get Array [ @@species ]
2449 //
22.1.3 Properties of the Array Prototype Object
2450 //
22.1.3.1 Array.prototype.concat ( ...arguments )
2451 //
22.1.3.1.1 Runtime Semantics: IsConcatSpreadable ( O )
2452 //
22.1.3.2 Array.prototype.constructor
2453 //
22.1.3.3 Array.prototype.copyWithin (target, start [ , end ] )
2455 Array.prototype, 'copyWithin',
2456 function copyWithin(target, start/*, end*/) {
2457 var end = arguments[
2];
2459 var o = ToObject(this);
2460 var lenVal = o.length;
2461 var len = ToLength(lenVal);
2463 var relativeTarget = ToInteger(target);
2465 if (relativeTarget <
0)
2466 to = max(len + relativeTarget,
0);
2468 to = min(relativeTarget, len);
2469 var relativeStart = ToInteger(start);
2471 if (relativeStart <
0)
2472 from = max(len + relativeStart,
0);
2474 from = min(relativeStart, len);
2476 if (end === undefined)
2479 relativeEnd = ToInteger(end);
2481 if (relativeEnd <
0)
2482 final = max(len + relativeEnd,
0);
2484 final = min(relativeEnd, len);
2485 var count = min(final - from, len - to);
2487 if (from < to && to < from + count) {
2489 from = from + count -
1;
2490 to = to + count -
1;
2495 var fromKey = String(from);
2496 var toKey = String(to);
2497 var fromPresent = HasProperty(o, fromKey);
2499 var fromVal = o[fromKey];
2504 from = from + direction;
2505 to = to + direction;
2511 //
22.1.3.4 Array.prototype.entries ( )
2512 var nativeArrayIteratorMethods =
2513 ('entries' in Array.prototype && 'next' in [].entries());
2516 Array.prototype, 'entries',
2517 function entries() {
2518 return CreateArrayIterator(this, 'key+value');
2519 }, !nativeArrayIteratorMethods);
2521 //
22.1.3.5 Array.prototype.every ( callbackfn [ , thisArg] )
2523 //
22.1.3.6 Array.prototype.fill (value [ , start [ , end ] ] )
2525 Array.prototype, 'fill',
2526 function fill(value/*, start, end*/) {
2527 var start = arguments[
1],
2530 var o = ToObject(this);
2531 var lenVal = o.length;
2532 var len = ToLength(lenVal);
2534 var relativeStart = ToInteger(start);
2536 if (relativeStart <
0)
2537 k = max((len + relativeStart),
0);
2539 k = min(relativeStart, len);
2541 if (end === undefined)
2544 relativeEnd = ToInteger(end);
2546 if (relativeEnd <
0)
2547 final = max((len + relativeEnd),
0);
2549 final = min(relativeEnd, len);
2558 //
22.1.3.7 Array.prototype.filter ( callbackfn [ , thisArg ] )
2560 //
22.1.3.8 Array.prototype.find ( predicate [ , thisArg ] )
2562 Array.prototype, 'find',
2563 function find(predicate) {
2564 var o = ToObject(this);
2565 var lenValue = o.length;
2566 var len = ToInteger(lenValue);
2567 if (!IsCallable(predicate)) throw TypeError();
2568 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2572 var kPresent = HasProperty(o, pk);
2575 var testResult = predicate.call(t, kValue, k, o);
2576 if (Boolean(testResult)) {
2585 //
22.1.3.9 Array.prototype.findIndex ( predicate [ , thisArg ] )
2587 Array.prototype, 'findIndex',
2588 function findIndex(predicate) {
2589 var o = ToObject(this);
2590 var lenValue = o.length;
2591 var len = ToLength(lenValue);
2592 if (!IsCallable(predicate)) throw TypeError();
2593 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2597 var kPresent = HasProperty(o, pk);
2600 var testResult = predicate.call(t, kValue, k, o);
2601 if (Boolean(testResult)) {
2610 //
22.1.3.10 Array.prototype.forEach ( callbackfn [ , thisArg ] )
2611 //
22.1.3.11 Array.prototype.indexOf ( searchElement [ , fromIndex ] )
2612 //
22.1.3.12 Array.prototype.join (separator)
2614 //
22.1.3.13 Array.prototype.keys ( )
2616 Array.prototype, 'keys',
2618 return CreateArrayIterator(this, 'key');
2619 }, !nativeArrayIteratorMethods);
2621 //
22.1.3.14 Array.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2622 //
22.1.3.15 Array.prototype.map ( callbackfn [ , thisArg ] )
2623 //
22.1.3.16 Array.prototype.pop ( )
2624 //
22.1.3.17 Array.prototype.push ( ...items )
2625 //
22.1.3.18 Array.prototype.reduce ( callbackfn [ , initialValue ] )
2626 //
22.1.3.19 Array.prototype.reduceRight ( callbackfn [ , initialValue ] )
2627 //
22.1.3.20 Array.prototype.reverse ( )
2628 //
22.1.3.21 Array.prototype.shift ( )
2629 //
22.1.3.22 Array.prototype.slice (start, end)
2630 //
22.1.3.23 Array.prototype.some ( callbackfn [ , thisArg ] )
2631 //
22.1.3.24 Array.prototype.sort (comparefn)
2632 //
22.1.3.25 Array.prototype.splice (start, deleteCount , ...items )
2633 //
22.1.3.26 Array.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2634 //
22.1.3.27 Array.prototype.toString ( )
2635 //
22.1.3.28 Array.prototype.unshift ( ...items )
2637 //
22.1.3.29 Array.prototype.values ( )
2639 Array.prototype, 'values',
2641 return CreateArrayIterator(this, 'value');
2642 }, !nativeArrayIteratorMethods);
2644 //
22.1.3.30 Array.prototype [ @@iterator ] ( )
2646 Array.prototype, $$iterator,
2647 Array.prototype.values
2650 //
22.1.3.31 Array.prototype [ @@unscopables ]
2651 //
22.1.4 Properties of Array Instances
2654 //
22.1.5 Array Iterator Objects
2655 function ArrayIterator() {}
2657 //
22.1.5.1 CreateArrayIterator Abstract Operation
2658 function CreateArrayIterator(array, kind) {
2659 var o = ToObject(array);
2660 var iterator = new ArrayIterator;
2661 set_internal(iterator, '[[IteratedObject]]', o);
2662 set_internal(iterator, '[[ArrayIteratorNextIndex]]',
0);
2663 set_internal(iterator, '[[ArrayIterationKind]]', kind);
2667 //
22.1.5.2 The %ArrayIteratorPrototype% Object
2668 var $ArrayIteratorPrototype$ = Object.create($IteratorPrototype$);
2669 ArrayIterator.prototype = $ArrayIteratorPrototype$;
2671 //
22.1.5.2.1 %ArrayIteratorPrototype%. next( )
2673 $ArrayIteratorPrototype$, 'next',
2675 var o = strict(this);
2676 if (Type(o) !== 'object') throw TypeError();
2677 var a = o['[[IteratedObject]]'],
2678 index = o['[[ArrayIteratorNextIndex]]'],
2679 itemKind = o['[[ArrayIterationKind]]'],
2680 lenValue = a.length,
2681 len = ToUint32(lenValue),
2684 if (itemKind.indexOf('sparse') !== -
1) {
2686 while (!found && index < len) {
2687 elementKey = String(index);
2688 found = HasProperty(a, elementKey);
2695 set_internal(o, '[[ArrayIteratorNextIndex]]', Infinity);
2696 return CreateIterResultObject(undefined, true);
2699 set_internal(o, '[[ArrayIteratorNextIndex]]', index +
1);
2700 if (itemKind.indexOf('value') !== -
1)
2701 elementValue = a[elementKey];
2702 if (itemKind.indexOf('key+value') !== -
1)
2703 return CreateIterResultObject([elementKey, elementValue], false);
2704 if (itemKind.indexOf('key') !== -
1)
2705 return CreateIterResultObject(elementKey, false);
2706 if (itemKind === 'value')
2707 return CreateIterResultObject(elementValue, false);
2708 throw Error('Internal error');
2711 //
22.1.5.2.2 %ArrayIteratorPrototype% [ @@toStringTag ]
2712 define($ArrayIteratorPrototype$, $$toStringTag, 'Array Iterator');
2714 //
22.1.5.3 Properties of Array Iterator Instances
2717 // ---------------------------------------
2718 //
22.2 TypedArray Objects
2719 // ---------------------------------------
2721 // See typedarray.js for TypedArray polyfill
2723 ['Int8Array', 'Uint8Array', 'Uint8ClampedArray',
2724 'Int16Array', 'Uint16Array',
2725 'Int32Array', 'Uint32Array',
2726 'Float32Array', 'Float64Array'].forEach(function ($TypedArrayName$) {
2727 if (!($TypedArrayName$ in global))
2729 var $TypedArray$ = global[$TypedArrayName$];
2731 //
22.2.1 The %TypedArray% Intrinsic Object
2732 //
22.2.1.1 %TypedArray% ( length )
2733 //
22.2.1.2 %TypedArray% ( typedArray )
2734 //
22.2.1.3 %TypedArray% ( object )
2735 //
22.2.1.4 %TypedArray% ( buffer [ , byteOffset [ , length ] ] )
2736 //
22.2.1.5 %TypedArray% ( all other argument combinations )
2737 //
22.2.2 Properties of the %TypedArray% Intrinsic Object
2739 //
22.2.2.1 %TypedArray%.from ( source [ , mapfn [ , thisArg ] ] )
2741 $TypedArray$, 'from',
2742 function from(source) {
2743 var mapfn = arguments[
1];
2744 var thisArg = arguments[
2];
2746 var c = strict(this);
2747 if (!IsConstructor(c)) throw TypeError();
2748 if (mapfn === undefined) {
2749 var mapping = false;
2751 if (IsCallable(mapfn)) throw TypeError();
2755 var usingIterator = GetMethod(source, $$iterator);
2756 if (usingIterator !== undefined) {
2757 var iterator = GetIterator(source, usingIterator);
2760 while (next !== false) {
2761 next = IteratorStep(iterator);
2762 if (next !== false) {
2763 var nextValue = IteratorValue(next);
2764 values.push(nextValue);
2767 var len = values.length;
2768 var newObj = new c(len);
2771 var kValue = values.shift();
2773 var mappedValue = mapfn.call(t, kValue);
2775 mappedValue = kValue;
2777 newObj[k] = mappedValue;
2780 console.assert(values.length ===
0);
2783 var arrayLike = ToObject(source);
2784 var lenValue = arrayLike.length;
2785 len = ToLength(lenValue);
2786 newObj = new c(len);
2789 kValue = arrayLike[k];
2791 mappedValue = mapfn.call(t, kValue, k);
2793 mappedValue = kValue;
2795 newObj[k] = mappedValue;
2801 //
22.2.2.2 %TypedArray%.of ( ...items )
2805 var items = arguments;
2807 var len = items.length;
2808 var c = strict(this);
2809 var newObj = new c(len);
2812 newObj[k] = items[k];
2818 //
22.2.2.3 %TypedArray%.prototype
2819 //
22.2.2.4 get %TypedArray% [ @@species ]
2820 //
22.2.3 Properties of the %TypedArrayPrototype% Object
2821 //
22.2.3.1 get %TypedArray%.prototype.buffer
2822 //
22.2.3.2 get %TypedArray%.prototype.byteLength
2823 //
22.2.3.3 get %TypedArray%.prototype.byteOffset
2824 //
22.2.3.4 %TypedArray%.prototype.constructor
2826 //
22.2.3.5 %TypedArray%.prototype.copyWithin (target, start [, end ] )
2827 define($TypedArray$.prototype, 'copyWithin', Array.prototype.copyWithin);
2829 //
22.2.3.6 %TypedArray%.prototype.entries ( )
2830 define($TypedArray$.prototype, 'entries', Array.prototype.entries);
2832 //
22.2.3.7 %TypedArray%.prototype.every ( callbackfn [ , thisArg ] )
2833 define($TypedArray$.prototype, 'every', Array.prototype.every);
2835 //
22.2.3.8 %TypedArray%.prototype.fill (value [ , start [ , end ] ] )
2837 $TypedArray$.prototype, 'fill',
2838 //Array.prototype.fill // Doesn't work in Safari
7
2839 function fill(value/*, start, end*/) {
2840 var start = arguments[
1],
2843 var o = ToObject(this);
2844 var lenVal = o.length;
2845 var len = ToLength(lenVal);
2847 var relativeStart = ToInteger(start);
2849 if (relativeStart <
0) k = max((len + relativeStart),
0);
2850 else k = min(relativeStart, len);
2852 if (end === undefined) relativeEnd = len;
2853 else relativeEnd = ToInteger(end);
2855 if (relativeEnd <
0) final = max((len + relativeEnd),
0);
2856 else final = min(relativeEnd, len);
2865 //
22.2.3.9 %TypedArray%.prototype.filter ( callbackfn [ , thisArg ] )
2867 $TypedArray$.prototype, 'filter',
2868 function filter(callbackfn) {
2869 var thisArg = arguments[
1];
2871 var o = ToObject(this);
2872 var lenVal = o.length;
2873 var len = ToLength(lenVal);
2874 if (!IsCallable(callbackfn)) throw TypeError();
2876 var c = o.constructor;
2882 var selected = callbackfn.call(t, kValue, k, o);
2889 var a = new c(captured);
2891 for (var i =
0; i < kept.length; ++i) {
2899 //
22.2.3.10 %TypedArray%.prototype.find (predicate [ , thisArg ] )
2900 define($TypedArray$.prototype, 'find', Array.prototype.find);
2902 //
22.2.3.11 %TypedArray%.prototype.findIndex ( predicate [ , thisArg ] )
2903 define($TypedArray$.prototype, 'findIndex', Array.prototype.findIndex);
2905 //
22.2.3.12 %TypedArray%.prototype.forEach ( callbackfn [ , thisArg ] )
2906 define($TypedArray$.prototype, 'forEach', Array.prototype.forEach);
2908 //
22.2.3.13 %TypedArray%.prototype.indexOf (searchElement [ , fromIndex ] )
2909 define($TypedArray$.prototype, 'indexOf', Array.prototype.indexOf);
2911 //
22.2.3.14 %TypedArray%.prototype.join ( separator )
2912 define($TypedArray$.prototype, 'join', Array.prototype.join);
2914 //
22.2.3.15 %TypedArray%.prototype.keys ( )
2915 define($TypedArray$.prototype, 'keys', Array.prototype.keys);
2917 //
22.2.3.16 %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2918 define($TypedArray$.prototype, 'lastIndexOf', Array.prototype.lastIndexOf);
2920 //
22.2.3.17 get %TypedArray%.prototype.length
2922 //
22.2.3.18 %TypedArray%.prototype.map ( callbackfn [ , thisArg ] )
2924 $TypedArray$.prototype, 'map',
2925 function map(callbackfn) {
2926 var thisArg = arguments[
1];
2928 var o = ToObject(this);
2929 var lenValue = o.length;
2930 var len = ToLength(lenValue);
2931 if (!IsCallable(callbackfn)) throw TypeError();
2934 var c = o.constructor;
2935 if (IsConstructor(c))
2937 if (a === undefined)
2941 var kPresent = HasProperty(o, k);
2944 var mappedValue = callbackfn.call(t, kValue, k, o);
2952 //
22.2.3.19 %TypedArray%.prototype.reduce ( callbackfn [, initialValue] )
2953 define($TypedArray$.prototype, 'reduce', Array.prototype.reduce);
2955 //
22.2.3.20 %TypedArray%.prototype.reduceRight ( callbackfn [, initialValue] )
2956 define($TypedArray$.prototype, 'reduceRight', Array.prototype.reduceRight);
2958 //
22.2.3.21 %TypedArray%.prototype.reverse ( )
2959 define($TypedArray$.prototype, 'reverse', Array.prototype.reverse);
2961 //
22.2.3.22 %TypedArray%.prototype.set ( overloaded [ , offset ])
2962 //
22.2.3.22.1 %TypedArray%.prototype.set (array [ , offset ] )
2963 //
22.2.3.22.2 %TypedArray%.prototype.set(typedArray [, offset ] )
2965 //
22.2.3.23 %TypedArray%.prototype.slice ( start, end )
2967 $TypedArray$.prototype, 'slice',
2968 function slice(start, end) {
2969 var o = ToObject(this);
2970 var lenVal = o.length;
2971 var len = ToLength(lenVal);
2972 var relativeStart = ToInteger(start);
2973 var k = (relativeStart <
0) ? max(len + relativeStart,
0) : min(relativeStart, len);
2974 var relativeEnd = (end === undefined) ? len : ToInteger(end);
2975 var final = (relativeEnd <
0) ? max(len + relativeEnd,
0) : min(relativeEnd, len);
2976 var count = final - k;
2977 var c = o.constructor;
2978 if (IsConstructor(c)) {
2979 var a = new c(count);
2993 //
22.2.3.24 %TypedArray%.prototype.some ( callbackfn [ , thisArg ] )
2994 define($TypedArray$.prototype, 'some', Array.prototype.some);
2996 //
22.2.3.25 %TypedArray%.prototype.sort ( comparefn )
2998 $TypedArray$.prototype, 'sort',
3000 var comparefn = arguments[
0];
3002 function sortCompare(x, y) {
3003 console.assert(Type(x) === 'number' && Type(y) === 'number');
3004 if (x !== x && y !== y) return +
0;
3005 if (x !== x) return
1;
3006 if (y !== y) return -
1;
3007 if (comparefn !== undefined) {
3008 return comparefn(x, y);
3010 if (x < y) return -
1;
3011 if (x
> y) return
1;
3014 return Array.prototype.sort.call(this, sortCompare);
3017 //
22.2.3.26 %TypedArray%.prototype.subarray( [ begin [ , end ] ] )
3018 //
22.2.3.27 %TypedArray%.prototype.toLocaleString ([ reserved1 [ , reserved2 ] ])
3019 //
22.2.3.28 %TypedArray%.prototype.toString ( )
3021 //
22.2.3.29 %TypedArray%.prototype.values ( )
3022 define($TypedArray$.prototype, 'values', Array.prototype.values);
3024 //
22.2.3.30 %TypedArray%.prototype [ @@iterator ] ( )
3026 $TypedArray$.prototype, $$iterator,
3027 $TypedArray$.prototype.values
3030 //
22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
3031 define($TypedArray$.prototype, $$toStringTag, $TypedArrayName$);
3033 //
22.2.4 The TypedArray Constructors
3034 //
22.2.4.1TypedArray( ... argumentsList)
3035 //
22.2.5 Properties of the TypedArray Constructors
3036 //
22.2.5.1 TypedArray.BYTES_PER_ELEMENT
3037 //
22.2.5.2 TypedArray.prototype
3038 //
22.2.6 Properties of TypedArray Prototype Objects
3039 //
22.2.6.1 TypedArray.prototype.BYTES_PER_ELEMENT
3040 //
22.2.6.2 TypedArray.prototype.constructor
3041 //
22.2.7 Properties of TypedArray Instances
3044 // ---------------------------------------
3045 //
23 Keyed Collection
3046 // ---------------------------------------
3048 // ---------------------------------------
3050 // ---------------------------------------
3053 //
23.1.1 The Map Constructor
3055 //
23.1.1.1 Map ( [ iterable ] )
3057 function Map(/*iterable*/) {
3058 var map = strict(this);
3059 var iterable = arguments[
0];
3061 if (Type(map) !== 'object') throw TypeError();
3062 if ('[[MapData]]' in map) throw TypeError();
3064 if (iterable !== undefined) {
3065 var adder = map['set'];
3066 if (!IsCallable(adder)) throw TypeError();
3067 var iter = GetIterator(ToObject(iterable));
3069 set_internal(map, '[[MapData]]', { keys: [], values: [] });
3070 if (iter === undefined) return map;
3072 var next = IteratorStep(iter);
3075 var nextItem = IteratorValue(next);
3076 if (Type(nextItem) !== 'object') throw TypeError();
3077 var k = nextItem[
0];
3078 var v = nextItem[
1];
3079 adder.call(map, k, v);
3085 if (!('Map' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3086 (function() { try { new global.Map([]); return false; } catch (_) { return true; } }()) ||
3087 (function() { try { return !new global.Map().entries().next; } catch (_) { return true; } }()) ||
3088 (new global.Map([['a',
1]]).size !==
1))
3092 function MapDataIndexOf(mapData, key) {
3094 if (key === key) return mapData.keys.indexOf(key);
3095 // Slow case for NaN
3096 for (i =
0; i < mapData.keys.length; i +=
1)
3097 if (SameValueZero(mapData.keys[i], key)) return i;
3101 //
23.1.1.2 new Map ( ... argumentsList )
3102 //
23.1.2 Properties of the Map Constructor
3103 //
23.1.2.1 Map.prototype
3104 var $MapPrototype$ = {};
3105 Map.prototype = $MapPrototype$;
3107 //
23.1.2.2 get Map [ @@species ]
3109 //
23.1.3 Properties of the Map Prototype Object
3110 //
23.1.3.1 Map.prototype.clear ()
3112 Map.prototype, 'clear',
3114 var m = strict(this);
3115 if (Type(m) !== 'object') throw TypeError();
3116 if (!('[[MapData]]' in m)) throw TypeError();
3117 if (m['[[MapData]]'] === undefined) throw TypeError();
3118 var entries = m['[[MapData]]'];
3119 entries.keys.length =
0;
3120 entries.values.length =
0;
3124 //
23.1.3.2 Map.prototype.constructor
3126 //
23.1.3.3 Map.prototype.delete ( key )
3128 Map.prototype, 'delete',
3129 function delete_(key) {
3130 var m = strict(this);
3131 if (Type(m) !== 'object') throw TypeError();
3132 if (!('[[MapData]]' in m)) throw TypeError();
3133 if (m['[[MapData]]'] === undefined) throw TypeError();
3134 var entries = m['[[MapData]]'];
3135 var i = MapDataIndexOf(entries, key);
3136 if (i <
0) return false;
3137 entries.keys[i] = empty;
3138 entries.values[i] = empty;
3142 //
23.1.3.4 Map.prototype.entries ( )
3144 Map.prototype, 'entries',
3145 function entries() {
3146 var m = strict(this);
3147 if (Type(m) !== 'object') throw TypeError();
3148 return CreateMapIterator(m, 'key+value');
3151 //
23.1.3.5 Map.prototype.forEach ( callbackfn [ , thisArg ] )
3153 Map.prototype, 'forEach',
3154 function forEach(callbackfn /*, thisArg*/) {
3155 var thisArg = arguments[
1];
3157 var m = strict(this);
3158 if (Type(m) !== 'object') throw TypeError();
3159 if (!('[[MapData]]' in m)) throw TypeError();
3160 if (m['[[MapData]]'] === undefined) throw TypeError();
3161 var entries = m['[[MapData]]'];
3163 if (!IsCallable(callbackfn)) {
3164 throw TypeError('First argument to forEach is not callable.');
3166 for (var i =
0; i < entries.keys.length; ++i) {
3167 if (entries.keys[i] !== empty) {
3168 callbackfn.call(thisArg, entries.values[i], entries.keys[i], m);
3174 //
23.1.3.6 Map.prototype.get ( key )
3176 Map.prototype, 'get',
3178 var m = strict(this);
3179 if (Type(m) !== 'object') throw TypeError();
3180 if (!('[[MapData]]' in m)) throw TypeError();
3181 if (m['[[MapData]]'] === undefined) throw TypeError();
3182 var entries = m['[[MapData]]'];
3183 var i = MapDataIndexOf(entries, key);
3184 if (i
>=
0) return entries.values[i];
3188 //
23.1.3.7 Map.prototype.has ( key )
3190 Map.prototype, 'has',
3192 var m = strict(this);
3193 if (Type(m) !== 'object') throw TypeError();
3194 if (!('[[MapData]]' in m)) throw TypeError();
3195 if (m['[[MapData]]'] === undefined) throw TypeError();
3196 var entries = m['[[MapData]]'];
3197 if (MapDataIndexOf(entries, key)
>=
0) return true;
3201 //
23.1.3.8 Map.prototype.keys ( )
3203 Map.prototype, 'keys',
3205 var m = strict(this);
3206 if (Type(m) !== 'object') throw TypeError();
3207 return CreateMapIterator(m, 'key');
3210 //
23.1.3.9 Map.prototype.set ( key , value )
3212 Map.prototype, 'set',
3213 function set(key, value) {
3214 var m = strict(this);
3215 if (Type(m) !== 'object') throw TypeError();
3216 if (!('[[MapData]]' in m)) throw TypeError();
3217 if (m['[[MapData]]'] === undefined) throw TypeError();
3218 var entries = m['[[MapData]]'];
3219 var i = MapDataIndexOf(entries, key);
3220 if (i <
0) i = entries.keys.length;
3221 if (SameValue(key, -
0)) key =
0;
3222 entries.keys[i] = key;
3223 entries.values[i] = value;
3227 //
23.1.3.10 get Map.prototype.size
3228 Object.defineProperty(
3229 Map.prototype, 'size', {
3231 var m = strict(this);
3232 if (Type(m) !== 'object') throw TypeError();
3233 if (!('[[MapData]]' in m)) throw TypeError();
3234 if (m['[[MapData]]'] === undefined) throw TypeError();
3235 var entries = m['[[MapData]]'];
3237 for (var i =
0; i < entries.keys.length; ++i) {
3238 if (entries.keys[i] !== empty)
3245 //
23.1.3.11 Map.prototype.values ( )
3247 Map.prototype, 'values',
3249 var m = strict(this);
3250 if (Type(m) !== 'object') throw TypeError();
3251 return CreateMapIterator(m, 'value');
3254 //
23.1.3.12 Map.prototype [ @@iterator ]( )
3256 Map.prototype, $$iterator,
3258 var m = strict(this);
3259 if (Type(m) !== 'object') throw TypeError();
3260 return CreateMapIterator(m, 'key+value');
3263 //
23.1.3.13 Map.prototype [ @@toStringTag ]
3264 define(global.Map.prototype, $$toStringTag, 'Map');
3266 //
23.1.4 Properties of Map Instances
3267 //
23.1.5 Map Iterator Objects
3270 function MapIterator() {}
3272 //
23.1.5.1 CreateMapIterator Abstract Operation
3273 function CreateMapIterator(map, kind) {
3274 if (Type(map) !== 'object') throw TypeError();
3275 if (!('[[MapData]]' in map)) throw TypeError();
3276 if (map['[[MapData]]'] === undefined) throw TypeError();
3277 var iterator = new MapIterator;
3278 set_internal(iterator, '[[Map]]', map);
3279 set_internal(iterator, '[[MapNextIndex]]',
0);
3280 set_internal(iterator, '[[MapIterationKind]]', kind);
3284 //
23.1.5.2 The %MapIteratorPrototype% Object
3285 var $MapIteratorPrototype$ = Object.create($IteratorPrototype$);
3286 MapIterator.prototype = $MapIteratorPrototype$;
3288 //
23.1.5.2.1 %MapIteratorPrototype%.next ( )
3290 $MapIteratorPrototype$, 'next',
3292 var o = strict(this);
3293 if (Type(o) !== 'object') throw TypeError();
3294 var m = o['[[Map]]'],
3295 index = o['[[MapNextIndex]]'],
3296 itemKind = o['[[MapIterationKind]]'],
3297 entries = m['[[MapData]]'];
3298 while (index < entries.keys.length) {
3299 var e = {key: entries.keys[index], value: entries.values[index]};
3301 set_internal(o, '[[MapNextIndex]]', index);
3302 if (e.key !== empty) {
3303 if (itemKind === 'key') {
3304 return CreateIterResultObject(e.key, false);
3305 } else if (itemKind === 'value') {
3306 return CreateIterResultObject(e.value, false);
3308 return CreateIterResultObject([e.key, e.value], false);
3312 return CreateIterResultObject(undefined, true);
3315 //
23.1.5.2.2 %MapIteratorPrototype% [ @@toStringTag ]
3316 define($MapIteratorPrototype$, $$toStringTag, 'Map Iterator');
3318 //
23.1.5.3 Properties of Map Iterator Instances
3321 // ---------------------------------------
3323 // ---------------------------------------
3326 //
23.2.1 The Set Constructor
3327 //
23.2.1.1 Set ( [ iterable ] )
3330 function Set(/*iterable*/) {
3331 var set = strict(this);
3332 var iterable = arguments[
0];
3334 if (Type(set) !== 'object') throw TypeError();
3335 if ('[[SetData]]' in set) throw TypeError();
3337 if (iterable !== undefined) {
3338 var adder = set['add'];
3339 if (!IsCallable(adder)) throw TypeError();
3340 var iter = GetIterator(ToObject(iterable));
3342 set_internal(set, '[[SetData]]', []);
3343 if (iter === undefined) return set;
3345 var next = IteratorStep(iter);
3348 var nextValue = IteratorValue(next);
3349 adder.call(set, nextValue);
3355 if (!('Set' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3356 (function() { try { return !new global.Set().entries().next; } catch (_) { return true; } }()) ||
3357 (new global.Set([
1]).size !==
1))
3360 function SetDataIndexOf(setData, key) {
3363 return setData.indexOf(key);
3364 // Slow case for NaN
3365 for (i =
0; i < setData.length; i +=
1)
3366 if (SameValueZero(setData[i], key)) return i;
3370 //
23.2.1.2 new Set ( ...argumentsList )
3371 //
23.2.2 Properties of the Set Constructor
3373 //
23.2.2.1 Set.prototype
3374 var $SetPrototype$ = {};
3375 Set.prototype = $SetPrototype$;
3377 //
23.2.2.2 get Set [ @@species ]
3378 //
23.2.3 Properties of the Set Prototype Object
3380 //
23.2.3.1 Set.prototype.add (value )
3382 Set.prototype, 'add',
3383 function add(value) {
3384 var s = strict(this);
3385 if (Type(s) !== 'object') throw TypeError();
3386 if (!('[[SetData]]' in s)) throw TypeError();
3387 if (s['[[SetData]]'] === undefined) throw TypeError();
3388 if (SameValue(value, -
0)) value =
0;
3389 var entries = s['[[SetData]]'];
3390 var i = SetDataIndexOf(entries, value);
3391 if (i <
0) i = s['[[SetData]]'].length;
3392 s['[[SetData]]'][i] = value;
3397 //
23.2.3.2 Set.prototype.clear ()
3399 Set.prototype, 'clear',
3401 var s = strict(this);
3402 if (Type(s) !== 'object') throw TypeError();
3403 if (!('[[SetData]]' in s)) throw TypeError();
3404 if (s['[[SetData]]'] === undefined) throw TypeError();
3405 var entries = s['[[SetData]]'];
3410 //
23.2.3.3 Set.prototype.constructor
3411 //
23.2.3.4 Set.prototype.delete ( value )
3413 Set.prototype, 'delete',
3414 function delete_(value) {
3415 var s = strict(this);
3416 if (Type(s) !== 'object') throw TypeError();
3417 if (!('[[SetData]]' in s)) throw TypeError();
3418 if (s['[[SetData]]'] === undefined) throw TypeError();
3419 var entries = s['[[SetData]]'];
3420 var i = SetDataIndexOf(entries, value);
3421 if (i <
0) return false;
3426 //
23.2.3.5 Set.prototype.entries ( )
3428 Set.prototype, 'entries',
3429 function entries() {
3430 var s = strict(this);
3431 if (Type(s) !== 'object') throw TypeError();
3432 return CreateSetIterator(s, 'key+value');
3435 //
23.2.3.6 Set.prototype.forEach ( callbackfn [ , thisArg ] )
3437 Set.prototype, 'forEach',
3438 function forEach(callbackfn/*, thisArg*/) {
3439 var thisArg = arguments[
1];
3441 var s = strict(this);
3442 if (Type(s) !== 'object') throw TypeError();
3443 if (!('[[SetData]]' in s)) throw TypeError();
3444 if (s['[[SetData]]'] === undefined) throw TypeError();
3445 var entries = s['[[SetData]]'];
3447 if (!IsCallable(callbackfn)) {
3448 throw TypeError('First argument to forEach is not callable.');
3450 for (var i =
0; i < entries.length; ++i) {
3451 if (entries[i] !== empty) {
3452 callbackfn.call(thisArg, entries[i], entries[i], s);
3457 //
23.2.3.7 Set.prototype.has ( value )
3459 Set.prototype, 'has',
3461 var s = strict(this);
3462 if (Type(s) !== 'object') throw TypeError();
3463 if (!('[[SetData]]' in s)) throw TypeError();
3464 if (s['[[SetData]]'] === undefined) throw TypeError();
3465 var entries = s['[[SetData]]'];
3466 return SetDataIndexOf(entries, key) !== -
1;
3469 //
23.2.3.8 Set.prototype.keys ( )
3470 // See Set.prototype.values
3472 //
23.2.3.9 get Set.prototype.size
3473 Object.defineProperty(
3474 Set.prototype, 'size', {
3476 var s = strict(this);
3477 if (Type(s) !== 'object') throw TypeError();
3478 if (!('[[SetData]]' in s)) throw TypeError();
3479 if (s['[[SetData]]'] === undefined) throw TypeError();
3480 var entries = s['[[SetData]]'];
3482 for (var i =
0; i < entries.length; ++i) {
3483 if (entries[i] !== empty)
3490 //
23.2.3.10 Set.prototype.values ( )
3492 Set.prototype, 'values',
3494 var s = strict(this);
3495 if (Type(s) !== 'object') throw TypeError();
3496 return CreateSetIterator(s, 'value');
3498 // NOTE: function name is still 'values':
3499 Set.prototype.keys = Set.prototype.values;
3501 //
23.2.3.11 Set.prototype [@@iterator ] ( )
3503 Set.prototype, $$iterator,
3505 var s = strict(this);
3506 if (Type(s) !== 'object') throw TypeError();
3507 return CreateSetIterator(s);
3510 //
23.2.3.12 Set.prototype [ @@toStringTag ]
3511 define(global.Set.prototype, $$toStringTag, 'Set');
3513 //
23.2.4 Properties of Set Instances
3514 //
23.2.5 Set Iterator Objects
3516 function SetIterator() {}
3518 //
23.2.5.1 CreateSetIterator Abstract Operation
3519 function CreateSetIterator(set, kind) {
3520 if (Type(set) !== 'object') throw TypeError();
3521 if (!('[[SetData]]' in set)) throw TypeError();
3522 if (set['[[SetData]]'] === undefined) throw TypeError();
3523 var iterator = new SetIterator;
3524 set_internal(iterator, '[[IteratedSet]]', set);
3525 set_internal(iterator, '[[SetNextIndex]]',
0);
3526 set_internal(iterator, '[[SetIterationKind]]', kind);
3530 //
23.2.5.2 The %SetIteratorPrototype% Object
3531 var $SetIteratorPrototype$ = Object.create($IteratorPrototype$);
3532 SetIterator.prototype = $SetIteratorPrototype$;
3534 //
23.2.5.2.1 %SetIteratorPrototype%.next( )
3536 $SetIteratorPrototype$, 'next',
3538 var o = strict(this);
3539 if (Type(o) !== 'object') throw TypeError();
3540 var s = o['[[IteratedSet]]'],
3541 index = o['[[SetNextIndex]]'],
3542 itemKind = o['[[SetIterationKind]]'],
3543 entries = s['[[SetData]]'];
3544 while (index < entries.length) {
3545 var e = entries[index];
3547 set_internal(o, '[[SetNextIndex]]', index);
3549 if (itemKind === 'key+value')
3550 return CreateIterResultObject([e, e], false);
3551 return CreateIterResultObject(e, false);
3554 return CreateIterResultObject(undefined, true);
3557 //
23.2.5.2.2 %SetIteratorPrototype% [ @@toStringTag ]
3558 define($SetIteratorPrototype$, $$toStringTag, 'Set Iterator');
3560 //
23.2.5.3 Properties of Set Iterator Instances
3564 // ---------------------------------------
3565 //
23.3 WeakMap Objects
3566 // ---------------------------------------
3569 //
23.3.1 The WeakMap Constructor
3570 //
23.3.1.1 WeakMap ( [ iterable ] )
3572 function WeakMap(/*iterable*/) {
3573 var map = strict(this);
3574 var iterable = arguments[
0];
3576 if (Type(map) !== 'object') throw TypeError();
3577 if ('[[WeakMapData]]' in map) throw TypeError();
3579 if (iterable !== undefined) {
3580 var adder = map['set'];
3581 if (!IsCallable(adder)) throw TypeError();
3582 var iter = GetIterator(ToObject(iterable));
3584 set_internal(map, '[[WeakMapData]]', new EphemeronTable);
3585 if (iter === undefined) return map;
3587 var next = IteratorStep(iter);
3590 var nextValue = IteratorValue(next);
3591 if (Type(nextValue) !== 'object') throw TypeError();
3592 var k = nextValue[
0];
3593 var v = nextValue[
1];
3594 adder.call(map, k, v);
3600 if (!('WeakMap' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3601 global.WeakMap = WeakMap;
3603 //
23.3.2 Properties of the WeakMap Constructor
3604 //
23.3.2.1 WeakMap.prototype
3605 var $WeakMapPrototype$ = {};
3606 WeakMap.prototype = $WeakMapPrototype$;
3610 //
23.3.2.2 WeakMap[ @@create ] ( )
3611 //
23.3.3 Properties of the WeakMap Prototype Object
3613 //
23.3.3.1 WeakMap.prototype.constructor
3615 //
23.3.3.2 WeakMap.prototype.delete ( key )
3617 WeakMap.prototype, 'delete',
3618 function delete_(key) {
3619 var M = strict(this);
3620 if (Type(M) !== 'object') throw TypeError();
3621 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3622 if (Type(key) !== 'object') throw TypeError('Expected object');
3623 return M['[[WeakMapData]]'].remove(key);
3626 //
23.3.3.3 WeakMap.prototype.get ( key )
3628 WeakMap.prototype, 'get',
3629 function get(key, defaultValue) {
3630 var M = strict(this);
3631 if (Type(M) !== 'object') throw TypeError();
3632 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3633 if (Type(key) !== 'object') throw TypeError('Expected object');
3634 return M['[[WeakMapData]]'].get(key, defaultValue);
3637 //
23.3.3.4 WeakMap.prototype.has ( key )
3639 WeakMap.prototype, 'has',
3641 var M = strict(this);
3642 if (Type(M) !== 'object') throw TypeError();
3643 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3644 if (Type(key) !== 'object') throw TypeError('Expected object');
3645 return M['[[WeakMapData]]'].has(key);
3648 //
23.3.3.5 WeakMap.prototype.set ( key , value )
3650 WeakMap.prototype, 'set',
3651 function set(key, value) {
3652 var M = strict(this);
3653 if (Type(M) !== 'object') throw TypeError();
3654 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3655 if (Type(key) !== 'object') throw TypeError('Expected object');
3656 M['[[WeakMapData]]'].set(key, value);
3660 //
23.3.3.6 WeakMap.prototype [ @@toStringTag ]
3661 define(global.WeakMap.prototype, $$toStringTag, 'WeakMap');
3663 //
23.3.4 Properties of WeakMap Instances
3665 // Polyfills for incomplete native implementations:
3667 var wm = new global.WeakMap();
3668 var orig = global.WeakMap.prototype.set;
3669 define(global.WeakMap.prototype, 'set', function set() {
3670 orig.apply(this, arguments);
3672 }, wm.set({},
0) !== wm);
3676 // ---------------------------------------
3677 //
23.4 WeakSet Objects
3678 // ---------------------------------------
3681 //
23.4.1 The WeakSet Constructor
3682 //
23.4.1.1 WeakSet ( [ iterable ] )
3684 function WeakSet(/*iterable*/) {
3685 var set = strict(this);
3686 var iterable = arguments[
0];
3688 if (Type(set) !== 'object') throw TypeError();
3689 if ('[[WeakSetData]]' in set) throw TypeError();
3691 if (iterable !== undefined) {
3692 var adder = set['add'];
3693 if (!IsCallable(adder)) throw TypeError();
3694 var iter = GetIterator(ToObject(iterable));
3696 set_internal(set, '[[WeakSetData]]', new EphemeronTable);
3697 if (iter === undefined) return set;
3699 var next = IteratorStep(iter);
3702 var nextValue = IteratorValue(next);
3703 adder.call(set, nextValue);
3709 if (!('WeakSet' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3710 global.WeakSet = WeakSet;
3712 //
23.4.2 Properties of the WeakSet Constructor
3713 //
23.4.2.1 WeakSet.prototype
3714 var $WeakSetPrototype$ = {};
3715 WeakSet.prototype = $WeakSetPrototype$;
3717 //
23.4.3 Properties of the WeakSet Prototype Object
3718 //
23.4.3.1 WeakSet.prototype.add (value )
3720 WeakSet.prototype, 'add',
3721 function add(value) {
3722 var S = strict(this);
3723 if (Type(S) !== 'object') throw TypeError();
3724 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3725 if (Type(value) !== 'object') throw TypeError('Expected object');
3726 S['[[WeakSetData]]'].set(value, true);
3730 //
23.4.3.2 WeakSet.prototype.constructor
3731 //
23.4.3.3 WeakSet.prototype.delete ( value )
3733 WeakSet.prototype, 'delete',
3734 function delete_(value) {
3735 var S = strict(this);
3736 if (Type(S) !== 'object') throw TypeError();
3737 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3738 if (Type(value) !== 'object') throw TypeError('Expected object');
3739 return S['[[WeakSetData]]'].remove(value);
3742 //
23.4.3.4 WeakSet.prototype.has ( value )
3744 WeakSet.prototype, 'has',
3746 var S = strict(this);
3747 if (Type(S) !== 'object') throw TypeError();
3748 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3749 if (Type(key) !== 'object') throw TypeError('Expected object');
3750 return S['[[WeakSetData]]'].has(key);
3753 //
23.4.3.5 WeakSet.prototype [ @@toStringTag ]
3754 define(global.WeakSet.prototype, $$toStringTag, 'WeakSet');
3756 //
23.4.4 Properties of WeakSet Instances
3758 // Polyfills for incomplete native implementations:
3760 var ws = new global.WeakSet();
3761 var orig = global.WeakSet.prototype.add;
3762 define(global.WeakSet.prototype, 'add', function add() {
3763 orig.apply(this, arguments);
3765 }, ws.add({}) !== ws);
3769 // ---------------------------------------
3770 //
24 Structured Data
3771 // ---------------------------------------
3773 // ---------------------------------------
3774 //
24.1 ArrayBuffer Objects
3775 // ---------------------------------------
3777 // See typedarray.js for TypedArray polyfill
3780 if (!('ArrayBuffer' in global))
3783 //
24.1.1 Abstract Operations For ArrayBuffer Objects
3784 //
24.1.1.1 AllocateArrayBuffer( constructor, byteLength )
3785 //
24.1.1.2 IsDetachedBuffer( arrayBuffer )
3786 //
24.1.1.3 DetachArrayBuffer( arrayBuffer )
3787 //
24.1.1.4 CloneArrayBuffer( srcBuffer, srcByteOffset [, cloneConstructor] )
3788 //
24.1.1.5 GetValueFromBuffer ( arrayBuffer, byteIndex, type, isLittleEndian )
3789 //
24.1.1.6 SetValueInBuffer ( arrayBuffer, byteIndex, type, value, isLittleEndian )
3790 //
24.1.2 The ArrayBuffer Constructor
3791 //
24.1.2.1 ArrayBuffer( length )
3792 //
24.1.3 Properties of the ArrayBuffer Constructor
3794 //
24.1.3.1 ArrayBuffer.isView ( arg )
3796 ArrayBuffer, 'isView',
3797 function isView(arg) {
3798 if (Type(arg) !== 'object') return false;
3799 if ('buffer' in arg && arg.buffer instanceof ArrayBuffer) return true;
3803 //
24.1.3.2 ArrayBuffer.prototype
3804 //
24.1.3.3 get ArrayBuffer [ @@species ]
3805 //
24.1.4 Properties of the ArrayBuffer Prototype Object
3806 //
24.1.4.1 get ArrayBuffer.prototype.byteLength
3807 //
24.1.4.2 ArrayBuffer.prototype.constructor
3808 //
24.1.4.3 ArrayBuffer.prototype.slice ( start , end)
3810 //
24.1.4.4 ArrayBuffer.prototype [ @@toStringTag ]
3811 define(ArrayBuffer.prototype, $$toStringTag, 'ArrayBuffer');
3813 //
24.1.5 Properties of the ArrayBuffer Instances
3816 // ---------------------------------------
3817 //
24.2 DataView Objects
3818 // ---------------------------------------
3820 // See typedarray.js for TypedArray polyfill
3823 if (!('DataView' in global))
3826 //
24.2.1 Abstract Operations For DataView Objects
3827 //
24.2.1.1 GetViewValue(view, requestIndex, isLittleEndian, type)
3828 //
24.2.1.2 SetViewValue(view, requestIndex, isLittleEndian, type, value)
3829 //
24.2.2 The DataView Constructor
3830 //
24.2.2.1 DataView (buffer [ , byteOffset [ , byteLength ] ] )
3831 //
24.2.3 Properties of the DataView Constructor
3832 //
24.2.3.1 DataView.prototype
3833 //
24.2.4 Properties of the DataView Prototype Object
3834 //
24.2.4.1 get DataView.prototype.buffer
3835 //
24.2.4.2 get DataView.prototype.byteLength
3836 //
24.2.4.3 get DataView.prototype.byteOffset
3837 //
24.2.4.4 DataView.prototype.constructor
3838 //
24.2.4.5 DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] )
3839 //
24.2.4.6 DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] )
3840 //
24.2.4.7 DataView.prototype.getInt8 ( byteOffset )
3841 //
24.2.4.8 DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] )
3842 //
24.2.4.9 DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] )
3843 //
24.2.4.10 DataView.prototype.getUint8 ( byteOffset )
3844 //
24.2.4.11 DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] )
3845 //
24.2.4.12 DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] )
3846 //
24.2.4.13 DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] )
3847 //
24.2.4.14 DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] )
3848 //
24.2.4.15 DataView.prototype.setInt8 ( byteOffset, value )
3849 //
24.2.4.16 DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] )
3850 //
24.2.4.17 DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] )
3851 //
24.2.4.18 DataView.prototype.setUint8 ( byteOffset, value )
3852 //
24.2.4.19 DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] )
3853 //
24.2.4.20 DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] )
3855 //
24.2.4.21 DataView.prototype[ @@toStringTag ]
3856 define(DataView.prototype, $$toStringTag, 'DataView');
3858 //
24.2.5 Properties of DataView Instances
3861 // ---------------------------------------
3862 //
24.3 The JSON Object
3863 // ---------------------------------------
3865 //
24.3.1 JSON.parse ( text [ , reviver ] )
3866 //
24.3.2 JSON.stringify ( value [ , replacer [ , space ] ] )
3867 //
24.3.3 JSON [ @@toStringTag ]
3868 define(JSON, $$toStringTag, 'JSON');
3870 // ---------------------------------------
3872 // ---------------------------------------
3874 //
25.1.1 Common Iteration Interfaces
3875 //
25.1.1.1 The Iterable Interface
3876 //
25.1.1.2 The Iterator Interface
3877 //
25.1.1.3 The IteratorResult Interface
3879 //
25.1.2 The %IteratorPrototype% Object
3880 // Defined earlier, so other prototypes can reference it.
3881 //
25.1.2.1 %IteratorPrototype% [ @@iterator ] ( )
3882 define($IteratorPrototype$, $$iterator, function() {
3887 // ---------------------------------------
3888 //
25.4 Promise Objects
3889 // ---------------------------------------
3892 //
25.4 Promise Objects
3894 //
25.4.1 Promise Abstract Operations
3896 //
25.4.1.1 PromiseCapability Records
3897 //
25.4.1.1.1 IfAbruptRejectPromise ( value, capability )
3899 function IfAbruptRejectPromise(value, capability) {
3900 var rejectResult = capability['[[Reject]]'].call(undefined, value);
3901 return capability['[[Promise]]'];
3904 //
25.4.1.2 PromiseReaction Records
3906 //
25.4.1.3 CreateResolvingFunctions ( promise )
3908 function CreateResolvingFunctions(promise) {
3909 var alreadyResolved = {'[[value]]': false};
3910 var resolve = PromiseResolveFunction();
3911 set_internal(resolve, '[[Promise]]', promise);
3912 set_internal(resolve, '[[AlreadyResolved]]', alreadyResolved);
3913 var reject = PromiseRejectFunction();
3914 set_internal(reject, '[[Promise]]', promise);
3915 set_internal(reject, '[[AlreadyResolved]]', alreadyResolved);
3916 return { '[[Resolve]]': resolve, '[[Reject]]': reject};
3919 //
25.4.1.3.1 Promise Reject Functions
3921 function PromiseRejectFunction() {
3922 var F = function(reason) {
3923 console.assert(Type(F['[[Promise]]']) === 'object');
3924 var promise = F['[[Promise]]'];
3925 var alreadyResolved = F['[[AlreadyResolved]]'];
3926 if (alreadyResolved['[[value]]']) return undefined;
3927 set_internal(alreadyResolved, '[[value]]', true);
3928 return RejectPromise(promise, reason);
3933 //
25.4.1.3.2 Promise Resolve Functions
3935 function PromiseResolveFunction() {
3936 var F = function(resolution) {
3937 console.assert(Type(F['[[Promise]]']) === 'object');
3938 var promise = F['[[Promise]]'];
3939 var alreadyResolved = F['[[AlreadyResolved]]'];
3940 if (alreadyResolved['[[value]]']) return undefined;
3941 set_internal(alreadyResolved, '[[value]]', true);
3943 if (SameValue(resolution, promise)) {
3944 var selfResolutionError = TypeError();
3945 return RejectPromise(promise, selfResolutionError);
3947 if (Type(resolution) !== 'object')
3948 return FulfillPromise(promise, resolution);
3950 var then = resolution['then'];
3952 return RejectPromise(promise, then);
3954 if (!IsCallable(then))
3955 return FulfillPromise(promise, resolution);
3956 EnqueueJob('PromiseJobs', PromiseResolveThenableJob, [promise, resolution, then]);
3962 //
25.4.1.4 FulfillPromise ( promise, value )
3964 function FulfillPromise(promise, value) {
3965 console.assert(promise['[[PromiseState]]'] === 'pending');
3966 var reactions = promise['[[PromiseFulfillReactions]]'];
3967 set_internal(promise, '[[PromiseResult]]', value);
3968 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
3969 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
3970 set_internal(promise, '[[PromiseState]]', 'fulfilled');
3971 return TriggerPromiseReactions(reactions, value);
3974 //
25.4.1.5 NewPromiseCapability ( C )
3976 function NewPromiseCapability(c) {
3977 // To keep Promise hermetic, this doesn't look much like the spec.
3978 return CreatePromiseCapabilityRecord(undefined, c);
3981 //
25.4.1.5.1 CreatePromiseCapabilityRecord ( promise, constructor )
3983 function CreatePromiseCapabilityRecord(promise, constructor) {
3984 // To keep Promise hermetic, this doesn't look much like the spec.
3985 console.assert(IsConstructor(constructor));
3986 var promiseCapability = {};
3987 set_internal(promiseCapability, '[[Promise]]', promise);
3988 set_internal(promiseCapability, '[[Resolve]]', undefined);
3989 set_internal(promiseCapability, '[[Reject]]', undefined);
3990 var executor = GetCapabilitiesExecutor();
3991 set_internal(executor, '[[Capability]]', promiseCapability);
3993 // NOTE: Differs from spec; object is constructed here
3994 var constructorResult = promise = new constructor(executor);
3995 set_internal(promiseCapability, '[[Promise]]', promise);
3997 if (!IsCallable(promiseCapability['[[Resolve]]'])) throw TypeError();
3998 if (!IsCallable(promiseCapability['[[Reject]]'])) throw TypeError();
3999 if (Type(constructorResult) === 'object' && !SameValue(promise, constructorResult)) throw TypeError();
4000 return promiseCapability;
4003 //
25.4.1.5.2 GetCapabilitiesExecutor Functions
4005 function GetCapabilitiesExecutor() {
4006 var F = function(resolve, reject) {
4007 console.assert(F['[[Capability]]']);
4008 var promiseCapability = F['[[Capability]]'];
4009 if (promiseCapability['[[Resolve]]'] !== undefined) throw TypeError();
4010 if (promiseCapability['[[Reject]]'] !== undefined) throw TypeError();
4011 set_internal(promiseCapability, '[[Resolve]]', resolve);
4012 set_internal(promiseCapability, '[[Reject]]', reject);
4018 //
25.4.1.6 IsPromise ( x )
4020 function IsPromise(x) {
4021 if (Type(x) !== 'object') return false;
4022 if (!('[[PromiseState]]' in x)) return false;
4023 if (x['[[PromiseState]]'] === undefined) return false;
4027 //
25.4.1.7 RejectPromise ( promise, reason )
4029 function RejectPromise(promise, reason) {
4030 console.assert(promise['[[PromiseState]]'] === 'pending');
4031 var reactions = promise['[[PromiseRejectReactions]]'];
4032 set_internal(promise, '[[PromiseResult]]', reason);
4033 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4034 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4035 set_internal(promise, '[[PromiseState]]', 'rejected');
4036 return TriggerPromiseReactions(reactions, reason);
4039 //
25.4.1.8 TriggerPromiseReactions ( reactions, argument )
4041 function TriggerPromiseReactions(reactions, argument) {
4042 for (var i =
0, len = reactions.length; i < len; ++i)
4043 EnqueueJob('PromiseJobs', PromiseReactionJob, [reactions[i], argument]);
4047 //
25.4.2 Promise Jobs
4049 //
25.4.2.1 PromiseReactionJob ( reaction, argument )
4051 function PromiseReactionJob(reaction, argument) {
4052 var promiseCapability = reaction['[[Capabilities]]'];
4053 var handler = reaction['[[Handler]]'];
4054 var handlerResult, status;
4056 if (handler === 'Identity') handlerResult = argument;
4057 else if (handler === 'Thrower') throw argument;
4058 else handlerResult = handler.call(undefined, argument);
4059 } catch (handlerResult) {
4060 status = promiseCapability['[[Reject]]'].call(undefined, handlerResult);
4061 NextJob(status); return;
4063 status = promiseCapability['[[Resolve]]'].call(undefined, handlerResult);
4067 //
25.4.2.2 PromiseResolveThenableJob ( promiseToResolve, thenable, then)
4069 function PromiseResolveThenableJob(promiseToResolve, thenable, then) {
4070 // SPEC BUG: promise vs. promiseToResolve
4071 var resolvingFunctions = CreateResolvingFunctions(promiseToResolve);
4073 var thenCallResult = then.call(thenable, resolvingFunctions['[[Resolve]]'],
4074 resolvingFunctions['[[Reject]]']);
4075 } catch (thenCallResult) {
4076 var status = resolvingFunctions['[[Reject]]'].call(undefined, thenCallResult);
4077 NextJob(status); return;
4079 NextJob(thenCallResult);
4082 //
25.4.3 The Promise Constructor
4084 //
25.4.3.1 Promise ( executor )
4086 function Promise(executor) {
4087 var config = { configurable: false, enumerable: false, writable: true, value: undefined };
4088 Object.defineProperty(this, '[[PromiseState]]', config);
4089 Object.defineProperty(this, '[[PromiseConstructor]]', config);
4090 Object.defineProperty(this, '[[PromiseResult]]', config);
4091 Object.defineProperty(this, '[[PromiseFulfillReactions]]', config);
4092 Object.defineProperty(this, '[[PromiseRejectReactions]]', config);
4095 if (Type(promise) !== 'object') throw new TypeError();
4096 if (!('[[PromiseState]]' in promise)) throw TypeError();
4097 if (promise['[[PromiseState]]'] !== undefined) throw TypeError();
4098 if (!IsCallable(executor)) throw TypeError();
4100 set_internal(promise, '[[PromiseConstructor]]', Promise);
4102 return InitializePromise(promise, executor);
4105 //
25.4.3.1.1 InitializePromise ( promise, executor )
4107 function InitializePromise(promise, executor) {
4108 console.assert('[[PromiseState]]' in promise);
4109 console.assert(IsCallable(executor));
4110 set_internal(promise, '[[PromiseState]]', 'pending');
4111 set_internal(promise, '[[PromiseFulfillReactions]]', []);
4112 set_internal(promise, '[[PromiseRejectReactions]]', []);
4113 var resolvingFunctions = CreateResolvingFunctions(promise);
4115 var completion = executor.call(undefined, resolvingFunctions['[[Resolve]]'],
4116 resolvingFunctions['[[Reject]]']);
4117 } catch (completion) {
4118 var status = resolvingFunctions['[[Reject]]'].call(undefined, completion);
4123 //
25.4.4 Properties of the Promise Constructor
4124 //
25.4.4.1 Promise.all ( iterable )
4126 define(Promise, 'all', function all(iterable) {
4127 var c = strict(this);
4128 var promiseCapability = NewPromiseCapability(c);
4130 var iterator = GetIterator(iterable);
4132 promiseCapability['[[Reject]]'].call(undefined, value);
4133 return promiseCapability['[[Promise]]'];
4136 var remainingElementsCount = { value:
1 };
4140 var next = IteratorStep(iterator);
4142 promiseCapability['[[Reject]]'].call(undefined, value);
4143 return promiseCapability['[[Promise]]'];
4146 remainingElementsCount.value -=
1;
4147 if (remainingElementsCount.value ===
0) {
4148 var resolveResult = promiseCapability['[[Resolve]]'].apply(undefined, values);
4152 return promiseCapability['[[Promise]]'];
4155 var nextValue = IteratorValue(next);
4157 promiseCapability['[[Reject]]'].call(undefined, value);
4158 return promiseCapability['[[Promise]]'];
4161 var nextPromise = c.resolve(nextValue);
4163 promiseCapability['[[Reject]]'].call(undefined, value);
4164 return promiseCapability['[[Promise]]'];
4166 var resolveElement = PromiseAllResolveElementFunction();
4167 set_internal(resolveElement, '[[AlreadyCalled]]', { value: false });
4168 set_internal(resolveElement, '[[Index]]', index);
4169 set_internal(resolveElement, '[[Values]]', values);
4170 set_internal(resolveElement, '[[Capabilities]]', promiseCapability);
4171 set_internal(resolveElement, '[[RemainingElements]]', remainingElementsCount);
4172 remainingElementsCount.value +=
1;
4174 var result = nextPromise.then(resolveElement, promiseCapability['[[Reject]]']);
4176 promiseCapability['[[Reject]]'].call(undefined, value);
4177 return promiseCapability['[[Promise]]'];
4183 //
25.4.4.1.1 Promise.all Resolve Element Functions
4185 function PromiseAllResolveElementFunction() {
4186 var F = function(x) {
4187 var alreadyCalled = F['[[AlreadyCalled]]'];
4188 if (alreadyCalled.value) return undefined;
4189 alreadyCalled.value = true;
4190 var index = F['[[Index]]'];
4191 var values = F['[[Values]]'];
4192 var promiseCapability = F['[[Capabilities]]'];
4193 var remainingElementsCount = F['[[RemainingElements]]'];
4197 promiseCapability['[[Reject]]'].call(undefined, result);
4198 return promiseCapability['[[Promise]]'];
4200 remainingElementsCount.value -=
1;
4201 if (remainingElementsCount.value ===
0)
4202 return promiseCapability['[[Resolve]]'].call(undefined, values);
4208 //
25.4.4.2 Promise.prototype
4210 Promise.prototype = {};
4212 //
25.4.4.3 Promise.race ( iterable )
4214 define(Promise, 'race', function race(iterable) {
4215 var c = strict(this);
4216 var promiseCapability = NewPromiseCapability(c);
4218 var iterator = GetIterator(iterable);
4220 promiseCapability['[[Reject]]'].call(undefined, value);
4221 return promiseCapability['[[Promise]]'];
4225 var next = IteratorStep(iterator);
4227 promiseCapability['[[Reject]]'].call(undefined, value);
4228 return promiseCapability['[[Promise]]'];
4230 if (!next) return promiseCapability['[[Promise]]'];
4232 var nextValue = IteratorValue(next);
4234 promiseCapability['[[Reject]]'].call(undefined, value);
4235 return promiseCapability['[[Promise]]'];
4238 var nextPromise = c.resolve(nextValue);
4240 promiseCapability['[[Reject]]'].call(undefined, value);
4241 return promiseCapability['[[Promise]]'];
4244 nextPromise.then(promiseCapability['[[Resolve]]'], promiseCapability['[[Reject]]']);
4246 promiseCapability['[[Reject]]'].call(undefined, value);
4247 return promiseCapability['[[Promise]]'];
4252 //
25.4.4.4 Promise.reject ( r )
4254 define(Promise, 'reject', function reject(r) {
4255 var c = strict(this);
4256 var promiseCapability = NewPromiseCapability(c);
4257 var rejectResult = promiseCapability['[[Reject]]'].call(undefined, r);
4258 return promiseCapability['[[Promise]]'];
4261 //
25.4.4.5 Promise.resolve ( x )
4263 define(Promise, 'resolve', function resolve(x) {
4264 var c = strict(this);
4266 var constructor = x['[[PromiseConstructor]]'];
4267 if (SameValue(constructor, c)) return x;
4269 var promiseCapability = NewPromiseCapability(c);
4270 var resolveResult = promiseCapability['[[Resolve]]'].call(undefined, x);
4271 return promiseCapability['[[Promise]]'];
4274 //
25.4.4.6 Promise [ @@create ] ( )
4275 //
25.4.4.6.1 AllocatePromise ( constructor )
4276 //
25.4.5 Properties of the Promise Prototype Object
4277 //
25.4.5.1 Promise.prototype.catch ( onRejected )
4279 define(Promise.prototype, 'catch', function catch_(onRejected) {
4281 return promise.then(undefined, onRejected);
4284 //
25.4.5.2 Promise.prototype.constructor
4286 Promise.prototype.constructor = Promise;
4288 //
25.4.5.3 Promise.prototype.then ( onFulfilled , onRejected )
4290 define(Promise.prototype, 'then', function then(onFulfilled, onRejected) {
4292 if (!IsPromise(promise)) throw TypeError();
4293 if (!IsCallable(onFulfilled)) onFulfilled = 'Identity';
4294 if (!IsCallable(onRejected)) onRejected = 'Thrower';
4295 var c = promise.constructor;
4296 var promiseCapability = NewPromiseCapability(c);
4297 var fulfillReaction = { '[[Capabilities]]': promiseCapability,
4298 '[[Handler]]': onFulfilled };
4299 var rejectReaction = { '[[Capabilities]]': promiseCapability,
4300 '[[Handler]]': onRejected };
4301 if (promise['[[PromiseState]]'] === 'pending') {
4302 promise['[[PromiseFulfillReactions]]'].push(fulfillReaction);
4303 promise['[[PromiseRejectReactions]]'].push(rejectReaction);
4304 } else if (promise['[[PromiseState]]'] === 'fulfilled') {
4305 var value = promise['[[PromiseResult]]'];
4306 EnqueueJob('PromiseJobs', PromiseReactionJob, [fulfillReaction, value]);
4307 } else if (promise['[[PromiseState]]'] === 'rejected') {
4308 var reason = promise['[[PromiseResult]]'];
4309 EnqueueJob('PromiseJobs', PromiseReactionJob, [rejectReaction, reason]);
4311 return promiseCapability['[[Promise]]'];
4314 //
25.4.6 Properties of Promise Instances
4316 if (!('Promise' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4317 global.Promise = Promise;
4319 // Patch early Promise.cast vs. Promise.resolve implementations
4320 if ('cast' in global.Promise) global.Promise.resolve = global.Promise.cast;
4323 //
25.4.5.1 Promise.prototype [ @@toStringTag ]
4324 define(Promise.prototype, $$toStringTag, 'Promise');
4326 // ---------------------------------------
4328 // ---------------------------------------
4331 //
26.1 The Reflect Object
4332 if (!('Reflect' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4333 global.Reflect = {};
4335 //
26.1.1 Reflect.apply ( target, thisArgument, argumentsList )
4338 function apply(target, thisArgument, argumentsList) {
4339 if (!IsCallable(target)) throw TypeError();
4340 return Function.prototype.apply.call(target, thisArgument, argumentsList);
4343 //
26.1.2 Reflect.construct ( target, argumentsList [, newTarget] )
4345 Reflect, 'construct',
4346 function construct(target, argumentsList) {
4347 return __cons(target, argumentsList);
4350 //
26.1.3 Reflect.defineProperty ( target, propertyKey, attributes )
4352 Reflect, 'defineProperty',
4353 function defineProperty(target, propertyKey, attributes) {
4355 Object.defineProperty(target, propertyKey, attributes);
4362 //
26.1.4 Reflect.deleteProperty ( target, propertyKey )
4364 Reflect, 'deleteProperty',
4365 function deleteProperty(target,name) {
4367 delete target[name];
4368 return !HasOwnProperty(target, name);
4374 //
26.1.5 Reflect.enumerate ( target )
4376 Reflect, 'enumerate',
4377 function enumerate(target) {
4378 target = ToObject(target);
4379 var iterator = Enumerate(target);
4383 //
26.1.6 Reflect.get ( target, propertyKey [ , receiver ])
4386 function get(target, name, receiver) {
4387 target = ToObject(target);
4388 name = String(name);
4389 receiver = (receiver === undefined) ? target : ToObject(receiver);
4390 var desc = getPropertyDescriptor(target, name);
4391 if (desc && 'get' in desc)
4392 return Function.prototype.call.call(desc['get'], receiver);
4393 return target[name];
4396 //
26.1.7 Reflect.getOwnPropertyDescriptor ( target, propertyKey )
4398 Reflect, 'getOwnPropertyDescriptor',
4399 Object.getOwnPropertyDescriptor);
4401 //
26.1.8 Reflect.getPrototypeOf ( target )
4403 Reflect, 'getPrototypeOf',
4404 Object.getPrototypeOf);
4406 //
26.1.9 Reflect.has ( target, propertyKey )
4409 function has(target,name) {
4410 return String(name) in ToObject(target);
4413 //
26.1.10 Reflect.isExtensible (target)
4415 Reflect, 'isExtensible',
4416 Object.isExtensible);
4418 //
26.1.11 Reflect.ownKeys ( target )
4421 function ownKeys(target) {
4422 var obj = ToObject(target);
4423 return Object.getOwnPropertyNames(obj);
4426 //
26.1.12 Reflect.preventExtensions ( target )
4428 Reflect, 'preventExtensions',
4429 function preventExtensions(target) {
4430 try { Object.preventExtensions(target); return true; } catch (_) { return false; }
4433 //
26.1.13 Reflect.set ( target, propertyKey, V [ , receiver ] )
4436 function set(target, name, value, receiver) {
4437 target = ToObject(target);
4438 name = String(name);
4439 receiver = (receiver === undefined) ? target : ToObject(receiver);
4440 var desc = getPropertyDescriptor(target, name);
4442 if (desc && 'set' in desc)
4443 Function.prototype.call.call(desc['set'], receiver, value);
4445 target[name] = value;
4452 //
26.1.14 Reflect.setPrototypeOf ( target, proto )
4454 Reflect, 'setPrototypeOf',
4455 function setPrototypeOf(target, proto) {
4457 target.__proto__ = proto;
4458 return Reflect.getPrototypeOf(target) === proto;
4466 // ---------------------------------------
4467 //
26.2 Proxy Objects
4468 // ---------------------------------------
4470 // Not polyfillable.
4474 // This helper is defined outside the main scope so that the use of
4475 // 'eval' does not taint the scope for minifiers.
4476 function __cons(t, a) {
4477 return eval('new t(' + a.map(function(_, i) { return 'a[' + i + ']'; }).join(',') + ')');
4480 <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){
4483 exports.byteLength = byteLength
4484 exports.toByteArray = toByteArray
4485 exports.fromByteArray = fromByteArray
4489 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
4491 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
4492 for (var i =
0, len = code.length; i < len; ++i) {
4494 revLookup[code.charCodeAt(i)] = i
4497 revLookup['-'.charCodeAt(
0)] =
62
4498 revLookup['_'.charCodeAt(
0)] =
63
4500 function placeHoldersCount (b64) {
4501 var len = b64.length
4503 throw new Error('Invalid string. Length must be a multiple of
4')
4506 // the number of equal signs (place holders)
4507 // if there are two placeholders, than the two characters before it
4508 // represent one byte
4509 // if there is only one, then the three characters before it represent
2 bytes
4510 // this is just a cheap hack to not do indexOf twice
4511 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
4514 function byteLength (b64) {
4515 // base64 is
4/
3 + up to two characters of the original data
4516 return b64.length *
3 /
4 - placeHoldersCount(b64)
4519 function toByteArray (b64) {
4520 var i, j, l, tmp, placeHolders, arr
4521 var len = b64.length
4522 placeHolders = placeHoldersCount(b64)
4524 arr = new Arr(len *
3 /
4 - placeHolders)
4526 // if there are placeholders, only get up to the last complete
4 chars
4527 l = placeHolders
> 0 ? len -
4 : len
4531 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
4532 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
4533 arr[L++] = (tmp
>> 16) &
0xFF
4534 arr[L++] = (tmp
>> 8) &
0xFF
4535 arr[L++] = tmp &
0xFF
4538 if (placeHolders ===
2) {
4539 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
4540 arr[L++] = tmp &
0xFF
4541 } else if (placeHolders ===
1) {
4542 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
4543 arr[L++] = (tmp
>> 8) &
0xFF
4544 arr[L++] = tmp &
0xFF
4550 function tripletToBase64 (num) {
4551 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
4554 function encodeChunk (uint8, start, end) {
4557 for (var i = start; i < end; i +=
3) {
4558 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
4559 output.push(tripletToBase64(tmp))
4561 return output.join('')
4564 function fromByteArray (uint8) {
4566 var len = uint8.length
4567 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
4570 var maxChunkLength =
16383 // must be multiple of
3
4572 // go through the array every three bytes, we'll deal with trailing stuff later
4573 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
4574 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
4577 // pad the end with zeros, but make sure to not forget the extra bytes
4578 if (extraBytes ===
1) {
4579 tmp = uint8[len -
1]
4580 output += lookup[tmp
>> 2]
4581 output += lookup[(tmp <<
4) &
0x3F]
4583 } else if (extraBytes ===
2) {
4584 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
4585 output += lookup[tmp
>> 10]
4586 output += lookup[(tmp
>> 4) &
0x3F]
4587 output += lookup[(tmp <<
2) &
0x3F]
4593 return parts.join('')
4596 },{}],
2:[function(require,module,exports){
4598 * The buffer module from node.js, for the browser.
4600 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
4603 /* eslint-disable no-proto */
4607 var base64 = require('base64-js')
4608 var ieee754 = require('ieee754')
4610 exports.Buffer = Buffer
4611 exports.SlowBuffer = SlowBuffer
4612 exports.INSPECT_MAX_BYTES =
50
4614 var K_MAX_LENGTH =
0x7fffffff
4615 exports.kMaxLength = K_MAX_LENGTH
4618 * If `Buffer.TYPED_ARRAY_SUPPORT`:
4619 * === true Use Uint8Array implementation (fastest)
4620 * === false Print warning and recommend using `buffer` v4.x which has an Object
4621 * implementation (most compatible, even IE6)
4623 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
4624 * Opera
11.6+, iOS
4.2+.
4626 * We report that the browser does not support typed arrays if the are not subclassable
4627 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
4628 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
4629 * for __proto__ and has a buggy typed array implementation.
4631 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
4633 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
4634 typeof console.error === 'function') {
4636 'This browser lacks typed array (Uint8Array) support which is required by ' +
4637 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
4641 function typedArraySupport () {
4642 // Can typed array instances can be augmented?
4644 var arr = new Uint8Array(
1)
4645 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
4646 return arr.foo() ===
42
4652 function createBuffer (length) {
4653 if (length
> K_MAX_LENGTH) {
4654 throw new RangeError('Invalid typed array length')
4656 // Return an augmented `Uint8Array` instance
4657 var buf = new Uint8Array(length)
4658 buf.__proto__ = Buffer.prototype
4663 * The Buffer constructor returns instances of `Uint8Array` that have their
4664 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
4665 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
4666 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
4667 * returns a single octet.
4669 * The `Uint8Array` prototype remains unmodified.
4672 function Buffer (arg, encodingOrOffset, length) {
4674 if (typeof arg === 'number') {
4675 if (typeof encodingOrOffset === 'string') {
4677 'If encoding is specified then the first argument must be a string'
4680 return allocUnsafe(arg)
4682 return from(arg, encodingOrOffset, length)
4685 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
4686 if (typeof Symbol !== 'undefined' && Symbol.species &&
4687 Buffer[Symbol.species] === Buffer) {
4688 Object.defineProperty(Buffer, Symbol.species, {
4696 Buffer.poolSize =
8192 // not used by this implementation
4698 function from (value, encodingOrOffset, length) {
4699 if (typeof value === 'number') {
4700 throw new TypeError('"value" argument must not be a number')
4703 if (value instanceof ArrayBuffer) {
4704 return fromArrayBuffer(value, encodingOrOffset, length)
4707 if (typeof value === 'string') {
4708 return fromString(value, encodingOrOffset)
4711 return fromObject(value)
4715 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
4716 * if value is a number.
4717 * Buffer.from(str[, encoding])
4718 * Buffer.from(array)
4719 * Buffer.from(buffer)
4720 * Buffer.from(arrayBuffer[, byteOffset[, length]])
4722 Buffer.from = function (value, encodingOrOffset, length) {
4723 return from(value, encodingOrOffset, length)
4726 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
4727 // https://github.com/feross/buffer/pull/
148
4728 Buffer.prototype.__proto__ = Uint8Array.prototype
4729 Buffer.__proto__ = Uint8Array
4731 function assertSize (size) {
4732 if (typeof size !== 'number') {
4733 throw new TypeError('"size" argument must be a number')
4734 } else if (size <
0) {
4735 throw new RangeError('"size" argument must not be negative')
4739 function alloc (size, fill, encoding) {
4742 return createBuffer(size)
4744 if (fill !== undefined) {
4745 // Only pay attention to encoding if it's a string. This
4746 // prevents accidentally sending in a number that would
4747 // be interpretted as a start offset.
4748 return typeof encoding === 'string'
4749 ? createBuffer(size).fill(fill, encoding)
4750 : createBuffer(size).fill(fill)
4752 return createBuffer(size)
4756 * Creates a new filled Buffer instance.
4757 * alloc(size[, fill[, encoding]])
4759 Buffer.alloc = function (size, fill, encoding) {
4760 return alloc(size, fill, encoding)
4763 function allocUnsafe (size) {
4765 return createBuffer(size <
0 ?
0 : checked(size) |
0)
4769 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
4771 Buffer.allocUnsafe = function (size) {
4772 return allocUnsafe(size)
4775 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
4777 Buffer.allocUnsafeSlow = function (size) {
4778 return allocUnsafe(size)
4781 function fromString (string, encoding) {
4782 if (typeof encoding !== 'string' || encoding === '') {
4786 if (!Buffer.isEncoding(encoding)) {
4787 throw new TypeError('"encoding" must be a valid string encoding')
4790 var length = byteLength(string, encoding) |
0
4791 var buf = createBuffer(length)
4793 var actual = buf.write(string, encoding)
4795 if (actual !== length) {
4796 // Writing a hex string, for example, that contains invalid characters will
4797 // cause everything after the first invalid character to be ignored. (e.g.
4798 // 'abxxcd' will be treated as 'ab')
4799 buf = buf.slice(
0, actual)
4805 function fromArrayLike (array) {
4806 var length = array.length <
0 ?
0 : checked(array.length) |
0
4807 var buf = createBuffer(length)
4808 for (var i =
0; i < length; i +=
1) {
4809 buf[i] = array[i] &
255
4814 function fromArrayBuffer (array, byteOffset, length) {
4815 if (byteOffset <
0 || array.byteLength < byteOffset) {
4816 throw new RangeError('\'offset\' is out of bounds')
4819 if (array.byteLength < byteOffset + (length ||
0)) {
4820 throw new RangeError('\'length\' is out of bounds')
4824 if (byteOffset === undefined && length === undefined) {
4825 buf = new Uint8Array(array)
4826 } else if (length === undefined) {
4827 buf = new Uint8Array(array, byteOffset)
4829 buf = new Uint8Array(array, byteOffset, length)
4832 // Return an augmented `Uint8Array` instance
4833 buf.__proto__ = Buffer.prototype
4837 function fromObject (obj) {
4838 if (Buffer.isBuffer(obj)) {
4839 var len = checked(obj.length) |
0
4840 var buf = createBuffer(len)
4842 if (buf.length ===
0) {
4846 obj.copy(buf,
0,
0, len)
4851 if (isArrayBufferView(obj) || 'length' in obj) {
4852 if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
4853 return createBuffer(
0)
4855 return fromArrayLike(obj)
4858 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
4859 return fromArrayLike(obj.data)
4863 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
4866 function checked (length) {
4867 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
4868 // length is NaN (which is otherwise coerced to zero.)
4869 if (length
>= K_MAX_LENGTH) {
4870 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
4871 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
4876 function SlowBuffer (length) {
4877 if (+length != length) { // eslint-disable-line eqeqeq
4880 return Buffer.alloc(+length)
4883 Buffer.isBuffer = function isBuffer (b) {
4884 return b != null && b._isBuffer === true
4887 Buffer.compare = function compare (a, b) {
4888 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
4889 throw new TypeError('Arguments must be Buffers')
4892 if (a === b) return
0
4897 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
4898 if (a[i] !== b[i]) {
4905 if (x < y) return -
1
4910 Buffer.isEncoding = function isEncoding (encoding) {
4911 switch (String(encoding).toLowerCase()) {
4929 Buffer.concat = function concat (list, length) {
4930 if (!Array.isArray(list)) {
4931 throw new TypeError('"list" argument must be an Array of Buffers')
4934 if (list.length ===
0) {
4935 return Buffer.alloc(
0)
4939 if (length === undefined) {
4941 for (i =
0; i < list.length; ++i) {
4942 length += list[i].length
4946 var buffer = Buffer.allocUnsafe(length)
4948 for (i =
0; i < list.length; ++i) {
4950 if (!Buffer.isBuffer(buf)) {
4951 throw new TypeError('"list" argument must be an Array of Buffers')
4953 buf.copy(buffer, pos)
4959 function byteLength (string, encoding) {
4960 if (Buffer.isBuffer(string)) {
4961 return string.length
4963 if (isArrayBufferView(string) || string instanceof ArrayBuffer) {
4964 return string.byteLength
4966 if (typeof string !== 'string') {
4967 string = '' + string
4970 var len = string.length
4971 if (len ===
0) return
0
4973 // Use a for loop to avoid recursion
4974 var loweredCase = false
4984 return utf8ToBytes(string).length
4993 return base64ToBytes(string).length
4995 if (loweredCase) return utf8ToBytes(string).length // assume utf8
4996 encoding = ('' + encoding).toLowerCase()
5001 Buffer.byteLength = byteLength
5003 function slowToString (encoding, start, end) {
5004 var loweredCase = false
5006 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
5007 // property of a typed array.
5009 // This behaves neither like String nor Uint8Array in that we set start/end
5010 // to their upper/lower bounds if the value passed is out of range.
5011 // undefined is handled specially as per ECMA-
262 6th Edition,
5012 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
5013 if (start === undefined || start <
0) {
5016 // Return early if start
> this.length. Done here to prevent potential uint32
5017 // coercion fail below.
5018 if (start
> this.length) {
5022 if (end === undefined || end
> this.length) {
5030 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
5038 if (!encoding) encoding = 'utf8'
5043 return hexSlice(this, start, end)
5047 return utf8Slice(this, start, end)
5050 return asciiSlice(this, start, end)
5054 return latin1Slice(this, start, end)
5057 return base64Slice(this, start, end)
5063 return utf16leSlice(this, start, end)
5066 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5067 encoding = (encoding + '').toLowerCase()
5073 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
5074 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
5075 // reliably in a browserify context because there could be multiple different
5076 // copies of the 'buffer' package in use. This method works even for Buffer
5077 // instances that were created from another copy of the `buffer` package.
5078 // See: https://github.com/feross/buffer/issues/
154
5079 Buffer.prototype._isBuffer = true
5081 function swap (b, n, m) {
5087 Buffer.prototype.swap16 = function swap16 () {
5088 var len = this.length
5089 if (len %
2 !==
0) {
5090 throw new RangeError('Buffer size must be a multiple of
16-bits')
5092 for (var i =
0; i < len; i +=
2) {
5093 swap(this, i, i +
1)
5098 Buffer.prototype.swap32 = function swap32 () {
5099 var len = this.length
5100 if (len %
4 !==
0) {
5101 throw new RangeError('Buffer size must be a multiple of
32-bits')
5103 for (var i =
0; i < len; i +=
4) {
5104 swap(this, i, i +
3)
5105 swap(this, i +
1, i +
2)
5110 Buffer.prototype.swap64 = function swap64 () {
5111 var len = this.length
5112 if (len %
8 !==
0) {
5113 throw new RangeError('Buffer size must be a multiple of
64-bits')
5115 for (var i =
0; i < len; i +=
8) {
5116 swap(this, i, i +
7)
5117 swap(this, i +
1, i +
6)
5118 swap(this, i +
2, i +
5)
5119 swap(this, i +
3, i +
4)
5124 Buffer.prototype.toString = function toString () {
5125 var length = this.length
5126 if (length ===
0) return ''
5127 if (arguments.length ===
0) return utf8Slice(this,
0, length)
5128 return slowToString.apply(this, arguments)
5131 Buffer.prototype.equals = function equals (b) {
5132 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
5133 if (this === b) return true
5134 return Buffer.compare(this, b) ===
0
5137 Buffer.prototype.inspect = function inspect () {
5139 var max = exports.INSPECT_MAX_BYTES
5140 if (this.length
> 0) {
5141 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
5142 if (this.length
> max) str += ' ... '
5144 return '
<Buffer ' + str + '
>'
5147 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
5148 if (!Buffer.isBuffer(target)) {
5149 throw new TypeError('Argument must be a Buffer')
5152 if (start === undefined) {
5155 if (end === undefined) {
5156 end = target ? target.length :
0
5158 if (thisStart === undefined) {
5161 if (thisEnd === undefined) {
5162 thisEnd = this.length
5165 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
5166 throw new RangeError('out of range index')
5169 if (thisStart
>= thisEnd && start
>= end) {
5172 if (thisStart
>= thisEnd) {
5184 if (this === target) return
0
5186 var x = thisEnd - thisStart
5188 var len = Math.min(x, y)
5190 var thisCopy = this.slice(thisStart, thisEnd)
5191 var targetCopy = target.slice(start, end)
5193 for (var i =
0; i < len; ++i) {
5194 if (thisCopy[i] !== targetCopy[i]) {
5201 if (x < y) return -
1
5206 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
5207 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
5210 // - buffer - a Buffer to search
5211 // - val - a string, Buffer, or number
5212 // - byteOffset - an index into `buffer`; will be clamped to an int32
5213 // - encoding - an optional encoding, relevant is val is a string
5214 // - dir - true for indexOf, false for lastIndexOf
5215 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
5216 // Empty buffer means no match
5217 if (buffer.length ===
0) return -
1
5219 // Normalize byteOffset
5220 if (typeof byteOffset === 'string') {
5221 encoding = byteOffset
5223 } else if (byteOffset
> 0x7fffffff) {
5224 byteOffset =
0x7fffffff
5225 } else if (byteOffset < -
0x80000000) {
5226 byteOffset = -
0x80000000
5228 byteOffset = +byteOffset // Coerce to Number.
5229 if (numberIsNaN(byteOffset)) {
5230 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
5231 byteOffset = dir ?
0 : (buffer.length -
1)
5234 // Normalize byteOffset: negative offsets start from the end of the buffer
5235 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
5236 if (byteOffset
>= buffer.length) {
5238 else byteOffset = buffer.length -
1
5239 } else if (byteOffset <
0) {
5240 if (dir) byteOffset =
0
5245 if (typeof val === 'string') {
5246 val = Buffer.from(val, encoding)
5249 // Finally, search either indexOf (if dir is true) or lastIndexOf
5250 if (Buffer.isBuffer(val)) {
5251 // Special case: looking for empty string/buffer always fails
5252 if (val.length ===
0) {
5255 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
5256 } else if (typeof val === 'number') {
5257 val = val &
0xFF // Search for a byte value [
0-
255]
5258 if (typeof Uint8Array.prototype.indexOf === 'function') {
5260 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
5262 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
5265 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
5268 throw new TypeError('val must be string, number or Buffer')
5271 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
5273 var arrLength = arr.length
5274 var valLength = val.length
5276 if (encoding !== undefined) {
5277 encoding = String(encoding).toLowerCase()
5278 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
5279 encoding === 'utf16le' || encoding === 'utf-
16le') {
5280 if (arr.length <
2 || val.length <
2) {
5290 function read (buf, i) {
5291 if (indexSize ===
1) {
5294 return buf.readUInt16BE(i * indexSize)
5301 for (i = byteOffset; i < arrLength; i++) {
5302 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
5303 if (foundIndex === -
1) foundIndex = i
5304 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
5306 if (foundIndex !== -
1) i -= i - foundIndex
5311 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
5312 for (i = byteOffset; i
>=
0; i--) {
5314 for (var j =
0; j < valLength; j++) {
5315 if (read(arr, i + j) !== read(val, j)) {
5327 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
5328 return this.indexOf(val, byteOffset, encoding) !== -
1
5331 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
5332 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
5335 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
5336 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
5339 function hexWrite (buf, string, offset, length) {
5340 offset = Number(offset) ||
0
5341 var remaining = buf.length - offset
5345 length = Number(length)
5346 if (length
> remaining) {
5351 // must be an even number of digits
5352 var strLen = string.length
5353 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
5355 if (length
> strLen /
2) {
5358 for (var i =
0; i < length; ++i) {
5359 var parsed = parseInt(string.substr(i *
2,
2),
16)
5360 if (numberIsNaN(parsed)) return i
5361 buf[offset + i] = parsed
5366 function utf8Write (buf, string, offset, length) {
5367 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
5370 function asciiWrite (buf, string, offset, length) {
5371 return blitBuffer(asciiToBytes(string), buf, offset, length)
5374 function latin1Write (buf, string, offset, length) {
5375 return asciiWrite(buf, string, offset, length)
5378 function base64Write (buf, string, offset, length) {
5379 return blitBuffer(base64ToBytes(string), buf, offset, length)
5382 function ucs2Write (buf, string, offset, length) {
5383 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
5386 Buffer.prototype.write = function write (string, offset, length, encoding) {
5387 // Buffer#write(string)
5388 if (offset === undefined) {
5390 length = this.length
5392 // Buffer#write(string, encoding)
5393 } else if (length === undefined && typeof offset === 'string') {
5395 length = this.length
5397 // Buffer#write(string, offset[, length][, encoding])
5398 } else if (isFinite(offset)) {
5399 offset = offset
>>> 0
5400 if (isFinite(length)) {
5401 length = length
>>> 0
5402 if (encoding === undefined) encoding = 'utf8'
5409 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
5413 var remaining = this.length - offset
5414 if (length === undefined || length
> remaining) length = remaining
5416 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
5417 throw new RangeError('Attempt to write outside buffer bounds')
5420 if (!encoding) encoding = 'utf8'
5422 var loweredCase = false
5426 return hexWrite(this, string, offset, length)
5430 return utf8Write(this, string, offset, length)
5433 return asciiWrite(this, string, offset, length)
5437 return latin1Write(this, string, offset, length)
5440 // Warning: maxLength not taken into account in base64Write
5441 return base64Write(this, string, offset, length)
5447 return ucs2Write(this, string, offset, length)
5450 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
5451 encoding = ('' + encoding).toLowerCase()
5457 Buffer.prototype.toJSON = function toJSON () {
5460 data: Array.prototype.slice.call(this._arr || this,
0)
5464 function base64Slice (buf, start, end) {
5465 if (start ===
0 && end === buf.length) {
5466 return base64.fromByteArray(buf)
5468 return base64.fromByteArray(buf.slice(start, end))
5472 function utf8Slice (buf, start, end) {
5473 end = Math.min(buf.length, end)
5478 var firstByte = buf[i]
5479 var codePoint = null
5480 var bytesPerSequence = (firstByte
> 0xEF) ?
4
5481 : (firstByte
> 0xDF) ?
3
5482 : (firstByte
> 0xBF) ?
2
5485 if (i + bytesPerSequence <= end) {
5486 var secondByte, thirdByte, fourthByte, tempCodePoint
5488 switch (bytesPerSequence) {
5490 if (firstByte <
0x80) {
5491 codePoint = firstByte
5495 secondByte = buf[i +
1]
5496 if ((secondByte &
0xC0) ===
0x80) {
5497 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
5498 if (tempCodePoint
> 0x7F) {
5499 codePoint = tempCodePoint
5504 secondByte = buf[i +
1]
5505 thirdByte = buf[i +
2]
5506 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
5507 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
5508 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
5509 codePoint = tempCodePoint
5514 secondByte = buf[i +
1]
5515 thirdByte = buf[i +
2]
5516 fourthByte = buf[i +
3]
5517 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
5518 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
5519 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
5520 codePoint = tempCodePoint
5526 if (codePoint === null) {
5527 // we did not generate a valid codePoint so insert a
5528 // replacement char (U+FFFD) and advance only
1 byte
5530 bytesPerSequence =
1
5531 } else if (codePoint
> 0xFFFF) {
5532 // encode to utf16 (surrogate pair dance)
5533 codePoint -=
0x10000
5534 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
5535 codePoint =
0xDC00 | codePoint &
0x3FF
5539 i += bytesPerSequence
5542 return decodeCodePointsArray(res)
5545 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
5546 // the lowest limit is Chrome, with
0x10000 args.
5547 // We go
1 magnitude less, for safety
5548 var MAX_ARGUMENTS_LENGTH =
0x1000
5550 function decodeCodePointsArray (codePoints) {
5551 var len = codePoints.length
5552 if (len <= MAX_ARGUMENTS_LENGTH) {
5553 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
5556 // Decode in chunks to avoid
"call stack size exceeded".
5560 res += String.fromCharCode.apply(
5562 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
5568 function asciiSlice (buf, start, end) {
5570 end = Math.min(buf.length, end)
5572 for (var i = start; i < end; ++i) {
5573 ret += String.fromCharCode(buf[i] &
0x7F)
5578 function latin1Slice (buf, start, end) {
5580 end = Math.min(buf.length, end)
5582 for (var i = start; i < end; ++i) {
5583 ret += String.fromCharCode(buf[i])
5588 function hexSlice (buf, start, end) {
5589 var len = buf.length
5591 if (!start || start <
0) start =
0
5592 if (!end || end <
0 || end
> len) end = len
5595 for (var i = start; i < end; ++i) {
5596 out += toHex(buf[i])
5601 function utf16leSlice (buf, start, end) {
5602 var bytes = buf.slice(start, end)
5604 for (var i =
0; i < bytes.length; i +=
2) {
5605 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
5610 Buffer.prototype.slice = function slice (start, end) {
5611 var len = this.length
5613 end = end === undefined ? len : ~~end
5617 if (start <
0) start =
0
5618 } else if (start
> len) {
5624 if (end <
0) end =
0
5625 } else if (end
> len) {
5629 if (end < start) end = start
5631 var newBuf = this.subarray(start, end)
5632 // Return an augmented `Uint8Array` instance
5633 newBuf.__proto__ = Buffer.prototype
5638 * Need to make sure that buffer isn't trying to write out of bounds.
5640 function checkOffset (offset, ext, length) {
5641 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
5642 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
5645 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
5646 offset = offset
>>> 0
5647 byteLength = byteLength
>>> 0
5648 if (!noAssert) checkOffset(offset, byteLength, this.length)
5650 var val = this[offset]
5653 while (++i < byteLength && (mul *=
0x100)) {
5654 val += this[offset + i] * mul
5660 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
5661 offset = offset
>>> 0
5662 byteLength = byteLength
>>> 0
5664 checkOffset(offset, byteLength, this.length)
5667 var val = this[offset + --byteLength]
5669 while (byteLength
> 0 && (mul *=
0x100)) {
5670 val += this[offset + --byteLength] * mul
5676 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
5677 offset = offset
>>> 0
5678 if (!noAssert) checkOffset(offset,
1, this.length)
5682 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
5683 offset = offset
>>> 0
5684 if (!noAssert) checkOffset(offset,
2, this.length)
5685 return this[offset] | (this[offset +
1] <<
8)
5688 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
5689 offset = offset
>>> 0
5690 if (!noAssert) checkOffset(offset,
2, this.length)
5691 return (this[offset] <<
8) | this[offset +
1]
5694 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
5695 offset = offset
>>> 0
5696 if (!noAssert) checkOffset(offset,
4, this.length)
5698 return ((this[offset]) |
5699 (this[offset +
1] <<
8) |
5700 (this[offset +
2] <<
16)) +
5701 (this[offset +
3] *
0x1000000)
5704 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
5705 offset = offset
>>> 0
5706 if (!noAssert) checkOffset(offset,
4, this.length)
5708 return (this[offset] *
0x1000000) +
5709 ((this[offset +
1] <<
16) |
5710 (this[offset +
2] <<
8) |
5714 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
5715 offset = offset
>>> 0
5716 byteLength = byteLength
>>> 0
5717 if (!noAssert) checkOffset(offset, byteLength, this.length)
5719 var val = this[offset]
5722 while (++i < byteLength && (mul *=
0x100)) {
5723 val += this[offset + i] * mul
5727 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5732 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
5733 offset = offset
>>> 0
5734 byteLength = byteLength
>>> 0
5735 if (!noAssert) checkOffset(offset, byteLength, this.length)
5739 var val = this[offset + --i]
5740 while (i
> 0 && (mul *=
0x100)) {
5741 val += this[offset + --i] * mul
5745 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
5750 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
5751 offset = offset
>>> 0
5752 if (!noAssert) checkOffset(offset,
1, this.length)
5753 if (!(this[offset] &
0x80)) return (this[offset])
5754 return ((
0xff - this[offset] +
1) * -
1)
5757 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
5758 offset = offset
>>> 0
5759 if (!noAssert) checkOffset(offset,
2, this.length)
5760 var val = this[offset] | (this[offset +
1] <<
8)
5761 return (val &
0x8000) ? val |
0xFFFF0000 : val
5764 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
5765 offset = offset
>>> 0
5766 if (!noAssert) checkOffset(offset,
2, this.length)
5767 var val = this[offset +
1] | (this[offset] <<
8)
5768 return (val &
0x8000) ? val |
0xFFFF0000 : val
5771 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
5772 offset = offset
>>> 0
5773 if (!noAssert) checkOffset(offset,
4, this.length)
5775 return (this[offset]) |
5776 (this[offset +
1] <<
8) |
5777 (this[offset +
2] <<
16) |
5778 (this[offset +
3] <<
24)
5781 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
5782 offset = offset
>>> 0
5783 if (!noAssert) checkOffset(offset,
4, this.length)
5785 return (this[offset] <<
24) |
5786 (this[offset +
1] <<
16) |
5787 (this[offset +
2] <<
8) |
5791 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
5792 offset = offset
>>> 0
5793 if (!noAssert) checkOffset(offset,
4, this.length)
5794 return ieee754.read(this, offset, true,
23,
4)
5797 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
5798 offset = offset
>>> 0
5799 if (!noAssert) checkOffset(offset,
4, this.length)
5800 return ieee754.read(this, offset, false,
23,
4)
5803 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
5804 offset = offset
>>> 0
5805 if (!noAssert) checkOffset(offset,
8, this.length)
5806 return ieee754.read(this, offset, true,
52,
8)
5809 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
5810 offset = offset
>>> 0
5811 if (!noAssert) checkOffset(offset,
8, this.length)
5812 return ieee754.read(this, offset, false,
52,
8)
5815 function checkInt (buf, value, offset, ext, max, min) {
5816 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
5817 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
5818 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
5821 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
5823 offset = offset
>>> 0
5824 byteLength = byteLength
>>> 0
5826 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5827 checkInt(this, value, offset, byteLength, maxBytes,
0)
5832 this[offset] = value &
0xFF
5833 while (++i < byteLength && (mul *=
0x100)) {
5834 this[offset + i] = (value / mul) &
0xFF
5837 return offset + byteLength
5840 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
5842 offset = offset
>>> 0
5843 byteLength = byteLength
>>> 0
5845 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
5846 checkInt(this, value, offset, byteLength, maxBytes,
0)
5849 var i = byteLength -
1
5851 this[offset + i] = value &
0xFF
5852 while (--i
>=
0 && (mul *=
0x100)) {
5853 this[offset + i] = (value / mul) &
0xFF
5856 return offset + byteLength
5859 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
5861 offset = offset
>>> 0
5862 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
5863 this[offset] = (value &
0xff)
5867 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
5869 offset = offset
>>> 0
5870 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
5871 this[offset] = (value &
0xff)
5872 this[offset +
1] = (value
>>> 8)
5876 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
5878 offset = offset
>>> 0
5879 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
5880 this[offset] = (value
>>> 8)
5881 this[offset +
1] = (value &
0xff)
5885 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
5887 offset = offset
>>> 0
5888 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
5889 this[offset +
3] = (value
>>> 24)
5890 this[offset +
2] = (value
>>> 16)
5891 this[offset +
1] = (value
>>> 8)
5892 this[offset] = (value &
0xff)
5896 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
5898 offset = offset
>>> 0
5899 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
5900 this[offset] = (value
>>> 24)
5901 this[offset +
1] = (value
>>> 16)
5902 this[offset +
2] = (value
>>> 8)
5903 this[offset +
3] = (value &
0xff)
5907 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
5909 offset = offset
>>> 0
5911 var limit = Math.pow(
2, (
8 * byteLength) -
1)
5913 checkInt(this, value, offset, byteLength, limit -
1, -limit)
5919 this[offset] = value &
0xFF
5920 while (++i < byteLength && (mul *=
0x100)) {
5921 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
5924 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
5927 return offset + byteLength
5930 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
5932 offset = offset
>>> 0
5934 var limit = Math.pow(
2, (
8 * byteLength) -
1)
5936 checkInt(this, value, offset, byteLength, limit -
1, -limit)
5939 var i = byteLength -
1
5942 this[offset + i] = value &
0xFF
5943 while (--i
>=
0 && (mul *=
0x100)) {
5944 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
5947 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
5950 return offset + byteLength
5953 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
5955 offset = offset
>>> 0
5956 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
5957 if (value <
0) value =
0xff + value +
1
5958 this[offset] = (value &
0xff)
5962 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
5964 offset = offset
>>> 0
5965 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
5966 this[offset] = (value &
0xff)
5967 this[offset +
1] = (value
>>> 8)
5971 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
5973 offset = offset
>>> 0
5974 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
5975 this[offset] = (value
>>> 8)
5976 this[offset +
1] = (value &
0xff)
5980 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
5982 offset = offset
>>> 0
5983 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
5984 this[offset] = (value &
0xff)
5985 this[offset +
1] = (value
>>> 8)
5986 this[offset +
2] = (value
>>> 16)
5987 this[offset +
3] = (value
>>> 24)
5991 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
5993 offset = offset
>>> 0
5994 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
5995 if (value <
0) value =
0xffffffff + value +
1
5996 this[offset] = (value
>>> 24)
5997 this[offset +
1] = (value
>>> 16)
5998 this[offset +
2] = (value
>>> 8)
5999 this[offset +
3] = (value &
0xff)
6003 function checkIEEE754 (buf, value, offset, ext, max, min) {
6004 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
6005 if (offset <
0) throw new RangeError('Index out of range')
6008 function writeFloat (buf, value, offset, littleEndian, noAssert) {
6010 offset = offset
>>> 0
6012 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
6014 ieee754.write(buf, value, offset, littleEndian,
23,
4)
6018 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
6019 return writeFloat(this, value, offset, true, noAssert)
6022 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
6023 return writeFloat(this, value, offset, false, noAssert)
6026 function writeDouble (buf, value, offset, littleEndian, noAssert) {
6028 offset = offset
>>> 0
6030 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
6032 ieee754.write(buf, value, offset, littleEndian,
52,
8)
6036 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
6037 return writeDouble(this, value, offset, true, noAssert)
6040 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
6041 return writeDouble(this, value, offset, false, noAssert)
6044 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
6045 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
6046 if (!start) start =
0
6047 if (!end && end !==
0) end = this.length
6048 if (targetStart
>= target.length) targetStart = target.length
6049 if (!targetStart) targetStart =
0
6050 if (end
> 0 && end < start) end = start
6052 // Copy
0 bytes; we're done
6053 if (end === start) return
0
6054 if (target.length ===
0 || this.length ===
0) return
0
6056 // Fatal error conditions
6057 if (targetStart <
0) {
6058 throw new RangeError('targetStart out of bounds')
6060 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
6061 if (end <
0) throw new RangeError('sourceEnd out of bounds')
6064 if (end
> this.length) end = this.length
6065 if (target.length - targetStart < end - start) {
6066 end = target.length - targetStart + start
6069 var len = end - start
6072 if (this === target && start < targetStart && targetStart < end) {
6073 // descending copy from end
6074 for (i = len -
1; i
>=
0; --i) {
6075 target[i + targetStart] = this[i + start]
6077 } else if (len <
1000) {
6078 // ascending copy from start
6079 for (i =
0; i < len; ++i) {
6080 target[i + targetStart] = this[i + start]
6083 Uint8Array.prototype.set.call(
6085 this.subarray(start, start + len),
6094 // buffer.fill(number[, offset[, end]])
6095 // buffer.fill(buffer[, offset[, end]])
6096 // buffer.fill(string[, offset[, end]][, encoding])
6097 Buffer.prototype.fill = function fill (val, start, end, encoding) {
6098 // Handle string cases:
6099 if (typeof val === 'string') {
6100 if (typeof start === 'string') {
6104 } else if (typeof end === 'string') {
6108 if (val.length ===
1) {
6109 var code = val.charCodeAt(
0)
6114 if (encoding !== undefined && typeof encoding !== 'string') {
6115 throw new TypeError('encoding must be a string')
6117 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
6118 throw new TypeError('Unknown encoding: ' + encoding)
6120 } else if (typeof val === 'number') {
6124 // Invalid ranges are not set to a default, so can range check early.
6125 if (start <
0 || this.length < start || this.length < end) {
6126 throw new RangeError('Out of range index')
6134 end = end === undefined ? this.length : end
>>> 0
6139 if (typeof val === 'number') {
6140 for (i = start; i < end; ++i) {
6144 var bytes = Buffer.isBuffer(val)
6146 : new Buffer(val, encoding)
6147 var len = bytes.length
6148 for (i =
0; i < end - start; ++i) {
6149 this[i + start] = bytes[i % len]
6159 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
6161 function base64clean (str) {
6162 // Node strips out invalid characters like \n and \t from the string, base64-js does not
6163 str = str.trim().replace(INVALID_BASE64_RE, '')
6164 // Node converts strings with length <
2 to ''
6165 if (str.length <
2) return ''
6166 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
6167 while (str.length %
4 !==
0) {
6173 function toHex (n) {
6174 if (n <
16) return '
0' + n.toString(
16)
6175 return n.toString(
16)
6178 function utf8ToBytes (string, units) {
6179 units = units || Infinity
6181 var length = string.length
6182 var leadSurrogate = null
6185 for (var i =
0; i < length; ++i) {
6186 codePoint = string.charCodeAt(i)
6188 // is surrogate component
6189 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
6190 // last char was a lead
6191 if (!leadSurrogate) {
6193 if (codePoint
> 0xDBFF) {
6195 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6197 } else if (i +
1 === length) {
6199 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6204 leadSurrogate = codePoint
6210 if (codePoint <
0xDC00) {
6211 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6212 leadSurrogate = codePoint
6216 // valid surrogate pair
6217 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
6218 } else if (leadSurrogate) {
6219 // valid bmp char, but last char was a lead
6220 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
6223 leadSurrogate = null
6226 if (codePoint <
0x80) {
6227 if ((units -=
1) <
0) break
6228 bytes.push(codePoint)
6229 } else if (codePoint <
0x800) {
6230 if ((units -=
2) <
0) break
6232 codePoint
>> 0x6 |
0xC0,
6233 codePoint &
0x3F |
0x80
6235 } else if (codePoint <
0x10000) {
6236 if ((units -=
3) <
0) break
6238 codePoint
>> 0xC |
0xE0,
6239 codePoint
>> 0x6 &
0x3F |
0x80,
6240 codePoint &
0x3F |
0x80
6242 } else if (codePoint <
0x110000) {
6243 if ((units -=
4) <
0) break
6245 codePoint
>> 0x12 |
0xF0,
6246 codePoint
>> 0xC &
0x3F |
0x80,
6247 codePoint
>> 0x6 &
0x3F |
0x80,
6248 codePoint &
0x3F |
0x80
6251 throw new Error('Invalid code point')
6258 function asciiToBytes (str) {
6260 for (var i =
0; i < str.length; ++i) {
6261 // Node's code seems to be doing this and not &
0x7F..
6262 byteArray.push(str.charCodeAt(i) &
0xFF)
6267 function utf16leToBytes (str, units) {
6270 for (var i =
0; i < str.length; ++i) {
6271 if ((units -=
2) <
0) break
6273 c = str.charCodeAt(i)
6283 function base64ToBytes (str) {
6284 return base64.toByteArray(base64clean(str))
6287 function blitBuffer (src, dst, offset, length) {
6288 for (var i =
0; i < length; ++i) {
6289 if ((i + offset
>= dst.length) || (i
>= src.length)) break
6290 dst[i + offset] = src[i]
6295 // Node
0.10 supports `ArrayBuffer` but lacks `ArrayBuffer.isView`
6296 function isArrayBufferView (obj) {
6297 return (typeof ArrayBuffer.isView === 'function') && ArrayBuffer.isView(obj)
6300 function numberIsNaN (obj) {
6301 return obj !== obj // eslint-disable-line no-self-compare
6304 },{"base64-js":
1,"ieee754":
3}],
3:[function(require,module,exports){
6305 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
6307 var eLen = nBytes *
8 - mLen -
1
6308 var eMax = (
1 << eLen) -
1
6309 var eBias = eMax
>> 1
6311 var i = isLE ? (nBytes -
1) :
0
6312 var d = isLE ? -
1 :
1
6313 var s = buffer[offset + i]
6317 e = s & ((
1 << (-nBits)) -
1)
6320 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6322 m = e & ((
1 << (-nBits)) -
1)
6325 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
6329 } else if (e === eMax) {
6330 return m ? NaN : ((s ? -
1 :
1) * Infinity)
6332 m = m + Math.pow(
2, mLen)
6335 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
6338 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
6340 var eLen = nBytes *
8 - mLen -
1
6341 var eMax = (
1 << eLen) -
1
6342 var eBias = eMax
>> 1
6343 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
6344 var i = isLE ?
0 : (nBytes -
1)
6345 var d = isLE ?
1 : -
1
6346 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
6348 value = Math.abs(value)
6350 if (isNaN(value) || value === Infinity) {
6351 m = isNaN(value) ?
1 :
0
6354 e = Math.floor(Math.log(value) / Math.LN2)
6355 if (value * (c = Math.pow(
2, -e)) <
1) {
6359 if (e + eBias
>=
1) {
6362 value += rt * Math.pow(
2,
1 - eBias)
6364 if (value * c
>=
2) {
6369 if (e + eBias
>= eMax) {
6372 } else if (e + eBias
>=
1) {
6373 m = (value * c -
1) * Math.pow(
2, mLen)
6376 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
6381 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
6385 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
6387 buffer[offset + i - d] |= s *
128
6390 },{}],
4:[function(require,module,exports){
6391 window.basex = require('base-x')
6392 },{
"base-x":
5}],
5:[function(require,module,exports){
6394 // Forked from https://github.com/cryptocoinjs/bs58
6395 // Originally written by Mike Hearn for BitcoinJ
6396 // Copyright (c)
2011 Google Inc
6397 // Ported to JavaScript by Stefan Thomas
6398 // Merged Buffer refactorings from base58-native by Stephen Pair
6399 // Copyright (c)
2013 BitPay Inc
6401 var Buffer = require('safe-buffer').Buffer
6403 module.exports = function base (ALPHABET) {
6404 var ALPHABET_MAP = {}
6405 var BASE = ALPHABET.length
6406 var LEADER = ALPHABET.charAt(
0)
6408 // pre-compute lookup table
6409 for (var z =
0; z < ALPHABET.length; z++) {
6410 var x = ALPHABET.charAt(z)
6412 if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')
6416 function encode (source) {
6417 if (source.length ===
0) return ''
6420 for (var i =
0; i < source.length; ++i) {
6421 for (var j =
0, carry = source[i]; j < digits.length; ++j) {
6422 carry += digits[j] <<
8
6423 digits[j] = carry % BASE
6424 carry = (carry / BASE) |
0
6428 digits.push(carry % BASE)
6429 carry = (carry / BASE) |
0
6435 // deal with leading zeros
6436 for (var k =
0; source[k] ===
0 && k < source.length -
1; ++k) string += ALPHABET[
0]
6437 // convert digits to a string
6438 for (var q = digits.length -
1; q
>=
0; --q) string += ALPHABET[digits[q]]
6443 function decodeUnsafe (string) {
6444 if (string.length ===
0) return Buffer.allocUnsafe(
0)
6447 for (var i =
0; i < string.length; i++) {
6448 var value = ALPHABET_MAP[string[i]]
6449 if (value === undefined) return
6451 for (var j =
0, carry = value; j < bytes.length; ++j) {
6452 carry += bytes[j] * BASE
6453 bytes[j] = carry &
0xff
6458 bytes.push(carry &
0xff)
6463 // deal with leading zeros
6464 for (var k =
0; string[k] === LEADER && k < string.length -
1; ++k) {
6468 return Buffer.from(bytes.reverse())
6471 function decode (string) {
6472 var buffer = decodeUnsafe(string)
6473 if (buffer) return buffer
6475 throw new Error('Non-base' + BASE + ' character')
6480 decodeUnsafe: decodeUnsafe,
6485 },{"safe-buffer":
6}],
6:[function(require,module,exports){
6486 module.exports = require('buffer')
6488 },{"buffer":
2}]},{},[
4])(
4)
6490 <script>(function (root) {
6493 /***** unorm.js *****/
6496 * UnicodeNormalizer
1.0.0
6497 * Copyright (c)
2008 Matsuza
6498 * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
6499 * $Date:
2008-
06-
05 16:
44:
17 +
0200 (Thu,
05 Jun
2008) $
6503 var DEFAULT_FEATURE = [null,
0, {}];
6504 var CACHE_THRESHOLD =
10;
6505 var SBase =
0xAC00, LBase =
0x1100, VBase =
0x1161, TBase =
0x11A7, LCount =
19, VCount =
21, TCount =
28;
6506 var NCount = VCount * TCount; //
588
6507 var SCount = LCount * NCount; //
11172
6509 var UChar = function(cp, feature){
6510 this.codepoint = cp;
6511 this.feature = feature;
6516 var cacheCounter = [];
6517 for (var i =
0; i <=
0xFF; ++i){
6518 cacheCounter[i] =
0;
6521 function fromCache(next, cp, needFeature){
6522 var ret = cache[cp];
6524 ret = next(cp, needFeature);
6525 if(!!ret.feature && ++cacheCounter[(cp
>> 8) &
0xFF]
> CACHE_THRESHOLD){
6532 function fromData(next, cp, needFeature){
6533 var hash = cp &
0xFF00;
6534 var dunit = UChar.udata[hash] || {};
6536 return f ? new UChar(cp, f) : new UChar(cp, DEFAULT_FEATURE);
6538 function fromCpOnly(next, cp, needFeature){
6539 return !!needFeature ? next(cp, needFeature) : new UChar(cp, null);
6541 function fromRuleBasedJamo(next, cp, needFeature){
6543 if(cp < LBase || (LBase + LCount <= cp && cp < SBase) || (SBase + SCount < cp)){
6544 return next(cp, needFeature);
6546 if(LBase <= cp && cp < LBase + LCount){
6548 var base = (cp - LBase) * VCount;
6549 for (j =
0; j < VCount; ++j){
6550 c[VBase + j] = SBase + TCount * (j + base);
6552 return new UChar(cp, [,,c]);
6555 var SIndex = cp - SBase;
6556 var TIndex = SIndex % TCount;
6559 feature[
0] = [SBase + SIndex - TIndex, TBase + TIndex];
6561 feature[
0] = [LBase + Math.floor(SIndex / NCount), VBase + Math.floor((SIndex % NCount) / TCount)];
6563 for (j =
1; j < TCount; ++j){
6564 feature[
2][TBase + j] = cp + j;
6567 return new UChar(cp, feature);
6569 function fromCpFilter(next, cp, needFeature){
6570 return cp <
60 ||
13311 < cp && cp <
42607 ? new UChar(cp, DEFAULT_FEATURE) : next(cp, needFeature);
6573 var strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData];
6575 UChar.fromCharCode = strategies.reduceRight(function (next, strategy) {
6576 return function (cp, needFeature) {
6577 return strategy(next, cp, needFeature);
6581 UChar.isHighSurrogate = function(cp){
6582 return cp
>=
0xD800 && cp <=
0xDBFF;
6584 UChar.isLowSurrogate = function(cp){
6585 return cp
>=
0xDC00 && cp <=
0xDFFF;
6588 UChar.prototype.prepFeature = function(){
6590 this.feature = UChar.fromCharCode(this.codepoint, true).feature;
6594 UChar.prototype.toString = function(){
6595 if(this.codepoint <
0x10000){
6596 return String.fromCharCode(this.codepoint);
6598 var x = this.codepoint -
0x10000;
6599 return String.fromCharCode(Math.floor(x /
0x400) +
0xD800, x %
0x400 +
0xDC00);
6603 UChar.prototype.getDecomp = function(){
6605 return this.feature[
0] || null;
6608 UChar.prototype.isCompatibility = function(){
6610 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
8));
6612 UChar.prototype.isExclude = function(){
6614 return !!this.feature[
1] && (this.feature[
1] & (
1 <<
9));
6616 UChar.prototype.getCanonicalClass = function(){
6618 return !!this.feature[
1] ? (this.feature[
1] &
0xff) :
0;
6620 UChar.prototype.getComposite = function(following){
6622 if(!this.feature[
2]){
6625 var cp = this.feature[
2][following.codepoint];
6626 return cp ? UChar.fromCharCode(cp) : null;
6629 var UCharIterator = function(str){
6633 UCharIterator.prototype.next = function(){
6634 if(!!this.str && this.cursor < this.str.length){
6635 var cp = this.str.charCodeAt(this.cursor++);
6637 if(UChar.isHighSurrogate(cp) && this.cursor < this.str.length && UChar.isLowSurrogate((d = this.str.charCodeAt(this.cursor)))){
6638 cp = (cp -
0xD800) *
0x400 + (d -
0xDC00) +
0x10000;
6641 return UChar.fromCharCode(cp);
6648 var RecursDecompIterator = function(it, cano){
6650 this.canonical = cano;
6654 RecursDecompIterator.prototype.next = function(){
6655 function recursiveDecomp(cano, uchar){
6656 var decomp = uchar.getDecomp();
6657 if(!!decomp && !(cano && uchar.isCompatibility())){
6659 for(var i =
0; i < decomp.length; ++i){
6660 var a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i]));
6661 ret = ret.concat(a);
6668 if(this.resBuf.length ===
0){
6669 var uchar = this.it.next();
6673 this.resBuf = recursiveDecomp(this.canonical, uchar);
6675 return this.resBuf.shift();
6678 var DecompIterator = function(it){
6683 DecompIterator.prototype.next = function(){
6685 if(this.resBuf.length ===
0){
6687 var uchar = this.it.next();
6691 cc = uchar.getCanonicalClass();
6692 var inspt = this.resBuf.length;
6694 for(; inspt
> 0; --inspt){
6695 var uchar2 = this.resBuf[inspt -
1];
6696 var cc2 = uchar2.getCanonicalClass();
6702 this.resBuf.splice(inspt,
0, uchar);
6705 return this.resBuf.shift();
6708 var CompIterator = function(it){
6712 this.lastClass = null;
6715 CompIterator.prototype.next = function(){
6716 while(this.resBuf.length ===
0){
6717 var uchar = this.it.next();
6719 this.resBuf = this.procBuf;
6723 if(this.procBuf.length ===
0){
6724 this.lastClass = uchar.getCanonicalClass();
6725 this.procBuf.push(uchar);
6727 var starter = this.procBuf[
0];
6728 var composite = starter.getComposite(uchar);
6729 var cc = uchar.getCanonicalClass();
6730 if(!!composite && (this.lastClass < cc || this.lastClass ===
0)){
6731 this.procBuf[
0] = composite;
6734 this.resBuf = this.procBuf;
6737 this.lastClass = cc;
6738 this.procBuf.push(uchar);
6742 return this.resBuf.shift();
6745 var createIterator = function(mode, str){
6748 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true));
6750 return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false));
6752 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true)));
6754 return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false)));
6756 throw mode +
" is invalid";
6758 var normalize = function(mode, str){
6759 var it = createIterator(mode, str);
6762 while(!!(uchar = it.next())){
6763 ret += uchar.toString();
6770 return normalize(
"NFD", str);
6774 return normalize(
"NFKD", str);
6778 return normalize(
"NFC", str);
6782 return normalize(
"NFKC", str);
6787 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]]},
6788 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]},
6789 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]},
6790 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]},
6791 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]]},
6792 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]},
6793 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]},
6794 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]},
6795 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]},
6796 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]},
6797 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]},
6798 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]},
6799 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]},
6800 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]]},
6801 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]},
6802 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]},
6803 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]},
6804 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]},
6805 4608:{
70197:[,
9],
70198:[,
7],
70377:[,
7],
70378:[,
9]},
6806 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]},
6807 5120:{
70841:[,,{
70832:
70844,
70842:
70843,
70845:
70846}],
70843:[[
70841,
70842]],
70844:[[
70841,
70832]],
70846:[[
70841,
70845]],
70850:[,
9],
70851:[,
7]},
6808 5376:{
71096:[,,{
71087:
71098}],
71097:[,,{
71087:
71099}],
71098:[[
71096,
71087]],
71099:[[
71097,
71087]],
71103:[,
9],
71104:[,
7]},
6809 5632:{
71231:[,
9],
71350:[,
9],
71351:[,
7]},
6810 5888:{
5908:[,
9],
5940:[,
9],
6098:[,
9],
6109:[,
230]},
6812 6400:{
6457:[,
222],
6458:[,
230],
6459:[,
220]},
6813 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]},
6814 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]},
6815 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]},
6816 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]},
6817 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]]},
6818 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}]},
6819 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]},
6820 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}]},
6821 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]]},
6822 8960:{
9001:[[
12296]],
9002:[[
12297]]},
6823 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]},
6824 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]},
6825 11264:{
11388:[[
106],
256],
11389:[[
86],
256],
11503:[,
230],
11504:[,
230],
11505:[,
230]},
6826 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]},
6827 11776:{
11935:[[
27597],
256],
12019:[[
40863],
256]},
6828 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]},
6829 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]},
6830 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]},
6831 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]},
6832 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]},
6833 27136:{
92912:[,
1],
92913:[,
1],
92914:[,
1],
92915:[,
1],
92916:[,
1]},
6834 27392:{
92976:[,
230],
92977:[,
230],
92978:[,
230],
92979:[,
230],
92980:[,
230],
92981:[,
230],
92982:[,
230]},
6835 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]},
6836 42752:{
42864:[[
42863],
256],
43000:[[
294],
256],
43001:[[
339],
256]},
6837 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]},
6838 43264:{
43307:[,
220],
43308:[,
220],
43309:[,
220],
43347:[,
9],
43443:[,
7],
43456:[,
9]},
6839 43520:{
43696:[,
230],
43698:[,
230],
43699:[,
230],
43700:[,
220],
43703:[,
230],
43704:[,
230],
43710:[,
230],
43711:[,
230],
43713:[,
230],
43766:[,
9]},
6840 43776:{
43868:[[
42791],
256],
43869:[[
43831],
256],
43870:[[
619],
256],
43871:[[
43858],
256],
44013:[,
9]},
6841 48128:{
113822:[,
1]},
6842 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]},
6843 53760:{
119362:[,
230],
119363:[,
230],
119364:[,
230]},
6844 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]},
6845 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]},
6846 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]},
6847 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]},
6848 59392:{
125136:[,
220],
125137:[,
220],
125138:[,
220],
125139:[,
220],
125140:[,
220],
125141:[,
220],
125142:[,
220]},
6849 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]},
6850 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]},
6851 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]},
6852 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]]},
6853 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]]},
6854 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]]},
6855 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]},
6856 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]},
6857 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]},
6858 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]},
6859 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]}
6863 /***** Module to export */
6871 /*globals module:true,define:true*/
6874 if (typeof module ===
"object") {
6875 module.exports = unorm;
6878 } else if (typeof define ===
"function" && define.amd) {
6879 define(
"unorm", function () {
6888 /***** Export as shim for String::normalize method *****/
6890 http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#november_8_2013_draft_rev_21
6892 21.1.3.12 String.prototype.normalize(
form=
"NFC")
6893 When the normalize method is called with one argument form, the following steps are taken:
6895 1. Let O be CheckObjectCoercible(this value).
6896 2. Let S be ToString(O).
6897 3. ReturnIfAbrupt(S).
6898 4. If form is not provided or undefined let form be
"NFC".
6899 5. Let f be ToString(form).
6900 6. ReturnIfAbrupt(f).
6901 7. If f is not one of
"NFC",
"NFD",
"NFKC", or
"NFKD", then throw a RangeError Exception.
6902 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.
6905 The length property of the normalize method is
0.
6907 *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.
6909 unorm.shimApplied = false;
6911 if (!String.prototype.normalize) {
6912 String.prototype.normalize = function(form) {
6913 var str =
"" + this;
6914 form = form === undefined ?
"NFC" : form;
6916 if (form ===
"NFC") {
6917 return unorm.nfc(str);
6918 } else if (form ===
"NFD") {
6919 return unorm.nfd(str);
6920 } else if (form ===
"NFKC") {
6921 return unorm.nfkc(str);
6922 } else if (form ===
"NFKD") {
6923 return unorm.nfkd(str);
6925 throw new RangeError(
"Invalid normalization form: " + form);
6929 unorm.shimApplied = true;
6933 <script>/*! jQuery v2.1
.1 | (c)
2005,
2014 jQuery Foundation, Inc. | jquery.org/license */
6934 !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)
6935 },_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))
6936 },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});
6939 * Bootstrap v3.2.0 (http://getbootstrap.com)
6940 * Copyright 2011-2014 Twitter, Inc.
6941 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
6943 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>
6944 <script>(function() {
6948 * Extend an Object with another Object's properties.
6950 * The source objects are specified as additional arguments.
6952 * @param dst Object the object to extend.
6954 * @return Object the final object.
6956 var _extend = function(dst) {
6957 var sources = Array.prototype.slice.call(arguments,
1);
6958 for (var i=
0; i
<sources.length; ++i) {
6959 var src = sources[i];
6960 for (var p in src) {
6961 if (src.hasOwnProperty(p)) dst[p] = src[p];
6969 * Defer execution of given function.
6970 * @param {Function} func
6972 var _defer = function(func) {
6973 if (typeof setImmediate === 'function') {
6974 return setImmediate(func);
6976 return setTimeout(func,
0);
6981 * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance.
6985 * Calculate levenshtein distance of the two strings.
6987 * @param str1 String the first string.
6988 * @param str2 String the second string.
6989 * @return Integer the levenshtein distance (
0 and above).
6991 get: function(str1, str2) {
6993 if (str1 === str2) return
0;
6994 if (str1.length ===
0) return str2.length;
6995 if (str2.length ===
0) return str1.length;
6998 var prevRow = new Array(str2.length +
1),
6999 curCol, nextCol, i, j, tmp;
7001 // initialise previous row
7002 for (i=
0; i
<prevRow.length; ++i) {
7006 // calculate current row distance from previous row
7007 for (i=
0; i
<str1.length; ++i) {
7010 for (j=
0; j
<str2.length; ++j) {
7014 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7017 if (nextCol
> tmp) {
7021 tmp = prevRow[j +
1] +
1;
7022 if (nextCol
> tmp) {
7026 // copy current col value into previous (in preparation for next iteration)
7027 prevRow[j] = curCol;
7030 // copy last col value into previous (in preparation for next iteration)
7031 prevRow[j] = nextCol;
7038 * Asynchronously calculate levenshtein distance of the two strings.
7040 * @param str1 String the first string.
7041 * @param str2 String the second string.
7042 * @param cb Function callback function with signature: function(Error err, int distance)
7043 * @param [options] Object additional options.
7044 * @param [options.progress] Function progress callback with signature: function(percentComplete)
7046 getAsync: function(str1, str2, cb, options) {
7047 options = _extend({}, {
7052 if (str1 === str2) return cb(null,
0);
7053 if (str1.length ===
0) return cb(null, str2.length);
7054 if (str2.length ===
0) return cb(null, str1.length);
7057 var prevRow = new Array(str2.length +
1),
7060 startTime, currentTime;
7062 // initialise previous row
7063 for (i=
0; i
<prevRow.length; ++i) {
7071 var __calculate = function() {
7073 startTime = new Date().valueOf();
7074 currentTime = startTime;
7076 // keep going until one second has elapsed
7077 while (currentTime - startTime <
1000) {
7078 // reached end of current row?
7079 if (str2.length <= (++j)) {
7080 // copy current into previous (in preparation for next iteration)
7081 prevRow[j] = nextCol;
7083 // if already done all chars
7084 if (str1.length <= (++i)) {
7085 return cb(null, nextCol);
7087 // else if we have more left to do
7098 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
7101 if (nextCol
> tmp) {
7105 tmp = prevRow[j +
1] +
1;
7106 if (nextCol
> tmp) {
7110 // copy current into previous (in preparation for next iteration)
7111 prevRow[j] = curCol;
7114 currentTime = new Date().valueOf();
7117 // send a progress update?
7118 if (null !== options.progress) {
7120 options.progress.call(null, (i *
100.0/ str1.length));
7122 return cb('Progress callback: ' + err.toString());
7127 _defer(__calculate);
7136 if (typeof define !== "undefined" && define !== null && define.amd) {
7142 else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
7143 module.exports = Levenshtein;
7146 else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
7147 self.Levenshtein = Levenshtein;
7149 // browser main thread
7150 else if (typeof window !== "undefined" && window !== null) {
7151 window.Levenshtein = Levenshtein;
7156 <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},
7157 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;
7158 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-
7159 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]=
7160 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},
7161 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=
7162 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-
7163 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,
7164 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=
7165 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&&
7166 (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,
7167 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)-
7168 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:"+
7169 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:"+
7170 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+
7171 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),
7172 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>
7173 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],
7174 [
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,
7175 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,
7176 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,
7177 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,
7178 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,
7179 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*
7180 (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,
7181 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),
7182 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",
7183 d+
"px").css(
"background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;$(a).appendTo(this)})}})($);
7185 <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.bitcoin = 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){
7186 // (public) Constructor
7187 function BigInteger(a, b, c) {
7188 if (!(this instanceof BigInteger))
7189 return new BigInteger(a, b, c)
7192 if (
"number" == typeof a) this.fromNumber(a, b, c)
7193 else if (b == null &&
"string" != typeof a) this.fromString(a,
256)
7194 else this.fromString(a, b)
7198 var proto = BigInteger.prototype
7200 // duck-typed isBigInteger
7201 proto.__bigi = require('../package.json').version
7202 BigInteger.isBigInteger = function (obj, check_ver) {
7203 return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)
7209 // am: Compute w_j += (x*this_i), propagate carries,
7210 // c is initial carry, returns final carry.
7211 // c <
3*dvalue, x <
2*dvalue, this_i < dvalue
7212 // We need to select the fastest one that works in this environment.
7214 // am1: use a single mult and divide to get the high bits,
7215 // max digit bits should be
26 because
7216 // max internal value =
2*dvalue^
2-
2*dvalue (<
2^
53)
7217 function am1(i, x, w, j, c, n) {
7219 var v = x * this[i++] + w[j] + c
7220 c = Math.floor(v /
0x4000000)
7221 w[j++] = v &
0x3ffffff
7225 // am2 avoids a big mult-and-extract completely.
7226 // Max digit bits should be <=
30 because we do bitwise ops
7227 // on values up to
2*hdvalue^
2-hdvalue-
1 (<
2^
31)
7228 function am2(i, x, w, j, c, n) {
7229 var xl = x &
0x7fff,
7232 var l = this[i] &
0x7fff
7233 var h = this[i++]
>> 15
7234 var m = xh * l + h * xl
7235 l = xl * l + ((m &
0x7fff) <<
15) + w[j] + (c &
0x3fffffff)
7236 c = (l
>>> 30) + (m
>>> 15) + xh * h + (c
>>> 30)
7237 w[j++] = l &
0x3fffffff
7241 // Alternately, set max digit bits to
28 since some
7242 // browsers slow down when dealing with
32-bit numbers.
7243 function am3(i, x, w, j, c, n) {
7244 var xl = x &
0x3fff,
7247 var l = this[i] &
0x3fff
7248 var h = this[i++]
>> 14
7249 var m = xh * l + h * xl
7250 l = xl * l + ((m &
0x3fff) <<
14) + w[j] + c
7251 c = (l
>> 28) + (m
>> 14) + xh * h
7252 w[j++] = l &
0xfffffff
7258 BigInteger.prototype.am = am1
7261 BigInteger.prototype.DB = dbits
7262 BigInteger.prototype.DM = ((
1 << dbits) -
1)
7263 var DV = BigInteger.prototype.DV = (
1 << dbits)
7266 BigInteger.prototype.FV = Math.pow(
2, BI_FP)
7267 BigInteger.prototype.F1 = BI_FP - dbits
7268 BigInteger.prototype.F2 =
2 * dbits - BI_FP
7270 // Digit conversions
7271 var BI_RM =
"0123456789abcdefghijklmnopqrstuvwxyz"
7272 var BI_RC = new Array()
7274 rr =
"0".charCodeAt(
0)
7275 for (vv =
0; vv <=
9; ++vv) BI_RC[rr++] = vv
7276 rr =
"a".charCodeAt(
0)
7277 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
7278 rr =
"A".charCodeAt(
0)
7279 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
7281 function int2char(n) {
7282 return BI_RM.charAt(n)
7285 function intAt(s, i) {
7286 var c = BI_RC[s.charCodeAt(i)]
7287 return (c == null) ? -
1 : c
7290 // (protected) copy this to r
7291 function bnpCopyTo(r) {
7292 for (var i = this.t -
1; i
>=
0; --i) r[i] = this[i]
7297 // (protected) set from integer value x, -DV <= x < DV
7298 function bnpFromInt(x) {
7300 this.s = (x <
0) ? -
1 :
0
7301 if (x
> 0) this[
0] = x
7302 else if (x < -
1) this[
0] = x + DV
7306 // return bigint initialized to value
7308 var r = new BigInteger()
7313 // (protected) set from string and radix
7314 function bnpFromString(s, b) {
7319 else if (b ==
8) k =
3
7320 else if (b ==
256) k =
8; // byte array
7321 else if (b ==
2) k =
1
7322 else if (b ==
32) k =
5
7323 else if (b ==
4) k =
2
7325 self.fromRadix(s, b)
7334 var x = (k ==
8) ? s[i] &
0xff : intAt(s, i)
7336 if (s.charAt(i) == "-") mi = true
7342 else if (sh + k
> self.DB) {
7343 self[self.t -
1] |= (x & ((
1 << (self.DB - sh)) -
1)) << sh
7344 self[self.t++] = (x
>> (self.DB - sh))
7346 self[self.t -
1] |= x << sh
7348 if (sh
>= self.DB) sh -= self.DB
7350 if (k ==
8 && (s[
0] &
0x80) !=
0) {
7352 if (sh
> 0) self[self.t -
1] |= ((
1 << (self.DB - sh)) -
1) << sh
7355 if (mi) BigInteger.ZERO.subTo(self, self)
7358 // (protected) clamp off excess high words
7359 function bnpClamp() {
7360 var c = this.s & this.DM
7361 while (this.t
> 0 && this[this.t -
1] == c)--this.t
7364 // (public) return string representation in given radix
7365 function bnToString(b) {
7367 if (self.s <
0) return
"-" + self.negate()
7371 else if (b ==
8) k =
3
7372 else if (b ==
2) k =
1
7373 else if (b ==
32) k =
5
7374 else if (b ==
4) k =
2
7375 else return self.toRadix(b)
7376 var km = (
1 << k) -
1,
7380 var p = self.DB - (i * self.DB) % k
7382 if (p < self.DB && (d = self[i]
>> p)
> 0) {
7388 d = (self[i] & ((
1 << p) -
1)) << (k - p)
7389 d |= self[--i]
>> (p += self.DB - k)
7391 d = (self[i]
>> (p -= k)) & km
7398 if (m) r += int2char(d)
7405 function bnNegate() {
7406 var r = new BigInteger()
7407 BigInteger.ZERO.subTo(this, r)
7413 return (this.s <
0) ? this.negate() : this
7416 // (public) return + if this
> a, - if this < a,
0 if equal
7417 function bnCompareTo(a) {
7418 var r = this.s - a.s
7419 if (r !=
0) return r
7422 if (r !=
0) return (this.s <
0) ? -r : r
7424 if ((r = this[i] - a[i]) !=
0) return r
7428 // returns bit length of the integer x
7432 if ((t = x
>>> 16) !=
0) {
7436 if ((t = x
>> 8) !=
0) {
7440 if ((t = x
>> 4) !=
0) {
7444 if ((t = x
>> 2) !=
0) {
7448 if ((t = x
>> 1) !=
0) {
7455 // (public) return the number of bits in
"this"
7456 function bnBitLength() {
7457 if (this.t <=
0) return
0
7458 return this.DB * (this.t -
1) + nbits(this[this.t -
1] ^ (this.s & this.DM))
7461 // (public) return the number of bytes in
"this"
7462 function bnByteLength() {
7463 return this.bitLength()
>> 3
7466 // (protected) r = this << n*DB
7467 function bnpDLShiftTo(n, r) {
7469 for (i = this.t -
1; i
>=
0; --i) r[i + n] = this[i]
7470 for (i = n -
1; i
>=
0; --i) r[i] =
0
7475 // (protected) r = this
>> n*DB
7476 function bnpDRShiftTo(n, r) {
7477 for (var i = n; i < this.t; ++i) r[i - n] = this[i]
7478 r.t = Math.max(this.t - n,
0)
7482 // (protected) r = this << n
7483 function bnpLShiftTo(n, r) {
7485 var bs = n % self.DB
7486 var cbs = self.DB - bs
7487 var bm = (
1 << cbs) -
1
7488 var ds = Math.floor(n / self.DB),
7489 c = (self.s << bs) & self.DM,
7491 for (i = self.t -
1; i
>=
0; --i) {
7492 r[i + ds +
1] = (self[i]
>> cbs) | c
7493 c = (self[i] & bm) << bs
7495 for (i = ds -
1; i
>=
0; --i) r[i] =
0
7497 r.t = self.t + ds +
1
7502 // (protected) r = this
>> n
7503 function bnpRShiftTo(n, r) {
7506 var ds = Math.floor(n / self.DB)
7511 var bs = n % self.DB
7512 var cbs = self.DB - bs
7513 var bm = (
1 << bs) -
1
7514 r[
0] = self[ds]
>> bs
7515 for (var i = ds +
1; i < self.t; ++i) {
7516 r[i - ds -
1] |= (self[i] & bm) << cbs
7517 r[i - ds] = self[i]
>> bs
7519 if (bs
> 0) r[self.t - ds -
1] |= (self.s & bm) << cbs
7524 // (protected) r = this - a
7525 function bnpSubTo(a, r) {
7529 m = Math.min(a.t, self.t)
7532 r[i++] = c & self.DM
7537 while (i < self.t) {
7539 r[i++] = c & self.DM
7547 r[i++] = c & self.DM
7552 r.s = (c <
0) ? -
1 :
0
7553 if (c < -
1) r[i++] = self.DV + c
7554 else if (c
> 0) r[i++] = c
7559 // (protected) r = this * a, r != this,a (HAC
14.12)
7560 //
"this" should be the larger one if appropriate.
7561 function bnpMultiplyTo(a, r) {
7566 while (--i
>=
0) r[i] =
0
7567 for (i =
0; i < y.t; ++i) r[i + x.t] = x.am(
0, y[i], r, i,
0, x.t)
7570 if (this.s != a.s) BigInteger.ZERO.subTo(r, r)
7573 // (protected) r = this^
2, r != this (HAC
14.16)
7574 function bnpSquareTo(r) {
7576 var i = r.t =
2 * x.t
7577 while (--i
>=
0) r[i] =
0
7578 for (i =
0; i < x.t -
1; ++i) {
7579 var c = x.am(i, x[i], r,
2 * i,
0,
1)
7580 if ((r[i + x.t] += x.am(i +
1,
2 * x[i], r,
2 * i +
1, c, x.t - i -
1))
>= x.DV) {
7585 if (r.t
> 0) r[r.t -
1] += x.am(i, x[i], r,
2 * i,
0,
1)
7590 // (protected) divide this by m, quotient and remainder to q, r (HAC
14.20)
7591 // r != q, this != m. q or r may be null.
7592 function bnpDivRemTo(m, q, r) {
7595 if (pm.t <=
0) return
7598 if (q != null) q.fromInt(
0)
7599 if (r != null) self.copyTo(r)
7602 if (r == null) r = new BigInteger()
7603 var y = new BigInteger(),
7606 var nsh = self.DB - nbits(pm[pm.t -
1]); // normalize modulus
7617 var yt = y0 * (
1 << self.F1) + ((ys
> 1) ? y[ys -
2]
>> self.F2 :
0)
7618 var d1 = self.FV / yt,
7619 d2 = (
1 << self.F1) / yt,
7623 t = (q == null) ? new BigInteger() : q
7625 if (r.compareTo(t)
>=
0) {
7629 BigInteger.ONE.dlShiftTo(ys, t)
7630 t.subTo(y, y); // "negative" y so we can replace sub with am later
7631 while (y.t < ys) y[y.t++] =
0
7633 // Estimate quotient digit
7634 var qd = (r[--i] == y0) ? self.DM : Math.floor(r[i] * d1 + (r[i -
1] + e) * d2)
7635 if ((r[i] += y.am(
0, qd, r, j,
0, ys)) < qd) { // Try it out
7638 while (r[i] < --qd) r.subTo(t, r)
7643 if (ts != ms) BigInteger.ZERO.subTo(q, q)
7647 if (nsh
> 0) r.rShiftTo(nsh, r); // Denormalize remainder
7648 if (ts <
0) BigInteger.ZERO.subTo(r, r)
7651 // (public) this mod a
7653 var r = new BigInteger()
7655 .divRemTo(a, null, r)
7656 if (this.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) a.subTo(r, r)
7660 // Modular reduction using
"classic" algorithm
7661 function Classic(m) {
7665 function cConvert(x) {
7666 if (x.s <
0 || x.compareTo(this.m)
>=
0) return x.mod(this.m)
7670 function cRevert(x) {
7674 function cReduce(x) {
7675 x.divRemTo(this.m, null, x)
7678 function cMulTo(x, y, r) {
7683 function cSqrTo(x, r) {
7688 Classic.prototype.convert = cConvert
7689 Classic.prototype.revert = cRevert
7690 Classic.prototype.reduce = cReduce
7691 Classic.prototype.mulTo = cMulTo
7692 Classic.prototype.sqrTo = cSqrTo
7694 // (protected) return "-
1/this %
2^DB"; useful for Mont. reduction
7698 // xy(
2-xy) = (
1+km)(
1-km)
7699 // x[y(
2-xy)] =
1-k^
2m^
2
7700 // x[y(
2-xy)] ==
1 (mod m^
2)
7701 // if y is
1/x mod m, then y(
2-xy) is
1/x mod m^
2
7702 // should reduce x and y(
2-xy) by m^
2 at each step to keep size bounded.
7703 // JS multiply "overflows" differently from C/C++, so care is needed here.
7704 function bnpInvDigit() {
7705 if (this.t <
1) return
0
7707 if ((x &
1) ==
0) return
0
7708 var y = x &
3; // y ==
1/x mod
2^
2
7709 y = (y * (
2 - (x &
0xf) * y)) &
0xf; // y ==
1/x mod
2^
4
7710 y = (y * (
2 - (x &
0xff) * y)) &
0xff; // y ==
1/x mod
2^
8
7711 y = (y * (
2 - (((x &
0xffff) * y) &
0xffff))) &
0xffff; // y ==
1/x mod
2^
16
7712 // last step - calculate inverse mod DV directly
7713 // assumes
16 < DB <=
32 and assumes ability to handle
48-bit ints
7714 y = (y * (
2 - x * y % this.DV)) % this.DV; // y ==
1/x mod
2^dbits
7715 // we really want the negative inverse, and -DV < y < DV
7716 return (y
> 0) ? this.DV - y : -y
7719 // Montgomery reduction
7720 function Montgomery(m) {
7722 this.mp = m.invDigit()
7723 this.mpl = this.mp &
0x7fff
7724 this.mph = this.mp
>> 15
7725 this.um = (
1 << (m.DB -
15)) -
1
7730 function montConvert(x) {
7731 var r = new BigInteger()
7733 .dlShiftTo(this.m.t, r)
7734 r.divRemTo(this.m, null, r)
7735 if (x.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) this.m.subTo(r, r)
7740 function montRevert(x) {
7741 var r = new BigInteger()
7747 // x = x/R mod m (HAC
14.32)
7748 function montReduce(x) {
7749 while (x.t <= this.mt2) // pad x so am has enough room later
7751 for (var i =
0; i < this.m.t; ++i) {
7752 // faster way of calculating u0 = x[i]*mp mod DV
7753 var j = x[i] &
0x7fff
7754 var u0 = (j * this.mpl + (((j * this.mph + (x[i]
>> 15) * this.mpl) & this.um) <<
15)) & x.DM
7755 // use am to combine the multiply-shift-add into one call
7757 x[j] += this.m.am(
0, u0, x, i,
0, this.m.t)
7759 while (x[j]
>= x.DV) {
7765 x.drShiftTo(this.m.t, x)
7766 if (x.compareTo(this.m)
>=
0) x.subTo(this.m, x)
7769 // r = "x^
2/R mod m"; x != r
7770 function montSqrTo(x, r) {
7775 // r = "xy/R mod m"; x,y != r
7776 function montMulTo(x, y, r) {
7781 Montgomery.prototype.convert = montConvert
7782 Montgomery.prototype.revert = montRevert
7783 Montgomery.prototype.reduce = montReduce
7784 Montgomery.prototype.mulTo = montMulTo
7785 Montgomery.prototype.sqrTo = montSqrTo
7787 // (protected) true iff this is even
7788 function bnpIsEven() {
7789 return ((this.t
> 0) ? (this[
0] &
1) : this.s) ==
0
7792 // (protected) this^e, e <
2^
32, doing sqr and mul with
"r" (HAC
14.79)
7793 function bnpExp(e, z) {
7794 if (e
> 0xffffffff || e <
1) return BigInteger.ONE
7795 var r = new BigInteger(),
7796 r2 = new BigInteger(),
7797 g = z.convert(this),
7802 if ((e & (
1 << i))
> 0) z.mulTo(r2, g, r)
7812 // (public) this^e % m,
0 <= e <
2^
32
7813 function bnModPowInt(e, m) {
7815 if (e <
256 || m.isEven()) z = new Classic(m)
7816 else z = new Montgomery(m)
7817 return this.exp(e, z)
7821 proto.copyTo = bnpCopyTo
7822 proto.fromInt = bnpFromInt
7823 proto.fromString = bnpFromString
7824 proto.clamp = bnpClamp
7825 proto.dlShiftTo = bnpDLShiftTo
7826 proto.drShiftTo = bnpDRShiftTo
7827 proto.lShiftTo = bnpLShiftTo
7828 proto.rShiftTo = bnpRShiftTo
7829 proto.subTo = bnpSubTo
7830 proto.multiplyTo = bnpMultiplyTo
7831 proto.squareTo = bnpSquareTo
7832 proto.divRemTo = bnpDivRemTo
7833 proto.invDigit = bnpInvDigit
7834 proto.isEven = bnpIsEven
7838 proto.toString = bnToString
7839 proto.negate = bnNegate
7841 proto.compareTo = bnCompareTo
7842 proto.bitLength = bnBitLength
7843 proto.byteLength = bnByteLength
7845 proto.modPowInt = bnModPowInt
7848 function bnClone() {
7849 var r = new BigInteger()
7854 // (public) return value as integer
7855 function bnIntValue() {
7857 if (this.t ==
1) return this[
0] - this.DV
7858 else if (this.t ==
0) return -
1
7859 } else if (this.t ==
1) return this[
0]
7860 else if (this.t ==
0) return
0
7861 // assumes
16 < DB <
32
7862 return ((this[
1] & ((
1 << (
32 - this.DB)) -
1)) << this.DB) | this[
0]
7865 // (public) return value as byte
7866 function bnByteValue() {
7867 return (this.t ==
0) ? this.s : (this[
0] <<
24)
>> 24
7870 // (public) return value as short (assumes DB
>=
16)
7871 function bnShortValue() {
7872 return (this.t ==
0) ? this.s : (this[
0] <<
16)
>> 16
7875 // (protected) return x s.t. r^x < DV
7876 function bnpChunkSize(r) {
7877 return Math.floor(Math.LN2 * this.DB / Math.log(r))
7880 // (public)
0 if this ==
0,
1 if this
> 0
7881 function bnSigNum() {
7882 if (this.s <
0) return -
1
7883 else if (this.t <=
0 || (this.t ==
1 && this[
0] <=
0)) return
0
7887 // (protected) convert to radix string
7888 function bnpToRadix(b) {
7889 if (b == null) b =
10
7890 if (this.signum() ==
0 || b <
2 || b
> 36) return
"0"
7891 var cs = this.chunkSize(b)
7892 var a = Math.pow(b, cs)
7894 y = new BigInteger(),
7895 z = new BigInteger(),
7897 this.divRemTo(d, y, z)
7898 while (y.signum()
> 0) {
7899 r = (a + z.intValue())
7908 // (protected) convert from radix string
7909 function bnpFromRadix(s, b) {
7912 if (b == null) b =
10
7913 var cs = self.chunkSize(b)
7914 var d = Math.pow(b, cs),
7918 for (var i =
0; i < s.length; ++i) {
7921 if (s.charAt(i) ==
"-" && self.signum() ==
0) mi = true
7927 self.dAddOffset(w,
0)
7933 self.dMultiply(Math.pow(b, j))
7934 self.dAddOffset(w,
0)
7936 if (mi) BigInteger.ZERO.subTo(self, self)
7939 // (protected) alternate constructor
7940 function bnpFromNumber(a, b, c) {
7942 if (
"number" == typeof b) {
7943 // new BigInteger(int,int,RNG)
7944 if (a <
2) self.fromInt(
1)
7946 self.fromNumber(a, c)
7947 if (!self.testBit(a -
1)) // force MSB set
7948 self.bitwiseTo(BigInteger.ONE.shiftLeft(a -
1), op_or, self)
7949 if (self.isEven()) self.dAddOffset(
1,
0); // force odd
7950 while (!self.isProbablePrime(b)) {
7951 self.dAddOffset(
2,
0)
7952 if (self.bitLength()
> a) self.subTo(BigInteger.ONE.shiftLeft(a -
1), self)
7956 // new BigInteger(int,RNG)
7957 var x = new Array(),
7959 x.length = (a
>> 3) +
1
7961 if (t
> 0) x[
0] &= ((
1 << t) -
1)
7963 self.fromString(x,
256)
7967 // (public) convert to bigendian byte array
7968 function bnToByteArray() {
7973 var p = self.DB - (i * self.DB) %
8,
7976 if (p < self.DB && (d = self[i]
>> p) != (self.s & self.DM)
>> p)
7977 r[k++] = d | (self.s << (self.DB - p))
7980 d = (self[i] & ((
1 << p) -
1)) << (
8 - p)
7981 d |= self[--i]
>> (p += self.DB -
8)
7983 d = (self[i]
>> (p -=
8)) &
0xff
7989 if ((d &
0x80) !=
0) d |= -
256
7990 if (k ===
0 && (self.s &
0x80) != (d &
0x80))++k
7991 if (k
> 0 || d != self.s) r[k++] = d
7997 function bnEquals(a) {
7998 return (this.compareTo(a) ==
0)
8002 return (this.compareTo(a) <
0) ? this : a
8006 return (this.compareTo(a)
> 0) ? this : a
8009 // (protected) r = this op a (bitwise)
8010 function bnpBitwiseTo(a, op, r) {
8012 var i, f, m = Math.min(a.t, self.t)
8013 for (i =
0; i < m; ++i) r[i] = op(self[i], a[i])
8016 for (i = m; i < self.t; ++i) r[i] = op(self[i], f)
8019 f = self.s & self.DM
8020 for (i = m; i < a.t; ++i) r[i] = op(f, a[i])
8023 r.s = op(self.s, a.s)
8027 // (public) this & a
8028 function op_and(x, y) {
8033 var r = new BigInteger()
8034 this.bitwiseTo(a, op_and, r)
8038 // (public) this | a
8039 function op_or(x, y) {
8044 var r = new BigInteger()
8045 this.bitwiseTo(a, op_or, r)
8049 // (public) this ^ a
8050 function op_xor(x, y) {
8055 var r = new BigInteger()
8056 this.bitwiseTo(a, op_xor, r)
8060 // (public) this & ~a
8061 function op_andnot(x, y) {
8065 function bnAndNot(a) {
8066 var r = new BigInteger()
8067 this.bitwiseTo(a, op_andnot, r)
8073 var r = new BigInteger()
8074 for (var i =
0; i < this.t; ++i) r[i] = this.DM & ~this[i]
8080 // (public) this << n
8081 function bnShiftLeft(n) {
8082 var r = new BigInteger()
8083 if (n <
0) this.rShiftTo(-n, r)
8084 else this.lShiftTo(n, r)
8088 // (public) this
>> n
8089 function bnShiftRight(n) {
8090 var r = new BigInteger()
8091 if (n <
0) this.lShiftTo(-n, r)
8092 else this.rShiftTo(n, r)
8096 // return index of lowest
1-bit in x, x <
2^
31
8098 if (x ==
0) return -
1
8100 if ((x &
0xffff) ==
0) {
8104 if ((x &
0xff) ==
0) {
8108 if ((x &
0xf) ==
0) {
8116 if ((x &
1) ==
0)++r
8120 // (public) returns index of lowest
1-bit (or -
1 if none)
8121 function bnGetLowestSetBit() {
8122 for (var i =
0; i < this.t; ++i)
8123 if (this[i] !=
0) return i * this.DB + lbit(this[i])
8124 if (this.s <
0) return this.t * this.DB
8128 // return number of
1 bits in x
8138 // (public) return number of set bits
8139 function bnBitCount() {
8141 x = this.s & this.DM
8142 for (var i =
0; i < this.t; ++i) r += cbit(this[i] ^ x)
8146 // (public) true iff nth bit is set
8147 function bnTestBit(n) {
8148 var j = Math.floor(n / this.DB)
8149 if (j
>= this.t) return (this.s !=
0)
8150 return ((this[j] & (
1 << (n % this.DB))) !=
0)
8153 // (protected) this op (
1<
<n)
8154 function bnpChangeBit(n, op) {
8155 var r = BigInteger.ONE.shiftLeft(n)
8156 this.bitwiseTo(r, op, r)
8160 // (public) this | (
1<
<n)
8161 function bnSetBit(n) {
8162 return this.changeBit(n, op_or)
8165 // (public) this & ~(
1<
<n)
8166 function bnClearBit(n) {
8167 return this.changeBit(n, op_andnot)
8170 // (public) this ^ (
1<
<n)
8171 function bnFlipBit(n) {
8172 return this.changeBit(n, op_xor)
8175 // (protected) r = this + a
8176 function bnpAddTo(a, r) {
8181 m = Math.min(a.t, self.t)
8184 r[i++] = c & self.DM
8189 while (i < self.t) {
8191 r[i++] = c & self.DM
8199 r[i++] = c & self.DM
8204 r.s = (c <
0) ? -
1 :
0
8205 if (c
> 0) r[i++] = c
8206 else if (c < -
1) r[i++] = self.DV + c
8211 // (public) this + a
8213 var r = new BigInteger()
8218 // (public) this - a
8219 function bnSubtract(a) {
8220 var r = new BigInteger()
8225 // (public) this * a
8226 function bnMultiply(a) {
8227 var r = new BigInteger()
8228 this.multiplyTo(a, r)
8233 function bnSquare() {
8234 var r = new BigInteger()
8239 // (public) this / a
8240 function bnDivide(a) {
8241 var r = new BigInteger()
8242 this.divRemTo(a, r, null)
8246 // (public) this % a
8247 function bnRemainder(a) {
8248 var r = new BigInteger()
8249 this.divRemTo(a, null, r)
8253 // (public) [this/a,this%a]
8254 function bnDivideAndRemainder(a) {
8255 var q = new BigInteger(),
8256 r = new BigInteger()
8257 this.divRemTo(a, q, r)
8258 return new Array(q, r)
8261 // (protected) this *= n, this
>=
0,
1 < n < DV
8262 function bnpDMultiply(n) {
8263 this[this.t] = this.am(
0, n -
1, this,
0,
0, this.t)
8268 // (protected) this += n << w words, this
>=
0
8269 function bnpDAddOffset(n, w) {
8271 while (this.t <= w) this[this.t++] =
0
8273 while (this[w]
>= this.DV) {
8275 if (++w
>= this.t) this[this.t++] =
0
8281 function NullExp() {}
8287 function nMulTo(x, y, r) {
8291 function nSqrTo(x, r) {
8295 NullExp.prototype.convert = nNop
8296 NullExp.prototype.revert = nNop
8297 NullExp.prototype.mulTo = nMulTo
8298 NullExp.prototype.sqrTo = nSqrTo
8302 return this.exp(e, new NullExp())
8305 // (protected) r = lower n words of "this * a", a.t <= n
8306 // "this" should be the larger one if appropriate.
8307 function bnpMultiplyLowerTo(a, n, r) {
8308 var i = Math.min(this.t + a.t, n)
8309 r.s =
0; // assumes a,this
>=
0
8311 while (i
> 0) r[--i] =
0
8313 for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(
0, a[i], r, i,
0, this.t)
8314 for (j = Math.min(a.t, n); i < j; ++i) this.am(
0, a[i], r, i,
0, n - i)
8318 // (protected) r =
"this * a" without lower n words, n
> 0
8319 //
"this" should be the larger one if appropriate.
8320 function bnpMultiplyUpperTo(a, n, r) {
8322 var i = r.t = this.t + a.t - n
8323 r.s =
0; // assumes a,this
>=
0
8324 while (--i
>=
0) r[i] =
0
8325 for (i = Math.max(n - this.t,
0); i < a.t; ++i)
8326 r[this.t + i - n] = this.am(n - i, a[i], r,
0,
0, this.t + i - n)
8331 // Barrett modular reduction
8332 function Barrett(m) {
8334 this.r2 = new BigInteger()
8335 this.q3 = new BigInteger()
8336 BigInteger.ONE.dlShiftTo(
2 * m.t, this.r2)
8337 this.mu = this.r2.divide(m)
8341 function barrettConvert(x) {
8342 if (x.s <
0 || x.t
> 2 * this.m.t) return x.mod(this.m)
8343 else if (x.compareTo(this.m) <
0) return x
8345 var r = new BigInteger()
8352 function barrettRevert(x) {
8356 // x = x mod m (HAC
14.42)
8357 function barrettReduce(x) {
8359 x.drShiftTo(self.m.t -
1, self.r2)
8360 if (x.t
> self.m.t +
1) {
8364 self.mu.multiplyUpperTo(self.r2, self.m.t +
1, self.q3)
8365 self.m.multiplyLowerTo(self.q3, self.m.t +
1, self.r2)
8366 while (x.compareTo(self.r2) <
0) x.dAddOffset(
1, self.m.t +
1)
8368 while (x.compareTo(self.m)
>=
0) x.subTo(self.m, x)
8371 // r = x^
2 mod m; x != r
8372 function barrettSqrTo(x, r) {
8377 // r = x*y mod m; x,y != r
8378 function barrettMulTo(x, y, r) {
8383 Barrett.prototype.convert = barrettConvert
8384 Barrett.prototype.revert = barrettRevert
8385 Barrett.prototype.reduce = barrettReduce
8386 Barrett.prototype.mulTo = barrettMulTo
8387 Barrett.prototype.sqrTo = barrettSqrTo
8389 // (public) this^e % m (HAC
14.85)
8390 function bnModPow(e, m) {
8391 var i = e.bitLength(),
8394 if (i <=
0) return r
8395 else if (i <
18) k =
1
8396 else if (i <
48) k =
3
8397 else if (i <
144) k =
4
8398 else if (i <
768) k =
5
8402 else if (m.isEven())
8405 z = new Montgomery(m)
8408 var g = new Array(),
8412 g[
1] = z.convert(this)
8414 var g2 = new BigInteger()
8417 g[n] = new BigInteger()
8418 z.mulTo(g2, g[n -
2], g[n])
8425 r2 = new BigInteger(),
8429 if (i
>= k1) w = (e[j]
>> (i - k1)) & km
8431 w = (e[j] & ((
1 << (i +
1)) -
1)) << (k1 - i)
8432 if (j
> 0) w |= e[j -
1]
>> (this.DB + i - k1)
8436 while ((w &
1) ==
0) {
8444 if (is1) { // ret ==
1, don't bother squaring or multiplying it
8453 if (n
> 0) z.sqrTo(r, r2)
8459 z.mulTo(r2, g[w], r)
8462 while (j
>=
0 && (e[j] & (
1 << i)) ==
0) {
8476 // (public) gcd(this,a) (HAC
14.54)
8478 var x = (this.s <
0) ? this.negate() : this.clone()
8479 var y = (a.s <
0) ? a.negate() : a.clone()
8480 if (x.compareTo(y) <
0) {
8485 var i = x.getLowestSetBit(),
8486 g = y.getLowestSetBit()
8493 while (x.signum()
> 0) {
8494 if ((i = x.getLowestSetBit())
> 0) x.rShiftTo(i, x)
8495 if ((i = y.getLowestSetBit())
> 0) y.rShiftTo(i, y)
8496 if (x.compareTo(y)
>=
0) {
8504 if (g
> 0) y.lShiftTo(g, y)
8508 // (protected) this % n, n <
2^
26
8509 function bnpModInt(n) {
8510 if (n <=
0) return
0
8511 var d = this.DV % n,
8512 r = (this.s <
0) ? n -
1 :
0
8514 if (d ==
0) r = this[
0] % n
8516 for (var i = this.t -
1; i
>=
0; --i) r = (d * r + this[i]) % n
8520 // (public)
1/this % m (HAC
14.61)
8521 function bnModInverse(m) {
8523 if ((this.isEven() && ac) || m.signum() ==
0) return BigInteger.ZERO
8530 while (u.signum() !=
0) {
8531 while (u.isEven()) {
8534 if (!a.isEven() || !b.isEven()) {
8539 } else if (!b.isEven()) b.subTo(m, b)
8542 while (v.isEven()) {
8545 if (!c.isEven() || !d.isEven()) {
8550 } else if (!d.isEven()) d.subTo(m, d)
8553 if (u.compareTo(v)
>=
0) {
8555 if (ac) a.subTo(c, a)
8559 if (ac) c.subTo(a, c)
8563 if (v.compareTo(BigInteger.ONE) !=
0) return BigInteger.ZERO
8564 if (d.compareTo(m)
>=
0) return d.subtract(m)
8565 if (d.signum() <
0) d.addTo(m, d)
8567 if (d.signum() <
0) return d.add(m)
8572 2,
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47,
53,
59,
61,
67,
71,
8573 73,
79,
83,
89,
97,
101,
103,
107,
109,
113,
127,
131,
137,
139,
149,
151,
8574 157,
163,
167,
173,
179,
181,
191,
193,
197,
199,
211,
223,
227,
229,
233,
8575 239,
241,
251,
257,
263,
269,
271,
277,
281,
283,
293,
307,
311,
313,
317,
8576 331,
337,
347,
349,
353,
359,
367,
373,
379,
383,
389,
397,
401,
409,
419,
8577 421,
431,
433,
439,
443,
449,
457,
461,
463,
467,
479,
487,
491,
499,
503,
8578 509,
521,
523,
541,
547,
557,
563,
569,
571,
577,
587,
593,
599,
601,
607,
8579 613,
617,
619,
631,
641,
643,
647,
653,
659,
661,
673,
677,
683,
691,
701,
8580 709,
719,
727,
733,
739,
743,
751,
757,
761,
769,
773,
787,
797,
809,
811,
8581 821,
823,
827,
829,
839,
853,
857,
859,
863,
877,
881,
883,
887,
907,
911,
8582 919,
929,
937,
941,
947,
953,
967,
971,
977,
983,
991,
997
8585 var lplim = (
1 <<
26) / lowprimes[lowprimes.length -
1]
8587 // (public) test primality with certainty
>=
1-
.5^t
8588 function bnIsProbablePrime(t) {
8589 var i, x = this.abs()
8590 if (x.t ==
1 && x[
0] <= lowprimes[lowprimes.length -
1]) {
8591 for (i =
0; i < lowprimes.length; ++i)
8592 if (x[
0] == lowprimes[i]) return true
8595 if (x.isEven()) return false
8597 while (i < lowprimes.length) {
8598 var m = lowprimes[i],
8600 while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
8602 while (i < j) if (m % lowprimes[i++] ==
0) return false
8604 return x.millerRabin(t)
8607 // (protected) true if probably prime (HAC
4.24, Miller-Rabin)
8608 function bnpMillerRabin(t) {
8609 var n1 = this.subtract(BigInteger.ONE)
8610 var k = n1.getLowestSetBit()
8611 if (k <=
0) return false
8612 var r = n1.shiftRight(k)
8614 if (t
> lowprimes.length) t = lowprimes.length
8615 var a = new BigInteger(null)
8617 for (var i =
0; i < t; ++i) {
8619 j = lowprimes[Math.floor(Math.random() * lowprimes.length)]
8620 if (bases.indexOf(j) == -
1) break
8624 var y = a.modPow(r, this)
8625 if (y.compareTo(BigInteger.ONE) !=
0 && y.compareTo(n1) !=
0) {
8627 while (j++ < k && y.compareTo(n1) !=
0) {
8628 y = y.modPowInt(
2, this)
8629 if (y.compareTo(BigInteger.ONE) ==
0) return false
8631 if (y.compareTo(n1) !=
0) return false
8638 proto.chunkSize = bnpChunkSize
8639 proto.toRadix = bnpToRadix
8640 proto.fromRadix = bnpFromRadix
8641 proto.fromNumber = bnpFromNumber
8642 proto.bitwiseTo = bnpBitwiseTo
8643 proto.changeBit = bnpChangeBit
8644 proto.addTo = bnpAddTo
8645 proto.dMultiply = bnpDMultiply
8646 proto.dAddOffset = bnpDAddOffset
8647 proto.multiplyLowerTo = bnpMultiplyLowerTo
8648 proto.multiplyUpperTo = bnpMultiplyUpperTo
8649 proto.modInt = bnpModInt
8650 proto.millerRabin = bnpMillerRabin
8653 proto.clone = bnClone
8654 proto.intValue = bnIntValue
8655 proto.byteValue = bnByteValue
8656 proto.shortValue = bnShortValue
8657 proto.signum = bnSigNum
8658 proto.toByteArray = bnToByteArray
8659 proto.equals = bnEquals
8665 proto.andNot = bnAndNot
8667 proto.shiftLeft = bnShiftLeft
8668 proto.shiftRight = bnShiftRight
8669 proto.getLowestSetBit = bnGetLowestSetBit
8670 proto.bitCount = bnBitCount
8671 proto.testBit = bnTestBit
8672 proto.setBit = bnSetBit
8673 proto.clearBit = bnClearBit
8674 proto.flipBit = bnFlipBit
8676 proto.subtract = bnSubtract
8677 proto.multiply = bnMultiply
8678 proto.divide = bnDivide
8679 proto.remainder = bnRemainder
8680 proto.divideAndRemainder = bnDivideAndRemainder
8681 proto.modPow = bnModPow
8682 proto.modInverse = bnModInverse
8685 proto.isProbablePrime = bnIsProbablePrime
8687 // JSBN-specific extension
8688 proto.square = bnSquare
8691 BigInteger.ZERO = nbv(
0)
8692 BigInteger.ONE = nbv(
1)
8693 BigInteger.valueOf = nbv
8695 module.exports = BigInteger
8697 },{"../package.json":
4}],
2:[function(require,module,exports){
8699 // FIXME: Kind of a weird way to throw exceptions, consider removing
8700 var assert = require('assert')
8701 var BigInteger = require('./bigi')
8704 * Turns a byte array into a big integer.
8706 * This function will interpret a byte array as a big integer in big
8709 BigInteger.fromByteArrayUnsigned = function(byteArray) {
8710 // BigInteger expects a DER integer conformant byte array
8711 if (byteArray[
0] &
0x80) {
8712 return new BigInteger([
0].concat(byteArray))
8715 return new BigInteger(byteArray)
8719 * Returns a byte array representation of the big integer.
8721 * This returns the absolute of the contained value in big endian
8722 * form. A value of zero results in an empty array.
8724 BigInteger.prototype.toByteArrayUnsigned = function() {
8725 var byteArray = this.toByteArray()
8726 return byteArray[
0] ===
0 ? byteArray.slice(
1) : byteArray
8729 BigInteger.fromDERInteger = function(byteArray) {
8730 return new BigInteger(byteArray)
8734 * Converts BigInteger to a DER integer representation.
8736 * The format for this value uses the most significant bit as a sign
8737 * bit. If the most significant bit is already set and the integer is
8738 * positive, a
0x00 is prepended.
8754 * -
62300 =
> 0xff0ca4
8756 BigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray
8758 BigInteger.fromBuffer = function(buffer) {
8759 // BigInteger expects a DER integer conformant byte array
8760 if (buffer[
0] &
0x80) {
8761 var byteArray = Array.prototype.slice.call(buffer)
8763 return new BigInteger([
0].concat(byteArray))
8766 return new BigInteger(buffer)
8769 BigInteger.fromHex = function(hex) {
8770 if (hex === '') return BigInteger.ZERO
8772 assert.equal(hex, hex.match(/^[A-Fa-f0-
9]+/), 'Invalid hex string')
8773 assert.equal(hex.length %
2,
0, 'Incomplete hex')
8774 return new BigInteger(hex,
16)
8777 BigInteger.prototype.toBuffer = function(size) {
8778 var byteArray = this.toByteArrayUnsigned()
8781 var padding = size - byteArray.length
8782 while (zeros.length < padding) zeros.push(
0)
8784 return new Buffer(zeros.concat(byteArray))
8787 BigInteger.prototype.toHex = function(size) {
8788 return this.toBuffer(size).toString('hex')
8791 }).call(this,require(
"buffer").Buffer)
8792 },{
"./bigi":
1,
"assert":
5,
"buffer":
7}],
3:[function(require,module,exports){
8793 var BigInteger = require('./bigi')
8796 require('./convert')
8798 module.exports = BigInteger
8799 },{
"./bigi":
1,
"./convert":
2}],
4:[function(require,module,exports){
8803 "description":
"Big integers.",
8821 "devDependencies": {
8824 "coveralls":
"^2.10.0",
8825 "istanbul":
"^0.2.11"
8828 "url":
"https://github.com/cryptocoinjs/bigi",
8831 "main":
"./lib/index.js",
8833 "test":
"_mocha -- test/*.js",
8834 "jshint":
"jshint --config jshint.json lib/*.js ; true",
8836 "coverage":
"istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
8837 "coveralls":
"npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info"
8841 "files":
"test/*.js",
8847 "safari/6.0..latest",
8848 "iphone/6.0..latest",
8849 "android-browser/4.2..latest"
8853 "url":
"https://github.com/cryptocoinjs/bigi/issues"
8855 "homepage":
"https://github.com/cryptocoinjs/bigi",
8856 "_id":
"bigi@1.4.0",
8858 "shasum":
"90ac1aeac0a531216463bdb58f42c1e05c8407ac",
8859 "tarball":
"http://registry.npmjs.org/bigi/-/bigi-1.4.0.tgz"
8861 "_from":
"bigi@^1.4.0",
8862 "_npmVersion":
"1.4.3",
8865 "email":
"jprichardson@gmail.com"
8870 "email":
"jprichardson@gmail.com"
8873 "name":
"midnightlightning",
8874 "email":
"boydb@midnightdesign.ws"
8877 "name":
"sidazhang",
8878 "email":
"sidazhang89@gmail.com"
8882 "email":
"npm@shesek.info"
8886 "_shasum":
"90ac1aeac0a531216463bdb58f42c1e05c8407ac",
8887 "_resolved":
"https://registry.npmjs.org/bigi/-/bigi-1.4.0.tgz"
8890 },{}],
5:[function(require,module,exports){
8891 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
8893 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
8895 // Originally from narwhal.js (http://narwhaljs.org)
8896 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
8898 // Permission is hereby granted, free of charge, to any person obtaining a copy
8899 // of this software and associated documentation files (the 'Software'), to
8900 // deal in the Software without restriction, including without limitation the
8901 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
8902 // sell copies of the Software, and to permit persons to whom the Software is
8903 // furnished to do so, subject to the following conditions:
8905 // The above copyright notice and this permission notice shall be included in
8906 // all copies or substantial portions of the Software.
8908 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
8909 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
8910 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
8911 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
8912 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
8913 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8915 // when used in node, this will actually load the util module we depend on
8916 // versus loading the builtin util module as happens otherwise
8917 // this is a bug in node module loading as far as I am concerned
8918 var util = require('util/');
8920 var pSlice = Array.prototype.slice;
8921 var hasOwn = Object.prototype.hasOwnProperty;
8923 //
1. The assert module provides functions that throw
8924 // AssertionError's when particular conditions are not met. The
8925 // assert module must conform to the following interface.
8927 var assert = module.exports = ok;
8929 //
2. The AssertionError is defined in assert.
8930 // new assert.AssertionError({ message: message,
8932 // expected: expected })
8934 assert.AssertionError = function AssertionError(options) {
8935 this.name = 'AssertionError';
8936 this.actual = options.actual;
8937 this.expected = options.expected;
8938 this.operator = options.operator;
8939 if (options.message) {
8940 this.message = options.message;
8941 this.generatedMessage = false;
8943 this.message = getMessage(this);
8944 this.generatedMessage = true;
8946 var stackStartFunction = options.stackStartFunction || fail;
8948 if (Error.captureStackTrace) {
8949 Error.captureStackTrace(this, stackStartFunction);
8952 // non v8 browsers so we can have a stacktrace
8953 var err = new Error();
8955 var out = err.stack;
8957 // try to strip useless frames
8958 var fn_name = stackStartFunction.name;
8959 var idx = out.indexOf('\n' + fn_name);
8961 // once we have located the function frame
8962 // we need to strip out everything before it (and its line)
8963 var next_line = out.indexOf('\n', idx +
1);
8964 out = out.substring(next_line +
1);
8972 // assert.AssertionError instanceof Error
8973 util.inherits(assert.AssertionError, Error);
8975 function replacer(key, value) {
8976 if (util.isUndefined(value)) {
8979 if (util.isNumber(value) && !isFinite(value)) {
8980 return value.toString();
8982 if (util.isFunction(value) || util.isRegExp(value)) {
8983 return value.toString();
8988 function truncate(s, n) {
8989 if (util.isString(s)) {
8990 return s.length < n ? s : s.slice(
0, n);
8996 function getMessage(self) {
8997 return truncate(JSON.stringify(self.actual, replacer),
128) + ' ' +
8998 self.operator + ' ' +
8999 truncate(JSON.stringify(self.expected, replacer),
128);
9002 // At present only the three keys mentioned above are used and
9003 // understood by the spec. Implementations or sub modules can pass
9004 // other keys to the AssertionError's constructor - they will be
9007 //
3. All of the following functions must throw an AssertionError
9008 // when a corresponding condition is not met, with a message that
9009 // may be undefined if not provided. All assertion methods provide
9010 // both the actual and expected values to the assertion error for
9011 // display purposes.
9013 function fail(actual, expected, message, operator, stackStartFunction) {
9014 throw new assert.AssertionError({
9019 stackStartFunction: stackStartFunction
9023 // EXTENSION! allows for well behaved errors defined elsewhere.
9026 //
4. Pure assertion tests whether a value is truthy, as determined
9028 // assert.ok(guard, message_opt);
9029 // This statement is equivalent to assert.equal(true, !!guard,
9030 // message_opt);. To test strictly for the value true, use
9031 // assert.strictEqual(true, guard, message_opt);.
9033 function ok(value, message) {
9034 if (!value) fail(value, true, message, '==', assert.ok);
9038 //
5. The equality assertion tests shallow, coercive equality with
9040 // assert.equal(actual, expected, message_opt);
9042 assert.equal = function equal(actual, expected, message) {
9043 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
9046 //
6. The non-equality assertion tests for whether two objects are not equal
9047 // with != assert.notEqual(actual, expected, message_opt);
9049 assert.notEqual = function notEqual(actual, expected, message) {
9050 if (actual == expected) {
9051 fail(actual, expected, message, '!=', assert.notEqual);
9055 //
7. The equivalence assertion tests a deep equality relation.
9056 // assert.deepEqual(actual, expected, message_opt);
9058 assert.deepEqual = function deepEqual(actual, expected, message) {
9059 if (!_deepEqual(actual, expected)) {
9060 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
9064 function _deepEqual(actual, expected) {
9065 //
7.1. All identical values are equivalent, as determined by ===.
9066 if (actual === expected) {
9069 } else if (util.isBuffer(actual) && util.isBuffer(expected)) {
9070 if (actual.length != expected.length) return false;
9072 for (var i =
0; i < actual.length; i++) {
9073 if (actual[i] !== expected[i]) return false;
9078 //
7.2. If the expected value is a Date object, the actual value is
9079 // equivalent if it is also a Date object that refers to the same time.
9080 } else if (util.isDate(actual) && util.isDate(expected)) {
9081 return actual.getTime() === expected.getTime();
9083 //
7.3 If the expected value is a RegExp object, the actual value is
9084 // equivalent if it is also a RegExp object with the same source and
9085 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
9086 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
9087 return actual.source === expected.source &&
9088 actual.global === expected.global &&
9089 actual.multiline === expected.multiline &&
9090 actual.lastIndex === expected.lastIndex &&
9091 actual.ignoreCase === expected.ignoreCase;
9093 //
7.4. Other pairs that do not both pass typeof value == 'object',
9094 // equivalence is determined by ==.
9095 } else if (!util.isObject(actual) && !util.isObject(expected)) {
9096 return actual == expected;
9098 //
7.5 For all other Object pairs, including Array objects, equivalence is
9099 // determined by having the same number of owned properties (as verified
9100 // with Object.prototype.hasOwnProperty.call), the same set of keys
9101 // (although not necessarily the same order), equivalent values for every
9102 // corresponding key, and an identical 'prototype' property. Note: this
9103 // accounts for both named and indexed properties on Arrays.
9105 return objEquiv(actual, expected);
9109 function isArguments(object) {
9110 return Object.prototype.toString.call(object) == '[object Arguments]';
9113 function objEquiv(a, b) {
9114 if (util.isNullOrUndefined(a) || util.isNullOrUndefined(b))
9116 // an identical 'prototype' property.
9117 if (a.prototype !== b.prototype) return false;
9118 // if one is a primitive, the other must be same
9119 if (util.isPrimitive(a) || util.isPrimitive(b)) {
9122 var aIsArgs = isArguments(a),
9123 bIsArgs = isArguments(b);
9124 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
9129 return _deepEqual(a, b);
9131 var ka = objectKeys(a),
9134 // having the same number of owned properties (keys incorporates
9136 if (ka.length != kb.length)
9138 //the same set of keys (although not necessarily the same order),
9142 for (i = ka.length -
1; i
>=
0; i--) {
9146 //equivalent values for every corresponding key, and
9147 //~~~possibly expensive deep test
9148 for (i = ka.length -
1; i
>=
0; i--) {
9150 if (!_deepEqual(a[key], b[key])) return false;
9155 //
8. The non-equivalence assertion tests for any deep inequality.
9156 // assert.notDeepEqual(actual, expected, message_opt);
9158 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
9159 if (_deepEqual(actual, expected)) {
9160 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
9164 //
9. The strict equality assertion tests strict equality, as determined by ===.
9165 // assert.strictEqual(actual, expected, message_opt);
9167 assert.strictEqual = function strictEqual(actual, expected, message) {
9168 if (actual !== expected) {
9169 fail(actual, expected, message, '===', assert.strictEqual);
9173 //
10. The strict non-equality assertion tests for strict inequality, as
9174 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
9176 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
9177 if (actual === expected) {
9178 fail(actual, expected, message, '!==', assert.notStrictEqual);
9182 function expectedException(actual, expected) {
9183 if (!actual || !expected) {
9187 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
9188 return expected.test(actual);
9189 } else if (actual instanceof expected) {
9191 } else if (expected.call({}, actual) === true) {
9198 function _throws(shouldThrow, block, expected, message) {
9201 if (util.isString(expected)) {
9212 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
9213 (message ? ' ' + message : '.');
9215 if (shouldThrow && !actual) {
9216 fail(actual, expected, 'Missing expected exception' + message);
9219 if (!shouldThrow && expectedException(actual, expected)) {
9220 fail(actual, expected, 'Got unwanted exception' + message);
9223 if ((shouldThrow && actual && expected &&
9224 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
9229 //
11. Expected to throw an error:
9230 // assert.throws(block, Error_opt, message_opt);
9232 assert.throws = function(block, /*optional*/error, /*optional*/message) {
9233 _throws.apply(this, [true].concat(pSlice.call(arguments)));
9236 // EXTENSION! This is annoying to write outside this module.
9237 assert.doesNotThrow = function(block, /*optional*/message) {
9238 _throws.apply(this, [false].concat(pSlice.call(arguments)));
9241 assert.ifError = function(err) { if (err) {throw err;}};
9243 var objectKeys = Object.keys || function (obj) {
9245 for (var key in obj) {
9246 if (hasOwn.call(obj, key)) keys.push(key);
9251 },{"util/":
29}],
6:[function(require,module,exports){
9253 },{}],
7:[function(require,module,exports){
9255 * The buffer module from node.js, for the browser.
9257 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
9261 var base64 = require('base64-js')
9262 var ieee754 = require('ieee754')
9263 var isArray = require('is-array')
9265 exports.Buffer = Buffer
9266 exports.SlowBuffer = SlowBuffer
9267 exports.INSPECT_MAX_BYTES =
50
9268 Buffer.poolSize =
8192 // not used by this implementation
9273 * If `Buffer.TYPED_ARRAY_SUPPORT`:
9274 * === true Use Uint8Array implementation (fastest)
9275 * === false Use Object implementation (most compatible, even IE6)
9277 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
9278 * Opera
11.6+, iOS
4.2+.
9280 * Due to various browser bugs, sometimes the Object implementation will be used even
9281 * when the browser supports typed arrays.
9285 * - Firefox
4-
29 lacks support for adding new properties to `Uint8Array` instances,
9286 * See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438.
9288 * - Safari
5-
7 lacks support for changing the `Object.prototype.constructor` property
9291 * - Chrome
9-
10 is missing the `TypedArray.prototype.subarray` function.
9293 * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
9294 * incorrect length in some situations.
9296 * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
9297 * get the Object implementation, which is slower but behaves correctly.
9299 Buffer.TYPED_ARRAY_SUPPORT = (function () {
9302 var arr = new Uint8Array(
1)
9303 arr.foo = function () { return
42 }
9304 arr.constructor = Bar
9305 return arr.foo() ===
42 && // typed array instances can be augmented
9306 arr.constructor === Bar && // constructor can be set
9307 typeof arr.subarray === 'function' && // chrome
9-
10 lack `subarray`
9308 arr.subarray(
1,
1).byteLength ===
0 // ie10 has broken `subarray`
9314 function kMaxLength () {
9315 return Buffer.TYPED_ARRAY_SUPPORT
9324 * The Buffer constructor returns instances of `Uint8Array` that are augmented
9325 * with function properties for all the node `Buffer` API functions. We use
9326 * `Uint8Array` so that square bracket notation works as expected -- it returns
9329 * By augmenting the instances, we can avoid modifying the `Uint8Array`
9332 function Buffer (arg) {
9333 if (!(this instanceof Buffer)) {
9334 // Avoid going through an ArgumentsAdaptorTrampoline in the common case.
9335 if (arguments.length
> 1) return new Buffer(arg, arguments[
1])
9336 return new Buffer(arg)
9340 this.parent = undefined
9343 if (typeof arg === 'number') {
9344 return fromNumber(this, arg)
9347 // Slightly less common case.
9348 if (typeof arg === 'string') {
9349 return fromString(this, arg, arguments.length
> 1 ? arguments[
1] : 'utf8')
9353 return fromObject(this, arg)
9356 function fromNumber (that, length) {
9357 that = allocate(that, length <
0 ?
0 : checked(length) |
0)
9358 if (!Buffer.TYPED_ARRAY_SUPPORT) {
9359 for (var i =
0; i < length; i++) {
9366 function fromString (that, string, encoding) {
9367 if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8'
9369 // Assumption: byteLength() return value is always < kMaxLength.
9370 var length = byteLength(string, encoding) |
0
9371 that = allocate(that, length)
9373 that.write(string, encoding)
9377 function fromObject (that, object) {
9378 if (Buffer.isBuffer(object)) return fromBuffer(that, object)
9380 if (isArray(object)) return fromArray(that, object)
9382 if (object == null) {
9383 throw new TypeError('must start with number, buffer, array or string')
9386 if (typeof ArrayBuffer !== 'undefined') {
9387 if (object.buffer instanceof ArrayBuffer) {
9388 return fromTypedArray(that, object)
9390 if (object instanceof ArrayBuffer) {
9391 return fromArrayBuffer(that, object)
9395 if (object.length) return fromArrayLike(that, object)
9397 return fromJsonObject(that, object)
9400 function fromBuffer (that, buffer) {
9401 var length = checked(buffer.length) |
0
9402 that = allocate(that, length)
9403 buffer.copy(that,
0,
0, length)
9407 function fromArray (that, array) {
9408 var length = checked(array.length) |
0
9409 that = allocate(that, length)
9410 for (var i =
0; i < length; i +=
1) {
9411 that[i] = array[i] &
255
9416 // Duplicate of fromArray() to keep fromArray() monomorphic.
9417 function fromTypedArray (that, array) {
9418 var length = checked(array.length) |
0
9419 that = allocate(that, length)
9420 // Truncating the elements is probably not what people expect from typed
9421 // arrays with BYTES_PER_ELEMENT
> 1 but it's compatible with the behavior
9422 // of the old Buffer constructor.
9423 for (var i =
0; i < length; i +=
1) {
9424 that[i] = array[i] &
255
9429 function fromArrayBuffer (that, array) {
9430 if (Buffer.TYPED_ARRAY_SUPPORT) {
9431 // Return an augmented `Uint8Array` instance, for best performance
9433 that = Buffer._augment(new Uint8Array(array))
9435 // Fallback: Return an object instance of the Buffer class
9436 that = fromTypedArray(that, new Uint8Array(array))
9441 function fromArrayLike (that, array) {
9442 var length = checked(array.length) |
0
9443 that = allocate(that, length)
9444 for (var i =
0; i < length; i +=
1) {
9445 that[i] = array[i] &
255
9450 // Deserialize { type: 'Buffer', data: [
1,
2,
3,...] } into a Buffer object.
9451 // Returns a zero-length buffer for inputs that don't conform to the spec.
9452 function fromJsonObject (that, object) {
9456 if (object.type === 'Buffer' && isArray(object.data)) {
9458 length = checked(array.length) |
0
9460 that = allocate(that, length)
9462 for (var i =
0; i < length; i +=
1) {
9463 that[i] = array[i] &
255
9468 function allocate (that, length) {
9469 if (Buffer.TYPED_ARRAY_SUPPORT) {
9470 // Return an augmented `Uint8Array` instance, for best performance
9471 that = Buffer._augment(new Uint8Array(length))
9473 // Fallback: Return an object instance of the Buffer class
9474 that.length = length
9475 that._isBuffer = true
9478 var fromPool = length !==
0 && length <= Buffer.poolSize
>>> 1
9479 if (fromPool) that.parent = rootParent
9484 function checked (length) {
9485 // Note: cannot use `length < kMaxLength` here because that fails when
9486 // length is NaN (which is otherwise coerced to zero.)
9487 if (length
>= kMaxLength()) {
9488 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
9489 'size:
0x' + kMaxLength().toString(
16) + ' bytes')
9494 function SlowBuffer (subject, encoding) {
9495 if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding)
9497 var buf = new Buffer(subject, encoding)
9502 Buffer.isBuffer = function isBuffer (b) {
9503 return !!(b != null && b._isBuffer)
9506 Buffer.compare = function compare (a, b) {
9507 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
9508 throw new TypeError('Arguments must be Buffers')
9511 if (a === b) return
0
9517 var len = Math.min(x, y)
9519 if (a[i] !== b[i]) break
9529 if (x < y) return -
1
9534 Buffer.isEncoding = function isEncoding (encoding) {
9535 switch (String(encoding).toLowerCase()) {
9553 Buffer.concat = function concat (list, length) {
9554 if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.')
9556 if (list.length ===
0) {
9557 return new Buffer(
0)
9561 if (length === undefined) {
9563 for (i =
0; i < list.length; i++) {
9564 length += list[i].length
9568 var buf = new Buffer(length)
9570 for (i =
0; i < list.length; i++) {
9578 function byteLength (string, encoding) {
9579 if (typeof string !== 'string') string = '' + string
9581 var len = string.length
9582 if (len ===
0) return
0
9584 // Use a for loop to avoid recursion
9585 var loweredCase = false
9596 return utf8ToBytes(string).length
9605 return base64ToBytes(string).length
9607 if (loweredCase) return utf8ToBytes(string).length // assume utf8
9608 encoding = ('' + encoding).toLowerCase()
9613 Buffer.byteLength = byteLength
9615 // pre-set for values that may exist in the future
9616 Buffer.prototype.length = undefined
9617 Buffer.prototype.parent = undefined
9619 function slowToString (encoding, start, end) {
9620 var loweredCase = false
9623 end = end === undefined || end === Infinity ? this.length : end |
0
9625 if (!encoding) encoding = 'utf8'
9626 if (start <
0) start =
0
9627 if (end
> this.length) end = this.length
9628 if (end <= start) return ''
9633 return hexSlice(this, start, end)
9637 return utf8Slice(this, start, end)
9640 return asciiSlice(this, start, end)
9643 return binarySlice(this, start, end)
9646 return base64Slice(this, start, end)
9652 return utf16leSlice(this, start, end)
9655 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
9656 encoding = (encoding + '').toLowerCase()
9662 Buffer.prototype.toString = function toString () {
9663 var length = this.length |
0
9664 if (length ===
0) return ''
9665 if (arguments.length ===
0) return utf8Slice(this,
0, length)
9666 return slowToString.apply(this, arguments)
9669 Buffer.prototype.equals = function equals (b) {
9670 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
9671 if (this === b) return true
9672 return Buffer.compare(this, b) ===
0
9675 Buffer.prototype.inspect = function inspect () {
9677 var max = exports.INSPECT_MAX_BYTES
9678 if (this.length
> 0) {
9679 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
9680 if (this.length
> max) str += ' ... '
9682 return '
<Buffer ' + str + '
>'
9685 Buffer.prototype.compare = function compare (b) {
9686 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
9687 if (this === b) return
0
9688 return Buffer.compare(this, b)
9691 Buffer.prototype.indexOf = function indexOf (val, byteOffset) {
9692 if (byteOffset
> 0x7fffffff) byteOffset =
0x7fffffff
9693 else if (byteOffset < -
0x80000000) byteOffset = -
0x80000000
9696 if (this.length ===
0) return -
1
9697 if (byteOffset
>= this.length) return -
1
9699 // Negative offsets start from the end of the buffer
9700 if (byteOffset <
0) byteOffset = Math.max(this.length + byteOffset,
0)
9702 if (typeof val === 'string') {
9703 if (val.length ===
0) return -
1 // special case: looking for empty string always fails
9704 return String.prototype.indexOf.call(this, val, byteOffset)
9706 if (Buffer.isBuffer(val)) {
9707 return arrayIndexOf(this, val, byteOffset)
9709 if (typeof val === 'number') {
9710 if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') {
9711 return Uint8Array.prototype.indexOf.call(this, val, byteOffset)
9713 return arrayIndexOf(this, [ val ], byteOffset)
9716 function arrayIndexOf (arr, val, byteOffset) {
9718 for (var i =
0; byteOffset + i < arr.length; i++) {
9719 if (arr[byteOffset + i] === val[foundIndex === -
1 ?
0 : i - foundIndex]) {
9720 if (foundIndex === -
1) foundIndex = i
9721 if (i - foundIndex +
1 === val.length) return byteOffset + foundIndex
9729 throw new TypeError('val must be string, number or Buffer')
9732 // `get` is deprecated
9733 Buffer.prototype.get = function get (offset) {
9734 console.log('.get() is deprecated. Access using array indexes instead.')
9735 return this.readUInt8(offset)
9738 // `set` is deprecated
9739 Buffer.prototype.set = function set (v, offset) {
9740 console.log('.set() is deprecated. Access using array indexes instead.')
9741 return this.writeUInt8(v, offset)
9744 function hexWrite (buf, string, offset, length) {
9745 offset = Number(offset) ||
0
9746 var remaining = buf.length - offset
9750 length = Number(length)
9751 if (length
> remaining) {
9756 // must be an even number of digits
9757 var strLen = string.length
9758 if (strLen %
2 !==
0) throw new Error('Invalid hex string')
9760 if (length
> strLen /
2) {
9763 for (var i =
0; i < length; i++) {
9764 var parsed = parseInt(string.substr(i *
2,
2),
16)
9765 if (isNaN(parsed)) throw new Error('Invalid hex string')
9766 buf[offset + i] = parsed
9771 function utf8Write (buf, string, offset, length) {
9772 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
9775 function asciiWrite (buf, string, offset, length) {
9776 return blitBuffer(asciiToBytes(string), buf, offset, length)
9779 function binaryWrite (buf, string, offset, length) {
9780 return asciiWrite(buf, string, offset, length)
9783 function base64Write (buf, string, offset, length) {
9784 return blitBuffer(base64ToBytes(string), buf, offset, length)
9787 function ucs2Write (buf, string, offset, length) {
9788 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
9791 Buffer.prototype.write = function write (string, offset, length, encoding) {
9792 // Buffer#write(string)
9793 if (offset === undefined) {
9795 length = this.length
9797 // Buffer#write(string, encoding)
9798 } else if (length === undefined && typeof offset === 'string') {
9800 length = this.length
9802 // Buffer#write(string, offset[, length][, encoding])
9803 } else if (isFinite(offset)) {
9805 if (isFinite(length)) {
9807 if (encoding === undefined) encoding = 'utf8'
9812 // legacy write(string, encoding, offset, length) - remove in v0.13
9820 var remaining = this.length - offset
9821 if (length === undefined || length
> remaining) length = remaining
9823 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
9824 throw new RangeError('attempt to write outside buffer bounds')
9827 if (!encoding) encoding = 'utf8'
9829 var loweredCase = false
9833 return hexWrite(this, string, offset, length)
9837 return utf8Write(this, string, offset, length)
9840 return asciiWrite(this, string, offset, length)
9843 return binaryWrite(this, string, offset, length)
9846 // Warning: maxLength not taken into account in base64Write
9847 return base64Write(this, string, offset, length)
9853 return ucs2Write(this, string, offset, length)
9856 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
9857 encoding = ('' + encoding).toLowerCase()
9863 Buffer.prototype.toJSON = function toJSON () {
9866 data: Array.prototype.slice.call(this._arr || this,
0)
9870 function base64Slice (buf, start, end) {
9871 if (start ===
0 && end === buf.length) {
9872 return base64.fromByteArray(buf)
9874 return base64.fromByteArray(buf.slice(start, end))
9878 function utf8Slice (buf, start, end) {
9879 end = Math.min(buf.length, end)
9884 var bytesPerSequence
9890 for (; i < end; i += bytesPerSequence) {
9894 if (firstByte
> 0xEF) {
9895 bytesPerSequence =
4
9896 } else if (firstByte
> 0xDF) {
9897 bytesPerSequence =
3
9898 } else if (firstByte
> 0xBF) {
9899 bytesPerSequence =
2
9901 bytesPerSequence =
1
9904 if (i + bytesPerSequence <= end) {
9905 switch (bytesPerSequence) {
9907 if (firstByte <
0x80) {
9908 codePoint = firstByte
9912 secondByte = buf[i +
1]
9913 if ((secondByte &
0xC0) ===
0x80) {
9914 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
9915 if (tempCodePoint
> 0x7F) {
9916 codePoint = tempCodePoint
9921 secondByte = buf[i +
1]
9922 thirdByte = buf[i +
2]
9923 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
9924 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
9925 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
9926 codePoint = tempCodePoint
9931 secondByte = buf[i +
1]
9932 thirdByte = buf[i +
2]
9933 fourthByte = buf[i +
3]
9934 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
9935 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
9936 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
9937 codePoint = tempCodePoint
9943 if (codePoint ===
0xFFFD) {
9944 // we generated an invalid codePoint so make sure to only advance by
1 byte
9945 bytesPerSequence =
1
9946 } else if (codePoint
> 0xFFFF) {
9947 // encode to utf16 (surrogate pair dance)
9948 codePoint -=
0x10000
9949 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
9950 codePoint =
0xDC00 | codePoint &
0x3FF
9956 return String.fromCharCode.apply(String, res)
9959 function asciiSlice (buf, start, end) {
9961 end = Math.min(buf.length, end)
9963 for (var i = start; i < end; i++) {
9964 ret += String.fromCharCode(buf[i] &
0x7F)
9969 function binarySlice (buf, start, end) {
9971 end = Math.min(buf.length, end)
9973 for (var i = start; i < end; i++) {
9974 ret += String.fromCharCode(buf[i])
9979 function hexSlice (buf, start, end) {
9980 var len = buf.length
9982 if (!start || start <
0) start =
0
9983 if (!end || end <
0 || end
> len) end = len
9986 for (var i = start; i < end; i++) {
9987 out += toHex(buf[i])
9992 function utf16leSlice (buf, start, end) {
9993 var bytes = buf.slice(start, end)
9995 for (var i =
0; i < bytes.length; i +=
2) {
9996 res += String.fromCharCode(bytes[i] + bytes[i +
1] *
256)
10001 Buffer.prototype.slice = function slice (start, end) {
10002 var len = this.length
10004 end = end === undefined ? len : ~~end
10008 if (start <
0) start =
0
10009 } else if (start
> len) {
10015 if (end <
0) end =
0
10016 } else if (end
> len) {
10020 if (end < start) end = start
10023 if (Buffer.TYPED_ARRAY_SUPPORT) {
10024 newBuf = Buffer._augment(this.subarray(start, end))
10026 var sliceLen = end - start
10027 newBuf = new Buffer(sliceLen, undefined)
10028 for (var i =
0; i < sliceLen; i++) {
10029 newBuf[i] = this[i + start]
10033 if (newBuf.length) newBuf.parent = this.parent || this
10039 * Need to make sure that buffer isn't trying to write out of bounds.
10041 function checkOffset (offset, ext, length) {
10042 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
10043 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
10046 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
10047 offset = offset |
0
10048 byteLength = byteLength |
0
10049 if (!noAssert) checkOffset(offset, byteLength, this.length)
10051 var val = this[offset]
10054 while (++i < byteLength && (mul *=
0x100)) {
10055 val += this[offset + i] * mul
10061 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
10062 offset = offset |
0
10063 byteLength = byteLength |
0
10065 checkOffset(offset, byteLength, this.length)
10068 var val = this[offset + --byteLength]
10070 while (byteLength
> 0 && (mul *=
0x100)) {
10071 val += this[offset + --byteLength] * mul
10077 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
10078 if (!noAssert) checkOffset(offset,
1, this.length)
10079 return this[offset]
10082 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
10083 if (!noAssert) checkOffset(offset,
2, this.length)
10084 return this[offset] | (this[offset +
1] <<
8)
10087 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
10088 if (!noAssert) checkOffset(offset,
2, this.length)
10089 return (this[offset] <<
8) | this[offset +
1]
10092 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
10093 if (!noAssert) checkOffset(offset,
4, this.length)
10095 return ((this[offset]) |
10096 (this[offset +
1] <<
8) |
10097 (this[offset +
2] <<
16)) +
10098 (this[offset +
3] *
0x1000000)
10101 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
10102 if (!noAssert) checkOffset(offset,
4, this.length)
10104 return (this[offset] *
0x1000000) +
10105 ((this[offset +
1] <<
16) |
10106 (this[offset +
2] <<
8) |
10110 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
10111 offset = offset |
0
10112 byteLength = byteLength |
0
10113 if (!noAssert) checkOffset(offset, byteLength, this.length)
10115 var val = this[offset]
10118 while (++i < byteLength && (mul *=
0x100)) {
10119 val += this[offset + i] * mul
10123 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
10128 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
10129 offset = offset |
0
10130 byteLength = byteLength |
0
10131 if (!noAssert) checkOffset(offset, byteLength, this.length)
10135 var val = this[offset + --i]
10136 while (i
> 0 && (mul *=
0x100)) {
10137 val += this[offset + --i] * mul
10141 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
10146 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
10147 if (!noAssert) checkOffset(offset,
1, this.length)
10148 if (!(this[offset] &
0x80)) return (this[offset])
10149 return ((
0xff - this[offset] +
1) * -
1)
10152 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
10153 if (!noAssert) checkOffset(offset,
2, this.length)
10154 var val = this[offset] | (this[offset +
1] <<
8)
10155 return (val &
0x8000) ? val |
0xFFFF0000 : val
10158 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
10159 if (!noAssert) checkOffset(offset,
2, this.length)
10160 var val = this[offset +
1] | (this[offset] <<
8)
10161 return (val &
0x8000) ? val |
0xFFFF0000 : val
10164 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
10165 if (!noAssert) checkOffset(offset,
4, this.length)
10167 return (this[offset]) |
10168 (this[offset +
1] <<
8) |
10169 (this[offset +
2] <<
16) |
10170 (this[offset +
3] <<
24)
10173 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
10174 if (!noAssert) checkOffset(offset,
4, this.length)
10176 return (this[offset] <<
24) |
10177 (this[offset +
1] <<
16) |
10178 (this[offset +
2] <<
8) |
10182 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
10183 if (!noAssert) checkOffset(offset,
4, this.length)
10184 return ieee754.read(this, offset, true,
23,
4)
10187 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
10188 if (!noAssert) checkOffset(offset,
4, this.length)
10189 return ieee754.read(this, offset, false,
23,
4)
10192 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
10193 if (!noAssert) checkOffset(offset,
8, this.length)
10194 return ieee754.read(this, offset, true,
52,
8)
10197 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
10198 if (!noAssert) checkOffset(offset,
8, this.length)
10199 return ieee754.read(this, offset, false,
52,
8)
10202 function checkInt (buf, value, offset, ext, max, min) {
10203 if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance')
10204 if (value
> max || value < min) throw new RangeError('value is out of bounds')
10205 if (offset + ext
> buf.length) throw new RangeError('index out of range')
10208 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
10210 offset = offset |
0
10211 byteLength = byteLength |
0
10212 if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(
2,
8 * byteLength),
0)
10216 this[offset] = value &
0xFF
10217 while (++i < byteLength && (mul *=
0x100)) {
10218 this[offset + i] = (value / mul) &
0xFF
10221 return offset + byteLength
10224 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
10226 offset = offset |
0
10227 byteLength = byteLength |
0
10228 if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(
2,
8 * byteLength),
0)
10230 var i = byteLength -
1
10232 this[offset + i] = value &
0xFF
10233 while (--i
>=
0 && (mul *=
0x100)) {
10234 this[offset + i] = (value / mul) &
0xFF
10237 return offset + byteLength
10240 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
10242 offset = offset |
0
10243 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
10244 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
10245 this[offset] = value
10249 function objectWriteUInt16 (buf, value, offset, littleEndian) {
10250 if (value <
0) value =
0xffff + value +
1
10251 for (var i =
0, j = Math.min(buf.length - offset,
2); i < j; i++) {
10252 buf[offset + i] = (value & (
0xff << (
8 * (littleEndian ? i :
1 - i))))
>>>
10253 (littleEndian ? i :
1 - i) *
8
10257 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
10259 offset = offset |
0
10260 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
10261 if (Buffer.TYPED_ARRAY_SUPPORT) {
10262 this[offset] = value
10263 this[offset +
1] = (value
>>> 8)
10265 objectWriteUInt16(this, value, offset, true)
10270 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
10272 offset = offset |
0
10273 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
10274 if (Buffer.TYPED_ARRAY_SUPPORT) {
10275 this[offset] = (value
>>> 8)
10276 this[offset +
1] = value
10278 objectWriteUInt16(this, value, offset, false)
10283 function objectWriteUInt32 (buf, value, offset, littleEndian) {
10284 if (value <
0) value =
0xffffffff + value +
1
10285 for (var i =
0, j = Math.min(buf.length - offset,
4); i < j; i++) {
10286 buf[offset + i] = (value
>>> (littleEndian ? i :
3 - i) *
8) &
0xff
10290 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
10292 offset = offset |
0
10293 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
10294 if (Buffer.TYPED_ARRAY_SUPPORT) {
10295 this[offset +
3] = (value
>>> 24)
10296 this[offset +
2] = (value
>>> 16)
10297 this[offset +
1] = (value
>>> 8)
10298 this[offset] = value
10300 objectWriteUInt32(this, value, offset, true)
10305 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
10307 offset = offset |
0
10308 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
10309 if (Buffer.TYPED_ARRAY_SUPPORT) {
10310 this[offset] = (value
>>> 24)
10311 this[offset +
1] = (value
>>> 16)
10312 this[offset +
2] = (value
>>> 8)
10313 this[offset +
3] = value
10315 objectWriteUInt32(this, value, offset, false)
10320 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
10322 offset = offset |
0
10324 var limit = Math.pow(
2,
8 * byteLength -
1)
10326 checkInt(this, value, offset, byteLength, limit -
1, -limit)
10331 var sub = value <
0 ?
1 :
0
10332 this[offset] = value &
0xFF
10333 while (++i < byteLength && (mul *=
0x100)) {
10334 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
10337 return offset + byteLength
10340 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
10342 offset = offset |
0
10344 var limit = Math.pow(
2,
8 * byteLength -
1)
10346 checkInt(this, value, offset, byteLength, limit -
1, -limit)
10349 var i = byteLength -
1
10351 var sub = value <
0 ?
1 :
0
10352 this[offset + i] = value &
0xFF
10353 while (--i
>=
0 && (mul *=
0x100)) {
10354 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
10357 return offset + byteLength
10360 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
10362 offset = offset |
0
10363 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
10364 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
10365 if (value <
0) value =
0xff + value +
1
10366 this[offset] = value
10370 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
10372 offset = offset |
0
10373 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
10374 if (Buffer.TYPED_ARRAY_SUPPORT) {
10375 this[offset] = value
10376 this[offset +
1] = (value
>>> 8)
10378 objectWriteUInt16(this, value, offset, true)
10383 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
10385 offset = offset |
0
10386 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
10387 if (Buffer.TYPED_ARRAY_SUPPORT) {
10388 this[offset] = (value
>>> 8)
10389 this[offset +
1] = value
10391 objectWriteUInt16(this, value, offset, false)
10396 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
10398 offset = offset |
0
10399 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
10400 if (Buffer.TYPED_ARRAY_SUPPORT) {
10401 this[offset] = value
10402 this[offset +
1] = (value
>>> 8)
10403 this[offset +
2] = (value
>>> 16)
10404 this[offset +
3] = (value
>>> 24)
10406 objectWriteUInt32(this, value, offset, true)
10411 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
10413 offset = offset |
0
10414 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
10415 if (value <
0) value =
0xffffffff + value +
1
10416 if (Buffer.TYPED_ARRAY_SUPPORT) {
10417 this[offset] = (value
>>> 24)
10418 this[offset +
1] = (value
>>> 16)
10419 this[offset +
2] = (value
>>> 8)
10420 this[offset +
3] = value
10422 objectWriteUInt32(this, value, offset, false)
10427 function checkIEEE754 (buf, value, offset, ext, max, min) {
10428 if (value
> max || value < min) throw new RangeError('value is out of bounds')
10429 if (offset + ext
> buf.length) throw new RangeError('index out of range')
10430 if (offset <
0) throw new RangeError('index out of range')
10433 function writeFloat (buf, value, offset, littleEndian, noAssert) {
10435 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
10437 ieee754.write(buf, value, offset, littleEndian,
23,
4)
10441 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
10442 return writeFloat(this, value, offset, true, noAssert)
10445 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
10446 return writeFloat(this, value, offset, false, noAssert)
10449 function writeDouble (buf, value, offset, littleEndian, noAssert) {
10451 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
10453 ieee754.write(buf, value, offset, littleEndian,
52,
8)
10457 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
10458 return writeDouble(this, value, offset, true, noAssert)
10461 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
10462 return writeDouble(this, value, offset, false, noAssert)
10465 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
10466 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
10467 if (!start) start =
0
10468 if (!end && end !==
0) end = this.length
10469 if (targetStart
>= target.length) targetStart = target.length
10470 if (!targetStart) targetStart =
0
10471 if (end
> 0 && end < start) end = start
10473 // Copy
0 bytes; we're done
10474 if (end === start) return
0
10475 if (target.length ===
0 || this.length ===
0) return
0
10477 // Fatal error conditions
10478 if (targetStart <
0) {
10479 throw new RangeError('targetStart out of bounds')
10481 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
10482 if (end <
0) throw new RangeError('sourceEnd out of bounds')
10485 if (end
> this.length) end = this.length
10486 if (target.length - targetStart < end - start) {
10487 end = target.length - targetStart + start
10490 var len = end - start
10493 if (this === target && start < targetStart && targetStart < end) {
10494 // descending copy from end
10495 for (i = len -
1; i
>=
0; i--) {
10496 target[i + targetStart] = this[i + start]
10498 } else if (len <
1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
10499 // ascending copy from start
10500 for (i =
0; i < len; i++) {
10501 target[i + targetStart] = this[i + start]
10504 target._set(this.subarray(start, start + len), targetStart)
10510 // fill(value, start=
0, end=buffer.length)
10511 Buffer.prototype.fill = function fill (value, start, end) {
10512 if (!value) value =
0
10513 if (!start) start =
0
10514 if (!end) end = this.length
10516 if (end < start) throw new RangeError('end < start')
10518 // Fill
0 bytes; we're done
10519 if (end === start) return
10520 if (this.length ===
0) return
10522 if (start <
0 || start
>= this.length) throw new RangeError('start out of bounds')
10523 if (end <
0 || end
> this.length) throw new RangeError('end out of bounds')
10526 if (typeof value === 'number') {
10527 for (i = start; i < end; i++) {
10531 var bytes = utf8ToBytes(value.toString())
10532 var len = bytes.length
10533 for (i = start; i < end; i++) {
10534 this[i] = bytes[i % len]
10542 * Creates a new `ArrayBuffer` with the *copied* memory of the buffer instance.
10543 * Added in Node
0.12. Only available in browsers that support ArrayBuffer.
10545 Buffer.prototype.toArrayBuffer = function toArrayBuffer () {
10546 if (typeof Uint8Array !== 'undefined') {
10547 if (Buffer.TYPED_ARRAY_SUPPORT) {
10548 return (new Buffer(this)).buffer
10550 var buf = new Uint8Array(this.length)
10551 for (var i =
0, len = buf.length; i < len; i +=
1) {
10557 throw new TypeError('Buffer.toArrayBuffer not supported in this browser')
10561 // HELPER FUNCTIONS
10562 // ================
10564 var BP = Buffer.prototype
10567 * Augment a Uint8Array *instance* (not the Uint8Array class!) with Buffer methods
10569 Buffer._augment = function _augment (arr) {
10570 arr.constructor = Buffer
10571 arr._isBuffer = true
10573 // save reference to original Uint8Array set method before overwriting
10580 arr.write = BP.write
10581 arr.toString = BP.toString
10582 arr.toLocaleString = BP.toString
10583 arr.toJSON = BP.toJSON
10584 arr.equals = BP.equals
10585 arr.compare = BP.compare
10586 arr.indexOf = BP.indexOf
10588 arr.slice = BP.slice
10589 arr.readUIntLE = BP.readUIntLE
10590 arr.readUIntBE = BP.readUIntBE
10591 arr.readUInt8 = BP.readUInt8
10592 arr.readUInt16LE = BP.readUInt16LE
10593 arr.readUInt16BE = BP.readUInt16BE
10594 arr.readUInt32LE = BP.readUInt32LE
10595 arr.readUInt32BE = BP.readUInt32BE
10596 arr.readIntLE = BP.readIntLE
10597 arr.readIntBE = BP.readIntBE
10598 arr.readInt8 = BP.readInt8
10599 arr.readInt16LE = BP.readInt16LE
10600 arr.readInt16BE = BP.readInt16BE
10601 arr.readInt32LE = BP.readInt32LE
10602 arr.readInt32BE = BP.readInt32BE
10603 arr.readFloatLE = BP.readFloatLE
10604 arr.readFloatBE = BP.readFloatBE
10605 arr.readDoubleLE = BP.readDoubleLE
10606 arr.readDoubleBE = BP.readDoubleBE
10607 arr.writeUInt8 = BP.writeUInt8
10608 arr.writeUIntLE = BP.writeUIntLE
10609 arr.writeUIntBE = BP.writeUIntBE
10610 arr.writeUInt16LE = BP.writeUInt16LE
10611 arr.writeUInt16BE = BP.writeUInt16BE
10612 arr.writeUInt32LE = BP.writeUInt32LE
10613 arr.writeUInt32BE = BP.writeUInt32BE
10614 arr.writeIntLE = BP.writeIntLE
10615 arr.writeIntBE = BP.writeIntBE
10616 arr.writeInt8 = BP.writeInt8
10617 arr.writeInt16LE = BP.writeInt16LE
10618 arr.writeInt16BE = BP.writeInt16BE
10619 arr.writeInt32LE = BP.writeInt32LE
10620 arr.writeInt32BE = BP.writeInt32BE
10621 arr.writeFloatLE = BP.writeFloatLE
10622 arr.writeFloatBE = BP.writeFloatBE
10623 arr.writeDoubleLE = BP.writeDoubleLE
10624 arr.writeDoubleBE = BP.writeDoubleBE
10626 arr.inspect = BP.inspect
10627 arr.toArrayBuffer = BP.toArrayBuffer
10632 var INVALID_BASE64_RE = /[^+\/
0-
9A-Za-z-_]/g
10634 function base64clean (str) {
10635 // Node strips out invalid characters like \n and \t from the string, base64-js does not
10636 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
10637 // Node converts strings with length <
2 to ''
10638 if (str.length <
2) return ''
10639 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
10640 while (str.length %
4 !==
0) {
10646 function stringtrim (str) {
10647 if (str.trim) return str.trim()
10648 return str.replace(/^\s+|\s+$/g, '')
10651 function toHex (n) {
10652 if (n <
16) return '
0' + n.toString(
16)
10653 return n.toString(
16)
10656 function utf8ToBytes (string, units) {
10657 units = units || Infinity
10659 var length = string.length
10660 var leadSurrogate = null
10663 for (var i =
0; i < length; i++) {
10664 codePoint = string.charCodeAt(i)
10666 // is surrogate component
10667 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
10668 // last char was a lead
10669 if (!leadSurrogate) {
10671 if (codePoint
> 0xDBFF) {
10672 // unexpected trail
10673 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
10676 } else if (i +
1 === length) {
10678 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
10683 leadSurrogate = codePoint
10688 //
2 leads in a row
10689 if (codePoint <
0xDC00) {
10690 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
10691 leadSurrogate = codePoint
10695 // valid surrogate pair
10696 codePoint = leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00 |
0x10000
10698 } else if (leadSurrogate) {
10699 // valid bmp char, but last char was a lead
10700 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
10703 leadSurrogate = null
10706 if (codePoint <
0x80) {
10707 if ((units -=
1) <
0) break
10708 bytes.push(codePoint)
10709 } else if (codePoint <
0x800) {
10710 if ((units -=
2) <
0) break
10712 codePoint
>> 0x6 |
0xC0,
10713 codePoint &
0x3F |
0x80
10715 } else if (codePoint <
0x10000) {
10716 if ((units -=
3) <
0) break
10718 codePoint
>> 0xC |
0xE0,
10719 codePoint
>> 0x6 &
0x3F |
0x80,
10720 codePoint &
0x3F |
0x80
10722 } else if (codePoint <
0x110000) {
10723 if ((units -=
4) <
0) break
10725 codePoint
>> 0x12 |
0xF0,
10726 codePoint
>> 0xC &
0x3F |
0x80,
10727 codePoint
>> 0x6 &
0x3F |
0x80,
10728 codePoint &
0x3F |
0x80
10731 throw new Error('Invalid code point')
10738 function asciiToBytes (str) {
10740 for (var i =
0; i < str.length; i++) {
10741 // Node's code seems to be doing this and not &
0x7F..
10742 byteArray.push(str.charCodeAt(i) &
0xFF)
10747 function utf16leToBytes (str, units) {
10750 for (var i =
0; i < str.length; i++) {
10751 if ((units -=
2) <
0) break
10753 c = str.charCodeAt(i)
10763 function base64ToBytes (str) {
10764 return base64.toByteArray(base64clean(str))
10767 function blitBuffer (src, dst, offset, length) {
10768 for (var i =
0; i < length; i++) {
10769 if ((i + offset
>= dst.length) || (i
>= src.length)) break
10770 dst[i + offset] = src[i]
10775 },{"base64-js":
8,"ieee754":
9,"is-array":
10}],
8:[function(require,module,exports){
10776 var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
10778 ;(function (exports) {
10781 var Arr = (typeof Uint8Array !== 'undefined')
10785 var PLUS = '+'.charCodeAt(
0)
10786 var SLASH = '/'.charCodeAt(
0)
10787 var NUMBER = '
0'.charCodeAt(
0)
10788 var LOWER = 'a'.charCodeAt(
0)
10789 var UPPER = 'A'.charCodeAt(
0)
10790 var PLUS_URL_SAFE = '-'.charCodeAt(
0)
10791 var SLASH_URL_SAFE = '_'.charCodeAt(
0)
10793 function decode (elt) {
10794 var code = elt.charCodeAt(
0)
10795 if (code === PLUS ||
10796 code === PLUS_URL_SAFE)
10798 if (code === SLASH ||
10799 code === SLASH_URL_SAFE)
10802 return -
1 //no match
10803 if (code < NUMBER +
10)
10804 return code - NUMBER +
26 +
26
10805 if (code < UPPER +
26)
10806 return code - UPPER
10807 if (code < LOWER +
26)
10808 return code - LOWER +
26
10811 function b64ToByteArray (b64) {
10812 var i, j, l, tmp, placeHolders, arr
10814 if (b64.length %
4 > 0) {
10815 throw new Error('Invalid string. Length must be a multiple of
4')
10818 // the number of equal signs (place holders)
10819 // if there are two placeholders, than the two characters before it
10820 // represent one byte
10821 // if there is only one, then the three characters before it represent
2 bytes
10822 // this is just a cheap hack to not do indexOf twice
10823 var len = b64.length
10824 placeHolders = '=' === b64.charAt(len -
2) ?
2 : '=' === b64.charAt(len -
1) ?
1 :
0
10826 // base64 is
4/
3 + up to two characters of the original data
10827 arr = new Arr(b64.length *
3 /
4 - placeHolders)
10829 // if there are placeholders, only get up to the last complete
4 chars
10830 l = placeHolders
> 0 ? b64.length -
4 : b64.length
10834 function push (v) {
10838 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
10839 tmp = (decode(b64.charAt(i)) <<
18) | (decode(b64.charAt(i +
1)) <<
12) | (decode(b64.charAt(i +
2)) <<
6) | decode(b64.charAt(i +
3))
10840 push((tmp &
0xFF0000)
>> 16)
10841 push((tmp &
0xFF00)
>> 8)
10845 if (placeHolders ===
2) {
10846 tmp = (decode(b64.charAt(i)) <<
2) | (decode(b64.charAt(i +
1))
>> 4)
10848 } else if (placeHolders ===
1) {
10849 tmp = (decode(b64.charAt(i)) <<
10) | (decode(b64.charAt(i +
1)) <<
4) | (decode(b64.charAt(i +
2))
>> 2)
10850 push((tmp
>> 8) &
0xFF)
10857 function uint8ToBase64 (uint8) {
10859 extraBytes = uint8.length %
3, // if we have
1 byte left, pad
2 bytes
10863 function encode (num) {
10864 return lookup.charAt(num)
10867 function tripletToBase64 (num) {
10868 return encode(num
>> 18 &
0x3F) + encode(num
>> 12 &
0x3F) + encode(num
>> 6 &
0x3F) + encode(num &
0x3F)
10871 // go through the array every three bytes, we'll deal with trailing stuff later
10872 for (i =
0, length = uint8.length - extraBytes; i < length; i +=
3) {
10873 temp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
10874 output += tripletToBase64(temp)
10877 // pad the end with zeros, but make sure to not forget the extra bytes
10878 switch (extraBytes) {
10880 temp = uint8[uint8.length -
1]
10881 output += encode(temp
>> 2)
10882 output += encode((temp <<
4) &
0x3F)
10886 temp = (uint8[uint8.length -
2] <<
8) + (uint8[uint8.length -
1])
10887 output += encode(temp
>> 10)
10888 output += encode((temp
>> 4) &
0x3F)
10889 output += encode((temp <<
2) &
0x3F)
10897 exports.toByteArray = b64ToByteArray
10898 exports.fromByteArray = uint8ToBase64
10899 }(typeof exports === 'undefined' ? (this.base64js = {}) : exports))
10901 },{}],
9:[function(require,module,exports){
10902 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
10904 var eLen = nBytes *
8 - mLen -
1
10905 var eMax = (
1 << eLen) -
1
10906 var eBias = eMax
>> 1
10908 var i = isLE ? (nBytes -
1) :
0
10909 var d = isLE ? -
1 :
1
10910 var s = buffer[offset + i]
10914 e = s & ((
1 << (-nBits)) -
1)
10917 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10919 m = e & ((
1 << (-nBits)) -
1)
10922 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
10926 } else if (e === eMax) {
10927 return m ? NaN : ((s ? -
1 :
1) * Infinity)
10929 m = m + Math.pow(
2, mLen)
10932 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
10935 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
10937 var eLen = nBytes *
8 - mLen -
1
10938 var eMax = (
1 << eLen) -
1
10939 var eBias = eMax
>> 1
10940 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
10941 var i = isLE ?
0 : (nBytes -
1)
10942 var d = isLE ?
1 : -
1
10943 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
10945 value = Math.abs(value)
10947 if (isNaN(value) || value === Infinity) {
10948 m = isNaN(value) ?
1 :
0
10951 e = Math.floor(Math.log(value) / Math.LN2)
10952 if (value * (c = Math.pow(
2, -e)) <
1) {
10956 if (e + eBias
>=
1) {
10959 value += rt * Math.pow(
2,
1 - eBias)
10961 if (value * c
>=
2) {
10966 if (e + eBias
>= eMax) {
10969 } else if (e + eBias
>=
1) {
10970 m = (value * c -
1) * Math.pow(
2, mLen)
10973 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
10978 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
10980 e = (e << mLen) | m
10982 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
10984 buffer[offset + i - d] |= s *
128
10987 },{}],
10:[function(require,module,exports){
10993 var isArray = Array.isArray;
10999 var str = Object.prototype.toString;
11002 * Whether or not the given `val`
11009 * isArray(arguments);
11014 * @param {mixed} val
11018 module.exports = isArray || function (val) {
11019 return !! val && '[object Array]' == str.call(val);
11022 },{}],
11:[function(require,module,exports){
11023 // Copyright Joyent, Inc. and other Node contributors.
11025 // Permission is hereby granted, free of charge, to any person obtaining a
11026 // copy of this software and associated documentation files (the
11027 // "Software"), to deal in the Software without restriction, including
11028 // without limitation the rights to use, copy, modify, merge, publish,
11029 // distribute, sublicense, and/or sell copies of the Software, and to permit
11030 // persons to whom the Software is furnished to do so, subject to the
11031 // following conditions:
11033 // The above copyright notice and this permission notice shall be included
11034 // in all copies or substantial portions of the Software.
11036 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11037 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11038 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11039 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11040 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11041 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11042 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11044 function EventEmitter() {
11045 this._events = this._events || {};
11046 this._maxListeners = this._maxListeners || undefined;
11048 module.exports = EventEmitter;
11050 // Backwards-compat with node
0.10.x
11051 EventEmitter.EventEmitter = EventEmitter;
11053 EventEmitter.prototype._events = undefined;
11054 EventEmitter.prototype._maxListeners = undefined;
11056 // By default EventEmitters will print a warning if more than
10 listeners are
11057 // added to it. This is a useful default which helps finding memory leaks.
11058 EventEmitter.defaultMaxListeners =
10;
11060 // Obviously not all Emitters should be limited to
10. This function allows
11061 // that to be increased. Set to zero for unlimited.
11062 EventEmitter.prototype.setMaxListeners = function(n) {
11063 if (!isNumber(n) || n <
0 || isNaN(n))
11064 throw TypeError('n must be a positive number');
11065 this._maxListeners = n;
11069 EventEmitter.prototype.emit = function(type) {
11070 var er, handler, len, args, i, listeners;
11075 // If there is no 'error' event listener then throw.
11076 if (type === 'error') {
11077 if (!this._events.error ||
11078 (isObject(this._events.error) && !this._events.error.length)) {
11080 if (er instanceof Error) {
11081 throw er; // Unhandled 'error' event
11083 throw TypeError('Uncaught, unspecified "error" event.');
11087 handler = this._events[type];
11089 if (isUndefined(handler))
11092 if (isFunction(handler)) {
11093 switch (arguments.length) {
11096 handler.call(this);
11099 handler.call(this, arguments[
1]);
11102 handler.call(this, arguments[
1], arguments[
2]);
11106 len = arguments.length;
11107 args = new Array(len -
1);
11108 for (i =
1; i < len; i++)
11109 args[i -
1] = arguments[i];
11110 handler.apply(this, args);
11112 } else if (isObject(handler)) {
11113 len = arguments.length;
11114 args = new Array(len -
1);
11115 for (i =
1; i < len; i++)
11116 args[i -
1] = arguments[i];
11118 listeners = handler.slice();
11119 len = listeners.length;
11120 for (i =
0; i < len; i++)
11121 listeners[i].apply(this, args);
11127 EventEmitter.prototype.addListener = function(type, listener) {
11130 if (!isFunction(listener))
11131 throw TypeError('listener must be a function');
11136 // To avoid recursion in the case that type === "newListener"! Before
11137 // adding it to the listeners, first emit "newListener".
11138 if (this._events.newListener)
11139 this.emit('newListener', type,
11140 isFunction(listener.listener) ?
11141 listener.listener : listener);
11143 if (!this._events[type])
11144 // Optimize the case of one listener. Don't need the extra array object.
11145 this._events[type] = listener;
11146 else if (isObject(this._events[type]))
11147 // If we've already got an array, just append.
11148 this._events[type].push(listener);
11150 // Adding the second element, need to change to array.
11151 this._events[type] = [this._events[type], listener];
11153 // Check for listener leak
11154 if (isObject(this._events[type]) && !this._events[type].warned) {
11156 if (!isUndefined(this._maxListeners)) {
11157 m = this._maxListeners;
11159 m = EventEmitter.defaultMaxListeners;
11162 if (m && m
> 0 && this._events[type].length
> m) {
11163 this._events[type].warned = true;
11164 console.error('(node) warning: possible EventEmitter memory ' +
11165 'leak detected. %d listeners added. ' +
11166 'Use emitter.setMaxListeners() to increase limit.',
11167 this._events[type].length);
11168 if (typeof console.trace === 'function') {
11169 // not supported in IE
10
11178 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
11180 EventEmitter.prototype.once = function(type, listener) {
11181 if (!isFunction(listener))
11182 throw TypeError('listener must be a function');
11187 this.removeListener(type, g);
11191 listener.apply(this, arguments);
11195 g.listener = listener;
11201 // emits a 'removeListener' event iff the listener was removed
11202 EventEmitter.prototype.removeListener = function(type, listener) {
11203 var list, position, length, i;
11205 if (!isFunction(listener))
11206 throw TypeError('listener must be a function');
11208 if (!this._events || !this._events[type])
11211 list = this._events[type];
11212 length = list.length;
11215 if (list === listener ||
11216 (isFunction(list.listener) && list.listener === listener)) {
11217 delete this._events[type];
11218 if (this._events.removeListener)
11219 this.emit('removeListener', type, listener);
11221 } else if (isObject(list)) {
11222 for (i = length; i--
> 0;) {
11223 if (list[i] === listener ||
11224 (list[i].listener && list[i].listener === listener)) {
11233 if (list.length ===
1) {
11235 delete this._events[type];
11237 list.splice(position,
1);
11240 if (this._events.removeListener)
11241 this.emit('removeListener', type, listener);
11247 EventEmitter.prototype.removeAllListeners = function(type) {
11248 var key, listeners;
11253 // not listening for removeListener, no need to emit
11254 if (!this._events.removeListener) {
11255 if (arguments.length ===
0)
11257 else if (this._events[type])
11258 delete this._events[type];
11262 // emit removeListener for all listeners on all events
11263 if (arguments.length ===
0) {
11264 for (key in this._events) {
11265 if (key === 'removeListener') continue;
11266 this.removeAllListeners(key);
11268 this.removeAllListeners('removeListener');
11273 listeners = this._events[type];
11275 if (isFunction(listeners)) {
11276 this.removeListener(type, listeners);
11279 while (listeners.length)
11280 this.removeListener(type, listeners[listeners.length -
1]);
11282 delete this._events[type];
11287 EventEmitter.prototype.listeners = function(type) {
11289 if (!this._events || !this._events[type])
11291 else if (isFunction(this._events[type]))
11292 ret = [this._events[type]];
11294 ret = this._events[type].slice();
11298 EventEmitter.listenerCount = function(emitter, type) {
11300 if (!emitter._events || !emitter._events[type])
11302 else if (isFunction(emitter._events[type]))
11305 ret = emitter._events[type].length;
11309 function isFunction(arg) {
11310 return typeof arg === 'function';
11313 function isNumber(arg) {
11314 return typeof arg === 'number';
11317 function isObject(arg) {
11318 return typeof arg === 'object' && arg !== null;
11321 function isUndefined(arg) {
11322 return arg === void
0;
11325 },{}],
12:[function(require,module,exports){
11326 if (typeof Object.create === 'function') {
11327 // implementation from standard node.js 'util' module
11328 module.exports = function inherits(ctor, superCtor) {
11329 ctor.super_ = superCtor
11330 ctor.prototype = Object.create(superCtor.prototype, {
11340 // old school shim for old browsers
11341 module.exports = function inherits(ctor, superCtor) {
11342 ctor.super_ = superCtor
11343 var TempCtor = function () {}
11344 TempCtor.prototype = superCtor.prototype
11345 ctor.prototype = new TempCtor()
11346 ctor.prototype.constructor = ctor
11350 },{}],
13:[function(require,module,exports){
11351 module.exports = Array.isArray || function (arr) {
11352 return Object.prototype.toString.call(arr) == '[object Array]';
11355 },{}],
14:[function(require,module,exports){
11356 // shim for using process in browser
11358 var process = module.exports = {};
11360 var draining = false;
11362 var queueIndex = -
1;
11364 function cleanUpNextTick() {
11366 if (currentQueue.length) {
11367 queue = currentQueue.concat(queue);
11371 if (queue.length) {
11376 function drainQueue() {
11380 var timeout = setTimeout(cleanUpNextTick);
11383 var len = queue.length;
11385 currentQueue = queue;
11387 while (++queueIndex < len) {
11388 currentQueue[queueIndex].run();
11391 len = queue.length;
11393 currentQueue = null;
11395 clearTimeout(timeout);
11398 process.nextTick = function (fun) {
11399 var args = new Array(arguments.length -
1);
11400 if (arguments.length
> 1) {
11401 for (var i =
1; i < arguments.length; i++) {
11402 args[i -
1] = arguments[i];
11405 queue.push(new Item(fun, args));
11406 if (queue.length ===
1 && !draining) {
11407 setTimeout(drainQueue,
0);
11411 // v8 likes predictible objects
11412 function Item(fun, array) {
11414 this.array = array;
11416 Item.prototype.run = function () {
11417 this.fun.apply(null, this.array);
11419 process.title = 'browser';
11420 process.browser = true;
11423 process.version = ''; // empty string to avoid regexp issues
11424 process.versions = {};
11429 process.addListener = noop;
11430 process.once = noop;
11431 process.off = noop;
11432 process.removeListener = noop;
11433 process.removeAllListeners = noop;
11434 process.emit = noop;
11436 process.binding = function (name) {
11437 throw new Error('process.binding is not supported');
11441 process.cwd = function () { return '/' };
11442 process.chdir = function (dir) {
11443 throw new Error('process.chdir is not supported');
11445 process.umask = function() { return
0; };
11447 },{}],
15:[function(require,module,exports){
11448 module.exports = require(
"./lib/_stream_duplex.js")
11450 },{
"./lib/_stream_duplex.js":
16}],
16:[function(require,module,exports){
11451 (function (process){
11452 // Copyright Joyent, Inc. and other Node contributors.
11454 // Permission is hereby granted, free of charge, to any person obtaining a
11455 // copy of this software and associated documentation files (the
11456 //
"Software"), to deal in the Software without restriction, including
11457 // without limitation the rights to use, copy, modify, merge, publish,
11458 // distribute, sublicense, and/or sell copies of the Software, and to permit
11459 // persons to whom the Software is furnished to do so, subject to the
11460 // following conditions:
11462 // The above copyright notice and this permission notice shall be included
11463 // in all copies or substantial portions of the Software.
11465 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11466 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11467 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11468 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11469 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11470 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11471 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11473 // a duplex stream is just a stream that is both readable and writable.
11474 // Since JS doesn't have multiple prototypal inheritance, this class
11475 // prototypally inherits from Readable, and then parasitically from
11478 module.exports = Duplex;
11481 var objectKeys = Object.keys || function (obj) {
11483 for (var key in obj) keys.push(key);
11490 var util = require('core-util-is');
11491 util.inherits = require('inherits');
11494 var Readable = require('./_stream_readable');
11495 var Writable = require('./_stream_writable');
11497 util.inherits(Duplex, Readable);
11499 forEach(objectKeys(Writable.prototype), function(method) {
11500 if (!Duplex.prototype[method])
11501 Duplex.prototype[method] = Writable.prototype[method];
11504 function Duplex(options) {
11505 if (!(this instanceof Duplex))
11506 return new Duplex(options);
11508 Readable.call(this, options);
11509 Writable.call(this, options);
11511 if (options && options.readable === false)
11512 this.readable = false;
11514 if (options && options.writable === false)
11515 this.writable = false;
11517 this.allowHalfOpen = true;
11518 if (options && options.allowHalfOpen === false)
11519 this.allowHalfOpen = false;
11521 this.once('end', onend);
11524 // the no-half-open enforcer
11526 // if we allow half-open state, or if the writable side ended,
11528 if (this.allowHalfOpen || this._writableState.ended)
11531 // no more data can be written.
11532 // But allow more writes to happen in this tick.
11533 process.nextTick(this.end.bind(this));
11536 function forEach (xs, f) {
11537 for (var i =
0, l = xs.length; i < l; i++) {
11542 }).call(this,require('_process'))
11543 },{"./_stream_readable":
18,"./_stream_writable":
20,"_process":
14,"core-util-is":
21,"inherits":
12}],
17:[function(require,module,exports){
11544 // Copyright Joyent, Inc. and other Node contributors.
11546 // Permission is hereby granted, free of charge, to any person obtaining a
11547 // copy of this software and associated documentation files (the
11548 // "Software"), to deal in the Software without restriction, including
11549 // without limitation the rights to use, copy, modify, merge, publish,
11550 // distribute, sublicense, and/or sell copies of the Software, and to permit
11551 // persons to whom the Software is furnished to do so, subject to the
11552 // following conditions:
11554 // The above copyright notice and this permission notice shall be included
11555 // in all copies or substantial portions of the Software.
11557 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11558 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11559 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11560 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11561 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11562 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11563 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11565 // a passthrough stream.
11566 // basically just the most minimal sort of Transform stream.
11567 // Every written chunk gets output as-is.
11569 module.exports = PassThrough;
11571 var Transform = require('./_stream_transform');
11574 var util = require('core-util-is');
11575 util.inherits = require('inherits');
11578 util.inherits(PassThrough, Transform);
11580 function PassThrough(options) {
11581 if (!(this instanceof PassThrough))
11582 return new PassThrough(options);
11584 Transform.call(this, options);
11587 PassThrough.prototype._transform = function(chunk, encoding, cb) {
11591 },{"./_stream_transform":
19,"core-util-is":
21,"inherits":
12}],
18:[function(require,module,exports){
11592 (function (process){
11593 // Copyright Joyent, Inc. and other Node contributors.
11595 // Permission is hereby granted, free of charge, to any person obtaining a
11596 // copy of this software and associated documentation files (the
11597 // "Software"), to deal in the Software without restriction, including
11598 // without limitation the rights to use, copy, modify, merge, publish,
11599 // distribute, sublicense, and/or sell copies of the Software, and to permit
11600 // persons to whom the Software is furnished to do so, subject to the
11601 // following conditions:
11603 // The above copyright notice and this permission notice shall be included
11604 // in all copies or substantial portions of the Software.
11606 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11607 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11608 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11609 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11610 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11611 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11612 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11614 module.exports = Readable;
11617 var isArray = require('isarray');
11622 var Buffer = require('buffer').Buffer;
11625 Readable.ReadableState = ReadableState;
11627 var EE = require('events').EventEmitter;
11630 if (!EE.listenerCount) EE.listenerCount = function(emitter, type) {
11631 return emitter.listeners(type).length;
11635 var Stream = require('stream');
11638 var util = require('core-util-is');
11639 util.inherits = require('inherits');
11646 var debug = require('util');
11647 if (debug && debug.debuglog) {
11648 debug = debug.debuglog('stream');
11650 debug = function () {};
11655 util.inherits(Readable, Stream);
11657 function ReadableState(options, stream) {
11658 var Duplex = require('./_stream_duplex');
11660 options = options || {};
11662 // the point at which it stops calling _read() to fill the buffer
11663 // Note:
0 is a valid value, means "don't call _read preemptively ever"
11664 var hwm = options.highWaterMark;
11665 var defaultHwm = options.objectMode ?
16 :
16 *
1024;
11666 this.highWaterMark = (hwm || hwm ===
0) ? hwm : defaultHwm;
11669 this.highWaterMark = ~~this.highWaterMark;
11674 this.pipesCount =
0;
11675 this.flowing = null;
11676 this.ended = false;
11677 this.endEmitted = false;
11678 this.reading = false;
11680 // a flag to be able to tell if the onwrite cb is called immediately,
11681 // or on a later tick. We set this to true at first, because any
11682 // actions that shouldn't happen until "later" should generally also
11683 // not happen before the first write call.
11686 // whenever we return null, then we set a flag to say
11687 // that we're awaiting a 'readable' event emission.
11688 this.needReadable = false;
11689 this.emittedReadable = false;
11690 this.readableListening = false;
11693 // object stream flag. Used to make read(n) ignore n and to
11694 // make all the buffer merging and length checks go away
11695 this.objectMode = !!options.objectMode;
11697 if (stream instanceof Duplex)
11698 this.objectMode = this.objectMode || !!options.readableObjectMode;
11700 // Crypto is kind of old and crusty. Historically, its default string
11701 // encoding is 'binary' so we have to make this configurable.
11702 // Everything else in the universe uses 'utf8', though.
11703 this.defaultEncoding = options.defaultEncoding || 'utf8';
11705 // when piping, we only care about 'readable' events that happen
11706 // after read()ing all the bytes and not getting any pushback.
11707 this.ranOut = false;
11709 // the number of writers that are awaiting a drain event in .pipe()s
11710 this.awaitDrain =
0;
11712 // if true, a maybeReadMore has been scheduled
11713 this.readingMore = false;
11715 this.decoder = null;
11716 this.encoding = null;
11717 if (options.encoding) {
11718 if (!StringDecoder)
11719 StringDecoder = require('string_decoder/').StringDecoder;
11720 this.decoder = new StringDecoder(options.encoding);
11721 this.encoding = options.encoding;
11725 function Readable(options) {
11726 var Duplex = require('./_stream_duplex');
11728 if (!(this instanceof Readable))
11729 return new Readable(options);
11731 this._readableState = new ReadableState(options, this);
11734 this.readable = true;
11739 // Manually shove something into the read() buffer.
11740 // This returns true if the highWaterMark has not been hit yet,
11741 // similar to how Writable.write() returns true if you should
11742 // write() some more.
11743 Readable.prototype.push = function(chunk, encoding) {
11744 var state = this._readableState;
11746 if (util.isString(chunk) && !state.objectMode) {
11747 encoding = encoding || state.defaultEncoding;
11748 if (encoding !== state.encoding) {
11749 chunk = new Buffer(chunk, encoding);
11754 return readableAddChunk(this, state, chunk, encoding, false);
11757 // Unshift should *always* be something directly out of read()
11758 Readable.prototype.unshift = function(chunk) {
11759 var state = this._readableState;
11760 return readableAddChunk(this, state, chunk, '', true);
11763 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
11764 var er = chunkInvalid(state, chunk);
11766 stream.emit('error', er);
11767 } else if (util.isNullOrUndefined(chunk)) {
11768 state.reading = false;
11770 onEofChunk(stream, state);
11771 } else if (state.objectMode || chunk && chunk.length
> 0) {
11772 if (state.ended && !addToFront) {
11773 var e = new Error('stream.push() after EOF');
11774 stream.emit('error', e);
11775 } else if (state.endEmitted && addToFront) {
11776 var e = new Error('stream.unshift() after end event');
11777 stream.emit('error', e);
11779 if (state.decoder && !addToFront && !encoding)
11780 chunk = state.decoder.write(chunk);
11783 state.reading = false;
11785 // if we want the data now, just emit it.
11786 if (state.flowing && state.length ===
0 && !state.sync) {
11787 stream.emit('data', chunk);
11790 // update the buffer info.
11791 state.length += state.objectMode ?
1 : chunk.length;
11793 state.buffer.unshift(chunk);
11795 state.buffer.push(chunk);
11797 if (state.needReadable)
11798 emitReadable(stream);
11801 maybeReadMore(stream, state);
11803 } else if (!addToFront) {
11804 state.reading = false;
11807 return needMoreData(state);
11812 // if it's past the high water mark, we can push in some more.
11813 // Also, if we have no data yet, we can stand some
11814 // more bytes. This is to work around cases where hwm=
0,
11815 // such as the repl. Also, if the push() triggered a
11816 // readable event, and the user called read(largeNumber) such that
11817 // needReadable was set, then we ought to push more, so that another
11818 // 'readable' event will be triggered.
11819 function needMoreData(state) {
11820 return !state.ended &&
11821 (state.needReadable ||
11822 state.length < state.highWaterMark ||
11823 state.length ===
0);
11826 // backwards compatibility.
11827 Readable.prototype.setEncoding = function(enc) {
11828 if (!StringDecoder)
11829 StringDecoder = require('string_decoder/').StringDecoder;
11830 this._readableState.decoder = new StringDecoder(enc);
11831 this._readableState.encoding = enc;
11835 // Don't raise the hwm
> 128MB
11836 var MAX_HWM =
0x800000;
11837 function roundUpToNextPowerOf2(n) {
11838 if (n
>= MAX_HWM) {
11841 // Get the next highest power of
2
11843 for (var p =
1; p <
32; p <<=
1) n |= n
>> p;
11849 function howMuchToRead(n, state) {
11850 if (state.length ===
0 && state.ended)
11853 if (state.objectMode)
11854 return n ===
0 ?
0 :
1;
11856 if (isNaN(n) || util.isNull(n)) {
11857 // only flow one buffer at a time
11858 if (state.flowing && state.buffer.length)
11859 return state.buffer[
0].length;
11861 return state.length;
11867 // If we're asking for more than the target buffer level,
11868 // then raise the water mark. Bump up to the next highest
11869 // power of
2, to prevent increasing it excessively in tiny
11871 if (n
> state.highWaterMark)
11872 state.highWaterMark = roundUpToNextPowerOf2(n);
11874 // don't have that much. return null, unless we've ended.
11875 if (n
> state.length) {
11876 if (!state.ended) {
11877 state.needReadable = true;
11880 return state.length;
11886 // you can override either this method, or the async _read(n) below.
11887 Readable.prototype.read = function(n) {
11889 var state = this._readableState;
11892 if (!util.isNumber(n) || n
> 0)
11893 state.emittedReadable = false;
11895 // if we're doing read(
0) to trigger a readable event, but we
11896 // already have a bunch of data in the buffer, then just trigger
11897 // the 'readable' event and move on.
11899 state.needReadable &&
11900 (state.length
>= state.highWaterMark || state.ended)) {
11901 debug('read: emitReadable', state.length, state.ended);
11902 if (state.length ===
0 && state.ended)
11905 emitReadable(this);
11909 n = howMuchToRead(n, state);
11911 // if we've ended, and we're now clear, then finish it up.
11912 if (n ===
0 && state.ended) {
11913 if (state.length ===
0)
11918 // All the actual chunk generation logic needs to be
11919 // *below* the call to _read. The reason is that in certain
11920 // synthetic stream cases, such as passthrough streams, _read
11921 // may be a completely synchronous operation which may change
11922 // the state of the read buffer, providing enough data when
11923 // before there was *not* enough.
11925 // So, the steps are:
11926 //
1. Figure out what the state of things will be after we do
11927 // a read from the buffer.
11929 //
2. If that resulting state will trigger a _read, then call _read.
11930 // Note that this may be asynchronous, or synchronous. Yes, it is
11931 // deeply ugly to write APIs this way, but that still doesn't mean
11932 // that the Readable class should behave improperly, as streams are
11933 // designed to be sync/async agnostic.
11934 // Take note if the _read call is sync or async (ie, if the read call
11935 // has returned yet), so that we know whether or not it's safe to emit
11938 //
3. Actually pull the requested chunks out of the buffer and return.
11940 // if we need a readable event, then we need to do some reading.
11941 var doRead = state.needReadable;
11942 debug('need readable', doRead);
11944 // if we currently have less than the highWaterMark, then also read some
11945 if (state.length ===
0 || state.length - n < state.highWaterMark) {
11947 debug('length less than watermark', doRead);
11950 // however, if we've ended, then there's no point, and if we're already
11951 // reading, then it's unnecessary.
11952 if (state.ended || state.reading) {
11954 debug('reading or ended', doRead);
11959 state.reading = true;
11961 // if the length is currently zero, then we *need* a readable event.
11962 if (state.length ===
0)
11963 state.needReadable = true;
11964 // call internal read method
11965 this._read(state.highWaterMark);
11966 state.sync = false;
11969 // If _read pushed data synchronously, then `reading` will be false,
11970 // and we need to re-evaluate how much data we can return to the user.
11971 if (doRead && !state.reading)
11972 n = howMuchToRead(nOrig, state);
11976 ret = fromList(n, state);
11980 if (util.isNull(ret)) {
11981 state.needReadable = true;
11987 // If we have nothing in the buffer, then we want to know
11988 // as soon as we *do* get something into the buffer.
11989 if (state.length ===
0 && !state.ended)
11990 state.needReadable = true;
11992 // If we tried to read() past the EOF, then emit end on the next tick.
11993 if (nOrig !== n && state.ended && state.length ===
0)
11996 if (!util.isNull(ret))
11997 this.emit('data', ret);
12002 function chunkInvalid(state, chunk) {
12004 if (!util.isBuffer(chunk) &&
12005 !util.isString(chunk) &&
12006 !util.isNullOrUndefined(chunk) &&
12007 !state.objectMode) {
12008 er = new TypeError('Invalid non-string/buffer chunk');
12014 function onEofChunk(stream, state) {
12015 if (state.decoder && !state.ended) {
12016 var chunk = state.decoder.end();
12017 if (chunk && chunk.length) {
12018 state.buffer.push(chunk);
12019 state.length += state.objectMode ?
1 : chunk.length;
12022 state.ended = true;
12024 // emit 'readable' now to make sure it gets picked up.
12025 emitReadable(stream);
12028 // Don't emit readable right away in sync mode, because this can trigger
12029 // another read() call =
> stack overflow. This way, it might trigger
12030 // a nextTick recursion warning, but that's not so bad.
12031 function emitReadable(stream) {
12032 var state = stream._readableState;
12033 state.needReadable = false;
12034 if (!state.emittedReadable) {
12035 debug('emitReadable', state.flowing);
12036 state.emittedReadable = true;
12038 process.nextTick(function() {
12039 emitReadable_(stream);
12042 emitReadable_(stream);
12046 function emitReadable_(stream) {
12047 debug('emit readable');
12048 stream.emit('readable');
12053 // at this point, the user has presumably seen the 'readable' event,
12054 // and called read() to consume some data. that may have triggered
12055 // in turn another _read(n) call, in which case reading = true if
12056 // it's in progress.
12057 // However, if we're not ended, or reading, and the length < hwm,
12058 // then go ahead and try to read some more preemptively.
12059 function maybeReadMore(stream, state) {
12060 if (!state.readingMore) {
12061 state.readingMore = true;
12062 process.nextTick(function() {
12063 maybeReadMore_(stream, state);
12068 function maybeReadMore_(stream, state) {
12069 var len = state.length;
12070 while (!state.reading && !state.flowing && !state.ended &&
12071 state.length < state.highWaterMark) {
12072 debug('maybeReadMore read
0');
12074 if (len === state.length)
12075 // didn't get any data, stop spinning.
12078 len = state.length;
12080 state.readingMore = false;
12083 // abstract method. to be overridden in specific implementation classes.
12084 // call cb(er, data) where data is <= n in length.
12085 // for virtual (non-string, non-buffer) streams, "length" is somewhat
12086 // arbitrary, and perhaps not very meaningful.
12087 Readable.prototype._read = function(n) {
12088 this.emit('error', new Error('not implemented'));
12091 Readable.prototype.pipe = function(dest, pipeOpts) {
12093 var state = this._readableState;
12095 switch (state.pipesCount) {
12097 state.pipes = dest;
12100 state.pipes = [state.pipes, dest];
12103 state.pipes.push(dest);
12106 state.pipesCount +=
1;
12107 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
12109 var doEnd = (!pipeOpts || pipeOpts.end !== false) &&
12110 dest !== process.stdout &&
12111 dest !== process.stderr;
12113 var endFn = doEnd ? onend : cleanup;
12114 if (state.endEmitted)
12115 process.nextTick(endFn);
12117 src.once('end', endFn);
12119 dest.on('unpipe', onunpipe);
12120 function onunpipe(readable) {
12122 if (readable === src) {
12132 // when the dest drains, it reduces the awaitDrain counter
12133 // on the source. This would be more elegant with a .once()
12134 // handler in flow(), but adding and removing repeatedly is
12136 var ondrain = pipeOnDrain(src);
12137 dest.on('drain', ondrain);
12139 function cleanup() {
12141 // cleanup event handlers once the pipe is broken
12142 dest.removeListener('close', onclose);
12143 dest.removeListener('finish', onfinish);
12144 dest.removeListener('drain', ondrain);
12145 dest.removeListener('error', onerror);
12146 dest.removeListener('unpipe', onunpipe);
12147 src.removeListener('end', onend);
12148 src.removeListener('end', cleanup);
12149 src.removeListener('data', ondata);
12151 // if the reader is waiting for a drain event from this
12152 // specific writer, then it would cause it to never start
12154 // So, if this is awaiting a drain, then we just call it now.
12155 // If we don't know, then assume that we are waiting for one.
12156 if (state.awaitDrain &&
12157 (!dest._writableState || dest._writableState.needDrain))
12161 src.on('data', ondata);
12162 function ondata(chunk) {
12164 var ret = dest.write(chunk);
12165 if (false === ret) {
12166 debug('false write response, pause',
12167 src._readableState.awaitDrain);
12168 src._readableState.awaitDrain++;
12173 // if the dest has an error, then stop piping into it.
12174 // however, don't suppress the throwing behavior for this.
12175 function onerror(er) {
12176 debug('onerror', er);
12178 dest.removeListener('error', onerror);
12179 if (EE.listenerCount(dest, 'error') ===
0)
12180 dest.emit('error', er);
12182 // This is a brutally ugly hack to make sure that our error handler
12183 // is attached before any userland ones. NEVER DO THIS.
12184 if (!dest._events || !dest._events.error)
12185 dest.on('error', onerror);
12186 else if (isArray(dest._events.error))
12187 dest._events.error.unshift(onerror);
12189 dest._events.error = [onerror, dest._events.error];
12193 // Both close and finish should trigger unpipe, but only once.
12194 function onclose() {
12195 dest.removeListener('finish', onfinish);
12198 dest.once('close', onclose);
12199 function onfinish() {
12201 dest.removeListener('close', onclose);
12204 dest.once('finish', onfinish);
12206 function unpipe() {
12211 // tell the dest that it's being piped to
12212 dest.emit('pipe', src);
12214 // start the flow if it hasn't been started already.
12215 if (!state.flowing) {
12216 debug('pipe resume');
12223 function pipeOnDrain(src) {
12224 return function() {
12225 var state = src._readableState;
12226 debug('pipeOnDrain', state.awaitDrain);
12227 if (state.awaitDrain)
12228 state.awaitDrain--;
12229 if (state.awaitDrain ===
0 && EE.listenerCount(src, 'data')) {
12230 state.flowing = true;
12237 Readable.prototype.unpipe = function(dest) {
12238 var state = this._readableState;
12240 // if we're not piping anywhere, then do nothing.
12241 if (state.pipesCount ===
0)
12244 // just one destination. most common case.
12245 if (state.pipesCount ===
1) {
12246 // passed in one, but it's not the right one.
12247 if (dest && dest !== state.pipes)
12251 dest = state.pipes;
12254 state.pipes = null;
12255 state.pipesCount =
0;
12256 state.flowing = false;
12258 dest.emit('unpipe', this);
12262 // slow case. multiple pipe destinations.
12266 var dests = state.pipes;
12267 var len = state.pipesCount;
12268 state.pipes = null;
12269 state.pipesCount =
0;
12270 state.flowing = false;
12272 for (var i =
0; i < len; i++)
12273 dests[i].emit('unpipe', this);
12277 // try to find the right one.
12278 var i = indexOf(state.pipes, dest);
12282 state.pipes.splice(i,
1);
12283 state.pipesCount -=
1;
12284 if (state.pipesCount ===
1)
12285 state.pipes = state.pipes[
0];
12287 dest.emit('unpipe', this);
12292 // set up data events if they are asked for
12293 // Ensure readable listeners eventually get something
12294 Readable.prototype.on = function(ev, fn) {
12295 var res = Stream.prototype.on.call(this, ev, fn);
12297 // If listening to data, and it has not explicitly been paused,
12298 // then call resume to start the flow of data on the next tick.
12299 if (ev === 'data' && false !== this._readableState.flowing) {
12303 if (ev === 'readable' && this.readable) {
12304 var state = this._readableState;
12305 if (!state.readableListening) {
12306 state.readableListening = true;
12307 state.emittedReadable = false;
12308 state.needReadable = true;
12309 if (!state.reading) {
12311 process.nextTick(function() {
12312 debug('readable nexttick read
0');
12315 } else if (state.length) {
12316 emitReadable(this, state);
12323 Readable.prototype.addListener = Readable.prototype.on;
12325 // pause() and resume() are remnants of the legacy readable stream API
12326 // If the user uses them, then switch into old mode.
12327 Readable.prototype.resume = function() {
12328 var state = this._readableState;
12329 if (!state.flowing) {
12331 state.flowing = true;
12332 if (!state.reading) {
12333 debug('resume read
0');
12336 resume(this, state);
12341 function resume(stream, state) {
12342 if (!state.resumeScheduled) {
12343 state.resumeScheduled = true;
12344 process.nextTick(function() {
12345 resume_(stream, state);
12350 function resume_(stream, state) {
12351 state.resumeScheduled = false;
12352 stream.emit('resume');
12354 if (state.flowing && !state.reading)
12358 Readable.prototype.pause = function() {
12359 debug('call pause flowing=%j', this._readableState.flowing);
12360 if (false !== this._readableState.flowing) {
12362 this._readableState.flowing = false;
12363 this.emit('pause');
12368 function flow(stream) {
12369 var state = stream._readableState;
12370 debug('flow', state.flowing);
12371 if (state.flowing) {
12373 var chunk = stream.read();
12374 } while (null !== chunk && state.flowing);
12378 // wrap an old-style stream as the async data source.
12379 // This is *not* part of the readable stream interface.
12380 // It is an ugly unfortunate mess of history.
12381 Readable.prototype.wrap = function(stream) {
12382 var state = this._readableState;
12383 var paused = false;
12386 stream.on('end', function() {
12387 debug('wrapped end');
12388 if (state.decoder && !state.ended) {
12389 var chunk = state.decoder.end();
12390 if (chunk && chunk.length)
12397 stream.on('data', function(chunk) {
12398 debug('wrapped data');
12400 chunk = state.decoder.write(chunk);
12401 if (!chunk || !state.objectMode && !chunk.length)
12404 var ret = self.push(chunk);
12411 // proxy all the other methods.
12412 // important when wrapping filters and duplexes.
12413 for (var i in stream) {
12414 if (util.isFunction(stream[i]) && util.isUndefined(this[i])) {
12415 this[i] = function(method) { return function() {
12416 return stream[method].apply(stream, arguments);
12421 // proxy certain important events.
12422 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
12423 forEach(events, function(ev) {
12424 stream.on(ev, self.emit.bind(self, ev));
12427 // when we try to consume some more bytes, simply unpause the
12428 // underlying stream.
12429 self._read = function(n) {
12430 debug('wrapped _read', n);
12442 // exposed for testing purposes only.
12443 Readable._fromList = fromList;
12445 // Pluck off n bytes from an array of buffers.
12446 // Length is the combined lengths of all the buffers in the list.
12447 function fromList(n, state) {
12448 var list = state.buffer;
12449 var length = state.length;
12450 var stringMode = !!state.decoder;
12451 var objectMode = !!state.objectMode;
12454 // nothing in the list, definitely empty.
12455 if (list.length ===
0)
12460 else if (objectMode)
12461 ret = list.shift();
12462 else if (!n || n
>= length) {
12463 // read it all, truncate the array.
12465 ret = list.join('');
12467 ret = Buffer.concat(list, length);
12470 // read just some of it.
12471 if (n < list[
0].length) {
12472 // just take a part of the first list item.
12473 // slice is the same for buffers and strings.
12475 ret = buf.slice(
0, n);
12476 list[
0] = buf.slice(n);
12477 } else if (n === list[
0].length) {
12478 // first list is a perfect match
12479 ret = list.shift();
12482 // we have enough to cover it, but it spans past the first buffer.
12486 ret = new Buffer(n);
12489 for (var i =
0, l = list.length; i < l && c < n; i++) {
12491 var cpy = Math.min(n - c, buf.length);
12494 ret += buf.slice(
0, cpy);
12496 buf.copy(ret, c,
0, cpy);
12498 if (cpy < buf.length)
12499 list[
0] = buf.slice(cpy);
12511 function endReadable(stream) {
12512 var state = stream._readableState;
12514 // If we get here before consuming all the bytes, then that is a
12515 // bug in node. Should never happen.
12516 if (state.length
> 0)
12517 throw new Error('endReadable called on non-empty stream');
12519 if (!state.endEmitted) {
12520 state.ended = true;
12521 process.nextTick(function() {
12522 // Check that we didn't get one last unshift.
12523 if (!state.endEmitted && state.length ===
0) {
12524 state.endEmitted = true;
12525 stream.readable = false;
12526 stream.emit('end');
12532 function forEach (xs, f) {
12533 for (var i =
0, l = xs.length; i < l; i++) {
12538 function indexOf (xs, x) {
12539 for (var i =
0, l = xs.length; i < l; i++) {
12540 if (xs[i] === x) return i;
12545 }).call(this,require('_process'))
12546 },{
"./_stream_duplex":
16,
"_process":
14,
"buffer":
7,
"core-util-is":
21,
"events":
11,
"inherits":
12,
"isarray":
13,
"stream":
26,
"string_decoder/":
27,
"util":
6}],
19:[function(require,module,exports){
12547 // Copyright Joyent, Inc. and other Node contributors.
12549 // Permission is hereby granted, free of charge, to any person obtaining a
12550 // copy of this software and associated documentation files (the
12551 //
"Software"), to deal in the Software without restriction, including
12552 // without limitation the rights to use, copy, modify, merge, publish,
12553 // distribute, sublicense, and/or sell copies of the Software, and to permit
12554 // persons to whom the Software is furnished to do so, subject to the
12555 // following conditions:
12557 // The above copyright notice and this permission notice shall be included
12558 // in all copies or substantial portions of the Software.
12560 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
12561 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
12562 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
12563 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
12564 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
12565 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
12566 // USE OR OTHER DEALINGS IN THE SOFTWARE.
12569 // a transform stream is a readable/writable stream where you do
12570 // something with the data. Sometimes it's called a
"filter",
12571 // but that's not a great name for it, since that implies a thing where
12572 // some bits pass through, and others are simply ignored. (That would
12573 // be a valid example of a transform, of course.)
12575 // While the output is causally related to the input, it's not a
12576 // necessarily symmetric or synchronous transformation. For example,
12577 // a zlib stream might take multiple plain-text writes(), and then
12578 // emit a single compressed chunk some time in the future.
12580 // Here's how this works:
12582 // The Transform stream has all the aspects of the readable and writable
12583 // stream classes. When you write(chunk), that calls _write(chunk,cb)
12584 // internally, and returns false if there's a lot of pending writes
12585 // buffered up. When you call read(), that calls _read(n) until
12586 // there's enough pending readable data buffered up.
12588 // In a transform stream, the written data is placed in a buffer. When
12589 // _read(n) is called, it transforms the queued up data, calling the
12590 // buffered _write cb's as it consumes chunks. If consuming a single
12591 // written chunk would result in multiple output chunks, then the first
12592 // outputted bit calls the readcb, and subsequent chunks just go into
12593 // the read buffer, and will cause it to emit 'readable' if necessary.
12595 // This way, back-pressure is actually determined by the reading side,
12596 // since _read has to be called to start processing a new chunk. However,
12597 // a pathological inflate type of transform can cause excessive buffering
12598 // here. For example, imagine a stream where every byte of input is
12599 // interpreted as an integer from
0-
255, and then results in that many
12600 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
12601 //
1kb of data being output. In this case, you could write a very small
12602 // amount of input, and end up with a very large amount of output. In
12603 // such a pathological inflating mechanism, there'd be no way to tell
12604 // the system to stop doing the transform. A single
4MB write could
12605 // cause the system to run out of memory.
12607 // However, even in such a pathological case, only a single written chunk
12608 // would be consumed, and then the rest would wait (un-transformed) until
12609 // the results of the previous transformed chunk were consumed.
12611 module.exports = Transform;
12613 var Duplex = require('./_stream_duplex');
12616 var util = require('core-util-is');
12617 util.inherits = require('inherits');
12620 util.inherits(Transform, Duplex);
12623 function TransformState(options, stream) {
12624 this.afterTransform = function(er, data) {
12625 return afterTransform(stream, er, data);
12628 this.needTransform = false;
12629 this.transforming = false;
12630 this.writecb = null;
12631 this.writechunk = null;
12634 function afterTransform(stream, er, data) {
12635 var ts = stream._transformState;
12636 ts.transforming = false;
12638 var cb = ts.writecb;
12641 return stream.emit('error', new Error('no writecb in Transform class'));
12643 ts.writechunk = null;
12646 if (!util.isNullOrUndefined(data))
12652 var rs = stream._readableState;
12653 rs.reading = false;
12654 if (rs.needReadable || rs.length < rs.highWaterMark) {
12655 stream._read(rs.highWaterMark);
12660 function Transform(options) {
12661 if (!(this instanceof Transform))
12662 return new Transform(options);
12664 Duplex.call(this, options);
12666 this._transformState = new TransformState(options, this);
12668 // when the writable side finishes, then flush out anything remaining.
12671 // start out asking for a readable event once data is transformed.
12672 this._readableState.needReadable = true;
12674 // we have implemented the _read method, and done the other things
12675 // that Readable wants before the first _read call, so unset the
12676 // sync guard flag.
12677 this._readableState.sync = false;
12679 this.once('prefinish', function() {
12680 if (util.isFunction(this._flush))
12681 this._flush(function(er) {
12689 Transform.prototype.push = function(chunk, encoding) {
12690 this._transformState.needTransform = false;
12691 return Duplex.prototype.push.call(this, chunk, encoding);
12694 // This is the part where you do stuff!
12695 // override this function in implementation classes.
12696 // 'chunk' is an input chunk.
12698 // Call `push(newChunk)` to pass along transformed output
12699 // to the readable side. You may call 'push' zero or more times.
12701 // Call `cb(err)` when you are done with this chunk. If you pass
12702 // an error, then that'll put the hurt on the whole operation. If you
12703 // never call cb(), then you'll never get another chunk.
12704 Transform.prototype._transform = function(chunk, encoding, cb) {
12705 throw new Error('not implemented');
12708 Transform.prototype._write = function(chunk, encoding, cb) {
12709 var ts = this._transformState;
12711 ts.writechunk = chunk;
12712 ts.writeencoding = encoding;
12713 if (!ts.transforming) {
12714 var rs = this._readableState;
12715 if (ts.needTransform ||
12717 rs.length < rs.highWaterMark)
12718 this._read(rs.highWaterMark);
12722 // Doesn't matter what the args are here.
12723 // _transform does all the work.
12724 // That we got here means that the readable side wants more data.
12725 Transform.prototype._read = function(n) {
12726 var ts = this._transformState;
12728 if (!util.isNull(ts.writechunk) && ts.writecb && !ts.transforming) {
12729 ts.transforming = true;
12730 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
12732 // mark that we need a transform, so that any data that comes in
12733 // will get processed, now that we've asked for it.
12734 ts.needTransform = true;
12739 function done(stream, er) {
12741 return stream.emit('error', er);
12743 // if there's nothing in the write buffer, then that means
12744 // that nothing more will ever be provided
12745 var ws = stream._writableState;
12746 var ts = stream._transformState;
12749 throw new Error('calling transform done when ws.length !=
0');
12751 if (ts.transforming)
12752 throw new Error('calling transform done when still transforming');
12754 return stream.push(null);
12757 },{"./_stream_duplex":
16,"core-util-is":
21,"inherits":
12}],
20:[function(require,module,exports){
12758 (function (process){
12759 // Copyright Joyent, Inc. and other Node contributors.
12761 // Permission is hereby granted, free of charge, to any person obtaining a
12762 // copy of this software and associated documentation files (the
12763 // "Software"), to deal in the Software without restriction, including
12764 // without limitation the rights to use, copy, modify, merge, publish,
12765 // distribute, sublicense, and/or sell copies of the Software, and to permit
12766 // persons to whom the Software is furnished to do so, subject to the
12767 // following conditions:
12769 // The above copyright notice and this permission notice shall be included
12770 // in all copies or substantial portions of the Software.
12772 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
12773 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
12774 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
12775 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
12776 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
12777 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
12778 // USE OR OTHER DEALINGS IN THE SOFTWARE.
12780 // A bit simpler than readable streams.
12781 // Implement an async ._write(chunk, cb), and it'll handle all
12782 // the drain event emission and buffering.
12784 module.exports = Writable;
12787 var Buffer = require('buffer').Buffer;
12790 Writable.WritableState = WritableState;
12794 var util = require('core-util-is');
12795 util.inherits = require('inherits');
12798 var Stream = require('stream');
12800 util.inherits(Writable, Stream);
12802 function WriteReq(chunk, encoding, cb) {
12803 this.chunk = chunk;
12804 this.encoding = encoding;
12805 this.callback = cb;
12808 function WritableState(options, stream) {
12809 var Duplex = require('./_stream_duplex');
12811 options = options || {};
12813 // the point at which write() starts returning false
12814 // Note:
0 is a valid value, means that we always return false if
12815 // the entire buffer is not flushed immediately on write()
12816 var hwm = options.highWaterMark;
12817 var defaultHwm = options.objectMode ?
16 :
16 *
1024;
12818 this.highWaterMark = (hwm || hwm ===
0) ? hwm : defaultHwm;
12820 // object stream flag to indicate whether or not this stream
12821 // contains buffers or objects.
12822 this.objectMode = !!options.objectMode;
12824 if (stream instanceof Duplex)
12825 this.objectMode = this.objectMode || !!options.writableObjectMode;
12828 this.highWaterMark = ~~this.highWaterMark;
12830 this.needDrain = false;
12831 // at the start of calling end()
12832 this.ending = false;
12833 // when end() has been called, and returned
12834 this.ended = false;
12835 // when 'finish' is emitted
12836 this.finished = false;
12838 // should we decode strings into buffers before passing to _write?
12839 // this is here so that some node-core streams can optimize string
12840 // handling at a lower level.
12841 var noDecode = options.decodeStrings === false;
12842 this.decodeStrings = !noDecode;
12844 // Crypto is kind of old and crusty. Historically, its default string
12845 // encoding is 'binary' so we have to make this configurable.
12846 // Everything else in the universe uses 'utf8', though.
12847 this.defaultEncoding = options.defaultEncoding || 'utf8';
12849 // not an actual buffer we keep track of, but a measurement
12850 // of how much we're waiting to get pushed to some underlying
12854 // a flag to see when we're in the middle of a write.
12855 this.writing = false;
12857 // when true all writes will be buffered until .uncork() call
12860 // a flag to be able to tell if the onwrite cb is called immediately,
12861 // or on a later tick. We set this to true at first, because any
12862 // actions that shouldn't happen until "later" should generally also
12863 // not happen before the first write call.
12866 // a flag to know if we're processing previously buffered items, which
12867 // may call the _write() callback in the same tick, so that we don't
12868 // end up in an overlapped onwrite situation.
12869 this.bufferProcessing = false;
12871 // the callback that's passed to _write(chunk,cb)
12872 this.onwrite = function(er) {
12873 onwrite(stream, er);
12876 // the callback that the user supplies to write(chunk,encoding,cb)
12877 this.writecb = null;
12879 // the amount that is being written when _write is called.
12884 // number of pending user-supplied write callbacks
12885 // this must be
0 before 'finish' can be emitted
12886 this.pendingcb =
0;
12888 // emit prefinish if the only thing we're waiting for is _write cbs
12889 // This is relevant for synchronous Transform streams
12890 this.prefinished = false;
12892 // True if the error was already emitted and should not be thrown again
12893 this.errorEmitted = false;
12896 function Writable(options) {
12897 var Duplex = require('./_stream_duplex');
12899 // Writable ctor is applied to Duplexes, though they're not
12900 // instanceof Writable, they're instanceof Readable.
12901 if (!(this instanceof Writable) && !(this instanceof Duplex))
12902 return new Writable(options);
12904 this._writableState = new WritableState(options, this);
12907 this.writable = true;
12912 // Otherwise people can pipe Writable streams, which is just wrong.
12913 Writable.prototype.pipe = function() {
12914 this.emit('error', new Error('Cannot pipe. Not readable.'));
12918 function writeAfterEnd(stream, state, cb) {
12919 var er = new Error('write after end');
12920 // TODO: defer error events consistently everywhere, not just the cb
12921 stream.emit('error', er);
12922 process.nextTick(function() {
12927 // If we get something that is not a buffer, string, null, or undefined,
12928 // and we're not in objectMode, then that's an error.
12929 // Otherwise stream chunks are all considered to be of length=
1, and the
12930 // watermarks determine how many objects to keep in the buffer, rather than
12931 // how many bytes or characters.
12932 function validChunk(stream, state, chunk, cb) {
12934 if (!util.isBuffer(chunk) &&
12935 !util.isString(chunk) &&
12936 !util.isNullOrUndefined(chunk) &&
12937 !state.objectMode) {
12938 var er = new TypeError('Invalid non-string/buffer chunk');
12939 stream.emit('error', er);
12940 process.nextTick(function() {
12948 Writable.prototype.write = function(chunk, encoding, cb) {
12949 var state = this._writableState;
12952 if (util.isFunction(encoding)) {
12957 if (util.isBuffer(chunk))
12958 encoding = 'buffer';
12959 else if (!encoding)
12960 encoding = state.defaultEncoding;
12962 if (!util.isFunction(cb))
12963 cb = function() {};
12966 writeAfterEnd(this, state, cb);
12967 else if (validChunk(this, state, chunk, cb)) {
12969 ret = writeOrBuffer(this, state, chunk, encoding, cb);
12975 Writable.prototype.cork = function() {
12976 var state = this._writableState;
12981 Writable.prototype.uncork = function() {
12982 var state = this._writableState;
12984 if (state.corked) {
12987 if (!state.writing &&
12990 !state.bufferProcessing &&
12991 state.buffer.length)
12992 clearBuffer(this, state);
12996 function decodeChunk(state, chunk, encoding) {
12997 if (!state.objectMode &&
12998 state.decodeStrings !== false &&
12999 util.isString(chunk)) {
13000 chunk = new Buffer(chunk, encoding);
13005 // if we're already writing something, then just put this
13006 // in the queue, and wait our turn. Otherwise, call _write
13007 // If we return false, then we need a drain event, so set that flag.
13008 function writeOrBuffer(stream, state, chunk, encoding, cb) {
13009 chunk = decodeChunk(state, chunk, encoding);
13010 if (util.isBuffer(chunk))
13011 encoding = 'buffer';
13012 var len = state.objectMode ?
1 : chunk.length;
13014 state.length += len;
13016 var ret = state.length < state.highWaterMark;
13017 // we must ensure that previous needDrain will not be reset to false.
13019 state.needDrain = true;
13021 if (state.writing || state.corked)
13022 state.buffer.push(new WriteReq(chunk, encoding, cb));
13024 doWrite(stream, state, false, len, chunk, encoding, cb);
13029 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
13030 state.writelen = len;
13031 state.writecb = cb;
13032 state.writing = true;
13035 stream._writev(chunk, state.onwrite);
13037 stream._write(chunk, encoding, state.onwrite);
13038 state.sync = false;
13041 function onwriteError(stream, state, sync, er, cb) {
13043 process.nextTick(function() {
13052 stream._writableState.errorEmitted = true;
13053 stream.emit('error', er);
13056 function onwriteStateUpdate(state) {
13057 state.writing = false;
13058 state.writecb = null;
13059 state.length -= state.writelen;
13060 state.writelen =
0;
13063 function onwrite(stream, er) {
13064 var state = stream._writableState;
13065 var sync = state.sync;
13066 var cb = state.writecb;
13068 onwriteStateUpdate(state);
13071 onwriteError(stream, state, sync, er, cb);
13073 // Check if we're actually ready to finish, but don't emit yet
13074 var finished = needFinish(stream, state);
13078 !state.bufferProcessing &&
13079 state.buffer.length) {
13080 clearBuffer(stream, state);
13084 process.nextTick(function() {
13085 afterWrite(stream, state, finished, cb);
13088 afterWrite(stream, state, finished, cb);
13093 function afterWrite(stream, state, finished, cb) {
13095 onwriteDrain(stream, state);
13098 finishMaybe(stream, state);
13101 // Must force callback to be called on nextTick, so that we don't
13102 // emit 'drain' before the write() consumer gets the 'false' return
13103 // value, and has a chance to attach a 'drain' listener.
13104 function onwriteDrain(stream, state) {
13105 if (state.length ===
0 && state.needDrain) {
13106 state.needDrain = false;
13107 stream.emit('drain');
13112 // if there's something in the buffer waiting, then process it
13113 function clearBuffer(stream, state) {
13114 state.bufferProcessing = true;
13116 if (stream._writev && state.buffer.length
> 1) {
13117 // Fast case, write everything using _writev()
13119 for (var c =
0; c < state.buffer.length; c++)
13120 cbs.push(state.buffer[c].callback);
13122 // count the one we are adding, as well.
13123 // TODO(isaacs) clean this up
13125 doWrite(stream, state, true, state.length, state.buffer, '', function(err) {
13126 for (var i =
0; i < cbs.length; i++) {
13135 // Slow case, write chunks one-by-one
13136 for (var c =
0; c < state.buffer.length; c++) {
13137 var entry = state.buffer[c];
13138 var chunk = entry.chunk;
13139 var encoding = entry.encoding;
13140 var cb = entry.callback;
13141 var len = state.objectMode ?
1 : chunk.length;
13143 doWrite(stream, state, false, len, chunk, encoding, cb);
13145 // if we didn't call the onwrite immediately, then
13146 // it means that we need to wait until it does.
13147 // also, that means that the chunk and cb are currently
13148 // being processed, so move the buffer counter past them.
13149 if (state.writing) {
13155 if (c < state.buffer.length)
13156 state.buffer = state.buffer.slice(c);
13158 state.buffer.length =
0;
13161 state.bufferProcessing = false;
13164 Writable.prototype._write = function(chunk, encoding, cb) {
13165 cb(new Error('not implemented'));
13169 Writable.prototype._writev = null;
13171 Writable.prototype.end = function(chunk, encoding, cb) {
13172 var state = this._writableState;
13174 if (util.isFunction(chunk)) {
13178 } else if (util.isFunction(encoding)) {
13183 if (!util.isNullOrUndefined(chunk))
13184 this.write(chunk, encoding);
13186 // .end() fully uncorks
13187 if (state.corked) {
13192 // ignore unnecessary end() calls.
13193 if (!state.ending && !state.finished)
13194 endWritable(this, state, cb);
13198 function needFinish(stream, state) {
13199 return (state.ending &&
13200 state.length ===
0 &&
13205 function prefinish(stream, state) {
13206 if (!state.prefinished) {
13207 state.prefinished = true;
13208 stream.emit('prefinish');
13212 function finishMaybe(stream, state) {
13213 var need = needFinish(stream, state);
13215 if (state.pendingcb ===
0) {
13216 prefinish(stream, state);
13217 state.finished = true;
13218 stream.emit('finish');
13220 prefinish(stream, state);
13225 function endWritable(stream, state, cb) {
13226 state.ending = true;
13227 finishMaybe(stream, state);
13229 if (state.finished)
13230 process.nextTick(cb);
13232 stream.once('finish', cb);
13234 state.ended = true;
13237 }).call(this,require('_process'))
13238 },{
"./_stream_duplex":
16,
"_process":
14,
"buffer":
7,
"core-util-is":
21,
"inherits":
12,
"stream":
26}],
21:[function(require,module,exports){
13239 (function (Buffer){
13240 // Copyright Joyent, Inc. and other Node contributors.
13242 // Permission is hereby granted, free of charge, to any person obtaining a
13243 // copy of this software and associated documentation files (the
13244 //
"Software"), to deal in the Software without restriction, including
13245 // without limitation the rights to use, copy, modify, merge, publish,
13246 // distribute, sublicense, and/or sell copies of the Software, and to permit
13247 // persons to whom the Software is furnished to do so, subject to the
13248 // following conditions:
13250 // The above copyright notice and this permission notice shall be included
13251 // in all copies or substantial portions of the Software.
13253 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13254 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13255 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13256 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13257 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13258 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13259 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13261 // NOTE: These type checking functions intentionally don't use `instanceof`
13262 // because it is fragile and can be easily faked with `Object.create()`.
13263 function isArray(ar) {
13264 return Array.isArray(ar);
13266 exports.isArray = isArray;
13268 function isBoolean(arg) {
13269 return typeof arg === 'boolean';
13271 exports.isBoolean = isBoolean;
13273 function isNull(arg) {
13274 return arg === null;
13276 exports.isNull = isNull;
13278 function isNullOrUndefined(arg) {
13279 return arg == null;
13281 exports.isNullOrUndefined = isNullOrUndefined;
13283 function isNumber(arg) {
13284 return typeof arg === 'number';
13286 exports.isNumber = isNumber;
13288 function isString(arg) {
13289 return typeof arg === 'string';
13291 exports.isString = isString;
13293 function isSymbol(arg) {
13294 return typeof arg === 'symbol';
13296 exports.isSymbol = isSymbol;
13298 function isUndefined(arg) {
13299 return arg === void
0;
13301 exports.isUndefined = isUndefined;
13303 function isRegExp(re) {
13304 return isObject(re) && objectToString(re) === '[object RegExp]';
13306 exports.isRegExp = isRegExp;
13308 function isObject(arg) {
13309 return typeof arg === 'object' && arg !== null;
13311 exports.isObject = isObject;
13313 function isDate(d) {
13314 return isObject(d) && objectToString(d) === '[object Date]';
13316 exports.isDate = isDate;
13318 function isError(e) {
13319 return isObject(e) &&
13320 (objectToString(e) === '[object Error]' || e instanceof Error);
13322 exports.isError = isError;
13324 function isFunction(arg) {
13325 return typeof arg === 'function';
13327 exports.isFunction = isFunction;
13329 function isPrimitive(arg) {
13330 return arg === null ||
13331 typeof arg === 'boolean' ||
13332 typeof arg === 'number' ||
13333 typeof arg === 'string' ||
13334 typeof arg === 'symbol' || // ES6 symbol
13335 typeof arg === 'undefined';
13337 exports.isPrimitive = isPrimitive;
13339 function isBuffer(arg) {
13340 return Buffer.isBuffer(arg);
13342 exports.isBuffer = isBuffer;
13344 function objectToString(o) {
13345 return Object.prototype.toString.call(o);
13347 }).call(this,require(
"buffer").Buffer)
13348 },{
"buffer":
7}],
22:[function(require,module,exports){
13349 module.exports = require(
"./lib/_stream_passthrough.js")
13351 },{
"./lib/_stream_passthrough.js":
17}],
23:[function(require,module,exports){
13352 exports = module.exports = require('./lib/_stream_readable.js');
13353 exports.Stream = require('stream');
13354 exports.Readable = exports;
13355 exports.Writable = require('./lib/_stream_writable.js');
13356 exports.Duplex = require('./lib/_stream_duplex.js');
13357 exports.Transform = require('./lib/_stream_transform.js');
13358 exports.PassThrough = require('./lib/_stream_passthrough.js');
13360 },{
"./lib/_stream_duplex.js":
16,
"./lib/_stream_passthrough.js":
17,
"./lib/_stream_readable.js":
18,
"./lib/_stream_transform.js":
19,
"./lib/_stream_writable.js":
20,
"stream":
26}],
24:[function(require,module,exports){
13361 module.exports = require(
"./lib/_stream_transform.js")
13363 },{
"./lib/_stream_transform.js":
19}],
25:[function(require,module,exports){
13364 module.exports = require(
"./lib/_stream_writable.js")
13366 },{
"./lib/_stream_writable.js":
20}],
26:[function(require,module,exports){
13367 // Copyright Joyent, Inc. and other Node contributors.
13369 // Permission is hereby granted, free of charge, to any person obtaining a
13370 // copy of this software and associated documentation files (the
13371 //
"Software"), to deal in the Software without restriction, including
13372 // without limitation the rights to use, copy, modify, merge, publish,
13373 // distribute, sublicense, and/or sell copies of the Software, and to permit
13374 // persons to whom the Software is furnished to do so, subject to the
13375 // following conditions:
13377 // The above copyright notice and this permission notice shall be included
13378 // in all copies or substantial portions of the Software.
13380 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13381 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13382 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13383 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13384 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13385 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13386 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13388 module.exports = Stream;
13390 var EE = require('events').EventEmitter;
13391 var inherits = require('inherits');
13393 inherits(Stream, EE);
13394 Stream.Readable = require('readable-stream/readable.js');
13395 Stream.Writable = require('readable-stream/writable.js');
13396 Stream.Duplex = require('readable-stream/duplex.js');
13397 Stream.Transform = require('readable-stream/transform.js');
13398 Stream.PassThrough = require('readable-stream/passthrough.js');
13400 // Backwards-compat with node
0.4.x
13401 Stream.Stream = Stream;
13405 // old-style streams. Note that the pipe method (the only relevant
13406 // part of this class) is overridden in the Readable class.
13408 function Stream() {
13412 Stream.prototype.pipe = function(dest, options) {
13415 function ondata(chunk) {
13416 if (dest.writable) {
13417 if (false === dest.write(chunk) && source.pause) {
13423 source.on('data', ondata);
13425 function ondrain() {
13426 if (source.readable && source.resume) {
13431 dest.on('drain', ondrain);
13433 // If the 'end' option is not supplied, dest.end() will be called when
13434 // source gets the 'end' or 'close' events. Only dest.end() once.
13435 if (!dest._isStdio && (!options || options.end !== false)) {
13436 source.on('end', onend);
13437 source.on('close', onclose);
13440 var didOnEnd = false;
13442 if (didOnEnd) return;
13449 function onclose() {
13450 if (didOnEnd) return;
13453 if (typeof dest.destroy === 'function') dest.destroy();
13456 // don't leave dangling pipes when there are errors.
13457 function onerror(er) {
13459 if (EE.listenerCount(this, 'error') ===
0) {
13460 throw er; // Unhandled stream error in pipe.
13464 source.on('error', onerror);
13465 dest.on('error', onerror);
13467 // remove all the event listeners that were added.
13468 function cleanup() {
13469 source.removeListener('data', ondata);
13470 dest.removeListener('drain', ondrain);
13472 source.removeListener('end', onend);
13473 source.removeListener('close', onclose);
13475 source.removeListener('error', onerror);
13476 dest.removeListener('error', onerror);
13478 source.removeListener('end', cleanup);
13479 source.removeListener('close', cleanup);
13481 dest.removeListener('close', cleanup);
13484 source.on('end', cleanup);
13485 source.on('close', cleanup);
13487 dest.on('close', cleanup);
13489 dest.emit('pipe', source);
13491 // Allow for unix-like usage: A.pipe(B).pipe(C)
13495 },{
"events":
11,
"inherits":
12,
"readable-stream/duplex.js":
15,
"readable-stream/passthrough.js":
22,
"readable-stream/readable.js":
23,
"readable-stream/transform.js":
24,
"readable-stream/writable.js":
25}],
27:[function(require,module,exports){
13496 // Copyright Joyent, Inc. and other Node contributors.
13498 // Permission is hereby granted, free of charge, to any person obtaining a
13499 // copy of this software and associated documentation files (the
13500 //
"Software"), to deal in the Software without restriction, including
13501 // without limitation the rights to use, copy, modify, merge, publish,
13502 // distribute, sublicense, and/or sell copies of the Software, and to permit
13503 // persons to whom the Software is furnished to do so, subject to the
13504 // following conditions:
13506 // The above copyright notice and this permission notice shall be included
13507 // in all copies or substantial portions of the Software.
13509 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13510 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13511 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13512 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13513 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13514 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13515 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13517 var Buffer = require('buffer').Buffer;
13519 var isBufferEncoding = Buffer.isEncoding
13520 || function(encoding) {
13521 switch (encoding && encoding.toLowerCase()) {
13522 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;
13523 default: return false;
13528 function assertEncoding(encoding) {
13529 if (encoding && !isBufferEncoding(encoding)) {
13530 throw new Error('Unknown encoding: ' + encoding);
13534 // StringDecoder provides an interface for efficiently splitting a series of
13535 // buffers into a series of JS strings without breaking apart multi-byte
13536 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
13538 // @TODO Handling all encodings inside a single object makes it very difficult
13539 // to reason about this code, so it should be split up in the future.
13540 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
13541 // points as used by CESU-
8.
13542 var StringDecoder = exports.StringDecoder = function(encoding) {
13543 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
13544 assertEncoding(encoding);
13545 switch (this.encoding) {
13547 // CESU-
8 represents each of Surrogate Pair by
3-bytes
13548 this.surrogateSize =
3;
13552 // UTF-
16 represents each of Surrogate Pair by
2-bytes
13553 this.surrogateSize =
2;
13554 this.detectIncompleteChar = utf16DetectIncompleteChar;
13557 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
13558 this.surrogateSize =
3;
13559 this.detectIncompleteChar = base64DetectIncompleteChar;
13562 this.write = passThroughWrite;
13566 // Enough space to store all bytes of a single character. UTF-
8 needs
4
13567 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
13568 this.charBuffer = new Buffer(
6);
13569 // Number of bytes received for the current incomplete multi-byte character.
13570 this.charReceived =
0;
13571 // Number of bytes expected for the current incomplete multi-byte character.
13572 this.charLength =
0;
13576 // write decodes the given buffer and returns it as JS string that is
13577 // guaranteed to not contain any partial multi-byte characters. Any partial
13578 // character found at the end of the buffer is buffered up, and will be
13579 // returned when calling write again with the remaining bytes.
13581 // Note: Converting a Buffer containing an orphan surrogate to a String
13582 // currently works, but converting a String to a Buffer (via `new Buffer`, or
13583 // Buffer#write) will replace incomplete surrogates with the unicode
13584 // replacement character. See https://codereview.chromium.org/
121173009/ .
13585 StringDecoder.prototype.write = function(buffer) {
13587 // if our last write ended with an incomplete multibyte character
13588 while (this.charLength) {
13589 // determine how many remaining bytes this buffer has to offer for this char
13590 var available = (buffer.length
>= this.charLength - this.charReceived) ?
13591 this.charLength - this.charReceived :
13594 // add the new bytes to the char buffer
13595 buffer.copy(this.charBuffer, this.charReceived,
0, available);
13596 this.charReceived += available;
13598 if (this.charReceived < this.charLength) {
13599 // still not enough chars in this buffer? wait for more ...
13603 // remove bytes belonging to the current character from the buffer
13604 buffer = buffer.slice(available, buffer.length);
13606 // get the character that was split
13607 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
13609 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
13610 var charCode = charStr.charCodeAt(charStr.length -
1);
13611 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
13612 this.charLength += this.surrogateSize;
13616 this.charReceived = this.charLength =
0;
13618 // if there are no more bytes in this buffer, just emit our char
13619 if (buffer.length ===
0) {
13625 // determine and set charLength / charReceived
13626 this.detectIncompleteChar(buffer);
13628 var end = buffer.length;
13629 if (this.charLength) {
13630 // buffer the incomplete character bytes we got
13631 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
13632 end -= this.charReceived;
13635 charStr += buffer.toString(this.encoding,
0, end);
13637 var end = charStr.length -
1;
13638 var charCode = charStr.charCodeAt(end);
13639 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
13640 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
13641 var size = this.surrogateSize;
13642 this.charLength += size;
13643 this.charReceived += size;
13644 this.charBuffer.copy(this.charBuffer, size,
0, size);
13645 buffer.copy(this.charBuffer,
0,
0, size);
13646 return charStr.substring(
0, end);
13649 // or just emit the charStr
13653 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
13654 // the end of the given buffer. If so, it sets this.charLength to the byte
13655 // length that character, and sets this.charReceived to the number of bytes
13656 // that are available for this character.
13657 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
13658 // determine how many bytes we have to check at the end of this buffer
13659 var i = (buffer.length
>=
3) ?
3 : buffer.length;
13661 // Figure out if one of the last i bytes of our buffer announces an
13662 // incomplete char.
13663 for (; i
> 0; i--) {
13664 var c = buffer[buffer.length - i];
13666 // See http://en.wikipedia.org/wiki/UTF-
8#Description
13669 if (i ==
1 && c
>> 5 ==
0x06) {
13670 this.charLength =
2;
13675 if (i <=
2 && c
>> 4 ==
0x0E) {
13676 this.charLength =
3;
13681 if (i <=
3 && c
>> 3 ==
0x1E) {
13682 this.charLength =
4;
13686 this.charReceived = i;
13689 StringDecoder.prototype.end = function(buffer) {
13691 if (buffer && buffer.length)
13692 res = this.write(buffer);
13694 if (this.charReceived) {
13695 var cr = this.charReceived;
13696 var buf = this.charBuffer;
13697 var enc = this.encoding;
13698 res += buf.slice(
0, cr).toString(enc);
13704 function passThroughWrite(buffer) {
13705 return buffer.toString(this.encoding);
13708 function utf16DetectIncompleteChar(buffer) {
13709 this.charReceived = buffer.length %
2;
13710 this.charLength = this.charReceived ?
2 :
0;
13713 function base64DetectIncompleteChar(buffer) {
13714 this.charReceived = buffer.length %
3;
13715 this.charLength = this.charReceived ?
3 :
0;
13718 },{
"buffer":
7}],
28:[function(require,module,exports){
13719 module.exports = function isBuffer(arg) {
13720 return arg && typeof arg === 'object'
13721 && typeof arg.copy === 'function'
13722 && typeof arg.fill === 'function'
13723 && typeof arg.readUInt8 === 'function';
13725 },{}],
29:[function(require,module,exports){
13726 (function (process,global){
13727 // Copyright Joyent, Inc. and other Node contributors.
13729 // Permission is hereby granted, free of charge, to any person obtaining a
13730 // copy of this software and associated documentation files (the
13731 //
"Software"), to deal in the Software without restriction, including
13732 // without limitation the rights to use, copy, modify, merge, publish,
13733 // distribute, sublicense, and/or sell copies of the Software, and to permit
13734 // persons to whom the Software is furnished to do so, subject to the
13735 // following conditions:
13737 // The above copyright notice and this permission notice shall be included
13738 // in all copies or substantial portions of the Software.
13740 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
13741 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13742 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
13743 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
13744 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
13745 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
13746 // USE OR OTHER DEALINGS IN THE SOFTWARE.
13748 var formatRegExp = /%[sdj%]/g;
13749 exports.format = function(f) {
13750 if (!isString(f)) {
13752 for (var i =
0; i < arguments.length; i++) {
13753 objects.push(inspect(arguments[i]));
13755 return objects.join(' ');
13759 var args = arguments;
13760 var len = args.length;
13761 var str = String(f).replace(formatRegExp, function(x) {
13762 if (x === '%%') return '%';
13763 if (i
>= len) return x;
13765 case '%s': return String(args[i++]);
13766 case '%d': return Number(args[i++]);
13769 return JSON.stringify(args[i++]);
13771 return '[Circular]';
13777 for (var x = args[i]; i < len; x = args[++i]) {
13778 if (isNull(x) || !isObject(x)) {
13781 str += ' ' + inspect(x);
13788 // Mark that a method should not be used.
13789 // Returns a modified function which warns once by default.
13790 // If --no-deprecation is set, then it is a no-op.
13791 exports.deprecate = function(fn, msg) {
13792 // Allow for deprecating things in the process of starting up.
13793 if (isUndefined(global.process)) {
13794 return function() {
13795 return exports.deprecate(fn, msg).apply(this, arguments);
13799 if (process.noDeprecation === true) {
13803 var warned = false;
13804 function deprecated() {
13806 if (process.throwDeprecation) {
13807 throw new Error(msg);
13808 } else if (process.traceDeprecation) {
13809 console.trace(msg);
13811 console.error(msg);
13815 return fn.apply(this, arguments);
13824 exports.debuglog = function(set) {
13825 if (isUndefined(debugEnviron))
13826 debugEnviron = process.env.NODE_DEBUG || '';
13827 set = set.toUpperCase();
13828 if (!debugs[set]) {
13829 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
13830 var pid = process.pid;
13831 debugs[set] = function() {
13832 var msg = exports.format.apply(exports, arguments);
13833 console.error('%s %d: %s', set, pid, msg);
13836 debugs[set] = function() {};
13839 return debugs[set];
13844 * Echos the value of a value. Trys to print the value out
13845 * in the best way possible given the different types.
13847 * @param {Object} obj The object to print out.
13848 * @param {Object} opts Optional options object that alters the output.
13850 /* legacy: obj, showHidden, depth, colors*/
13851 function inspect(obj, opts) {
13855 stylize: stylizeNoColor
13858 if (arguments.length
>=
3) ctx.depth = arguments[
2];
13859 if (arguments.length
>=
4) ctx.colors = arguments[
3];
13860 if (isBoolean(opts)) {
13862 ctx.showHidden = opts;
13864 // got an "options" object
13865 exports._extend(ctx, opts);
13867 // set default options
13868 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
13869 if (isUndefined(ctx.depth)) ctx.depth =
2;
13870 if (isUndefined(ctx.colors)) ctx.colors = false;
13871 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
13872 if (ctx.colors) ctx.stylize = stylizeWithColor;
13873 return formatValue(ctx, obj, ctx.depth);
13875 exports.inspect = inspect;
13878 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
13881 'italic' : [
3,
23],
13882 'underline' : [
4,
24],
13883 'inverse' : [
7,
27],
13884 'white' : [
37,
39],
13886 'black' : [
30,
39],
13889 'green' : [
32,
39],
13890 'magenta' : [
35,
39],
13892 'yellow' : [
33,
39]
13895 // Don't use 'blue' not visible on cmd.exe
13898 'number': 'yellow',
13899 'boolean': 'yellow',
13900 'undefined': 'grey',
13904 // "name": intentionally not styling
13909 function stylizeWithColor(str, styleType) {
13910 var style = inspect.styles[styleType];
13913 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
13914 '\u001b[' + inspect.colors[style][
1] + 'm';
13921 function stylizeNoColor(str, styleType) {
13926 function arrayToHash(array) {
13929 array.forEach(function(val, idx) {
13937 function formatValue(ctx, value, recurseTimes) {
13938 // Provide a hook for user-specified inspect functions.
13939 // Check that value is an object with an inspect function on it
13940 if (ctx.customInspect &&
13942 isFunction(value.inspect) &&
13943 // Filter out the util module, it's inspect function is special
13944 value.inspect !== exports.inspect &&
13945 // Also filter out any prototype objects using the circular check.
13946 !(value.constructor && value.constructor.prototype === value)) {
13947 var ret = value.inspect(recurseTimes, ctx);
13948 if (!isString(ret)) {
13949 ret = formatValue(ctx, ret, recurseTimes);
13954 // Primitive types cannot have properties
13955 var primitive = formatPrimitive(ctx, value);
13960 // Look up the keys of the object.
13961 var keys = Object.keys(value);
13962 var visibleKeys = arrayToHash(keys);
13964 if (ctx.showHidden) {
13965 keys = Object.getOwnPropertyNames(value);
13968 // IE doesn't make error fields non-enumerable
13969 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
13971 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
13972 return formatError(value);
13975 // Some type of object without properties can be shortcutted.
13976 if (keys.length ===
0) {
13977 if (isFunction(value)) {
13978 var name = value.name ? ': ' + value.name : '';
13979 return ctx.stylize('[Function' + name + ']', 'special');
13981 if (isRegExp(value)) {
13982 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
13984 if (isDate(value)) {
13985 return ctx.stylize(Date.prototype.toString.call(value), 'date');
13987 if (isError(value)) {
13988 return formatError(value);
13992 var base = '', array = false, braces = ['{', '}'];
13994 // Make Array say that they are Array
13995 if (isArray(value)) {
13997 braces = ['[', ']'];
14000 // Make functions say that they are functions
14001 if (isFunction(value)) {
14002 var n = value.name ? ': ' + value.name : '';
14003 base = ' [Function' + n + ']';
14006 // Make RegExps say that they are RegExps
14007 if (isRegExp(value)) {
14008 base = ' ' + RegExp.prototype.toString.call(value);
14011 // Make dates with properties first say the date
14012 if (isDate(value)) {
14013 base = ' ' + Date.prototype.toUTCString.call(value);
14016 // Make error with message first say the error
14017 if (isError(value)) {
14018 base = ' ' + formatError(value);
14021 if (keys.length ===
0 && (!array || value.length ==
0)) {
14022 return braces[
0] + base + braces[
1];
14025 if (recurseTimes <
0) {
14026 if (isRegExp(value)) {
14027 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
14029 return ctx.stylize('[Object]', 'special');
14033 ctx.seen.push(value);
14037 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
14039 output = keys.map(function(key) {
14040 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
14046 return reduceToSingleString(output, base, braces);
14050 function formatPrimitive(ctx, value) {
14051 if (isUndefined(value))
14052 return ctx.stylize('undefined', 'undefined');
14053 if (isString(value)) {
14054 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
14055 .replace(/'/g, "\\'")
14056 .replace(/\\"/g, '"') + '\'';
14057 return ctx.stylize(simple, 'string');
14059 if (isNumber(value))
14060 return ctx.stylize('' + value, 'number');
14061 if (isBoolean(value))
14062 return ctx.stylize('' + value, 'boolean');
14063 // For some reason typeof null is "object", so special case here.
14065 return ctx.stylize('null', 'null');
14069 function formatError(value) {
14070 return '[' + Error.prototype.toString.call(value) + ']';
14074 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
14076 for (var i =
0, l = value.length; i < l; ++i) {
14077 if (hasOwnProperty(value, String(i))) {
14078 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
14084 keys.forEach(function(key) {
14085 if (!key.match(/^\d+$/)) {
14086 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
14094 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
14095 var name, str, desc;
14096 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
14099 str = ctx.stylize('[Getter/Setter]', 'special');
14101 str = ctx.stylize('[Getter]', 'special');
14105 str = ctx.stylize('[Setter]', 'special');
14108 if (!hasOwnProperty(visibleKeys, key)) {
14109 name = '[' + key + ']';
14112 if (ctx.seen.indexOf(desc.value) <
0) {
14113 if (isNull(recurseTimes)) {
14114 str = formatValue(ctx, desc.value, null);
14116 str = formatValue(ctx, desc.value, recurseTimes -
1);
14118 if (str.indexOf('\n')
> -
1) {
14120 str = str.split('\n').map(function(line) {
14122 }).join('\n').substr(
2);
14124 str = '\n' + str.split('\n').map(function(line) {
14130 str = ctx.stylize('[Circular]', 'special');
14133 if (isUndefined(name)) {
14134 if (array && key.match(/^\d+$/)) {
14137 name = JSON.stringify('' + key);
14138 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
14139 name = name.substr(
1, name.length -
2);
14140 name = ctx.stylize(name, 'name');
14142 name = name.replace(/'/g, "\\'")
14143 .replace(/\\"/g, '"')
14144 .replace(/(^"|"$)/g, "'");
14145 name = ctx.stylize(name, 'string');
14149 return name + ': ' + str;
14153 function reduceToSingleString(output, base, braces) {
14154 var numLinesEst =
0;
14155 var length = output.reduce(function(prev, cur) {
14157 if (cur.indexOf('\n')
>=
0) numLinesEst++;
14158 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
14163 (base === '' ? '' : base + '\n ') +
14165 output.join(',\n ') +
14170 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
14174 // NOTE: These type checking functions intentionally don't use `instanceof`
14175 // because it is fragile and can be easily faked with `Object.create()`.
14176 function isArray(ar) {
14177 return Array.isArray(ar);
14179 exports.isArray = isArray;
14181 function isBoolean(arg) {
14182 return typeof arg === 'boolean';
14184 exports.isBoolean = isBoolean;
14186 function isNull(arg) {
14187 return arg === null;
14189 exports.isNull = isNull;
14191 function isNullOrUndefined(arg) {
14192 return arg == null;
14194 exports.isNullOrUndefined = isNullOrUndefined;
14196 function isNumber(arg) {
14197 return typeof arg === 'number';
14199 exports.isNumber = isNumber;
14201 function isString(arg) {
14202 return typeof arg === 'string';
14204 exports.isString = isString;
14206 function isSymbol(arg) {
14207 return typeof arg === 'symbol';
14209 exports.isSymbol = isSymbol;
14211 function isUndefined(arg) {
14212 return arg === void
0;
14214 exports.isUndefined = isUndefined;
14216 function isRegExp(re) {
14217 return isObject(re) && objectToString(re) === '[object RegExp]';
14219 exports.isRegExp = isRegExp;
14221 function isObject(arg) {
14222 return typeof arg === 'object' && arg !== null;
14224 exports.isObject = isObject;
14226 function isDate(d) {
14227 return isObject(d) && objectToString(d) === '[object Date]';
14229 exports.isDate = isDate;
14231 function isError(e) {
14232 return isObject(e) &&
14233 (objectToString(e) === '[object Error]' || e instanceof Error);
14235 exports.isError = isError;
14237 function isFunction(arg) {
14238 return typeof arg === 'function';
14240 exports.isFunction = isFunction;
14242 function isPrimitive(arg) {
14243 return arg === null ||
14244 typeof arg === 'boolean' ||
14245 typeof arg === 'number' ||
14246 typeof arg === 'string' ||
14247 typeof arg === 'symbol' || // ES6 symbol
14248 typeof arg === 'undefined';
14250 exports.isPrimitive = isPrimitive;
14252 exports.isBuffer = require('./support/isBuffer');
14254 function objectToString(o) {
14255 return Object.prototype.toString.call(o);
14260 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
14264 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
14265 'Oct', 'Nov', 'Dec'];
14268 function timestamp() {
14269 var d = new Date();
14270 var time = [pad(d.getHours()),
14271 pad(d.getMinutes()),
14272 pad(d.getSeconds())].join(':');
14273 return [d.getDate(), months[d.getMonth()], time].join(' ');
14277 // log is just a thin wrapper to console.log that prepends a timestamp
14278 exports.log = function() {
14279 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
14284 * Inherit the prototype methods from one constructor into another.
14286 * The Function.prototype.inherits from lang.js rewritten as a standalone
14287 * function (not on Function.prototype). NOTE: If this file is to be loaded
14288 * during bootstrapping this function needs to be rewritten using some native
14289 * functions as prototype setup using normal JavaScript does not work as
14290 * expected during bootstrapping (see mirror.js in r114903).
14292 * @param {function} ctor Constructor function which needs to inherit the
14294 * @param {function} superCtor Constructor function to inherit prototype from.
14296 exports.inherits = require('inherits');
14298 exports._extend = function(origin, add) {
14299 // Don't do anything if add isn't an object
14300 if (!add || !isObject(add)) return origin;
14302 var keys = Object.keys(add);
14303 var i = keys.length;
14305 origin[keys[i]] = add[keys[i]];
14310 function hasOwnProperty(obj, prop) {
14311 return Object.prototype.hasOwnProperty.call(obj, prop);
14314 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
14315 },{
"./support/isBuffer":
28,
"_process":
14,
"inherits":
12}],
30:[function(require,module,exports){
14316 // Base58 encoding/decoding
14317 // Originally written by Mike Hearn for BitcoinJ
14318 // Copyright (c)
2011 Google Inc
14319 // Ported to JavaScript by Stefan Thomas
14320 // Merged Buffer refactorings from base58-native by Stephen Pair
14321 // Copyright (c)
2013 BitPay Inc
14323 var ALPHABET = '
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
14324 var ALPHABET_MAP = {}
14325 for(var i =
0; i < ALPHABET.length; i++) {
14326 ALPHABET_MAP[ALPHABET.charAt(i)] = i
14330 function encode(buffer) {
14331 if (buffer.length ===
0) return ''
14333 var i, j, digits = [
0]
14334 for (i =
0; i < buffer.length; i++) {
14335 for (j =
0; j < digits.length; j++) digits[j] <<=
8
14337 digits[
0] += buffer[i]
14340 for (j =
0; j < digits.length; ++j) {
14343 carry = (digits[j] / BASE) |
0
14348 digits.push(carry % BASE)
14350 carry = (carry / BASE) |
0
14354 // deal with leading zeros
14355 for (i =
0; buffer[i] ===
0 && i < buffer.length -
1; i++) digits.push(
0)
14357 // convert digits to a string
14358 var stringOutput =
""
14359 for (var i = digits.length -
1; i
>=
0; i--) {
14360 stringOutput = stringOutput + ALPHABET[digits[i]]
14362 return stringOutput
14365 function decode(string) {
14366 if (string.length ===
0) return []
14368 var i, j, bytes = [
0]
14369 for (i =
0; i < string.length; i++) {
14371 if (!(c in ALPHABET_MAP)) throw new Error('Non-base58 character')
14373 for (j =
0; j < bytes.length; j++) bytes[j] *= BASE
14374 bytes[
0] += ALPHABET_MAP[c]
14377 for (j =
0; j < bytes.length; ++j) {
14380 carry = bytes[j]
>> 8
14385 bytes.push(carry &
0xff)
14391 // deal with leading zeros
14392 for (i =
0; string[i] === '
1' && i < string.length -
1; i++) bytes.push(
0)
14394 return bytes.reverse()
14402 },{}],
31:[function(require,module,exports){
14403 (function (Buffer){
14406 var base58 = require('bs58')
14407 var createHash = require('create-hash')
14409 // SHA256(SHA256(buffer))
14410 function sha256x2 (buffer) {
14411 buffer = createHash('sha256').update(buffer).digest()
14412 return createHash('sha256').update(buffer).digest()
14415 // Encode a buffer as a base58-check encoded string
14416 function encode (payload) {
14417 var checksum = sha256x2(payload).slice(
0,
4)
14419 return base58.encode(Buffer.concat([
14425 // Decode a base58-check encoded string to a buffer
14426 function decode (string) {
14427 var buffer = new Buffer(base58.decode(string))
14429 var payload = buffer.slice(
0, -
4)
14430 var checksum = buffer.slice(-
4)
14431 var newChecksum = sha256x2(payload).slice(
0,
4)
14433 for (var i =
0; i < newChecksum.length; ++i) {
14434 if (newChecksum[i] === checksum[i]) continue
14436 throw new Error('Invalid checksum')
14447 }).call(this,require("buffer").Buffer)
14448 },{"bs58":
30,"buffer":
7,"create-hash":
32}],
32:[function(require,module,exports){
14449 (function (Buffer){
14451 var inherits = require('inherits')
14452 var md5 = require('./md5')
14453 var rmd160 = require('ripemd160')
14454 var sha = require('sha.js')
14456 var Transform = require('stream').Transform
14458 function HashNoConstructor(hash) {
14459 Transform.call(this)
14465 inherits(HashNoConstructor, Transform)
14467 HashNoConstructor.prototype._transform = function (data, _, next) {
14468 this.buffers.push(data)
14473 HashNoConstructor.prototype._flush = function (next) {
14474 this.push(this.digest())
14478 HashNoConstructor.prototype.update = function (data, enc) {
14479 if (typeof data === 'string') {
14480 data = new Buffer(data, enc)
14483 this.buffers.push(data)
14487 HashNoConstructor.prototype.digest = function (enc) {
14488 var buf = Buffer.concat(this.buffers)
14489 var r = this._hash(buf)
14490 this.buffers = null
14492 return enc ? r.toString(enc) : r
14495 function Hash(hash) {
14496 Transform.call(this)
14501 inherits(Hash, Transform)
14503 Hash.prototype._transform = function (data, enc, next) {
14504 if (enc) data = new Buffer(data, enc)
14506 this._hash.update(data)
14511 Hash.prototype._flush = function (next) {
14512 this.push(this._hash.digest())
14518 Hash.prototype.update = function (data, enc) {
14519 if (typeof data === 'string') {
14520 data = new Buffer(data, enc)
14523 this._hash.update(data)
14527 Hash.prototype.digest = function (enc) {
14528 var outData = this._hash.digest()
14530 return enc ? outData.toString(enc) : outData
14533 module.exports = function createHash (alg) {
14534 if ('md5' === alg) return new HashNoConstructor(md5)
14535 if ('rmd160' === alg) return new HashNoConstructor(rmd160)
14537 return new Hash(sha(alg))
14540 }).call(this,require("buffer").Buffer)
14541 },{"./md5":
34,"buffer":
7,"inherits":
35,"ripemd160":
36,"sha.js":
38,"stream":
26}],
33:[function(require,module,exports){
14542 (function (Buffer){
14545 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
14548 function toArray(buf, bigEndian) {
14549 if ((buf.length % intSize) !==
0) {
14550 var len = buf.length + (intSize - (buf.length % intSize));
14551 buf = Buffer.concat([buf, zeroBuffer], len);
14555 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
14556 for (var i =
0; i < buf.length; i += intSize) {
14557 arr.push(fn.call(buf, i));
14562 function toBuffer(arr, size, bigEndian) {
14563 var buf = new Buffer(size);
14564 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
14565 for (var i =
0; i < arr.length; i++) {
14566 fn.call(buf, arr[i], i *
4, true);
14571 function hash(buf, fn, hashSize, bigEndian) {
14572 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
14573 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
14574 return toBuffer(arr, hashSize, bigEndian);
14576 exports.hash = hash;
14577 }).call(this,require("buffer").Buffer)
14578 },{"buffer":
7}],
34:[function(require,module,exports){
14581 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
14582 * Digest Algorithm, as defined in RFC
1321.
14583 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
14584 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
14585 * Distributed under the BSD License
14586 * See http://pajhome.org.uk/crypt/md5 for more info.
14589 var helpers = require('./helpers');
14592 * Calculate the MD5 of an array of little-endian words, and a bit length
14594 function core_md5(x, len)
14596 /* append padding */
14597 x[len
>> 5] |=
0x80 << ((len) %
32);
14598 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
14600 var a =
1732584193;
14601 var b = -
271733879;
14602 var c = -
1732584194;
14605 for(var i =
0; i < x.length; i +=
16)
14612 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
14613 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
14614 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
14615 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
14616 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
14617 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
14618 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
14619 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
14620 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
14621 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
14622 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
14623 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
14624 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
14625 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
14626 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
14627 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
14629 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
14630 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
14631 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
14632 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
14633 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
14634 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
14635 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
14636 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
14637 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
14638 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
14639 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
14640 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
14641 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
14642 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
14643 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
14644 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
14646 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
14647 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
14648 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
14649 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
14650 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
14651 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
14652 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
14653 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
14654 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
14655 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
14656 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
14657 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
14658 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
14659 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
14660 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
14661 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
14663 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
14664 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
14665 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
14666 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
14667 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
14668 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
14669 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
14670 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
14671 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
14672 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
14673 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
14674 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
14675 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
14676 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
14677 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
14678 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
14680 a = safe_add(a, olda);
14681 b = safe_add(b, oldb);
14682 c = safe_add(c, oldc);
14683 d = safe_add(d, oldd);
14685 return Array(a, b, c, d);
14690 * These functions implement the four basic operations the algorithm uses.
14692 function md5_cmn(q, a, b, x, s, t)
14694 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
14696 function md5_ff(a, b, c, d, x, s, t)
14698 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
14700 function md5_gg(a, b, c, d, x, s, t)
14702 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
14704 function md5_hh(a, b, c, d, x, s, t)
14706 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
14708 function md5_ii(a, b, c, d, x, s, t)
14710 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
14714 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
14715 * to work around bugs in some JS interpreters.
14717 function safe_add(x, y)
14719 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
14720 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
14721 return (msw <<
16) | (lsw &
0xFFFF);
14725 * Bitwise rotate a
32-bit number to the left.
14727 function bit_rol(num, cnt)
14729 return (num << cnt) | (num
>>> (
32 - cnt));
14732 module.exports = function md5(buf) {
14733 return helpers.hash(buf, core_md5,
16);
14735 },{"./helpers":
33}],
35:[function(require,module,exports){
14736 arguments[
4][
12][
0].apply(exports,arguments)
14737 },{"dup":
12}],
36:[function(require,module,exports){
14738 (function (Buffer){
14741 code.google.com/p/crypto-js
14742 (c)
2009-
2013 by Jeff Mott. All rights reserved.
14743 code.google.com/p/crypto-js/wiki/License
14746 (c)
2012 by Cédric Mesnil. All rights reserved.
14748 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
14750 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
14751 - 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.
14753 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.
14758 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
14759 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
14760 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
14761 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
14762 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
14766 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
14767 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
14768 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
14769 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
14770 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
14774 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
14775 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
14776 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
14777 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
14778 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
14782 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
14783 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
14784 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
14785 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
14786 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
14789 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
14790 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
14792 function bytesToWords (bytes) {
14794 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
14795 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
14800 function wordsToBytes (words) {
14802 for (var b =
0; b < words.length *
32; b +=
8) {
14803 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
14808 function processBlock (H, M, offset) {
14810 for (var i =
0; i <
16; i++) {
14811 var offset_i = offset + i
14812 var M_offset_i = M[offset_i]
14816 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
14817 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
14821 // Working variables
14822 var al, bl, cl, dl, el
14823 var ar, br, cr, dr, er
14833 for (i =
0; i <
80; i +=
1) {
14834 t = (al + M[offset + zl[i]]) |
0
14836 t += f1(bl, cl, dl) + hl[
0]
14837 } else if (i <
32) {
14838 t += f2(bl, cl, dl) + hl[
1]
14839 } else if (i <
48) {
14840 t += f3(bl, cl, dl) + hl[
2]
14841 } else if (i <
64) {
14842 t += f4(bl, cl, dl) + hl[
3]
14843 } else {// if (i
<80) {
14844 t += f5(bl, cl, dl) + hl[
4]
14855 t = (ar + M[offset + zr[i]]) |
0
14857 t += f5(br, cr, dr) + hr[
0]
14858 } else if (i <
32) {
14859 t += f4(br, cr, dr) + hr[
1]
14860 } else if (i <
48) {
14861 t += f3(br, cr, dr) + hr[
2]
14862 } else if (i <
64) {
14863 t += f2(br, cr, dr) + hr[
3]
14864 } else {// if (i
<80) {
14865 t += f1(br, cr, dr) + hr[
4]
14878 // intermediate hash value
14879 t = (H[
1] + cl + dr) |
0
14880 H[
1] = (H[
2] + dl + er) |
0
14881 H[
2] = (H[
3] + el + ar) |
0
14882 H[
3] = (H[
4] + al + br) |
0
14883 H[
4] = (H[
0] + bl + cr) |
0
14887 function f1 (x, y, z) {
14888 return ((x) ^ (y) ^ (z))
14891 function f2 (x, y, z) {
14892 return (((x) & (y)) | ((~x) & (z)))
14895 function f3 (x, y, z) {
14896 return (((x) | (~(y))) ^ (z))
14899 function f4 (x, y, z) {
14900 return (((x) & (z)) | ((y) & (~(z))))
14903 function f5 (x, y, z) {
14904 return ((x) ^ ((y) | (~(z))))
14907 function rotl (x, n) {
14908 return (x << n) | (x
>>> (
32 - n))
14911 function ripemd160 (message) {
14912 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
14914 if (typeof message === 'string') {
14915 message = new Buffer(message, 'utf8')
14918 var m = bytesToWords(message)
14920 var nBitsLeft = message.length *
8
14921 var nBitsTotal = message.length *
8
14924 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
14925 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
14926 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
14927 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
14930 for (var i =
0; i < m.length; i +=
16) {
14931 processBlock(H, m, i)
14935 for (i =
0; i <
5; i++) {
14940 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
14941 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
14944 var digestbytes = wordsToBytes(H)
14945 return new Buffer(digestbytes)
14948 module.exports = ripemd160
14950 }).call(this,require(
"buffer").Buffer)
14951 },{
"buffer":
7}],
37:[function(require,module,exports){
14952 (function (Buffer){
14953 // prototype class for hash functions
14954 function Hash (blockSize, finalSize) {
14955 this._block = new Buffer(blockSize)
14956 this._finalSize = finalSize
14957 this._blockSize = blockSize
14962 Hash.prototype.update = function (data, enc) {
14963 if (typeof data === 'string') {
14964 enc = enc || 'utf8'
14965 data = new Buffer(data, enc)
14968 var l = this._len += data.length
14969 var s = this._s ||
0
14971 var buffer = this._block
14974 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
14977 for (var i =
0; i < ch; i++) {
14978 buffer[(s % this._blockSize) + i] = data[i + f]
14984 if ((s % this._blockSize) ===
0) {
14985 this._update(buffer)
14993 Hash.prototype.digest = function (enc) {
14994 // Suppose the length of the message M, in bits, is l
14995 var l = this._len *
8
14997 // Append the bit
1 to the end of the message
14998 this._block[this._len % this._blockSize] =
0x80
15000 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
15001 this._block.fill(
0, this._len % this._blockSize +
1)
15003 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
15004 this._update(this._block)
15005 this._block.fill(
0)
15008 // to this append the block which is equal to the number l written in binary
15009 // TODO: handle case where l is
> Math.pow(
2,
29)
15010 this._block.writeInt32BE(l, this._blockSize -
4)
15012 var hash = this._update(this._block) || this._hash()
15014 return enc ? hash.toString(enc) : hash
15017 Hash.prototype._update = function () {
15018 throw new Error('_update must be implemented by subclass')
15021 module.exports = Hash
15023 }).call(this,require("buffer").Buffer)
15024 },{"buffer":
7}],
38:[function(require,module,exports){
15025 var exports = module.exports = function SHA (algorithm) {
15026 algorithm = algorithm.toLowerCase()
15028 var Algorithm = exports[algorithm]
15029 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
15031 return new Algorithm()
15034 exports.sha = require('./sha')
15035 exports.sha1 = require('./sha1')
15036 exports.sha224 = require('./sha224')
15037 exports.sha256 = require('./sha256')
15038 exports.sha384 = require('./sha384')
15039 exports.sha512 = require('./sha512')
15041 },{"./sha":
39,"./sha1":
40,"./sha224":
41,"./sha256":
42,"./sha384":
43,"./sha512":
44}],
39:[function(require,module,exports){
15042 (function (Buffer){
15044 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
15045 * in FIPS PUB
180-
1
15046 * This source code is derived from sha1.js of the same repository.
15047 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
15048 * operation was added.
15051 var inherits = require('inherits')
15052 var Hash = require('./hash')
15054 var W = new Array(
80)
15060 Hash.call(this,
64,
56)
15063 inherits(Sha, Hash)
15065 Sha.prototype.init = function () {
15066 this._a =
0x67452301 |
0
15067 this._b =
0xefcdab89 |
0
15068 this._c =
0x98badcfe |
0
15069 this._d =
0x10325476 |
0
15070 this._e =
0xc3d2e1f0 |
0
15076 * Bitwise rotate a
32-bit number to the left.
15078 function rol (num, cnt) {
15079 return (num << cnt) | (num
>>> (
32 - cnt))
15082 Sha.prototype._update = function (M) {
15094 * SHA-
1 has a bitwise rotate left operation. But, SHA is not
15095 * function calcW() { return rol(W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16],
1) }
15097 function calcW () { return W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16] }
15098 function loop (w, f) {
15101 var t = rol(a,
5) + f + e + w + k
15112 while (j <
16) loop(M.readInt32BE(j *
4), (b & c) | ((~b) & d))
15113 while (j <
20) loop(calcW(), (b & c) | ((~b) & d))
15115 while (j <
40) loop(calcW(), b ^ c ^ d)
15117 while (j <
60) loop(calcW(), (b & c) | (b & d) | (c & d))
15119 while (j <
80) loop(calcW(), b ^ c ^ d)
15121 this._a = (a + this._a) |
0
15122 this._b = (b + this._b) |
0
15123 this._c = (c + this._c) |
0
15124 this._d = (d + this._d) |
0
15125 this._e = (e + this._e) |
0
15128 Sha.prototype._hash = function () {
15129 var H = new Buffer(
20)
15131 H.writeInt32BE(this._a |
0,
0)
15132 H.writeInt32BE(this._b |
0,
4)
15133 H.writeInt32BE(this._c |
0,
8)
15134 H.writeInt32BE(this._d |
0,
12)
15135 H.writeInt32BE(this._e |
0,
16)
15140 module.exports = Sha
15143 }).call(this,require("buffer").Buffer)
15144 },{"./hash":
37,"buffer":
7,"inherits":
35}],
40:[function(require,module,exports){
15145 (function (Buffer){
15147 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
15148 * in FIPS PUB
180-
1
15149 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
15150 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
15151 * Distributed under the BSD License
15152 * See http://pajhome.org.uk/crypt/md5 for details.
15155 var inherits = require('inherits')
15156 var Hash = require('./hash')
15158 var W = new Array(
80)
15164 Hash.call(this,
64,
56)
15167 inherits(Sha1, Hash)
15169 Sha1.prototype.init = function () {
15170 this._a =
0x67452301 |
0
15171 this._b =
0xefcdab89 |
0
15172 this._c =
0x98badcfe |
0
15173 this._d =
0x10325476 |
0
15174 this._e =
0xc3d2e1f0 |
0
15180 * Bitwise rotate a
32-bit number to the left.
15182 function rol (num, cnt) {
15183 return (num << cnt) | (num
>>> (
32 - cnt))
15186 Sha1.prototype._update = function (M) {
15197 function calcW () { return rol(W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16],
1) }
15198 function loop (w, f) {
15201 var t = rol(a,
5) + f + e + w + k
15212 while (j <
16) loop(M.readInt32BE(j *
4), (b & c) | ((~b) & d))
15213 while (j <
20) loop(calcW(), (b & c) | ((~b) & d))
15215 while (j <
40) loop(calcW(), b ^ c ^ d)
15217 while (j <
60) loop(calcW(), (b & c) | (b & d) | (c & d))
15219 while (j <
80) loop(calcW(), b ^ c ^ d)
15221 this._a = (a + this._a) |
0
15222 this._b = (b + this._b) |
0
15223 this._c = (c + this._c) |
0
15224 this._d = (d + this._d) |
0
15225 this._e = (e + this._e) |
0
15228 Sha1.prototype._hash = function () {
15229 var H = new Buffer(
20)
15231 H.writeInt32BE(this._a |
0,
0)
15232 H.writeInt32BE(this._b |
0,
4)
15233 H.writeInt32BE(this._c |
0,
8)
15234 H.writeInt32BE(this._d |
0,
12)
15235 H.writeInt32BE(this._e |
0,
16)
15240 module.exports = Sha1
15242 }).call(this,require("buffer").Buffer)
15243 },{"./hash":
37,"buffer":
7,"inherits":
35}],
41:[function(require,module,exports){
15244 (function (Buffer){
15246 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
15248 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
15249 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
15253 var inherits = require('inherits')
15254 var Sha256 = require('./sha256')
15255 var Hash = require('./hash')
15257 var W = new Array(
64)
15259 function Sha224 () {
15262 this._w = W // new Array(
64)
15264 Hash.call(this,
64,
56)
15267 inherits(Sha224, Sha256)
15269 Sha224.prototype.init = function () {
15270 this._a =
0xc1059ed8 |
0
15271 this._b =
0x367cd507 |
0
15272 this._c =
0x3070dd17 |
0
15273 this._d =
0xf70e5939 |
0
15274 this._e =
0xffc00b31 |
0
15275 this._f =
0x68581511 |
0
15276 this._g =
0x64f98fa7 |
0
15277 this._h =
0xbefa4fa4 |
0
15282 Sha224.prototype._hash = function () {
15283 var H = new Buffer(
28)
15285 H.writeInt32BE(this._a,
0)
15286 H.writeInt32BE(this._b,
4)
15287 H.writeInt32BE(this._c,
8)
15288 H.writeInt32BE(this._d,
12)
15289 H.writeInt32BE(this._e,
16)
15290 H.writeInt32BE(this._f,
20)
15291 H.writeInt32BE(this._g,
24)
15296 module.exports = Sha224
15298 }).call(this,require("buffer").Buffer)
15299 },{"./hash":
37,"./sha256":
42,"buffer":
7,"inherits":
35}],
42:[function(require,module,exports){
15300 (function (Buffer){
15302 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
15304 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
15305 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
15309 var inherits = require('inherits')
15310 var Hash = require('./hash')
15313 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
15314 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
15315 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
15316 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
15317 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
15318 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
15319 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
15320 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
15321 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
15322 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
15323 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
15324 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
15325 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
15326 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
15327 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
15328 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
15331 var W = new Array(
64)
15333 function Sha256 () {
15336 this._w = W // new Array(
64)
15338 Hash.call(this,
64,
56)
15341 inherits(Sha256, Hash)
15343 Sha256.prototype.init = function () {
15344 this._a =
0x6a09e667 |
0
15345 this._b =
0xbb67ae85 |
0
15346 this._c =
0x3c6ef372 |
0
15347 this._d =
0xa54ff53a |
0
15348 this._e =
0x510e527f |
0
15349 this._f =
0x9b05688c |
0
15350 this._g =
0x1f83d9ab |
0
15351 this._h =
0x5be0cd19 |
0
15356 function S (X, n) {
15357 return (X
>>> n) | (X << (
32 - n))
15360 function R (X, n) {
15364 function Ch (x, y, z) {
15365 return ((x & y) ^ ((~x) & z))
15368 function Maj (x, y, z) {
15369 return ((x & y) ^ (x & z) ^ (y & z))
15372 function Sigma0256 (x) {
15373 return (S(x,
2) ^ S(x,
13) ^ S(x,
22))
15376 function Sigma1256 (x) {
15377 return (S(x,
6) ^ S(x,
11) ^ S(x,
25))
15380 function Gamma0256 (x) {
15381 return (S(x,
7) ^ S(x,
18) ^ R(x,
3))
15384 function Gamma1256 (x) {
15385 return (S(x,
17) ^ S(x,
19) ^ R(x,
10))
15388 Sha256.prototype._update = function (M) {
15391 var a = this._a |
0
15392 var b = this._b |
0
15393 var c = this._c |
0
15394 var d = this._d |
0
15395 var e = this._e |
0
15396 var f = this._f |
0
15397 var g = this._g |
0
15398 var h = this._h |
0
15402 function calcW () { return Gamma1256(W[j -
2]) + W[j -
7] + Gamma0256(W[j -
15]) + W[j -
16] }
15403 function loop (w) {
15406 var T1 = h + Sigma1256(e) + Ch(e, f, g) + K[j] + w
15407 var T2 = Sigma0256(a) + Maj(a, b, c)
15421 while (j <
16) loop(M.readInt32BE(j *
4))
15422 while (j <
64) loop(calcW())
15424 this._a = (a + this._a) |
0
15425 this._b = (b + this._b) |
0
15426 this._c = (c + this._c) |
0
15427 this._d = (d + this._d) |
0
15428 this._e = (e + this._e) |
0
15429 this._f = (f + this._f) |
0
15430 this._g = (g + this._g) |
0
15431 this._h = (h + this._h) |
0
15434 Sha256.prototype._hash = function () {
15435 var H = new Buffer(
32)
15437 H.writeInt32BE(this._a,
0)
15438 H.writeInt32BE(this._b,
4)
15439 H.writeInt32BE(this._c,
8)
15440 H.writeInt32BE(this._d,
12)
15441 H.writeInt32BE(this._e,
16)
15442 H.writeInt32BE(this._f,
20)
15443 H.writeInt32BE(this._g,
24)
15444 H.writeInt32BE(this._h,
28)
15449 module.exports = Sha256
15451 }).call(this,require("buffer").Buffer)
15452 },{"./hash":
37,"buffer":
7,"inherits":
35}],
43:[function(require,module,exports){
15453 (function (Buffer){
15454 var inherits = require('inherits')
15455 var SHA512 = require('./sha512')
15456 var Hash = require('./hash')
15458 var W = new Array(
160)
15460 function Sha384 () {
15464 Hash.call(this,
128,
112)
15467 inherits(Sha384, SHA512)
15469 Sha384.prototype.init = function () {
15470 this._a =
0xcbbb9d5d |
0
15471 this._b =
0x629a292a |
0
15472 this._c =
0x9159015a |
0
15473 this._d =
0x152fecd8 |
0
15474 this._e =
0x67332667 |
0
15475 this._f =
0x8eb44a87 |
0
15476 this._g =
0xdb0c2e0d |
0
15477 this._h =
0x47b5481d |
0
15479 this._al =
0xc1059ed8 |
0
15480 this._bl =
0x367cd507 |
0
15481 this._cl =
0x3070dd17 |
0
15482 this._dl =
0xf70e5939 |
0
15483 this._el =
0xffc00b31 |
0
15484 this._fl =
0x68581511 |
0
15485 this._gl =
0x64f98fa7 |
0
15486 this._hl =
0xbefa4fa4 |
0
15491 Sha384.prototype._hash = function () {
15492 var H = new Buffer(
48)
15494 function writeInt64BE (h, l, offset) {
15495 H.writeInt32BE(h, offset)
15496 H.writeInt32BE(l, offset +
4)
15499 writeInt64BE(this._a, this._al,
0)
15500 writeInt64BE(this._b, this._bl,
8)
15501 writeInt64BE(this._c, this._cl,
16)
15502 writeInt64BE(this._d, this._dl,
24)
15503 writeInt64BE(this._e, this._el,
32)
15504 writeInt64BE(this._f, this._fl,
40)
15509 module.exports = Sha384
15511 }).call(this,require("buffer").Buffer)
15512 },{"./hash":
37,"./sha512":
44,"buffer":
7,"inherits":
35}],
44:[function(require,module,exports){
15513 (function (Buffer){
15514 var inherits = require('inherits')
15515 var Hash = require('./hash')
15518 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
15519 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
15520 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
15521 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
15522 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
15523 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
15524 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
15525 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
15526 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
15527 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
15528 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
15529 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
15530 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
15531 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
15532 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
15533 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
15534 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
15535 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
15536 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
15537 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
15538 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
15539 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
15540 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
15541 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
15542 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
15543 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
15544 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
15545 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
15546 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
15547 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
15548 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
15549 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
15550 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
15551 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
15552 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
15553 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
15554 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
15555 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
15556 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
15557 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
15560 var W = new Array(
160)
15562 function Sha512 () {
15566 Hash.call(this,
128,
112)
15569 inherits(Sha512, Hash)
15571 Sha512.prototype.init = function () {
15572 this._a =
0x6a09e667 |
0
15573 this._b =
0xbb67ae85 |
0
15574 this._c =
0x3c6ef372 |
0
15575 this._d =
0xa54ff53a |
0
15576 this._e =
0x510e527f |
0
15577 this._f =
0x9b05688c |
0
15578 this._g =
0x1f83d9ab |
0
15579 this._h =
0x5be0cd19 |
0
15581 this._al =
0xf3bcc908 |
0
15582 this._bl =
0x84caa73b |
0
15583 this._cl =
0xfe94f82b |
0
15584 this._dl =
0x5f1d36f1 |
0
15585 this._el =
0xade682d1 |
0
15586 this._fl =
0x2b3e6c1f |
0
15587 this._gl =
0xfb41bd6b |
0
15588 this._hl =
0x137e2179 |
0
15593 function S (X, Xl, n) {
15594 return (X
>>> n) | (Xl << (
32 - n))
15597 function Ch (x, y, z) {
15598 return ((x & y) ^ ((~x) & z))
15601 function Maj (x, y, z) {
15602 return ((x & y) ^ (x & z) ^ (y & z))
15605 Sha512.prototype._update = function (M) {
15608 var a = this._a |
0
15609 var b = this._b |
0
15610 var c = this._c |
0
15611 var d = this._d |
0
15612 var e = this._e |
0
15613 var f = this._f |
0
15614 var g = this._g |
0
15615 var h = this._h |
0
15617 var al = this._al |
0
15618 var bl = this._bl |
0
15619 var cl = this._cl |
0
15620 var dl = this._dl |
0
15621 var el = this._el |
0
15622 var fl = this._fl |
0
15623 var gl = this._gl |
0
15624 var hl = this._hl |
0
15628 function calcW () {
15629 var x = W[j -
15 *
2]
15630 var xl = W[j -
15 *
2 +
1]
15631 var gamma0 = S(x, xl,
1) ^ S(x, xl,
8) ^ (x
>>> 7)
15632 var gamma0l = S(xl, x,
1) ^ S(xl, x,
8) ^ S(xl, x,
7)
15635 xl = W[j -
2 *
2 +
1]
15636 var gamma1 = S(x, xl,
19) ^ S(xl, x,
29) ^ (x
>>> 6)
15637 var gamma1l = S(xl, x,
19) ^ S(x, xl,
29) ^ S(xl, x,
6)
15639 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
15640 var Wi7 = W[j -
7 *
2]
15641 var Wi7l = W[j -
7 *
2 +
1]
15643 var Wi16 = W[j -
16 *
2]
15644 var Wi16l = W[j -
16 *
2 +
1]
15646 Wil = gamma0l + Wi7l
15647 Wi = gamma0 + Wi7 + ((Wil
>>> 0) < (gamma0l
>>> 0) ?
1 :
0)
15648 Wil = Wil + gamma1l
15649 Wi = Wi + gamma1 + ((Wil
>>> 0) < (gamma1l
>>> 0) ?
1 :
0)
15651 Wi = Wi + Wi16 + ((Wil
>>> 0) < (Wi16l
>>> 0) ?
1 :
0)
15658 var maj = Maj(a, b, c)
15659 var majl = Maj(al, bl, cl)
15661 var sigma0h = S(a, al,
28) ^ S(al, a,
2) ^ S(al, a,
7)
15662 var sigma0l = S(al, a,
28) ^ S(a, al,
2) ^ S(a, al,
7)
15663 var sigma1h = S(e, el,
14) ^ S(e, el,
18) ^ S(el, e,
9)
15664 var sigma1l = S(el, e,
14) ^ S(el, e,
18) ^ S(e, el,
9)
15666 // t1 = h + sigma1 + ch + K[i] + W[i]
15670 var ch = Ch(e, f, g)
15671 var chl = Ch(el, fl, gl)
15673 var t1l = hl + sigma1l
15674 var t1 = h + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0)
15676 t1 = t1 + ch + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0)
15678 t1 = t1 + Ki + ((t1l
>>> 0) < (Kil
>>> 0) ?
1 :
0)
15680 t1 = t1 + Wi + ((t1l
>>> 0) < (Wil
>>> 0) ?
1 :
0)
15682 // t2 = sigma0 + maj
15683 var t2l = sigma0l + majl
15684 var t2 = sigma0h + maj + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0)
15692 el = (dl + t1l) |
0
15693 e = (d + t1 + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0
15700 al = (t1l + t2l) |
0
15701 a = (t1 + t2 + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0
15708 Wi = M.readInt32BE(j *
4)
15709 Wil = M.readInt32BE(j *
4 +
4)
15719 this._al = (this._al + al) |
0
15720 this._bl = (this._bl + bl) |
0
15721 this._cl = (this._cl + cl) |
0
15722 this._dl = (this._dl + dl) |
0
15723 this._el = (this._el + el) |
0
15724 this._fl = (this._fl + fl) |
0
15725 this._gl = (this._gl + gl) |
0
15726 this._hl = (this._hl + hl) |
0
15728 this._a = (this._a + a + ((this._al
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0
15729 this._b = (this._b + b + ((this._bl
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0
15730 this._c = (this._c + c + ((this._cl
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0
15731 this._d = (this._d + d + ((this._dl
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0
15732 this._e = (this._e + e + ((this._el
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0
15733 this._f = (this._f + f + ((this._fl
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0
15734 this._g = (this._g + g + ((this._gl
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0
15735 this._h = (this._h + h + ((this._hl
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0
15738 Sha512.prototype._hash = function () {
15739 var H = new Buffer(
64)
15741 function writeInt64BE (h, l, offset) {
15742 H.writeInt32BE(h, offset)
15743 H.writeInt32BE(l, offset +
4)
15746 writeInt64BE(this._a, this._al,
0)
15747 writeInt64BE(this._b, this._bl,
8)
15748 writeInt64BE(this._c, this._cl,
16)
15749 writeInt64BE(this._d, this._dl,
24)
15750 writeInt64BE(this._e, this._el,
32)
15751 writeInt64BE(this._f, this._fl,
40)
15752 writeInt64BE(this._g, this._gl,
48)
15753 writeInt64BE(this._h, this._hl,
56)
15758 module.exports = Sha512
15760 }).call(this,require(
"buffer").Buffer)
15761 },{
"./hash":
37,
"buffer":
7,
"inherits":
35}],
45:[function(require,module,exports){
15762 (function (Buffer){
15764 var createHash = require('create-hash/browser');
15765 var inherits = require('inherits')
15767 var Transform = require('stream').Transform
15769 var ZEROS = new Buffer(
128)
15772 function Hmac(alg, key) {
15773 Transform.call(this)
15775 if (typeof key === 'string') {
15776 key = new Buffer(key)
15779 var blocksize = (alg === 'sha512' || alg === 'sha384') ?
128 :
64
15784 if (key.length
> blocksize) {
15785 key = createHash(alg).update(key).digest()
15787 } else if (key.length < blocksize) {
15788 key = Buffer.concat([key, ZEROS], blocksize)
15791 var ipad = this._ipad = new Buffer(blocksize)
15792 var opad = this._opad = new Buffer(blocksize)
15794 for (var i =
0; i < blocksize; i++) {
15795 ipad[i] = key[i] ^
0x36
15796 opad[i] = key[i] ^
0x5C
15799 this._hash = createHash(alg).update(ipad)
15802 inherits(Hmac, Transform)
15804 Hmac.prototype.update = function (data, enc) {
15805 this._hash.update(data, enc)
15810 Hmac.prototype._transform = function (data, _, next) {
15811 this._hash.update(data)
15816 Hmac.prototype._flush = function (next) {
15817 this.push(this.digest())
15822 Hmac.prototype.digest = function (enc) {
15823 var h = this._hash.digest()
15825 return createHash(this._alg).update(this._opad).update(h).digest(enc)
15828 module.exports = function createHmac(alg, key) {
15829 return new Hmac(alg, key)
15832 }).call(this,require("buffer").Buffer)
15833 },{"buffer":
7,"create-hash/browser":
32,"inherits":
46,"stream":
26}],
46:[function(require,module,exports){
15834 arguments[
4][
12][
0].apply(exports,arguments)
15835 },{"dup":
12}],
47:[function(require,module,exports){
15836 var assert = require('assert')
15837 var BigInteger = require('bigi')
15839 var Point = require('./point')
15841 function Curve(p, a, b, Gx, Gy, n, h) {
15845 this.G = Point.fromAffine(this, Gx, Gy)
15849 this.infinity = new Point(this, null, null, BigInteger.ZERO)
15852 this.pOverFour = p.add(BigInteger.ONE).shiftRight(
2)
15855 Curve.prototype.pointFromX = function(isOdd, x) {
15856 var alpha = x.pow(
3).add(this.a.multiply(x)).add(this.b).mod(this.p)
15857 var beta = alpha.modPow(this.pOverFour, this.p) // XXX: not compatible with all curves
15860 if (beta.isEven() ^ !isOdd) {
15861 y = this.p.subtract(y) // -y % p
15864 return Point.fromAffine(this, x, y)
15867 Curve.prototype.isInfinity = function(Q) {
15868 if (Q === this.infinity) return true
15870 return Q.z.signum() ===
0 && Q.y.signum() !==
0
15873 Curve.prototype.isOnCurve = function(Q) {
15874 if (this.isInfinity(Q)) return true
15882 // Check that xQ and yQ are integers in the interval [
0, p -
1]
15883 if (x.signum() <
0 || x.compareTo(p)
>=
0) return false
15884 if (y.signum() <
0 || y.compareTo(p)
>=
0) return false
15886 // and check that y^
2 = x^
3 + ax + b (mod p)
15887 var lhs = y.square().mod(p)
15888 var rhs = x.pow(
3).add(a.multiply(x)).add(b).mod(p)
15889 return lhs.equals(rhs)
15893 * Validate an elliptic curve point.
15895 * See SEC
1, section
3.2.2.1: Elliptic Curve Public Key Validation Primitive
15897 Curve.prototype.validate = function(Q) {
15899 assert(!this.isInfinity(Q), 'Point is at infinity')
15900 assert(this.isOnCurve(Q), 'Point is not on the curve')
15902 // Check nQ = O (where Q is a scalar multiple of G)
15903 var nQ = Q.multiply(this.n)
15904 assert(this.isInfinity(nQ), 'Point is not a scalar multiple of G')
15909 module.exports = Curve
15911 },{"./point":
51,"assert":
5,"bigi":
3}],
48:[function(require,module,exports){
15914 "p": "fffffffdffffffffffffffffffffffff",
15915 "a": "fffffffdfffffffffffffffffffffffc",
15916 "b": "e87579c11079f43dd824993c2cee5ed3",
15917 "n": "fffffffe0000000075a30d1b9038a115",
15919 "Gx": "
161ff7528b899b2d0c28607ca52c5b86",
15920 "Gy": "cf5ac8395bafeb13c02da292dded7a83"
15923 "p": "fffffffffffffffffffffffffffffffeffffac73",
15926 "n": "
0100000000000000000001b8fa16dfab9aca16b6b3",
15928 "Gx": "
3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",
15929 "Gy": "
938cf935318fdced6bc28286531733c3f03c4fee"
15932 "p": "ffffffffffffffffffffffffffffffff7fffffff",
15933 "a": "ffffffffffffffffffffffffffffffff7ffffffc",
15934 "b": "
1c97befc54bd7a8b65acf89f81d4d4adc565fa45",
15935 "n": "
0100000000000000000001f4c8f927aed3ca752257",
15937 "Gx": "
4a96b5688ef573284664698968c38bb913cbfc82",
15938 "Gy": "
23a628553168947d59dcc912042351377ac5fb32"
15941 "p": "fffffffffffffffffffffffffffffffffffffffeffffee37",
15944 "n": "fffffffffffffffffffffffe26f2fc170f69466a74defd8d",
15946 "Gx": "db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",
15947 "Gy": "
9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"
15950 "p": "fffffffffffffffffffffffffffffffeffffffffffffffff",
15951 "a": "fffffffffffffffffffffffffffffffefffffffffffffffc",
15952 "b": "
64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",
15953 "n": "ffffffffffffffffffffffff99def836146bc9b1b4d22831",
15955 "Gx": "
188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",
15956 "Gy": "
07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
15959 "p": "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",
15962 "n": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",
15964 "Gx": "
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
15965 "Gy": "
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
15968 "p": "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
15969 "a": "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",
15970 "b": "
5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",
15971 "n": "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
15973 "Gx": "
6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",
15974 "Gy": "
4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"
15978 },{}],
49:[function(require,module,exports){
15979 var Point = require('./point')
15980 var Curve = require('./curve')
15982 var getCurveByName = require('./names')
15987 getCurveByName: getCurveByName
15990 },{"./curve":
47,"./names":
50,"./point":
51}],
50:[function(require,module,exports){
15991 var BigInteger = require('bigi')
15993 var curves = require('./curves')
15994 var Curve = require('./curve')
15996 function getCurveByName(name) {
15997 var curve = curves[name]
15998 if (!curve) return null
16000 var p = new BigInteger(curve.p,
16)
16001 var a = new BigInteger(curve.a,
16)
16002 var b = new BigInteger(curve.b,
16)
16003 var n = new BigInteger(curve.n,
16)
16004 var h = new BigInteger(curve.h,
16)
16005 var Gx = new BigInteger(curve.Gx,
16)
16006 var Gy = new BigInteger(curve.Gy,
16)
16008 return new Curve(p, a, b, Gx, Gy, n, h)
16011 module.exports = getCurveByName
16013 },{"./curve":
47,"./curves":
48,"bigi":
3}],
51:[function(require,module,exports){
16014 (function (Buffer){
16015 var assert = require('assert')
16016 var BigInteger = require('bigi')
16018 var THREE = BigInteger.valueOf(
3)
16020 function Point(curve, x, y, z) {
16021 assert.notStrictEqual(z, undefined, 'Missing Z coordinate')
16029 this.compressed = true
16032 Object.defineProperty(Point.prototype, 'zInv', {
16034 if (this._zInv === null) {
16035 this._zInv = this.z.modInverse(this.curve.p)
16042 Object.defineProperty(Point.prototype, 'affineX', {
16044 return this.x.multiply(this.zInv).mod(this.curve.p)
16048 Object.defineProperty(Point.prototype, 'affineY', {
16050 return this.y.multiply(this.zInv).mod(this.curve.p)
16054 Point.fromAffine = function(curve, x, y) {
16055 return new Point(curve, x, y, BigInteger.ONE)
16058 Point.prototype.equals = function(other) {
16059 if (other === this) return true
16060 if (this.curve.isInfinity(this)) return this.curve.isInfinity(other)
16061 if (this.curve.isInfinity(other)) return this.curve.isInfinity(this)
16063 // u = Y2 * Z1 - Y1 * Z2
16064 var u = other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p)
16066 if (u.signum() !==
0) return false
16068 // v = X2 * Z1 - X1 * Z2
16069 var v = other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p)
16071 return v.signum() ===
0
16074 Point.prototype.negate = function() {
16075 var y = this.curve.p.subtract(this.y)
16077 return new Point(this.curve, this.x, y, this.z)
16080 Point.prototype.add = function(b) {
16081 if (this.curve.isInfinity(this)) return b
16082 if (this.curve.isInfinity(b)) return this
16089 // u = Y2 * Z1 - Y1 * Z2
16090 var u = y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p)
16091 // v = X2 * Z1 - X1 * Z2
16092 var v = x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p)
16094 if (v.signum() ===
0) {
16095 if (u.signum() ===
0) {
16096 return this.twice() // this == b, so double
16099 return this.curve.infinity // this = -b, so infinity
16102 var v2 = v.square()
16103 var v3 = v2.multiply(v)
16104 var x1v2 = x1.multiply(v2)
16105 var zu2 = u.square().multiply(this.z)
16107 // x3 = v * (z2 * (z1 * u^
2 -
2 * x1 * v^
2) - v^
3)
16108 var x3 = zu2.subtract(x1v2.shiftLeft(
1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p)
16109 // y3 = z2 * (
3 * x1 * u * v^
2 - y1 * v^
3 - z1 * u^
3) + u * v^
3
16110 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)
16111 // z3 = v^
3 * z1 * z2
16112 var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.p)
16114 return new Point(this.curve, x3, y3, z3)
16117 Point.prototype.twice = function() {
16118 if (this.curve.isInfinity(this)) return this
16119 if (this.y.signum() ===
0) return this.curve.infinity
16124 var y1z1 = y1.multiply(this.z)
16125 var y1sqz1 = y1z1.multiply(y1).mod(this.curve.p)
16126 var a = this.curve.a
16128 // w =
3 * x1^
2 + a * z1^
2
16129 var w = x1.square().multiply(THREE)
16131 if (a.signum() !==
0) {
16132 w = w.add(this.z.square().multiply(a))
16135 w = w.mod(this.curve.p)
16136 // x3 =
2 * y1 * z1 * (w^
2 -
8 * x1 * y1^
2 * z1)
16137 var x3 = w.square().subtract(x1.shiftLeft(
3).multiply(y1sqz1)).shiftLeft(
1).multiply(y1z1).mod(this.curve.p)
16138 // y3 =
4 * y1^
2 * z1 * (
3 * w * x1 -
2 * y1^
2 * z1) - w^
3
16139 var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(
1)).shiftLeft(
2).multiply(y1sqz1).subtract(w.pow(
3)).mod(this.curve.p)
16140 // z3 =
8 * (y1 * z1)^
3
16141 var z3 = y1z1.pow(
3).shiftLeft(
3).mod(this.curve.p)
16143 return new Point(this.curve, x3, y3, z3)
16146 // Simple NAF (Non-Adjacent Form) multiplication algorithm
16147 // TODO: modularize the multiplication algorithm
16148 Point.prototype.multiply = function(k) {
16149 if (this.curve.isInfinity(this)) return this
16150 if (k.signum() ===
0) return this.curve.infinity
16153 var h = e.multiply(THREE)
16155 var neg = this.negate()
16158 for (var i = h.bitLength() -
2; i
> 0; --i) {
16161 var hBit = h.testBit(i)
16162 var eBit = e.testBit(i)
16164 if (hBit != eBit) {
16165 R = R.add(hBit ? this : neg)
16172 // Compute this*j + x*k (simultaneous multiplication)
16173 Point.prototype.multiplyTwo = function(j, x, k) {
16176 if (j.bitLength()
> k.bitLength())
16177 i = j.bitLength() -
1
16179 i = k.bitLength() -
1
16181 var R = this.curve.infinity
16182 var both = this.add(x)
16187 var jBit = j.testBit(i)
16188 var kBit = k.testBit(i)
16209 Point.prototype.getEncoded = function(compressed) {
16210 if (compressed == undefined) compressed = this.compressed
16211 if (this.curve.isInfinity(this)) return new Buffer('
00', 'hex') // Infinity point encoded is simply '
00'
16213 var x = this.affineX
16214 var y = this.affineY
16218 // Determine size of q in bytes
16219 var byteLength = Math.floor((this.curve.p.bitLength() +
7) /
8)
16223 buffer = new Buffer(
1 + byteLength)
16224 buffer.writeUInt8(y.isEven() ?
0x02 :
0x03,
0)
16228 buffer = new Buffer(
1 + byteLength + byteLength)
16229 buffer.writeUInt8(
0x04,
0)
16231 y.toBuffer(byteLength).copy(buffer,
1 + byteLength)
16234 x.toBuffer(byteLength).copy(buffer,
1)
16239 Point.decodeFrom = function(curve, buffer) {
16240 var type = buffer.readUInt8(
0)
16241 var compressed = (type !==
4)
16243 var byteLength = Math.floor((curve.p.bitLength() +
7) /
8)
16244 var x = BigInteger.fromBuffer(buffer.slice(
1,
1 + byteLength))
16248 assert.equal(buffer.length, byteLength +
1, 'Invalid sequence length')
16249 assert(type ===
0x02 || type ===
0x03, 'Invalid sequence tag')
16251 var isOdd = (type ===
0x03)
16252 Q = curve.pointFromX(isOdd, x)
16255 assert.equal(buffer.length,
1 + byteLength + byteLength, 'Invalid sequence length')
16257 var y = BigInteger.fromBuffer(buffer.slice(
1 + byteLength))
16258 Q = Point.fromAffine(curve, x, y)
16261 Q.compressed = compressed
16265 Point.prototype.toString = function () {
16266 if (this.curve.isInfinity(this)) return '(INFINITY)'
16268 return '(' + this.affineX.toString() + ',' + this.affineY.toString() + ')'
16271 module.exports = Point
16273 }).call(this,require("buffer").Buffer)
16274 },{"assert":
5,"bigi":
3,"buffer":
7}],
52:[function(require,module,exports){
16275 (function (process,global,Buffer){
16278 var crypto = global.crypto || global.msCrypto
16279 if(crypto && crypto.getRandomValues) {
16280 module.exports = randomBytes;
16282 module.exports = oldBrowser;
16284 function randomBytes(size, cb) {
16285 var bytes = new Buffer(size); //in browserify, this is an extended Uint8Array
16286 /* This will not work in older browsers.
16287 * See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
16290 crypto.getRandomValues(bytes);
16291 if (typeof cb === 'function') {
16292 return process.nextTick(function () {
16298 function oldBrowser() {
16300 'secure random number generation not supported by this browser\n'+
16301 'use chrome, FireFox or Internet Explorer
11'
16305 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer)
16306 },{"_process":
14,"buffer":
7}],
53:[function(require,module,exports){
16307 (function (Buffer){
16310 function getFunctionName(fn) {
16311 return fn.name || fn.toString().match(/function (.*?)\s*\(/)[
1];
16314 function getTypeTypeName(type) {
16315 if (nativeTypes.Function(type)) {
16316 type = type.toJSON ? type.toJSON() : getFunctionName(type);
16318 if (nativeTypes.Object(type)) return JSON.stringify(type);
16323 function getValueTypeName(value) {
16324 if (nativeTypes.Null(value)) return '';
16326 return getFunctionName(value.constructor);
16329 function tfErrorString(type, value) {
16330 var typeTypeName = getTypeTypeName(type);
16331 var valueTypeName = getValueTypeName(value);
16333 return 'Expected ' + typeTypeName + ', got ' + (valueTypeName && valueTypeName + ' ') + JSON.stringify(value);
16336 function tfPropertyErrorString(type, name, value) {
16337 return tfErrorString('property \"' + name + '\" of type ' + getTypeTypeName(type), value);
16340 var nativeTypes = {
16341 Array: (function (_Array) {
16342 function Array(_x) {
16343 return _Array.apply(this, arguments);
16346 Array.toString = function () {
16347 return _Array.toString();
16351 })(function (value) {
16352 return value !== null && value !== undefined && value.constructor === Array;
16354 Boolean: function Boolean(value) {
16355 return typeof value === 'boolean';
16357 Buffer: (function (_Buffer) {
16358 function Buffer(_x2) {
16359 return _Buffer.apply(this, arguments);
16362 Buffer.toString = function () {
16363 return _Buffer.toString();
16367 })(function (value) {
16368 return Buffer.isBuffer(value);
16370 Function: function Function(value) {
16371 return typeof value === 'function';
16373 Null: function Null(value) {
16374 return value === undefined || value === null;
16376 Number: function Number(value) {
16377 return typeof value === 'number';
16379 Object: function Object(value) {
16380 return typeof value === 'object';
16382 String: function String(value) {
16383 return typeof value === 'string';
16390 function tJSON(type) {
16391 return type && type.toJSON ? type.toJSON() : type;
16394 function sJSON(type) {
16395 var json = tJSON(type);
16396 return nativeTypes.Object(json) ? JSON.stringify(json) : json;
16400 arrayOf: function arrayOf(type) {
16401 function arrayOf(value, strict) {
16403 return nativeTypes.Array(value) && value.every(function (x) {
16404 return typeforce(type, x, strict);
16410 arrayOf.toJSON = function () {
16411 return [tJSON(type)];
16417 maybe: function maybe(type) {
16418 function maybe(value, strict) {
16419 return nativeTypes.Null(value) || typeforce(type, value, strict);
16421 maybe.toJSON = function () {
16422 return '?' + sJSON(type);
16428 object: function object(type) {
16429 function object(value, strict) {
16430 typeforce(nativeTypes.Object, value, strict);
16432 var propertyName, propertyType, propertyValue;
16435 for (propertyName in type) {
16436 propertyType = type[propertyName];
16437 propertyValue = value[propertyName];
16439 typeforce(propertyType, propertyValue, strict);
16442 throw new TypeError(tfPropertyErrorString(propertyType, propertyName, propertyValue));
16446 for (propertyName in value) {
16447 if (type[propertyName]) continue;
16449 throw new TypeError('Unexpected property "' + propertyName + '"');
16455 object.toJSON = function () {
16462 oneOf: function oneOf() {
16463 for (var _len = arguments.length, types = Array(_len), _key =
0; _key < _len; _key++) {
16464 types[_key] = arguments[_key];
16467 function oneOf(value, strict) {
16468 return types.some(function (type) {
16470 return typeforce(type, value, strict);
16476 oneOf.toJSON = function () {
16477 return types.map(sJSON).join('|');
16483 quacksLike: function quacksLike(type) {
16484 function quacksLike(value, strict) {
16485 return type === getValueTypeName(value);
16487 quacksLike.toJSON = function () {
16494 tuple: function tuple() {
16495 for (var _len2 = arguments.length, types = Array(_len2), _key2 =
0; _key2 < _len2; _key2++) {
16496 types[_key2] = arguments[_key2];
16499 function tuple(value, strict) {
16500 return types.every(function (type, i) {
16501 return typeforce(type, value[i], strict);
16504 tuple.toJSON = function () {
16505 return '(' + types.map(sJSON).join(', ') + ')';
16511 value: function value(expected) {
16512 function value(actual) {
16513 return actual === expected;
16515 value.toJSON = function () {
16523 function compile(type) {
16524 if (nativeTypes.String(type)) {
16525 if (type[
0] === '?') return otherTypes.maybe(compile(type.slice(
1)));
16527 return nativeTypes[type] || otherTypes.quacksLike(type);
16528 } else if (type && nativeTypes.Object(type)) {
16529 if (nativeTypes.Array(type)) return otherTypes.arrayOf(compile(type[
0]));
16533 for (var propertyName in type) {
16534 compiled[propertyName] = compile(type[propertyName]);
16537 return otherTypes.object(compiled);
16538 } else if (nativeTypes.Function(type)) {
16542 return otherTypes.value(type);
16545 function typeforce(_x3, _x4, _x5) {
16548 _function: while (_again) {
16554 if (nativeTypes.Function(type)) {
16555 if (type(value, strict)) return true;
16557 throw new TypeError(tfErrorString(type, value));
16561 _x3 = compile(type);
16565 continue _function;
16569 // assign all types to typeforce function
16571 Object.keys(nativeTypes).forEach(function (typeName) {
16572 var nativeType = nativeTypes[typeName];
16573 nativeType.toJSON = function () {
16577 typeforce[typeName] = nativeType;
16580 for (typeName in otherTypes) {
16581 typeforce[typeName] = otherTypes[typeName];
16584 module.exports = typeforce;
16585 module.exports.compile = compile;
16586 }).call(this,require("buffer").Buffer)
16587 },{"buffer":
7}],
54:[function(require,module,exports){
16588 (function (Buffer){
16589 var assert = require('assert')
16590 var base58check = require('bs58check')
16591 var typeForce = require('typeforce')
16592 var networks = require('./networks')
16593 var scripts = require('./scripts')
16595 function findScriptTypeByVersion (version) {
16596 for (var networkName in networks) {
16597 var network = networks[networkName]
16599 if (version === network.pubKeyHash) return 'pubkeyhash'
16600 if (version === network.scriptHash) return 'scripthash'
16604 function Address (hash, version) {
16605 typeForce('Buffer', hash)
16607 assert.strictEqual(hash.length,
20, 'Invalid hash length')
16608 assert.strictEqual(version &
0xff, version, 'Invalid version byte')
16611 this.version = version
16614 Address.fromBase58Check = function (string) {
16615 var payload = base58check.decode(string)
16616 var version = payload.readUInt8(
0)
16617 var hash = payload.slice(
1)
16619 return new Address(hash, version)
16622 Address.fromOutputScript = function (script, network) {
16623 network = network || networks.bitcoin
16625 if (scripts.isPubKeyHashOutput(script)) return new Address(script.chunks[
2], network.pubKeyHash)
16626 if (scripts.isScriptHashOutput(script)) return new Address(script.chunks[
1], network.scriptHash)
16628 assert(false, script.toASM() + ' has no matching Address')
16631 Address.prototype.toBase58Check = function () {
16632 var payload = new Buffer(
21)
16633 payload.writeUInt8(this.version,
0)
16634 this.hash.copy(payload,
1)
16636 return base58check.encode(payload)
16639 Address.prototype.toOutputScript = function () {
16640 var scriptType = findScriptTypeByVersion(this.version)
16642 if (scriptType === 'pubkeyhash') return scripts.pubKeyHashOutput(this.hash)
16643 if (scriptType === 'scripthash') return scripts.scriptHashOutput(this.hash)
16645 assert(false, this.toString() + ' has no matching Script')
16648 Address.prototype.toString = Address.prototype.toBase58Check
16650 module.exports = Address
16652 }).call(this,require("buffer").Buffer)
16653 },{"./networks":
66,"./scripts":
69,"assert":
5,"bs58check":
31,"buffer":
7,"typeforce":
53}],
55:[function(require,module,exports){
16654 var bs58check = require('bs58check')
16656 function decode () {
16657 console.warn('bs58check will be removed in
2.0.0. require("bs58check") instead.')
16659 return bs58check.decode.apply(undefined, arguments)
16662 function encode () {
16663 console.warn('bs58check will be removed in
2.0.0. require("bs58check") instead.')
16665 return bs58check.encode.apply(undefined, arguments)
16673 },{"bs58check":
31}],
56:[function(require,module,exports){
16674 (function (Buffer){
16675 var assert = require('assert')
16676 var bufferutils = require('./bufferutils')
16677 var crypto = require('./crypto')
16679 var Transaction = require('./transaction')
16681 function Block () {
16683 this.prevHash = null
16684 this.merkleRoot = null
16690 Block.fromBuffer = function (buffer) {
16691 assert(buffer.length
>=
80, 'Buffer too small (<
80 bytes)')
16694 function readSlice (n) {
16696 return buffer.slice(offset - n, offset)
16699 function readUInt32 () {
16700 var i = buffer.readUInt32LE(offset)
16705 var block = new Block()
16706 block.version = readUInt32()
16707 block.prevHash = readSlice(
32)
16708 block.merkleRoot = readSlice(
32)
16709 block.timestamp = readUInt32()
16710 block.bits = readUInt32()
16711 block.nonce = readUInt32()
16713 if (buffer.length ===
80) return block
16715 function readVarInt () {
16716 var vi = bufferutils.readVarInt(buffer, offset)
16721 // FIXME: poor performance
16722 function readTransaction () {
16723 var tx = Transaction.fromBuffer(buffer.slice(offset), true)
16725 offset += tx.toBuffer().length
16729 var nTransactions = readVarInt()
16730 block.transactions = []
16732 for (var i =
0; i < nTransactions; ++i) {
16733 var tx = readTransaction()
16734 block.transactions.push(tx)
16740 Block.fromHex = function (hex) {
16741 return Block.fromBuffer(new Buffer(hex, 'hex'))
16744 Block.prototype.getHash = function () {
16745 return crypto.hash256(this.toBuffer(true))
16748 Block.prototype.getId = function () {
16749 return bufferutils.reverse(this.getHash()).toString('hex')
16752 Block.prototype.getUTCDate = function () {
16753 var date = new Date(
0) // epoch
16754 date.setUTCSeconds(this.timestamp)
16759 Block.prototype.toBuffer = function (headersOnly) {
16760 var buffer = new Buffer(
80)
16763 function writeSlice (slice) {
16764 slice.copy(buffer, offset)
16765 offset += slice.length
16768 function writeUInt32 (i) {
16769 buffer.writeUInt32LE(i, offset)
16773 writeUInt32(this.version)
16774 writeSlice(this.prevHash)
16775 writeSlice(this.merkleRoot)
16776 writeUInt32(this.timestamp)
16777 writeUInt32(this.bits)
16778 writeUInt32(this.nonce)
16780 if (headersOnly || !this.transactions) return buffer
16782 var txLenBuffer = bufferutils.varIntBuffer(this.transactions.length)
16783 var txBuffers = this.transactions.map(function (tx) {
16784 return tx.toBuffer()
16787 return Buffer.concat([buffer, txLenBuffer].concat(txBuffers))
16790 Block.prototype.toHex = function (headersOnly) {
16791 return this.toBuffer(headersOnly).toString('hex')
16794 module.exports = Block
16796 }).call(this,require("buffer").Buffer)
16797 },{"./bufferutils":
57,"./crypto":
58,"./transaction":
70,"assert":
5,"buffer":
7}],
57:[function(require,module,exports){
16798 (function (Buffer){
16799 var assert = require('assert')
16800 var opcodes = require('./opcodes')
16802 // https://github.com/feross/buffer/blob/master/index.js#L1127
16803 function verifuint (value, max) {
16804 assert(typeof value === 'number', 'cannot write a non-number as a number')
16805 assert(value
>=
0, 'specified a negative value for writing an unsigned value')
16806 assert(value <= max, 'value is larger than maximum value for type')
16807 assert(Math.floor(value) === value, 'value has a fractional component')
16810 function pushDataSize (i) {
16811 return i < opcodes.OP_PUSHDATA1 ?
1
16817 function readPushDataInt (buffer, offset) {
16818 var opcode = buffer.readUInt8(offset)
16822 if (opcode < opcodes.OP_PUSHDATA1) {
16827 } else if (opcode === opcodes.OP_PUSHDATA1) {
16828 if (offset +
2 > buffer.length) return null
16829 number = buffer.readUInt8(offset +
1)
16833 } else if (opcode === opcodes.OP_PUSHDATA2) {
16834 if (offset +
3 > buffer.length) return null
16835 number = buffer.readUInt16LE(offset +
1)
16840 if (offset +
5 > buffer.length) return null
16841 assert.equal(opcode, opcodes.OP_PUSHDATA4, 'Unexpected opcode')
16843 number = buffer.readUInt32LE(offset +
1)
16854 function readUInt64LE (buffer, offset) {
16855 var a = buffer.readUInt32LE(offset)
16856 var b = buffer.readUInt32LE(offset +
4)
16859 verifuint(b + a,
0x001fffffffffffff)
16864 function readVarInt (buffer, offset) {
16865 var t = buffer.readUInt8(offset)
16874 } else if (t <
254) {
16875 number = buffer.readUInt16LE(offset +
1)
16879 } else if (t <
255) {
16880 number = buffer.readUInt32LE(offset +
1)
16885 number = readUInt64LE(buffer, offset +
1)
16895 function writePushDataInt (buffer, number, offset) {
16896 var size = pushDataSize(number)
16900 buffer.writeUInt8(number, offset)
16903 } else if (size ===
2) {
16904 buffer.writeUInt8(opcodes.OP_PUSHDATA1, offset)
16905 buffer.writeUInt8(number, offset +
1)
16908 } else if (size ===
3) {
16909 buffer.writeUInt8(opcodes.OP_PUSHDATA2, offset)
16910 buffer.writeUInt16LE(number, offset +
1)
16914 buffer.writeUInt8(opcodes.OP_PUSHDATA4, offset)
16915 buffer.writeUInt32LE(number, offset +
1)
16921 function writeUInt64LE (buffer, value, offset) {
16922 verifuint(value,
0x001fffffffffffff)
16924 buffer.writeInt32LE(value & -
1, offset)
16925 buffer.writeUInt32LE(Math.floor(value /
0x100000000), offset +
4)
16928 function varIntSize (i) {
16931 : i <
0x100000000 ?
5
16935 function writeVarInt (buffer, number, offset) {
16936 var size = varIntSize(number)
16940 buffer.writeUInt8(number, offset)
16943 } else if (size ===
3) {
16944 buffer.writeUInt8(
253, offset)
16945 buffer.writeUInt16LE(number, offset +
1)
16948 } else if (size ===
5) {
16949 buffer.writeUInt8(
254, offset)
16950 buffer.writeUInt32LE(number, offset +
1)
16954 buffer.writeUInt8(
255, offset)
16955 writeUInt64LE(buffer, number, offset +
1)
16961 function varIntBuffer (i) {
16962 var size = varIntSize(i)
16963 var buffer = new Buffer(size)
16964 writeVarInt(buffer, i,
0)
16969 function reverse (buffer) {
16970 var buffer2 = new Buffer(buffer)
16971 Array.prototype.reverse.call(buffer2)
16976 pushDataSize: pushDataSize,
16977 readPushDataInt: readPushDataInt,
16978 readUInt64LE: readUInt64LE,
16979 readVarInt: readVarInt,
16981 varIntBuffer: varIntBuffer,
16982 varIntSize: varIntSize,
16983 writePushDataInt: writePushDataInt,
16984 writeUInt64LE: writeUInt64LE,
16985 writeVarInt: writeVarInt
16988 }).call(this,require("buffer").Buffer)
16989 },{"./opcodes":
67,"assert":
5,"buffer":
7}],
58:[function(require,module,exports){
16990 var createHash = require('create-hash')
16992 function hash160 (buffer) {
16993 return ripemd160(sha256(buffer))
16996 function hash256 (buffer) {
16997 return sha256(sha256(buffer))
17000 function ripemd160 (buffer) {
17001 return createHash('rmd160').update(buffer).digest()
17004 function sha1 (buffer) {
17005 return createHash('sha1').update(buffer).digest()
17008 function sha256 (buffer) {
17009 return createHash('sha256').update(buffer).digest()
17012 // FIXME: Name not consistent with others
17013 var createHmac = require('create-hmac')
17015 function HmacSHA256 (buffer, secret) {
17016 console.warn('Hmac* functions are deprecated for removal in
2.0.0, use node crypto instead')
17017 return createHmac('sha256', secret).update(buffer).digest()
17020 function HmacSHA512 (buffer, secret) {
17021 console.warn('Hmac* functions are deprecated for removal in
2.0.0, use node crypto instead')
17022 return createHmac('sha512', secret).update(buffer).digest()
17026 ripemd160: ripemd160,
17031 HmacSHA256: HmacSHA256,
17032 HmacSHA512: HmacSHA512
17035 },{"create-hash":
32,"create-hmac":
45}],
59:[function(require,module,exports){
17036 (function (Buffer){
17037 var assert = require('assert')
17038 var createHmac = require('create-hmac')
17039 var typeForce = require('typeforce')
17041 var BigInteger = require('bigi')
17042 var ECSignature = require('./ecsignature')
17044 var ZERO = new Buffer([
0])
17045 var ONE = new Buffer([
1])
17047 // https://tools.ietf.org/html/rfc6979#section-
3.2
17048 function deterministicGenerateK (curve, hash, d, checkSig) {
17049 typeForce('Buffer', hash)
17050 typeForce('BigInteger', d)
17052 // FIXME: remove/uncomment for
2.0.0
17053 // typeForce('Function', checkSig)
17055 if (typeof checkSig !== 'function') {
17056 console.warn('deterministicGenerateK requires a checkSig callback in
2.0.0, see #
337 for more information')
17058 checkSig = function (k) {
17061 var e = BigInteger.fromBuffer(hash)
17063 var Q = G.multiply(k)
17065 if (curve.isInfinity(Q))
17068 var r = Q.affineX.mod(n)
17069 if (r.signum() ===
0)
17072 var s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
17073 if (s.signum() ===
0)
17081 assert.equal(hash.length,
32, 'Hash must be
256 bit')
17083 var x = d.toBuffer(
32)
17084 var k = new Buffer(
32)
17085 var v = new Buffer(
32)
17087 // Step A, ignored as hash already provided
17095 k = createHmac('sha256', k)
17103 v = createHmac('sha256', k).update(v).digest()
17106 k = createHmac('sha256', k)
17114 v = createHmac('sha256', k).update(v).digest()
17116 // Step H1/H2a, ignored as tlen === qlen (
256 bit)
17118 v = createHmac('sha256', k).update(v).digest()
17120 var T = BigInteger.fromBuffer(v)
17122 // Step H3, repeat until T is within the interval [
1, n -
1] and is suitable for ECDSA
17123 while ((T.signum() <=
0) || (T.compareTo(curve.n)
>=
0) || !checkSig(T)) {
17124 k = createHmac('sha256', k)
17129 v = createHmac('sha256', k).update(v).digest()
17131 // Step H1/H2a, again, ignored as tlen === qlen (
256 bit)
17133 v = createHmac('sha256', k).update(v).digest()
17134 T = BigInteger.fromBuffer(v)
17140 function sign (curve, hash, d) {
17143 var e = BigInteger.fromBuffer(hash)
17147 deterministicGenerateK(curve, hash, d, function (k) {
17148 var Q = G.multiply(k)
17150 if (curve.isInfinity(Q))
17153 r = Q.affineX.mod(n)
17154 if (r.signum() ===
0)
17157 s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
17158 if (s.signum() ===
0)
17164 var N_OVER_TWO = n.shiftRight(
1)
17166 // enforce low S values, see bip62: 'low s values in signatures'
17167 if (s.compareTo(N_OVER_TWO)
> 0) {
17171 return new ECSignature(r, s)
17174 function verifyRaw (curve, e, signature, Q) {
17178 var r = signature.r
17179 var s = signature.s
17181 //
1.4.1 Enforce r and s are both integers in the interval [
1, n −
1]
17182 if (r.signum() <=
0 || r.compareTo(n)
>=
0) return false
17183 if (s.signum() <=
0 || s.compareTo(n)
>=
0) return false
17186 var c = s.modInverse(n)
17188 //
1.4.4 Compute u1 = es^−
1 mod n
17189 // u2 = rs^−
1 mod n
17190 var u1 = e.multiply(c).mod(n)
17191 var u2 = r.multiply(c).mod(n)
17193 //
1.4.5 Compute R = (xR, yR) = u1G + u2Q
17194 var R = G.multiplyTwo(u1, Q, u2)
17195 var v = R.affineX.mod(n)
17197 //
1.4.5 (cont.) Enforce R is not at infinity
17198 if (curve.isInfinity(R)) return false
17200 //
1.4.8 If v = r, output "valid", and if v != r, output "invalid"
17204 function verify (curve, hash, signature, Q) {
17205 //
1.4.2 H = Hash(M), already done by the user
17207 var e = BigInteger.fromBuffer(hash)
17209 return verifyRaw(curve, e, signature, Q)
17213 * Recover a public key from a signature.
17215 * See SEC
1: Elliptic Curve Cryptography, section
4.1.6, "Public
17216 * Key Recovery Operation".
17218 * http://www.secg.org/download/aid-
780/sec1-v2.pdf
17220 function recoverPubKey (curve, e, signature, i) {
17221 assert.strictEqual(i &
3, i, 'Recovery param is more than two bits')
17226 var r = signature.r
17227 var s = signature.s
17229 assert(r.signum()
> 0 && r.compareTo(n) <
0, 'Invalid r value')
17230 assert(s.signum()
> 0 && s.compareTo(n) <
0, 'Invalid s value')
17232 // A set LSB signifies that the y-coordinate is odd
17235 // The more significant bit specifies whether we should use the
17236 // first or second candidate key.
17237 var isSecondKey = i
>> 1
17239 //
1.1 Let x = r + jn
17240 var x = isSecondKey ? r.add(n) : r
17241 var R = curve.pointFromX(isYOdd, x)
17243 //
1.4 Check that nR is at infinity
17244 var nR = R.multiply(n)
17245 assert(curve.isInfinity(nR), 'nR is not a valid curve point')
17247 // Compute -e from e
17248 var eNeg = e.negate().mod(n)
17250 //
1.6.1 Compute Q = r^-
1 (sR - eG)
17251 // Q = r^-
1 (sR + -eG)
17252 var rInv = r.modInverse(n)
17254 var Q = R.multiplyTwo(s, G, eNeg).multiply(rInv)
17261 * Calculate pubkey extraction parameter.
17263 * When extracting a pubkey from a signature, we have to
17264 * distinguish four different cases. Rather than putting this
17265 * burden on the verifier, Bitcoin includes a
2-bit value with the
17268 * This function simply tries all four cases and returns the value
17269 * that resulted in a successful pubkey recovery.
17271 function calcPubKeyRecoveryParam (curve, e, signature, Q) {
17272 for (var i =
0; i <
4; i++) {
17273 var Qprime = recoverPubKey(curve, e, signature, i)
17276 if (Qprime.equals(Q)) {
17281 throw new Error('Unable to find valid recovery factor')
17285 calcPubKeyRecoveryParam: calcPubKeyRecoveryParam,
17286 deterministicGenerateK: deterministicGenerateK,
17287 recoverPubKey: recoverPubKey,
17290 verifyRaw: verifyRaw
17293 }).call(this,require(
"buffer").Buffer)
17294 },{
"./ecsignature":
62,
"assert":
5,
"bigi":
3,
"buffer":
7,
"create-hmac":
45,
"typeforce":
53}],
60:[function(require,module,exports){
17295 (function (Buffer){
17296 var assert = require('assert')
17297 var base58check = require('bs58check')
17298 var ecdsa = require('./ecdsa')
17299 var networks = require('./networks')
17300 var randomBytes = require('randombytes')
17301 var typeForce = require('typeforce')
17303 var BigInteger = require('bigi')
17304 var ECPubKey = require('./ecpubkey')
17306 var ecurve = require('ecurve')
17307 var secp256k1 = ecurve.getCurveByName('secp256k1')
17309 function ECKey (d, compressed) {
17310 assert(d.signum()
> 0, 'Private key must be greater than
0')
17311 assert(d.compareTo(ECKey.curve.n) <
0, 'Private key must be less than the curve order')
17313 var Q = ECKey.curve.G.multiply(d)
17316 this.pub = new ECPubKey(Q, compressed)
17320 ECKey.curve = secp256k1
17322 // Static constructors
17323 ECKey.fromWIF = function (string) {
17324 var payload = base58check.decode(string)
17325 var compressed = false
17327 // Ignore the version byte
17328 payload = payload.slice(
1)
17330 if (payload.length ===
33) {
17331 assert.strictEqual(payload[
32],
0x01, 'Invalid compression flag')
17333 // Truncate the compression flag
17334 payload = payload.slice(
0, -
1)
17338 assert.equal(payload.length,
32, 'Invalid WIF payload length')
17340 var d = BigInteger.fromBuffer(payload)
17341 return new ECKey(d, compressed)
17344 ECKey.makeRandom = function (compressed, rng) {
17345 rng = rng || randomBytes
17347 var buffer = rng(
32)
17348 typeForce('Buffer', buffer)
17349 assert.equal(buffer.length,
32, 'Expected
256-bit Buffer from RNG')
17351 var d = BigInteger.fromBuffer(buffer)
17352 d = d.mod(ECKey.curve.n)
17354 return new ECKey(d, compressed)
17357 // Export functions
17358 ECKey.prototype.toWIF = function (network) {
17359 network = network || networks.bitcoin
17361 var bufferLen = this.pub.compressed ?
34 :
33
17362 var buffer = new Buffer(bufferLen)
17364 buffer.writeUInt8(network.wif,
0)
17365 this.d.toBuffer(
32).copy(buffer,
1)
17367 if (this.pub.compressed) {
17368 buffer.writeUInt8(
0x01,
33)
17371 return base58check.encode(buffer)
17375 ECKey.prototype.sign = function (hash) {
17376 return ecdsa.sign(ECKey.curve, hash, this.d)
17379 module.exports = ECKey
17381 }).call(this,require(
"buffer").Buffer)
17382 },{
"./ecdsa":
59,
"./ecpubkey":
61,
"./networks":
66,
"assert":
5,
"bigi":
3,
"bs58check":
31,
"buffer":
7,
"ecurve":
49,
"randombytes":
52,
"typeforce":
53}],
61:[function(require,module,exports){
17383 (function (Buffer){
17384 var crypto = require('./crypto')
17385 var ecdsa = require('./ecdsa')
17386 var typeForce = require('typeforce')
17387 var networks = require('./networks')
17389 var Address = require('./address')
17391 var ecurve = require('ecurve')
17392 var secp256k1 = ecurve.getCurveByName('secp256k1')
17394 function ECPubKey (Q, compressed) {
17395 if (compressed === undefined) {
17399 typeForce('Point', Q)
17400 typeForce('Boolean', compressed)
17402 this.compressed = compressed
17407 ECPubKey.curve = secp256k1
17409 // Static constructors
17410 ECPubKey.fromBuffer = function (buffer) {
17411 var Q = ecurve.Point.decodeFrom(ECPubKey.curve, buffer)
17412 return new ECPubKey(Q, Q.compressed)
17415 ECPubKey.fromHex = function (hex) {
17416 return ECPubKey.fromBuffer(new Buffer(hex, 'hex'))
17420 ECPubKey.prototype.getAddress = function (network) {
17421 network = network || networks.bitcoin
17423 return new Address(crypto.hash160(this.toBuffer()), network.pubKeyHash)
17426 ECPubKey.prototype.verify = function (hash, signature) {
17427 return ecdsa.verify(ECPubKey.curve, hash, signature, this.Q)
17430 // Export functions
17431 ECPubKey.prototype.toBuffer = function () {
17432 return this.Q.getEncoded(this.compressed)
17435 ECPubKey.prototype.toHex = function () {
17436 return this.toBuffer().toString('hex')
17439 module.exports = ECPubKey
17441 }).call(this,require(
"buffer").Buffer)
17442 },{
"./address":
54,
"./crypto":
58,
"./ecdsa":
59,
"./networks":
66,
"buffer":
7,
"ecurve":
49,
"typeforce":
53}],
62:[function(require,module,exports){
17443 (function (Buffer){
17444 var assert = require('assert')
17445 var typeForce = require('typeforce')
17447 var BigInteger = require('bigi')
17449 function ECSignature (r, s) {
17450 typeForce('BigInteger', r)
17451 typeForce('BigInteger', s)
17457 ECSignature.parseCompact = function (buffer) {
17458 assert.equal(buffer.length,
65, 'Invalid signature length')
17459 var i = buffer.readUInt8(
0) -
27
17462 assert.equal(i, i &
7, 'Invalid signature parameter')
17463 var compressed = !!(i &
4)
17465 // Recovery param only
17468 var r = BigInteger.fromBuffer(buffer.slice(
1,
33))
17469 var s = BigInteger.fromBuffer(buffer.slice(
33))
17472 compressed: compressed,
17474 signature: new ECSignature(r, s)
17478 ECSignature.fromDER = function (buffer) {
17479 assert.equal(buffer.readUInt8(
0),
0x30, 'Not a DER sequence')
17480 assert.equal(buffer.readUInt8(
1), buffer.length -
2, 'Invalid sequence length')
17481 assert.equal(buffer.readUInt8(
2),
0x02, 'Expected a DER integer')
17483 var rLen = buffer.readUInt8(
3)
17484 assert(rLen
> 0, 'R length is zero')
17486 var offset =
4 + rLen
17487 assert.equal(buffer.readUInt8(offset),
0x02, 'Expected a DER integer (
2)')
17489 var sLen = buffer.readUInt8(offset +
1)
17490 assert(sLen
> 0, 'S length is zero')
17492 var rB = buffer.slice(
4, offset)
17493 var sB = buffer.slice(offset +
2)
17496 if (rLen
> 1 && rB.readUInt8(
0) ===
0x00) {
17497 assert(rB.readUInt8(
1) &
0x80, 'R value excessively padded')
17500 if (sLen
> 1 && sB.readUInt8(
0) ===
0x00) {
17501 assert(sB.readUInt8(
1) &
0x80, 'S value excessively padded')
17504 assert.equal(offset, buffer.length, 'Invalid DER encoding')
17505 var r = BigInteger.fromDERInteger(rB)
17506 var s = BigInteger.fromDERInteger(sB)
17508 assert(r.signum()
>=
0, 'R value is negative')
17509 assert(s.signum()
>=
0, 'S value is negative')
17511 return new ECSignature(r, s)
17514 // BIP62:
1 byte hashType flag (only
0x01,
0x02,
0x03,
0x81,
0x82 and
0x83 are allowed)
17515 ECSignature.parseScriptSignature = function (buffer) {
17516 var hashType = buffer.readUInt8(buffer.length -
1)
17517 var hashTypeMod = hashType & ~
0x80
17519 assert(hashTypeMod
> 0x00 && hashTypeMod <
0x04, 'Invalid hashType ' + hashType)
17522 signature: ECSignature.fromDER(buffer.slice(
0, -
1)),
17527 ECSignature.prototype.toCompact = function (i, compressed) {
17534 var buffer = new Buffer(
65)
17535 buffer.writeUInt8(i,
0)
17537 this.r.toBuffer(
32).copy(buffer,
1)
17538 this.s.toBuffer(
32).copy(buffer,
33)
17543 ECSignature.prototype.toDER = function () {
17544 var rBa = this.r.toDERInteger()
17545 var sBa = this.s.toDERInteger()
17550 sequence.push(
0x02, rBa.length)
17551 sequence = sequence.concat(rBa)
17554 sequence.push(
0x02, sBa.length)
17555 sequence = sequence.concat(sBa)
17558 sequence.unshift(
0x30, sequence.length)
17560 return new Buffer(sequence)
17563 ECSignature.prototype.toScriptSignature = function (hashType) {
17564 var hashTypeMod = hashType & ~
0x80
17565 assert(hashTypeMod
> 0x00 && hashTypeMod <
0x04, 'Invalid hashType ' + hashType)
17567 var hashTypeBuffer = new Buffer(
1)
17568 hashTypeBuffer.writeUInt8(hashType,
0)
17570 return Buffer.concat([this.toDER(), hashTypeBuffer])
17573 module.exports = ECSignature
17575 }).call(this,require(
"buffer").Buffer)
17576 },{
"assert":
5,
"bigi":
3,
"buffer":
7,
"typeforce":
53}],
63:[function(require,module,exports){
17577 (function (Buffer){
17578 var assert = require('assert')
17579 var base58check = require('bs58check')
17580 var bcrypto = require('./crypto')
17581 var createHmac = require('create-hmac')
17582 var typeForce = require('typeforce')
17583 var networks = require('./networks')
17585 var BigInteger = require('bigi')
17586 var ECKey = require('./eckey')
17587 var ECPubKey = require('./ecpubkey')
17589 var ecurve = require('ecurve')
17590 var curve = ecurve.getCurveByName('secp256k1')
17592 function findBIP32NetworkByVersion (version) {
17593 for (var name in networks) {
17594 var network = networks[name]
17596 if (version === network.bip32.private || version === network.bip32.public) {
17601 assert(false, 'Could not find network for ' + version.toString(
16))
17604 function HDNode (K, chainCode, network) {
17605 network = network || networks.bitcoin
17607 typeForce('Buffer', chainCode)
17609 assert.equal(chainCode.length,
32, 'Expected chainCode length of
32, got ' + chainCode.length)
17610 assert(network.bip32, 'Unknown BIP32 constants for network')
17612 this.chainCode = chainCode
17615 this.parentFingerprint =
0x00000000
17616 this.network = network
17618 if (K instanceof BigInteger) {
17619 this.privKey = new ECKey(K, true)
17620 this.pubKey = this.privKey.pub
17621 } else if (K instanceof ECKey) {
17622 assert(K.pub.compressed, 'ECKey must be compressed')
17624 this.pubKey = K.pub
17625 } else if (K instanceof ECPubKey) {
17626 assert(K.compressed, 'ECPubKey must be compressed')
17629 this.pubKey = new ECPubKey(K, true)
17633 HDNode.MASTER_SECRET = new Buffer('Bitcoin seed')
17634 HDNode.HIGHEST_BIT =
0x80000000
17637 HDNode.fromSeedBuffer = function (seed, network) {
17638 typeForce('Buffer', seed)
17640 assert(seed.length
>=
16, 'Seed should be at least
128 bits')
17641 assert(seed.length <=
64, 'Seed should be at most
512 bits')
17643 var I = createHmac('sha512', HDNode.MASTER_SECRET).update(seed).digest()
17644 var IL = I.slice(
0,
32)
17645 var IR = I.slice(
32)
17647 // In case IL is
0 or
>= n, the master key is invalid
17648 // This is handled by `new ECKey` in the HDNode constructor
17649 var pIL = BigInteger.fromBuffer(IL)
17651 return new HDNode(pIL, IR, network)
17654 HDNode.fromSeedHex = function (hex, network) {
17655 return HDNode.fromSeedBuffer(new Buffer(hex, 'hex'), network)
17658 HDNode.fromBase58 = function (string, network) {
17659 return HDNode.fromBuffer(base58check.decode(string), network, true)
17662 // FIXME: remove in
2.x.y
17663 HDNode.fromBuffer = function (buffer, network, __ignoreDeprecation) {
17664 if (!__ignoreDeprecation) {
17665 console.warn('HDNode.fromBuffer() is deprecated for removal in
2.x.y, use fromBase58 instead')
17668 assert.strictEqual(buffer.length, HDNode.LENGTH, 'Invalid buffer length')
17670 //
4 byte: version bytes
17671 var version = buffer.readUInt32BE(
0)
17674 assert(version === network.bip32.private || version === network.bip32.public, "Network doesn't match")
17678 network = findBIP32NetworkByVersion(version)
17681 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ...
17682 var depth = buffer.readUInt8(
4)
17684 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
17685 var parentFingerprint = buffer.readUInt32BE(
5)
17687 assert.strictEqual(parentFingerprint,
0x00000000, 'Invalid parent fingerprint')
17690 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
17691 // This is encoded in MSB order. (
0x00000000 if master key)
17692 var index = buffer.readUInt32BE(
9)
17693 assert(depth
> 0 || index ===
0, 'Invalid index')
17695 //
32 bytes: the chain code
17696 var chainCode = buffer.slice(
13,
45)
17699 //
33 bytes: private key data (
0x00 + k)
17700 if (version === network.bip32.private) {
17701 assert.strictEqual(buffer.readUInt8(
45),
0x00, 'Invalid private key')
17702 data = buffer.slice(
46,
78)
17703 var d = BigInteger.fromBuffer(data)
17704 hd = new HDNode(d, chainCode, network)
17706 //
33 bytes: public key data (
0x02 + X or
0x03 + X)
17708 data = buffer.slice(
45,
78)
17709 var Q = ecurve.Point.decodeFrom(curve, data)
17710 assert.equal(Q.compressed, true, 'Invalid public key')
17712 // Verify that the X coordinate in the public point corresponds to a point on the curve.
17713 // If not, the extended public key is invalid.
17716 hd = new HDNode(Q, chainCode, network)
17721 hd.parentFingerprint = parentFingerprint
17726 // FIXME: remove in
2.x.y
17727 HDNode.fromHex = function (hex, network) {
17728 return HDNode.fromBuffer(new Buffer(hex, 'hex'), network)
17731 HDNode.prototype.getIdentifier = function () {
17732 return bcrypto.hash160(this.pubKey.toBuffer())
17735 HDNode.prototype.getFingerprint = function () {
17736 return this.getIdentifier().slice(
0,
4)
17739 HDNode.prototype.getAddress = function () {
17740 return this.pubKey.getAddress(this.network)
17743 HDNode.prototype.neutered = function () {
17744 var neutered = new HDNode(this.pubKey.Q, this.chainCode, this.network)
17745 neutered.depth = this.depth
17746 neutered.index = this.index
17747 neutered.parentFingerprint = this.parentFingerprint
17752 HDNode.prototype.toBase58 = function (isPrivate) {
17753 return base58check.encode(this.toBuffer(isPrivate, true))
17756 // FIXME: remove in
2.x.y
17757 HDNode.prototype.toBuffer = function (isPrivate, __ignoreDeprecation) {
17758 if (isPrivate === undefined) {
17759 isPrivate = !!this.privKey
17761 // FIXME: remove in
2.x.y
17763 console.warn('isPrivate flag is deprecated, please use the .neutered() method instead')
17766 if (!__ignoreDeprecation) {
17767 console.warn('HDNode.toBuffer() is deprecated for removal in
2.x.y, use toBase58 instead')
17771 var version = isPrivate ? this.network.bip32.private : this.network.bip32.public
17772 var buffer = new Buffer(HDNode.LENGTH)
17774 //
4 bytes: version bytes
17775 buffer.writeUInt32BE(version,
0)
17778 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ....
17779 buffer.writeUInt8(this.depth,
4)
17781 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
17782 buffer.writeUInt32BE(this.parentFingerprint,
5)
17784 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
17785 // This is encoded in Big endian. (
0x00000000 if master key)
17786 buffer.writeUInt32BE(this.index,
9)
17788 //
32 bytes: the chain code
17789 this.chainCode.copy(buffer,
13)
17791 //
33 bytes: the public key or private key data
17793 // FIXME: remove in
2.x.y
17794 assert(this.privKey, 'Missing private key')
17796 //
0x00 + k for private keys
17797 buffer.writeUInt8(
0,
45)
17798 this.privKey.d.toBuffer(
32).copy(buffer,
46)
17800 // X9.62 encoding for public keys
17801 this.pubKey.toBuffer().copy(buffer,
45)
17807 // FIXME: remove in
2.x.y
17808 HDNode.prototype.toHex = function (isPrivate) {
17809 return this.toBuffer(isPrivate).toString('hex')
17812 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#child-key-derivation-ckd-functions
17813 HDNode.prototype.derive = function (index) {
17814 var isHardened = index
>= HDNode.HIGHEST_BIT
17815 var indexBuffer = new Buffer(
4)
17816 indexBuffer.writeUInt32BE(index,
0)
17822 assert(this.privKey, 'Could not derive hardened child key')
17824 // data =
0x00 || ser256(kpar) || ser32(index)
17825 data = Buffer.concat([
17826 this.privKey.d.toBuffer(
33),
17832 // data = serP(point(kpar)) || ser32(index)
17833 // = serP(Kpar) || ser32(index)
17834 data = Buffer.concat([
17835 this.pubKey.toBuffer(),
17840 var I = createHmac('sha512', this.chainCode).update(data).digest()
17841 var IL = I.slice(
0,
32)
17842 var IR = I.slice(
32)
17844 var pIL = BigInteger.fromBuffer(IL)
17846 // In case parse256(IL)
>= n, proceed with the next value for i
17847 if (pIL.compareTo(curve.n)
>=
0) {
17848 return this.derive(index +
1)
17851 // Private parent key -
> private child key
17853 if (this.privKey) {
17854 // ki = parse256(IL) + kpar (mod n)
17855 var ki = pIL.add(this.privKey.d).mod(curve.n)
17857 // In case ki ==
0, proceed with the next value for i
17858 if (ki.signum() ===
0) {
17859 return this.derive(index +
1)
17862 hd = new HDNode(ki, IR, this.network)
17864 // Public parent key -
> public child key
17866 // Ki = point(parse256(IL)) + Kpar
17868 var Ki = curve.G.multiply(pIL).add(this.pubKey.Q)
17870 // In case Ki is the point at infinity, proceed with the next value for i
17871 if (curve.isInfinity(Ki)) {
17872 return this.derive(index +
1)
17875 hd = new HDNode(Ki, IR, this.network)
17878 hd.depth = this.depth +
1
17880 hd.parentFingerprint = this.getFingerprint().readUInt32BE(
0)
17885 HDNode.prototype.deriveHardened = function (index) {
17886 // Only derives hardened private keys by default
17887 return this.derive(index + HDNode.HIGHEST_BIT)
17890 HDNode.prototype.toString = HDNode.prototype.toBase58
17892 module.exports = HDNode
17894 }).call(this,require("buffer").Buffer)
17895 },{"./crypto":
58,"./eckey":
60,"./ecpubkey":
61,"./networks":
66,"assert":
5,"bigi":
3,"bs58check":
31,"buffer":
7,"create-hmac":
45,"ecurve":
49,"typeforce":
53}],
64:[function(require,module,exports){
17897 Address: require('./address'),
17898 base58check: require('./base58check'),
17899 Block: require('./block'),
17900 bufferutils: require('./bufferutils'),
17901 crypto: require('./crypto'),
17902 ecdsa: require('./ecdsa'),
17903 ECKey: require('./eckey'),
17904 ECPubKey: require('./ecpubkey'),
17905 ECSignature: require('./ecsignature'),
17906 Message: require('./message'),
17907 opcodes: require('./opcodes'),
17908 HDNode: require('./hdnode'),
17909 Script: require('./script'),
17910 scripts: require('./scripts'),
17911 Transaction: require('./transaction'),
17912 TransactionBuilder: require('./transaction_builder'),
17913 networks: require('./networks'),
17914 Wallet: require('./wallet')
17917 },{"./address":
54,"./base58check":
55,"./block":
56,"./bufferutils":
57,"./crypto":
58,"./ecdsa":
59,"./eckey":
60,"./ecpubkey":
61,"./ecsignature":
62,"./hdnode":
63,"./message":
65,"./networks":
66,"./opcodes":
67,"./script":
68,"./scripts":
69,"./transaction":
70,"./transaction_builder":
71,"./wallet":
72}],
65:[function(require,module,exports){
17918 (function (Buffer){
17919 var bufferutils = require('./bufferutils')
17920 var crypto = require('./crypto')
17921 var ecdsa = require('./ecdsa')
17922 var networks = require('./networks')
17924 var BigInteger = require('bigi')
17925 var ECPubKey = require('./ecpubkey')
17926 var ECSignature = require('./ecsignature')
17928 var ecurve = require('ecurve')
17929 var ecparams = ecurve.getCurveByName('secp256k1')
17931 function magicHash (message, network) {
17932 var magicPrefix = new Buffer(network.magicPrefix)
17933 var messageBuffer = new Buffer(message)
17934 var lengthBuffer = bufferutils.varIntBuffer(messageBuffer.length)
17936 var buffer = Buffer.concat([magicPrefix, lengthBuffer, messageBuffer])
17937 return crypto.hash256(buffer)
17940 function sign (privKey, message, network) {
17941 network = network || networks.bitcoin
17943 var hash = magicHash(message, network)
17944 var signature = privKey.sign(hash)
17945 var e = BigInteger.fromBuffer(hash)
17946 var i = ecdsa.calcPubKeyRecoveryParam(ecparams, e, signature, privKey.pub.Q)
17948 return signature.toCompact(i, privKey.pub.compressed)
17951 // TODO: network could be implied from address
17952 function verify (address, signature, message, network) {
17953 if (!Buffer.isBuffer(signature)) {
17954 signature = new Buffer(signature, 'base64')
17957 network = network || networks.bitcoin
17959 var hash = magicHash(message, network)
17960 var parsed = ECSignature.parseCompact(signature)
17961 var e = BigInteger.fromBuffer(hash)
17962 var Q = ecdsa.recoverPubKey(ecparams, e, parsed.signature, parsed.i)
17964 var pubKey = new ECPubKey(Q, parsed.compressed)
17965 return pubKey.getAddress(network).toString() === address.toString()
17969 magicHash: magicHash,
17974 }).call(this,require("buffer").Buffer)
17975 },{"./bufferutils":
57,"./crypto":
58,"./ecdsa":
59,"./ecpubkey":
61,"./ecsignature":
62,"./networks":
66,"bigi":
3,"buffer":
7,"ecurve":
49}],
66:[function(require,module,exports){
17976 // https://en.bitcoin.it/wiki/List_of_address_prefixes
17977 // Dogecoin BIP32 is a proposed standard: https://bitcointalk.org/index.php?topic=
409731
17981 magicPrefix: '\x18Bitcoin Signed Message:\n',
17983 public:
0x0488b21e,
17984 private:
0x0488ade4
17989 dustThreshold:
546, // https://github.com/bitcoin/bitcoin/blob/v0.9
.2/src/core.h#L151-L162
17990 feePerKb:
10000, // https://github.com/bitcoin/bitcoin/blob/v0.9
.2/src/main.cpp#L53
17991 estimateFee: estimateFee('bitcoin')
17994 magicPrefix: '\x18Bitcoin Signed Message:\n',
17996 public:
0x043587cf,
17997 private:
0x04358394
18002 dustThreshold:
546,
18004 estimateFee: estimateFee('testnet')
18007 magicPrefix: '\x19Litecoin Signed Message:\n',
18009 public:
0x019da462,
18010 private:
0x019d9cfe
18015 dustThreshold:
0, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.cpp#L360-L365
18016 dustSoftThreshold:
100000, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.h#L53
18017 feePerKb:
100000, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.cpp#L56
18018 estimateFee: estimateFee('litecoin')
18021 magicPrefix: '\x19Dogecoin Signed Message:\n',
18023 public:
0x02facafd,
18024 private:
0x02fac398
18029 dustThreshold:
0, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/core.h#L155-L160
18030 dustSoftThreshold:
100000000, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/main.h#L62
18031 feePerKb:
100000000, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/main.cpp#L58
18032 estimateFee: estimateFee('dogecoin')
18035 magicPrefix: '\x18Viacoin Signed Message:\n',
18037 public:
0x0488b21e,
18038 private:
0x0488ade4
18043 dustThreshold:
560,
18044 dustSoftThreshold:
100000,
18045 feePerKb:
100000, //
18046 estimateFee: estimateFee('viacoin')
18049 magicPrefix: '\x18Viacoin Signed Message:\n',
18051 public:
0x043587cf,
18052 private:
0x04358394
18057 dustThreshold:
560,
18058 dustSoftThreshold:
100000,
18060 estimateFee: estimateFee('viacointestnet')
18063 magicPrefix: '\x19Gamerscoin Signed Message:\n',
18065 public:
0x019da462,
18066 private:
0x019d9cfe
18071 dustThreshold:
0, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L358-L363
18072 dustSoftThreshold:
100000, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L51
18073 feePerKb:
100000, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L54
18074 estimateFee: estimateFee('gamerscoin')
18077 magicPrefix: '\x19Jumbucks Signed Message:\n',
18079 public:
0x037a689a,
18080 private:
0x037a6460
18086 dustSoftThreshold:
10000,
18088 estimateFee: estimateFee('jumbucks')
18091 magicPrefix: '\x18Zetacoin Signed Message:\n',
18093 public:
0x0488b21e,
18094 private:
0x0488ade4
18099 dustThreshold:
546, // https://github.com/zetacoin/zetacoin/blob/master/src/core.h#L159
18100 feePerKb:
10000, // https://github.com/zetacoin/zetacoin/blob/master/src/main.cpp#L54
18101 estimateFee: estimateFee('zetacoin')
18105 function estimateFee (type) {
18106 return function (tx) {
18107 var network = networks[type]
18108 var baseFee = network.feePerKb
18109 var byteSize = tx.toBuffer().length
18111 var fee = baseFee * Math.ceil(byteSize /
1000)
18112 if (network.dustSoftThreshold === undefined) return fee
18114 tx.outs.forEach(function (e) {
18115 if (e.value < network.dustSoftThreshold) {
18124 module.exports = networks
18126 },{}],
67:[function(require,module,exports){
18167 OP_TOALTSTACK:
107,
18168 OP_FROMALTSTACK:
108,
18200 OP_EQUALVERIFY:
136,
18225 OP_NUMEQUALVERIFY:
157,
18226 OP_NUMNOTEQUAL:
158,
18228 OP_GREATERTHAN:
160,
18229 OP_LESSTHANOREQUAL:
161,
18230 OP_GREATERTHANOREQUAL:
162,
18242 OP_CODESEPARATOR:
171,
18244 OP_CHECKSIGVERIFY:
173,
18245 OP_CHECKMULTISIG:
174,
18246 OP_CHECKMULTISIGVERIFY:
175,
18260 // template matching params
18261 OP_PUBKEYHASH:
253,
18263 OP_INVALIDOPCODE:
255
18266 },{}],
68:[function(require,module,exports){
18267 (function (Buffer){
18268 var assert = require('assert')
18269 var bufferutils = require('./bufferutils')
18270 var crypto = require('./crypto')
18271 var typeForce = require('typeforce')
18272 var opcodes = require('./opcodes')
18274 function Script (buffer, chunks) {
18275 typeForce('Buffer', buffer)
18276 typeForce('Array', chunks)
18278 this.buffer = buffer
18279 this.chunks = chunks
18282 Script.fromASM = function (asm) {
18283 var strChunks = asm.split(' ')
18284 var chunks = strChunks.map(function (strChunk) {
18286 if (strChunk in opcodes) {
18287 return opcodes[strChunk]
18291 return new Buffer(strChunk, 'hex')
18295 return Script.fromChunks(chunks)
18298 Script.fromBuffer = function (buffer) {
18302 while (i < buffer.length) {
18303 var opcode = buffer.readUInt8(i)
18306 if ((opcode
> opcodes.OP_0) && (opcode <= opcodes.OP_PUSHDATA4)) {
18307 var d = bufferutils.readPushDataInt(buffer, i)
18309 // did reading a pushDataInt fail? return non-chunked script
18310 if (d === null) return new Script(buffer, [])
18313 // attempt to read too much data?
18314 if (i + d.number
> buffer.length) return new Script(buffer, [])
18316 var data = buffer.slice(i, i + d.number)
18323 chunks.push(opcode)
18329 return new Script(buffer, chunks)
18332 Script.fromChunks = function (chunks) {
18333 typeForce('Array', chunks)
18335 var bufferSize = chunks.reduce(function (accum, chunk) {
18337 if (Buffer.isBuffer(chunk)) {
18338 return accum + bufferutils.pushDataSize(chunk.length) + chunk.length
18345 var buffer = new Buffer(bufferSize)
18348 chunks.forEach(function (chunk) {
18350 if (Buffer.isBuffer(chunk)) {
18351 offset += bufferutils.writePushDataInt(buffer, chunk.length, offset)
18353 chunk.copy(buffer, offset)
18354 offset += chunk.length
18358 buffer.writeUInt8(chunk, offset)
18363 assert.equal(offset, buffer.length, 'Could not decode chunks')
18364 return new Script(buffer, chunks)
18367 Script.fromHex = function (hex) {
18368 return Script.fromBuffer(new Buffer(hex, 'hex'))
18371 Script.EMPTY = Script.fromChunks([])
18373 Script.prototype.getHash = function () {
18374 return crypto.hash160(this.buffer)
18377 // FIXME: doesn't work for data chunks, maybe time to use buffertools.compare...
18378 Script.prototype.without = function (needle) {
18379 return Script.fromChunks(this.chunks.filter(function (op) {
18380 return op !== needle
18384 var reverseOps = []
18385 for (var op in opcodes) {
18386 var code = opcodes[op]
18387 reverseOps[code] = op
18390 Script.prototype.toASM = function () {
18391 return this.chunks.map(function (chunk) {
18393 if (Buffer.isBuffer(chunk)) {
18394 return chunk.toString('hex')
18398 return reverseOps[chunk]
18403 Script.prototype.toBuffer = function () {
18407 Script.prototype.toHex = function () {
18408 return this.toBuffer().toString('hex')
18411 module.exports = Script
18413 }).call(this,require("buffer").Buffer)
18414 },{"./bufferutils":
57,"./crypto":
58,"./opcodes":
67,"assert":
5,"buffer":
7,"typeforce":
53}],
69:[function(require,module,exports){
18415 (function (Buffer){
18416 var assert = require('assert')
18417 var ops = require('./opcodes')
18418 var typeForce = require('typeforce')
18420 var ecurve = require('ecurve')
18421 var curve = ecurve.getCurveByName('secp256k1')
18423 var ECSignature = require('./ecsignature')
18424 var Script = require('./script')
18426 function isCanonicalPubKey (buffer) {
18427 if (!Buffer.isBuffer(buffer)) return false
18430 ecurve.Point.decodeFrom(curve, buffer)
18432 if (!(e.message.match(/Invalid sequence (length|tag)/)))
18441 function isCanonicalSignature (buffer) {
18442 if (!Buffer.isBuffer(buffer)) return false
18445 ECSignature.parseScriptSignature(buffer)
18447 if (!(e.message.match(/Not a DER sequence|Invalid sequence length|Expected a DER integer|R length is zero|S length is zero|R value excessively padded|S value excessively padded|R value is negative|S value is negative|Invalid hashType/))) {
18457 function isPubKeyHashInput (script) {
18458 return script.chunks.length ===
2 &&
18459 isCanonicalSignature(script.chunks[
0]) &&
18460 isCanonicalPubKey(script.chunks[
1])
18463 function isPubKeyHashOutput (script) {
18464 return script.chunks.length ===
5 &&
18465 script.chunks[
0] === ops.OP_DUP &&
18466 script.chunks[
1] === ops.OP_HASH160 &&
18467 Buffer.isBuffer(script.chunks[
2]) &&
18468 script.chunks[
2].length ===
20 &&
18469 script.chunks[
3] === ops.OP_EQUALVERIFY &&
18470 script.chunks[
4] === ops.OP_CHECKSIG
18473 function isPubKeyInput (script) {
18474 return script.chunks.length ===
1 &&
18475 isCanonicalSignature(script.chunks[
0])
18478 function isPubKeyOutput (script) {
18479 return script.chunks.length ===
2 &&
18480 isCanonicalPubKey(script.chunks[
0]) &&
18481 script.chunks[
1] === ops.OP_CHECKSIG
18484 function isScriptHashInput (script, allowIncomplete) {
18485 if (script.chunks.length <
2) return false
18487 var lastChunk = script.chunks[script.chunks.length -
1]
18488 if (!Buffer.isBuffer(lastChunk)) return false
18490 var scriptSig = Script.fromChunks(script.chunks.slice(
0, -
1))
18491 var redeemScript = Script.fromBuffer(lastChunk)
18493 // is redeemScript a valid script?
18494 if (redeemScript.chunks.length ===
0) return false
18496 return classifyInput(scriptSig, allowIncomplete) === classifyOutput(redeemScript)
18499 function isScriptHashOutput (script) {
18500 return script.chunks.length ===
3 &&
18501 script.chunks[
0] === ops.OP_HASH160 &&
18502 Buffer.isBuffer(script.chunks[
1]) &&
18503 script.chunks[
1].length ===
20 &&
18504 script.chunks[
2] === ops.OP_EQUAL
18507 // allowIncomplete is to account for combining signatures
18508 // See https://github.com/bitcoin/bitcoin/blob/f425050546644a36b0b8e0eb2f6934a3e0f6f80f/src/script/sign.cpp#L195-L197
18509 function isMultisigInput (script, allowIncomplete) {
18510 if (script.chunks.length <
2) return false
18511 if (script.chunks[
0] !== ops.OP_0) return false
18513 if (allowIncomplete) {
18514 return script.chunks.slice(
1).every(function (chunk) {
18515 return chunk === ops.OP_0 || isCanonicalSignature(chunk)
18519 return script.chunks.slice(
1).every(isCanonicalSignature)
18522 function isMultisigOutput (script) {
18523 if (script.chunks.length <
4) return false
18524 if (script.chunks[script.chunks.length -
1] !== ops.OP_CHECKMULTISIG) return false
18526 var mOp = script.chunks[
0]
18527 if (mOp === ops.OP_0) return false
18528 if (mOp < ops.OP_1) return false
18529 if (mOp
> ops.OP_16) return false
18531 var nOp = script.chunks[script.chunks.length -
2]
18532 if (nOp === ops.OP_0) return false
18533 if (nOp < ops.OP_1) return false
18534 if (nOp
> ops.OP_16) return false
18536 var m = mOp - (ops.OP_1 -
1)
18537 var n = nOp - (ops.OP_1 -
1)
18538 if (n < m) return false
18540 var pubKeys = script.chunks.slice(
1, -
2)
18541 if (n < pubKeys.length) return false
18543 return pubKeys.every(isCanonicalPubKey)
18546 function isNullDataOutput (script) {
18547 return script.chunks[
0] === ops.OP_RETURN
18550 function classifyOutput (script) {
18551 typeForce('Script', script)
18553 if (isPubKeyHashOutput(script)) {
18554 return 'pubkeyhash'
18555 } else if (isScriptHashOutput(script)) {
18556 return 'scripthash'
18557 } else if (isMultisigOutput(script)) {
18559 } else if (isPubKeyOutput(script)) {
18561 } else if (isNullDataOutput(script)) {
18565 return 'nonstandard'
18568 function classifyInput (script, allowIncomplete) {
18569 typeForce('Script', script)
18571 if (isPubKeyHashInput(script)) {
18572 return 'pubkeyhash'
18573 } else if (isMultisigInput(script, allowIncomplete)) {
18575 } else if (isScriptHashInput(script, allowIncomplete)) {
18576 return 'scripthash'
18577 } else if (isPubKeyInput(script)) {
18581 return 'nonstandard'
18584 // Standard Script Templates
18585 // {pubKey} OP_CHECKSIG
18586 function pubKeyOutput (pubKey) {
18587 return Script.fromChunks([
18593 // OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
18594 function pubKeyHashOutput (hash) {
18595 typeForce('Buffer', hash)
18597 return Script.fromChunks([
18601 ops.OP_EQUALVERIFY,
18606 // OP_HASH160 {scriptHash} OP_EQUAL
18607 function scriptHashOutput (hash) {
18608 typeForce('Buffer', hash)
18610 return Script.fromChunks([
18617 // m [pubKeys ...] n OP_CHECKMULTISIG
18618 function multisigOutput (m, pubKeys) {
18619 typeForce(['ECPubKey'], pubKeys)
18621 assert(pubKeys.length
>= m, 'Not enough pubKeys provided')
18623 var pubKeyBuffers = pubKeys.map(function (pubKey) {
18624 return pubKey.toBuffer()
18626 var n = pubKeys.length
18628 return Script.fromChunks([].concat(
18629 (ops.OP_1 -
1) + m,
18631 (ops.OP_1 -
1) + n,
18632 ops.OP_CHECKMULTISIG
18637 function pubKeyInput (signature) {
18638 typeForce('Buffer', signature)
18640 return Script.fromChunks([signature])
18643 // {signature} {pubKey}
18644 function pubKeyHashInput (signature, pubKey) {
18645 typeForce('Buffer', signature)
18647 return Script.fromChunks([signature, pubKey.toBuffer()])
18650 //
<scriptSig> {serialized scriptPubKey script}
18651 function scriptHashInput (scriptSig, scriptPubKey) {
18652 return Script.fromChunks([].concat(
18654 scriptPubKey.toBuffer()
18658 // OP_0 [signatures ...]
18659 function multisigInput (signatures, scriptPubKey) {
18660 if (scriptPubKey) {
18661 assert(isMultisigOutput(scriptPubKey))
18663 var mOp = scriptPubKey.chunks[
0]
18664 var nOp = scriptPubKey.chunks[scriptPubKey.chunks.length -
2]
18665 var m = mOp - (ops.OP_1 -
1)
18666 var n = nOp - (ops.OP_1 -
1)
18668 assert(signatures.length
>= m, 'Not enough signatures provided')
18669 assert(signatures.length <= n, 'Too many signatures provided')
18672 return Script.fromChunks([].concat(ops.OP_0, signatures))
18675 function nullDataOutput (data) {
18676 return Script.fromChunks([ops.OP_RETURN, data])
18680 isCanonicalPubKey: isCanonicalPubKey,
18681 isCanonicalSignature: isCanonicalSignature,
18682 isPubKeyHashInput: isPubKeyHashInput,
18683 isPubKeyHashOutput: isPubKeyHashOutput,
18684 isPubKeyInput: isPubKeyInput,
18685 isPubKeyOutput: isPubKeyOutput,
18686 isScriptHashInput: isScriptHashInput,
18687 isScriptHashOutput: isScriptHashOutput,
18688 isMultisigInput: isMultisigInput,
18689 isMultisigOutput: isMultisigOutput,
18690 isNullDataOutput: isNullDataOutput,
18691 classifyOutput: classifyOutput,
18692 classifyInput: classifyInput,
18693 pubKeyOutput: pubKeyOutput,
18694 pubKeyHashOutput: pubKeyHashOutput,
18695 scriptHashOutput: scriptHashOutput,
18696 multisigOutput: multisigOutput,
18697 pubKeyInput: pubKeyInput,
18698 pubKeyHashInput: pubKeyHashInput,
18699 scriptHashInput: scriptHashInput,
18700 multisigInput: multisigInput,
18701 dataOutput: function (data) {
18702 console.warn('dataOutput is deprecated, use nullDataOutput by
2.0.0')
18703 return nullDataOutput(data)
18705 nullDataOutput: nullDataOutput
18708 }).call(this,require("buffer").Buffer)
18709 },{"./ecsignature":
62,"./opcodes":
67,"./script":
68,"assert":
5,"buffer":
7,"ecurve":
49,"typeforce":
53}],
70:[function(require,module,exports){
18710 (function (Buffer){
18711 var assert = require('assert')
18712 var bufferutils = require('./bufferutils')
18713 var crypto = require('./crypto')
18714 var typeForce = require('typeforce')
18715 var opcodes = require('./opcodes')
18716 var scripts = require('./scripts')
18718 var Address = require('./address')
18719 var ECSignature = require('./ecsignature')
18720 var Script = require('./script')
18722 function Transaction () {
18729 Transaction.DEFAULT_SEQUENCE =
0xffffffff
18730 Transaction.SIGHASH_ALL =
0x01
18731 Transaction.SIGHASH_NONE =
0x02
18732 Transaction.SIGHASH_SINGLE =
0x03
18733 Transaction.SIGHASH_ANYONECANPAY =
0x80
18735 Transaction.fromBuffer = function (buffer, __disableAssert) {
18737 function readSlice (n) {
18739 return buffer.slice(offset - n, offset)
18742 function readUInt32 () {
18743 var i = buffer.readUInt32LE(offset)
18748 function readUInt64 () {
18749 var i = bufferutils.readUInt64LE(buffer, offset)
18754 function readVarInt () {
18755 var vi = bufferutils.readVarInt(buffer, offset)
18760 function readScript () {
18761 return Script.fromBuffer(readSlice(readVarInt()))
18764 function readGenerationScript () {
18765 return new Script(readSlice(readVarInt()), [])
18768 var tx = new Transaction()
18769 tx.version = readUInt32()
18771 var vinLen = readVarInt()
18772 for (var i =
0; i < vinLen; ++i) {
18773 var hash = readSlice(
32)
18775 if (Transaction.isCoinbaseHash(hash)) {
18778 index: readUInt32(),
18779 script: readGenerationScript(),
18780 sequence: readUInt32()
18785 index: readUInt32(),
18786 script: readScript(),
18787 sequence: readUInt32()
18792 var voutLen = readVarInt()
18793 for (i =
0; i < voutLen; ++i) {
18795 value: readUInt64(),
18796 script: readScript()
18800 tx.locktime = readUInt32()
18802 if (!__disableAssert) {
18803 assert.equal(offset, buffer.length, 'Transaction has unexpected data')
18809 Transaction.fromHex = function (hex) {
18810 return Transaction.fromBuffer(new Buffer(hex, 'hex'))
18813 Transaction.isCoinbaseHash = function (buffer) {
18814 return Array.prototype.every.call(buffer, function (x) {
18820 * Create a new txIn.
18822 * Can be called with any of:
18824 * - A transaction and an index
18825 * - A transaction hash and an index
18827 * Note that this method does not sign the created input.
18829 Transaction.prototype.addInput = function (hash, index, sequence, script) {
18830 if (sequence === undefined || sequence === null) {
18831 sequence = Transaction.DEFAULT_SEQUENCE
18834 script = script || Script.EMPTY
18836 if (typeof hash === 'string') {
18837 // TxId hex is big-endian, we need little-endian
18838 hash = bufferutils.reverse(new Buffer(hash, 'hex'))
18839 } else if (hash instanceof Transaction) {
18840 hash = hash.getHash()
18843 typeForce('Buffer', hash)
18844 typeForce('Number', index)
18845 typeForce('Number', sequence)
18846 typeForce('Script', script)
18848 assert.equal(hash.length,
32, 'Expected hash length of
32, got ' + hash.length)
18850 // Add the input and return the input's index
18851 return (this.ins.push({
18860 * Create a new txOut.
18862 * Can be called with:
18864 * - A base58 address string and a value
18865 * - An Address object and a value
18866 * - A scriptPubKey Script and a value
18868 Transaction.prototype.addOutput = function (scriptPubKey, value) {
18869 // Attempt to get a valid address if it's a base58 address string
18870 if (typeof scriptPubKey === 'string') {
18871 scriptPubKey = Address.fromBase58Check(scriptPubKey)
18874 // Attempt to get a valid script if it's an Address object
18875 if (scriptPubKey instanceof Address) {
18876 scriptPubKey = scriptPubKey.toOutputScript()
18879 typeForce('Script', scriptPubKey)
18880 typeForce('Number', value)
18882 // Add the output and return the output's index
18883 return (this.outs.push({
18884 script: scriptPubKey,
18889 Transaction.prototype.clone = function () {
18890 var newTx = new Transaction()
18891 newTx.version = this.version
18892 newTx.locktime = this.locktime
18894 newTx.ins = this.ins.map(function (txIn) {
18898 script: txIn.script,
18899 sequence: txIn.sequence
18903 newTx.outs = this.outs.map(function (txOut) {
18905 script: txOut.script,
18914 * Hash transaction for signing a specific input.
18916 * Bitcoin uses a different hash for each signed transaction input. This
18917 * method copies the transaction, makes the necessary changes based on the
18918 * hashType, serializes and finally hashes the result. This hash can then be
18919 * used to sign the transaction input in question.
18921 Transaction.prototype.hashForSignature = function (inIndex, prevOutScript, hashType) {
18922 // FIXME: remove in
2.x.y
18923 if (arguments[
0] instanceof Script) {
18924 console.warn('hashForSignature(prevOutScript, inIndex, ...) has been deprecated. Use hashForSignature(inIndex, prevOutScript, ...)')
18926 // swap the arguments (must be stored in tmp, arguments is special)
18927 var tmp = arguments[
0]
18928 inIndex = arguments[
1]
18929 prevOutScript = tmp
18932 typeForce('Number', inIndex)
18933 typeForce('Script', prevOutScript)
18934 typeForce('Number', hashType)
18936 assert(inIndex
>=
0, 'Invalid vin index')
18937 assert(inIndex < this.ins.length, 'Invalid vin index')
18939 var txTmp = this.clone()
18940 var hashScript = prevOutScript.without(opcodes.OP_CODESEPARATOR)
18942 // Blank out other inputs' signatures
18943 txTmp.ins.forEach(function (txIn) {
18944 txIn.script = Script.EMPTY
18946 txTmp.ins[inIndex].script = hashScript
18948 var hashTypeModifier = hashType &
0x1f
18950 if (hashTypeModifier === Transaction.SIGHASH_NONE) {
18951 assert(false, 'SIGHASH_NONE not yet supported')
18952 } else if (hashTypeModifier === Transaction.SIGHASH_SINGLE) {
18953 assert(false, 'SIGHASH_SINGLE not yet supported')
18956 if (hashType & Transaction.SIGHASH_ANYONECANPAY) {
18957 assert(false, 'SIGHASH_ANYONECANPAY not yet supported')
18960 var hashTypeBuffer = new Buffer(
4)
18961 hashTypeBuffer.writeInt32LE(hashType,
0)
18963 var buffer = Buffer.concat([txTmp.toBuffer(), hashTypeBuffer])
18964 return crypto.hash256(buffer)
18967 Transaction.prototype.getHash = function () {
18968 return crypto.hash256(this.toBuffer())
18971 Transaction.prototype.getId = function () {
18972 // TxHash is little-endian, we need big-endian
18973 return bufferutils.reverse(this.getHash()).toString('hex')
18976 Transaction.prototype.toBuffer = function () {
18977 function scriptSize (script) {
18978 var length = script.buffer.length
18980 return bufferutils.varIntSize(length) + length
18983 var buffer = new Buffer(
18985 bufferutils.varIntSize(this.ins.length) +
18986 bufferutils.varIntSize(this.outs.length) +
18987 this.ins.reduce(function (sum, input) { return sum +
40 + scriptSize(input.script) },
0) +
18988 this.outs.reduce(function (sum, output) { return sum +
8 + scriptSize(output.script) },
0)
18992 function writeSlice (slice) {
18993 slice.copy(buffer, offset)
18994 offset += slice.length
18997 function writeUInt32 (i) {
18998 buffer.writeUInt32LE(i, offset)
19002 function writeUInt64 (i) {
19003 bufferutils.writeUInt64LE(buffer, i, offset)
19007 function writeVarInt (i) {
19008 var n = bufferutils.writeVarInt(buffer, i, offset)
19012 writeUInt32(this.version)
19013 writeVarInt(this.ins.length)
19015 this.ins.forEach(function (txIn) {
19016 writeSlice(txIn.hash)
19017 writeUInt32(txIn.index)
19018 writeVarInt(txIn.script.buffer.length)
19019 writeSlice(txIn.script.buffer)
19020 writeUInt32(txIn.sequence)
19023 writeVarInt(this.outs.length)
19024 this.outs.forEach(function (txOut) {
19025 writeUInt64(txOut.value)
19026 writeVarInt(txOut.script.buffer.length)
19027 writeSlice(txOut.script.buffer)
19030 writeUInt32(this.locktime)
19035 Transaction.prototype.toHex = function () {
19036 return this.toBuffer().toString('hex')
19039 Transaction.prototype.setInputScript = function (index, script) {
19040 typeForce('Number', index)
19041 typeForce('Script', script)
19043 this.ins[index].script = script
19046 // FIXME: remove in
2.x.y
19047 Transaction.prototype.sign = function (index, privKey, hashType) {
19048 console.warn('Transaction.prototype.sign is deprecated. Use TransactionBuilder instead.')
19050 var prevOutScript = privKey.pub.getAddress().toOutputScript()
19051 var signature = this.signInput(index, prevOutScript, privKey, hashType)
19053 var scriptSig = scripts.pubKeyHashInput(signature, privKey.pub)
19054 this.setInputScript(index, scriptSig)
19057 // FIXME: remove in
2.x.y
19058 Transaction.prototype.signInput = function (index, prevOutScript, privKey, hashType) {
19059 console.warn('Transaction.prototype.signInput is deprecated. Use TransactionBuilder instead.')
19061 hashType = hashType || Transaction.SIGHASH_ALL
19063 var hash = this.hashForSignature(index, prevOutScript, hashType)
19064 var signature = privKey.sign(hash)
19066 return signature.toScriptSignature(hashType)
19069 // FIXME: remove in
2.x.y
19070 Transaction.prototype.validateInput = function (index, prevOutScript, pubKey, buffer) {
19071 console.warn('Transaction.prototype.validateInput is deprecated. Use TransactionBuilder instead.')
19073 var parsed = ECSignature.parseScriptSignature(buffer)
19074 var hash = this.hashForSignature(index, prevOutScript, parsed.hashType)
19076 return pubKey.verify(hash, parsed.signature)
19079 module.exports = Transaction
19081 }).call(this,require("buffer").Buffer)
19082 },{"./address":
54,"./bufferutils":
57,"./crypto":
58,"./ecsignature":
62,"./opcodes":
67,"./script":
68,"./scripts":
69,"assert":
5,"buffer":
7,"typeforce":
53}],
71:[function(require,module,exports){
19083 (function (Buffer){
19084 var assert = require('assert')
19085 var ops = require('./opcodes')
19086 var scripts = require('./scripts')
19088 var ECPubKey = require('./ecpubkey')
19089 var ECSignature = require('./ecsignature')
19090 var Script = require('./script')
19091 var Transaction = require('./transaction')
19093 function extractInput (txIn) {
19095 var scriptSig = txIn.script
19097 var prevOutType = scripts.classifyInput(scriptSig, true)
19100 // Re-classify if scriptHash
19101 if (prevOutType === 'scripthash') {
19102 redeemScript = Script.fromBuffer(scriptSig.chunks.slice(-
1)[
0])
19103 prevOutScript = scripts.scriptHashOutput(redeemScript.getHash())
19105 scriptSig = Script.fromChunks(scriptSig.chunks.slice(
0, -
1))
19106 scriptType = scripts.classifyInput(scriptSig, true)
19108 scriptType = prevOutType
19111 // Extract hashType, pubKeys and signatures
19112 var hashType, parsed, pubKeys, signatures
19114 switch (scriptType) {
19115 case 'pubkeyhash': {
19116 parsed = ECSignature.parseScriptSignature(scriptSig.chunks[
0])
19117 hashType = parsed.hashType
19118 pubKeys = [ECPubKey.fromBuffer(scriptSig.chunks[
1])]
19119 signatures = [parsed.signature]
19120 prevOutScript = pubKeys[
0].getAddress().toOutputScript()
19126 parsed = ECSignature.parseScriptSignature(scriptSig.chunks[
0])
19127 hashType = parsed.hashType
19128 signatures = [parsed.signature]
19130 if (redeemScript) {
19131 pubKeys = [ECPubKey.fromBuffer(redeemScript.chunks[
0])]
19138 signatures = scriptSig.chunks.slice(
1).map(function (chunk) {
19139 if (chunk === ops.OP_0) return chunk
19141 var parsed = ECSignature.parseScriptSignature(chunk)
19142 hashType = parsed.hashType
19144 return parsed.signature
19147 if (redeemScript) {
19148 pubKeys = redeemScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
19156 hashType: hashType,
19157 prevOutScript: prevOutScript,
19158 prevOutType: prevOutType,
19160 redeemScript: redeemScript,
19161 scriptType: scriptType,
19162 signatures: signatures
19166 function TransactionBuilder () {
19167 this.prevTxMap = {}
19168 this.prevOutScripts = {}
19169 this.prevOutTypes = {}
19172 this.tx = new Transaction()
19175 TransactionBuilder.fromTransaction = function (transaction) {
19176 var txb = new TransactionBuilder()
19178 // Copy other transaction fields
19179 txb.tx.version = transaction.version
19180 txb.tx.locktime = transaction.locktime
19182 // Extract/add inputs
19183 transaction.ins.forEach(function (txIn) {
19184 txb.addInput(txIn.hash, txIn.index, txIn.sequence)
19187 // Extract/add outputs
19188 transaction.outs.forEach(function (txOut) {
19189 txb.addOutput(txOut.script, txOut.value)
19192 // Extract/add signatures
19193 txb.inputs = transaction.ins.map(function (txIn) {
19194 // TODO: remove me after testcase added
19195 assert(!Transaction.isCoinbaseHash(txIn.hash), 'coinbase inputs not supported')
19197 // Ignore empty scripts
19198 if (txIn.script.buffer.length ===
0) return {}
19200 return extractInput(txIn)
19206 TransactionBuilder.prototype.addInput = function (prevTx, index, sequence, prevOutScript) {
19210 if (typeof prevTx === 'string') {
19211 prevOutHash = new Buffer(prevTx, 'hex')
19213 // TxId hex is big-endian, we want little-endian hash
19214 Array.prototype.reverse.call(prevOutHash)
19217 } else if (prevTx instanceof Transaction) {
19218 prevOutHash = prevTx.getHash()
19219 prevOutScript = prevTx.outs[index].script
19223 prevOutHash = prevTx
19227 if (prevOutScript) {
19228 var prevOutType = scripts.classifyOutput(prevOutScript)
19230 // if we can, extract pubKey information
19231 switch (prevOutType) {
19233 input.pubKeys = prevOutScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
19238 input.pubKeys = prevOutScript.chunks.slice(
0,
1).map(ECPubKey.fromBuffer)
19243 if (prevOutType !== 'scripthash') {
19244 input.scriptType = prevOutType
19247 input.prevOutScript = prevOutScript
19248 input.prevOutType = prevOutType
19251 assert(this.inputs.every(function (input2) {
19252 if (input2.hashType === undefined) return true
19254 return input2.hashType & Transaction.SIGHASH_ANYONECANPAY
19255 }), 'No, this would invalidate signatures')
19257 var prevOut = prevOutHash.toString('hex') + ':' + index
19258 assert(!(prevOut in this.prevTxMap), 'Transaction is already an input')
19260 var vin = this.tx.addInput(prevOutHash, index, sequence)
19261 this.inputs[vin] = input
19262 this.prevTxMap[prevOut] = vin
19267 TransactionBuilder.prototype.addOutput = function (scriptPubKey, value) {
19268 assert(this.inputs.every(function (input) {
19269 if (input.hashType === undefined) return true
19271 return (input.hashType &
0x1f) === Transaction.SIGHASH_SINGLE
19272 }), 'No, this would invalidate signatures')
19274 return this.tx.addOutput(scriptPubKey, value)
19277 TransactionBuilder.prototype.build = function () {
19278 return this.__build(false)
19280 TransactionBuilder.prototype.buildIncomplete = function () {
19281 return this.__build(true)
19284 var canSignTypes = {
19285 'pubkeyhash': true,
19290 TransactionBuilder.prototype.__build = function (allowIncomplete) {
19291 if (!allowIncomplete) {
19292 assert(this.tx.ins.length
> 0, 'Transaction has no inputs')
19293 assert(this.tx.outs.length
> 0, 'Transaction has no outputs')
19296 var tx = this.tx.clone()
19298 // Create script signatures from signature meta-data
19299 this.inputs.forEach(function (input, index) {
19300 var scriptType = input.scriptType
19303 if (!allowIncomplete) {
19304 assert(!!scriptType, 'Transaction is not complete')
19305 assert(scriptType in canSignTypes, scriptType + ' not supported')
19306 assert(input.signatures, 'Transaction is missing signatures')
19309 if (input.signatures) {
19310 switch (scriptType) {
19311 case 'pubkeyhash': {
19312 var pkhSignature = input.signatures[
0].toScriptSignature(input.hashType)
19313 scriptSig = scripts.pubKeyHashInput(pkhSignature, input.pubKeys[
0])
19318 // Array.prototype.map is sparse-compatible
19319 var msSignatures = input.signatures.map(function (signature) {
19320 return signature && signature.toScriptSignature(input.hashType)
19323 // fill in blanks with OP_0
19324 if (allowIncomplete) {
19325 for (var i =
0; i < msSignatures.length; ++i) {
19326 if (msSignatures[i]) continue
19328 msSignatures[i] = ops.OP_0
19331 // Array.prototype.filter returns non-sparse array
19332 msSignatures = msSignatures.filter(function (x) { return x })
19335 var redeemScript = allowIncomplete ? undefined : input.redeemScript
19336 scriptSig = scripts.multisigInput(msSignatures, redeemScript)
19341 var pkSignature = input.signatures[
0].toScriptSignature(input.hashType)
19342 scriptSig = scripts.pubKeyInput(pkSignature)
19348 // did we build a scriptSig?
19350 // wrap as scriptHash if necessary
19351 if (input.prevOutType === 'scripthash') {
19352 scriptSig = scripts.scriptHashInput(scriptSig, input.redeemScript)
19355 tx.setInputScript(index, scriptSig)
19362 TransactionBuilder.prototype.sign = function (index, privKey, redeemScript, hashType) {
19363 assert(index in this.inputs, 'No input at index: ' + index)
19364 hashType = hashType || Transaction.SIGHASH_ALL
19366 var input = this.inputs[index]
19367 var canSign = input.hashType &&
19368 input.prevOutScript &&
19369 input.prevOutType &&
19371 input.scriptType &&
19374 // are we almost ready to sign?
19376 // if redeemScript was provided, enforce consistency
19377 if (redeemScript) {
19378 assert.deepEqual(input.redeemScript, redeemScript, 'Inconsistent redeemScript')
19381 assert.equal(input.hashType, hashType, 'Inconsistent hashType')
19385 // must be pay-to-scriptHash?
19386 if (redeemScript) {
19387 // if we have a prevOutScript, enforce scriptHash equality to the redeemScript
19388 if (input.prevOutScript) {
19389 assert.equal(input.prevOutType, 'scripthash', 'PrevOutScript must be P2SH')
19391 var scriptHash = input.prevOutScript.chunks[
1]
19392 assert.deepEqual(scriptHash, redeemScript.getHash(), 'RedeemScript does not match ' + scriptHash.toString('hex'))
19395 var scriptType = scripts.classifyOutput(redeemScript)
19396 assert(scriptType in canSignTypes, 'RedeemScript not supported (' + scriptType + ')')
19399 switch (scriptType) {
19401 pubKeys = redeemScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
19405 case 'pubkeyhash': {
19406 var pkh1 = redeemScript.chunks[
2]
19407 var pkh2 = privKey.pub.getAddress().hash
19409 assert.deepEqual(pkh1, pkh2, 'privateKey cannot sign for this input')
19410 pubKeys = [privKey.pub]
19415 pubKeys = redeemScript.chunks.slice(
0,
1).map(ECPubKey.fromBuffer)
19420 if (!input.prevOutScript) {
19421 input.prevOutScript = scripts.scriptHashOutput(redeemScript.getHash())
19422 input.prevOutType = 'scripthash'
19425 input.pubKeys = pubKeys
19426 input.redeemScript = redeemScript
19427 input.scriptType = scriptType
19429 // cannot be pay-to-scriptHash
19431 assert.notEqual(input.prevOutType, 'scripthash', 'PrevOutScript is P2SH, missing redeemScript')
19433 // can we otherwise sign this?
19434 if (input.scriptType) {
19435 assert(input.pubKeys, input.scriptType + ' not supported')
19437 // we know nothin' Jon Snow, assume pubKeyHash
19439 input.prevOutScript = privKey.pub.getAddress().toOutputScript()
19440 input.prevOutType = 'pubkeyhash'
19441 input.pubKeys = [privKey.pub]
19442 input.scriptType = input.prevOutType
19446 input.hashType = hashType
19447 input.signatures = input.signatures || []
19450 var signatureScript = input.redeemScript || input.prevOutScript
19451 var signatureHash = this.tx.hashForSignature(index, signatureScript, hashType)
19453 // enforce signature order matches public keys
19454 if (input.scriptType === 'multisig' && input.redeemScript && input.signatures.length !== input.pubKeys.length) {
19455 // maintain a local copy of unmatched signatures
19456 var unmatched = input.signatures.slice()
19458 input.signatures = input.pubKeys.map(function (pubKey) {
19461 // check for any matching signatures
19462 unmatched.some(function (signature, i) {
19463 if (!pubKey.verify(signatureHash, signature)) return false
19466 // remove matched signature from unmatched
19467 unmatched.splice(i,
1)
19472 return match || undefined
19476 // enforce in order signing of public keys
19477 assert(input.pubKeys.some(function (pubKey, i) {
19478 if (!privKey.pub.Q.equals(pubKey.Q)) return false
19480 assert(!input.signatures[i], 'Signature already exists')
19481 var signature = privKey.sign(signatureHash)
19482 input.signatures[i] = signature
19485 }, this), 'privateKey cannot sign for this input')
19488 module.exports = TransactionBuilder
19490 }).call(this,require(
"buffer").Buffer)
19491 },{
"./ecpubkey":
61,
"./ecsignature":
62,
"./opcodes":
67,
"./script":
68,
"./scripts":
69,
"./transaction":
70,
"assert":
5,
"buffer":
7}],
72:[function(require,module,exports){
19492 (function (Buffer){
19493 var assert = require('assert')
19494 var bufferutils = require('./bufferutils')
19495 var typeForce = require('typeforce')
19496 var networks = require('./networks')
19497 var randomBytes = require('randombytes')
19499 var Address = require('./address')
19500 var HDNode = require('./hdnode')
19501 var TransactionBuilder = require('./transaction_builder')
19502 var Script = require('./script')
19504 function Wallet (seed, network) {
19505 console.warn('Wallet is deprecated and will be removed in
2.0.0, see #
296')
19507 seed = seed || randomBytes(
32)
19508 network = network || networks.bitcoin
19510 // Stored in a closure to make accidental serialization less likely
19511 var masterKey = HDNode.fromSeedBuffer(seed, network)
19513 // HD first-level child derivation method should be hardened
19514 // See https://bitcointalk.org/index.php?topic=
405179.msg4415254#msg4415254
19515 var accountZero = masterKey.deriveHardened(
0)
19516 var externalAccount = accountZero.derive(
0)
19517 var internalAccount = accountZero.derive(
1)
19519 this.addresses = []
19520 this.changeAddresses = []
19521 this.network = network
19524 // FIXME: remove in
2.0.0
19525 this.unspentMap = {}
19527 // FIXME: remove in
2.0.0
19529 this.newMasterKey = function (seed) {
19530 console.warn('newMasterKey is deprecated, please make a new Wallet instance instead')
19532 seed = seed || randomBytes(
32)
19533 masterKey = HDNode.fromSeedBuffer(seed, network)
19535 accountZero = masterKey.deriveHardened(
0)
19536 externalAccount = accountZero.derive(
0)
19537 internalAccount = accountZero.derive(
1)
19540 me.changeAddresses = []
19546 this.getMasterKey = function () {
19549 this.getAccountZero = function () {
19552 this.getExternalAccount = function () {
19553 return externalAccount
19555 this.getInternalAccount = function () {
19556 return internalAccount
19560 Wallet.prototype.createTransaction = function (to, value, options) {
19561 // FIXME: remove in
2.0.0
19562 if (typeof options !== 'object') {
19563 if (options !== undefined) {
19564 console.warn('Non options object parameters are deprecated, use options object instead')
19567 fixedFee: arguments[
2],
19568 changeAddress: arguments[
3]
19573 options = options || {}
19575 assert(value
> this.network.dustThreshold, value + ' must be above dust threshold (' + this.network.dustThreshold + ' Satoshis)')
19577 var changeAddress = options.changeAddress
19578 var fixedFee = options.fixedFee
19579 var minConf = options.minConf === undefined ?
0 : options.minConf // FIXME: change minConf:
1 by default in
2.0.0
19581 // filter by minConf, then pending and sort by descending value
19582 var unspents = this.unspents.filter(function (unspent) {
19583 return unspent.confirmations
>= minConf
19584 }).filter(function (unspent) {
19585 return !unspent.pending
19586 }).sort(function (o1, o2) {
19587 return o2.value - o1.value
19592 var subTotal = value
19594 var txb = new TransactionBuilder()
19595 txb.addOutput(to, value)
19597 for (var i =
0; i < unspents.length; ++i) {
19598 var unspent = unspents[i]
19599 addresses.push(unspent.address)
19601 txb.addInput(unspent.txHash, unspent.index)
19603 var fee = fixedFee === undefined ? estimatePaddedFee(txb.buildIncomplete(), this.network) : fixedFee
19605 accum += unspent.value
19606 subTotal = value + fee
19608 if (accum
>= subTotal) {
19609 var change = accum - subTotal
19611 if (change
> this.network.dustThreshold) {
19612 txb.addOutput(changeAddress || this.getChangeAddress(), change)
19619 assert(accum
>= subTotal, 'Not enough funds (incl. fee): ' + accum + ' < ' + subTotal)
19621 return this.signWith(txb, addresses).build()
19624 // FIXME: remove in
2.0.0
19625 Wallet.prototype.processPendingTx = function (tx) {
19626 this.__processTx(tx, true)
19629 // FIXME: remove in
2.0.0
19630 Wallet.prototype.processConfirmedTx = function (tx) {
19631 this.__processTx(tx, false)
19634 // FIXME: remove in
2.0.0
19635 Wallet.prototype.__processTx = function (tx, isPending) {
19636 console.warn('processTransaction is considered harmful, see issue #
260 for more information')
19638 var txId = tx.getId()
19639 var txHash = tx.getHash()
19641 tx.outs.forEach(function (txOut, i) {
19645 address = Address.fromOutputScript(txOut.script, this.network).toString()
19647 if (!(e.message.match(/has no matching Address/)))
19651 var myAddresses = this.addresses.concat(this.changeAddresses)
19652 if (myAddresses.indexOf(address)
> -
1) {
19653 var lookup = txId + ':' + i
19654 if (lookup in this.unspentMap) return
19656 // its unique, add it
19659 confirmations:
0, // no way to determine this without more information
19663 value: txOut.value,
19667 this.unspentMap[lookup] = unspent
19668 this.unspents.push(unspent)
19672 tx.ins.forEach(function (txIn) {
19673 // copy and convert to big-endian hex
19674 var txInId = bufferutils.reverse(txIn.hash).toString('hex')
19676 var lookup = txInId + ':' + txIn.index
19677 if (!(lookup in this.unspentMap)) return
19679 var unspent = this.unspentMap[lookup]
19682 unspent.pending = true
19683 unspent.spent = true
19685 delete this.unspentMap[lookup]
19687 this.unspents = this.unspents.filter(function (unspent2) {
19688 return unspent !== unspent2
19694 Wallet.prototype.generateAddress = function () {
19695 var k = this.addresses.length
19696 var address = this.getExternalAccount().derive(k).getAddress()
19698 this.addresses.push(address.toString())
19700 return this.getReceiveAddress()
19703 Wallet.prototype.generateChangeAddress = function () {
19704 var k = this.changeAddresses.length
19705 var address = this.getInternalAccount().derive(k).getAddress()
19707 this.changeAddresses.push(address.toString())
19709 return this.getChangeAddress()
19712 Wallet.prototype.getAddress = function () {
19713 if (this.addresses.length ===
0) {
19714 this.generateAddress()
19717 return this.addresses[this.addresses.length -
1]
19720 Wallet.prototype.getBalance = function (minConf) {
19721 minConf = minConf ||
0
19723 return this.unspents.filter(function (unspent) {
19724 return unspent.confirmations
>= minConf
19726 // FIXME: remove spent filter in
2.0.0
19727 }).filter(function (unspent) {
19728 return !unspent.spent
19729 }).reduce(function (accum, unspent) {
19730 return accum + unspent.value
19734 Wallet.prototype.getChangeAddress = function () {
19735 if (this.changeAddresses.length ===
0) {
19736 this.generateChangeAddress()
19739 return this.changeAddresses[this.changeAddresses.length -
1]
19742 Wallet.prototype.getInternalPrivateKey = function (index) {
19743 return this.getInternalAccount().derive(index).privKey
19746 Wallet.prototype.getPrivateKey = function (index) {
19747 return this.getExternalAccount().derive(index).privKey
19750 Wallet.prototype.getPrivateKeyForAddress = function (address) {
19753 if ((index = this.addresses.indexOf(address))
> -
1) {
19754 return this.getPrivateKey(index)
19757 if ((index = this.changeAddresses.indexOf(address))
> -
1) {
19758 return this.getInternalPrivateKey(index)
19761 assert(false, 'Unknown address. Make sure the address is from the keychain and has been generated')
19764 Wallet.prototype.getUnspentOutputs = function (minConf) {
19765 minConf = minConf ||
0
19767 return this.unspents.filter(function (unspent) {
19768 return unspent.confirmations
>= minConf
19770 // FIXME: remove spent filter in
2.0.0
19771 }).filter(function (unspent) {
19772 return !unspent.spent
19773 }).map(function (unspent) {
19775 address: unspent.address,
19776 confirmations: unspent.confirmations,
19777 index: unspent.index,
19778 txId: unspent.txId,
19779 value: unspent.value,
19781 // FIXME: remove in
2.0.0
19782 hash: unspent.txId,
19783 pending: unspent.pending
19788 Wallet.prototype.setUnspentOutputs = function (unspents) {
19789 this.unspentMap = {}
19790 this.unspents = unspents.map(function (unspent) {
19791 // FIXME: remove unspent.hash in
2.0.0
19792 var txId = unspent.txId || unspent.hash
19793 var index = unspent.index
19795 // FIXME: remove in
2.0.0
19796 if (unspent.hash !== undefined) {
19797 console.warn('unspent.hash is deprecated, use unspent.txId instead')
19800 // FIXME: remove in
2.0.0
19801 if (index === undefined) {
19802 console.warn('unspent.outputIndex is deprecated, use unspent.index instead')
19803 index = unspent.outputIndex
19806 typeForce('String', txId)
19807 typeForce('Number', index)
19808 typeForce('Number', unspent.value)
19810 assert.equal(txId.length,
64, 'Expected valid txId, got ' + txId)
19811 assert.doesNotThrow(function () {
19812 Address.fromBase58Check(unspent.address)
19813 }, 'Expected Base58 Address, got ' + unspent.address)
19814 assert(isFinite(index), 'Expected finite index, got ' + index)
19816 // FIXME: remove branch in
2.0.0
19817 if (unspent.confirmations !== undefined) {
19818 typeForce('Number', unspent.confirmations)
19821 var txHash = bufferutils.reverse(new Buffer(txId, 'hex'))
19824 address: unspent.address,
19825 confirmations: unspent.confirmations ||
0,
19829 value: unspent.value,
19831 // FIXME: remove in
2.0.0
19832 pending: unspent.pending || false
19835 // FIXME: remove in
2.0.0
19836 this.unspentMap[txId + ':' + index] = unspent
19842 Wallet.prototype.signWith = function (tx, addresses) {
19843 addresses.forEach(function (address, i) {
19844 var privKey = this.getPrivateKeyForAddress(address)
19846 tx.sign(i, privKey)
19852 function estimatePaddedFee (tx, network) {
19853 var tmpTx = tx.clone()
19854 tmpTx.addOutput(Script.EMPTY, network.dustSoftThreshold ||
0)
19856 return network.estimateFee(tmpTx)
19859 // FIXME:
1.0.0 shims, remove in
2.0.0
19860 Wallet.prototype.getReceiveAddress = Wallet.prototype.getAddress
19861 Wallet.prototype.createTx = Wallet.prototype.createTransaction
19863 module.exports = Wallet
19865 }).call(this,require("buffer").Buffer)
19866 },{"./address":
54,"./bufferutils":
57,"./hdnode":
63,"./networks":
66,"./script":
68,"./transaction_builder":
71,"assert":
5,"buffer":
7,"randombytes":
52,"typeforce":
53}]},{},[
64])(
64)
19868 <script>bitcoin.networks.shadow = {
19869 magicPrefix: '\x19ShadowCash Signed Message:\n',
19871 public:
0xEE80286A,
19872 private:
0xEE8031E8
19879 estimateFee: function() { return "unused in this app" },
19882 bitcoin.networks.shadowtn = {
19883 magicPrefix: '\x19ShadowCash Signed Message:\n',
19885 public:
0x76C0FDFB,
19886 private:
0x76C1077A
19893 estimateFee: function() { return "unused in this app" },
19896 bitcoin.networks.clam = {
19898 public:
0xa8c26d64,
19899 private:
0xa8c17826
19905 bitcoin.networks.crown = {
19907 public:
0x0488b21e,
19908 private:
0x0488ade4
19915 bitcoin.networks.dash = {
19917 public:
0x0488b21e,
19918 private:
0x0488ade4
19925 bitcoin.networks.dashtn = {
19927 public:
0x043587cf,
19928 private:
0x04358394
19935 bitcoin.networks.game = {
19937 public:
0x0488b21e,
19938 private:
0x0488ade4
19945 bitcoin.networks.namecoin = {
19947 public:
0x0488b21e,
19948 private:
0x0488ade4
19951 //scriptHash:
0x10,
19955 bitcoin.networks.peercoin = {
19957 public:
0x0488b21e,
19958 private:
0x0488ade4
19961 //scriptHash:
0x10,
19965 bitcoin.networks.slimcoin = {
19967 public:
0xef6adf10,
19968 private:
0xef69ea80
19975 bitcoin.networks.slimcointn = {
19977 public:
0x043587CF,
19978 private:
0x04358394
19986 <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){
19987 (function (global){
19990 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
19991 // original notice:
19994 * The buffer module from node.js, for the browser.
19996 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
19999 function compare(a, b) {
20007 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
20008 if (a[i] !== b[i]) {
20023 function isBuffer(b) {
20024 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
20025 return global.Buffer.isBuffer(b);
20027 return !!(b != null && b._isBuffer);
20030 // based on node assert, original notice:
20032 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
20034 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
20036 // Originally from narwhal.js (http://narwhaljs.org)
20037 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
20039 // Permission is hereby granted, free of charge, to any person obtaining a copy
20040 // of this software and associated documentation files (the 'Software'), to
20041 // deal in the Software without restriction, including without limitation the
20042 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
20043 // sell copies of the Software, and to permit persons to whom the Software is
20044 // furnished to do so, subject to the following conditions:
20046 // The above copyright notice and this permission notice shall be included in
20047 // all copies or substantial portions of the Software.
20049 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20050 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20051 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20052 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20053 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20054 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20056 var util = require('util/');
20057 var hasOwn = Object.prototype.hasOwnProperty;
20058 var pSlice = Array.prototype.slice;
20059 var functionsHaveNames = (function () {
20060 return function foo() {}.name === 'foo';
20062 function pToString (obj) {
20063 return Object.prototype.toString.call(obj);
20065 function isView(arrbuf) {
20066 if (isBuffer(arrbuf)) {
20069 if (typeof global.ArrayBuffer !== 'function') {
20072 if (typeof ArrayBuffer.isView === 'function') {
20073 return ArrayBuffer.isView(arrbuf);
20078 if (arrbuf instanceof DataView) {
20081 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
20086 //
1. The assert module provides functions that throw
20087 // AssertionError's when particular conditions are not met. The
20088 // assert module must conform to the following interface.
20090 var assert = module.exports = ok;
20092 //
2. The AssertionError is defined in assert.
20093 // new assert.AssertionError({ message: message,
20095 // expected: expected })
20097 var regex = /\s*function\s+([^\(\s]*)\s*/;
20098 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
20099 function getName(func) {
20100 if (!util.isFunction(func)) {
20103 if (functionsHaveNames) {
20106 var str = func.toString();
20107 var match = str.match(regex);
20108 return match && match[
1];
20110 assert.AssertionError = function AssertionError(options) {
20111 this.name = 'AssertionError';
20112 this.actual = options.actual;
20113 this.expected = options.expected;
20114 this.operator = options.operator;
20115 if (options.message) {
20116 this.message = options.message;
20117 this.generatedMessage = false;
20119 this.message = getMessage(this);
20120 this.generatedMessage = true;
20122 var stackStartFunction = options.stackStartFunction || fail;
20123 if (Error.captureStackTrace) {
20124 Error.captureStackTrace(this, stackStartFunction);
20126 // non v8 browsers so we can have a stacktrace
20127 var err = new Error();
20129 var out = err.stack;
20131 // try to strip useless frames
20132 var fn_name = getName(stackStartFunction);
20133 var idx = out.indexOf('\n' + fn_name);
20135 // once we have located the function frame
20136 // we need to strip out everything before it (and its line)
20137 var next_line = out.indexOf('\n', idx +
1);
20138 out = out.substring(next_line +
1);
20146 // assert.AssertionError instanceof Error
20147 util.inherits(assert.AssertionError, Error);
20149 function truncate(s, n) {
20150 if (typeof s === 'string') {
20151 return s.length < n ? s : s.slice(
0, n);
20156 function inspect(something) {
20157 if (functionsHaveNames || !util.isFunction(something)) {
20158 return util.inspect(something);
20160 var rawname = getName(something);
20161 var name = rawname ? ': ' + rawname : '';
20162 return '[Function' + name + ']';
20164 function getMessage(self) {
20165 return truncate(inspect(self.actual),
128) + ' ' +
20166 self.operator + ' ' +
20167 truncate(inspect(self.expected),
128);
20170 // At present only the three keys mentioned above are used and
20171 // understood by the spec. Implementations or sub modules can pass
20172 // other keys to the AssertionError's constructor - they will be
20175 //
3. All of the following functions must throw an AssertionError
20176 // when a corresponding condition is not met, with a message that
20177 // may be undefined if not provided. All assertion methods provide
20178 // both the actual and expected values to the assertion error for
20179 // display purposes.
20181 function fail(actual, expected, message, operator, stackStartFunction) {
20182 throw new assert.AssertionError({
20185 expected: expected,
20186 operator: operator,
20187 stackStartFunction: stackStartFunction
20191 // EXTENSION! allows for well behaved errors defined elsewhere.
20192 assert.fail = fail;
20194 //
4. Pure assertion tests whether a value is truthy, as determined
20196 // assert.ok(guard, message_opt);
20197 // This statement is equivalent to assert.equal(true, !!guard,
20198 // message_opt);. To test strictly for the value true, use
20199 // assert.strictEqual(true, guard, message_opt);.
20201 function ok(value, message) {
20202 if (!value) fail(value, true, message, '==', assert.ok);
20206 //
5. The equality assertion tests shallow, coercive equality with
20208 // assert.equal(actual, expected, message_opt);
20210 assert.equal = function equal(actual, expected, message) {
20211 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
20214 //
6. The non-equality assertion tests for whether two objects are not equal
20215 // with != assert.notEqual(actual, expected, message_opt);
20217 assert.notEqual = function notEqual(actual, expected, message) {
20218 if (actual == expected) {
20219 fail(actual, expected, message, '!=', assert.notEqual);
20223 //
7. The equivalence assertion tests a deep equality relation.
20224 // assert.deepEqual(actual, expected, message_opt);
20226 assert.deepEqual = function deepEqual(actual, expected, message) {
20227 if (!_deepEqual(actual, expected, false)) {
20228 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
20232 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
20233 if (!_deepEqual(actual, expected, true)) {
20234 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
20238 function _deepEqual(actual, expected, strict, memos) {
20239 //
7.1. All identical values are equivalent, as determined by ===.
20240 if (actual === expected) {
20242 } else if (isBuffer(actual) && isBuffer(expected)) {
20243 return compare(actual, expected) ===
0;
20245 //
7.2. If the expected value is a Date object, the actual value is
20246 // equivalent if it is also a Date object that refers to the same time.
20247 } else if (util.isDate(actual) && util.isDate(expected)) {
20248 return actual.getTime() === expected.getTime();
20250 //
7.3 If the expected value is a RegExp object, the actual value is
20251 // equivalent if it is also a RegExp object with the same source and
20252 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
20253 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
20254 return actual.source === expected.source &&
20255 actual.global === expected.global &&
20256 actual.multiline === expected.multiline &&
20257 actual.lastIndex === expected.lastIndex &&
20258 actual.ignoreCase === expected.ignoreCase;
20260 //
7.4. Other pairs that do not both pass typeof value == 'object',
20261 // equivalence is determined by ==.
20262 } else if ((actual === null || typeof actual !== 'object') &&
20263 (expected === null || typeof expected !== 'object')) {
20264 return strict ? actual === expected : actual == expected;
20266 // If both values are instances of typed arrays, wrap their underlying
20267 // ArrayBuffers in a Buffer each to increase performance
20268 // This optimization requires the arrays to have the same type as checked by
20269 // Object.prototype.toString (aka pToString). Never perform binary
20270 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
20271 // bit patterns are not identical.
20272 } else if (isView(actual) && isView(expected) &&
20273 pToString(actual) === pToString(expected) &&
20274 !(actual instanceof Float32Array ||
20275 actual instanceof Float64Array)) {
20276 return compare(new Uint8Array(actual.buffer),
20277 new Uint8Array(expected.buffer)) ===
0;
20279 //
7.5 For all other Object pairs, including Array objects, equivalence is
20280 // determined by having the same number of owned properties (as verified
20281 // with Object.prototype.hasOwnProperty.call), the same set of keys
20282 // (although not necessarily the same order), equivalent values for every
20283 // corresponding key, and an identical 'prototype' property. Note: this
20284 // accounts for both named and indexed properties on Arrays.
20285 } else if (isBuffer(actual) !== isBuffer(expected)) {
20288 memos = memos || {actual: [], expected: []};
20290 var actualIndex = memos.actual.indexOf(actual);
20291 if (actualIndex !== -
1) {
20292 if (actualIndex === memos.expected.indexOf(expected)) {
20297 memos.actual.push(actual);
20298 memos.expected.push(expected);
20300 return objEquiv(actual, expected, strict, memos);
20304 function isArguments(object) {
20305 return Object.prototype.toString.call(object) == '[object Arguments]';
20308 function objEquiv(a, b, strict, actualVisitedObjects) {
20309 if (a === null || a === undefined || b === null || b === undefined)
20311 // if one is a primitive, the other must be same
20312 if (util.isPrimitive(a) || util.isPrimitive(b))
20314 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
20316 var aIsArgs = isArguments(a);
20317 var bIsArgs = isArguments(b);
20318 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
20321 a = pSlice.call(a);
20322 b = pSlice.call(b);
20323 return _deepEqual(a, b, strict);
20325 var ka = objectKeys(a);
20326 var kb = objectKeys(b);
20328 // having the same number of owned properties (keys incorporates
20330 if (ka.length !== kb.length)
20332 //the same set of keys (although not necessarily the same order),
20335 //~~~cheap key test
20336 for (i = ka.length -
1; i
>=
0; i--) {
20337 if (ka[i] !== kb[i])
20340 //equivalent values for every corresponding key, and
20341 //~~~possibly expensive deep test
20342 for (i = ka.length -
1; i
>=
0; i--) {
20344 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
20350 //
8. The non-equivalence assertion tests for any deep inequality.
20351 // assert.notDeepEqual(actual, expected, message_opt);
20353 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
20354 if (_deepEqual(actual, expected, false)) {
20355 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
20359 assert.notDeepStrictEqual = notDeepStrictEqual;
20360 function notDeepStrictEqual(actual, expected, message) {
20361 if (_deepEqual(actual, expected, true)) {
20362 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
20367 //
9. The strict equality assertion tests strict equality, as determined by ===.
20368 // assert.strictEqual(actual, expected, message_opt);
20370 assert.strictEqual = function strictEqual(actual, expected, message) {
20371 if (actual !== expected) {
20372 fail(actual, expected, message, '===', assert.strictEqual);
20376 //
10. The strict non-equality assertion tests for strict inequality, as
20377 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
20379 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
20380 if (actual === expected) {
20381 fail(actual, expected, message, '!==', assert.notStrictEqual);
20385 function expectedException(actual, expected) {
20386 if (!actual || !expected) {
20390 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
20391 return expected.test(actual);
20395 if (actual instanceof expected) {
20399 // Ignore. The instanceof check doesn't work for arrow functions.
20402 if (Error.isPrototypeOf(expected)) {
20406 return expected.call({}, actual) === true;
20409 function _tryBlock(block) {
20419 function _throws(shouldThrow, block, expected, message) {
20422 if (typeof block !== 'function') {
20423 throw new TypeError('"block" argument must be a function');
20426 if (typeof expected === 'string') {
20427 message = expected;
20431 actual = _tryBlock(block);
20433 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
20434 (message ? ' ' + message : '.');
20436 if (shouldThrow && !actual) {
20437 fail(actual, expected, 'Missing expected exception' + message);
20440 var userProvidedMessage = typeof message === 'string';
20441 var isUnwantedException = !shouldThrow && util.isError(actual);
20442 var isUnexpectedException = !shouldThrow && actual && !expected;
20444 if ((isUnwantedException &&
20445 userProvidedMessage &&
20446 expectedException(actual, expected)) ||
20447 isUnexpectedException) {
20448 fail(actual, expected, 'Got unwanted exception' + message);
20451 if ((shouldThrow && actual && expected &&
20452 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
20457 //
11. Expected to throw an error:
20458 // assert.throws(block, Error_opt, message_opt);
20460 assert.throws = function(block, /*optional*/error, /*optional*/message) {
20461 _throws(true, block, error, message);
20464 // EXTENSION! This is annoying to write outside this module.
20465 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
20466 _throws(false, block, error, message);
20469 assert.ifError = function(err) { if (err) throw err; };
20471 var objectKeys = Object.keys || function (obj) {
20473 for (var key in obj) {
20474 if (hasOwn.call(obj, key)) keys.push(key);
20479 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
20480 },{"util/":
30}],
2:[function(require,module,exports){
20483 exports.byteLength = byteLength
20484 exports.toByteArray = toByteArray
20485 exports.fromByteArray = fromByteArray
20489 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
20491 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
20492 for (var i =
0, len = code.length; i < len; ++i) {
20493 lookup[i] = code[i]
20494 revLookup[code.charCodeAt(i)] = i
20497 revLookup['-'.charCodeAt(
0)] =
62
20498 revLookup['_'.charCodeAt(
0)] =
63
20500 function placeHoldersCount (b64) {
20501 var len = b64.length
20503 throw new Error('Invalid string. Length must be a multiple of
4')
20506 // the number of equal signs (place holders)
20507 // if there are two placeholders, than the two characters before it
20508 // represent one byte
20509 // if there is only one, then the three characters before it represent
2 bytes
20510 // this is just a cheap hack to not do indexOf twice
20511 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
20514 function byteLength (b64) {
20515 // base64 is
4/
3 + up to two characters of the original data
20516 return b64.length *
3 /
4 - placeHoldersCount(b64)
20519 function toByteArray (b64) {
20520 var i, j, l, tmp, placeHolders, arr
20521 var len = b64.length
20522 placeHolders = placeHoldersCount(b64)
20524 arr = new Arr(len *
3 /
4 - placeHolders)
20526 // if there are placeholders, only get up to the last complete
4 chars
20527 l = placeHolders
> 0 ? len -
4 : len
20531 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
20532 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
20533 arr[L++] = (tmp
>> 16) &
0xFF
20534 arr[L++] = (tmp
>> 8) &
0xFF
20535 arr[L++] = tmp &
0xFF
20538 if (placeHolders ===
2) {
20539 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
20540 arr[L++] = tmp &
0xFF
20541 } else if (placeHolders ===
1) {
20542 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
20543 arr[L++] = (tmp
>> 8) &
0xFF
20544 arr[L++] = tmp &
0xFF
20550 function tripletToBase64 (num) {
20551 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
20554 function encodeChunk (uint8, start, end) {
20557 for (var i = start; i < end; i +=
3) {
20558 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
20559 output.push(tripletToBase64(tmp))
20561 return output.join('')
20564 function fromByteArray (uint8) {
20566 var len = uint8.length
20567 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
20570 var maxChunkLength =
16383 // must be multiple of
3
20572 // go through the array every three bytes, we'll deal with trailing stuff later
20573 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
20574 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
20577 // pad the end with zeros, but make sure to not forget the extra bytes
20578 if (extraBytes ===
1) {
20579 tmp = uint8[len -
1]
20580 output += lookup[tmp
>> 2]
20581 output += lookup[(tmp <<
4) &
0x3F]
20583 } else if (extraBytes ===
2) {
20584 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
20585 output += lookup[tmp
>> 10]
20586 output += lookup[(tmp
>> 4) &
0x3F]
20587 output += lookup[(tmp <<
2) &
0x3F]
20593 return parts.join('')
20596 },{}],
3:[function(require,module,exports){
20598 },{}],
4:[function(require,module,exports){
20599 (function (global){
20602 var buffer = require('buffer');
20603 var Buffer = buffer.Buffer;
20604 var SlowBuffer = buffer.SlowBuffer;
20605 var MAX_LEN = buffer.kMaxLength ||
2147483647;
20606 exports.alloc = function alloc(size, fill, encoding) {
20607 if (typeof Buffer.alloc === 'function') {
20608 return Buffer.alloc(size, fill, encoding);
20610 if (typeof encoding === 'number') {
20611 throw new TypeError('encoding must not be number');
20613 if (typeof size !== 'number') {
20614 throw new TypeError('size must be a number');
20616 if (size
> MAX_LEN) {
20617 throw new RangeError('size is too large');
20619 var enc = encoding;
20621 if (_fill === undefined) {
20625 var buf = new Buffer(size);
20626 if (typeof _fill === 'string') {
20627 var fillBuf = new Buffer(_fill, enc);
20628 var flen = fillBuf.length;
20630 while (++i < size) {
20631 buf[i] = fillBuf[i % flen];
20638 exports.allocUnsafe = function allocUnsafe(size) {
20639 if (typeof Buffer.allocUnsafe === 'function') {
20640 return Buffer.allocUnsafe(size);
20642 if (typeof size !== 'number') {
20643 throw new TypeError('size must be a number');
20645 if (size
> MAX_LEN) {
20646 throw new RangeError('size is too large');
20648 return new Buffer(size);
20650 exports.from = function from(value, encodingOrOffset, length) {
20651 if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
20652 return Buffer.from(value, encodingOrOffset, length);
20654 if (typeof value === 'number') {
20655 throw new TypeError('"value" argument must not be a number');
20657 if (typeof value === 'string') {
20658 return new Buffer(value, encodingOrOffset);
20660 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
20661 var offset = encodingOrOffset;
20662 if (arguments.length ===
1) {
20663 return new Buffer(value);
20665 if (typeof offset === 'undefined') {
20669 if (typeof len === 'undefined') {
20670 len = value.byteLength - offset;
20672 if (offset
>= value.byteLength) {
20673 throw new RangeError('\'offset\' is out of bounds');
20675 if (len
> value.byteLength - offset) {
20676 throw new RangeError('\'length\' is out of bounds');
20678 return new Buffer(value.slice(offset, offset + len));
20680 if (Buffer.isBuffer(value)) {
20681 var out = new Buffer(value.length);
20682 value.copy(out,
0,
0, value.length);
20686 if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
20687 return new Buffer(value);
20689 if (value.type === 'Buffer' && Array.isArray(value.data)) {
20690 return new Buffer(value.data);
20694 throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
20696 exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
20697 if (typeof Buffer.allocUnsafeSlow === 'function') {
20698 return Buffer.allocUnsafeSlow(size);
20700 if (typeof size !== 'number') {
20701 throw new TypeError('size must be a number');
20703 if (size
>= MAX_LEN) {
20704 throw new RangeError('size is too large');
20706 return new SlowBuffer(size);
20709 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
20710 },{"buffer":
5}],
5:[function(require,module,exports){
20712 * The buffer module from node.js, for the browser.
20714 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
20717 /* eslint-disable no-proto */
20721 var base64 = require('base64-js')
20722 var ieee754 = require('ieee754')
20724 exports.Buffer = Buffer
20725 exports.SlowBuffer = SlowBuffer
20726 exports.INSPECT_MAX_BYTES =
50
20728 var K_MAX_LENGTH =
0x7fffffff
20729 exports.kMaxLength = K_MAX_LENGTH
20732 * If `Buffer.TYPED_ARRAY_SUPPORT`:
20733 * === true Use Uint8Array implementation (fastest)
20734 * === false Print warning and recommend using `buffer` v4.x which has an Object
20735 * implementation (most compatible, even IE6)
20737 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
20738 * Opera
11.6+, iOS
4.2+.
20740 * We report that the browser does not support typed arrays if the are not subclassable
20741 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
20742 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
20743 * for __proto__ and has a buggy typed array implementation.
20745 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
20747 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
20748 typeof console.error === 'function') {
20750 'This browser lacks typed array (Uint8Array) support which is required by ' +
20751 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
20755 function typedArraySupport () {
20756 // Can typed array instances can be augmented?
20758 var arr = new Uint8Array(
1)
20759 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
20760 return arr.foo() ===
42
20766 function createBuffer (length) {
20767 if (length
> K_MAX_LENGTH) {
20768 throw new RangeError('Invalid typed array length')
20770 // Return an augmented `Uint8Array` instance
20771 var buf = new Uint8Array(length)
20772 buf.__proto__ = Buffer.prototype
20777 * The Buffer constructor returns instances of `Uint8Array` that have their
20778 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
20779 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
20780 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
20781 * returns a single octet.
20783 * The `Uint8Array` prototype remains unmodified.
20786 function Buffer (arg, encodingOrOffset, length) {
20788 if (typeof arg === 'number') {
20789 if (typeof encodingOrOffset === 'string') {
20791 'If encoding is specified then the first argument must be a string'
20794 return allocUnsafe(arg)
20796 return from(arg, encodingOrOffset, length)
20799 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
20800 if (typeof Symbol !== 'undefined' && Symbol.species &&
20801 Buffer[Symbol.species] === Buffer) {
20802 Object.defineProperty(Buffer, Symbol.species, {
20804 configurable: true,
20810 Buffer.poolSize =
8192 // not used by this implementation
20812 function from (value, encodingOrOffset, length) {
20813 if (typeof value === 'number') {
20814 throw new TypeError('"value" argument must not be a number')
20817 if (value instanceof ArrayBuffer) {
20818 return fromArrayBuffer(value, encodingOrOffset, length)
20821 if (typeof value === 'string') {
20822 return fromString(value, encodingOrOffset)
20825 return fromObject(value)
20829 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
20830 * if value is a number.
20831 * Buffer.from(str[, encoding])
20832 * Buffer.from(array)
20833 * Buffer.from(buffer)
20834 * Buffer.from(arrayBuffer[, byteOffset[, length]])
20836 Buffer.from = function (value, encodingOrOffset, length) {
20837 return from(value, encodingOrOffset, length)
20840 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
20841 // https://github.com/feross/buffer/pull/
148
20842 Buffer.prototype.__proto__ = Uint8Array.prototype
20843 Buffer.__proto__ = Uint8Array
20845 function assertSize (size) {
20846 if (typeof size !== 'number') {
20847 throw new TypeError('"size" argument must be a number')
20848 } else if (size <
0) {
20849 throw new RangeError('"size" argument must not be negative')
20853 function alloc (size, fill, encoding) {
20856 return createBuffer(size)
20858 if (fill !== undefined) {
20859 // Only pay attention to encoding if it's a string. This
20860 // prevents accidentally sending in a number that would
20861 // be interpretted as a start offset.
20862 return typeof encoding === 'string'
20863 ? createBuffer(size).fill(fill, encoding)
20864 : createBuffer(size).fill(fill)
20866 return createBuffer(size)
20870 * Creates a new filled Buffer instance.
20871 * alloc(size[, fill[, encoding]])
20873 Buffer.alloc = function (size, fill, encoding) {
20874 return alloc(size, fill, encoding)
20877 function allocUnsafe (size) {
20879 return createBuffer(size <
0 ?
0 : checked(size) |
0)
20883 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
20885 Buffer.allocUnsafe = function (size) {
20886 return allocUnsafe(size)
20889 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
20891 Buffer.allocUnsafeSlow = function (size) {
20892 return allocUnsafe(size)
20895 function fromString (string, encoding) {
20896 if (typeof encoding !== 'string' || encoding === '') {
20900 if (!Buffer.isEncoding(encoding)) {
20901 throw new TypeError('"encoding" must be a valid string encoding')
20904 var length = byteLength(string, encoding) |
0
20905 var buf = createBuffer(length)
20907 var actual = buf.write(string, encoding)
20909 if (actual !== length) {
20910 // Writing a hex string, for example, that contains invalid characters will
20911 // cause everything after the first invalid character to be ignored. (e.g.
20912 // 'abxxcd' will be treated as 'ab')
20913 buf = buf.slice(
0, actual)
20919 function fromArrayLike (array) {
20920 var length = array.length <
0 ?
0 : checked(array.length) |
0
20921 var buf = createBuffer(length)
20922 for (var i =
0; i < length; i +=
1) {
20923 buf[i] = array[i] &
255
20928 function fromArrayBuffer (array, byteOffset, length) {
20929 if (byteOffset <
0 || array.byteLength < byteOffset) {
20930 throw new RangeError('\'offset\' is out of bounds')
20933 if (array.byteLength < byteOffset + (length ||
0)) {
20934 throw new RangeError('\'length\' is out of bounds')
20938 if (byteOffset === undefined && length === undefined) {
20939 buf = new Uint8Array(array)
20940 } else if (length === undefined) {
20941 buf = new Uint8Array(array, byteOffset)
20943 buf = new Uint8Array(array, byteOffset, length)
20946 // Return an augmented `Uint8Array` instance
20947 buf.__proto__ = Buffer.prototype
20951 function fromObject (obj) {
20952 if (Buffer.isBuffer(obj)) {
20953 var len = checked(obj.length) |
0
20954 var buf = createBuffer(len)
20956 if (buf.length ===
0) {
20960 obj.copy(buf,
0,
0, len)
20965 if (ArrayBuffer.isView(obj) || 'length' in obj) {
20966 if (typeof obj.length !== 'number' || isnan(obj.length)) {
20967 return createBuffer(
0)
20969 return fromArrayLike(obj)
20972 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
20973 return fromArrayLike(obj.data)
20977 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
20980 function checked (length) {
20981 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
20982 // length is NaN (which is otherwise coerced to zero.)
20983 if (length
>= K_MAX_LENGTH) {
20984 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
20985 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
20990 function SlowBuffer (length) {
20991 if (+length != length) { // eslint-disable-line eqeqeq
20994 return Buffer.alloc(+length)
20997 Buffer.isBuffer = function isBuffer (b) {
20998 return b != null && b._isBuffer === true
21001 Buffer.compare = function compare (a, b) {
21002 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
21003 throw new TypeError('Arguments must be Buffers')
21006 if (a === b) return
0
21011 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
21012 if (a[i] !== b[i]) {
21019 if (x < y) return -
1
21020 if (y < x) return
1
21024 Buffer.isEncoding = function isEncoding (encoding) {
21025 switch (String(encoding).toLowerCase()) {
21043 Buffer.concat = function concat (list, length) {
21044 if (!Array.isArray(list)) {
21045 throw new TypeError('"list" argument must be an Array of Buffers')
21048 if (list.length ===
0) {
21049 return Buffer.alloc(
0)
21053 if (length === undefined) {
21055 for (i =
0; i < list.length; ++i) {
21056 length += list[i].length
21060 var buffer = Buffer.allocUnsafe(length)
21062 for (i =
0; i < list.length; ++i) {
21064 if (!Buffer.isBuffer(buf)) {
21065 throw new TypeError('"list" argument must be an Array of Buffers')
21067 buf.copy(buffer, pos)
21073 function byteLength (string, encoding) {
21074 if (Buffer.isBuffer(string)) {
21075 return string.length
21077 if (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) {
21078 return string.byteLength
21080 if (typeof string !== 'string') {
21081 string = '' + string
21084 var len = string.length
21085 if (len ===
0) return
0
21087 // Use a for loop to avoid recursion
21088 var loweredCase = false
21090 switch (encoding) {
21098 return utf8ToBytes(string).length
21107 return base64ToBytes(string).length
21109 if (loweredCase) return utf8ToBytes(string).length // assume utf8
21110 encoding = ('' + encoding).toLowerCase()
21115 Buffer.byteLength = byteLength
21117 function slowToString (encoding, start, end) {
21118 var loweredCase = false
21120 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
21121 // property of a typed array.
21123 // This behaves neither like String nor Uint8Array in that we set start/end
21124 // to their upper/lower bounds if the value passed is out of range.
21125 // undefined is handled specially as per ECMA-
262 6th Edition,
21126 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
21127 if (start === undefined || start <
0) {
21130 // Return early if start
> this.length. Done here to prevent potential uint32
21131 // coercion fail below.
21132 if (start
> this.length) {
21136 if (end === undefined || end
> this.length) {
21144 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
21148 if (end <= start) {
21152 if (!encoding) encoding = 'utf8'
21155 switch (encoding) {
21157 return hexSlice(this, start, end)
21161 return utf8Slice(this, start, end)
21164 return asciiSlice(this, start, end)
21168 return latin1Slice(this, start, end)
21171 return base64Slice(this, start, end)
21177 return utf16leSlice(this, start, end)
21180 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
21181 encoding = (encoding + '').toLowerCase()
21187 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
21188 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
21189 // reliably in a browserify context because there could be multiple different
21190 // copies of the 'buffer' package in use. This method works even for Buffer
21191 // instances that were created from another copy of the `buffer` package.
21192 // See: https://github.com/feross/buffer/issues/
154
21193 Buffer.prototype._isBuffer = true
21195 function swap (b, n, m) {
21201 Buffer.prototype.swap16 = function swap16 () {
21202 var len = this.length
21203 if (len %
2 !==
0) {
21204 throw new RangeError('Buffer size must be a multiple of
16-bits')
21206 for (var i =
0; i < len; i +=
2) {
21207 swap(this, i, i +
1)
21212 Buffer.prototype.swap32 = function swap32 () {
21213 var len = this.length
21214 if (len %
4 !==
0) {
21215 throw new RangeError('Buffer size must be a multiple of
32-bits')
21217 for (var i =
0; i < len; i +=
4) {
21218 swap(this, i, i +
3)
21219 swap(this, i +
1, i +
2)
21224 Buffer.prototype.swap64 = function swap64 () {
21225 var len = this.length
21226 if (len %
8 !==
0) {
21227 throw new RangeError('Buffer size must be a multiple of
64-bits')
21229 for (var i =
0; i < len; i +=
8) {
21230 swap(this, i, i +
7)
21231 swap(this, i +
1, i +
6)
21232 swap(this, i +
2, i +
5)
21233 swap(this, i +
3, i +
4)
21238 Buffer.prototype.toString = function toString () {
21239 var length = this.length
21240 if (length ===
0) return ''
21241 if (arguments.length ===
0) return utf8Slice(this,
0, length)
21242 return slowToString.apply(this, arguments)
21245 Buffer.prototype.equals = function equals (b) {
21246 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
21247 if (this === b) return true
21248 return Buffer.compare(this, b) ===
0
21251 Buffer.prototype.inspect = function inspect () {
21253 var max = exports.INSPECT_MAX_BYTES
21254 if (this.length
> 0) {
21255 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
21256 if (this.length
> max) str += ' ... '
21258 return '
<Buffer ' + str + '
>'
21261 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
21262 if (!Buffer.isBuffer(target)) {
21263 throw new TypeError('Argument must be a Buffer')
21266 if (start === undefined) {
21269 if (end === undefined) {
21270 end = target ? target.length :
0
21272 if (thisStart === undefined) {
21275 if (thisEnd === undefined) {
21276 thisEnd = this.length
21279 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
21280 throw new RangeError('out of range index')
21283 if (thisStart
>= thisEnd && start
>= end) {
21286 if (thisStart
>= thisEnd) {
21289 if (start
>= end) {
21298 if (this === target) return
0
21300 var x = thisEnd - thisStart
21301 var y = end - start
21302 var len = Math.min(x, y)
21304 var thisCopy = this.slice(thisStart, thisEnd)
21305 var targetCopy = target.slice(start, end)
21307 for (var i =
0; i < len; ++i) {
21308 if (thisCopy[i] !== targetCopy[i]) {
21315 if (x < y) return -
1
21316 if (y < x) return
1
21320 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
21321 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
21324 // - buffer - a Buffer to search
21325 // - val - a string, Buffer, or number
21326 // - byteOffset - an index into `buffer`; will be clamped to an int32
21327 // - encoding - an optional encoding, relevant is val is a string
21328 // - dir - true for indexOf, false for lastIndexOf
21329 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
21330 // Empty buffer means no match
21331 if (buffer.length ===
0) return -
1
21333 // Normalize byteOffset
21334 if (typeof byteOffset === 'string') {
21335 encoding = byteOffset
21337 } else if (byteOffset
> 0x7fffffff) {
21338 byteOffset =
0x7fffffff
21339 } else if (byteOffset < -
0x80000000) {
21340 byteOffset = -
0x80000000
21342 byteOffset = +byteOffset // Coerce to Number.
21343 if (isNaN(byteOffset)) {
21344 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
21345 byteOffset = dir ?
0 : (buffer.length -
1)
21348 // Normalize byteOffset: negative offsets start from the end of the buffer
21349 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
21350 if (byteOffset
>= buffer.length) {
21352 else byteOffset = buffer.length -
1
21353 } else if (byteOffset <
0) {
21354 if (dir) byteOffset =
0
21359 if (typeof val === 'string') {
21360 val = Buffer.from(val, encoding)
21363 // Finally, search either indexOf (if dir is true) or lastIndexOf
21364 if (Buffer.isBuffer(val)) {
21365 // Special case: looking for empty string/buffer always fails
21366 if (val.length ===
0) {
21369 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
21370 } else if (typeof val === 'number') {
21371 val = val &
0xFF // Search for a byte value [
0-
255]
21372 if (typeof Uint8Array.prototype.indexOf === 'function') {
21374 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
21376 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
21379 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
21382 throw new TypeError('val must be string, number or Buffer')
21385 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
21387 var arrLength = arr.length
21388 var valLength = val.length
21390 if (encoding !== undefined) {
21391 encoding = String(encoding).toLowerCase()
21392 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
21393 encoding === 'utf16le' || encoding === 'utf-
16le') {
21394 if (arr.length <
2 || val.length <
2) {
21404 function read (buf, i) {
21405 if (indexSize ===
1) {
21408 return buf.readUInt16BE(i * indexSize)
21414 var foundIndex = -
1
21415 for (i = byteOffset; i < arrLength; i++) {
21416 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
21417 if (foundIndex === -
1) foundIndex = i
21418 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
21420 if (foundIndex !== -
1) i -= i - foundIndex
21425 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
21426 for (i = byteOffset; i
>=
0; i--) {
21428 for (var j =
0; j < valLength; j++) {
21429 if (read(arr, i + j) !== read(val, j)) {
21434 if (found) return i
21441 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
21442 return this.indexOf(val, byteOffset, encoding) !== -
1
21445 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
21446 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
21449 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
21450 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
21453 function hexWrite (buf, string, offset, length) {
21454 offset = Number(offset) ||
0
21455 var remaining = buf.length - offset
21459 length = Number(length)
21460 if (length
> remaining) {
21465 // must be an even number of digits
21466 var strLen = string.length
21467 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
21469 if (length
> strLen /
2) {
21470 length = strLen /
2
21472 for (var i =
0; i < length; ++i) {
21473 var parsed = parseInt(string.substr(i *
2,
2),
16)
21474 if (isNaN(parsed)) return i
21475 buf[offset + i] = parsed
21480 function utf8Write (buf, string, offset, length) {
21481 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
21484 function asciiWrite (buf, string, offset, length) {
21485 return blitBuffer(asciiToBytes(string), buf, offset, length)
21488 function latin1Write (buf, string, offset, length) {
21489 return asciiWrite(buf, string, offset, length)
21492 function base64Write (buf, string, offset, length) {
21493 return blitBuffer(base64ToBytes(string), buf, offset, length)
21496 function ucs2Write (buf, string, offset, length) {
21497 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
21500 Buffer.prototype.write = function write (string, offset, length, encoding) {
21501 // Buffer#write(string)
21502 if (offset === undefined) {
21504 length = this.length
21506 // Buffer#write(string, encoding)
21507 } else if (length === undefined && typeof offset === 'string') {
21509 length = this.length
21511 // Buffer#write(string, offset[, length][, encoding])
21512 } else if (isFinite(offset)) {
21513 offset = offset
>>> 0
21514 if (isFinite(length)) {
21515 length = length
>>> 0
21516 if (encoding === undefined) encoding = 'utf8'
21523 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
21527 var remaining = this.length - offset
21528 if (length === undefined || length
> remaining) length = remaining
21530 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
21531 throw new RangeError('Attempt to write outside buffer bounds')
21534 if (!encoding) encoding = 'utf8'
21536 var loweredCase = false
21538 switch (encoding) {
21540 return hexWrite(this, string, offset, length)
21544 return utf8Write(this, string, offset, length)
21547 return asciiWrite(this, string, offset, length)
21551 return latin1Write(this, string, offset, length)
21554 // Warning: maxLength not taken into account in base64Write
21555 return base64Write(this, string, offset, length)
21561 return ucs2Write(this, string, offset, length)
21564 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
21565 encoding = ('' + encoding).toLowerCase()
21571 Buffer.prototype.toJSON = function toJSON () {
21574 data: Array.prototype.slice.call(this._arr || this,
0)
21578 function base64Slice (buf, start, end) {
21579 if (start ===
0 && end === buf.length) {
21580 return base64.fromByteArray(buf)
21582 return base64.fromByteArray(buf.slice(start, end))
21586 function utf8Slice (buf, start, end) {
21587 end = Math.min(buf.length, end)
21592 var firstByte = buf[i]
21593 var codePoint = null
21594 var bytesPerSequence = (firstByte
> 0xEF) ?
4
21595 : (firstByte
> 0xDF) ?
3
21596 : (firstByte
> 0xBF) ?
2
21599 if (i + bytesPerSequence <= end) {
21600 var secondByte, thirdByte, fourthByte, tempCodePoint
21602 switch (bytesPerSequence) {
21604 if (firstByte <
0x80) {
21605 codePoint = firstByte
21609 secondByte = buf[i +
1]
21610 if ((secondByte &
0xC0) ===
0x80) {
21611 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
21612 if (tempCodePoint
> 0x7F) {
21613 codePoint = tempCodePoint
21618 secondByte = buf[i +
1]
21619 thirdByte = buf[i +
2]
21620 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
21621 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
21622 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
21623 codePoint = tempCodePoint
21628 secondByte = buf[i +
1]
21629 thirdByte = buf[i +
2]
21630 fourthByte = buf[i +
3]
21631 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
21632 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
21633 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
21634 codePoint = tempCodePoint
21640 if (codePoint === null) {
21641 // we did not generate a valid codePoint so insert a
21642 // replacement char (U+FFFD) and advance only
1 byte
21644 bytesPerSequence =
1
21645 } else if (codePoint
> 0xFFFF) {
21646 // encode to utf16 (surrogate pair dance)
21647 codePoint -=
0x10000
21648 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
21649 codePoint =
0xDC00 | codePoint &
0x3FF
21652 res.push(codePoint)
21653 i += bytesPerSequence
21656 return decodeCodePointsArray(res)
21659 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
21660 // the lowest limit is Chrome, with
0x10000 args.
21661 // We go
1 magnitude less, for safety
21662 var MAX_ARGUMENTS_LENGTH =
0x1000
21664 function decodeCodePointsArray (codePoints) {
21665 var len = codePoints.length
21666 if (len <= MAX_ARGUMENTS_LENGTH) {
21667 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
21670 // Decode in chunks to avoid
"call stack size exceeded".
21674 res += String.fromCharCode.apply(
21676 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
21682 function asciiSlice (buf, start, end) {
21684 end = Math.min(buf.length, end)
21686 for (var i = start; i < end; ++i) {
21687 ret += String.fromCharCode(buf[i] &
0x7F)
21692 function latin1Slice (buf, start, end) {
21694 end = Math.min(buf.length, end)
21696 for (var i = start; i < end; ++i) {
21697 ret += String.fromCharCode(buf[i])
21702 function hexSlice (buf, start, end) {
21703 var len = buf.length
21705 if (!start || start <
0) start =
0
21706 if (!end || end <
0 || end
> len) end = len
21709 for (var i = start; i < end; ++i) {
21710 out += toHex(buf[i])
21715 function utf16leSlice (buf, start, end) {
21716 var bytes = buf.slice(start, end)
21718 for (var i =
0; i < bytes.length; i +=
2) {
21719 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
21724 Buffer.prototype.slice = function slice (start, end) {
21725 var len = this.length
21727 end = end === undefined ? len : ~~end
21731 if (start <
0) start =
0
21732 } else if (start
> len) {
21738 if (end <
0) end =
0
21739 } else if (end
> len) {
21743 if (end < start) end = start
21745 var newBuf = this.subarray(start, end)
21746 // Return an augmented `Uint8Array` instance
21747 newBuf.__proto__ = Buffer.prototype
21752 * Need to make sure that buffer isn't trying to write out of bounds.
21754 function checkOffset (offset, ext, length) {
21755 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
21756 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
21759 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
21760 offset = offset
>>> 0
21761 byteLength = byteLength
>>> 0
21762 if (!noAssert) checkOffset(offset, byteLength, this.length)
21764 var val = this[offset]
21767 while (++i < byteLength && (mul *=
0x100)) {
21768 val += this[offset + i] * mul
21774 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
21775 offset = offset
>>> 0
21776 byteLength = byteLength
>>> 0
21778 checkOffset(offset, byteLength, this.length)
21781 var val = this[offset + --byteLength]
21783 while (byteLength
> 0 && (mul *=
0x100)) {
21784 val += this[offset + --byteLength] * mul
21790 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
21791 offset = offset
>>> 0
21792 if (!noAssert) checkOffset(offset,
1, this.length)
21793 return this[offset]
21796 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
21797 offset = offset
>>> 0
21798 if (!noAssert) checkOffset(offset,
2, this.length)
21799 return this[offset] | (this[offset +
1] <<
8)
21802 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
21803 offset = offset
>>> 0
21804 if (!noAssert) checkOffset(offset,
2, this.length)
21805 return (this[offset] <<
8) | this[offset +
1]
21808 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
21809 offset = offset
>>> 0
21810 if (!noAssert) checkOffset(offset,
4, this.length)
21812 return ((this[offset]) |
21813 (this[offset +
1] <<
8) |
21814 (this[offset +
2] <<
16)) +
21815 (this[offset +
3] *
0x1000000)
21818 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
21819 offset = offset
>>> 0
21820 if (!noAssert) checkOffset(offset,
4, this.length)
21822 return (this[offset] *
0x1000000) +
21823 ((this[offset +
1] <<
16) |
21824 (this[offset +
2] <<
8) |
21828 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
21829 offset = offset
>>> 0
21830 byteLength = byteLength
>>> 0
21831 if (!noAssert) checkOffset(offset, byteLength, this.length)
21833 var val = this[offset]
21836 while (++i < byteLength && (mul *=
0x100)) {
21837 val += this[offset + i] * mul
21841 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
21846 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
21847 offset = offset
>>> 0
21848 byteLength = byteLength
>>> 0
21849 if (!noAssert) checkOffset(offset, byteLength, this.length)
21853 var val = this[offset + --i]
21854 while (i
> 0 && (mul *=
0x100)) {
21855 val += this[offset + --i] * mul
21859 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
21864 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
21865 offset = offset
>>> 0
21866 if (!noAssert) checkOffset(offset,
1, this.length)
21867 if (!(this[offset] &
0x80)) return (this[offset])
21868 return ((
0xff - this[offset] +
1) * -
1)
21871 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
21872 offset = offset
>>> 0
21873 if (!noAssert) checkOffset(offset,
2, this.length)
21874 var val = this[offset] | (this[offset +
1] <<
8)
21875 return (val &
0x8000) ? val |
0xFFFF0000 : val
21878 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
21879 offset = offset
>>> 0
21880 if (!noAssert) checkOffset(offset,
2, this.length)
21881 var val = this[offset +
1] | (this[offset] <<
8)
21882 return (val &
0x8000) ? val |
0xFFFF0000 : val
21885 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
21886 offset = offset
>>> 0
21887 if (!noAssert) checkOffset(offset,
4, this.length)
21889 return (this[offset]) |
21890 (this[offset +
1] <<
8) |
21891 (this[offset +
2] <<
16) |
21892 (this[offset +
3] <<
24)
21895 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
21896 offset = offset
>>> 0
21897 if (!noAssert) checkOffset(offset,
4, this.length)
21899 return (this[offset] <<
24) |
21900 (this[offset +
1] <<
16) |
21901 (this[offset +
2] <<
8) |
21905 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
21906 offset = offset
>>> 0
21907 if (!noAssert) checkOffset(offset,
4, this.length)
21908 return ieee754.read(this, offset, true,
23,
4)
21911 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
21912 offset = offset
>>> 0
21913 if (!noAssert) checkOffset(offset,
4, this.length)
21914 return ieee754.read(this, offset, false,
23,
4)
21917 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
21918 offset = offset
>>> 0
21919 if (!noAssert) checkOffset(offset,
8, this.length)
21920 return ieee754.read(this, offset, true,
52,
8)
21923 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
21924 offset = offset
>>> 0
21925 if (!noAssert) checkOffset(offset,
8, this.length)
21926 return ieee754.read(this, offset, false,
52,
8)
21929 function checkInt (buf, value, offset, ext, max, min) {
21930 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
21931 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
21932 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
21935 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
21937 offset = offset
>>> 0
21938 byteLength = byteLength
>>> 0
21940 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
21941 checkInt(this, value, offset, byteLength, maxBytes,
0)
21946 this[offset] = value &
0xFF
21947 while (++i < byteLength && (mul *=
0x100)) {
21948 this[offset + i] = (value / mul) &
0xFF
21951 return offset + byteLength
21954 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
21956 offset = offset
>>> 0
21957 byteLength = byteLength
>>> 0
21959 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
21960 checkInt(this, value, offset, byteLength, maxBytes,
0)
21963 var i = byteLength -
1
21965 this[offset + i] = value &
0xFF
21966 while (--i
>=
0 && (mul *=
0x100)) {
21967 this[offset + i] = (value / mul) &
0xFF
21970 return offset + byteLength
21973 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
21975 offset = offset
>>> 0
21976 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
21977 this[offset] = (value &
0xff)
21981 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
21983 offset = offset
>>> 0
21984 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
21985 this[offset] = (value &
0xff)
21986 this[offset +
1] = (value
>>> 8)
21990 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
21992 offset = offset
>>> 0
21993 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
21994 this[offset] = (value
>>> 8)
21995 this[offset +
1] = (value &
0xff)
21999 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
22001 offset = offset
>>> 0
22002 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
22003 this[offset +
3] = (value
>>> 24)
22004 this[offset +
2] = (value
>>> 16)
22005 this[offset +
1] = (value
>>> 8)
22006 this[offset] = (value &
0xff)
22010 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
22012 offset = offset
>>> 0
22013 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
22014 this[offset] = (value
>>> 24)
22015 this[offset +
1] = (value
>>> 16)
22016 this[offset +
2] = (value
>>> 8)
22017 this[offset +
3] = (value &
0xff)
22021 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
22023 offset = offset
>>> 0
22025 var limit = Math.pow(
2, (
8 * byteLength) -
1)
22027 checkInt(this, value, offset, byteLength, limit -
1, -limit)
22033 this[offset] = value &
0xFF
22034 while (++i < byteLength && (mul *=
0x100)) {
22035 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
22038 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
22041 return offset + byteLength
22044 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
22046 offset = offset
>>> 0
22048 var limit = Math.pow(
2, (
8 * byteLength) -
1)
22050 checkInt(this, value, offset, byteLength, limit -
1, -limit)
22053 var i = byteLength -
1
22056 this[offset + i] = value &
0xFF
22057 while (--i
>=
0 && (mul *=
0x100)) {
22058 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
22061 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
22064 return offset + byteLength
22067 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
22069 offset = offset
>>> 0
22070 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
22071 if (value <
0) value =
0xff + value +
1
22072 this[offset] = (value &
0xff)
22076 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
22078 offset = offset
>>> 0
22079 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
22080 this[offset] = (value &
0xff)
22081 this[offset +
1] = (value
>>> 8)
22085 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
22087 offset = offset
>>> 0
22088 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
22089 this[offset] = (value
>>> 8)
22090 this[offset +
1] = (value &
0xff)
22094 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
22096 offset = offset
>>> 0
22097 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
22098 this[offset] = (value &
0xff)
22099 this[offset +
1] = (value
>>> 8)
22100 this[offset +
2] = (value
>>> 16)
22101 this[offset +
3] = (value
>>> 24)
22105 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
22107 offset = offset
>>> 0
22108 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
22109 if (value <
0) value =
0xffffffff + value +
1
22110 this[offset] = (value
>>> 24)
22111 this[offset +
1] = (value
>>> 16)
22112 this[offset +
2] = (value
>>> 8)
22113 this[offset +
3] = (value &
0xff)
22117 function checkIEEE754 (buf, value, offset, ext, max, min) {
22118 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
22119 if (offset <
0) throw new RangeError('Index out of range')
22122 function writeFloat (buf, value, offset, littleEndian, noAssert) {
22124 offset = offset
>>> 0
22126 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
22128 ieee754.write(buf, value, offset, littleEndian,
23,
4)
22132 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
22133 return writeFloat(this, value, offset, true, noAssert)
22136 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
22137 return writeFloat(this, value, offset, false, noAssert)
22140 function writeDouble (buf, value, offset, littleEndian, noAssert) {
22142 offset = offset
>>> 0
22144 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
22146 ieee754.write(buf, value, offset, littleEndian,
52,
8)
22150 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
22151 return writeDouble(this, value, offset, true, noAssert)
22154 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
22155 return writeDouble(this, value, offset, false, noAssert)
22158 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
22159 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
22160 if (!start) start =
0
22161 if (!end && end !==
0) end = this.length
22162 if (targetStart
>= target.length) targetStart = target.length
22163 if (!targetStart) targetStart =
0
22164 if (end
> 0 && end < start) end = start
22166 // Copy
0 bytes; we're done
22167 if (end === start) return
0
22168 if (target.length ===
0 || this.length ===
0) return
0
22170 // Fatal error conditions
22171 if (targetStart <
0) {
22172 throw new RangeError('targetStart out of bounds')
22174 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
22175 if (end <
0) throw new RangeError('sourceEnd out of bounds')
22178 if (end
> this.length) end = this.length
22179 if (target.length - targetStart < end - start) {
22180 end = target.length - targetStart + start
22183 var len = end - start
22186 if (this === target && start < targetStart && targetStart < end) {
22187 // descending copy from end
22188 for (i = len -
1; i
>=
0; --i) {
22189 target[i + targetStart] = this[i + start]
22191 } else if (len <
1000) {
22192 // ascending copy from start
22193 for (i =
0; i < len; ++i) {
22194 target[i + targetStart] = this[i + start]
22197 Uint8Array.prototype.set.call(
22199 this.subarray(start, start + len),
22208 // buffer.fill(number[, offset[, end]])
22209 // buffer.fill(buffer[, offset[, end]])
22210 // buffer.fill(string[, offset[, end]][, encoding])
22211 Buffer.prototype.fill = function fill (val, start, end, encoding) {
22212 // Handle string cases:
22213 if (typeof val === 'string') {
22214 if (typeof start === 'string') {
22218 } else if (typeof end === 'string') {
22222 if (val.length ===
1) {
22223 var code = val.charCodeAt(
0)
22228 if (encoding !== undefined && typeof encoding !== 'string') {
22229 throw new TypeError('encoding must be a string')
22231 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
22232 throw new TypeError('Unknown encoding: ' + encoding)
22234 } else if (typeof val === 'number') {
22238 // Invalid ranges are not set to a default, so can range check early.
22239 if (start <
0 || this.length < start || this.length < end) {
22240 throw new RangeError('Out of range index')
22243 if (end <= start) {
22247 start = start
>>> 0
22248 end = end === undefined ? this.length : end
>>> 0
22253 if (typeof val === 'number') {
22254 for (i = start; i < end; ++i) {
22258 var bytes = Buffer.isBuffer(val)
22260 : new Buffer(val, encoding)
22261 var len = bytes.length
22262 for (i =
0; i < end - start; ++i) {
22263 this[i + start] = bytes[i % len]
22270 // HELPER FUNCTIONS
22271 // ================
22273 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
22275 function base64clean (str) {
22276 // Node strips out invalid characters like \n and \t from the string, base64-js does not
22277 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
22278 // Node converts strings with length <
2 to ''
22279 if (str.length <
2) return ''
22280 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
22281 while (str.length %
4 !==
0) {
22287 function stringtrim (str) {
22288 if (str.trim) return str.trim()
22289 return str.replace(/^\s+|\s+$/g, '')
22292 function toHex (n) {
22293 if (n <
16) return '
0' + n.toString(
16)
22294 return n.toString(
16)
22297 function utf8ToBytes (string, units) {
22298 units = units || Infinity
22300 var length = string.length
22301 var leadSurrogate = null
22304 for (var i =
0; i < length; ++i) {
22305 codePoint = string.charCodeAt(i)
22307 // is surrogate component
22308 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
22309 // last char was a lead
22310 if (!leadSurrogate) {
22312 if (codePoint
> 0xDBFF) {
22313 // unexpected trail
22314 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22316 } else if (i +
1 === length) {
22318 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22323 leadSurrogate = codePoint
22328 //
2 leads in a row
22329 if (codePoint <
0xDC00) {
22330 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22331 leadSurrogate = codePoint
22335 // valid surrogate pair
22336 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
22337 } else if (leadSurrogate) {
22338 // valid bmp char, but last char was a lead
22339 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
22342 leadSurrogate = null
22345 if (codePoint <
0x80) {
22346 if ((units -=
1) <
0) break
22347 bytes.push(codePoint)
22348 } else if (codePoint <
0x800) {
22349 if ((units -=
2) <
0) break
22351 codePoint
>> 0x6 |
0xC0,
22352 codePoint &
0x3F |
0x80
22354 } else if (codePoint <
0x10000) {
22355 if ((units -=
3) <
0) break
22357 codePoint
>> 0xC |
0xE0,
22358 codePoint
>> 0x6 &
0x3F |
0x80,
22359 codePoint &
0x3F |
0x80
22361 } else if (codePoint <
0x110000) {
22362 if ((units -=
4) <
0) break
22364 codePoint
>> 0x12 |
0xF0,
22365 codePoint
>> 0xC &
0x3F |
0x80,
22366 codePoint
>> 0x6 &
0x3F |
0x80,
22367 codePoint &
0x3F |
0x80
22370 throw new Error('Invalid code point')
22377 function asciiToBytes (str) {
22379 for (var i =
0; i < str.length; ++i) {
22380 // Node's code seems to be doing this and not &
0x7F..
22381 byteArray.push(str.charCodeAt(i) &
0xFF)
22386 function utf16leToBytes (str, units) {
22389 for (var i =
0; i < str.length; ++i) {
22390 if ((units -=
2) <
0) break
22392 c = str.charCodeAt(i)
22402 function base64ToBytes (str) {
22403 return base64.toByteArray(base64clean(str))
22406 function blitBuffer (src, dst, offset, length) {
22407 for (var i =
0; i < length; ++i) {
22408 if ((i + offset
>= dst.length) || (i
>= src.length)) break
22409 dst[i + offset] = src[i]
22414 function isnan (val) {
22415 return val !== val // eslint-disable-line no-self-compare
22418 },{"base64-js":
2,"ieee754":
8}],
6:[function(require,module,exports){
22419 (function (Buffer){
22420 // Copyright Joyent, Inc. and other Node contributors.
22422 // Permission is hereby granted, free of charge, to any person obtaining a
22423 // copy of this software and associated documentation files (the
22424 // "Software"), to deal in the Software without restriction, including
22425 // without limitation the rights to use, copy, modify, merge, publish,
22426 // distribute, sublicense, and/or sell copies of the Software, and to permit
22427 // persons to whom the Software is furnished to do so, subject to the
22428 // following conditions:
22430 // The above copyright notice and this permission notice shall be included
22431 // in all copies or substantial portions of the Software.
22433 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22434 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22435 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
22436 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
22437 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22438 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22439 // USE OR OTHER DEALINGS IN THE SOFTWARE.
22441 // NOTE: These type checking functions intentionally don't use `instanceof`
22442 // because it is fragile and can be easily faked with `Object.create()`.
22444 function isArray(arg) {
22445 if (Array.isArray) {
22446 return Array.isArray(arg);
22448 return objectToString(arg) === '[object Array]';
22450 exports.isArray = isArray;
22452 function isBoolean(arg) {
22453 return typeof arg === 'boolean';
22455 exports.isBoolean = isBoolean;
22457 function isNull(arg) {
22458 return arg === null;
22460 exports.isNull = isNull;
22462 function isNullOrUndefined(arg) {
22463 return arg == null;
22465 exports.isNullOrUndefined = isNullOrUndefined;
22467 function isNumber(arg) {
22468 return typeof arg === 'number';
22470 exports.isNumber = isNumber;
22472 function isString(arg) {
22473 return typeof arg === 'string';
22475 exports.isString = isString;
22477 function isSymbol(arg) {
22478 return typeof arg === 'symbol';
22480 exports.isSymbol = isSymbol;
22482 function isUndefined(arg) {
22483 return arg === void
0;
22485 exports.isUndefined = isUndefined;
22487 function isRegExp(re) {
22488 return objectToString(re) === '[object RegExp]';
22490 exports.isRegExp = isRegExp;
22492 function isObject(arg) {
22493 return typeof arg === 'object' && arg !== null;
22495 exports.isObject = isObject;
22497 function isDate(d) {
22498 return objectToString(d) === '[object Date]';
22500 exports.isDate = isDate;
22502 function isError(e) {
22503 return (objectToString(e) === '[object Error]' || e instanceof Error);
22505 exports.isError = isError;
22507 function isFunction(arg) {
22508 return typeof arg === 'function';
22510 exports.isFunction = isFunction;
22512 function isPrimitive(arg) {
22513 return arg === null ||
22514 typeof arg === 'boolean' ||
22515 typeof arg === 'number' ||
22516 typeof arg === 'string' ||
22517 typeof arg === 'symbol' || // ES6 symbol
22518 typeof arg === 'undefined';
22520 exports.isPrimitive = isPrimitive;
22522 exports.isBuffer = Buffer.isBuffer;
22524 function objectToString(o) {
22525 return Object.prototype.toString.call(o);
22528 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
22529 },{"../../is-buffer/index.js":
10}],
7:[function(require,module,exports){
22530 // Copyright Joyent, Inc. and other Node contributors.
22532 // Permission is hereby granted, free of charge, to any person obtaining a
22533 // copy of this software and associated documentation files (the
22534 // "Software"), to deal in the Software without restriction, including
22535 // without limitation the rights to use, copy, modify, merge, publish,
22536 // distribute, sublicense, and/or sell copies of the Software, and to permit
22537 // persons to whom the Software is furnished to do so, subject to the
22538 // following conditions:
22540 // The above copyright notice and this permission notice shall be included
22541 // in all copies or substantial portions of the Software.
22543 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22544 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22545 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
22546 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
22547 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22548 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22549 // USE OR OTHER DEALINGS IN THE SOFTWARE.
22551 function EventEmitter() {
22552 this._events = this._events || {};
22553 this._maxListeners = this._maxListeners || undefined;
22555 module.exports = EventEmitter;
22557 // Backwards-compat with node
0.10.x
22558 EventEmitter.EventEmitter = EventEmitter;
22560 EventEmitter.prototype._events = undefined;
22561 EventEmitter.prototype._maxListeners = undefined;
22563 // By default EventEmitters will print a warning if more than
10 listeners are
22564 // added to it. This is a useful default which helps finding memory leaks.
22565 EventEmitter.defaultMaxListeners =
10;
22567 // Obviously not all Emitters should be limited to
10. This function allows
22568 // that to be increased. Set to zero for unlimited.
22569 EventEmitter.prototype.setMaxListeners = function(n) {
22570 if (!isNumber(n) || n <
0 || isNaN(n))
22571 throw TypeError('n must be a positive number');
22572 this._maxListeners = n;
22576 EventEmitter.prototype.emit = function(type) {
22577 var er, handler, len, args, i, listeners;
22582 // If there is no 'error' event listener then throw.
22583 if (type === 'error') {
22584 if (!this._events.error ||
22585 (isObject(this._events.error) && !this._events.error.length)) {
22587 if (er instanceof Error) {
22588 throw er; // Unhandled 'error' event
22590 // At least give some kind of context to the user
22591 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
22598 handler = this._events[type];
22600 if (isUndefined(handler))
22603 if (isFunction(handler)) {
22604 switch (arguments.length) {
22607 handler.call(this);
22610 handler.call(this, arguments[
1]);
22613 handler.call(this, arguments[
1], arguments[
2]);
22617 args = Array.prototype.slice.call(arguments,
1);
22618 handler.apply(this, args);
22620 } else if (isObject(handler)) {
22621 args = Array.prototype.slice.call(arguments,
1);
22622 listeners = handler.slice();
22623 len = listeners.length;
22624 for (i =
0; i < len; i++)
22625 listeners[i].apply(this, args);
22631 EventEmitter.prototype.addListener = function(type, listener) {
22634 if (!isFunction(listener))
22635 throw TypeError('listener must be a function');
22640 // To avoid recursion in the case that type === "newListener"! Before
22641 // adding it to the listeners, first emit "newListener".
22642 if (this._events.newListener)
22643 this.emit('newListener', type,
22644 isFunction(listener.listener) ?
22645 listener.listener : listener);
22647 if (!this._events[type])
22648 // Optimize the case of one listener. Don't need the extra array object.
22649 this._events[type] = listener;
22650 else if (isObject(this._events[type]))
22651 // If we've already got an array, just append.
22652 this._events[type].push(listener);
22654 // Adding the second element, need to change to array.
22655 this._events[type] = [this._events[type], listener];
22657 // Check for listener leak
22658 if (isObject(this._events[type]) && !this._events[type].warned) {
22659 if (!isUndefined(this._maxListeners)) {
22660 m = this._maxListeners;
22662 m = EventEmitter.defaultMaxListeners;
22665 if (m && m
> 0 && this._events[type].length
> m) {
22666 this._events[type].warned = true;
22667 console.error('(node) warning: possible EventEmitter memory ' +
22668 'leak detected. %d listeners added. ' +
22669 'Use emitter.setMaxListeners() to increase limit.',
22670 this._events[type].length);
22671 if (typeof console.trace === 'function') {
22672 // not supported in IE
10
22681 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
22683 EventEmitter.prototype.once = function(type, listener) {
22684 if (!isFunction(listener))
22685 throw TypeError('listener must be a function');
22690 this.removeListener(type, g);
22694 listener.apply(this, arguments);
22698 g.listener = listener;
22704 // emits a 'removeListener' event iff the listener was removed
22705 EventEmitter.prototype.removeListener = function(type, listener) {
22706 var list, position, length, i;
22708 if (!isFunction(listener))
22709 throw TypeError('listener must be a function');
22711 if (!this._events || !this._events[type])
22714 list = this._events[type];
22715 length = list.length;
22718 if (list === listener ||
22719 (isFunction(list.listener) && list.listener === listener)) {
22720 delete this._events[type];
22721 if (this._events.removeListener)
22722 this.emit('removeListener', type, listener);
22724 } else if (isObject(list)) {
22725 for (i = length; i--
> 0;) {
22726 if (list[i] === listener ||
22727 (list[i].listener && list[i].listener === listener)) {
22736 if (list.length ===
1) {
22738 delete this._events[type];
22740 list.splice(position,
1);
22743 if (this._events.removeListener)
22744 this.emit('removeListener', type, listener);
22750 EventEmitter.prototype.removeAllListeners = function(type) {
22751 var key, listeners;
22756 // not listening for removeListener, no need to emit
22757 if (!this._events.removeListener) {
22758 if (arguments.length ===
0)
22760 else if (this._events[type])
22761 delete this._events[type];
22765 // emit removeListener for all listeners on all events
22766 if (arguments.length ===
0) {
22767 for (key in this._events) {
22768 if (key === 'removeListener') continue;
22769 this.removeAllListeners(key);
22771 this.removeAllListeners('removeListener');
22776 listeners = this._events[type];
22778 if (isFunction(listeners)) {
22779 this.removeListener(type, listeners);
22780 } else if (listeners) {
22782 while (listeners.length)
22783 this.removeListener(type, listeners[listeners.length -
1]);
22785 delete this._events[type];
22790 EventEmitter.prototype.listeners = function(type) {
22792 if (!this._events || !this._events[type])
22794 else if (isFunction(this._events[type]))
22795 ret = [this._events[type]];
22797 ret = this._events[type].slice();
22801 EventEmitter.prototype.listenerCount = function(type) {
22802 if (this._events) {
22803 var evlistener = this._events[type];
22805 if (isFunction(evlistener))
22807 else if (evlistener)
22808 return evlistener.length;
22813 EventEmitter.listenerCount = function(emitter, type) {
22814 return emitter.listenerCount(type);
22817 function isFunction(arg) {
22818 return typeof arg === 'function';
22821 function isNumber(arg) {
22822 return typeof arg === 'number';
22825 function isObject(arg) {
22826 return typeof arg === 'object' && arg !== null;
22829 function isUndefined(arg) {
22830 return arg === void
0;
22833 },{}],
8:[function(require,module,exports){
22834 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
22836 var eLen = nBytes *
8 - mLen -
1
22837 var eMax = (
1 << eLen) -
1
22838 var eBias = eMax
>> 1
22840 var i = isLE ? (nBytes -
1) :
0
22841 var d = isLE ? -
1 :
1
22842 var s = buffer[offset + i]
22846 e = s & ((
1 << (-nBits)) -
1)
22849 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
22851 m = e & ((
1 << (-nBits)) -
1)
22854 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
22858 } else if (e === eMax) {
22859 return m ? NaN : ((s ? -
1 :
1) * Infinity)
22861 m = m + Math.pow(
2, mLen)
22864 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
22867 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
22869 var eLen = nBytes *
8 - mLen -
1
22870 var eMax = (
1 << eLen) -
1
22871 var eBias = eMax
>> 1
22872 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
22873 var i = isLE ?
0 : (nBytes -
1)
22874 var d = isLE ?
1 : -
1
22875 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
22877 value = Math.abs(value)
22879 if (isNaN(value) || value === Infinity) {
22880 m = isNaN(value) ?
1 :
0
22883 e = Math.floor(Math.log(value) / Math.LN2)
22884 if (value * (c = Math.pow(
2, -e)) <
1) {
22888 if (e + eBias
>=
1) {
22891 value += rt * Math.pow(
2,
1 - eBias)
22893 if (value * c
>=
2) {
22898 if (e + eBias
>= eMax) {
22901 } else if (e + eBias
>=
1) {
22902 m = (value * c -
1) * Math.pow(
2, mLen)
22905 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
22910 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
22912 e = (e << mLen) | m
22914 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
22916 buffer[offset + i - d] |= s *
128
22919 },{}],
9:[function(require,module,exports){
22920 if (typeof Object.create === 'function') {
22921 // implementation from standard node.js 'util' module
22922 module.exports = function inherits(ctor, superCtor) {
22923 ctor.super_ = superCtor
22924 ctor.prototype = Object.create(superCtor.prototype, {
22934 // old school shim for old browsers
22935 module.exports = function inherits(ctor, superCtor) {
22936 ctor.super_ = superCtor
22937 var TempCtor = function () {}
22938 TempCtor.prototype = superCtor.prototype
22939 ctor.prototype = new TempCtor()
22940 ctor.prototype.constructor = ctor
22944 },{}],
10:[function(require,module,exports){
22946 * Determine if an object is a Buffer
22948 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
22952 // The _isBuffer check is for Safari
5-
7 support, because it's missing
22953 // Object.prototype.constructor. Remove this eventually
22954 module.exports = function (obj) {
22955 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
22958 function isBuffer (obj) {
22959 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
22962 // For Node v0.10 support. Remove this eventually.
22963 function isSlowBuffer (obj) {
22964 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
22967 },{}],
11:[function(require,module,exports){
22968 var toString = {}.toString;
22970 module.exports = Array.isArray || function (arr) {
22971 return toString.call(arr) == '[object Array]';
22974 },{}],
12:[function(require,module,exports){
22975 (function (process){
22978 if (!process.version ||
22979 process.version.indexOf('v0.') ===
0 ||
22980 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
22981 module.exports = nextTick;
22983 module.exports = process.nextTick;
22986 function nextTick(fn, arg1, arg2, arg3) {
22987 if (typeof fn !== 'function') {
22988 throw new TypeError('"callback" argument must be a function');
22990 var len = arguments.length;
22995 return process.nextTick(fn);
22997 return process.nextTick(function afterTickOne() {
22998 fn.call(null, arg1);
23001 return process.nextTick(function afterTickTwo() {
23002 fn.call(null, arg1, arg2);
23005 return process.nextTick(function afterTickThree() {
23006 fn.call(null, arg1, arg2, arg3);
23009 args = new Array(len -
1);
23011 while (i < args.length) {
23012 args[i++] = arguments[i];
23014 return process.nextTick(function afterTick() {
23015 fn.apply(null, args);
23020 }).call(this,require('_process'))
23021 },{"_process":
13}],
13:[function(require,module,exports){
23022 // shim for using process in browser
23023 var process = module.exports = {};
23025 // cached from whatever global is present so that test runners that stub it
23026 // don't break things. But we need to wrap it in a try catch in case it is
23027 // wrapped in strict mode code which doesn't define any globals. It's inside a
23028 // function because try/catches deoptimize in certain engines.
23030 var cachedSetTimeout;
23031 var cachedClearTimeout;
23033 function defaultSetTimout() {
23034 throw new Error('setTimeout has not been defined');
23036 function defaultClearTimeout () {
23037 throw new Error('clearTimeout has not been defined');
23041 if (typeof setTimeout === 'function') {
23042 cachedSetTimeout = setTimeout;
23044 cachedSetTimeout = defaultSetTimout;
23047 cachedSetTimeout = defaultSetTimout;
23050 if (typeof clearTimeout === 'function') {
23051 cachedClearTimeout = clearTimeout;
23053 cachedClearTimeout = defaultClearTimeout;
23056 cachedClearTimeout = defaultClearTimeout;
23059 function runTimeout(fun) {
23060 if (cachedSetTimeout === setTimeout) {
23061 //normal enviroments in sane situations
23062 return setTimeout(fun,
0);
23064 // if setTimeout wasn't available but was latter defined
23065 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
23066 cachedSetTimeout = setTimeout;
23067 return setTimeout(fun,
0);
23070 // when when somebody has screwed with setTimeout but no I.E. maddness
23071 return cachedSetTimeout(fun,
0);
23074 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
23075 return cachedSetTimeout.call(null, fun,
0);
23077 // 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
23078 return cachedSetTimeout.call(this, fun,
0);
23084 function runClearTimeout(marker) {
23085 if (cachedClearTimeout === clearTimeout) {
23086 //normal enviroments in sane situations
23087 return clearTimeout(marker);
23089 // if clearTimeout wasn't available but was latter defined
23090 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
23091 cachedClearTimeout = clearTimeout;
23092 return clearTimeout(marker);
23095 // when when somebody has screwed with setTimeout but no I.E. maddness
23096 return cachedClearTimeout(marker);
23099 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
23100 return cachedClearTimeout.call(null, marker);
23102 // 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.
23103 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
23104 return cachedClearTimeout.call(this, marker);
23112 var draining = false;
23114 var queueIndex = -
1;
23116 function cleanUpNextTick() {
23117 if (!draining || !currentQueue) {
23121 if (currentQueue.length) {
23122 queue = currentQueue.concat(queue);
23126 if (queue.length) {
23131 function drainQueue() {
23135 var timeout = runTimeout(cleanUpNextTick);
23138 var len = queue.length;
23140 currentQueue = queue;
23142 while (++queueIndex < len) {
23143 if (currentQueue) {
23144 currentQueue[queueIndex].run();
23148 len = queue.length;
23150 currentQueue = null;
23152 runClearTimeout(timeout);
23155 process.nextTick = function (fun) {
23156 var args = new Array(arguments.length -
1);
23157 if (arguments.length
> 1) {
23158 for (var i =
1; i < arguments.length; i++) {
23159 args[i -
1] = arguments[i];
23162 queue.push(new Item(fun, args));
23163 if (queue.length ===
1 && !draining) {
23164 runTimeout(drainQueue);
23168 // v8 likes predictible objects
23169 function Item(fun, array) {
23171 this.array = array;
23173 Item.prototype.run = function () {
23174 this.fun.apply(null, this.array);
23176 process.title = 'browser';
23177 process.browser = true;
23180 process.version = ''; // empty string to avoid regexp issues
23181 process.versions = {};
23186 process.addListener = noop;
23187 process.once = noop;
23188 process.off = noop;
23189 process.removeListener = noop;
23190 process.removeAllListeners = noop;
23191 process.emit = noop;
23193 process.binding = function (name) {
23194 throw new Error('process.binding is not supported');
23197 process.cwd = function () { return '/' };
23198 process.chdir = function (dir) {
23199 throw new Error('process.chdir is not supported');
23201 process.umask = function() { return
0; };
23203 },{}],
14:[function(require,module,exports){
23204 module.exports = require(
"./lib/_stream_duplex.js")
23206 },{
"./lib/_stream_duplex.js":
15}],
15:[function(require,module,exports){
23207 // a duplex stream is just a stream that is both readable and writable.
23208 // Since JS doesn't have multiple prototypal inheritance, this class
23209 // prototypally inherits from Readable, and then parasitically from
23216 var objectKeys = Object.keys || function (obj) {
23218 for (var key in obj) {
23224 module.exports = Duplex;
23227 var processNextTick = require('process-nextick-args');
23231 var util = require('core-util-is');
23232 util.inherits = require('inherits');
23235 var Readable = require('./_stream_readable');
23236 var Writable = require('./_stream_writable');
23238 util.inherits(Duplex, Readable);
23240 var keys = objectKeys(Writable.prototype);
23241 for (var v =
0; v < keys.length; v++) {
23242 var method = keys[v];
23243 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
23246 function Duplex(options) {
23247 if (!(this instanceof Duplex)) return new Duplex(options);
23249 Readable.call(this, options);
23250 Writable.call(this, options);
23252 if (options && options.readable === false) this.readable = false;
23254 if (options && options.writable === false) this.writable = false;
23256 this.allowHalfOpen = true;
23257 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
23259 this.once('end', onend);
23262 // the no-half-open enforcer
23264 // if we allow half-open state, or if the writable side ended,
23266 if (this.allowHalfOpen || this._writableState.ended) return;
23268 // no more data can be written.
23269 // But allow more writes to happen in this tick.
23270 processNextTick(onEndNT, this);
23273 function onEndNT(self) {
23277 function forEach(xs, f) {
23278 for (var i =
0, l = xs.length; i < l; i++) {
23282 },{"./_stream_readable":
17,"./_stream_writable":
19,"core-util-is":
6,"inherits":
9,"process-nextick-args":
12}],
16:[function(require,module,exports){
23283 // a passthrough stream.
23284 // basically just the most minimal sort of Transform stream.
23285 // Every written chunk gets output as-is.
23289 module.exports = PassThrough;
23291 var Transform = require('./_stream_transform');
23294 var util = require('core-util-is');
23295 util.inherits = require('inherits');
23298 util.inherits(PassThrough, Transform);
23300 function PassThrough(options) {
23301 if (!(this instanceof PassThrough)) return new PassThrough(options);
23303 Transform.call(this, options);
23306 PassThrough.prototype._transform = function (chunk, encoding, cb) {
23309 },{"./_stream_transform":
18,"core-util-is":
6,"inherits":
9}],
17:[function(require,module,exports){
23310 (function (process){
23313 module.exports = Readable;
23316 var processNextTick = require('process-nextick-args');
23320 var isArray = require('isarray');
23327 Readable.ReadableState = ReadableState;
23330 var EE = require('events').EventEmitter;
23332 var EElistenerCount = function (emitter, type) {
23333 return emitter.listeners(type).length;
23341 Stream = require('st' + 'ream');
23342 } catch (_) {} finally {
23343 if (!Stream) Stream = require('events').EventEmitter;
23348 var Buffer = require('buffer').Buffer;
23350 var bufferShim = require('buffer-shims');
23354 var util = require('core-util-is');
23355 util.inherits = require('inherits');
23359 var debugUtil = require('util');
23360 var debug = void
0;
23361 if (debugUtil && debugUtil.debuglog) {
23362 debug = debugUtil.debuglog('stream');
23364 debug = function () {};
23368 var BufferList = require('./internal/streams/BufferList');
23371 util.inherits(Readable, Stream);
23373 function prependListener(emitter, event, fn) {
23374 // Sadly this is not cacheable as some libraries bundle their own
23375 // event emitter implementation with them.
23376 if (typeof emitter.prependListener === 'function') {
23377 return emitter.prependListener(event, fn);
23379 // This is a hack to make sure that our error handler is attached before any
23380 // userland ones. NEVER DO THIS. This is here only because this code needs
23381 // to continue to work with older versions of Node.js that do not include
23382 // the prependListener() method. The goal is to eventually remove this hack.
23383 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]];
23387 function ReadableState(options, stream) {
23388 Duplex = Duplex || require('./_stream_duplex');
23390 options = options || {};
23392 // object stream flag. Used to make read(n) ignore n and to
23393 // make all the buffer merging and length checks go away
23394 this.objectMode = !!options.objectMode;
23396 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
23398 // the point at which it stops calling _read() to fill the buffer
23399 // Note:
0 is a valid value, means "don't call _read preemptively ever"
23400 var hwm = options.highWaterMark;
23401 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
23402 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
23405 this.highWaterMark = ~ ~this.highWaterMark;
23407 // A linked list is used to store data chunks instead of an array because the
23408 // linked list can remove elements from the beginning faster than
23410 this.buffer = new BufferList();
23413 this.pipesCount =
0;
23414 this.flowing = null;
23415 this.ended = false;
23416 this.endEmitted = false;
23417 this.reading = false;
23419 // a flag to be able to tell if the onwrite cb is called immediately,
23420 // or on a later tick. We set this to true at first, because any
23421 // actions that shouldn't happen until "later" should generally also
23422 // not happen before the first write call.
23425 // whenever we return null, then we set a flag to say
23426 // that we're awaiting a 'readable' event emission.
23427 this.needReadable = false;
23428 this.emittedReadable = false;
23429 this.readableListening = false;
23430 this.resumeScheduled = false;
23432 // Crypto is kind of old and crusty. Historically, its default string
23433 // encoding is 'binary' so we have to make this configurable.
23434 // Everything else in the universe uses 'utf8', though.
23435 this.defaultEncoding = options.defaultEncoding || 'utf8';
23437 // when piping, we only care about 'readable' events that happen
23438 // after read()ing all the bytes and not getting any pushback.
23439 this.ranOut = false;
23441 // the number of writers that are awaiting a drain event in .pipe()s
23442 this.awaitDrain =
0;
23444 // if true, a maybeReadMore has been scheduled
23445 this.readingMore = false;
23447 this.decoder = null;
23448 this.encoding = null;
23449 if (options.encoding) {
23450 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
23451 this.decoder = new StringDecoder(options.encoding);
23452 this.encoding = options.encoding;
23456 function Readable(options) {
23457 Duplex = Duplex || require('./_stream_duplex');
23459 if (!(this instanceof Readable)) return new Readable(options);
23461 this._readableState = new ReadableState(options, this);
23464 this.readable = true;
23466 if (options && typeof options.read === 'function') this._read = options.read;
23471 // Manually shove something into the read() buffer.
23472 // This returns true if the highWaterMark has not been hit yet,
23473 // similar to how Writable.write() returns true if you should
23474 // write() some more.
23475 Readable.prototype.push = function (chunk, encoding) {
23476 var state = this._readableState;
23478 if (!state.objectMode && typeof chunk === 'string') {
23479 encoding = encoding || state.defaultEncoding;
23480 if (encoding !== state.encoding) {
23481 chunk = bufferShim.from(chunk, encoding);
23486 return readableAddChunk(this, state, chunk, encoding, false);
23489 // Unshift should *always* be something directly out of read()
23490 Readable.prototype.unshift = function (chunk) {
23491 var state = this._readableState;
23492 return readableAddChunk(this, state, chunk, '', true);
23495 Readable.prototype.isPaused = function () {
23496 return this._readableState.flowing === false;
23499 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
23500 var er = chunkInvalid(state, chunk);
23502 stream.emit('error', er);
23503 } else if (chunk === null) {
23504 state.reading = false;
23505 onEofChunk(stream, state);
23506 } else if (state.objectMode || chunk && chunk.length
> 0) {
23507 if (state.ended && !addToFront) {
23508 var e = new Error('stream.push() after EOF');
23509 stream.emit('error', e);
23510 } else if (state.endEmitted && addToFront) {
23511 var _e = new Error('stream.unshift() after end event');
23512 stream.emit('error', _e);
23515 if (state.decoder && !addToFront && !encoding) {
23516 chunk = state.decoder.write(chunk);
23517 skipAdd = !state.objectMode && chunk.length ===
0;
23520 if (!addToFront) state.reading = false;
23522 // Don't add to the buffer if we've decoded to an empty string chunk and
23523 // we're not in object mode
23525 // if we want the data now, just emit it.
23526 if (state.flowing && state.length ===
0 && !state.sync) {
23527 stream.emit('data', chunk);
23530 // update the buffer info.
23531 state.length += state.objectMode ?
1 : chunk.length;
23532 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
23534 if (state.needReadable) emitReadable(stream);
23538 maybeReadMore(stream, state);
23540 } else if (!addToFront) {
23541 state.reading = false;
23544 return needMoreData(state);
23547 // if it's past the high water mark, we can push in some more.
23548 // Also, if we have no data yet, we can stand some
23549 // more bytes. This is to work around cases where hwm=
0,
23550 // such as the repl. Also, if the push() triggered a
23551 // readable event, and the user called read(largeNumber) such that
23552 // needReadable was set, then we ought to push more, so that another
23553 // 'readable' event will be triggered.
23554 function needMoreData(state) {
23555 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
23558 // backwards compatibility.
23559 Readable.prototype.setEncoding = function (enc) {
23560 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
23561 this._readableState.decoder = new StringDecoder(enc);
23562 this._readableState.encoding = enc;
23566 // Don't raise the hwm
> 8MB
23567 var MAX_HWM =
0x800000;
23568 function computeNewHighWaterMark(n) {
23569 if (n
>= MAX_HWM) {
23572 // Get the next highest power of
2 to prevent increasing hwm excessively in
23585 // This function is designed to be inlinable, so please take care when making
23586 // changes to the function body.
23587 function howMuchToRead(n, state) {
23588 if (n <=
0 || state.length ===
0 && state.ended) return
0;
23589 if (state.objectMode) return
1;
23591 // Only flow one buffer at a time
23592 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
23594 // If we're asking for more than the current hwm, then raise the hwm.
23595 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
23596 if (n <= state.length) return n;
23597 // Don't have enough
23598 if (!state.ended) {
23599 state.needReadable = true;
23602 return state.length;
23605 // you can override either this method, or the async _read(n) below.
23606 Readable.prototype.read = function (n) {
23608 n = parseInt(n,
10);
23609 var state = this._readableState;
23612 if (n !==
0) state.emittedReadable = false;
23614 // if we're doing read(
0) to trigger a readable event, but we
23615 // already have a bunch of data in the buffer, then just trigger
23616 // the 'readable' event and move on.
23617 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
23618 debug('read: emitReadable', state.length, state.ended);
23619 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
23623 n = howMuchToRead(n, state);
23625 // if we've ended, and we're now clear, then finish it up.
23626 if (n ===
0 && state.ended) {
23627 if (state.length ===
0) endReadable(this);
23631 // All the actual chunk generation logic needs to be
23632 // *below* the call to _read. The reason is that in certain
23633 // synthetic stream cases, such as passthrough streams, _read
23634 // may be a completely synchronous operation which may change
23635 // the state of the read buffer, providing enough data when
23636 // before there was *not* enough.
23638 // So, the steps are:
23639 //
1. Figure out what the state of things will be after we do
23640 // a read from the buffer.
23642 //
2. If that resulting state will trigger a _read, then call _read.
23643 // Note that this may be asynchronous, or synchronous. Yes, it is
23644 // deeply ugly to write APIs this way, but that still doesn't mean
23645 // that the Readable class should behave improperly, as streams are
23646 // designed to be sync/async agnostic.
23647 // Take note if the _read call is sync or async (ie, if the read call
23648 // has returned yet), so that we know whether or not it's safe to emit
23651 //
3. Actually pull the requested chunks out of the buffer and return.
23653 // if we need a readable event, then we need to do some reading.
23654 var doRead = state.needReadable;
23655 debug('need readable', doRead);
23657 // if we currently have less than the highWaterMark, then also read some
23658 if (state.length ===
0 || state.length - n < state.highWaterMark) {
23660 debug('length less than watermark', doRead);
23663 // however, if we've ended, then there's no point, and if we're already
23664 // reading, then it's unnecessary.
23665 if (state.ended || state.reading) {
23667 debug('reading or ended', doRead);
23668 } else if (doRead) {
23670 state.reading = true;
23672 // if the length is currently zero, then we *need* a readable event.
23673 if (state.length ===
0) state.needReadable = true;
23674 // call internal read method
23675 this._read(state.highWaterMark);
23676 state.sync = false;
23677 // If _read pushed data synchronously, then `reading` will be false,
23678 // and we need to re-evaluate how much data we can return to the user.
23679 if (!state.reading) n = howMuchToRead(nOrig, state);
23683 if (n
> 0) ret = fromList(n, state);else ret = null;
23685 if (ret === null) {
23686 state.needReadable = true;
23692 if (state.length ===
0) {
23693 // If we have nothing in the buffer, then we want to know
23694 // as soon as we *do* get something into the buffer.
23695 if (!state.ended) state.needReadable = true;
23697 // If we tried to read() past the EOF, then emit end on the next tick.
23698 if (nOrig !== n && state.ended) endReadable(this);
23701 if (ret !== null) this.emit('data', ret);
23706 function chunkInvalid(state, chunk) {
23708 if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
23709 er = new TypeError('Invalid non-string/buffer chunk');
23714 function onEofChunk(stream, state) {
23715 if (state.ended) return;
23716 if (state.decoder) {
23717 var chunk = state.decoder.end();
23718 if (chunk && chunk.length) {
23719 state.buffer.push(chunk);
23720 state.length += state.objectMode ?
1 : chunk.length;
23723 state.ended = true;
23725 // emit 'readable' now to make sure it gets picked up.
23726 emitReadable(stream);
23729 // Don't emit readable right away in sync mode, because this can trigger
23730 // another read() call =
> stack overflow. This way, it might trigger
23731 // a nextTick recursion warning, but that's not so bad.
23732 function emitReadable(stream) {
23733 var state = stream._readableState;
23734 state.needReadable = false;
23735 if (!state.emittedReadable) {
23736 debug('emitReadable', state.flowing);
23737 state.emittedReadable = true;
23738 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
23742 function emitReadable_(stream) {
23743 debug('emit readable');
23744 stream.emit('readable');
23748 // at this point, the user has presumably seen the 'readable' event,
23749 // and called read() to consume some data. that may have triggered
23750 // in turn another _read(n) call, in which case reading = true if
23751 // it's in progress.
23752 // However, if we're not ended, or reading, and the length < hwm,
23753 // then go ahead and try to read some more preemptively.
23754 function maybeReadMore(stream, state) {
23755 if (!state.readingMore) {
23756 state.readingMore = true;
23757 processNextTick(maybeReadMore_, stream, state);
23761 function maybeReadMore_(stream, state) {
23762 var len = state.length;
23763 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
23764 debug('maybeReadMore read
0');
23766 if (len === state.length)
23767 // didn't get any data, stop spinning.
23768 break;else len = state.length;
23770 state.readingMore = false;
23773 // abstract method. to be overridden in specific implementation classes.
23774 // call cb(er, data) where data is <= n in length.
23775 // for virtual (non-string, non-buffer) streams, "length" is somewhat
23776 // arbitrary, and perhaps not very meaningful.
23777 Readable.prototype._read = function (n) {
23778 this.emit('error', new Error('_read() is not implemented'));
23781 Readable.prototype.pipe = function (dest, pipeOpts) {
23783 var state = this._readableState;
23785 switch (state.pipesCount) {
23787 state.pipes = dest;
23790 state.pipes = [state.pipes, dest];
23793 state.pipes.push(dest);
23796 state.pipesCount +=
1;
23797 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
23799 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
23801 var endFn = doEnd ? onend : cleanup;
23802 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
23804 dest.on('unpipe', onunpipe);
23805 function onunpipe(readable) {
23807 if (readable === src) {
23817 // when the dest drains, it reduces the awaitDrain counter
23818 // on the source. This would be more elegant with a .once()
23819 // handler in flow(), but adding and removing repeatedly is
23821 var ondrain = pipeOnDrain(src);
23822 dest.on('drain', ondrain);
23824 var cleanedUp = false;
23825 function cleanup() {
23827 // cleanup event handlers once the pipe is broken
23828 dest.removeListener('close', onclose);
23829 dest.removeListener('finish', onfinish);
23830 dest.removeListener('drain', ondrain);
23831 dest.removeListener('error', onerror);
23832 dest.removeListener('unpipe', onunpipe);
23833 src.removeListener('end', onend);
23834 src.removeListener('end', cleanup);
23835 src.removeListener('data', ondata);
23839 // if the reader is waiting for a drain event from this
23840 // specific writer, then it would cause it to never start
23842 // So, if this is awaiting a drain, then we just call it now.
23843 // If we don't know, then assume that we are waiting for one.
23844 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
23847 // If the user pushes more data while we're writing to dest then we'll end up
23848 // in ondata again. However, we only want to increase awaitDrain once because
23849 // dest will only emit one 'drain' event for the multiple writes.
23850 // =
> Introduce a guard on increasing awaitDrain.
23851 var increasedAwaitDrain = false;
23852 src.on('data', ondata);
23853 function ondata(chunk) {
23855 increasedAwaitDrain = false;
23856 var ret = dest.write(chunk);
23857 if (false === ret && !increasedAwaitDrain) {
23858 // If the user unpiped during `dest.write()`, it is possible
23859 // to get stuck in a permanently paused state if that write
23860 // also returned false.
23861 // =
> Check whether `dest` is still a piping destination.
23862 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
23863 debug('false write response, pause', src._readableState.awaitDrain);
23864 src._readableState.awaitDrain++;
23865 increasedAwaitDrain = true;
23871 // if the dest has an error, then stop piping into it.
23872 // however, don't suppress the throwing behavior for this.
23873 function onerror(er) {
23874 debug('onerror', er);
23876 dest.removeListener('error', onerror);
23877 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
23880 // Make sure our error handler is attached before userland ones.
23881 prependListener(dest, 'error', onerror);
23883 // Both close and finish should trigger unpipe, but only once.
23884 function onclose() {
23885 dest.removeListener('finish', onfinish);
23888 dest.once('close', onclose);
23889 function onfinish() {
23891 dest.removeListener('close', onclose);
23894 dest.once('finish', onfinish);
23896 function unpipe() {
23901 // tell the dest that it's being piped to
23902 dest.emit('pipe', src);
23904 // start the flow if it hasn't been started already.
23905 if (!state.flowing) {
23906 debug('pipe resume');
23913 function pipeOnDrain(src) {
23914 return function () {
23915 var state = src._readableState;
23916 debug('pipeOnDrain', state.awaitDrain);
23917 if (state.awaitDrain) state.awaitDrain--;
23918 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
23919 state.flowing = true;
23925 Readable.prototype.unpipe = function (dest) {
23926 var state = this._readableState;
23928 // if we're not piping anywhere, then do nothing.
23929 if (state.pipesCount ===
0) return this;
23931 // just one destination. most common case.
23932 if (state.pipesCount ===
1) {
23933 // passed in one, but it's not the right one.
23934 if (dest && dest !== state.pipes) return this;
23936 if (!dest) dest = state.pipes;
23939 state.pipes = null;
23940 state.pipesCount =
0;
23941 state.flowing = false;
23942 if (dest) dest.emit('unpipe', this);
23946 // slow case. multiple pipe destinations.
23950 var dests = state.pipes;
23951 var len = state.pipesCount;
23952 state.pipes = null;
23953 state.pipesCount =
0;
23954 state.flowing = false;
23956 for (var i =
0; i < len; i++) {
23957 dests[i].emit('unpipe', this);
23961 // try to find the right one.
23962 var index = indexOf(state.pipes, dest);
23963 if (index === -
1) return this;
23965 state.pipes.splice(index,
1);
23966 state.pipesCount -=
1;
23967 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
23969 dest.emit('unpipe', this);
23974 // set up data events if they are asked for
23975 // Ensure readable listeners eventually get something
23976 Readable.prototype.on = function (ev, fn) {
23977 var res = Stream.prototype.on.call(this, ev, fn);
23979 if (ev === 'data') {
23980 // Start flowing on next tick if stream isn't explicitly paused
23981 if (this._readableState.flowing !== false) this.resume();
23982 } else if (ev === 'readable') {
23983 var state = this._readableState;
23984 if (!state.endEmitted && !state.readableListening) {
23985 state.readableListening = state.needReadable = true;
23986 state.emittedReadable = false;
23987 if (!state.reading) {
23988 processNextTick(nReadingNextTick, this);
23989 } else if (state.length) {
23990 emitReadable(this, state);
23997 Readable.prototype.addListener = Readable.prototype.on;
23999 function nReadingNextTick(self) {
24000 debug('readable nexttick read
0');
24004 // pause() and resume() are remnants of the legacy readable stream API
24005 // If the user uses them, then switch into old mode.
24006 Readable.prototype.resume = function () {
24007 var state = this._readableState;
24008 if (!state.flowing) {
24010 state.flowing = true;
24011 resume(this, state);
24016 function resume(stream, state) {
24017 if (!state.resumeScheduled) {
24018 state.resumeScheduled = true;
24019 processNextTick(resume_, stream, state);
24023 function resume_(stream, state) {
24024 if (!state.reading) {
24025 debug('resume read
0');
24029 state.resumeScheduled = false;
24030 state.awaitDrain =
0;
24031 stream.emit('resume');
24033 if (state.flowing && !state.reading) stream.read(
0);
24036 Readable.prototype.pause = function () {
24037 debug('call pause flowing=%j', this._readableState.flowing);
24038 if (false !== this._readableState.flowing) {
24040 this._readableState.flowing = false;
24041 this.emit('pause');
24046 function flow(stream) {
24047 var state = stream._readableState;
24048 debug('flow', state.flowing);
24049 while (state.flowing && stream.read() !== null) {}
24052 // wrap an old-style stream as the async data source.
24053 // This is *not* part of the readable stream interface.
24054 // It is an ugly unfortunate mess of history.
24055 Readable.prototype.wrap = function (stream) {
24056 var state = this._readableState;
24057 var paused = false;
24060 stream.on('end', function () {
24061 debug('wrapped end');
24062 if (state.decoder && !state.ended) {
24063 var chunk = state.decoder.end();
24064 if (chunk && chunk.length) self.push(chunk);
24070 stream.on('data', function (chunk) {
24071 debug('wrapped data');
24072 if (state.decoder) chunk = state.decoder.write(chunk);
24074 // don't skip over falsy values in objectMode
24075 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
24077 var ret = self.push(chunk);
24084 // proxy all the other methods.
24085 // important when wrapping filters and duplexes.
24086 for (var i in stream) {
24087 if (this[i] === undefined && typeof stream[i] === 'function') {
24088 this[i] = function (method) {
24089 return function () {
24090 return stream[method].apply(stream, arguments);
24096 // proxy certain important events.
24097 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
24098 forEach(events, function (ev) {
24099 stream.on(ev, self.emit.bind(self, ev));
24102 // when we try to consume some more bytes, simply unpause the
24103 // underlying stream.
24104 self._read = function (n) {
24105 debug('wrapped _read', n);
24115 // exposed for testing purposes only.
24116 Readable._fromList = fromList;
24118 // Pluck off n bytes from an array of buffers.
24119 // Length is the combined lengths of all the buffers in the list.
24120 // This function is designed to be inlinable, so please take care when making
24121 // changes to the function body.
24122 function fromList(n, state) {
24123 // nothing buffered
24124 if (state.length ===
0) return null;
24127 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
24128 // read it all, truncate the list
24129 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);
24130 state.buffer.clear();
24132 // read part of list
24133 ret = fromListPartial(n, state.buffer, state.decoder);
24139 // Extracts only enough buffered data to satisfy the amount requested.
24140 // This function is designed to be inlinable, so please take care when making
24141 // changes to the function body.
24142 function fromListPartial(n, list, hasStrings) {
24144 if (n < list.head.data.length) {
24145 // slice is the same for buffers and strings
24146 ret = list.head.data.slice(
0, n);
24147 list.head.data = list.head.data.slice(n);
24148 } else if (n === list.head.data.length) {
24149 // first chunk is a perfect match
24150 ret = list.shift();
24152 // result spans more than one buffer
24153 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
24158 // Copies a specified amount of characters from the list of buffered data
24160 // This function is designed to be inlinable, so please take care when making
24161 // changes to the function body.
24162 function copyFromBufferString(n, list) {
24167 while (p = p.next) {
24169 var nb = n
> str.length ? str.length : n;
24170 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
24173 if (nb === str.length) {
24175 if (p.next) list.head = p.next;else list.head = list.tail = null;
24178 p.data = str.slice(nb);
24188 // Copies a specified amount of bytes from the list of buffered data chunks.
24189 // This function is designed to be inlinable, so please take care when making
24190 // changes to the function body.
24191 function copyFromBuffer(n, list) {
24192 var ret = bufferShim.allocUnsafe(n);
24196 n -= p.data.length;
24197 while (p = p.next) {
24199 var nb = n
> buf.length ? buf.length : n;
24200 buf.copy(ret, ret.length - n,
0, nb);
24203 if (nb === buf.length) {
24205 if (p.next) list.head = p.next;else list.head = list.tail = null;
24208 p.data = buf.slice(nb);
24218 function endReadable(stream) {
24219 var state = stream._readableState;
24221 // If we get here before consuming all the bytes, then that is a
24222 // bug in node. Should never happen.
24223 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
24225 if (!state.endEmitted) {
24226 state.ended = true;
24227 processNextTick(endReadableNT, state, stream);
24231 function endReadableNT(state, stream) {
24232 // Check that we didn't get one last unshift.
24233 if (!state.endEmitted && state.length ===
0) {
24234 state.endEmitted = true;
24235 stream.readable = false;
24236 stream.emit('end');
24240 function forEach(xs, f) {
24241 for (var i =
0, l = xs.length; i < l; i++) {
24246 function indexOf(xs, x) {
24247 for (var i =
0, l = xs.length; i < l; i++) {
24248 if (xs[i] === x) return i;
24252 }).call(this,require('_process'))
24253 },{
"./_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){
24254 // a transform stream is a readable/writable stream where you do
24255 // something with the data. Sometimes it's called a
"filter",
24256 // but that's not a great name for it, since that implies a thing where
24257 // some bits pass through, and others are simply ignored. (That would
24258 // be a valid example of a transform, of course.)
24260 // While the output is causally related to the input, it's not a
24261 // necessarily symmetric or synchronous transformation. For example,
24262 // a zlib stream might take multiple plain-text writes(), and then
24263 // emit a single compressed chunk some time in the future.
24265 // Here's how this works:
24267 // The Transform stream has all the aspects of the readable and writable
24268 // stream classes. When you write(chunk), that calls _write(chunk,cb)
24269 // internally, and returns false if there's a lot of pending writes
24270 // buffered up. When you call read(), that calls _read(n) until
24271 // there's enough pending readable data buffered up.
24273 // In a transform stream, the written data is placed in a buffer. When
24274 // _read(n) is called, it transforms the queued up data, calling the
24275 // buffered _write cb's as it consumes chunks. If consuming a single
24276 // written chunk would result in multiple output chunks, then the first
24277 // outputted bit calls the readcb, and subsequent chunks just go into
24278 // the read buffer, and will cause it to emit 'readable' if necessary.
24280 // This way, back-pressure is actually determined by the reading side,
24281 // since _read has to be called to start processing a new chunk. However,
24282 // a pathological inflate type of transform can cause excessive buffering
24283 // here. For example, imagine a stream where every byte of input is
24284 // interpreted as an integer from
0-
255, and then results in that many
24285 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
24286 //
1kb of data being output. In this case, you could write a very small
24287 // amount of input, and end up with a very large amount of output. In
24288 // such a pathological inflating mechanism, there'd be no way to tell
24289 // the system to stop doing the transform. A single
4MB write could
24290 // cause the system to run out of memory.
24292 // However, even in such a pathological case, only a single written chunk
24293 // would be consumed, and then the rest would wait (un-transformed) until
24294 // the results of the previous transformed chunk were consumed.
24298 module.exports = Transform;
24300 var Duplex = require('./_stream_duplex');
24303 var util = require('core-util-is');
24304 util.inherits = require('inherits');
24307 util.inherits(Transform, Duplex);
24309 function TransformState(stream) {
24310 this.afterTransform = function (er, data) {
24311 return afterTransform(stream, er, data);
24314 this.needTransform = false;
24315 this.transforming = false;
24316 this.writecb = null;
24317 this.writechunk = null;
24318 this.writeencoding = null;
24321 function afterTransform(stream, er, data) {
24322 var ts = stream._transformState;
24323 ts.transforming = false;
24325 var cb = ts.writecb;
24327 if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
24329 ts.writechunk = null;
24332 if (data !== null && data !== undefined) stream.push(data);
24336 var rs = stream._readableState;
24337 rs.reading = false;
24338 if (rs.needReadable || rs.length < rs.highWaterMark) {
24339 stream._read(rs.highWaterMark);
24343 function Transform(options) {
24344 if (!(this instanceof Transform)) return new Transform(options);
24346 Duplex.call(this, options);
24348 this._transformState = new TransformState(this);
24352 // start out asking for a readable event once data is transformed.
24353 this._readableState.needReadable = true;
24355 // we have implemented the _read method, and done the other things
24356 // that Readable wants before the first _read call, so unset the
24357 // sync guard flag.
24358 this._readableState.sync = false;
24361 if (typeof options.transform === 'function') this._transform = options.transform;
24363 if (typeof options.flush === 'function') this._flush = options.flush;
24366 // When the writable side finishes, then flush out anything remaining.
24367 this.once('prefinish', function () {
24368 if (typeof this._flush === 'function') this._flush(function (er, data) {
24369 done(stream, er, data);
24370 });else done(stream);
24374 Transform.prototype.push = function (chunk, encoding) {
24375 this._transformState.needTransform = false;
24376 return Duplex.prototype.push.call(this, chunk, encoding);
24379 // This is the part where you do stuff!
24380 // override this function in implementation classes.
24381 // 'chunk' is an input chunk.
24383 // Call `push(newChunk)` to pass along transformed output
24384 // to the readable side. You may call 'push' zero or more times.
24386 // Call `cb(err)` when you are done with this chunk. If you pass
24387 // an error, then that'll put the hurt on the whole operation. If you
24388 // never call cb(), then you'll never get another chunk.
24389 Transform.prototype._transform = function (chunk, encoding, cb) {
24390 throw new Error('_transform() is not implemented');
24393 Transform.prototype._write = function (chunk, encoding, cb) {
24394 var ts = this._transformState;
24396 ts.writechunk = chunk;
24397 ts.writeencoding = encoding;
24398 if (!ts.transforming) {
24399 var rs = this._readableState;
24400 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
24404 // Doesn't matter what the args are here.
24405 // _transform does all the work.
24406 // That we got here means that the readable side wants more data.
24407 Transform.prototype._read = function (n) {
24408 var ts = this._transformState;
24410 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
24411 ts.transforming = true;
24412 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
24414 // mark that we need a transform, so that any data that comes in
24415 // will get processed, now that we've asked for it.
24416 ts.needTransform = true;
24420 function done(stream, er, data) {
24421 if (er) return stream.emit('error', er);
24423 if (data !== null && data !== undefined) stream.push(data);
24425 // if there's nothing in the write buffer, then that means
24426 // that nothing more will ever be provided
24427 var ws = stream._writableState;
24428 var ts = stream._transformState;
24430 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
24432 if (ts.transforming) throw new Error('Calling transform done when still transforming');
24434 return stream.push(null);
24436 },{"./_stream_duplex":
15,"core-util-is":
6,"inherits":
9}],
19:[function(require,module,exports){
24437 (function (process){
24438 // A bit simpler than readable streams.
24439 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
24440 // the drain event emission and buffering.
24444 module.exports = Writable;
24447 var processNextTick = require('process-nextick-args');
24451 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
24458 Writable.WritableState = WritableState;
24461 var util = require('core-util-is');
24462 util.inherits = require('inherits');
24466 var internalUtil = {
24467 deprecate: require('util-deprecate')
24475 Stream = require('st' + 'ream');
24476 } catch (_) {} finally {
24477 if (!Stream) Stream = require('events').EventEmitter;
24482 var Buffer = require('buffer').Buffer;
24484 var bufferShim = require('buffer-shims');
24487 util.inherits(Writable, Stream);
24491 function WriteReq(chunk, encoding, cb) {
24492 this.chunk = chunk;
24493 this.encoding = encoding;
24494 this.callback = cb;
24498 function WritableState(options, stream) {
24499 Duplex = Duplex || require('./_stream_duplex');
24501 options = options || {};
24503 // object stream flag to indicate whether or not this stream
24504 // contains buffers or objects.
24505 this.objectMode = !!options.objectMode;
24507 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
24509 // the point at which write() starts returning false
24510 // Note:
0 is a valid value, means that we always return false if
24511 // the entire buffer is not flushed immediately on write()
24512 var hwm = options.highWaterMark;
24513 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
24514 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
24517 this.highWaterMark = ~ ~this.highWaterMark;
24519 // drain event flag.
24520 this.needDrain = false;
24521 // at the start of calling end()
24522 this.ending = false;
24523 // when end() has been called, and returned
24524 this.ended = false;
24525 // when 'finish' is emitted
24526 this.finished = false;
24528 // should we decode strings into buffers before passing to _write?
24529 // this is here so that some node-core streams can optimize string
24530 // handling at a lower level.
24531 var noDecode = options.decodeStrings === false;
24532 this.decodeStrings = !noDecode;
24534 // Crypto is kind of old and crusty. Historically, its default string
24535 // encoding is 'binary' so we have to make this configurable.
24536 // Everything else in the universe uses 'utf8', though.
24537 this.defaultEncoding = options.defaultEncoding || 'utf8';
24539 // not an actual buffer we keep track of, but a measurement
24540 // of how much we're waiting to get pushed to some underlying
24544 // a flag to see when we're in the middle of a write.
24545 this.writing = false;
24547 // when true all writes will be buffered until .uncork() call
24550 // a flag to be able to tell if the onwrite cb is called immediately,
24551 // or on a later tick. We set this to true at first, because any
24552 // actions that shouldn't happen until "later" should generally also
24553 // not happen before the first write call.
24556 // a flag to know if we're processing previously buffered items, which
24557 // may call the _write() callback in the same tick, so that we don't
24558 // end up in an overlapped onwrite situation.
24559 this.bufferProcessing = false;
24561 // the callback that's passed to _write(chunk,cb)
24562 this.onwrite = function (er) {
24563 onwrite(stream, er);
24566 // the callback that the user supplies to write(chunk,encoding,cb)
24567 this.writecb = null;
24569 // the amount that is being written when _write is called.
24572 this.bufferedRequest = null;
24573 this.lastBufferedRequest = null;
24575 // number of pending user-supplied write callbacks
24576 // this must be
0 before 'finish' can be emitted
24577 this.pendingcb =
0;
24579 // emit prefinish if the only thing we're waiting for is _write cbs
24580 // This is relevant for synchronous Transform streams
24581 this.prefinished = false;
24583 // True if the error was already emitted and should not be thrown again
24584 this.errorEmitted = false;
24586 // count buffered requests
24587 this.bufferedRequestCount =
0;
24589 // allocate the first CorkedRequest, there is always
24590 // one allocated and free to use, and we maintain at most two
24591 this.corkedRequestsFree = new CorkedRequest(this);
24594 WritableState.prototype.getBuffer = function getBuffer() {
24595 var current = this.bufferedRequest;
24599 current = current.next;
24606 Object.defineProperty(WritableState.prototype, 'buffer', {
24607 get: internalUtil.deprecate(function () {
24608 return this.getBuffer();
24609 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
24614 // Test _writableState for inheritance to account for Duplex streams,
24615 // whose prototype chain only points to Readable.
24616 var realHasInstance;
24617 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
24618 realHasInstance = Function.prototype[Symbol.hasInstance];
24619 Object.defineProperty(Writable, Symbol.hasInstance, {
24620 value: function (object) {
24621 if (realHasInstance.call(this, object)) return true;
24623 return object && object._writableState instanceof WritableState;
24627 realHasInstance = function (object) {
24628 return object instanceof this;
24632 function Writable(options) {
24633 Duplex = Duplex || require('./_stream_duplex');
24635 // Writable ctor is applied to Duplexes, too.
24636 // `realHasInstance` is necessary because using plain `instanceof`
24637 // would return false, as no `_writableState` property is attached.
24639 // Trying to use the custom `instanceof` for Writable here will also break the
24640 // Node.js LazyTransform implementation, which has a non-trivial getter for
24641 // `_writableState` that would lead to infinite recursion.
24642 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
24643 return new Writable(options);
24646 this._writableState = new WritableState(options, this);
24649 this.writable = true;
24652 if (typeof options.write === 'function') this._write = options.write;
24654 if (typeof options.writev === 'function') this._writev = options.writev;
24660 // Otherwise people can pipe Writable streams, which is just wrong.
24661 Writable.prototype.pipe = function () {
24662 this.emit('error', new Error('Cannot pipe, not readable'));
24665 function writeAfterEnd(stream, cb) {
24666 var er = new Error('write after end');
24667 // TODO: defer error events consistently everywhere, not just the cb
24668 stream.emit('error', er);
24669 processNextTick(cb, er);
24672 // If we get something that is not a buffer, string, null, or undefined,
24673 // and we're not in objectMode, then that's an error.
24674 // Otherwise stream chunks are all considered to be of length=
1, and the
24675 // watermarks determine how many objects to keep in the buffer, rather than
24676 // how many bytes or characters.
24677 function validChunk(stream, state, chunk, cb) {
24680 // Always throw error if a null is written
24681 // if we are not in object mode then throw
24682 // if it is not a buffer, string, or undefined.
24683 if (chunk === null) {
24684 er = new TypeError('May not write null values to stream');
24685 } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
24686 er = new TypeError('Invalid non-string/buffer chunk');
24689 stream.emit('error', er);
24690 processNextTick(cb, er);
24696 Writable.prototype.write = function (chunk, encoding, cb) {
24697 var state = this._writableState;
24700 if (typeof encoding === 'function') {
24705 if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
24707 if (typeof cb !== 'function') cb = nop;
24709 if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
24711 ret = writeOrBuffer(this, state, chunk, encoding, cb);
24717 Writable.prototype.cork = function () {
24718 var state = this._writableState;
24723 Writable.prototype.uncork = function () {
24724 var state = this._writableState;
24726 if (state.corked) {
24729 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
24733 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
24734 // node::ParseEncoding() requires lower case.
24735 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
24736 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);
24737 this._writableState.defaultEncoding = encoding;
24741 function decodeChunk(state, chunk, encoding) {
24742 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
24743 chunk = bufferShim.from(chunk, encoding);
24748 // if we're already writing something, then just put this
24749 // in the queue, and wait our turn. Otherwise, call _write
24750 // If we return false, then we need a drain event, so set that flag.
24751 function writeOrBuffer(stream, state, chunk, encoding, cb) {
24752 chunk = decodeChunk(state, chunk, encoding);
24754 if (Buffer.isBuffer(chunk)) encoding = 'buffer';
24755 var len = state.objectMode ?
1 : chunk.length;
24757 state.length += len;
24759 var ret = state.length < state.highWaterMark;
24760 // we must ensure that previous needDrain will not be reset to false.
24761 if (!ret) state.needDrain = true;
24763 if (state.writing || state.corked) {
24764 var last = state.lastBufferedRequest;
24765 state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
24767 last.next = state.lastBufferedRequest;
24769 state.bufferedRequest = state.lastBufferedRequest;
24771 state.bufferedRequestCount +=
1;
24773 doWrite(stream, state, false, len, chunk, encoding, cb);
24779 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
24780 state.writelen = len;
24781 state.writecb = cb;
24782 state.writing = true;
24784 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
24785 state.sync = false;
24788 function onwriteError(stream, state, sync, er, cb) {
24790 if (sync) processNextTick(cb, er);else cb(er);
24792 stream._writableState.errorEmitted = true;
24793 stream.emit('error', er);
24796 function onwriteStateUpdate(state) {
24797 state.writing = false;
24798 state.writecb = null;
24799 state.length -= state.writelen;
24800 state.writelen =
0;
24803 function onwrite(stream, er) {
24804 var state = stream._writableState;
24805 var sync = state.sync;
24806 var cb = state.writecb;
24808 onwriteStateUpdate(state);
24810 if (er) onwriteError(stream, state, sync, er, cb);else {
24811 // Check if we're actually ready to finish, but don't emit yet
24812 var finished = needFinish(state);
24814 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
24815 clearBuffer(stream, state);
24820 asyncWrite(afterWrite, stream, state, finished, cb);
24823 afterWrite(stream, state, finished, cb);
24828 function afterWrite(stream, state, finished, cb) {
24829 if (!finished) onwriteDrain(stream, state);
24832 finishMaybe(stream, state);
24835 // Must force callback to be called on nextTick, so that we don't
24836 // emit 'drain' before the write() consumer gets the 'false' return
24837 // value, and has a chance to attach a 'drain' listener.
24838 function onwriteDrain(stream, state) {
24839 if (state.length ===
0 && state.needDrain) {
24840 state.needDrain = false;
24841 stream.emit('drain');
24845 // if there's something in the buffer waiting, then process it
24846 function clearBuffer(stream, state) {
24847 state.bufferProcessing = true;
24848 var entry = state.bufferedRequest;
24850 if (stream._writev && entry && entry.next) {
24851 // Fast case, write everything using _writev()
24852 var l = state.bufferedRequestCount;
24853 var buffer = new Array(l);
24854 var holder = state.corkedRequestsFree;
24855 holder.entry = entry;
24859 buffer[count] = entry;
24860 entry = entry.next;
24864 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
24866 // doWrite is almost always async, defer these to save a bit of time
24867 // as the hot path ends with doWrite
24869 state.lastBufferedRequest = null;
24871 state.corkedRequestsFree = holder.next;
24872 holder.next = null;
24874 state.corkedRequestsFree = new CorkedRequest(state);
24877 // Slow case, write chunks one-by-one
24879 var chunk = entry.chunk;
24880 var encoding = entry.encoding;
24881 var cb = entry.callback;
24882 var len = state.objectMode ?
1 : chunk.length;
24884 doWrite(stream, state, false, len, chunk, encoding, cb);
24885 entry = entry.next;
24886 // if we didn't call the onwrite immediately, then
24887 // it means that we need to wait until it does.
24888 // also, that means that the chunk and cb are currently
24889 // being processed, so move the buffer counter past them.
24890 if (state.writing) {
24895 if (entry === null) state.lastBufferedRequest = null;
24898 state.bufferedRequestCount =
0;
24899 state.bufferedRequest = entry;
24900 state.bufferProcessing = false;
24903 Writable.prototype._write = function (chunk, encoding, cb) {
24904 cb(new Error('_write() is not implemented'));
24907 Writable.prototype._writev = null;
24909 Writable.prototype.end = function (chunk, encoding, cb) {
24910 var state = this._writableState;
24912 if (typeof chunk === 'function') {
24916 } else if (typeof encoding === 'function') {
24921 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
24923 // .end() fully uncorks
24924 if (state.corked) {
24929 // ignore unnecessary end() calls.
24930 if (!state.ending && !state.finished) endWritable(this, state, cb);
24933 function needFinish(state) {
24934 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
24937 function prefinish(stream, state) {
24938 if (!state.prefinished) {
24939 state.prefinished = true;
24940 stream.emit('prefinish');
24944 function finishMaybe(stream, state) {
24945 var need = needFinish(state);
24947 if (state.pendingcb ===
0) {
24948 prefinish(stream, state);
24949 state.finished = true;
24950 stream.emit('finish');
24952 prefinish(stream, state);
24958 function endWritable(stream, state, cb) {
24959 state.ending = true;
24960 finishMaybe(stream, state);
24962 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
24964 state.ended = true;
24965 stream.writable = false;
24968 // It seems a linked list but it is not
24969 // there will be only
2 of these for each stream
24970 function CorkedRequest(state) {
24976 this.finish = function (err) {
24977 var entry = _this.entry;
24978 _this.entry = null;
24980 var cb = entry.callback;
24983 entry = entry.next;
24985 if (state.corkedRequestsFree) {
24986 state.corkedRequestsFree.next = _this;
24988 state.corkedRequestsFree = _this;
24992 }).call(this,require('_process'))
24993 },{"./_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){
24996 var Buffer = require('buffer').Buffer;
24998 var bufferShim = require('buffer-shims');
25001 module.exports = BufferList;
25003 function BufferList() {
25009 BufferList.prototype.push = function (v) {
25010 var entry = { data: v, next: null };
25011 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
25016 BufferList.prototype.unshift = function (v) {
25017 var entry = { data: v, next: this.head };
25018 if (this.length ===
0) this.tail = entry;
25023 BufferList.prototype.shift = function () {
25024 if (this.length ===
0) return;
25025 var ret = this.head.data;
25026 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
25031 BufferList.prototype.clear = function () {
25032 this.head = this.tail = null;
25036 BufferList.prototype.join = function (s) {
25037 if (this.length ===
0) return '';
25039 var ret = '' + p.data;
25040 while (p = p.next) {
25045 BufferList.prototype.concat = function (n) {
25046 if (this.length ===
0) return bufferShim.alloc(
0);
25047 if (this.length ===
1) return this.head.data;
25048 var ret = bufferShim.allocUnsafe(n
>>> 0);
25052 p.data.copy(ret, i);
25053 i += p.data.length;
25058 },{
"buffer":
5,
"buffer-shims":
4}],
21:[function(require,module,exports){
25059 module.exports = require(
"./lib/_stream_passthrough.js")
25061 },{
"./lib/_stream_passthrough.js":
16}],
22:[function(require,module,exports){
25062 (function (process){
25063 var Stream = (function (){
25065 return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
25068 exports = module.exports = require('./lib/_stream_readable.js');
25069 exports.Stream = Stream || exports;
25070 exports.Readable = exports;
25071 exports.Writable = require('./lib/_stream_writable.js');
25072 exports.Duplex = require('./lib/_stream_duplex.js');
25073 exports.Transform = require('./lib/_stream_transform.js');
25074 exports.PassThrough = require('./lib/_stream_passthrough.js');
25076 if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
25077 module.exports = Stream;
25080 }).call(this,require('_process'))
25081 },{
"./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){
25082 module.exports = require(
"./lib/_stream_transform.js")
25084 },{
"./lib/_stream_transform.js":
18}],
24:[function(require,module,exports){
25085 module.exports = require(
"./lib/_stream_writable.js")
25087 },{
"./lib/_stream_writable.js":
19}],
25:[function(require,module,exports){
25088 // Copyright Joyent, Inc. and other Node contributors.
25090 // Permission is hereby granted, free of charge, to any person obtaining a
25091 // copy of this software and associated documentation files (the
25092 //
"Software"), to deal in the Software without restriction, including
25093 // without limitation the rights to use, copy, modify, merge, publish,
25094 // distribute, sublicense, and/or sell copies of the Software, and to permit
25095 // persons to whom the Software is furnished to do so, subject to the
25096 // following conditions:
25098 // The above copyright notice and this permission notice shall be included
25099 // in all copies or substantial portions of the Software.
25101 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25102 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25103 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25104 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25105 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25106 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25107 // USE OR OTHER DEALINGS IN THE SOFTWARE.
25109 module.exports = Stream;
25111 var EE = require('events').EventEmitter;
25112 var inherits = require('inherits');
25114 inherits(Stream, EE);
25115 Stream.Readable = require('readable-stream/readable.js');
25116 Stream.Writable = require('readable-stream/writable.js');
25117 Stream.Duplex = require('readable-stream/duplex.js');
25118 Stream.Transform = require('readable-stream/transform.js');
25119 Stream.PassThrough = require('readable-stream/passthrough.js');
25121 // Backwards-compat with node
0.4.x
25122 Stream.Stream = Stream;
25126 // old-style streams. Note that the pipe method (the only relevant
25127 // part of this class) is overridden in the Readable class.
25129 function Stream() {
25133 Stream.prototype.pipe = function(dest, options) {
25136 function ondata(chunk) {
25137 if (dest.writable) {
25138 if (false === dest.write(chunk) && source.pause) {
25144 source.on('data', ondata);
25146 function ondrain() {
25147 if (source.readable && source.resume) {
25152 dest.on('drain', ondrain);
25154 // If the 'end' option is not supplied, dest.end() will be called when
25155 // source gets the 'end' or 'close' events. Only dest.end() once.
25156 if (!dest._isStdio && (!options || options.end !== false)) {
25157 source.on('end', onend);
25158 source.on('close', onclose);
25161 var didOnEnd = false;
25163 if (didOnEnd) return;
25170 function onclose() {
25171 if (didOnEnd) return;
25174 if (typeof dest.destroy === 'function') dest.destroy();
25177 // don't leave dangling pipes when there are errors.
25178 function onerror(er) {
25180 if (EE.listenerCount(this, 'error') ===
0) {
25181 throw er; // Unhandled stream error in pipe.
25185 source.on('error', onerror);
25186 dest.on('error', onerror);
25188 // remove all the event listeners that were added.
25189 function cleanup() {
25190 source.removeListener('data', ondata);
25191 dest.removeListener('drain', ondrain);
25193 source.removeListener('end', onend);
25194 source.removeListener('close', onclose);
25196 source.removeListener('error', onerror);
25197 dest.removeListener('error', onerror);
25199 source.removeListener('end', cleanup);
25200 source.removeListener('close', cleanup);
25202 dest.removeListener('close', cleanup);
25205 source.on('end', cleanup);
25206 source.on('close', cleanup);
25208 dest.on('close', cleanup);
25210 dest.emit('pipe', source);
25212 // Allow for unix-like usage: A.pipe(B).pipe(C)
25216 },{
"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){
25217 // Copyright Joyent, Inc. and other Node contributors.
25219 // Permission is hereby granted, free of charge, to any person obtaining a
25220 // copy of this software and associated documentation files (the
25221 //
"Software"), to deal in the Software without restriction, including
25222 // without limitation the rights to use, copy, modify, merge, publish,
25223 // distribute, sublicense, and/or sell copies of the Software, and to permit
25224 // persons to whom the Software is furnished to do so, subject to the
25225 // following conditions:
25227 // The above copyright notice and this permission notice shall be included
25228 // in all copies or substantial portions of the Software.
25230 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25231 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25232 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25233 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25234 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25235 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25236 // USE OR OTHER DEALINGS IN THE SOFTWARE.
25238 var Buffer = require('buffer').Buffer;
25240 var isBufferEncoding = Buffer.isEncoding
25241 || function(encoding) {
25242 switch (encoding && encoding.toLowerCase()) {
25243 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;
25244 default: return false;
25249 function assertEncoding(encoding) {
25250 if (encoding && !isBufferEncoding(encoding)) {
25251 throw new Error('Unknown encoding: ' + encoding);
25255 // StringDecoder provides an interface for efficiently splitting a series of
25256 // buffers into a series of JS strings without breaking apart multi-byte
25257 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
25259 // @TODO Handling all encodings inside a single object makes it very difficult
25260 // to reason about this code, so it should be split up in the future.
25261 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
25262 // points as used by CESU-
8.
25263 var StringDecoder = exports.StringDecoder = function(encoding) {
25264 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
25265 assertEncoding(encoding);
25266 switch (this.encoding) {
25268 // CESU-
8 represents each of Surrogate Pair by
3-bytes
25269 this.surrogateSize =
3;
25273 // UTF-
16 represents each of Surrogate Pair by
2-bytes
25274 this.surrogateSize =
2;
25275 this.detectIncompleteChar = utf16DetectIncompleteChar;
25278 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
25279 this.surrogateSize =
3;
25280 this.detectIncompleteChar = base64DetectIncompleteChar;
25283 this.write = passThroughWrite;
25287 // Enough space to store all bytes of a single character. UTF-
8 needs
4
25288 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
25289 this.charBuffer = new Buffer(
6);
25290 // Number of bytes received for the current incomplete multi-byte character.
25291 this.charReceived =
0;
25292 // Number of bytes expected for the current incomplete multi-byte character.
25293 this.charLength =
0;
25297 // write decodes the given buffer and returns it as JS string that is
25298 // guaranteed to not contain any partial multi-byte characters. Any partial
25299 // character found at the end of the buffer is buffered up, and will be
25300 // returned when calling write again with the remaining bytes.
25302 // Note: Converting a Buffer containing an orphan surrogate to a String
25303 // currently works, but converting a String to a Buffer (via `new Buffer`, or
25304 // Buffer#write) will replace incomplete surrogates with the unicode
25305 // replacement character. See https://codereview.chromium.org/
121173009/ .
25306 StringDecoder.prototype.write = function(buffer) {
25308 // if our last write ended with an incomplete multibyte character
25309 while (this.charLength) {
25310 // determine how many remaining bytes this buffer has to offer for this char
25311 var available = (buffer.length
>= this.charLength - this.charReceived) ?
25312 this.charLength - this.charReceived :
25315 // add the new bytes to the char buffer
25316 buffer.copy(this.charBuffer, this.charReceived,
0, available);
25317 this.charReceived += available;
25319 if (this.charReceived < this.charLength) {
25320 // still not enough chars in this buffer? wait for more ...
25324 // remove bytes belonging to the current character from the buffer
25325 buffer = buffer.slice(available, buffer.length);
25327 // get the character that was split
25328 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
25330 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
25331 var charCode = charStr.charCodeAt(charStr.length -
1);
25332 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
25333 this.charLength += this.surrogateSize;
25337 this.charReceived = this.charLength =
0;
25339 // if there are no more bytes in this buffer, just emit our char
25340 if (buffer.length ===
0) {
25346 // determine and set charLength / charReceived
25347 this.detectIncompleteChar(buffer);
25349 var end = buffer.length;
25350 if (this.charLength) {
25351 // buffer the incomplete character bytes we got
25352 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
25353 end -= this.charReceived;
25356 charStr += buffer.toString(this.encoding,
0, end);
25358 var end = charStr.length -
1;
25359 var charCode = charStr.charCodeAt(end);
25360 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
25361 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
25362 var size = this.surrogateSize;
25363 this.charLength += size;
25364 this.charReceived += size;
25365 this.charBuffer.copy(this.charBuffer, size,
0, size);
25366 buffer.copy(this.charBuffer,
0,
0, size);
25367 return charStr.substring(
0, end);
25370 // or just emit the charStr
25374 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
25375 // the end of the given buffer. If so, it sets this.charLength to the byte
25376 // length that character, and sets this.charReceived to the number of bytes
25377 // that are available for this character.
25378 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
25379 // determine how many bytes we have to check at the end of this buffer
25380 var i = (buffer.length
>=
3) ?
3 : buffer.length;
25382 // Figure out if one of the last i bytes of our buffer announces an
25383 // incomplete char.
25384 for (; i
> 0; i--) {
25385 var c = buffer[buffer.length - i];
25387 // See http://en.wikipedia.org/wiki/UTF-
8#Description
25390 if (i ==
1 && c
>> 5 ==
0x06) {
25391 this.charLength =
2;
25396 if (i <=
2 && c
>> 4 ==
0x0E) {
25397 this.charLength =
3;
25402 if (i <=
3 && c
>> 3 ==
0x1E) {
25403 this.charLength =
4;
25407 this.charReceived = i;
25410 StringDecoder.prototype.end = function(buffer) {
25412 if (buffer && buffer.length)
25413 res = this.write(buffer);
25415 if (this.charReceived) {
25416 var cr = this.charReceived;
25417 var buf = this.charBuffer;
25418 var enc = this.encoding;
25419 res += buf.slice(
0, cr).toString(enc);
25425 function passThroughWrite(buffer) {
25426 return buffer.toString(this.encoding);
25429 function utf16DetectIncompleteChar(buffer) {
25430 this.charReceived = buffer.length %
2;
25431 this.charLength = this.charReceived ?
2 :
0;
25434 function base64DetectIncompleteChar(buffer) {
25435 this.charReceived = buffer.length %
3;
25436 this.charLength = this.charReceived ?
3 :
0;
25439 },{
"buffer":
5}],
27:[function(require,module,exports){
25440 (function (global){
25446 module.exports = deprecate;
25449 * Mark that a method should not be used.
25450 * Returns a modified function which warns once by default.
25452 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
25454 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
25455 * will throw an Error when invoked.
25457 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
25458 * will invoke `console.trace()` instead of `console.error()`.
25460 * @param {Function} fn - the function to deprecate
25461 * @param {String} msg - the string to print to the console when `fn` is invoked
25462 * @returns {Function} a new
"deprecated" version of `fn`
25466 function deprecate (fn, msg) {
25467 if (config('noDeprecation')) {
25471 var warned = false;
25472 function deprecated() {
25474 if (config('throwDeprecation')) {
25475 throw new Error(msg);
25476 } else if (config('traceDeprecation')) {
25477 console.trace(msg);
25483 return fn.apply(this, arguments);
25490 * Checks `localStorage` for boolean values for the given `name`.
25492 * @param {String} name
25493 * @returns {Boolean}
25497 function config (name) {
25498 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
25500 if (!global.localStorage) return false;
25504 var val = global.localStorage[name];
25505 if (null == val) return false;
25506 return String(val).toLowerCase() === 'true';
25509 }).call(this,typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
25510 },{}],
28:[function(require,module,exports){
25511 arguments[
4][
9][
0].apply(exports,arguments)
25512 },{
"dup":
9}],
29:[function(require,module,exports){
25513 module.exports = function isBuffer(arg) {
25514 return arg && typeof arg === 'object'
25515 && typeof arg.copy === 'function'
25516 && typeof arg.fill === 'function'
25517 && typeof arg.readUInt8 === 'function';
25519 },{}],
30:[function(require,module,exports){
25520 (function (process,global){
25521 // Copyright Joyent, Inc. and other Node contributors.
25523 // Permission is hereby granted, free of charge, to any person obtaining a
25524 // copy of this software and associated documentation files (the
25525 //
"Software"), to deal in the Software without restriction, including
25526 // without limitation the rights to use, copy, modify, merge, publish,
25527 // distribute, sublicense, and/or sell copies of the Software, and to permit
25528 // persons to whom the Software is furnished to do so, subject to the
25529 // following conditions:
25531 // The above copyright notice and this permission notice shall be included
25532 // in all copies or substantial portions of the Software.
25534 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25535 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25536 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
25537 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
25538 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
25539 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
25540 // USE OR OTHER DEALINGS IN THE SOFTWARE.
25542 var formatRegExp = /%[sdj%]/g;
25543 exports.format = function(f) {
25544 if (!isString(f)) {
25546 for (var i =
0; i < arguments.length; i++) {
25547 objects.push(inspect(arguments[i]));
25549 return objects.join(' ');
25553 var args = arguments;
25554 var len = args.length;
25555 var str = String(f).replace(formatRegExp, function(x) {
25556 if (x === '%%') return '%';
25557 if (i
>= len) return x;
25559 case '%s': return String(args[i++]);
25560 case '%d': return Number(args[i++]);
25563 return JSON.stringify(args[i++]);
25565 return '[Circular]';
25571 for (var x = args[i]; i < len; x = args[++i]) {
25572 if (isNull(x) || !isObject(x)) {
25575 str += ' ' + inspect(x);
25582 // Mark that a method should not be used.
25583 // Returns a modified function which warns once by default.
25584 // If --no-deprecation is set, then it is a no-op.
25585 exports.deprecate = function(fn, msg) {
25586 // Allow for deprecating things in the process of starting up.
25587 if (isUndefined(global.process)) {
25588 return function() {
25589 return exports.deprecate(fn, msg).apply(this, arguments);
25593 if (process.noDeprecation === true) {
25597 var warned = false;
25598 function deprecated() {
25600 if (process.throwDeprecation) {
25601 throw new Error(msg);
25602 } else if (process.traceDeprecation) {
25603 console.trace(msg);
25605 console.error(msg);
25609 return fn.apply(this, arguments);
25618 exports.debuglog = function(set) {
25619 if (isUndefined(debugEnviron))
25620 debugEnviron = process.env.NODE_DEBUG || '';
25621 set = set.toUpperCase();
25622 if (!debugs[set]) {
25623 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
25624 var pid = process.pid;
25625 debugs[set] = function() {
25626 var msg = exports.format.apply(exports, arguments);
25627 console.error('%s %d: %s', set, pid, msg);
25630 debugs[set] = function() {};
25633 return debugs[set];
25638 * Echos the value of a value. Trys to print the value out
25639 * in the best way possible given the different types.
25641 * @param {Object} obj The object to print out.
25642 * @param {Object} opts Optional options object that alters the output.
25644 /* legacy: obj, showHidden, depth, colors*/
25645 function inspect(obj, opts) {
25649 stylize: stylizeNoColor
25652 if (arguments.length
>=
3) ctx.depth = arguments[
2];
25653 if (arguments.length
>=
4) ctx.colors = arguments[
3];
25654 if (isBoolean(opts)) {
25656 ctx.showHidden = opts;
25658 // got an "options" object
25659 exports._extend(ctx, opts);
25661 // set default options
25662 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
25663 if (isUndefined(ctx.depth)) ctx.depth =
2;
25664 if (isUndefined(ctx.colors)) ctx.colors = false;
25665 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
25666 if (ctx.colors) ctx.stylize = stylizeWithColor;
25667 return formatValue(ctx, obj, ctx.depth);
25669 exports.inspect = inspect;
25672 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
25675 'italic' : [
3,
23],
25676 'underline' : [
4,
24],
25677 'inverse' : [
7,
27],
25678 'white' : [
37,
39],
25680 'black' : [
30,
39],
25683 'green' : [
32,
39],
25684 'magenta' : [
35,
39],
25686 'yellow' : [
33,
39]
25689 // Don't use 'blue' not visible on cmd.exe
25692 'number': 'yellow',
25693 'boolean': 'yellow',
25694 'undefined': 'grey',
25698 // "name": intentionally not styling
25703 function stylizeWithColor(str, styleType) {
25704 var style = inspect.styles[styleType];
25707 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
25708 '\u001b[' + inspect.colors[style][
1] + 'm';
25715 function stylizeNoColor(str, styleType) {
25720 function arrayToHash(array) {
25723 array.forEach(function(val, idx) {
25731 function formatValue(ctx, value, recurseTimes) {
25732 // Provide a hook for user-specified inspect functions.
25733 // Check that value is an object with an inspect function on it
25734 if (ctx.customInspect &&
25736 isFunction(value.inspect) &&
25737 // Filter out the util module, it's inspect function is special
25738 value.inspect !== exports.inspect &&
25739 // Also filter out any prototype objects using the circular check.
25740 !(value.constructor && value.constructor.prototype === value)) {
25741 var ret = value.inspect(recurseTimes, ctx);
25742 if (!isString(ret)) {
25743 ret = formatValue(ctx, ret, recurseTimes);
25748 // Primitive types cannot have properties
25749 var primitive = formatPrimitive(ctx, value);
25754 // Look up the keys of the object.
25755 var keys = Object.keys(value);
25756 var visibleKeys = arrayToHash(keys);
25758 if (ctx.showHidden) {
25759 keys = Object.getOwnPropertyNames(value);
25762 // IE doesn't make error fields non-enumerable
25763 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
25765 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
25766 return formatError(value);
25769 // Some type of object without properties can be shortcutted.
25770 if (keys.length ===
0) {
25771 if (isFunction(value)) {
25772 var name = value.name ? ': ' + value.name : '';
25773 return ctx.stylize('[Function' + name + ']', 'special');
25775 if (isRegExp(value)) {
25776 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
25778 if (isDate(value)) {
25779 return ctx.stylize(Date.prototype.toString.call(value), 'date');
25781 if (isError(value)) {
25782 return formatError(value);
25786 var base = '', array = false, braces = ['{', '}'];
25788 // Make Array say that they are Array
25789 if (isArray(value)) {
25791 braces = ['[', ']'];
25794 // Make functions say that they are functions
25795 if (isFunction(value)) {
25796 var n = value.name ? ': ' + value.name : '';
25797 base = ' [Function' + n + ']';
25800 // Make RegExps say that they are RegExps
25801 if (isRegExp(value)) {
25802 base = ' ' + RegExp.prototype.toString.call(value);
25805 // Make dates with properties first say the date
25806 if (isDate(value)) {
25807 base = ' ' + Date.prototype.toUTCString.call(value);
25810 // Make error with message first say the error
25811 if (isError(value)) {
25812 base = ' ' + formatError(value);
25815 if (keys.length ===
0 && (!array || value.length ==
0)) {
25816 return braces[
0] + base + braces[
1];
25819 if (recurseTimes <
0) {
25820 if (isRegExp(value)) {
25821 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
25823 return ctx.stylize('[Object]', 'special');
25827 ctx.seen.push(value);
25831 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
25833 output = keys.map(function(key) {
25834 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
25840 return reduceToSingleString(output, base, braces);
25844 function formatPrimitive(ctx, value) {
25845 if (isUndefined(value))
25846 return ctx.stylize('undefined', 'undefined');
25847 if (isString(value)) {
25848 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
25849 .replace(/'/g, "\\'")
25850 .replace(/\\"/g, '"') + '\'';
25851 return ctx.stylize(simple, 'string');
25853 if (isNumber(value))
25854 return ctx.stylize('' + value, 'number');
25855 if (isBoolean(value))
25856 return ctx.stylize('' + value, 'boolean');
25857 // For some reason typeof null is "object", so special case here.
25859 return ctx.stylize('null', 'null');
25863 function formatError(value) {
25864 return '[' + Error.prototype.toString.call(value) + ']';
25868 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
25870 for (var i =
0, l = value.length; i < l; ++i) {
25871 if (hasOwnProperty(value, String(i))) {
25872 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
25878 keys.forEach(function(key) {
25879 if (!key.match(/^\d+$/)) {
25880 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
25888 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
25889 var name, str, desc;
25890 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
25893 str = ctx.stylize('[Getter/Setter]', 'special');
25895 str = ctx.stylize('[Getter]', 'special');
25899 str = ctx.stylize('[Setter]', 'special');
25902 if (!hasOwnProperty(visibleKeys, key)) {
25903 name = '[' + key + ']';
25906 if (ctx.seen.indexOf(desc.value) <
0) {
25907 if (isNull(recurseTimes)) {
25908 str = formatValue(ctx, desc.value, null);
25910 str = formatValue(ctx, desc.value, recurseTimes -
1);
25912 if (str.indexOf('\n')
> -
1) {
25914 str = str.split('\n').map(function(line) {
25916 }).join('\n').substr(
2);
25918 str = '\n' + str.split('\n').map(function(line) {
25924 str = ctx.stylize('[Circular]', 'special');
25927 if (isUndefined(name)) {
25928 if (array && key.match(/^\d+$/)) {
25931 name = JSON.stringify('' + key);
25932 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
25933 name = name.substr(
1, name.length -
2);
25934 name = ctx.stylize(name, 'name');
25936 name = name.replace(/'/g, "\\'")
25937 .replace(/\\"/g, '"')
25938 .replace(/(^"|"$)/g, "'");
25939 name = ctx.stylize(name, 'string');
25943 return name + ': ' + str;
25947 function reduceToSingleString(output, base, braces) {
25948 var numLinesEst =
0;
25949 var length = output.reduce(function(prev, cur) {
25951 if (cur.indexOf('\n')
>=
0) numLinesEst++;
25952 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
25957 (base === '' ? '' : base + '\n ') +
25959 output.join(',\n ') +
25964 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
25968 // NOTE: These type checking functions intentionally don't use `instanceof`
25969 // because it is fragile and can be easily faked with `Object.create()`.
25970 function isArray(ar) {
25971 return Array.isArray(ar);
25973 exports.isArray = isArray;
25975 function isBoolean(arg) {
25976 return typeof arg === 'boolean';
25978 exports.isBoolean = isBoolean;
25980 function isNull(arg) {
25981 return arg === null;
25983 exports.isNull = isNull;
25985 function isNullOrUndefined(arg) {
25986 return arg == null;
25988 exports.isNullOrUndefined = isNullOrUndefined;
25990 function isNumber(arg) {
25991 return typeof arg === 'number';
25993 exports.isNumber = isNumber;
25995 function isString(arg) {
25996 return typeof arg === 'string';
25998 exports.isString = isString;
26000 function isSymbol(arg) {
26001 return typeof arg === 'symbol';
26003 exports.isSymbol = isSymbol;
26005 function isUndefined(arg) {
26006 return arg === void
0;
26008 exports.isUndefined = isUndefined;
26010 function isRegExp(re) {
26011 return isObject(re) && objectToString(re) === '[object RegExp]';
26013 exports.isRegExp = isRegExp;
26015 function isObject(arg) {
26016 return typeof arg === 'object' && arg !== null;
26018 exports.isObject = isObject;
26020 function isDate(d) {
26021 return isObject(d) && objectToString(d) === '[object Date]';
26023 exports.isDate = isDate;
26025 function isError(e) {
26026 return isObject(e) &&
26027 (objectToString(e) === '[object Error]' || e instanceof Error);
26029 exports.isError = isError;
26031 function isFunction(arg) {
26032 return typeof arg === 'function';
26034 exports.isFunction = isFunction;
26036 function isPrimitive(arg) {
26037 return arg === null ||
26038 typeof arg === 'boolean' ||
26039 typeof arg === 'number' ||
26040 typeof arg === 'string' ||
26041 typeof arg === 'symbol' || // ES6 symbol
26042 typeof arg === 'undefined';
26044 exports.isPrimitive = isPrimitive;
26046 exports.isBuffer = require('./support/isBuffer');
26048 function objectToString(o) {
26049 return Object.prototype.toString.call(o);
26054 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
26058 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
26059 'Oct', 'Nov', 'Dec'];
26062 function timestamp() {
26063 var d = new Date();
26064 var time = [pad(d.getHours()),
26065 pad(d.getMinutes()),
26066 pad(d.getSeconds())].join(':');
26067 return [d.getDate(), months[d.getMonth()], time].join(' ');
26071 // log is just a thin wrapper to console.log that prepends a timestamp
26072 exports.log = function() {
26073 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
26078 * Inherit the prototype methods from one constructor into another.
26080 * The Function.prototype.inherits from lang.js rewritten as a standalone
26081 * function (not on Function.prototype). NOTE: If this file is to be loaded
26082 * during bootstrapping this function needs to be rewritten using some native
26083 * functions as prototype setup using normal JavaScript does not work as
26084 * expected during bootstrapping (see mirror.js in r114903).
26086 * @param {function} ctor Constructor function which needs to inherit the
26088 * @param {function} superCtor Constructor function to inherit prototype from.
26090 exports.inherits = require('inherits');
26092 exports._extend = function(origin, add) {
26093 // Don't do anything if add isn't an object
26094 if (!add || !isObject(add)) return origin;
26096 var keys = Object.keys(add);
26097 var i = keys.length;
26099 origin[keys[i]] = add[keys[i]];
26104 function hasOwnProperty(obj, prop) {
26105 return Object.prototype.hasOwnProperty.call(obj, prop);
26108 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
26109 },{
"./support/isBuffer":
29,
"_process":
13,
"inherits":
28}],
31:[function(require,module,exports){
26110 (function (Buffer){
26111 const createKeccakHash = require('keccak')
26112 const secp256k1 = require('secp256k1')
26113 const assert = require('assert')
26114 const rlp = require('rlp')
26115 const BN = require('bn.js')
26116 const createHash = require('create-hash')
26117 Object.assign(exports, require('ethjs-util'))
26120 * the max integer that this VM can handle (a ```BN```)
26121 * @var {BN} MAX_INTEGER
26123 exports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
16)
26126 *
2^
256 (a ```BN```)
26127 * @var {BN} TWO_POW256
26129 exports.TWO_POW256 = new BN('
10000000000000000000000000000000000000000000000000000000000000000',
16)
26132 * SHA3-
256 hash of null (a ```String```)
26133 * @var {String} SHA3_NULL_S
26135 exports.SHA3_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
26138 * SHA3-
256 hash of null (a ```Buffer```)
26139 * @var {Buffer} SHA3_NULL
26141 exports.SHA3_NULL = Buffer.from(exports.SHA3_NULL_S, 'hex')
26144 * SHA3-
256 of an RLP of an empty array (a ```String```)
26145 * @var {String} SHA3_RLP_ARRAY_S
26147 exports.SHA3_RLP_ARRAY_S = '
1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'
26150 * SHA3-
256 of an RLP of an empty array (a ```Buffer```)
26151 * @var {Buffer} SHA3_RLP_ARRAY
26153 exports.SHA3_RLP_ARRAY = Buffer.from(exports.SHA3_RLP_ARRAY_S, 'hex')
26156 * SHA3-
256 hash of the RLP of null (a ```String```)
26157 * @var {String} SHA3_RLP_S
26159 exports.SHA3_RLP_S = '
56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'
26162 * SHA3-
256 hash of the RLP of null (a ```Buffer```)
26163 * @var {Buffer} SHA3_RLP
26165 exports.SHA3_RLP = Buffer.from(exports.SHA3_RLP_S, 'hex')
26168 * [`BN`](https://github.com/indutny/bn.js)
26174 * [`rlp`](https://github.com/ethereumjs/rlp)
26180 * [`secp256k1`](https://github.com/cryptocoinjs/secp256k1-node/)
26183 exports.secp256k1 = secp256k1
26186 * Returns a buffer filled with
0s
26188 * @param {Number} bytes the number of bytes the buffer should be
26191 exports.zeros = function (bytes) {
26192 return Buffer.allocUnsafe(bytes).fill(
0)
26196 * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
26197 * Or it truncates the beginning if it exceeds.
26198 * @method lsetLength
26199 * @param {Buffer|Array} msg the value to pad
26200 * @param {Number} length the number of bytes the output should be
26201 * @param {Boolean} [right=false] whether to start padding form the left or right
26202 * @return {Buffer|Array}
26204 exports.setLengthLeft = exports.setLength = function (msg, length, right) {
26205 var buf = exports.zeros(length)
26206 msg = exports.toBuffer(msg)
26208 if (msg.length < length) {
26212 return msg.slice(
0, length)
26214 if (msg.length < length) {
26215 msg.copy(buf, length - msg.length)
26218 return msg.slice(-length)
26223 * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
26224 * Or it truncates the beginning if it exceeds.
26225 * @param {Buffer|Array} msg the value to pad
26226 * @param {Number} length the number of bytes the output should be
26227 * @return {Buffer|Array}
26229 exports.setLengthRight = function (msg, length) {
26230 return exports.setLength(msg, length, true)
26234 * Trims leading zeros from a `Buffer` or an `Array`
26235 * @param {Buffer|Array|String} a
26236 * @return {Buffer|Array|String}
26238 exports.unpad = exports.stripZeros = function (a) {
26239 a = exports.stripHexPrefix(a)
26241 while (a.length
> 0 && first.toString() === '
0') {
26248 * 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.
26249 * @param {*} v the value
26251 exports.toBuffer = function (v) {
26252 if (!Buffer.isBuffer(v)) {
26253 if (Array.isArray(v)) {
26255 } else if (typeof v === 'string') {
26256 if (exports.isHexPrefixed(v)) {
26257 v = Buffer.from(exports.padToEven(exports.stripHexPrefix(v)), 'hex')
26261 } else if (typeof v === 'number') {
26262 v = exports.intToBuffer(v)
26263 } else if (v === null || v === undefined) {
26264 v = Buffer.allocUnsafe(
0)
26265 } else if (v.toArray) {
26266 // converts a BN to a Buffer
26267 v = Buffer.from(v.toArray())
26269 throw new Error('invalid type')
26276 * Converts a `Buffer` to a `Number`
26277 * @param {Buffer} buf
26279 * @throws If the input number exceeds
53 bits.
26281 exports.bufferToInt = function (buf) {
26282 return new BN(exports.toBuffer(buf)).toNumber()
26286 * Converts a `Buffer` into a hex `String`
26287 * @param {Buffer} buf
26290 exports.bufferToHex = function (buf) {
26291 buf = exports.toBuffer(buf)
26292 return '
0x' + buf.toString('hex')
26296 * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes
256-bit numbers.
26297 * @param {Buffer} num
26300 exports.fromSigned = function (num) {
26301 return new BN(num).fromTwos(
256)
26305 * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes
256-bit numbers.
26309 exports.toUnsigned = function (num) {
26310 return Buffer.from(num.toTwos(
256).toArray())
26314 * Creates SHA-
3 hash of the input
26315 * @param {Buffer|Array|String|Number} a the input data
26316 * @param {Number} [bits=
256] the SHA width
26319 exports.sha3 = function (a, bits) {
26320 a = exports.toBuffer(a)
26321 if (!bits) bits =
256
26323 return createKeccakHash('keccak' + bits).update(a).digest()
26327 * Creates SHA256 hash of the input
26328 * @param {Buffer|Array|String|Number} a the input data
26331 exports.sha256 = function (a) {
26332 a = exports.toBuffer(a)
26333 return createHash('sha256').update(a).digest()
26337 * Creates RIPEMD160 hash of the input
26338 * @param {Buffer|Array|String|Number} a the input data
26339 * @param {Boolean} padded whether it should be padded to
256 bits or not
26342 exports.ripemd160 = function (a, padded) {
26343 a = exports.toBuffer(a)
26344 var hash = createHash('rmd160').update(a).digest()
26345 if (padded === true) {
26346 return exports.setLength(hash,
32)
26353 * Creates SHA-
3 hash of the RLP encoded version of the input
26354 * @param {Buffer|Array|String|Number} a the input data
26357 exports.rlphash = function (a) {
26358 return exports.sha3(rlp.encode(a))
26362 * Checks if the private key satisfies the rules of the curve secp256k1.
26363 * @param {Buffer} privateKey
26364 * @return {Boolean}
26366 exports.isValidPrivate = function (privateKey) {
26367 return secp256k1.privateKeyVerify(privateKey)
26371 * Checks if the public key satisfies the rules of the curve secp256k1
26372 * and the requirements of Ethereum.
26373 * @param {Buffer} publicKey The two points of an uncompressed key, unless sanitize is enabled
26374 * @param {Boolean} [sanitize=false] Accept public keys in other formats
26375 * @return {Boolean}
26377 exports.isValidPublic = function (publicKey, sanitize) {
26378 if (publicKey.length ===
64) {
26379 // Convert to SEC1 for secp256k1
26380 return secp256k1.publicKeyVerify(Buffer.concat([ Buffer.from([
4]), publicKey ]))
26387 return secp256k1.publicKeyVerify(publicKey)
26391 * Returns the ethereum address of a given public key.
26392 * Accepts
"Ethereum public keys" and SEC1 encoded keys.
26393 * @param {Buffer} pubKey The two points of an uncompressed key, unless sanitize is enabled
26394 * @param {Boolean} [sanitize=false] Accept public keys in other formats
26397 exports.pubToAddress = exports.publicToAddress = function (pubKey, sanitize) {
26398 pubKey = exports.toBuffer(pubKey)
26399 if (sanitize && (pubKey.length !==
64)) {
26400 pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(
1)
26402 assert(pubKey.length ===
64)
26403 // Only take the lower
160bits of the hash
26404 return exports.sha3(pubKey).slice(-
20)
26408 * Returns the ethereum public key of a given private key
26409 * @param {Buffer} privateKey A private key must be
256 bits wide
26412 var privateToPublic = exports.privateToPublic = function (privateKey) {
26413 privateKey = exports.toBuffer(privateKey)
26414 // skip the type flag and use the X, Y points
26415 return secp256k1.publicKeyCreate(privateKey, false).slice(
1)
26419 * Converts a public key to the Ethereum format.
26420 * @param {Buffer} publicKey
26423 exports.importPublic = function (publicKey) {
26424 publicKey = exports.toBuffer(publicKey)
26425 if (publicKey.length !==
64) {
26426 publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(
1)
26433 * @param {Buffer} msgHash
26434 * @param {Buffer} privateKey
26437 exports.ecsign = function (msgHash, privateKey) {
26438 var sig = secp256k1.sign(msgHash, privateKey)
26441 ret.r = sig.signature.slice(
0,
32)
26442 ret.s = sig.signature.slice(
32,
64)
26443 ret.v = sig.recovery +
27
26448 * Returns the keccak-
256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
26449 * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
26450 * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
26451 * used to produce the signature.
26453 * @returns {Buffer} hash
26455 exports.hashPersonalMessage = function (message) {
26456 var prefix = exports.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString())
26457 return exports.sha3(Buffer.concat([prefix, message]))
26461 * ECDSA public key recovery from signature
26462 * @param {Buffer} msgHash
26463 * @param {Number} v
26464 * @param {Buffer} r
26465 * @param {Buffer} s
26466 * @return {Buffer} publicKey
26468 exports.ecrecover = function (msgHash, v, r, s) {
26469 var signature = Buffer.concat([exports.setLength(r,
32), exports.setLength(s,
32)],
64)
26470 var recovery = v -
27
26471 if (recovery !==
0 && recovery !==
1) {
26472 throw new Error('Invalid signature v value')
26474 var senderPubKey = secp256k1.recover(msgHash, signature, recovery)
26475 return secp256k1.publicKeyConvert(senderPubKey, false).slice(
1)
26479 * Convert signature parameters into the format of `eth_sign` RPC method
26480 * @param {Number} v
26481 * @param {Buffer} r
26482 * @param {Buffer} s
26483 * @return {String} sig
26485 exports.toRpcSig = function (v, r, s) {
26486 // NOTE: with potential introduction of chainId this might need to be updated
26487 if (v !==
27 && v !==
28) {
26488 throw new Error('Invalid recovery id')
26491 // geth (and the RPC eth_sign method) uses the
65 byte format used by Bitcoin
26492 // FIXME: this might change in the future - https://github.com/ethereum/go-ethereum/issues/
2053
26493 return exports.bufferToHex(Buffer.concat([
26494 exports.setLengthLeft(r,
32),
26495 exports.setLengthLeft(s,
32),
26496 exports.toBuffer(v -
27)
26501 * Convert signature format of the `eth_sign` RPC method to signature parameters
26502 * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/
2053
26503 * @param {String} sig
26506 exports.fromRpcSig = function (sig) {
26507 sig = exports.toBuffer(sig)
26509 // NOTE: with potential introduction of chainId this might need to be updated
26510 if (sig.length !==
65) {
26511 throw new Error('Invalid signature length')
26515 // support both versions of `eth_sign` responses
26522 r: sig.slice(
0,
32),
26523 s: sig.slice(
32,
64)
26528 * Returns the ethereum address of a given private key
26529 * @param {Buffer} privateKey A private key must be
256 bits wide
26532 exports.privateToAddress = function (privateKey) {
26533 return exports.publicToAddress(privateToPublic(privateKey))
26537 * Checks if the address is a valid. Accepts checksummed addresses too
26538 * @param {String} address
26539 * @return {Boolean}
26541 exports.isValidAddress = function (address) {
26542 return /^
0x[
0-
9a-fA-F]{
40}$/i.test(address)
26546 * Returns a checksummed address
26547 * @param {String} address
26550 exports.toChecksumAddress = function (address) {
26551 address = exports.stripHexPrefix(address).toLowerCase()
26552 var hash = exports.sha3(address).toString('hex')
26555 for (var i =
0; i < address.length; i++) {
26556 if (parseInt(hash[i],
16)
>=
8) {
26557 ret += address[i].toUpperCase()
26567 * Checks if the address is a valid checksummed address
26568 * @param {Buffer} address
26569 * @return {Boolean}
26571 exports.isValidChecksumAddress = function (address) {
26572 return exports.isValidAddress(address) && (exports.toChecksumAddress(address) === address)
26576 * Generates an address of a newly created contract
26577 * @param {Buffer} from the address which is creating this new address
26578 * @param {Buffer} nonce the nonce of the from account
26581 exports.generateAddress = function (from, nonce) {
26582 from = exports.toBuffer(from)
26583 nonce = new BN(nonce)
26585 if (nonce.isZero()) {
26586 // in RLP we want to encode null in the case of zero nonce
26587 // read the RLP documentation for an answer if you dare
26590 nonce = Buffer.from(nonce.toArray())
26593 // Only take the lower
160bits of the hash
26594 return exports.rlphash([from, nonce]).slice(-
20)
26598 * Returns true if the supplied address belongs to a precompiled account
26599 * @param {Buffer|String} address
26600 * @return {Boolean}
26602 exports.isPrecompiled = function (address) {
26603 var a = exports.unpad(address)
26604 return a.length ===
1 && a[
0]
> 0 && a[
0] <
5
26608 * Adds
"0x" to a given `String` if it does not already start with
"0x"
26609 * @param {String} str
26612 exports.addHexPrefix = function (str) {
26613 if (typeof str !== 'string') {
26617 return exports.isHexPrefixed(str) ? str : '
0x' + str
26621 * Validate ECDSA signature
26622 * @method isValidSignature
26623 * @param {Buffer} v
26624 * @param {Buffer} r
26625 * @param {Buffer} s
26626 * @param {Boolean} [homestead=true]
26627 * @return {Boolean}
26630 exports.isValidSignature = function (v, r, s, homestead) {
26631 const SECP256K1_N_DIV_2 = new BN('
7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0',
16)
26632 const SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141',
16)
26634 if (r.length !==
32 || s.length !==
32) {
26638 if (v !==
27 && v !==
28) {
26645 if (r.isZero() || r.gt(SECP256K1_N) || s.isZero() || s.gt(SECP256K1_N)) {
26649 if ((homestead === false) && (new BN(s).cmp(SECP256K1_N_DIV_2) ===
1)) {
26657 * Converts a `Buffer` or `Array` to JSON
26658 * @param {Buffer|Array} ba
26659 * @return {Array|String|null}
26661 exports.baToJSON = function (ba) {
26662 if (Buffer.isBuffer(ba)) {
26663 return '
0x' + ba.toString('hex')
26664 } else if (ba instanceof Array) {
26666 for (var i =
0; i < ba.length; i++) {
26667 array.push(exports.baToJSON(ba[i]))
26674 * Defines properties on a `Object`. It make the assumption that underlying data is binary.
26675 * @param {Object} self the `Object` to define properties on
26676 * @param {Array} fields an array fields to define. Fields can contain:
26677 * * `name` - the name of the properties
26678 * * `length` - the number of bytes the field can have
26679 * * `allowLess` - if the field can be less than the length
26681 * @param {*} data data to be validated against the definitions
26683 exports.defineProperties = function (self, fields, data) {
26687 // attach the `toJSON`
26688 self.toJSON = function (label) {
26691 self._fields.forEach(function (field) {
26692 obj[field] = '
0x' + self[field].toString('hex')
26696 return exports.baToJSON(this.raw)
26699 self.serialize = function serialize () {
26700 return rlp.encode(self.raw)
26703 fields.forEach(function (field, i) {
26704 self._fields.push(field.name)
26705 function getter () {
26708 function setter (v) {
26709 v = exports.toBuffer(v)
26711 if (v.toString('hex') === '
00' && !field.allowZero) {
26712 v = Buffer.allocUnsafe(
0)
26715 if (field.allowLess && field.length) {
26716 v = exports.stripZeros(v)
26717 assert(field.length
>= v.length, 'The field ' + field.name + ' must not have more ' + field.length + ' bytes')
26718 } else if (!(field.allowZero && v.length ===
0) && field.length) {
26719 assert(field.length === v.length, 'The field ' + field.name + ' must have byte length of ' + field.length)
26725 Object.defineProperty(self, field.name, {
26727 configurable: true,
26732 if (field.default) {
26733 self[field.name] = field.default
26738 Object.defineProperty(self, field.alias, {
26740 configurable: true,
26747 // if the constuctor is passed data
26749 if (typeof data === 'string') {
26750 data = Buffer.from(exports.stripHexPrefix(data), 'hex')
26753 if (Buffer.isBuffer(data)) {
26754 data = rlp.decode(data)
26757 if (Array.isArray(data)) {
26758 if (data.length
> self._fields.length) {
26759 throw (new Error('wrong number of fields in data'))
26762 // make sure all the items are buffers
26763 data.forEach(function (d, i) {
26764 self[self._fields[i]] = exports.toBuffer(d)
26766 } else if (typeof data === 'object') {
26767 const keys = Object.keys(data)
26768 fields.forEach(function (field) {
26769 if (keys.indexOf(field.name) !== -
1) self[field.name] = data[field.name]
26770 if (keys.indexOf(field.alias) !== -
1) self[field.alias] = data[field.alias]
26773 throw new Error('invalid data')
26778 }).call(this,require("buffer").Buffer)
26779 },{"assert":
1,"bn.js":
33,"buffer":
5,"create-hash":
36,"ethjs-util":
56,"keccak":
65,"rlp":
72,"secp256k1":
73}],
32:[function(require,module,exports){
26780 (function (Buffer){
26781 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
26782 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
26783 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
26785 function check (buffer) {
26786 if (buffer.length <
8) return false
26787 if (buffer.length
> 72) return false
26788 if (buffer[
0] !==
0x30) return false
26789 if (buffer[
1] !== buffer.length -
2) return false
26790 if (buffer[
2] !==
0x02) return false
26792 var lenR = buffer[
3]
26793 if (lenR ===
0) return false
26794 if (
5 + lenR
>= buffer.length) return false
26795 if (buffer[
4 + lenR] !==
0x02) return false
26797 var lenS = buffer[
5 + lenR]
26798 if (lenS ===
0) return false
26799 if ((
6 + lenR + lenS) !== buffer.length) return false
26801 if (buffer[
4] &
0x80) return false
26802 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
26804 if (buffer[lenR +
6] &
0x80) return false
26805 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
26809 function decode (buffer) {
26810 if (buffer.length <
8) throw new Error('DER sequence length is too short')
26811 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
26812 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
26813 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
26814 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
26816 var lenR = buffer[
3]
26817 if (lenR ===
0) throw new Error('R length is zero')
26818 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
26819 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
26821 var lenS = buffer[
5 + lenR]
26822 if (lenS ===
0) throw new Error('S length is zero')
26823 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
26825 if (buffer[
4] &
0x80) throw new Error('R value is negative')
26826 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
26828 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
26829 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
26831 // non-BIP66 - extract R, S values
26833 r: buffer.slice(
4,
4 + lenR),
26834 s: buffer.slice(
6 + lenR)
26839 * Expects r and s to be positive DER integers.
26841 * The DER format uses the most significant bit as a sign bit (&
0x80).
26842 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
26857 *
62300 =
> 0x00f35c
26858 * -
62300 =
> 0xff0ca4
26860 function encode (r, s) {
26861 var lenR = r.length
26862 var lenS = s.length
26863 if (lenR ===
0) throw new Error('R length is zero')
26864 if (lenS ===
0) throw new Error('S length is zero')
26865 if (lenR
> 33) throw new Error('R length is too long')
26866 if (lenS
> 33) throw new Error('S length is too long')
26867 if (r[
0] &
0x80) throw new Error('R value is negative')
26868 if (s[
0] &
0x80) throw new Error('S value is negative')
26869 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
26870 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
26872 var signature = new Buffer(
6 + lenR + lenS)
26874 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
26875 signature[
0] =
0x30
26876 signature[
1] = signature.length -
2
26877 signature[
2] =
0x02
26878 signature[
3] = r.length
26879 r.copy(signature,
4)
26880 signature[
4 + lenR] =
0x02
26881 signature[
5 + lenR] = s.length
26882 s.copy(signature,
6 + lenR)
26893 }).call(this,require(
"buffer").Buffer)
26894 },{
"buffer":
5}],
33:[function(require,module,exports){
26895 (function (module, exports) {
26899 function assert (val, msg) {
26900 if (!val) throw new Error(msg || 'Assertion failed');
26903 // Could use `inherits` module, but don't want to move from single file
26904 // architecture yet.
26905 function inherits (ctor, superCtor) {
26906 ctor.super_ = superCtor;
26907 var TempCtor = function () {};
26908 TempCtor.prototype = superCtor.prototype;
26909 ctor.prototype = new TempCtor();
26910 ctor.prototype.constructor = ctor;
26915 function BN (number, base, endian) {
26916 if (BN.isBN(number)) {
26924 // Reduction context
26927 if (number !== null) {
26928 if (base === 'le' || base === 'be') {
26933 this._init(number ||
0, base ||
10, endian || 'be');
26936 if (typeof module === 'object') {
26937 module.exports = BN;
26947 Buffer = require('buf' + 'fer').Buffer;
26951 BN.isBN = function isBN (num) {
26952 if (num instanceof BN) {
26956 return num !== null && typeof num === 'object' &&
26957 num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
26960 BN.max = function max (left, right) {
26961 if (left.cmp(right)
> 0) return left;
26965 BN.min = function min (left, right) {
26966 if (left.cmp(right) <
0) return left;
26970 BN.prototype._init = function init (number, base, endian) {
26971 if (typeof number === 'number') {
26972 return this._initNumber(number, base, endian);
26975 if (typeof number === 'object') {
26976 return this._initArray(number, base, endian);
26979 if (base === 'hex') {
26982 assert(base === (base |
0) && base
>=
2 && base <=
36);
26984 number = number.toString().replace(/\s+/g, '');
26986 if (number[
0] === '-') {
26991 this._parseHex(number, start);
26993 this._parseBase(number, base, start);
26996 if (number[
0] === '-') {
27002 if (endian !== 'le') return;
27004 this._initArray(this.toArray(), base, endian);
27007 BN.prototype._initNumber = function _initNumber (number, base, endian) {
27012 if (number <
0x4000000) {
27013 this.words = [ number &
0x3ffffff ];
27015 } else if (number <
0x10000000000000) {
27017 number &
0x3ffffff,
27018 (number /
0x4000000) &
0x3ffffff
27022 assert(number <
0x20000000000000); //
2 ^
53 (unsafe)
27024 number &
0x3ffffff,
27025 (number /
0x4000000) &
0x3ffffff,
27031 if (endian !== 'le') return;
27033 // Reverse the bytes
27034 this._initArray(this.toArray(), base, endian);
27037 BN.prototype._initArray = function _initArray (number, base, endian) {
27038 // Perhaps a Uint8Array
27039 assert(typeof number.length === 'number');
27040 if (number.length <=
0) {
27041 this.words = [
0 ];
27046 this.length = Math.ceil(number.length /
3);
27047 this.words = new Array(this.length);
27048 for (var i =
0; i < this.length; i++) {
27054 if (endian === 'be') {
27055 for (i = number.length -
1, j =
0; i
>=
0; i -=
3) {
27056 w = number[i] | (number[i -
1] <<
8) | (number[i -
2] <<
16);
27057 this.words[j] |= (w << off) &
0x3ffffff;
27058 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
27065 } else if (endian === 'le') {
27066 for (i =
0, j =
0; i < number.length; i +=
3) {
27067 w = number[i] | (number[i +
1] <<
8) | (number[i +
2] <<
16);
27068 this.words[j] |= (w << off) &
0x3ffffff;
27069 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
27077 return this.strip();
27080 function parseHex (str, start, end) {
27082 var len = Math.min(str.length, end);
27083 for (var i = start; i < len; i++) {
27084 var c = str.charCodeAt(i) -
48;
27089 if (c
>=
49 && c <=
54) {
27093 } else if (c
>=
17 && c <=
22) {
27104 BN.prototype._parseHex = function _parseHex (number, start) {
27105 // Create possibly bigger array to ensure that it fits the number
27106 this.length = Math.ceil((number.length - start) /
6);
27107 this.words = new Array(this.length);
27108 for (var i =
0; i < this.length; i++) {
27113 // Scan
24-bit chunks and add them to the number
27115 for (i = number.length -
6, j =
0; i
>= start; i -=
6) {
27116 w = parseHex(number, i, i +
6);
27117 this.words[j] |= (w << off) &
0x3ffffff;
27118 // NOTE: `
0x3fffff` is intentional here,
26bits max shift +
24bit hex limb
27119 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
27126 if (i +
6 !== start) {
27127 w = parseHex(number, start, i +
6);
27128 this.words[j] |= (w << off) &
0x3ffffff;
27129 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
27134 function parseBase (str, start, end, mul) {
27136 var len = Math.min(str.length, end);
27137 for (var i = start; i < len; i++) {
27138 var c = str.charCodeAt(i) -
48;
27147 } else if (c
>=
17) {
27158 BN.prototype._parseBase = function _parseBase (number, base, start) {
27159 // Initialize as zero
27160 this.words = [
0 ];
27163 // Find length of limb in base
27164 for (var limbLen =
0, limbPow =
1; limbPow <=
0x3ffffff; limbPow *= base) {
27168 limbPow = (limbPow / base) |
0;
27170 var total = number.length - start;
27171 var mod = total % limbLen;
27172 var end = Math.min(total, total - mod) + start;
27175 for (var i = start; i < end; i += limbLen) {
27176 word = parseBase(number, i, i + limbLen, base);
27178 this.imuln(limbPow);
27179 if (this.words[
0] + word <
0x4000000) {
27180 this.words[
0] += word;
27188 word = parseBase(number, i, number.length, base);
27190 for (i =
0; i < mod; i++) {
27195 if (this.words[
0] + word <
0x4000000) {
27196 this.words[
0] += word;
27203 BN.prototype.copy = function copy (dest) {
27204 dest.words = new Array(this.length);
27205 for (var i =
0; i < this.length; i++) {
27206 dest.words[i] = this.words[i];
27208 dest.length = this.length;
27209 dest.negative = this.negative;
27210 dest.red = this.red;
27213 BN.prototype.clone = function clone () {
27214 var r = new BN(null);
27219 BN.prototype._expand = function _expand (size) {
27220 while (this.length < size) {
27221 this.words[this.length++] =
0;
27226 // Remove leading `
0` from `this`
27227 BN.prototype.strip = function strip () {
27228 while (this.length
> 1 && this.words[this.length -
1] ===
0) {
27231 return this._normSign();
27234 BN.prototype._normSign = function _normSign () {
27236 if (this.length ===
1 && this.words[
0] ===
0) {
27242 BN.prototype.inspect = function inspect () {
27243 return (this.red ? '
<BN-R: ' : '
<BN: ') + this.toString(
16) + '
>';
27249 var groupSizes = [];
27250 var groupBases = [];
27254 while (++i < BN.wordSize) {
27263 while (++base <
36 +
1) {
27266 while (groupBase < (
1 << BN.wordSize) / base) {
27270 groupSizes[base] = groupSize;
27271 groupBases[base] = groupBase;
27293 '
0000000000000000',
27294 '
00000000000000000',
27295 '
000000000000000000',
27296 '
0000000000000000000',
27297 '
00000000000000000000',
27298 '
000000000000000000000',
27299 '
0000000000000000000000',
27300 '
00000000000000000000000',
27301 '
000000000000000000000000',
27302 '
0000000000000000000000000'
27307 25,
16,
12,
11,
10,
9,
8,
27308 8,
7,
7,
7,
7,
6,
6,
27309 6,
6,
6,
6,
6,
5,
5,
27310 5,
5,
5,
5,
5,
5,
5,
27311 5,
5,
5,
5,
5,
5,
5
27316 33554432,
43046721,
16777216,
48828125,
60466176,
40353607,
16777216,
27317 43046721,
10000000,
19487171,
35831808,
62748517,
7529536,
11390625,
27318 16777216,
24137569,
34012224,
47045881,
64000000,
4084101,
5153632,
27319 6436343,
7962624,
9765625,
11881376,
14348907,
17210368,
20511149,
27320 24300000,
28629151,
33554432,
39135393,
45435424,
52521875,
60466176
27323 BN.prototype.toString = function toString (base, padding) {
27325 padding = padding |
0 ||
1;
27328 if (base ===
16 || base === 'hex') {
27332 for (var i =
0; i < this.length; i++) {
27333 var w = this.words[i];
27334 var word = (((w << off) | carry) &
0xffffff).toString(
16);
27335 carry = (w
>>> (
24 - off)) &
0xffffff;
27336 if (carry !==
0 || i !== this.length -
1) {
27337 out = zeros[
6 - word.length] + word + out;
27348 out = carry.toString(
16) + out;
27350 while (out.length % padding !==
0) {
27353 if (this.negative !==
0) {
27359 if (base === (base |
0) && base
>=
2 && base <=
36) {
27360 // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
27361 var groupSize = groupSizes[base];
27362 // var groupBase = Math.pow(base, groupSize);
27363 var groupBase = groupBases[base];
27365 var c = this.clone();
27367 while (!c.isZero()) {
27368 var r = c.modn(groupBase).toString(base);
27369 c = c.idivn(groupBase);
27372 out = zeros[groupSize - r.length] + r + out;
27377 if (this.isZero()) {
27380 while (out.length % padding !==
0) {
27383 if (this.negative !==
0) {
27389 assert(false, 'Base should be between
2 and
36');
27392 BN.prototype.toNumber = function toNumber () {
27393 var ret = this.words[
0];
27394 if (this.length ===
2) {
27395 ret += this.words[
1] *
0x4000000;
27396 } else if (this.length ===
3 && this.words[
2] ===
0x01) {
27397 // NOTE: at this stage it is known that the top bit is set
27398 ret +=
0x10000000000000 + (this.words[
1] *
0x4000000);
27399 } else if (this.length
> 2) {
27400 assert(false, 'Number can only safely store up to
53 bits');
27402 return (this.negative !==
0) ? -ret : ret;
27405 BN.prototype.toJSON = function toJSON () {
27406 return this.toString(
16);
27409 BN.prototype.toBuffer = function toBuffer (endian, length) {
27410 assert(typeof Buffer !== 'undefined');
27411 return this.toArrayLike(Buffer, endian, length);
27414 BN.prototype.toArray = function toArray (endian, length) {
27415 return this.toArrayLike(Array, endian, length);
27418 BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
27419 var byteLength = this.byteLength();
27420 var reqLength = length || Math.max(
1, byteLength);
27421 assert(byteLength <= reqLength, 'byte array longer than desired length');
27422 assert(reqLength
> 0, 'Requested array length <=
0');
27425 var littleEndian = endian === 'le';
27426 var res = new ArrayType(reqLength);
27429 var q = this.clone();
27430 if (!littleEndian) {
27431 // Assume big-endian
27432 for (i =
0; i < reqLength - byteLength; i++) {
27436 for (i =
0; !q.isZero(); i++) {
27440 res[reqLength - i -
1] = b;
27443 for (i =
0; !q.isZero(); i++) {
27450 for (; i < reqLength; i++) {
27459 BN.prototype._countBits = function _countBits (w) {
27460 return
32 - Math.clz32(w);
27463 BN.prototype._countBits = function _countBits (w) {
27486 BN.prototype._zeroBits = function _zeroBits (w) {
27488 if (w ===
0) return
26;
27492 if ((t &
0x1fff) ===
0) {
27496 if ((t &
0x7f) ===
0) {
27500 if ((t &
0xf) ===
0) {
27504 if ((t &
0x3) ===
0) {
27508 if ((t &
0x1) ===
0) {
27514 // Return number of used bits in a BN
27515 BN.prototype.bitLength = function bitLength () {
27516 var w = this.words[this.length -
1];
27517 var hi = this._countBits(w);
27518 return (this.length -
1) *
26 + hi;
27521 function toBitArray (num) {
27522 var w = new Array(num.bitLength());
27524 for (var bit =
0; bit < w.length; bit++) {
27525 var off = (bit /
26) |
0;
27526 var wbit = bit %
26;
27528 w[bit] = (num.words[off] & (
1 << wbit))
>>> wbit;
27534 // Number of trailing zero bits
27535 BN.prototype.zeroBits = function zeroBits () {
27536 if (this.isZero()) return
0;
27539 for (var i =
0; i < this.length; i++) {
27540 var b = this._zeroBits(this.words[i]);
27542 if (b !==
26) break;
27547 BN.prototype.byteLength = function byteLength () {
27548 return Math.ceil(this.bitLength() /
8);
27551 BN.prototype.toTwos = function toTwos (width) {
27552 if (this.negative !==
0) {
27553 return this.abs().inotn(width).iaddn(
1);
27555 return this.clone();
27558 BN.prototype.fromTwos = function fromTwos (width) {
27559 if (this.testn(width -
1)) {
27560 return this.notn(width).iaddn(
1).ineg();
27562 return this.clone();
27565 BN.prototype.isNeg = function isNeg () {
27566 return this.negative !==
0;
27569 // Return negative clone of `this`
27570 BN.prototype.neg = function neg () {
27571 return this.clone().ineg();
27574 BN.prototype.ineg = function ineg () {
27575 if (!this.isZero()) {
27576 this.negative ^=
1;
27582 // Or `num` with `this` in-place
27583 BN.prototype.iuor = function iuor (num) {
27584 while (this.length < num.length) {
27585 this.words[this.length++] =
0;
27588 for (var i =
0; i < num.length; i++) {
27589 this.words[i] = this.words[i] | num.words[i];
27592 return this.strip();
27595 BN.prototype.ior = function ior (num) {
27596 assert((this.negative | num.negative) ===
0);
27597 return this.iuor(num);
27600 // Or `num` with `this`
27601 BN.prototype.or = function or (num) {
27602 if (this.length
> num.length) return this.clone().ior(num);
27603 return num.clone().ior(this);
27606 BN.prototype.uor = function uor (num) {
27607 if (this.length
> num.length) return this.clone().iuor(num);
27608 return num.clone().iuor(this);
27611 // And `num` with `this` in-place
27612 BN.prototype.iuand = function iuand (num) {
27613 // b = min-length(num, this)
27615 if (this.length
> num.length) {
27621 for (var i =
0; i < b.length; i++) {
27622 this.words[i] = this.words[i] & num.words[i];
27625 this.length = b.length;
27627 return this.strip();
27630 BN.prototype.iand = function iand (num) {
27631 assert((this.negative | num.negative) ===
0);
27632 return this.iuand(num);
27635 // And `num` with `this`
27636 BN.prototype.and = function and (num) {
27637 if (this.length
> num.length) return this.clone().iand(num);
27638 return num.clone().iand(this);
27641 BN.prototype.uand = function uand (num) {
27642 if (this.length
> num.length) return this.clone().iuand(num);
27643 return num.clone().iuand(this);
27646 // Xor `num` with `this` in-place
27647 BN.prototype.iuxor = function iuxor (num) {
27648 // a.length
> b.length
27651 if (this.length
> num.length) {
27659 for (var i =
0; i < b.length; i++) {
27660 this.words[i] = a.words[i] ^ b.words[i];
27664 for (; i < a.length; i++) {
27665 this.words[i] = a.words[i];
27669 this.length = a.length;
27671 return this.strip();
27674 BN.prototype.ixor = function ixor (num) {
27675 assert((this.negative | num.negative) ===
0);
27676 return this.iuxor(num);
27679 // Xor `num` with `this`
27680 BN.prototype.xor = function xor (num) {
27681 if (this.length
> num.length) return this.clone().ixor(num);
27682 return num.clone().ixor(this);
27685 BN.prototype.uxor = function uxor (num) {
27686 if (this.length
> num.length) return this.clone().iuxor(num);
27687 return num.clone().iuxor(this);
27690 // Not ``this`` with ``width`` bitwidth
27691 BN.prototype.inotn = function inotn (width) {
27692 assert(typeof width === 'number' && width
>=
0);
27694 var bytesNeeded = Math.ceil(width /
26) |
0;
27695 var bitsLeft = width %
26;
27697 // Extend the buffer with leading zeroes
27698 this._expand(bytesNeeded);
27700 if (bitsLeft
> 0) {
27704 // Handle complete words
27705 for (var i =
0; i < bytesNeeded; i++) {
27706 this.words[i] = ~this.words[i] &
0x3ffffff;
27709 // Handle the residue
27710 if (bitsLeft
> 0) {
27711 this.words[i] = ~this.words[i] & (
0x3ffffff >> (
26 - bitsLeft));
27714 // And remove leading zeroes
27715 return this.strip();
27718 BN.prototype.notn = function notn (width) {
27719 return this.clone().inotn(width);
27722 // Set `bit` of `this`
27723 BN.prototype.setn = function setn (bit, val) {
27724 assert(typeof bit === 'number' && bit
>=
0);
27726 var off = (bit /
26) |
0;
27727 var wbit = bit %
26;
27729 this._expand(off +
1);
27732 this.words[off] = this.words[off] | (
1 << wbit);
27734 this.words[off] = this.words[off] & ~(
1 << wbit);
27737 return this.strip();
27740 // Add `num` to `this` in-place
27741 BN.prototype.iadd = function iadd (num) {
27744 // negative + positive
27745 if (this.negative !==
0 && num.negative ===
0) {
27747 r = this.isub(num);
27748 this.negative ^=
1;
27749 return this._normSign();
27751 // positive + negative
27752 } else if (this.negative ===
0 && num.negative !==
0) {
27754 r = this.isub(num);
27756 return r._normSign();
27759 // a.length
> b.length
27761 if (this.length
> num.length) {
27770 for (var i =
0; i < b.length; i++) {
27771 r = (a.words[i] |
0) + (b.words[i] |
0) + carry;
27772 this.words[i] = r &
0x3ffffff;
27775 for (; carry !==
0 && i < a.length; i++) {
27776 r = (a.words[i] |
0) + carry;
27777 this.words[i] = r &
0x3ffffff;
27781 this.length = a.length;
27783 this.words[this.length] = carry;
27785 // Copy the rest of the words
27786 } else if (a !== this) {
27787 for (; i < a.length; i++) {
27788 this.words[i] = a.words[i];
27795 // Add `num` to `this`
27796 BN.prototype.add = function add (num) {
27798 if (num.negative !==
0 && this.negative ===
0) {
27800 res = this.sub(num);
27803 } else if (num.negative ===
0 && this.negative !==
0) {
27805 res = num.sub(this);
27810 if (this.length
> num.length) return this.clone().iadd(num);
27812 return num.clone().iadd(this);
27815 // Subtract `num` from `this` in-place
27816 BN.prototype.isub = function isub (num) {
27817 // this - (-num) = this + num
27818 if (num.negative !==
0) {
27820 var r = this.iadd(num);
27822 return r._normSign();
27824 // -this - num = -(this + num)
27825 } else if (this.negative !==
0) {
27829 return this._normSign();
27832 // At this point both numbers are positive
27833 var cmp = this.cmp(num);
27835 // Optimization - zeroify
27854 for (var i =
0; i < b.length; i++) {
27855 r = (a.words[i] |
0) - (b.words[i] |
0) + carry;
27857 this.words[i] = r &
0x3ffffff;
27859 for (; carry !==
0 && i < a.length; i++) {
27860 r = (a.words[i] |
0) + carry;
27862 this.words[i] = r &
0x3ffffff;
27865 // Copy rest of the words
27866 if (carry ===
0 && i < a.length && a !== this) {
27867 for (; i < a.length; i++) {
27868 this.words[i] = a.words[i];
27872 this.length = Math.max(this.length, i);
27878 return this.strip();
27881 // Subtract `num` from `this`
27882 BN.prototype.sub = function sub (num) {
27883 return this.clone().isub(num);
27886 function smallMulTo (self, num, out) {
27887 out.negative = num.negative ^ self.negative;
27888 var len = (self.length + num.length) |
0;
27890 len = (len -
1) |
0;
27892 // Peel one iteration (compiler can't do it, because of code complexity)
27893 var a = self.words[
0] |
0;
27894 var b = num.words[
0] |
0;
27897 var lo = r &
0x3ffffff;
27898 var carry = (r /
0x4000000) |
0;
27901 for (var k =
1; k < len; k++) {
27902 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
27903 // note that ncarry could be
>=
0x3ffffff
27904 var ncarry = carry
>>> 26;
27905 var rword = carry &
0x3ffffff;
27906 var maxJ = Math.min(k, num.length -
1);
27907 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
27908 var i = (k - j) |
0;
27909 a = self.words[i] |
0;
27910 b = num.words[j] |
0;
27912 ncarry += (r /
0x4000000) |
0;
27913 rword = r &
0x3ffffff;
27915 out.words[k] = rword |
0;
27916 carry = ncarry |
0;
27919 out.words[k] = carry |
0;
27924 return out.strip();
27927 // TODO(indutny): it may be reasonable to omit it for users who don't need
27928 // to work with
256-bit numbers, otherwise it gives
20% improvement for
256-bit
27929 // multiplication (like elliptic secp256k1).
27930 var comb10MulTo = function comb10MulTo (self, num, out) {
27931 var a = self.words;
27939 var al0 = a0 &
0x1fff;
27940 var ah0 = a0
>>> 13;
27942 var al1 = a1 &
0x1fff;
27943 var ah1 = a1
>>> 13;
27945 var al2 = a2 &
0x1fff;
27946 var ah2 = a2
>>> 13;
27948 var al3 = a3 &
0x1fff;
27949 var ah3 = a3
>>> 13;
27951 var al4 = a4 &
0x1fff;
27952 var ah4 = a4
>>> 13;
27954 var al5 = a5 &
0x1fff;
27955 var ah5 = a5
>>> 13;
27957 var al6 = a6 &
0x1fff;
27958 var ah6 = a6
>>> 13;
27960 var al7 = a7 &
0x1fff;
27961 var ah7 = a7
>>> 13;
27963 var al8 = a8 &
0x1fff;
27964 var ah8 = a8
>>> 13;
27966 var al9 = a9 &
0x1fff;
27967 var ah9 = a9
>>> 13;
27969 var bl0 = b0 &
0x1fff;
27970 var bh0 = b0
>>> 13;
27972 var bl1 = b1 &
0x1fff;
27973 var bh1 = b1
>>> 13;
27975 var bl2 = b2 &
0x1fff;
27976 var bh2 = b2
>>> 13;
27978 var bl3 = b3 &
0x1fff;
27979 var bh3 = b3
>>> 13;
27981 var bl4 = b4 &
0x1fff;
27982 var bh4 = b4
>>> 13;
27984 var bl5 = b5 &
0x1fff;
27985 var bh5 = b5
>>> 13;
27987 var bl6 = b6 &
0x1fff;
27988 var bh6 = b6
>>> 13;
27990 var bl7 = b7 &
0x1fff;
27991 var bh7 = b7
>>> 13;
27993 var bl8 = b8 &
0x1fff;
27994 var bh8 = b8
>>> 13;
27996 var bl9 = b9 &
0x1fff;
27997 var bh9 = b9
>>> 13;
27999 out.negative = self.negative ^ num.negative;
28002 lo = Math.imul(al0, bl0);
28003 mid = Math.imul(al0, bh0);
28004 mid = (mid + Math.imul(ah0, bl0)) |
0;
28005 hi = Math.imul(ah0, bh0);
28006 var w0 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28007 c = (((hi + (mid
>>> 13)) |
0) + (w0
>>> 26)) |
0;
28010 lo = Math.imul(al1, bl0);
28011 mid = Math.imul(al1, bh0);
28012 mid = (mid + Math.imul(ah1, bl0)) |
0;
28013 hi = Math.imul(ah1, bh0);
28014 lo = (lo + Math.imul(al0, bl1)) |
0;
28015 mid = (mid + Math.imul(al0, bh1)) |
0;
28016 mid = (mid + Math.imul(ah0, bl1)) |
0;
28017 hi = (hi + Math.imul(ah0, bh1)) |
0;
28018 var w1 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28019 c = (((hi + (mid
>>> 13)) |
0) + (w1
>>> 26)) |
0;
28022 lo = Math.imul(al2, bl0);
28023 mid = Math.imul(al2, bh0);
28024 mid = (mid + Math.imul(ah2, bl0)) |
0;
28025 hi = Math.imul(ah2, bh0);
28026 lo = (lo + Math.imul(al1, bl1)) |
0;
28027 mid = (mid + Math.imul(al1, bh1)) |
0;
28028 mid = (mid + Math.imul(ah1, bl1)) |
0;
28029 hi = (hi + Math.imul(ah1, bh1)) |
0;
28030 lo = (lo + Math.imul(al0, bl2)) |
0;
28031 mid = (mid + Math.imul(al0, bh2)) |
0;
28032 mid = (mid + Math.imul(ah0, bl2)) |
0;
28033 hi = (hi + Math.imul(ah0, bh2)) |
0;
28034 var w2 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28035 c = (((hi + (mid
>>> 13)) |
0) + (w2
>>> 26)) |
0;
28038 lo = Math.imul(al3, bl0);
28039 mid = Math.imul(al3, bh0);
28040 mid = (mid + Math.imul(ah3, bl0)) |
0;
28041 hi = Math.imul(ah3, bh0);
28042 lo = (lo + Math.imul(al2, bl1)) |
0;
28043 mid = (mid + Math.imul(al2, bh1)) |
0;
28044 mid = (mid + Math.imul(ah2, bl1)) |
0;
28045 hi = (hi + Math.imul(ah2, bh1)) |
0;
28046 lo = (lo + Math.imul(al1, bl2)) |
0;
28047 mid = (mid + Math.imul(al1, bh2)) |
0;
28048 mid = (mid + Math.imul(ah1, bl2)) |
0;
28049 hi = (hi + Math.imul(ah1, bh2)) |
0;
28050 lo = (lo + Math.imul(al0, bl3)) |
0;
28051 mid = (mid + Math.imul(al0, bh3)) |
0;
28052 mid = (mid + Math.imul(ah0, bl3)) |
0;
28053 hi = (hi + Math.imul(ah0, bh3)) |
0;
28054 var w3 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28055 c = (((hi + (mid
>>> 13)) |
0) + (w3
>>> 26)) |
0;
28058 lo = Math.imul(al4, bl0);
28059 mid = Math.imul(al4, bh0);
28060 mid = (mid + Math.imul(ah4, bl0)) |
0;
28061 hi = Math.imul(ah4, bh0);
28062 lo = (lo + Math.imul(al3, bl1)) |
0;
28063 mid = (mid + Math.imul(al3, bh1)) |
0;
28064 mid = (mid + Math.imul(ah3, bl1)) |
0;
28065 hi = (hi + Math.imul(ah3, bh1)) |
0;
28066 lo = (lo + Math.imul(al2, bl2)) |
0;
28067 mid = (mid + Math.imul(al2, bh2)) |
0;
28068 mid = (mid + Math.imul(ah2, bl2)) |
0;
28069 hi = (hi + Math.imul(ah2, bh2)) |
0;
28070 lo = (lo + Math.imul(al1, bl3)) |
0;
28071 mid = (mid + Math.imul(al1, bh3)) |
0;
28072 mid = (mid + Math.imul(ah1, bl3)) |
0;
28073 hi = (hi + Math.imul(ah1, bh3)) |
0;
28074 lo = (lo + Math.imul(al0, bl4)) |
0;
28075 mid = (mid + Math.imul(al0, bh4)) |
0;
28076 mid = (mid + Math.imul(ah0, bl4)) |
0;
28077 hi = (hi + Math.imul(ah0, bh4)) |
0;
28078 var w4 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28079 c = (((hi + (mid
>>> 13)) |
0) + (w4
>>> 26)) |
0;
28082 lo = Math.imul(al5, bl0);
28083 mid = Math.imul(al5, bh0);
28084 mid = (mid + Math.imul(ah5, bl0)) |
0;
28085 hi = Math.imul(ah5, bh0);
28086 lo = (lo + Math.imul(al4, bl1)) |
0;
28087 mid = (mid + Math.imul(al4, bh1)) |
0;
28088 mid = (mid + Math.imul(ah4, bl1)) |
0;
28089 hi = (hi + Math.imul(ah4, bh1)) |
0;
28090 lo = (lo + Math.imul(al3, bl2)) |
0;
28091 mid = (mid + Math.imul(al3, bh2)) |
0;
28092 mid = (mid + Math.imul(ah3, bl2)) |
0;
28093 hi = (hi + Math.imul(ah3, bh2)) |
0;
28094 lo = (lo + Math.imul(al2, bl3)) |
0;
28095 mid = (mid + Math.imul(al2, bh3)) |
0;
28096 mid = (mid + Math.imul(ah2, bl3)) |
0;
28097 hi = (hi + Math.imul(ah2, bh3)) |
0;
28098 lo = (lo + Math.imul(al1, bl4)) |
0;
28099 mid = (mid + Math.imul(al1, bh4)) |
0;
28100 mid = (mid + Math.imul(ah1, bl4)) |
0;
28101 hi = (hi + Math.imul(ah1, bh4)) |
0;
28102 lo = (lo + Math.imul(al0, bl5)) |
0;
28103 mid = (mid + Math.imul(al0, bh5)) |
0;
28104 mid = (mid + Math.imul(ah0, bl5)) |
0;
28105 hi = (hi + Math.imul(ah0, bh5)) |
0;
28106 var w5 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28107 c = (((hi + (mid
>>> 13)) |
0) + (w5
>>> 26)) |
0;
28110 lo = Math.imul(al6, bl0);
28111 mid = Math.imul(al6, bh0);
28112 mid = (mid + Math.imul(ah6, bl0)) |
0;
28113 hi = Math.imul(ah6, bh0);
28114 lo = (lo + Math.imul(al5, bl1)) |
0;
28115 mid = (mid + Math.imul(al5, bh1)) |
0;
28116 mid = (mid + Math.imul(ah5, bl1)) |
0;
28117 hi = (hi + Math.imul(ah5, bh1)) |
0;
28118 lo = (lo + Math.imul(al4, bl2)) |
0;
28119 mid = (mid + Math.imul(al4, bh2)) |
0;
28120 mid = (mid + Math.imul(ah4, bl2)) |
0;
28121 hi = (hi + Math.imul(ah4, bh2)) |
0;
28122 lo = (lo + Math.imul(al3, bl3)) |
0;
28123 mid = (mid + Math.imul(al3, bh3)) |
0;
28124 mid = (mid + Math.imul(ah3, bl3)) |
0;
28125 hi = (hi + Math.imul(ah3, bh3)) |
0;
28126 lo = (lo + Math.imul(al2, bl4)) |
0;
28127 mid = (mid + Math.imul(al2, bh4)) |
0;
28128 mid = (mid + Math.imul(ah2, bl4)) |
0;
28129 hi = (hi + Math.imul(ah2, bh4)) |
0;
28130 lo = (lo + Math.imul(al1, bl5)) |
0;
28131 mid = (mid + Math.imul(al1, bh5)) |
0;
28132 mid = (mid + Math.imul(ah1, bl5)) |
0;
28133 hi = (hi + Math.imul(ah1, bh5)) |
0;
28134 lo = (lo + Math.imul(al0, bl6)) |
0;
28135 mid = (mid + Math.imul(al0, bh6)) |
0;
28136 mid = (mid + Math.imul(ah0, bl6)) |
0;
28137 hi = (hi + Math.imul(ah0, bh6)) |
0;
28138 var w6 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28139 c = (((hi + (mid
>>> 13)) |
0) + (w6
>>> 26)) |
0;
28142 lo = Math.imul(al7, bl0);
28143 mid = Math.imul(al7, bh0);
28144 mid = (mid + Math.imul(ah7, bl0)) |
0;
28145 hi = Math.imul(ah7, bh0);
28146 lo = (lo + Math.imul(al6, bl1)) |
0;
28147 mid = (mid + Math.imul(al6, bh1)) |
0;
28148 mid = (mid + Math.imul(ah6, bl1)) |
0;
28149 hi = (hi + Math.imul(ah6, bh1)) |
0;
28150 lo = (lo + Math.imul(al5, bl2)) |
0;
28151 mid = (mid + Math.imul(al5, bh2)) |
0;
28152 mid = (mid + Math.imul(ah5, bl2)) |
0;
28153 hi = (hi + Math.imul(ah5, bh2)) |
0;
28154 lo = (lo + Math.imul(al4, bl3)) |
0;
28155 mid = (mid + Math.imul(al4, bh3)) |
0;
28156 mid = (mid + Math.imul(ah4, bl3)) |
0;
28157 hi = (hi + Math.imul(ah4, bh3)) |
0;
28158 lo = (lo + Math.imul(al3, bl4)) |
0;
28159 mid = (mid + Math.imul(al3, bh4)) |
0;
28160 mid = (mid + Math.imul(ah3, bl4)) |
0;
28161 hi = (hi + Math.imul(ah3, bh4)) |
0;
28162 lo = (lo + Math.imul(al2, bl5)) |
0;
28163 mid = (mid + Math.imul(al2, bh5)) |
0;
28164 mid = (mid + Math.imul(ah2, bl5)) |
0;
28165 hi = (hi + Math.imul(ah2, bh5)) |
0;
28166 lo = (lo + Math.imul(al1, bl6)) |
0;
28167 mid = (mid + Math.imul(al1, bh6)) |
0;
28168 mid = (mid + Math.imul(ah1, bl6)) |
0;
28169 hi = (hi + Math.imul(ah1, bh6)) |
0;
28170 lo = (lo + Math.imul(al0, bl7)) |
0;
28171 mid = (mid + Math.imul(al0, bh7)) |
0;
28172 mid = (mid + Math.imul(ah0, bl7)) |
0;
28173 hi = (hi + Math.imul(ah0, bh7)) |
0;
28174 var w7 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28175 c = (((hi + (mid
>>> 13)) |
0) + (w7
>>> 26)) |
0;
28178 lo = Math.imul(al8, bl0);
28179 mid = Math.imul(al8, bh0);
28180 mid = (mid + Math.imul(ah8, bl0)) |
0;
28181 hi = Math.imul(ah8, bh0);
28182 lo = (lo + Math.imul(al7, bl1)) |
0;
28183 mid = (mid + Math.imul(al7, bh1)) |
0;
28184 mid = (mid + Math.imul(ah7, bl1)) |
0;
28185 hi = (hi + Math.imul(ah7, bh1)) |
0;
28186 lo = (lo + Math.imul(al6, bl2)) |
0;
28187 mid = (mid + Math.imul(al6, bh2)) |
0;
28188 mid = (mid + Math.imul(ah6, bl2)) |
0;
28189 hi = (hi + Math.imul(ah6, bh2)) |
0;
28190 lo = (lo + Math.imul(al5, bl3)) |
0;
28191 mid = (mid + Math.imul(al5, bh3)) |
0;
28192 mid = (mid + Math.imul(ah5, bl3)) |
0;
28193 hi = (hi + Math.imul(ah5, bh3)) |
0;
28194 lo = (lo + Math.imul(al4, bl4)) |
0;
28195 mid = (mid + Math.imul(al4, bh4)) |
0;
28196 mid = (mid + Math.imul(ah4, bl4)) |
0;
28197 hi = (hi + Math.imul(ah4, bh4)) |
0;
28198 lo = (lo + Math.imul(al3, bl5)) |
0;
28199 mid = (mid + Math.imul(al3, bh5)) |
0;
28200 mid = (mid + Math.imul(ah3, bl5)) |
0;
28201 hi = (hi + Math.imul(ah3, bh5)) |
0;
28202 lo = (lo + Math.imul(al2, bl6)) |
0;
28203 mid = (mid + Math.imul(al2, bh6)) |
0;
28204 mid = (mid + Math.imul(ah2, bl6)) |
0;
28205 hi = (hi + Math.imul(ah2, bh6)) |
0;
28206 lo = (lo + Math.imul(al1, bl7)) |
0;
28207 mid = (mid + Math.imul(al1, bh7)) |
0;
28208 mid = (mid + Math.imul(ah1, bl7)) |
0;
28209 hi = (hi + Math.imul(ah1, bh7)) |
0;
28210 lo = (lo + Math.imul(al0, bl8)) |
0;
28211 mid = (mid + Math.imul(al0, bh8)) |
0;
28212 mid = (mid + Math.imul(ah0, bl8)) |
0;
28213 hi = (hi + Math.imul(ah0, bh8)) |
0;
28214 var w8 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28215 c = (((hi + (mid
>>> 13)) |
0) + (w8
>>> 26)) |
0;
28218 lo = Math.imul(al9, bl0);
28219 mid = Math.imul(al9, bh0);
28220 mid = (mid + Math.imul(ah9, bl0)) |
0;
28221 hi = Math.imul(ah9, bh0);
28222 lo = (lo + Math.imul(al8, bl1)) |
0;
28223 mid = (mid + Math.imul(al8, bh1)) |
0;
28224 mid = (mid + Math.imul(ah8, bl1)) |
0;
28225 hi = (hi + Math.imul(ah8, bh1)) |
0;
28226 lo = (lo + Math.imul(al7, bl2)) |
0;
28227 mid = (mid + Math.imul(al7, bh2)) |
0;
28228 mid = (mid + Math.imul(ah7, bl2)) |
0;
28229 hi = (hi + Math.imul(ah7, bh2)) |
0;
28230 lo = (lo + Math.imul(al6, bl3)) |
0;
28231 mid = (mid + Math.imul(al6, bh3)) |
0;
28232 mid = (mid + Math.imul(ah6, bl3)) |
0;
28233 hi = (hi + Math.imul(ah6, bh3)) |
0;
28234 lo = (lo + Math.imul(al5, bl4)) |
0;
28235 mid = (mid + Math.imul(al5, bh4)) |
0;
28236 mid = (mid + Math.imul(ah5, bl4)) |
0;
28237 hi = (hi + Math.imul(ah5, bh4)) |
0;
28238 lo = (lo + Math.imul(al4, bl5)) |
0;
28239 mid = (mid + Math.imul(al4, bh5)) |
0;
28240 mid = (mid + Math.imul(ah4, bl5)) |
0;
28241 hi = (hi + Math.imul(ah4, bh5)) |
0;
28242 lo = (lo + Math.imul(al3, bl6)) |
0;
28243 mid = (mid + Math.imul(al3, bh6)) |
0;
28244 mid = (mid + Math.imul(ah3, bl6)) |
0;
28245 hi = (hi + Math.imul(ah3, bh6)) |
0;
28246 lo = (lo + Math.imul(al2, bl7)) |
0;
28247 mid = (mid + Math.imul(al2, bh7)) |
0;
28248 mid = (mid + Math.imul(ah2, bl7)) |
0;
28249 hi = (hi + Math.imul(ah2, bh7)) |
0;
28250 lo = (lo + Math.imul(al1, bl8)) |
0;
28251 mid = (mid + Math.imul(al1, bh8)) |
0;
28252 mid = (mid + Math.imul(ah1, bl8)) |
0;
28253 hi = (hi + Math.imul(ah1, bh8)) |
0;
28254 lo = (lo + Math.imul(al0, bl9)) |
0;
28255 mid = (mid + Math.imul(al0, bh9)) |
0;
28256 mid = (mid + Math.imul(ah0, bl9)) |
0;
28257 hi = (hi + Math.imul(ah0, bh9)) |
0;
28258 var w9 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28259 c = (((hi + (mid
>>> 13)) |
0) + (w9
>>> 26)) |
0;
28262 lo = Math.imul(al9, bl1);
28263 mid = Math.imul(al9, bh1);
28264 mid = (mid + Math.imul(ah9, bl1)) |
0;
28265 hi = Math.imul(ah9, bh1);
28266 lo = (lo + Math.imul(al8, bl2)) |
0;
28267 mid = (mid + Math.imul(al8, bh2)) |
0;
28268 mid = (mid + Math.imul(ah8, bl2)) |
0;
28269 hi = (hi + Math.imul(ah8, bh2)) |
0;
28270 lo = (lo + Math.imul(al7, bl3)) |
0;
28271 mid = (mid + Math.imul(al7, bh3)) |
0;
28272 mid = (mid + Math.imul(ah7, bl3)) |
0;
28273 hi = (hi + Math.imul(ah7, bh3)) |
0;
28274 lo = (lo + Math.imul(al6, bl4)) |
0;
28275 mid = (mid + Math.imul(al6, bh4)) |
0;
28276 mid = (mid + Math.imul(ah6, bl4)) |
0;
28277 hi = (hi + Math.imul(ah6, bh4)) |
0;
28278 lo = (lo + Math.imul(al5, bl5)) |
0;
28279 mid = (mid + Math.imul(al5, bh5)) |
0;
28280 mid = (mid + Math.imul(ah5, bl5)) |
0;
28281 hi = (hi + Math.imul(ah5, bh5)) |
0;
28282 lo = (lo + Math.imul(al4, bl6)) |
0;
28283 mid = (mid + Math.imul(al4, bh6)) |
0;
28284 mid = (mid + Math.imul(ah4, bl6)) |
0;
28285 hi = (hi + Math.imul(ah4, bh6)) |
0;
28286 lo = (lo + Math.imul(al3, bl7)) |
0;
28287 mid = (mid + Math.imul(al3, bh7)) |
0;
28288 mid = (mid + Math.imul(ah3, bl7)) |
0;
28289 hi = (hi + Math.imul(ah3, bh7)) |
0;
28290 lo = (lo + Math.imul(al2, bl8)) |
0;
28291 mid = (mid + Math.imul(al2, bh8)) |
0;
28292 mid = (mid + Math.imul(ah2, bl8)) |
0;
28293 hi = (hi + Math.imul(ah2, bh8)) |
0;
28294 lo = (lo + Math.imul(al1, bl9)) |
0;
28295 mid = (mid + Math.imul(al1, bh9)) |
0;
28296 mid = (mid + Math.imul(ah1, bl9)) |
0;
28297 hi = (hi + Math.imul(ah1, bh9)) |
0;
28298 var w10 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28299 c = (((hi + (mid
>>> 13)) |
0) + (w10
>>> 26)) |
0;
28302 lo = Math.imul(al9, bl2);
28303 mid = Math.imul(al9, bh2);
28304 mid = (mid + Math.imul(ah9, bl2)) |
0;
28305 hi = Math.imul(ah9, bh2);
28306 lo = (lo + Math.imul(al8, bl3)) |
0;
28307 mid = (mid + Math.imul(al8, bh3)) |
0;
28308 mid = (mid + Math.imul(ah8, bl3)) |
0;
28309 hi = (hi + Math.imul(ah8, bh3)) |
0;
28310 lo = (lo + Math.imul(al7, bl4)) |
0;
28311 mid = (mid + Math.imul(al7, bh4)) |
0;
28312 mid = (mid + Math.imul(ah7, bl4)) |
0;
28313 hi = (hi + Math.imul(ah7, bh4)) |
0;
28314 lo = (lo + Math.imul(al6, bl5)) |
0;
28315 mid = (mid + Math.imul(al6, bh5)) |
0;
28316 mid = (mid + Math.imul(ah6, bl5)) |
0;
28317 hi = (hi + Math.imul(ah6, bh5)) |
0;
28318 lo = (lo + Math.imul(al5, bl6)) |
0;
28319 mid = (mid + Math.imul(al5, bh6)) |
0;
28320 mid = (mid + Math.imul(ah5, bl6)) |
0;
28321 hi = (hi + Math.imul(ah5, bh6)) |
0;
28322 lo = (lo + Math.imul(al4, bl7)) |
0;
28323 mid = (mid + Math.imul(al4, bh7)) |
0;
28324 mid = (mid + Math.imul(ah4, bl7)) |
0;
28325 hi = (hi + Math.imul(ah4, bh7)) |
0;
28326 lo = (lo + Math.imul(al3, bl8)) |
0;
28327 mid = (mid + Math.imul(al3, bh8)) |
0;
28328 mid = (mid + Math.imul(ah3, bl8)) |
0;
28329 hi = (hi + Math.imul(ah3, bh8)) |
0;
28330 lo = (lo + Math.imul(al2, bl9)) |
0;
28331 mid = (mid + Math.imul(al2, bh9)) |
0;
28332 mid = (mid + Math.imul(ah2, bl9)) |
0;
28333 hi = (hi + Math.imul(ah2, bh9)) |
0;
28334 var w11 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28335 c = (((hi + (mid
>>> 13)) |
0) + (w11
>>> 26)) |
0;
28338 lo = Math.imul(al9, bl3);
28339 mid = Math.imul(al9, bh3);
28340 mid = (mid + Math.imul(ah9, bl3)) |
0;
28341 hi = Math.imul(ah9, bh3);
28342 lo = (lo + Math.imul(al8, bl4)) |
0;
28343 mid = (mid + Math.imul(al8, bh4)) |
0;
28344 mid = (mid + Math.imul(ah8, bl4)) |
0;
28345 hi = (hi + Math.imul(ah8, bh4)) |
0;
28346 lo = (lo + Math.imul(al7, bl5)) |
0;
28347 mid = (mid + Math.imul(al7, bh5)) |
0;
28348 mid = (mid + Math.imul(ah7, bl5)) |
0;
28349 hi = (hi + Math.imul(ah7, bh5)) |
0;
28350 lo = (lo + Math.imul(al6, bl6)) |
0;
28351 mid = (mid + Math.imul(al6, bh6)) |
0;
28352 mid = (mid + Math.imul(ah6, bl6)) |
0;
28353 hi = (hi + Math.imul(ah6, bh6)) |
0;
28354 lo = (lo + Math.imul(al5, bl7)) |
0;
28355 mid = (mid + Math.imul(al5, bh7)) |
0;
28356 mid = (mid + Math.imul(ah5, bl7)) |
0;
28357 hi = (hi + Math.imul(ah5, bh7)) |
0;
28358 lo = (lo + Math.imul(al4, bl8)) |
0;
28359 mid = (mid + Math.imul(al4, bh8)) |
0;
28360 mid = (mid + Math.imul(ah4, bl8)) |
0;
28361 hi = (hi + Math.imul(ah4, bh8)) |
0;
28362 lo = (lo + Math.imul(al3, bl9)) |
0;
28363 mid = (mid + Math.imul(al3, bh9)) |
0;
28364 mid = (mid + Math.imul(ah3, bl9)) |
0;
28365 hi = (hi + Math.imul(ah3, bh9)) |
0;
28366 var w12 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28367 c = (((hi + (mid
>>> 13)) |
0) + (w12
>>> 26)) |
0;
28370 lo = Math.imul(al9, bl4);
28371 mid = Math.imul(al9, bh4);
28372 mid = (mid + Math.imul(ah9, bl4)) |
0;
28373 hi = Math.imul(ah9, bh4);
28374 lo = (lo + Math.imul(al8, bl5)) |
0;
28375 mid = (mid + Math.imul(al8, bh5)) |
0;
28376 mid = (mid + Math.imul(ah8, bl5)) |
0;
28377 hi = (hi + Math.imul(ah8, bh5)) |
0;
28378 lo = (lo + Math.imul(al7, bl6)) |
0;
28379 mid = (mid + Math.imul(al7, bh6)) |
0;
28380 mid = (mid + Math.imul(ah7, bl6)) |
0;
28381 hi = (hi + Math.imul(ah7, bh6)) |
0;
28382 lo = (lo + Math.imul(al6, bl7)) |
0;
28383 mid = (mid + Math.imul(al6, bh7)) |
0;
28384 mid = (mid + Math.imul(ah6, bl7)) |
0;
28385 hi = (hi + Math.imul(ah6, bh7)) |
0;
28386 lo = (lo + Math.imul(al5, bl8)) |
0;
28387 mid = (mid + Math.imul(al5, bh8)) |
0;
28388 mid = (mid + Math.imul(ah5, bl8)) |
0;
28389 hi = (hi + Math.imul(ah5, bh8)) |
0;
28390 lo = (lo + Math.imul(al4, bl9)) |
0;
28391 mid = (mid + Math.imul(al4, bh9)) |
0;
28392 mid = (mid + Math.imul(ah4, bl9)) |
0;
28393 hi = (hi + Math.imul(ah4, bh9)) |
0;
28394 var w13 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28395 c = (((hi + (mid
>>> 13)) |
0) + (w13
>>> 26)) |
0;
28398 lo = Math.imul(al9, bl5);
28399 mid = Math.imul(al9, bh5);
28400 mid = (mid + Math.imul(ah9, bl5)) |
0;
28401 hi = Math.imul(ah9, bh5);
28402 lo = (lo + Math.imul(al8, bl6)) |
0;
28403 mid = (mid + Math.imul(al8, bh6)) |
0;
28404 mid = (mid + Math.imul(ah8, bl6)) |
0;
28405 hi = (hi + Math.imul(ah8, bh6)) |
0;
28406 lo = (lo + Math.imul(al7, bl7)) |
0;
28407 mid = (mid + Math.imul(al7, bh7)) |
0;
28408 mid = (mid + Math.imul(ah7, bl7)) |
0;
28409 hi = (hi + Math.imul(ah7, bh7)) |
0;
28410 lo = (lo + Math.imul(al6, bl8)) |
0;
28411 mid = (mid + Math.imul(al6, bh8)) |
0;
28412 mid = (mid + Math.imul(ah6, bl8)) |
0;
28413 hi = (hi + Math.imul(ah6, bh8)) |
0;
28414 lo = (lo + Math.imul(al5, bl9)) |
0;
28415 mid = (mid + Math.imul(al5, bh9)) |
0;
28416 mid = (mid + Math.imul(ah5, bl9)) |
0;
28417 hi = (hi + Math.imul(ah5, bh9)) |
0;
28418 var w14 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28419 c = (((hi + (mid
>>> 13)) |
0) + (w14
>>> 26)) |
0;
28422 lo = Math.imul(al9, bl6);
28423 mid = Math.imul(al9, bh6);
28424 mid = (mid + Math.imul(ah9, bl6)) |
0;
28425 hi = Math.imul(ah9, bh6);
28426 lo = (lo + Math.imul(al8, bl7)) |
0;
28427 mid = (mid + Math.imul(al8, bh7)) |
0;
28428 mid = (mid + Math.imul(ah8, bl7)) |
0;
28429 hi = (hi + Math.imul(ah8, bh7)) |
0;
28430 lo = (lo + Math.imul(al7, bl8)) |
0;
28431 mid = (mid + Math.imul(al7, bh8)) |
0;
28432 mid = (mid + Math.imul(ah7, bl8)) |
0;
28433 hi = (hi + Math.imul(ah7, bh8)) |
0;
28434 lo = (lo + Math.imul(al6, bl9)) |
0;
28435 mid = (mid + Math.imul(al6, bh9)) |
0;
28436 mid = (mid + Math.imul(ah6, bl9)) |
0;
28437 hi = (hi + Math.imul(ah6, bh9)) |
0;
28438 var w15 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28439 c = (((hi + (mid
>>> 13)) |
0) + (w15
>>> 26)) |
0;
28442 lo = Math.imul(al9, bl7);
28443 mid = Math.imul(al9, bh7);
28444 mid = (mid + Math.imul(ah9, bl7)) |
0;
28445 hi = Math.imul(ah9, bh7);
28446 lo = (lo + Math.imul(al8, bl8)) |
0;
28447 mid = (mid + Math.imul(al8, bh8)) |
0;
28448 mid = (mid + Math.imul(ah8, bl8)) |
0;
28449 hi = (hi + Math.imul(ah8, bh8)) |
0;
28450 lo = (lo + Math.imul(al7, bl9)) |
0;
28451 mid = (mid + Math.imul(al7, bh9)) |
0;
28452 mid = (mid + Math.imul(ah7, bl9)) |
0;
28453 hi = (hi + Math.imul(ah7, bh9)) |
0;
28454 var w16 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28455 c = (((hi + (mid
>>> 13)) |
0) + (w16
>>> 26)) |
0;
28458 lo = Math.imul(al9, bl8);
28459 mid = Math.imul(al9, bh8);
28460 mid = (mid + Math.imul(ah9, bl8)) |
0;
28461 hi = Math.imul(ah9, bh8);
28462 lo = (lo + Math.imul(al8, bl9)) |
0;
28463 mid = (mid + Math.imul(al8, bh9)) |
0;
28464 mid = (mid + Math.imul(ah8, bl9)) |
0;
28465 hi = (hi + Math.imul(ah8, bh9)) |
0;
28466 var w17 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28467 c = (((hi + (mid
>>> 13)) |
0) + (w17
>>> 26)) |
0;
28470 lo = Math.imul(al9, bl9);
28471 mid = Math.imul(al9, bh9);
28472 mid = (mid + Math.imul(ah9, bl9)) |
0;
28473 hi = Math.imul(ah9, bh9);
28474 var w18 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
28475 c = (((hi + (mid
>>> 13)) |
0) + (w18
>>> 26)) |
0;
28505 comb10MulTo = smallMulTo;
28508 function bigMulTo (self, num, out) {
28509 out.negative = num.negative ^ self.negative;
28510 out.length = self.length + num.length;
28514 for (var k =
0; k < out.length -
1; k++) {
28515 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
28516 // note that ncarry could be
>=
0x3ffffff
28517 var ncarry = hncarry;
28519 var rword = carry &
0x3ffffff;
28520 var maxJ = Math.min(k, num.length -
1);
28521 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
28523 var a = self.words[i] |
0;
28524 var b = num.words[j] |
0;
28527 var lo = r &
0x3ffffff;
28528 ncarry = (ncarry + ((r /
0x4000000) |
0)) |
0;
28529 lo = (lo + rword) |
0;
28530 rword = lo &
0x3ffffff;
28531 ncarry = (ncarry + (lo
>>> 26)) |
0;
28533 hncarry += ncarry
>>> 26;
28534 ncarry &=
0x3ffffff;
28536 out.words[k] = rword;
28541 out.words[k] = carry;
28546 return out.strip();
28549 function jumboMulTo (self, num, out) {
28550 var fftm = new FFTM();
28551 return fftm.mulp(self, num, out);
28554 BN.prototype.mulTo = function mulTo (num, out) {
28556 var len = this.length + num.length;
28557 if (this.length ===
10 && num.length ===
10) {
28558 res = comb10MulTo(this, num, out);
28559 } else if (len <
63) {
28560 res = smallMulTo(this, num, out);
28561 } else if (len <
1024) {
28562 res = bigMulTo(this, num, out);
28564 res = jumboMulTo(this, num, out);
28570 // Cooley-Tukey algorithm for FFT
28571 // slightly revisited to rely on looping instead of recursion
28573 function FFTM (x, y) {
28578 FFTM.prototype.makeRBT = function makeRBT (N) {
28579 var t = new Array(N);
28580 var l = BN.prototype._countBits(N) -
1;
28581 for (var i =
0; i < N; i++) {
28582 t[i] = this.revBin(i, l, N);
28588 // Returns binary-reversed representation of `x`
28589 FFTM.prototype.revBin = function revBin (x, l, N) {
28590 if (x ===
0 || x === N -
1) return x;
28593 for (var i =
0; i < l; i++) {
28594 rb |= (x &
1) << (l - i -
1);
28601 // Performs "tweedling" phase, therefore 'emulating'
28602 // behaviour of the recursive algorithm
28603 FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
28604 for (var i =
0; i < N; i++) {
28605 rtws[i] = rws[rbt[i]];
28606 itws[i] = iws[rbt[i]];
28610 FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
28611 this.permute(rbt, rws, iws, rtws, itws, N);
28613 for (var s =
1; s < N; s <<=
1) {
28616 var rtwdf = Math.cos(
2 * Math.PI / l);
28617 var itwdf = Math.sin(
2 * Math.PI / l);
28619 for (var p =
0; p < N; p += l) {
28620 var rtwdf_ = rtwdf;
28621 var itwdf_ = itwdf;
28623 for (var j =
0; j < s; j++) {
28624 var re = rtws[p + j];
28625 var ie = itws[p + j];
28627 var ro = rtws[p + j + s];
28628 var io = itws[p + j + s];
28630 var rx = rtwdf_ * ro - itwdf_ * io;
28632 io = rtwdf_ * io + itwdf_ * ro;
28635 rtws[p + j] = re + ro;
28636 itws[p + j] = ie + io;
28638 rtws[p + j + s] = re - ro;
28639 itws[p + j + s] = ie - io;
28641 /* jshint maxdepth : false */
28643 rx = rtwdf * rtwdf_ - itwdf * itwdf_;
28645 itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
28653 FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
28654 var N = Math.max(m, n) |
1;
28657 for (N = N /
2 |
0; N; N = N
>>> 1) {
28661 return
1 << i +
1 + odd;
28664 FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
28665 if (N <=
1) return;
28667 for (var i =
0; i < N /
2; i++) {
28670 rws[i] = rws[N - i -
1];
28671 rws[N - i -
1] = t;
28675 iws[i] = -iws[N - i -
1];
28676 iws[N - i -
1] = -t;
28680 FFTM.prototype.normalize13b = function normalize13b (ws, N) {
28682 for (var i =
0; i < N /
2; i++) {
28683 var w = Math.round(ws[
2 * i +
1] / N) *
0x2000 +
28684 Math.round(ws[
2 * i] / N) +
28687 ws[i] = w &
0x3ffffff;
28689 if (w <
0x4000000) {
28692 carry = w /
0x4000000 |
0;
28699 FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
28701 for (var i =
0; i < len; i++) {
28702 carry = carry + (ws[i] |
0);
28704 rws[
2 * i] = carry &
0x1fff; carry = carry
>>> 13;
28705 rws[
2 * i +
1] = carry &
0x1fff; carry = carry
>>> 13;
28709 for (i =
2 * len; i < N; ++i) {
28713 assert(carry ===
0);
28714 assert((carry & ~
0x1fff) ===
0);
28717 FFTM.prototype.stub = function stub (N) {
28718 var ph = new Array(N);
28719 for (var i =
0; i < N; i++) {
28726 FFTM.prototype.mulp = function mulp (x, y, out) {
28727 var N =
2 * this.guessLen13b(x.length, y.length);
28729 var rbt = this.makeRBT(N);
28731 var _ = this.stub(N);
28733 var rws = new Array(N);
28734 var rwst = new Array(N);
28735 var iwst = new Array(N);
28737 var nrws = new Array(N);
28738 var nrwst = new Array(N);
28739 var niwst = new Array(N);
28741 var rmws = out.words;
28744 this.convert13b(x.words, x.length, rws, N);
28745 this.convert13b(y.words, y.length, nrws, N);
28747 this.transform(rws, _, rwst, iwst, N, rbt);
28748 this.transform(nrws, _, nrwst, niwst, N, rbt);
28750 for (var i =
0; i < N; i++) {
28751 var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
28752 iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
28756 this.conjugate(rwst, iwst, N);
28757 this.transform(rwst, iwst, rmws, _, N, rbt);
28758 this.conjugate(rmws, _, N);
28759 this.normalize13b(rmws, N);
28761 out.negative = x.negative ^ y.negative;
28762 out.length = x.length + y.length;
28763 return out.strip();
28766 // Multiply `this` by `num`
28767 BN.prototype.mul = function mul (num) {
28768 var out = new BN(null);
28769 out.words = new Array(this.length + num.length);
28770 return this.mulTo(num, out);
28773 // Multiply employing FFT
28774 BN.prototype.mulf = function mulf (num) {
28775 var out = new BN(null);
28776 out.words = new Array(this.length + num.length);
28777 return jumboMulTo(this, num, out);
28780 // In-place Multiplication
28781 BN.prototype.imul = function imul (num) {
28782 return this.clone().mulTo(num, this);
28785 BN.prototype.imuln = function imuln (num) {
28786 assert(typeof num === 'number');
28787 assert(num <
0x4000000);
28791 for (var i =
0; i < this.length; i++) {
28792 var w = (this.words[i] |
0) * num;
28793 var lo = (w &
0x3ffffff) + (carry &
0x3ffffff);
28795 carry += (w /
0x4000000) |
0;
28796 // NOTE: lo is
27bit maximum
28797 carry += lo
>>> 26;
28798 this.words[i] = lo &
0x3ffffff;
28802 this.words[i] = carry;
28809 BN.prototype.muln = function muln (num) {
28810 return this.clone().imuln(num);
28814 BN.prototype.sqr = function sqr () {
28815 return this.mul(this);
28818 // `this` * `this` in-place
28819 BN.prototype.isqr = function isqr () {
28820 return this.imul(this.clone());
28823 // Math.pow(`this`, `num`)
28824 BN.prototype.pow = function pow (num) {
28825 var w = toBitArray(num);
28826 if (w.length ===
0) return new BN(
1);
28828 // Skip leading zeroes
28830 for (var i =
0; i < w.length; i++, res = res.sqr()) {
28831 if (w[i] !==
0) break;
28834 if (++i < w.length) {
28835 for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
28836 if (w[i] ===
0) continue;
28845 // Shift-left in-place
28846 BN.prototype.iushln = function iushln (bits) {
28847 assert(typeof bits === 'number' && bits
>=
0);
28849 var s = (bits - r) /
26;
28850 var carryMask = (
0x3ffffff >>> (
26 - r)) << (
26 - r);
28856 for (i =
0; i < this.length; i++) {
28857 var newCarry = this.words[i] & carryMask;
28858 var c = ((this.words[i] |
0) - newCarry) << r;
28859 this.words[i] = c | carry;
28860 carry = newCarry
>>> (
26 - r);
28864 this.words[i] = carry;
28870 for (i = this.length -
1; i
>=
0; i--) {
28871 this.words[i + s] = this.words[i];
28874 for (i =
0; i < s; i++) {
28881 return this.strip();
28884 BN.prototype.ishln = function ishln (bits) {
28885 // TODO(indutny): implement me
28886 assert(this.negative ===
0);
28887 return this.iushln(bits);
28890 // Shift-right in-place
28891 // NOTE: `hint` is a lowest bit before trailing zeroes
28892 // NOTE: if `extended` is present - it will be filled with destroyed bits
28893 BN.prototype.iushrn = function iushrn (bits, hint, extended) {
28894 assert(typeof bits === 'number' && bits
>=
0);
28897 h = (hint - (hint %
26)) /
26;
28903 var s = Math.min((bits - r) /
26, this.length);
28904 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
28905 var maskedWords = extended;
28908 h = Math.max(
0, h);
28910 // Extended mode, copy masked part
28912 for (var i =
0; i < s; i++) {
28913 maskedWords.words[i] = this.words[i];
28915 maskedWords.length = s;
28919 // No-op, we should not move anything at all
28920 } else if (this.length
> s) {
28922 for (i =
0; i < this.length; i++) {
28923 this.words[i] = this.words[i + s];
28931 for (i = this.length -
1; i
>=
0 && (carry !==
0 || i
>= h); i--) {
28932 var word = this.words[i] |
0;
28933 this.words[i] = (carry << (
26 - r)) | (word
>>> r);
28934 carry = word & mask;
28937 // Push carried bits as a mask
28938 if (maskedWords && carry !==
0) {
28939 maskedWords.words[maskedWords.length++] = carry;
28942 if (this.length ===
0) {
28947 return this.strip();
28950 BN.prototype.ishrn = function ishrn (bits, hint, extended) {
28951 // TODO(indutny): implement me
28952 assert(this.negative ===
0);
28953 return this.iushrn(bits, hint, extended);
28957 BN.prototype.shln = function shln (bits) {
28958 return this.clone().ishln(bits);
28961 BN.prototype.ushln = function ushln (bits) {
28962 return this.clone().iushln(bits);
28966 BN.prototype.shrn = function shrn (bits) {
28967 return this.clone().ishrn(bits);
28970 BN.prototype.ushrn = function ushrn (bits) {
28971 return this.clone().iushrn(bits);
28974 // Test if n bit is set
28975 BN.prototype.testn = function testn (bit) {
28976 assert(typeof bit === 'number' && bit
>=
0);
28978 var s = (bit - r) /
26;
28981 // Fast case: bit is much higher than all existing words
28982 if (this.length <= s) return false;
28984 // Check bit and return
28985 var w = this.words[s];
28990 // Return only lowers bits of number (in-place)
28991 BN.prototype.imaskn = function imaskn (bits) {
28992 assert(typeof bits === 'number' && bits
>=
0);
28994 var s = (bits - r) /
26;
28996 assert(this.negative ===
0, 'imaskn works only with positive numbers');
28998 if (this.length <= s) {
29005 this.length = Math.min(s, this.length);
29008 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
29009 this.words[this.length -
1] &= mask;
29012 return this.strip();
29015 // Return only lowers bits of number
29016 BN.prototype.maskn = function maskn (bits) {
29017 return this.clone().imaskn(bits);
29020 // Add plain number `num` to `this`
29021 BN.prototype.iaddn = function iaddn (num) {
29022 assert(typeof num === 'number');
29023 assert(num <
0x4000000);
29024 if (num <
0) return this.isubn(-num);
29026 // Possible sign change
29027 if (this.negative !==
0) {
29028 if (this.length ===
1 && (this.words[
0] |
0) < num) {
29029 this.words[
0] = num - (this.words[
0] |
0);
29040 // Add without checks
29041 return this._iaddn(num);
29044 BN.prototype._iaddn = function _iaddn (num) {
29045 this.words[
0] += num;
29048 for (var i =
0; i < this.length && this.words[i]
>=
0x4000000; i++) {
29049 this.words[i] -=
0x4000000;
29050 if (i === this.length -
1) {
29051 this.words[i +
1] =
1;
29053 this.words[i +
1]++;
29056 this.length = Math.max(this.length, i +
1);
29061 // Subtract plain number `num` from `this`
29062 BN.prototype.isubn = function isubn (num) {
29063 assert(typeof num === 'number');
29064 assert(num <
0x4000000);
29065 if (num <
0) return this.iaddn(-num);
29067 if (this.negative !==
0) {
29074 this.words[
0] -= num;
29076 if (this.length ===
1 && this.words[
0] <
0) {
29077 this.words[
0] = -this.words[
0];
29081 for (var i =
0; i < this.length && this.words[i] <
0; i++) {
29082 this.words[i] +=
0x4000000;
29083 this.words[i +
1] -=
1;
29087 return this.strip();
29090 BN.prototype.addn = function addn (num) {
29091 return this.clone().iaddn(num);
29094 BN.prototype.subn = function subn (num) {
29095 return this.clone().isubn(num);
29098 BN.prototype.iabs = function iabs () {
29104 BN.prototype.abs = function abs () {
29105 return this.clone().iabs();
29108 BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
29109 var len = num.length + shift;
29116 for (i =
0; i < num.length; i++) {
29117 w = (this.words[i + shift] |
0) + carry;
29118 var right = (num.words[i] |
0) * mul;
29119 w -= right &
0x3ffffff;
29120 carry = (w
>> 26) - ((right /
0x4000000) |
0);
29121 this.words[i + shift] = w &
0x3ffffff;
29123 for (; i < this.length - shift; i++) {
29124 w = (this.words[i + shift] |
0) + carry;
29126 this.words[i + shift] = w &
0x3ffffff;
29129 if (carry ===
0) return this.strip();
29131 // Subtraction overflow
29132 assert(carry === -
1);
29134 for (i =
0; i < this.length; i++) {
29135 w = -(this.words[i] |
0) + carry;
29137 this.words[i] = w &
0x3ffffff;
29141 return this.strip();
29144 BN.prototype._wordDiv = function _wordDiv (num, mode) {
29145 var shift = this.length - num.length;
29147 var a = this.clone();
29151 var bhi = b.words[b.length -
1] |
0;
29152 var bhiBits = this._countBits(bhi);
29153 shift =
26 - bhiBits;
29155 b = b.ushln(shift);
29157 bhi = b.words[b.length -
1] |
0;
29160 // Initialize quotient
29161 var m = a.length - b.length;
29164 if (mode !== 'mod') {
29167 q.words = new Array(q.length);
29168 for (var i =
0; i < q.length; i++) {
29173 var diff = a.clone()._ishlnsubmul(b,
1, m);
29174 if (diff.negative ===
0) {
29181 for (var j = m -
1; j
>=
0; j--) {
29182 var qj = (a.words[b.length + j] |
0) *
0x4000000 +
29183 (a.words[b.length + j -
1] |
0);
29185 // NOTE: (qj / bhi) is (
0x3ffffff *
0x4000000 +
0x3ffffff) /
0x2000000 max
29187 qj = Math.min((qj / bhi) |
0,
0x3ffffff);
29189 a._ishlnsubmul(b, qj, j);
29190 while (a.negative !==
0) {
29193 a._ishlnsubmul(b,
1, j);
29208 if (mode !== 'div' && shift !==
0) {
29218 // NOTE:
1) `mode` can be set to `mod` to request mod only,
29219 // to `div` to request div only, or be absent to
29220 // request both div & mod
29221 //
2) `positive` is true if unsigned mod is requested
29222 BN.prototype.divmod = function divmod (num, mode, positive) {
29223 assert(!num.isZero());
29225 if (this.isZero()) {
29233 if (this.negative !==
0 && num.negative ===
0) {
29234 res = this.neg().divmod(num, mode);
29236 if (mode !== 'mod') {
29237 div = res.div.neg();
29240 if (mode !== 'div') {
29241 mod = res.mod.neg();
29242 if (positive && mod.negative !==
0) {
29253 if (this.negative ===
0 && num.negative !==
0) {
29254 res = this.divmod(num.neg(), mode);
29256 if (mode !== 'mod') {
29257 div = res.div.neg();
29266 if ((this.negative & num.negative) !==
0) {
29267 res = this.neg().divmod(num.neg(), mode);
29269 if (mode !== 'div') {
29270 mod = res.mod.neg();
29271 if (positive && mod.negative !==
0) {
29282 // Both numbers are positive at this point
29284 // Strip both numbers to approximate shift value
29285 if (num.length
> this.length || this.cmp(num) <
0) {
29292 // Very short reduction
29293 if (num.length ===
1) {
29294 if (mode === 'div') {
29296 div: this.divn(num.words[
0]),
29301 if (mode === 'mod') {
29304 mod: new BN(this.modn(num.words[
0]))
29309 div: this.divn(num.words[
0]),
29310 mod: new BN(this.modn(num.words[
0]))
29314 return this._wordDiv(num, mode);
29317 // Find `this` / `num`
29318 BN.prototype.div = function div (num) {
29319 return this.divmod(num, 'div', false).div;
29322 // Find `this` % `num`
29323 BN.prototype.mod = function mod (num) {
29324 return this.divmod(num, 'mod', false).mod;
29327 BN.prototype.umod = function umod (num) {
29328 return this.divmod(num, 'mod', true).mod;
29331 // Find Round(`this` / `num`)
29332 BN.prototype.divRound = function divRound (num) {
29333 var dm = this.divmod(num);
29335 // Fast case - exact division
29336 if (dm.mod.isZero()) return dm.div;
29338 var mod = dm.div.negative !==
0 ? dm.mod.isub(num) : dm.mod;
29340 var half = num.ushrn(
1);
29341 var r2 = num.andln(
1);
29342 var cmp = mod.cmp(half);
29345 if (cmp <
0 || r2 ===
1 && cmp ===
0) return dm.div;
29348 return dm.div.negative !==
0 ? dm.div.isubn(
1) : dm.div.iaddn(
1);
29351 BN.prototype.modn = function modn (num) {
29352 assert(num <=
0x3ffffff);
29353 var p = (
1 <<
26) % num;
29356 for (var i = this.length -
1; i
>=
0; i--) {
29357 acc = (p * acc + (this.words[i] |
0)) % num;
29363 // In-place division by number
29364 BN.prototype.idivn = function idivn (num) {
29365 assert(num <=
0x3ffffff);
29368 for (var i = this.length -
1; i
>=
0; i--) {
29369 var w = (this.words[i] |
0) + carry *
0x4000000;
29370 this.words[i] = (w / num) |
0;
29374 return this.strip();
29377 BN.prototype.divn = function divn (num) {
29378 return this.clone().idivn(num);
29381 BN.prototype.egcd = function egcd (p) {
29382 assert(p.negative ===
0);
29383 assert(!p.isZero());
29388 if (x.negative !==
0) {
29394 // A * x + B * y = x
29398 // C * x + D * y = y
29404 while (x.isEven() && y.isEven()) {
29410 var yp = y.clone();
29411 var xp = x.clone();
29413 while (!x.isZero()) {
29414 for (var i =
0, im =
1; (x.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
29418 if (A.isOdd() || B.isOdd()) {
29428 for (var j =
0, jm =
1; (y.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
29432 if (C.isOdd() || D.isOdd()) {
29442 if (x.cmp(y)
>=
0) {
29460 // This is reduced incarnation of the binary EEA
29461 // above, designated to invert members of the
29462 // _prime_ fields F(p) at a maximal speed
29463 BN.prototype._invmp = function _invmp (p) {
29464 assert(p.negative ===
0);
29465 assert(!p.isZero());
29470 if (a.negative !==
0) {
29476 var x1 = new BN(
1);
29477 var x2 = new BN(
0);
29479 var delta = b.clone();
29481 while (a.cmpn(
1)
> 0 && b.cmpn(
1)
> 0) {
29482 for (var i =
0, im =
1; (a.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
29494 for (var j =
0, jm =
1; (b.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
29506 if (a.cmp(b)
>=
0) {
29516 if (a.cmpn(
1) ===
0) {
29522 if (res.cmpn(
0) <
0) {
29529 BN.prototype.gcd = function gcd (num) {
29530 if (this.isZero()) return num.abs();
29531 if (num.isZero()) return this.abs();
29533 var a = this.clone();
29534 var b = num.clone();
29538 // Remove common factor of two
29539 for (var shift =
0; a.isEven() && b.isEven(); shift++) {
29545 while (a.isEven()) {
29548 while (b.isEven()) {
29554 // Swap `a` and `b` to make `a` always bigger than `b`
29558 } else if (r ===
0 || b.cmpn(
1) ===
0) {
29565 return b.iushln(shift);
29568 // Invert number in the field F(num)
29569 BN.prototype.invm = function invm (num) {
29570 return this.egcd(num).a.umod(num);
29573 BN.prototype.isEven = function isEven () {
29574 return (this.words[
0] &
1) ===
0;
29577 BN.prototype.isOdd = function isOdd () {
29578 return (this.words[
0] &
1) ===
1;
29581 // And first word and num
29582 BN.prototype.andln = function andln (num) {
29583 return this.words[
0] & num;
29586 // Increment at the bit position in-line
29587 BN.prototype.bincn = function bincn (bit) {
29588 assert(typeof bit === 'number');
29590 var s = (bit - r) /
26;
29593 // Fast case: bit is much higher than all existing words
29594 if (this.length <= s) {
29595 this._expand(s +
1);
29596 this.words[s] |= q;
29600 // Add bit and propagate, if needed
29602 for (var i = s; carry !==
0 && i < this.length; i++) {
29603 var w = this.words[i] |
0;
29610 this.words[i] = carry;
29616 BN.prototype.isZero = function isZero () {
29617 return this.length ===
1 && this.words[
0] ===
0;
29620 BN.prototype.cmpn = function cmpn (num) {
29621 var negative = num <
0;
29623 if (this.negative !==
0 && !negative) return -
1;
29624 if (this.negative ===
0 && negative) return
1;
29629 if (this.length
> 1) {
29636 assert(num <=
0x3ffffff, 'Number is too big');
29638 var w = this.words[
0] |
0;
29639 res = w === num ?
0 : w < num ? -
1 :
1;
29641 if (this.negative !==
0) return -res |
0;
29645 // Compare two numbers and return:
29646 //
1 - if `this`
> `num`
29647 //
0 - if `this` == `num`
29648 // -
1 - if `this` < `num`
29649 BN.prototype.cmp = function cmp (num) {
29650 if (this.negative !==
0 && num.negative ===
0) return -
1;
29651 if (this.negative ===
0 && num.negative !==
0) return
1;
29653 var res = this.ucmp(num);
29654 if (this.negative !==
0) return -res |
0;
29658 // Unsigned comparison
29659 BN.prototype.ucmp = function ucmp (num) {
29660 // At this point both numbers have the same sign
29661 if (this.length
> num.length) return
1;
29662 if (this.length < num.length) return -
1;
29665 for (var i = this.length -
1; i
>=
0; i--) {
29666 var a = this.words[i] |
0;
29667 var b = num.words[i] |
0;
29669 if (a === b) continue;
29672 } else if (a
> b) {
29680 BN.prototype.gtn = function gtn (num) {
29681 return this.cmpn(num) ===
1;
29684 BN.prototype.gt = function gt (num) {
29685 return this.cmp(num) ===
1;
29688 BN.prototype.gten = function gten (num) {
29689 return this.cmpn(num)
>=
0;
29692 BN.prototype.gte = function gte (num) {
29693 return this.cmp(num)
>=
0;
29696 BN.prototype.ltn = function ltn (num) {
29697 return this.cmpn(num) === -
1;
29700 BN.prototype.lt = function lt (num) {
29701 return this.cmp(num) === -
1;
29704 BN.prototype.lten = function lten (num) {
29705 return this.cmpn(num) <=
0;
29708 BN.prototype.lte = function lte (num) {
29709 return this.cmp(num) <=
0;
29712 BN.prototype.eqn = function eqn (num) {
29713 return this.cmpn(num) ===
0;
29716 BN.prototype.eq = function eq (num) {
29717 return this.cmp(num) ===
0;
29721 // A reduce context, could be using montgomery or something better, depending
29722 // on the `m` itself.
29724 BN.red = function red (num) {
29725 return new Red(num);
29728 BN.prototype.toRed = function toRed (ctx) {
29729 assert(!this.red, 'Already a number in reduction context');
29730 assert(this.negative ===
0, 'red works only with positives');
29731 return ctx.convertTo(this)._forceRed(ctx);
29734 BN.prototype.fromRed = function fromRed () {
29735 assert(this.red, 'fromRed works only with numbers in reduction context');
29736 return this.red.convertFrom(this);
29739 BN.prototype._forceRed = function _forceRed (ctx) {
29744 BN.prototype.forceRed = function forceRed (ctx) {
29745 assert(!this.red, 'Already a number in reduction context');
29746 return this._forceRed(ctx);
29749 BN.prototype.redAdd = function redAdd (num) {
29750 assert(this.red, 'redAdd works only with red numbers');
29751 return this.red.add(this, num);
29754 BN.prototype.redIAdd = function redIAdd (num) {
29755 assert(this.red, 'redIAdd works only with red numbers');
29756 return this.red.iadd(this, num);
29759 BN.prototype.redSub = function redSub (num) {
29760 assert(this.red, 'redSub works only with red numbers');
29761 return this.red.sub(this, num);
29764 BN.prototype.redISub = function redISub (num) {
29765 assert(this.red, 'redISub works only with red numbers');
29766 return this.red.isub(this, num);
29769 BN.prototype.redShl = function redShl (num) {
29770 assert(this.red, 'redShl works only with red numbers');
29771 return this.red.shl(this, num);
29774 BN.prototype.redMul = function redMul (num) {
29775 assert(this.red, 'redMul works only with red numbers');
29776 this.red._verify2(this, num);
29777 return this.red.mul(this, num);
29780 BN.prototype.redIMul = function redIMul (num) {
29781 assert(this.red, 'redMul works only with red numbers');
29782 this.red._verify2(this, num);
29783 return this.red.imul(this, num);
29786 BN.prototype.redSqr = function redSqr () {
29787 assert(this.red, 'redSqr works only with red numbers');
29788 this.red._verify1(this);
29789 return this.red.sqr(this);
29792 BN.prototype.redISqr = function redISqr () {
29793 assert(this.red, 'redISqr works only with red numbers');
29794 this.red._verify1(this);
29795 return this.red.isqr(this);
29798 // Square root over p
29799 BN.prototype.redSqrt = function redSqrt () {
29800 assert(this.red, 'redSqrt works only with red numbers');
29801 this.red._verify1(this);
29802 return this.red.sqrt(this);
29805 BN.prototype.redInvm = function redInvm () {
29806 assert(this.red, 'redInvm works only with red numbers');
29807 this.red._verify1(this);
29808 return this.red.invm(this);
29811 // Return negative clone of `this` % `red modulo`
29812 BN.prototype.redNeg = function redNeg () {
29813 assert(this.red, 'redNeg works only with red numbers');
29814 this.red._verify1(this);
29815 return this.red.neg(this);
29818 BN.prototype.redPow = function redPow (num) {
29819 assert(this.red && !num.red, 'redPow(normalNum)');
29820 this.red._verify1(this);
29821 return this.red.pow(this, num);
29824 // Prime numbers with efficient reduction
29832 // Pseudo-Mersenne prime
29833 function MPrime (name, p) {
29836 this.p = new BN(p,
16);
29837 this.n = this.p.bitLength();
29838 this.k = new BN(
1).iushln(this.n).isub(this.p);
29840 this.tmp = this._tmp();
29843 MPrime.prototype._tmp = function _tmp () {
29844 var tmp = new BN(null);
29845 tmp.words = new Array(Math.ceil(this.n /
13));
29849 MPrime.prototype.ireduce = function ireduce (num) {
29850 // Assumes that `num` is less than `P^
2`
29851 // num = HI * (
2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
29856 this.split(r, this.tmp);
29858 r = r.iadd(this.tmp);
29859 rlen = r.bitLength();
29860 } while (rlen
> this.n);
29862 var cmp = rlen < this.n ? -
1 : r.ucmp(this.p);
29866 } else if (cmp
> 0) {
29875 MPrime.prototype.split = function split (input, out) {
29876 input.iushrn(this.n,
0, out);
29879 MPrime.prototype.imulK = function imulK (num) {
29880 return num.imul(this.k);
29887 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
29889 inherits(K256, MPrime);
29891 K256.prototype.split = function split (input, output) {
29892 //
256 =
9 *
26 +
22
29893 var mask =
0x3fffff;
29895 var outLen = Math.min(input.length,
9);
29896 for (var i =
0; i < outLen; i++) {
29897 output.words[i] = input.words[i];
29899 output.length = outLen;
29901 if (input.length <=
9) {
29902 input.words[
0] =
0;
29907 // Shift by
9 limbs
29908 var prev = input.words[
9];
29909 output.words[output.length++] = prev & mask;
29911 for (i =
10; i < input.length; i++) {
29912 var next = input.words[i] |
0;
29913 input.words[i -
10] = ((next & mask) <<
4) | (prev
>>> 22);
29917 input.words[i -
10] = prev;
29918 if (prev ===
0 && input.length
> 10) {
29919 input.length -=
10;
29925 K256.prototype.imulK = function imulK (num) {
29926 // K =
0x1000003d1 = [
0x40,
0x3d1 ]
29927 num.words[num.length] =
0;
29928 num.words[num.length +
1] =
0;
29931 // bounded at:
0x40 *
0x3ffffff +
0x3d0 =
0x100000390
29933 for (var i =
0; i < num.length; i++) {
29934 var w = num.words[i] |
0;
29936 num.words[i] = lo &
0x3ffffff;
29937 lo = w *
0x40 + ((lo /
0x4000000) |
0);
29940 // Fast length reduction
29941 if (num.words[num.length -
1] ===
0) {
29943 if (num.words[num.length -
1] ===
0) {
29954 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001');
29956 inherits(P224, MPrime);
29962 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
29964 inherits(P192, MPrime);
29966 function P25519 () {
29971 '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
29973 inherits(P25519, MPrime);
29975 P25519.prototype.imulK = function imulK (num) {
29978 for (var i =
0; i < num.length; i++) {
29979 var hi = (num.words[i] |
0) *
0x13 + carry;
29980 var lo = hi &
0x3ffffff;
29987 num.words[num.length++] = carry;
29992 // Exported mostly for testing purposes, use plain name instead
29993 BN._prime = function prime (name) {
29994 // Cached version of prime
29995 if (primes[name]) return primes[name];
29998 if (name === 'k256') {
29999 prime = new K256();
30000 } else if (name === 'p224') {
30001 prime = new P224();
30002 } else if (name === 'p192') {
30003 prime = new P192();
30004 } else if (name === 'p25519') {
30005 prime = new P25519();
30007 throw new Error('Unknown prime ' + name);
30009 primes[name] = prime;
30015 // Base reduction engine
30018 if (typeof m === 'string') {
30019 var prime = BN._prime(m);
30021 this.prime = prime;
30023 assert(m.gtn(
1), 'modulus must be greater than
1');
30029 Red.prototype._verify1 = function _verify1 (a) {
30030 assert(a.negative ===
0, 'red works only with positives');
30031 assert(a.red, 'red works only with red numbers');
30034 Red.prototype._verify2 = function _verify2 (a, b) {
30035 assert((a.negative | b.negative) ===
0, 'red works only with positives');
30036 assert(a.red && a.red === b.red,
30037 'red works only with red numbers');
30040 Red.prototype.imod = function imod (a) {
30041 if (this.prime) return this.prime.ireduce(a)._forceRed(this);
30042 return a.umod(this.m)._forceRed(this);
30045 Red.prototype.neg = function neg (a) {
30050 return this.m.sub(a)._forceRed(this);
30053 Red.prototype.add = function add (a, b) {
30054 this._verify2(a, b);
30056 var res = a.add(b);
30057 if (res.cmp(this.m)
>=
0) {
30060 return res._forceRed(this);
30063 Red.prototype.iadd = function iadd (a, b) {
30064 this._verify2(a, b);
30066 var res = a.iadd(b);
30067 if (res.cmp(this.m)
>=
0) {
30073 Red.prototype.sub = function sub (a, b) {
30074 this._verify2(a, b);
30076 var res = a.sub(b);
30077 if (res.cmpn(
0) <
0) {
30080 return res._forceRed(this);
30083 Red.prototype.isub = function isub (a, b) {
30084 this._verify2(a, b);
30086 var res = a.isub(b);
30087 if (res.cmpn(
0) <
0) {
30093 Red.prototype.shl = function shl (a, num) {
30095 return this.imod(a.ushln(num));
30098 Red.prototype.imul = function imul (a, b) {
30099 this._verify2(a, b);
30100 return this.imod(a.imul(b));
30103 Red.prototype.mul = function mul (a, b) {
30104 this._verify2(a, b);
30105 return this.imod(a.mul(b));
30108 Red.prototype.isqr = function isqr (a) {
30109 return this.imul(a, a.clone());
30112 Red.prototype.sqr = function sqr (a) {
30113 return this.mul(a, a);
30116 Red.prototype.sqrt = function sqrt (a) {
30117 if (a.isZero()) return a.clone();
30119 var mod3 = this.m.andln(
3);
30120 assert(mod3 %
2 ===
1);
30124 var pow = this.m.add(new BN(
1)).iushrn(
2);
30125 return this.pow(a, pow);
30128 // Tonelli-Shanks algorithm (Totally unoptimized and slow)
30130 // Find Q and S, that Q *
2 ^ S = (P -
1)
30131 var q = this.m.subn(
1);
30133 while (!q.isZero() && q.andln(
1) ===
0) {
30137 assert(!q.isZero());
30139 var one = new BN(
1).toRed(this);
30140 var nOne = one.redNeg();
30142 // Find quadratic non-residue
30143 // NOTE: Max is such because of generalized Riemann hypothesis.
30144 var lpow = this.m.subn(
1).iushrn(
1);
30145 var z = this.m.bitLength();
30146 z = new BN(
2 * z * z).toRed(this);
30148 while (this.pow(z, lpow).cmp(nOne) !==
0) {
30152 var c = this.pow(z, q);
30153 var r = this.pow(a, q.addn(
1).iushrn(
1));
30154 var t = this.pow(a, q);
30156 while (t.cmp(one) !==
0) {
30158 for (var i =
0; tmp.cmp(one) !==
0; i++) {
30159 tmp = tmp.redSqr();
30162 var b = this.pow(c, new BN(
1).iushln(m - i -
1));
30173 Red.prototype.invm = function invm (a) {
30174 var inv = a._invmp(this.m);
30175 if (inv.negative !==
0) {
30177 return this.imod(inv).redNeg();
30179 return this.imod(inv);
30183 Red.prototype.pow = function pow (a, num) {
30184 if (num.isZero()) return new BN(
1);
30185 if (num.cmpn(
1) ===
0) return a.clone();
30187 var windowSize =
4;
30188 var wnd = new Array(
1 << windowSize);
30189 wnd[
0] = new BN(
1).toRed(this);
30191 for (var i =
2; i < wnd.length; i++) {
30192 wnd[i] = this.mul(wnd[i -
1], a);
30197 var currentLen =
0;
30198 var start = num.bitLength() %
26;
30203 for (i = num.length -
1; i
>=
0; i--) {
30204 var word = num.words[i];
30205 for (var j = start -
1; j
>=
0; j--) {
30206 var bit = (word
>> j) &
1;
30207 if (res !== wnd[
0]) {
30208 res = this.sqr(res);
30211 if (bit ===
0 && current ===
0) {
30219 if (currentLen !== windowSize && (i !==
0 || j !==
0)) continue;
30221 res = this.mul(res, wnd[current]);
30231 Red.prototype.convertTo = function convertTo (num) {
30232 var r = num.umod(this.m);
30234 return r === num ? r.clone() : r;
30237 Red.prototype.convertFrom = function convertFrom (num) {
30238 var res = num.clone();
30244 // Montgomery method engine
30247 BN.mont = function mont (num) {
30248 return new Mont(num);
30251 function Mont (m) {
30254 this.shift = this.m.bitLength();
30255 if (this.shift %
26 !==
0) {
30256 this.shift +=
26 - (this.shift %
26);
30259 this.r = new BN(
1).iushln(this.shift);
30260 this.r2 = this.imod(this.r.sqr());
30261 this.rinv = this.r._invmp(this.m);
30263 this.minv = this.rinv.mul(this.r).isubn(
1).div(this.m);
30264 this.minv = this.minv.umod(this.r);
30265 this.minv = this.r.sub(this.minv);
30267 inherits(Mont, Red);
30269 Mont.prototype.convertTo = function convertTo (num) {
30270 return this.imod(num.ushln(this.shift));
30273 Mont.prototype.convertFrom = function convertFrom (num) {
30274 var r = this.imod(num.mul(this.rinv));
30279 Mont.prototype.imul = function imul (a, b) {
30280 if (a.isZero() || b.isZero()) {
30287 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
30288 var u = t.isub(c).iushrn(this.shift);
30291 if (u.cmp(this.m)
>=
0) {
30292 res = u.isub(this.m);
30293 } else if (u.cmpn(
0) <
0) {
30294 res = u.iadd(this.m);
30297 return res._forceRed(this);
30300 Mont.prototype.mul = function mul (a, b) {
30301 if (a.isZero() || b.isZero()) return new BN(
0)._forceRed(this);
30304 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
30305 var u = t.isub(c).iushrn(this.shift);
30307 if (u.cmp(this.m)
>=
0) {
30308 res = u.isub(this.m);
30309 } else if (u.cmpn(
0) <
0) {
30310 res = u.iadd(this.m);
30313 return res._forceRed(this);
30316 Mont.prototype.invm = function invm (a) {
30317 // (AR)^-
1 * R^
2 = (A^-
1 * R^-
1) * R^
2 = A^-
1 * R
30318 var res = this.imod(a._invmp(this.m).mul(this.r2));
30319 return res._forceRed(this);
30321 })(typeof module === 'undefined' || module, this);
30323 },{}],
34:[function(require,module,exports){
30326 module.exports = function rand(len) {
30328 r = new Rand(null);
30330 return r.generate(len);
30333 function Rand(rand) {
30336 module.exports.Rand = Rand;
30338 Rand.prototype.generate = function generate(len) {
30339 return this._rand(len);
30342 if (typeof self === 'object') {
30343 if (self.crypto && self.crypto.getRandomValues) {
30345 Rand.prototype._rand = function _rand(n) {
30346 var arr = new Uint8Array(n);
30347 self.crypto.getRandomValues(arr);
30350 } else if (self.msCrypto && self.msCrypto.getRandomValues) {
30352 Rand.prototype._rand = function _rand(n) {
30353 var arr = new Uint8Array(n);
30354 self.msCrypto.getRandomValues(arr);
30359 Rand.prototype._rand = function() {
30360 throw new Error('Not implemented yet');
30364 // Node.js or Web worker with no crypto support
30366 var crypto = require('crypto');
30368 Rand.prototype._rand = function _rand(n) {
30369 return crypto.randomBytes(n);
30372 // Emulate crypto API using randy
30373 Rand.prototype._rand = function _rand(n) {
30374 var res = new Uint8Array(n);
30375 for (var i =
0; i < res.length; i++)
30376 res[i] = this.rand.getByte();
30382 },{"crypto":
3}],
35:[function(require,module,exports){
30383 (function (Buffer){
30384 var Transform = require('stream').Transform
30385 var inherits = require('inherits')
30386 var StringDecoder = require('string_decoder').StringDecoder
30387 module.exports = CipherBase
30388 inherits(CipherBase, Transform)
30389 function CipherBase (hashMode) {
30390 Transform.call(this)
30391 this.hashMode = typeof hashMode === 'string'
30392 if (this.hashMode) {
30393 this[hashMode] = this._finalOrDigest
30395 this.final = this._finalOrDigest
30397 this._decoder = null
30398 this._encoding = null
30400 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
30401 if (typeof data === 'string') {
30402 data = new Buffer(data, inputEnc)
30404 var outData = this._update(data)
30405 if (this.hashMode) {
30409 outData = this._toString(outData, outputEnc)
30414 CipherBase.prototype.setAutoPadding = function () {}
30416 CipherBase.prototype.getAuthTag = function () {
30417 throw new Error('trying to get auth tag in unsupported state')
30420 CipherBase.prototype.setAuthTag = function () {
30421 throw new Error('trying to set auth tag in unsupported state')
30424 CipherBase.prototype.setAAD = function () {
30425 throw new Error('trying to set aad in unsupported state')
30428 CipherBase.prototype._transform = function (data, _, next) {
30431 if (this.hashMode) {
30434 this.push(this._update(data))
30442 CipherBase.prototype._flush = function (done) {
30445 this.push(this._final())
30452 CipherBase.prototype._finalOrDigest = function (outputEnc) {
30453 var outData = this._final() || new Buffer('')
30455 outData = this._toString(outData, outputEnc, true)
30460 CipherBase.prototype._toString = function (value, enc, fin) {
30461 if (!this._decoder) {
30462 this._decoder = new StringDecoder(enc)
30463 this._encoding = enc
30465 if (this._encoding !== enc) {
30466 throw new Error('can\'t switch encodings')
30468 var out = this._decoder.write(value)
30470 out += this._decoder.end()
30475 }).call(this,require("buffer").Buffer)
30476 },{"buffer":
5,"inherits":
63,"stream":
25,"string_decoder":
26}],
36:[function(require,module,exports){
30477 (function (Buffer){
30479 var inherits = require('inherits')
30480 var md5 = require('./md5')
30481 var rmd160 = require('ripemd160')
30482 var sha = require('sha.js')
30484 var Base = require('cipher-base')
30486 function HashNoConstructor(hash) {
30487 Base.call(this, 'digest')
30493 inherits(HashNoConstructor, Base)
30495 HashNoConstructor.prototype._update = function (data) {
30496 this.buffers.push(data)
30499 HashNoConstructor.prototype._final = function () {
30500 var buf = Buffer.concat(this.buffers)
30501 var r = this._hash(buf)
30502 this.buffers = null
30507 function Hash(hash) {
30508 Base.call(this, 'digest')
30513 inherits(Hash, Base)
30515 Hash.prototype._update = function (data) {
30516 this._hash.update(data)
30519 Hash.prototype._final = function () {
30520 return this._hash.digest()
30523 module.exports = function createHash (alg) {
30524 alg = alg.toLowerCase()
30525 if ('md5' === alg) return new HashNoConstructor(md5)
30526 if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)
30528 return new Hash(sha(alg))
30531 }).call(this,require("buffer").Buffer)
30532 },{"./md5":
38,"buffer":
5,"cipher-base":
35,"inherits":
63,"ripemd160":
71,"sha.js":
80}],
37:[function(require,module,exports){
30533 (function (Buffer){
30536 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
30539 function toArray(buf, bigEndian) {
30540 if ((buf.length % intSize) !==
0) {
30541 var len = buf.length + (intSize - (buf.length % intSize));
30542 buf = Buffer.concat([buf, zeroBuffer], len);
30546 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
30547 for (var i =
0; i < buf.length; i += intSize) {
30548 arr.push(fn.call(buf, i));
30553 function toBuffer(arr, size, bigEndian) {
30554 var buf = new Buffer(size);
30555 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
30556 for (var i =
0; i < arr.length; i++) {
30557 fn.call(buf, arr[i], i *
4, true);
30562 function hash(buf, fn, hashSize, bigEndian) {
30563 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
30564 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
30565 return toBuffer(arr, hashSize, bigEndian);
30567 exports.hash = hash;
30568 }).call(this,require("buffer").Buffer)
30569 },{"buffer":
5}],
38:[function(require,module,exports){
30572 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
30573 * Digest Algorithm, as defined in RFC
1321.
30574 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
30575 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
30576 * Distributed under the BSD License
30577 * See http://pajhome.org.uk/crypt/md5 for more info.
30580 var helpers = require('./helpers');
30583 * Calculate the MD5 of an array of little-endian words, and a bit length
30585 function core_md5(x, len)
30587 /* append padding */
30588 x[len
>> 5] |=
0x80 << ((len) %
32);
30589 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
30591 var a =
1732584193;
30592 var b = -
271733879;
30593 var c = -
1732584194;
30596 for(var i =
0; i < x.length; i +=
16)
30603 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
30604 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
30605 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
30606 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
30607 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
30608 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
30609 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
30610 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
30611 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
30612 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
30613 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
30614 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
30615 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
30616 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
30617 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
30618 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
30620 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
30621 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
30622 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
30623 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
30624 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
30625 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
30626 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
30627 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
30628 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
30629 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
30630 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
30631 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
30632 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
30633 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
30634 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
30635 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
30637 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
30638 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
30639 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
30640 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
30641 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
30642 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
30643 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
30644 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
30645 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
30646 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
30647 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
30648 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
30649 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
30650 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
30651 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
30652 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
30654 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
30655 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
30656 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
30657 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
30658 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
30659 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
30660 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
30661 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
30662 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
30663 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
30664 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
30665 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
30666 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
30667 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
30668 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
30669 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
30671 a = safe_add(a, olda);
30672 b = safe_add(b, oldb);
30673 c = safe_add(c, oldc);
30674 d = safe_add(d, oldd);
30676 return Array(a, b, c, d);
30681 * These functions implement the four basic operations the algorithm uses.
30683 function md5_cmn(q, a, b, x, s, t)
30685 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
30687 function md5_ff(a, b, c, d, x, s, t)
30689 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
30691 function md5_gg(a, b, c, d, x, s, t)
30693 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
30695 function md5_hh(a, b, c, d, x, s, t)
30697 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
30699 function md5_ii(a, b, c, d, x, s, t)
30701 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
30705 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
30706 * to work around bugs in some JS interpreters.
30708 function safe_add(x, y)
30710 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
30711 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
30712 return (msw <<
16) | (lsw &
0xFFFF);
30716 * Bitwise rotate a
32-bit number to the left.
30718 function bit_rol(num, cnt)
30720 return (num << cnt) | (num
>>> (
32 - cnt));
30723 module.exports = function md5(buf) {
30724 return helpers.hash(buf, core_md5,
16);
30726 },{"./helpers":
37}],
39:[function(require,module,exports){
30729 var elliptic = exports;
30731 elliptic.version = require('../package.json').version;
30732 elliptic.utils = require('./elliptic/utils');
30733 elliptic.rand = require('brorand');
30734 elliptic.hmacDRBG = require('./elliptic/hmac-drbg');
30735 elliptic.curve = require('./elliptic/curve');
30736 elliptic.curves = require('./elliptic/curves');
30739 elliptic.ec = require('./elliptic/ec');
30740 elliptic.eddsa = require('./elliptic/eddsa');
30742 },{"../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){
30745 var BN = require('bn.js');
30746 var elliptic = require('../../elliptic');
30747 var utils = elliptic.utils;
30748 var getNAF = utils.getNAF;
30749 var getJSF = utils.getJSF;
30750 var assert = utils.assert;
30752 function BaseCurve(type, conf) {
30754 this.p = new BN(conf.p,
16);
30756 // Use Montgomery, when there is no fast reduction for the prime
30757 this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
30759 // Useful for many curves
30760 this.zero = new BN(
0).toRed(this.red);
30761 this.one = new BN(
1).toRed(this.red);
30762 this.two = new BN(
2).toRed(this.red);
30764 // Curve configuration, optional
30765 this.n = conf.n && new BN(conf.n,
16);
30766 this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
30768 // Temporary arrays
30769 this._wnafT1 = new Array(
4);
30770 this._wnafT2 = new Array(
4);
30771 this._wnafT3 = new Array(
4);
30772 this._wnafT4 = new Array(
4);
30774 // Generalized Greg Maxwell's trick
30775 var adjustCount = this.n && this.p.div(this.n);
30776 if (!adjustCount || adjustCount.cmpn(
100)
> 0) {
30779 this._maxwellTrick = true;
30780 this.redN = this.n.toRed(this.red);
30783 module.exports = BaseCurve;
30785 BaseCurve.prototype.point = function point() {
30786 throw new Error('Not implemented');
30789 BaseCurve.prototype.validate = function validate() {
30790 throw new Error('Not implemented');
30793 BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
30794 assert(p.precomputed);
30795 var doubles = p._getDoubles();
30797 var naf = getNAF(k,
1);
30798 var I = (
1 << (doubles.step +
1)) - (doubles.step %
2 ===
0 ?
2 :
1);
30801 // Translate into more windowed form
30803 for (var j =
0; j < naf.length; j += doubles.step) {
30805 for (var k = j + doubles.step -
1; k
>= j; k--)
30806 nafW = (nafW <<
1) + naf[k];
30810 var a = this.jpoint(null, null, null);
30811 var b = this.jpoint(null, null, null);
30812 for (var i = I; i
> 0; i--) {
30813 for (var j =
0; j < repr.length; j++) {
30814 var nafW = repr[j];
30816 b = b.mixedAdd(doubles.points[j]);
30817 else if (nafW === -i)
30818 b = b.mixedAdd(doubles.points[j].neg());
30825 BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
30828 // Precompute window
30829 var nafPoints = p._getNAFPoints(w);
30831 var wnd = nafPoints.points;
30834 var naf = getNAF(k, w);
30836 // Add `this`*(N+
1) for every w-NAF index
30837 var acc = this.jpoint(null, null, null);
30838 for (var i = naf.length -
1; i
>=
0; i--) {
30840 for (var k =
0; i
>=
0 && naf[i] ===
0; i--)
30850 if (p.type === 'affine') {
30853 acc = acc.mixedAdd(wnd[(z -
1)
>> 1]);
30855 acc = acc.mixedAdd(wnd[(-z -
1)
>> 1].neg());
30859 acc = acc.add(wnd[(z -
1)
>> 1]);
30861 acc = acc.add(wnd[(-z -
1)
>> 1].neg());
30864 return p.type === 'affine' ? acc.toP() : acc;
30867 BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
30872 var wndWidth = this._wnafT1;
30873 var wnd = this._wnafT2;
30874 var naf = this._wnafT3;
30878 for (var i =
0; i < len; i++) {
30880 var nafPoints = p._getNAFPoints(defW);
30881 wndWidth[i] = nafPoints.wnd;
30882 wnd[i] = nafPoints.points;
30885 // Comb small window NAFs
30886 for (var i = len -
1; i
>=
1; i -=
2) {
30889 if (wndWidth[a] !==
1 || wndWidth[b] !==
1) {
30890 naf[a] = getNAF(coeffs[a], wndWidth[a]);
30891 naf[b] = getNAF(coeffs[b], wndWidth[b]);
30892 max = Math.max(naf[a].length, max);
30893 max = Math.max(naf[b].length, max);
30904 // Try to avoid Projective points, if possible
30905 if (points[a].y.cmp(points[b].y) ===
0) {
30906 comb[
1] = points[a].add(points[b]);
30907 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
30908 } else if (points[a].y.cmp(points[b].y.redNeg()) ===
0) {
30909 comb[
1] = points[a].toJ().mixedAdd(points[b]);
30910 comb[
2] = points[a].add(points[b].neg());
30912 comb[
1] = points[a].toJ().mixedAdd(points[b]);
30913 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
30928 var jsf = getJSF(coeffs[a], coeffs[b]);
30929 max = Math.max(jsf[
0].length, max);
30930 naf[a] = new Array(max);
30931 naf[b] = new Array(max);
30932 for (var j =
0; j < max; j++) {
30933 var ja = jsf[
0][j] |
0;
30934 var jb = jsf[
1][j] |
0;
30936 naf[a][j] = index[(ja +
1) *
3 + (jb +
1)];
30942 var acc = this.jpoint(null, null, null);
30943 var tmp = this._wnafT4;
30944 for (var i = max; i
>=
0; i--) {
30949 for (var j =
0; j < len; j++) {
30950 tmp[j] = naf[j][i] |
0;
30965 for (var j =
0; j < len; j++) {
30971 p = wnd[j][(z -
1)
>> 1];
30973 p = wnd[j][(-z -
1)
>> 1].neg();
30975 if (p.type === 'affine')
30976 acc = acc.mixedAdd(p);
30981 // Zeroify references
30982 for (var i =
0; i < len; i++)
30985 if (jacobianResult)
30991 function BasePoint(curve, type) {
30992 this.curve = curve;
30994 this.precomputed = null;
30996 BaseCurve.BasePoint = BasePoint;
30998 BasePoint.prototype.eq = function eq(/*other*/) {
30999 throw new Error('Not implemented');
31002 BasePoint.prototype.validate = function validate() {
31003 return this.curve.validate(this);
31006 BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
31007 bytes = utils.toArray(bytes, enc);
31009 var len = this.p.byteLength();
31011 // uncompressed, hybrid-odd, hybrid-even
31012 if ((bytes[
0] ===
0x04 || bytes[
0] ===
0x06 || bytes[
0] ===
0x07) &&
31013 bytes.length -
1 ===
2 * len) {
31014 if (bytes[
0] ===
0x06)
31015 assert(bytes[bytes.length -
1] %
2 ===
0);
31016 else if (bytes[
0] ===
0x07)
31017 assert(bytes[bytes.length -
1] %
2 ===
1);
31019 var res = this.point(bytes.slice(
1,
1 + len),
31020 bytes.slice(
1 + len,
1 +
2 * len));
31023 } else if ((bytes[
0] ===
0x02 || bytes[
0] ===
0x03) &&
31024 bytes.length -
1 === len) {
31025 return this.pointFromX(bytes.slice(
1,
1 + len), bytes[
0] ===
0x03);
31027 throw new Error('Unknown point format');
31030 BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
31031 return this.encode(enc, true);
31034 BasePoint.prototype._encode = function _encode(compact) {
31035 var len = this.curve.p.byteLength();
31036 var x = this.getX().toArray('be', len);
31039 return [ this.getY().isEven() ?
0x02 :
0x03 ].concat(x);
31041 return [
0x04 ].concat(x, this.getY().toArray('be', len)) ;
31044 BasePoint.prototype.encode = function encode(enc, compact) {
31045 return utils.encode(this._encode(compact), enc);
31048 BasePoint.prototype.precompute = function precompute(power) {
31049 if (this.precomputed)
31052 var precomputed = {
31057 precomputed.naf = this._getNAFPoints(
8);
31058 precomputed.doubles = this._getDoubles(
4, power);
31059 precomputed.beta = this._getBeta();
31060 this.precomputed = precomputed;
31065 BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
31066 if (!this.precomputed)
31069 var doubles = this.precomputed.doubles;
31073 return doubles.points.length
>= Math.ceil((k.bitLength() +
1) / doubles.step);
31076 BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
31077 if (this.precomputed && this.precomputed.doubles)
31078 return this.precomputed.doubles;
31080 var doubles = [ this ];
31082 for (var i =
0; i < power; i += step) {
31083 for (var j =
0; j < step; j++)
31093 BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
31094 if (this.precomputed && this.precomputed.naf)
31095 return this.precomputed.naf;
31097 var res = [ this ];
31098 var max = (
1 << wnd) -
1;
31099 var dbl = max ===
1 ? null : this.dbl();
31100 for (var i =
1; i < max; i++)
31101 res[i] = res[i -
1].add(dbl);
31108 BasePoint.prototype._getBeta = function _getBeta() {
31112 BasePoint.prototype.dblp = function dblp(k) {
31114 for (var i =
0; i < k; i++)
31119 },{"../../elliptic":
39,"bn.js":
33}],
41:[function(require,module,exports){
31122 var curve = require('../curve');
31123 var elliptic = require('../../elliptic');
31124 var BN = require('bn.js');
31125 var inherits = require('inherits');
31126 var Base = curve.base;
31128 var assert = elliptic.utils.assert;
31130 function EdwardsCurve(conf) {
31131 // NOTE: Important as we are creating point in Base.call()
31132 this.twisted = (conf.a |
0) !==
1;
31133 this.mOneA = this.twisted && (conf.a |
0) === -
1;
31134 this.extended = this.mOneA;
31136 Base.call(this, 'edwards', conf);
31138 this.a = new BN(conf.a,
16).umod(this.red.m);
31139 this.a = this.a.toRed(this.red);
31140 this.c = new BN(conf.c,
16).toRed(this.red);
31141 this.c2 = this.c.redSqr();
31142 this.d = new BN(conf.d,
16).toRed(this.red);
31143 this.dd = this.d.redAdd(this.d);
31145 assert(!this.twisted || this.c.fromRed().cmpn(
1) ===
0);
31146 this.oneC = (conf.c |
0) ===
1;
31148 inherits(EdwardsCurve, Base);
31149 module.exports = EdwardsCurve;
31151 EdwardsCurve.prototype._mulA = function _mulA(num) {
31153 return num.redNeg();
31155 return this.a.redMul(num);
31158 EdwardsCurve.prototype._mulC = function _mulC(num) {
31162 return this.c.redMul(num);
31165 // Just for compatibility with Short curve
31166 EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
31167 return this.point(x, y, z, t);
31170 EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
31173 x = x.toRed(this.red);
31175 var x2 = x.redSqr();
31176 var rhs = this.c2.redSub(this.a.redMul(x2));
31177 var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
31179 var y2 = rhs.redMul(lhs.redInvm());
31180 var y = y2.redSqrt();
31181 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
31182 throw new Error('invalid point');
31184 var isOdd = y.fromRed().isOdd();
31185 if (odd && !isOdd || !odd && isOdd)
31188 return this.point(x, y);
31191 EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
31194 y = y.toRed(this.red);
31196 // x^
2 = (y^
2 -
1) / (d y^
2 +
1)
31197 var y2 = y.redSqr();
31198 var lhs = y2.redSub(this.one);
31199 var rhs = y2.redMul(this.d).redAdd(this.one);
31200 var x2 = lhs.redMul(rhs.redInvm());
31202 if (x2.cmp(this.zero) ===
0) {
31204 throw new Error('invalid point');
31206 return this.point(this.zero, y);
31209 var x = x2.redSqrt();
31210 if (x.redSqr().redSub(x2).cmp(this.zero) !==
0)
31211 throw new Error('invalid point');
31213 if (x.isOdd() !== odd)
31216 return this.point(x, y);
31219 EdwardsCurve.prototype.validate = function validate(point) {
31220 if (point.isInfinity())
31223 // Curve: A * X^
2 + Y^
2 = C^
2 * (
1 + D * X^
2 * Y^
2)
31226 var x2 = point.x.redSqr();
31227 var y2 = point.y.redSqr();
31228 var lhs = x2.redMul(this.a).redAdd(y2);
31229 var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
31231 return lhs.cmp(rhs) ===
0;
31234 function Point(curve, x, y, z, t) {
31235 Base.BasePoint.call(this, curve, 'projective');
31236 if (x === null && y === null && z === null) {
31237 this.x = this.curve.zero;
31238 this.y = this.curve.one;
31239 this.z = this.curve.one;
31240 this.t = this.curve.zero;
31243 this.x = new BN(x,
16);
31244 this.y = new BN(y,
16);
31245 this.z = z ? new BN(z,
16) : this.curve.one;
31246 this.t = t && new BN(t,
16);
31248 this.x = this.x.toRed(this.curve.red);
31250 this.y = this.y.toRed(this.curve.red);
31252 this.z = this.z.toRed(this.curve.red);
31253 if (this.t && !this.t.red)
31254 this.t = this.t.toRed(this.curve.red);
31255 this.zOne = this.z === this.curve.one;
31257 // Use extended coordinates
31258 if (this.curve.extended && !this.t) {
31259 this.t = this.x.redMul(this.y);
31261 this.t = this.t.redMul(this.z.redInvm());
31265 inherits(Point, Base.BasePoint);
31267 EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
31268 return Point.fromJSON(this, obj);
31271 EdwardsCurve.prototype.point = function point(x, y, z, t) {
31272 return new Point(this, x, y, z, t);
31275 Point.fromJSON = function fromJSON(curve, obj) {
31276 return new Point(curve, obj[
0], obj[
1], obj[
2]);
31279 Point.prototype.inspect = function inspect() {
31280 if (this.isInfinity())
31281 return '
<EC Point Infinity
>';
31282 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
31283 ' y: ' + this.y.fromRed().toString(
16,
2) +
31284 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
31287 Point.prototype.isInfinity = function isInfinity() {
31288 // XXX This code assumes that zero is always zero in red
31289 return this.x.cmpn(
0) ===
0 &&
31290 this.y.cmp(this.z) ===
0;
31293 Point.prototype._extDbl = function _extDbl() {
31294 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
31295 // #doubling-dbl-
2008-hwcd
31299 var a = this.x.redSqr();
31301 var b = this.y.redSqr();
31303 var c = this.z.redSqr();
31306 var d = this.curve._mulA(a);
31307 // E = (X1 + Y1)^
2 - A - B
31308 var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
31310 var g = d.redAdd(b);
31312 var f = g.redSub(c);
31314 var h = d.redSub(b);
31316 var nx = e.redMul(f);
31318 var ny = g.redMul(h);
31320 var nt = e.redMul(h);
31322 var nz = f.redMul(g);
31323 return this.curve.point(nx, ny, nz, nt);
31326 Point.prototype._projDbl = function _projDbl() {
31327 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
31328 // #doubling-dbl-
2008-bbjlp
31329 // #doubling-dbl-
2007-bl
31331 // Generally
3M +
4S or
2M +
4S
31334 var b = this.x.redAdd(this.y).redSqr();
31336 var c = this.x.redSqr();
31338 var d = this.y.redSqr();
31343 if (this.curve.twisted) {
31345 var e = this.curve._mulA(c);
31347 var f = e.redAdd(d);
31349 // X3 = (B - C - D) * (F -
2)
31350 nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
31351 // Y3 = F * (E - D)
31352 ny = f.redMul(e.redSub(d));
31353 // Z3 = F^
2 -
2 * F
31354 nz = f.redSqr().redSub(f).redSub(f);
31357 var h = this.z.redSqr();
31359 var j = f.redSub(h).redISub(h);
31361 nx = b.redSub(c).redISub(d).redMul(j);
31362 // Y3 = F * (E - D)
31363 ny = f.redMul(e.redSub(d));
31369 var e = c.redAdd(d);
31371 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr();
31373 var j = e.redSub(h).redSub(h);
31374 // X3 = c * (B - E) * J
31375 nx = this.curve._mulC(b.redISub(e)).redMul(j);
31376 // Y3 = c * E * (C - D)
31377 ny = this.curve._mulC(e).redMul(c.redISub(d));
31381 return this.curve.point(nx, ny, nz);
31384 Point.prototype.dbl = function dbl() {
31385 if (this.isInfinity())
31388 // Double in extended coordinates
31389 if (this.curve.extended)
31390 return this._extDbl();
31392 return this._projDbl();
31395 Point.prototype._extAdd = function _extAdd(p) {
31396 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
31397 // #addition-add-
2008-hwcd-
3
31400 // A = (Y1 - X1) * (Y2 - X2)
31401 var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
31402 // B = (Y1 + X1) * (Y2 + X2)
31403 var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
31405 var c = this.t.redMul(this.curve.dd).redMul(p.t);
31407 var d = this.z.redMul(p.z.redAdd(p.z));
31409 var e = b.redSub(a);
31411 var f = d.redSub(c);
31413 var g = d.redAdd(c);
31415 var h = b.redAdd(a);
31417 var nx = e.redMul(f);
31419 var ny = g.redMul(h);
31421 var nt = e.redMul(h);
31423 var nz = f.redMul(g);
31424 return this.curve.point(nx, ny, nz, nt);
31427 Point.prototype._projAdd = function _projAdd(p) {
31428 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
31429 // #addition-add-
2008-bbjlp
31430 // #addition-add-
2007-bl
31434 var a = this.z.redMul(p.z);
31436 var b = a.redSqr();
31438 var c = this.x.redMul(p.x);
31440 var d = this.y.redMul(p.y);
31442 var e = this.curve.d.redMul(c).redMul(d);
31444 var f = b.redSub(e);
31446 var g = b.redAdd(e);
31447 // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
31448 var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
31449 var nx = a.redMul(f).redMul(tmp);
31452 if (this.curve.twisted) {
31453 // Y3 = A * G * (D - a * C)
31454 ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
31458 // Y3 = A * G * (D - C)
31459 ny = a.redMul(g).redMul(d.redSub(c));
31461 nz = this.curve._mulC(f).redMul(g);
31463 return this.curve.point(nx, ny, nz);
31466 Point.prototype.add = function add(p) {
31467 if (this.isInfinity())
31469 if (p.isInfinity())
31472 if (this.curve.extended)
31473 return this._extAdd(p);
31475 return this._projAdd(p);
31478 Point.prototype.mul = function mul(k) {
31479 if (this._hasDoubles(k))
31480 return this.curve._fixedNafMul(this, k);
31482 return this.curve._wnafMul(this, k);
31485 Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
31486 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, false);
31489 Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
31490 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, true);
31493 Point.prototype.normalize = function normalize() {
31497 // Normalize coordinates
31498 var zi = this.z.redInvm();
31499 this.x = this.x.redMul(zi);
31500 this.y = this.y.redMul(zi);
31502 this.t = this.t.redMul(zi);
31503 this.z = this.curve.one;
31508 Point.prototype.neg = function neg() {
31509 return this.curve.point(this.x.redNeg(),
31512 this.t && this.t.redNeg());
31515 Point.prototype.getX = function getX() {
31517 return this.x.fromRed();
31520 Point.prototype.getY = function getY() {
31522 return this.y.fromRed();
31525 Point.prototype.eq = function eq(other) {
31526 return this === other ||
31527 this.getX().cmp(other.getX()) ===
0 &&
31528 this.getY().cmp(other.getY()) ===
0;
31531 Point.prototype.eqXToP = function eqXToP(x) {
31532 var rx = x.toRed(this.curve.red).redMul(this.z);
31533 if (this.x.cmp(rx) ===
0)
31536 var xc = x.clone();
31537 var t = this.curve.redN.redMul(this.z);
31539 xc.iadd(this.curve.n);
31540 if (xc.cmp(this.curve.p)
>=
0)
31544 if (this.x.cmp(rx) ===
0)
31550 // Compatibility with BaseCurve
31551 Point.prototype.toP = Point.prototype.normalize;
31552 Point.prototype.mixedAdd = Point.prototype.add;
31554 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
42:[function(require,module,exports){
31557 var curve = exports;
31559 curve.base = require('./base');
31560 curve.short = require('./short');
31561 curve.mont = require('./mont');
31562 curve.edwards = require('./edwards');
31564 },{"./base":
40,"./edwards":
41,"./mont":
43,"./short":
44}],
43:[function(require,module,exports){
31567 var curve = require('../curve');
31568 var BN = require('bn.js');
31569 var inherits = require('inherits');
31570 var Base = curve.base;
31572 var elliptic = require('../../elliptic');
31573 var utils = elliptic.utils;
31575 function MontCurve(conf) {
31576 Base.call(this, 'mont', conf);
31578 this.a = new BN(conf.a,
16).toRed(this.red);
31579 this.b = new BN(conf.b,
16).toRed(this.red);
31580 this.i4 = new BN(
4).toRed(this.red).redInvm();
31581 this.two = new BN(
2).toRed(this.red);
31582 this.a24 = this.i4.redMul(this.a.redAdd(this.two));
31584 inherits(MontCurve, Base);
31585 module.exports = MontCurve;
31587 MontCurve.prototype.validate = function validate(point) {
31588 var x = point.normalize().x;
31589 var x2 = x.redSqr();
31590 var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
31591 var y = rhs.redSqrt();
31593 return y.redSqr().cmp(rhs) ===
0;
31596 function Point(curve, x, z) {
31597 Base.BasePoint.call(this, curve, 'projective');
31598 if (x === null && z === null) {
31599 this.x = this.curve.one;
31600 this.z = this.curve.zero;
31602 this.x = new BN(x,
16);
31603 this.z = new BN(z,
16);
31605 this.x = this.x.toRed(this.curve.red);
31607 this.z = this.z.toRed(this.curve.red);
31610 inherits(Point, Base.BasePoint);
31612 MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
31613 return this.point(utils.toArray(bytes, enc),
1);
31616 MontCurve.prototype.point = function point(x, z) {
31617 return new Point(this, x, z);
31620 MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
31621 return Point.fromJSON(this, obj);
31624 Point.prototype.precompute = function precompute() {
31628 Point.prototype._encode = function _encode() {
31629 return this.getX().toArray('be', this.curve.p.byteLength());
31632 Point.fromJSON = function fromJSON(curve, obj) {
31633 return new Point(curve, obj[
0], obj[
1] || curve.one);
31636 Point.prototype.inspect = function inspect() {
31637 if (this.isInfinity())
31638 return '
<EC Point Infinity
>';
31639 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
31640 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
31643 Point.prototype.isInfinity = function isInfinity() {
31644 // XXX This code assumes that zero is always zero in red
31645 return this.z.cmpn(
0) ===
0;
31648 Point.prototype.dbl = function dbl() {
31649 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-
1987-m-
3
31653 var a = this.x.redAdd(this.z);
31655 var aa = a.redSqr();
31657 var b = this.x.redSub(this.z);
31659 var bb = b.redSqr();
31661 var c = aa.redSub(bb);
31663 var nx = aa.redMul(bb);
31664 // Z3 = C * (BB + A24 * C)
31665 var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
31666 return this.curve.point(nx, nz);
31669 Point.prototype.add = function add() {
31670 throw new Error('Not supported on Montgomery curve');
31673 Point.prototype.diffAdd = function diffAdd(p, diff) {
31674 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-
1987-m-
3
31678 var a = this.x.redAdd(this.z);
31680 var b = this.x.redSub(this.z);
31682 var c = p.x.redAdd(p.z);
31684 var d = p.x.redSub(p.z);
31686 var da = d.redMul(a);
31688 var cb = c.redMul(b);
31689 // X5 = Z1 * (DA + CB)^
2
31690 var nx = diff.z.redMul(da.redAdd(cb).redSqr());
31691 // Z5 = X1 * (DA - CB)^
2
31692 var nz = diff.x.redMul(da.redISub(cb).redSqr());
31693 return this.curve.point(nx, nz);
31696 Point.prototype.mul = function mul(k) {
31698 var a = this; // (N /
2) * Q + Q
31699 var b = this.curve.point(null, null); // (N /
2) * Q
31702 for (var bits = []; t.cmpn(
0) !==
0; t.iushrn(
1))
31703 bits.push(t.andln(
1));
31705 for (var i = bits.length -
1; i
>=
0; i--) {
31706 if (bits[i] ===
0) {
31707 // N * Q + Q = ((N /
2) * Q + Q)) + (N /
2) * Q
31708 a = a.diffAdd(b, c);
31709 // N * Q =
2 * ((N /
2) * Q + Q))
31712 // N * Q = ((N /
2) * Q + Q) + ((N /
2) * Q)
31713 b = a.diffAdd(b, c);
31714 // N * Q + Q =
2 * ((N /
2) * Q + Q)
31721 Point.prototype.mulAdd = function mulAdd() {
31722 throw new Error('Not supported on Montgomery curve');
31725 Point.prototype.jumlAdd = function jumlAdd() {
31726 throw new Error('Not supported on Montgomery curve');
31729 Point.prototype.eq = function eq(other) {
31730 return this.getX().cmp(other.getX()) ===
0;
31733 Point.prototype.normalize = function normalize() {
31734 this.x = this.x.redMul(this.z.redInvm());
31735 this.z = this.curve.one;
31739 Point.prototype.getX = function getX() {
31740 // Normalize coordinates
31743 return this.x.fromRed();
31746 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
44:[function(require,module,exports){
31749 var curve = require('../curve');
31750 var elliptic = require('../../elliptic');
31751 var BN = require('bn.js');
31752 var inherits = require('inherits');
31753 var Base = curve.base;
31755 var assert = elliptic.utils.assert;
31757 function ShortCurve(conf) {
31758 Base.call(this, 'short', conf);
31760 this.a = new BN(conf.a,
16).toRed(this.red);
31761 this.b = new BN(conf.b,
16).toRed(this.red);
31762 this.tinv = this.two.redInvm();
31764 this.zeroA = this.a.fromRed().cmpn(
0) ===
0;
31765 this.threeA = this.a.fromRed().sub(this.p).cmpn(-
3) ===
0;
31767 // If the curve is endomorphic, precalculate beta and lambda
31768 this.endo = this._getEndomorphism(conf);
31769 this._endoWnafT1 = new Array(
4);
31770 this._endoWnafT2 = new Array(
4);
31772 inherits(ShortCurve, Base);
31773 module.exports = ShortCurve;
31775 ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
31776 // No efficient endomorphism
31777 if (!this.zeroA || !this.g || !this.n || this.p.modn(
3) !==
1)
31780 // Compute beta and lambda, that lambda * P = (beta * Px; Py)
31784 beta = new BN(conf.beta,
16).toRed(this.red);
31786 var betas = this._getEndoRoots(this.p);
31787 // Choose the smallest beta
31788 beta = betas[
0].cmp(betas[
1]) <
0 ? betas[
0] : betas[
1];
31789 beta = beta.toRed(this.red);
31792 lambda = new BN(conf.lambda,
16);
31794 // Choose the lambda that is matching selected beta
31795 var lambdas = this._getEndoRoots(this.n);
31796 if (this.g.mul(lambdas[
0]).x.cmp(this.g.x.redMul(beta)) ===
0) {
31797 lambda = lambdas[
0];
31799 lambda = lambdas[
1];
31800 assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) ===
0);
31804 // Get basis vectors, used for balanced length-two representation
31807 basis = conf.basis.map(function(vec) {
31809 a: new BN(vec.a,
16),
31810 b: new BN(vec.b,
16)
31814 basis = this._getEndoBasis(lambda);
31824 ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
31825 // Find roots of for x^
2 + x +
1 in F
31826 // Root = (-
1 +- Sqrt(-
3)) /
2
31828 var red = num === this.p ? this.red : BN.mont(num);
31829 var tinv = new BN(
2).toRed(red).redInvm();
31830 var ntinv = tinv.redNeg();
31832 var s = new BN(
3).toRed(red).redNeg().redSqrt().redMul(tinv);
31834 var l1 = ntinv.redAdd(s).fromRed();
31835 var l2 = ntinv.redSub(s).fromRed();
31839 ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
31840 // aprxSqrt
>= sqrt(this.n)
31841 var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() /
2));
31844 // Run EGCD, until r(L +
1) < aprxSqrt
31846 var v = this.n.clone();
31847 var x1 = new BN(
1);
31848 var y1 = new BN(
0);
31849 var x2 = new BN(
0);
31850 var y2 = new BN(
1);
31852 // NOTE: all vectors are roots of: a + b * lambda =
0 (mod n)
31866 while (u.cmpn(
0) !==
0) {
31868 r = v.sub(q.mul(u));
31869 x = x2.sub(q.mul(x1));
31870 var y = y2.sub(q.mul(y1));
31872 if (!a1 && r.cmp(aprxSqrt) <
0) {
31877 } else if (a1 && ++i ===
2) {
31892 var len1 = a1.sqr().add(b1.sqr());
31893 var len2 = a2.sqr().add(b2.sqr());
31894 if (len2.cmp(len1)
>=
0) {
31915 ShortCurve.prototype._endoSplit = function _endoSplit(k) {
31916 var basis = this.endo.basis;
31920 var c1 = v2.b.mul(k).divRound(this.n);
31921 var c2 = v1.b.neg().mul(k).divRound(this.n);
31923 var p1 = c1.mul(v1.a);
31924 var p2 = c2.mul(v2.a);
31925 var q1 = c1.mul(v1.b);
31926 var q2 = c2.mul(v2.b);
31928 // Calculate answer
31929 var k1 = k.sub(p1).sub(p2);
31930 var k2 = q1.add(q2).neg();
31931 return { k1: k1, k2: k2 };
31934 ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
31937 x = x.toRed(this.red);
31939 var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
31940 var y = y2.redSqrt();
31941 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
31942 throw new Error('invalid point');
31944 // XXX Is there any way to tell if the number is odd without converting it
31945 // to non-red form?
31946 var isOdd = y.fromRed().isOdd();
31947 if (odd && !isOdd || !odd && isOdd)
31950 return this.point(x, y);
31953 ShortCurve.prototype.validate = function validate(point) {
31960 var ax = this.a.redMul(x);
31961 var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
31962 return y.redSqr().redISub(rhs).cmpn(
0) ===
0;
31965 ShortCurve.prototype._endoWnafMulAdd =
31966 function _endoWnafMulAdd(points, coeffs, jacobianResult) {
31967 var npoints = this._endoWnafT1;
31968 var ncoeffs = this._endoWnafT2;
31969 for (var i =
0; i < points.length; i++) {
31970 var split = this._endoSplit(coeffs[i]);
31972 var beta = p._getBeta();
31974 if (split.k1.negative) {
31978 if (split.k2.negative) {
31980 beta = beta.neg(true);
31983 npoints[i *
2] = p;
31984 npoints[i *
2 +
1] = beta;
31985 ncoeffs[i *
2] = split.k1;
31986 ncoeffs[i *
2 +
1] = split.k2;
31988 var res = this._wnafMulAdd(
1, npoints, ncoeffs, i *
2, jacobianResult);
31990 // Clean-up references to points and coefficients
31991 for (var j =
0; j < i *
2; j++) {
31998 function Point(curve, x, y, isRed) {
31999 Base.BasePoint.call(this, curve, 'affine');
32000 if (x === null && y === null) {
32005 this.x = new BN(x,
16);
32006 this.y = new BN(y,
16);
32007 // Force redgomery representation when loading from JSON
32009 this.x.forceRed(this.curve.red);
32010 this.y.forceRed(this.curve.red);
32013 this.x = this.x.toRed(this.curve.red);
32015 this.y = this.y.toRed(this.curve.red);
32019 inherits(Point, Base.BasePoint);
32021 ShortCurve.prototype.point = function point(x, y, isRed) {
32022 return new Point(this, x, y, isRed);
32025 ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
32026 return Point.fromJSON(this, obj, red);
32029 Point.prototype._getBeta = function _getBeta() {
32030 if (!this.curve.endo)
32033 var pre = this.precomputed;
32034 if (pre && pre.beta)
32037 var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
32039 var curve = this.curve;
32040 var endoMul = function(p) {
32041 return curve.point(p.x.redMul(curve.endo.beta), p.y);
32044 beta.precomputed = {
32048 points: pre.naf.points.map(endoMul)
32050 doubles: pre.doubles && {
32051 step: pre.doubles.step,
32052 points: pre.doubles.points.map(endoMul)
32059 Point.prototype.toJSON = function toJSON() {
32060 if (!this.precomputed)
32061 return [ this.x, this.y ];
32063 return [ this.x, this.y, this.precomputed && {
32064 doubles: this.precomputed.doubles && {
32065 step: this.precomputed.doubles.step,
32066 points: this.precomputed.doubles.points.slice(
1)
32068 naf: this.precomputed.naf && {
32069 wnd: this.precomputed.naf.wnd,
32070 points: this.precomputed.naf.points.slice(
1)
32075 Point.fromJSON = function fromJSON(curve, obj, red) {
32076 if (typeof obj === 'string')
32077 obj = JSON.parse(obj);
32078 var res = curve.point(obj[
0], obj[
1], red);
32082 function obj2point(obj) {
32083 return curve.point(obj[
0], obj[
1], red);
32087 res.precomputed = {
32089 doubles: pre.doubles && {
32090 step: pre.doubles.step,
32091 points: [ res ].concat(pre.doubles.points.map(obj2point))
32095 points: [ res ].concat(pre.naf.points.map(obj2point))
32101 Point.prototype.inspect = function inspect() {
32102 if (this.isInfinity())
32103 return '
<EC Point Infinity
>';
32104 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
32105 ' y: ' + this.y.fromRed().toString(
16,
2) + '
>';
32108 Point.prototype.isInfinity = function isInfinity() {
32112 Point.prototype.add = function add(p) {
32126 if (this.neg().eq(p))
32127 return this.curve.point(null, null);
32130 if (this.x.cmp(p.x) ===
0)
32131 return this.curve.point(null, null);
32133 var c = this.y.redSub(p.y);
32134 if (c.cmpn(
0) !==
0)
32135 c = c.redMul(this.x.redSub(p.x).redInvm());
32136 var nx = c.redSqr().redISub(this.x).redISub(p.x);
32137 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
32138 return this.curve.point(nx, ny);
32141 Point.prototype.dbl = function dbl() {
32146 var ys1 = this.y.redAdd(this.y);
32147 if (ys1.cmpn(
0) ===
0)
32148 return this.curve.point(null, null);
32150 var a = this.curve.a;
32152 var x2 = this.x.redSqr();
32153 var dyinv = ys1.redInvm();
32154 var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
32156 var nx = c.redSqr().redISub(this.x.redAdd(this.x));
32157 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
32158 return this.curve.point(nx, ny);
32161 Point.prototype.getX = function getX() {
32162 return this.x.fromRed();
32165 Point.prototype.getY = function getY() {
32166 return this.y.fromRed();
32169 Point.prototype.mul = function mul(k) {
32172 if (this._hasDoubles(k))
32173 return this.curve._fixedNafMul(this, k);
32174 else if (this.curve.endo)
32175 return this.curve._endoWnafMulAdd([ this ], [ k ]);
32177 return this.curve._wnafMul(this, k);
32180 Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
32181 var points = [ this, p2 ];
32182 var coeffs = [ k1, k2 ];
32183 if (this.curve.endo)
32184 return this.curve._endoWnafMulAdd(points, coeffs);
32186 return this.curve._wnafMulAdd(
1, points, coeffs,
2);
32189 Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
32190 var points = [ this, p2 ];
32191 var coeffs = [ k1, k2 ];
32192 if (this.curve.endo)
32193 return this.curve._endoWnafMulAdd(points, coeffs, true);
32195 return this.curve._wnafMulAdd(
1, points, coeffs,
2, true);
32198 Point.prototype.eq = function eq(p) {
32199 return this === p ||
32200 this.inf === p.inf &&
32201 (this.inf || this.x.cmp(p.x) ===
0 && this.y.cmp(p.y) ===
0);
32204 Point.prototype.neg = function neg(_precompute) {
32208 var res = this.curve.point(this.x, this.y.redNeg());
32209 if (_precompute && this.precomputed) {
32210 var pre = this.precomputed;
32211 var negate = function(p) {
32214 res.precomputed = {
32217 points: pre.naf.points.map(negate)
32219 doubles: pre.doubles && {
32220 step: pre.doubles.step,
32221 points: pre.doubles.points.map(negate)
32228 Point.prototype.toJ = function toJ() {
32230 return this.curve.jpoint(null, null, null);
32232 var res = this.curve.jpoint(this.x, this.y, this.curve.one);
32236 function JPoint(curve, x, y, z) {
32237 Base.BasePoint.call(this, curve, 'jacobian');
32238 if (x === null && y === null && z === null) {
32239 this.x = this.curve.one;
32240 this.y = this.curve.one;
32241 this.z = new BN(
0);
32243 this.x = new BN(x,
16);
32244 this.y = new BN(y,
16);
32245 this.z = new BN(z,
16);
32248 this.x = this.x.toRed(this.curve.red);
32250 this.y = this.y.toRed(this.curve.red);
32252 this.z = this.z.toRed(this.curve.red);
32254 this.zOne = this.z === this.curve.one;
32256 inherits(JPoint, Base.BasePoint);
32258 ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
32259 return new JPoint(this, x, y, z);
32262 JPoint.prototype.toP = function toP() {
32263 if (this.isInfinity())
32264 return this.curve.point(null, null);
32266 var zinv = this.z.redInvm();
32267 var zinv2 = zinv.redSqr();
32268 var ax = this.x.redMul(zinv2);
32269 var ay = this.y.redMul(zinv2).redMul(zinv);
32271 return this.curve.point(ax, ay);
32274 JPoint.prototype.neg = function neg() {
32275 return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
32278 JPoint.prototype.add = function add(p) {
32280 if (this.isInfinity())
32284 if (p.isInfinity())
32288 var pz2 = p.z.redSqr();
32289 var z2 = this.z.redSqr();
32290 var u1 = this.x.redMul(pz2);
32291 var u2 = p.x.redMul(z2);
32292 var s1 = this.y.redMul(pz2.redMul(p.z));
32293 var s2 = p.y.redMul(z2.redMul(this.z));
32295 var h = u1.redSub(u2);
32296 var r = s1.redSub(s2);
32297 if (h.cmpn(
0) ===
0) {
32298 if (r.cmpn(
0) !==
0)
32299 return this.curve.jpoint(null, null, null);
32304 var h2 = h.redSqr();
32305 var h3 = h2.redMul(h);
32306 var v = u1.redMul(h2);
32308 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
32309 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
32310 var nz = this.z.redMul(p.z).redMul(h);
32312 return this.curve.jpoint(nx, ny, nz);
32315 JPoint.prototype.mixedAdd = function mixedAdd(p) {
32317 if (this.isInfinity())
32321 if (p.isInfinity())
32325 var z2 = this.z.redSqr();
32327 var u2 = p.x.redMul(z2);
32329 var s2 = p.y.redMul(z2).redMul(this.z);
32331 var h = u1.redSub(u2);
32332 var r = s1.redSub(s2);
32333 if (h.cmpn(
0) ===
0) {
32334 if (r.cmpn(
0) !==
0)
32335 return this.curve.jpoint(null, null, null);
32340 var h2 = h.redSqr();
32341 var h3 = h2.redMul(h);
32342 var v = u1.redMul(h2);
32344 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
32345 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
32346 var nz = this.z.redMul(h);
32348 return this.curve.jpoint(nx, ny, nz);
32351 JPoint.prototype.dblp = function dblp(pow) {
32354 if (this.isInfinity())
32359 if (this.curve.zeroA || this.curve.threeA) {
32361 for (var i =
0; i < pow; i++)
32366 //
1M +
2S +
1A + N * (
4S +
5M +
8A)
32367 // N =
1 =
> 6M +
6S +
9A
32368 var a = this.curve.a;
32369 var tinv = this.curve.tinv;
32374 var jz4 = jz.redSqr().redSqr();
32377 var jyd = jy.redAdd(jy);
32378 for (var i =
0; i < pow; i++) {
32379 var jx2 = jx.redSqr();
32380 var jyd2 = jyd.redSqr();
32381 var jyd4 = jyd2.redSqr();
32382 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
32384 var t1 = jx.redMul(jyd2);
32385 var nx = c.redSqr().redISub(t1.redAdd(t1));
32386 var t2 = t1.redISub(nx);
32387 var dny = c.redMul(t2);
32388 dny = dny.redIAdd(dny).redISub(jyd4);
32389 var nz = jyd.redMul(jz);
32391 jz4 = jz4.redMul(jyd4);
32398 return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
32401 JPoint.prototype.dbl = function dbl() {
32402 if (this.isInfinity())
32405 if (this.curve.zeroA)
32406 return this._zeroDbl();
32407 else if (this.curve.threeA)
32408 return this._threeDbl();
32410 return this._dbl();
32413 JPoint.prototype._zeroDbl = function _zeroDbl() {
32419 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
32420 // #doubling-mdbl-
2007-bl
32424 var xx = this.x.redSqr();
32426 var yy = this.y.redSqr();
32428 var yyyy = yy.redSqr();
32429 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
32430 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
32432 // M =
3 * XX + a; a =
0
32433 var m = xx.redAdd(xx).redIAdd(xx);
32435 var t = m.redSqr().redISub(s).redISub(s);
32438 var yyyy8 = yyyy.redIAdd(yyyy);
32439 yyyy8 = yyyy8.redIAdd(yyyy8);
32440 yyyy8 = yyyy8.redIAdd(yyyy8);
32444 // Y3 = M * (S - T) -
8 * YYYY
32445 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
32447 nz = this.y.redAdd(this.y);
32449 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
32450 // #doubling-dbl-
2009-l
32454 var a = this.x.redSqr();
32456 var b = this.y.redSqr();
32458 var c = b.redSqr();
32459 // D =
2 * ((X1 + B)^
2 - A - C)
32460 var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
32463 var e = a.redAdd(a).redIAdd(a);
32465 var f = e.redSqr();
32468 var c8 = c.redIAdd(c);
32469 c8 = c8.redIAdd(c8);
32470 c8 = c8.redIAdd(c8);
32473 nx = f.redISub(d).redISub(d);
32474 // Y3 = E * (D - X3) -
8 * C
32475 ny = e.redMul(d.redISub(nx)).redISub(c8);
32476 // Z3 =
2 * Y1 * Z1
32477 nz = this.y.redMul(this.z);
32478 nz = nz.redIAdd(nz);
32481 return this.curve.jpoint(nx, ny, nz);
32484 JPoint.prototype._threeDbl = function _threeDbl() {
32490 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html
32491 // #doubling-mdbl-
2007-bl
32495 var xx = this.x.redSqr();
32497 var yy = this.y.redSqr();
32499 var yyyy = yy.redSqr();
32500 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
32501 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
32504 var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
32506 var t = m.redSqr().redISub(s).redISub(s);
32509 // Y3 = M * (S - T) -
8 * YYYY
32510 var yyyy8 = yyyy.redIAdd(yyyy);
32511 yyyy8 = yyyy8.redIAdd(yyyy8);
32512 yyyy8 = yyyy8.redIAdd(yyyy8);
32513 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
32515 nz = this.y.redAdd(this.y);
32517 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html#doubling-dbl-
2001-b
32521 var delta = this.z.redSqr();
32523 var gamma = this.y.redSqr();
32524 // beta = X1 * gamma
32525 var beta = this.x.redMul(gamma);
32526 // alpha =
3 * (X1 - delta) * (X1 + delta)
32527 var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
32528 alpha = alpha.redAdd(alpha).redIAdd(alpha);
32529 // X3 = alpha^
2 -
8 * beta
32530 var beta4 = beta.redIAdd(beta);
32531 beta4 = beta4.redIAdd(beta4);
32532 var beta8 = beta4.redAdd(beta4);
32533 nx = alpha.redSqr().redISub(beta8);
32534 // Z3 = (Y1 + Z1)^
2 - gamma - delta
32535 nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
32536 // Y3 = alpha * (
4 * beta - X3) -
8 * gamma^
2
32537 var ggamma8 = gamma.redSqr();
32538 ggamma8 = ggamma8.redIAdd(ggamma8);
32539 ggamma8 = ggamma8.redIAdd(ggamma8);
32540 ggamma8 = ggamma8.redIAdd(ggamma8);
32541 ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
32544 return this.curve.jpoint(nx, ny, nz);
32547 JPoint.prototype._dbl = function _dbl() {
32548 var a = this.curve.a;
32554 var jz4 = jz.redSqr().redSqr();
32556 var jx2 = jx.redSqr();
32557 var jy2 = jy.redSqr();
32559 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
32561 var jxd4 = jx.redAdd(jx);
32562 jxd4 = jxd4.redIAdd(jxd4);
32563 var t1 = jxd4.redMul(jy2);
32564 var nx = c.redSqr().redISub(t1.redAdd(t1));
32565 var t2 = t1.redISub(nx);
32567 var jyd8 = jy2.redSqr();
32568 jyd8 = jyd8.redIAdd(jyd8);
32569 jyd8 = jyd8.redIAdd(jyd8);
32570 jyd8 = jyd8.redIAdd(jyd8);
32571 var ny = c.redMul(t2).redISub(jyd8);
32572 var nz = jy.redAdd(jy).redMul(jz);
32574 return this.curve.jpoint(nx, ny, nz);
32577 JPoint.prototype.trpl = function trpl() {
32578 if (!this.curve.zeroA)
32579 return this.dbl().add(this);
32581 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html#tripling-tpl-
2007-bl
32585 var xx = this.x.redSqr();
32587 var yy = this.y.redSqr();
32589 var zz = this.z.redSqr();
32591 var yyyy = yy.redSqr();
32592 // M =
3 * XX + a * ZZ2; a =
0
32593 var m = xx.redAdd(xx).redIAdd(xx);
32595 var mm = m.redSqr();
32596 // E =
6 * ((X1 + YY)^
2 - XX - YYYY) - MM
32597 var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
32599 e = e.redAdd(e).redIAdd(e);
32602 var ee = e.redSqr();
32604 var t = yyyy.redIAdd(yyyy);
32608 // U = (M + E)^
2 - MM - EE - T
32609 var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
32610 // X3 =
4 * (X1 * EE -
4 * YY * U)
32611 var yyu4 = yy.redMul(u);
32612 yyu4 = yyu4.redIAdd(yyu4);
32613 yyu4 = yyu4.redIAdd(yyu4);
32614 var nx = this.x.redMul(ee).redISub(yyu4);
32615 nx = nx.redIAdd(nx);
32616 nx = nx.redIAdd(nx);
32617 // Y3 =
8 * Y1 * (U * (T - U) - E * EE)
32618 var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
32619 ny = ny.redIAdd(ny);
32620 ny = ny.redIAdd(ny);
32621 ny = ny.redIAdd(ny);
32622 // Z3 = (Z1 + E)^
2 - ZZ - EE
32623 var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
32625 return this.curve.jpoint(nx, ny, nz);
32628 JPoint.prototype.mul = function mul(k, kbase) {
32629 k = new BN(k, kbase);
32631 return this.curve._wnafMul(this, k);
32634 JPoint.prototype.eq = function eq(p) {
32635 if (p.type === 'affine')
32636 return this.eq(p.toJ());
32641 // x1 * z2^
2 == x2 * z1^
2
32642 var z2 = this.z.redSqr();
32643 var pz2 = p.z.redSqr();
32644 if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(
0) !==
0)
32647 // y1 * z2^
3 == y2 * z1^
3
32648 var z3 = z2.redMul(this.z);
32649 var pz3 = pz2.redMul(p.z);
32650 return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(
0) ===
0;
32653 JPoint.prototype.eqXToP = function eqXToP(x) {
32654 var zs = this.z.redSqr();
32655 var rx = x.toRed(this.curve.red).redMul(zs);
32656 if (this.x.cmp(rx) ===
0)
32659 var xc = x.clone();
32660 var t = this.curve.redN.redMul(zs);
32662 xc.iadd(this.curve.n);
32663 if (xc.cmp(this.curve.p)
>=
0)
32667 if (this.x.cmp(rx) ===
0)
32673 JPoint.prototype.inspect = function inspect() {
32674 if (this.isInfinity())
32675 return '
<EC JPoint Infinity
>';
32676 return '
<EC JPoint x: ' + this.x.toString(
16,
2) +
32677 ' y: ' + this.y.toString(
16,
2) +
32678 ' z: ' + this.z.toString(
16,
2) + '
>';
32681 JPoint.prototype.isInfinity = function isInfinity() {
32682 // XXX This code assumes that zero is always zero in red
32683 return this.z.cmpn(
0) ===
0;
32686 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
45:[function(require,module,exports){
32689 var curves = exports;
32691 var hash = require('hash.js');
32692 var elliptic = require('../elliptic');
32694 var assert = elliptic.utils.assert;
32696 function PresetCurve(options) {
32697 if (options.type === 'short')
32698 this.curve = new elliptic.curve.short(options);
32699 else if (options.type === 'edwards')
32700 this.curve = new elliptic.curve.edwards(options);
32702 this.curve = new elliptic.curve.mont(options);
32703 this.g = this.curve.g;
32704 this.n = this.curve.n;
32705 this.hash = options.hash;
32707 assert(this.g.validate(), 'Invalid curve');
32708 assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
32710 curves.PresetCurve = PresetCurve;
32712 function defineCurve(name, options) {
32713 Object.defineProperty(curves, name, {
32714 configurable: true,
32717 var curve = new PresetCurve(options);
32718 Object.defineProperty(curves, name, {
32719 configurable: true,
32728 defineCurve('p192', {
32731 p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
32732 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
32733 b: '
64210519 e59c80e7
0fa7e9ab
72243049 feb8deec c146b9b1',
32734 n: 'ffffffff ffffffff ffffffff
99def836
146bc9b1 b4d22831',
32738 '
188da80e b03090f6
7cbf20eb
43a18800 f4ff0afd
82ff1012',
32739 '
07192b95 ffc8da78
631011ed
6b24cdd5
73f977a1
1e794811'
32743 defineCurve('p224', {
32746 p: 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001',
32747 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
32748 b: 'b4050a85
0c04b3ab f5413256
5044b0b7 d7bfd8ba
270b3943
2355ffb4',
32749 n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e
13dd2945
5c5c2a3d',
32753 'b70e0cbd
6bb4bf7f
321390b9
4a03c1d3
56c21122
343280d6
115c1d21',
32754 'bd376388 b5f723fb
4c22dfe6 cd4375a0
5a074764
44d58199
85007e34'
32758 defineCurve('p256', {
32761 p: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
32762 a: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
32763 b: '
5ac635d8 aa3a93e7 b3ebbd55
769886bc
651d06b0 cc53b0f6
3bce3c3e
27d2604b',
32764 n: 'ffffffff
00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
32768 '
6b17d1f2 e12c4247 f8bce6e5
63a440f2
77037d81
2deb33a0 f4a13945 d898c296',
32769 '
4fe342e2 fe1a7f9b
8ee7eb4a
7c0f9e16
2bce3357
6b315ece cbb64068
37bf51f5'
32773 defineCurve('p384', {
32776 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32777 'fffffffe ffffffff
00000000 00000000 ffffffff',
32778 a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32779 'fffffffe ffffffff
00000000 00000000 fffffffc',
32780 b: 'b3312fa7 e23ee7e4
988e056b e3f82d19
181d9c6e fe814112
0314088f ' +
32781 '
5013875a c656398d
8a2ed19d
2a85c8ed d3ec2aef',
32782 n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
32783 'f4372ddf
581a0db2
48b0a77a ecec196a ccc52973',
32787 'aa87ca22 be8b0537
8eb1c71e f320ad74
6e1d3b62
8ba79b98
59f741e0
82542a38 ' +
32788 '
5502f25d bf55296c
3a545e38
72760ab7',
32789 '
3617de4a
96262c6f
5d9e98bf
9292dc29 f8f41dbd
289a147c e9da3113 b5f0b8c0 ' +
32790 '
0a60b1ce
1d7e819d
7a431d7c
90ea0e5f'
32794 defineCurve('p521', {
32797 p: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32798 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32799 'ffffffff ffffffff ffffffff ffffffff ffffffff',
32800 a: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32801 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32802 'ffffffff ffffffff ffffffff ffffffff fffffffc',
32803 b: '
00000051 953eb961
8e1c9a1f
929a21a0 b68540ee a2da725b ' +
32804 '
99b315f3 b8b48991
8ef109e1
56193951 ec7e937b
1652c0bd ' +
32805 '
3bb1bf07
3573df88
3d2c34f1 ef451fd4
6b503f00',
32806 n: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
32807 'ffffffff ffffffff fffffffa
51868783 bf2f966b
7fcc0148 ' +
32808 'f709a5d0
3bb5c9b8
899c47ae bb6fb71e
91386409',
32812 '
000000c6
858e06b7
0404e9cd
9e3ecb66
2395b442
9c648139 ' +
32813 '
053fb521 f828af60
6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
32814 'a2ffa8de
3348b3c1
856a429b f97e7e31 c2e5bd66',
32815 '
00000118 39296a78
9a3bc004
5c8a5fb4
2c7d1bd9
98f54449 ' +
32816 '
579b4468
17afbd17
273e662c
97ee7299
5ef42640 c550b901 ' +
32817 '
3fad0761
353c7086 a272c240
88be9476
9fd16650'
32821 defineCurve('curve25519', {
32824 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
32827 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
32835 defineCurve('ed25519', {
32838 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
32841 // -
121665 * (
121666^(-
1)) (mod P)
32842 d: '
52036cee2b6ffe73
8cc740797779e898
00700a4d4141d8ab
75eb4dca135978a3',
32843 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
32847 '
216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
32850 '
6666666666666666666666666666666666666666666666666666666666666658'
32856 pre = require('./precomputed/secp256k1');
32861 defineCurve('secp256k1', {
32864 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
32867 n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
32871 // Precomputed endomorphism
32872 beta: '
7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
32873 lambda: '
5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
32876 a: '
3086d221a7d46bcde86c90e49284eb15',
32877 b: '-e4437ed6010e88286f547fa90abfe4c3'
32880 a: '
114ca50f7a8e2f3f657c1108d9d44cfd8',
32881 b: '
3086d221a7d46bcde86c90e49284eb15'
32887 '
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
32888 '
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
32893 },{"../elliptic":
39,"./precomputed/secp256k1":
53,"hash.js":
57}],
46:[function(require,module,exports){
32896 var BN = require('bn.js');
32897 var elliptic = require('../../elliptic');
32898 var utils = elliptic.utils;
32899 var assert = utils.assert;
32901 var KeyPair = require('./key');
32902 var Signature = require('./signature');
32904 function EC(options) {
32905 if (!(this instanceof EC))
32906 return new EC(options);
32908 // Shortcut `elliptic.ec(curve-name)`
32909 if (typeof options === 'string') {
32910 assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options);
32912 options = elliptic.curves[options];
32915 // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
32916 if (options instanceof elliptic.curves.PresetCurve)
32917 options = { curve: options };
32919 this.curve = options.curve.curve;
32920 this.n = this.curve.n;
32921 this.nh = this.n.ushrn(
1);
32922 this.g = this.curve.g;
32925 this.g = options.curve.g;
32926 this.g.precompute(options.curve.n.bitLength() +
1);
32928 // Hash for function for DRBG
32929 this.hash = options.hash || options.curve.hash;
32931 module.exports = EC;
32933 EC.prototype.keyPair = function keyPair(options) {
32934 return new KeyPair(this, options);
32937 EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
32938 return KeyPair.fromPrivate(this, priv, enc);
32941 EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
32942 return KeyPair.fromPublic(this, pub, enc);
32945 EC.prototype.genKeyPair = function genKeyPair(options) {
32949 // Instantiate Hmac_DRBG
32950 var drbg = new elliptic.hmacDRBG({
32952 pers: options.pers,
32953 entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
32954 nonce: this.n.toArray()
32957 var bytes = this.n.byteLength();
32958 var ns2 = this.n.sub(new BN(
2));
32960 var priv = new BN(drbg.generate(bytes));
32961 if (priv.cmp(ns2)
> 0)
32965 return this.keyFromPrivate(priv);
32969 EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
32970 var delta = msg.byteLength() *
8 - this.n.bitLength();
32972 msg = msg.ushrn(delta);
32973 if (!truncOnly && msg.cmp(this.n)
>=
0)
32974 return msg.sub(this.n);
32979 EC.prototype.sign = function sign(msg, key, enc, options) {
32980 if (typeof enc === 'object') {
32987 key = this.keyFromPrivate(key, enc);
32988 msg = this._truncateToN(new BN(msg,
16));
32990 // Zero-extend key to provide enough entropy
32991 var bytes = this.n.byteLength();
32992 var bkey = key.getPrivate().toArray('be', bytes);
32994 // Zero-extend nonce to have the same byte size as N
32995 var nonce = msg.toArray('be', bytes);
32997 // Instantiate Hmac_DRBG
32998 var drbg = new elliptic.hmacDRBG({
33002 pers: options.pers,
33003 persEnc: options.persEnc
33006 // Number of bytes to generate
33007 var ns1 = this.n.sub(new BN(
1));
33009 for (var iter =
0; true; iter++) {
33010 var k = options.k ?
33012 new BN(drbg.generate(this.n.byteLength()));
33013 k = this._truncateToN(k, true);
33014 if (k.cmpn(
1) <=
0 || k.cmp(ns1)
>=
0)
33017 var kp = this.g.mul(k);
33018 if (kp.isInfinity())
33021 var kpX = kp.getX();
33022 var r = kpX.umod(this.n);
33023 if (r.cmpn(
0) ===
0)
33026 var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
33027 s = s.umod(this.n);
33028 if (s.cmpn(
0) ===
0)
33031 var recoveryParam = (kp.getY().isOdd() ?
1 :
0) |
33032 (kpX.cmp(r) !==
0 ?
2 :
0);
33034 // Use complement of `s`, if it is
> `n /
2`
33035 if (options.canonical && s.cmp(this.nh)
> 0) {
33037 recoveryParam ^=
1;
33040 return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
33044 EC.prototype.verify = function verify(msg, signature, key, enc) {
33045 msg = this._truncateToN(new BN(msg,
16));
33046 key = this.keyFromPublic(key, enc);
33047 signature = new Signature(signature, 'hex');
33049 // Perform primitive values validation
33050 var r = signature.r;
33051 var s = signature.s;
33052 if (r.cmpn(
1) <
0 || r.cmp(this.n)
>=
0)
33054 if (s.cmpn(
1) <
0 || s.cmp(this.n)
>=
0)
33057 // Validate signature
33058 var sinv = s.invm(this.n);
33059 var u1 = sinv.mul(msg).umod(this.n);
33060 var u2 = sinv.mul(r).umod(this.n);
33062 if (!this.curve._maxwellTrick) {
33063 var p = this.g.mulAdd(u1, key.getPublic(), u2);
33064 if (p.isInfinity())
33067 return p.getX().umod(this.n).cmp(r) ===
0;
33070 // NOTE: Greg Maxwell's trick, inspired by:
33071 // https://git.io/vad3K
33073 var p = this.g.jmulAdd(u1, key.getPublic(), u2);
33074 if (p.isInfinity())
33077 // Compare `p.x` of Jacobian point with `r`,
33078 // this will do `p.x == r * p.z^
2` instead of multiplying `p.x` by the
33079 // inverse of `p.z^
2`
33080 return p.eqXToP(r);
33083 EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
33084 assert((
3 & j) === j, 'The recovery param is more than two bits');
33085 signature = new Signature(signature, enc);
33088 var e = new BN(msg);
33089 var r = signature.r;
33090 var s = signature.s;
33092 // A set LSB signifies that the y-coordinate is odd
33093 var isYOdd = j &
1;
33094 var isSecondKey = j
>> 1;
33095 if (r.cmp(this.curve.p.umod(this.curve.n))
>=
0 && isSecondKey)
33096 throw new Error('Unable to find sencond key candinate');
33098 //
1.1. Let x = r + jn.
33100 r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
33102 r = this.curve.pointFromX(r, isYOdd);
33104 var rInv = signature.r.invm(n);
33105 var s1 = n.sub(e).mul(rInv).umod(n);
33106 var s2 = s.mul(rInv).umod(n);
33108 //
1.6.1 Compute Q = r^-
1 (sR - eG)
33109 // Q = r^-
1 (sR + -eG)
33110 return this.g.mulAdd(s1, r, s2);
33113 EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
33114 signature = new Signature(signature, enc);
33115 if (signature.recoveryParam !== null)
33116 return signature.recoveryParam;
33118 for (var i =
0; i <
4; i++) {
33121 Qprime = this.recoverPubKey(e, signature, i);
33129 throw new Error('Unable to find valid recovery factor');
33132 },{"../../elliptic":
39,"./key":
47,"./signature":
48,"bn.js":
33}],
47:[function(require,module,exports){
33135 var BN = require('bn.js');
33136 var elliptic = require('../../elliptic');
33137 var utils = elliptic.utils;
33138 var assert = utils.assert;
33140 function KeyPair(ec, options) {
33145 // KeyPair(ec, { priv: ..., pub: ... })
33147 this._importPrivate(options.priv, options.privEnc);
33149 this._importPublic(options.pub, options.pubEnc);
33151 module.exports = KeyPair;
33153 KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
33154 if (pub instanceof KeyPair)
33157 return new KeyPair(ec, {
33163 KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
33164 if (priv instanceof KeyPair)
33167 return new KeyPair(ec, {
33173 KeyPair.prototype.validate = function validate() {
33174 var pub = this.getPublic();
33176 if (pub.isInfinity())
33177 return { result: false, reason: 'Invalid public key' };
33178 if (!pub.validate())
33179 return { result: false, reason: 'Public key is not a point' };
33180 if (!pub.mul(this.ec.curve.n).isInfinity())
33181 return { result: false, reason: 'Public key * N != O' };
33183 return { result: true, reason: null };
33186 KeyPair.prototype.getPublic = function getPublic(compact, enc) {
33187 // compact is optional argument
33188 if (typeof compact === 'string') {
33194 this.pub = this.ec.g.mul(this.priv);
33199 return this.pub.encode(enc, compact);
33202 KeyPair.prototype.getPrivate = function getPrivate(enc) {
33204 return this.priv.toString(
16,
2);
33209 KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
33210 this.priv = new BN(key, enc ||
16);
33212 // Ensure that the priv won't be bigger than n, otherwise we may fail
33213 // in fixed multiplication method
33214 this.priv = this.priv.umod(this.ec.curve.n);
33217 KeyPair.prototype._importPublic = function _importPublic(key, enc) {
33218 if (key.x || key.y) {
33219 // Montgomery points only have an `x` coordinate.
33220 // Weierstrass/Edwards points on the other hand have both `x` and
33221 // `y` coordinates.
33222 if (this.ec.curve.type === 'mont') {
33223 assert(key.x, 'Need x coordinate');
33224 } else if (this.ec.curve.type === 'short' ||
33225 this.ec.curve.type === 'edwards') {
33226 assert(key.x && key.y, 'Need both x and y coordinate');
33228 this.pub = this.ec.curve.point(key.x, key.y);
33231 this.pub = this.ec.curve.decodePoint(key, enc);
33235 KeyPair.prototype.derive = function derive(pub) {
33236 return pub.mul(this.priv).getX();
33240 KeyPair.prototype.sign = function sign(msg, enc, options) {
33241 return this.ec.sign(msg, this, enc, options);
33244 KeyPair.prototype.verify = function verify(msg, signature) {
33245 return this.ec.verify(msg, signature, this);
33248 KeyPair.prototype.inspect = function inspect() {
33249 return '
<Key priv: ' + (this.priv && this.priv.toString(
16,
2)) +
33250 ' pub: ' + (this.pub && this.pub.inspect()) + '
>';
33253 },{"../../elliptic":
39,"bn.js":
33}],
48:[function(require,module,exports){
33256 var BN = require('bn.js');
33258 var elliptic = require('../../elliptic');
33259 var utils = elliptic.utils;
33260 var assert = utils.assert;
33262 function Signature(options, enc) {
33263 if (options instanceof Signature)
33266 if (this._importDER(options, enc))
33269 assert(options.r && options.s, 'Signature without r or s');
33270 this.r = new BN(options.r,
16);
33271 this.s = new BN(options.s,
16);
33272 if (options.recoveryParam === undefined)
33273 this.recoveryParam = null;
33275 this.recoveryParam = options.recoveryParam;
33277 module.exports = Signature;
33279 function Position() {
33283 function getLength(buf, p) {
33284 var initial = buf[p.place++];
33285 if (!(initial &
0x80)) {
33288 var octetLen = initial &
0xf;
33290 for (var i =
0, off = p.place; i < octetLen; i++, off++) {
33298 function rmPadding(buf) {
33300 var len = buf.length -
1;
33301 while (!buf[i] && !(buf[i +
1] &
0x80) && i < len) {
33307 return buf.slice(i);
33310 Signature.prototype._importDER = function _importDER(data, enc) {
33311 data = utils.toArray(data, enc);
33312 var p = new Position();
33313 if (data[p.place++] !==
0x30) {
33316 var len = getLength(data, p);
33317 if ((len + p.place) !== data.length) {
33320 if (data[p.place++] !==
0x02) {
33323 var rlen = getLength(data, p);
33324 var r = data.slice(p.place, rlen + p.place);
33326 if (data[p.place++] !==
0x02) {
33329 var slen = getLength(data, p);
33330 if (data.length !== slen + p.place) {
33333 var s = data.slice(p.place, slen + p.place);
33334 if (r[
0] ===
0 && (r[
1] &
0x80)) {
33337 if (s[
0] ===
0 && (s[
1] &
0x80)) {
33341 this.r = new BN(r);
33342 this.s = new BN(s);
33343 this.recoveryParam = null;
33348 function constructLength(arr, len) {
33353 var octets =
1 + (Math.log(len) / Math.LN2
>>> 3);
33354 arr.push(octets |
0x80);
33356 arr.push((len
>>> (octets <<
3)) &
0xff);
33361 Signature.prototype.toDER = function toDER(enc) {
33362 var r = this.r.toArray();
33363 var s = this.s.toArray();
33367 r = [
0 ].concat(r);
33370 s = [
0 ].concat(s);
33375 while (!s[
0] && !(s[
1] &
0x80)) {
33378 var arr = [
0x02 ];
33379 constructLength(arr, r.length);
33380 arr = arr.concat(r);
33382 constructLength(arr, s.length);
33383 var backHalf = arr.concat(s);
33384 var res = [
0x30 ];
33385 constructLength(res, backHalf.length);
33386 res = res.concat(backHalf);
33387 return utils.encode(res, enc);
33390 },{"../../elliptic":
39,"bn.js":
33}],
49:[function(require,module,exports){
33393 var hash = require('hash.js');
33394 var elliptic = require('../../elliptic');
33395 var utils = elliptic.utils;
33396 var assert = utils.assert;
33397 var parseBytes = utils.parseBytes;
33398 var KeyPair = require('./key');
33399 var Signature = require('./signature');
33401 function EDDSA(curve) {
33402 assert(curve === 'ed25519', 'only tested with ed25519 so far');
33404 if (!(this instanceof EDDSA))
33405 return new EDDSA(curve);
33407 var curve = elliptic.curves[curve].curve;
33408 this.curve = curve;
33410 this.g.precompute(curve.n.bitLength() +
1);
33412 this.pointClass = curve.point().constructor;
33413 this.encodingLength = Math.ceil(curve.n.bitLength() /
8);
33414 this.hash = hash.sha512;
33417 module.exports = EDDSA;
33420 * @param {Array|String} message - message bytes
33421 * @param {Array|String|KeyPair} secret - secret bytes or a keypair
33422 * @returns {Signature} - signature
33424 EDDSA.prototype.sign = function sign(message, secret) {
33425 message = parseBytes(message);
33426 var key = this.keyFromSecret(secret);
33427 var r = this.hashInt(key.messagePrefix(), message);
33428 var R = this.g.mul(r);
33429 var Rencoded = this.encodePoint(R);
33430 var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
33432 var S = r.add(s_).umod(this.curve.n);
33433 return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
33437 * @param {Array} message - message bytes
33438 * @param {Array|String|Signature} sig - sig bytes
33439 * @param {Array|String|Point|KeyPair} pub - public key
33440 * @returns {Boolean} - true if public key matches sig of message
33442 EDDSA.prototype.verify = function verify(message, sig, pub) {
33443 message = parseBytes(message);
33444 sig = this.makeSignature(sig);
33445 var key = this.keyFromPublic(pub);
33446 var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
33447 var SG = this.g.mul(sig.S());
33448 var RplusAh = sig.R().add(key.pub().mul(h));
33449 return RplusAh.eq(SG);
33452 EDDSA.prototype.hashInt = function hashInt() {
33453 var hash = this.hash();
33454 for (var i =
0; i < arguments.length; i++)
33455 hash.update(arguments[i]);
33456 return utils.intFromLE(hash.digest()).umod(this.curve.n);
33459 EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
33460 return KeyPair.fromPublic(this, pub);
33463 EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
33464 return KeyPair.fromSecret(this, secret);
33467 EDDSA.prototype.makeSignature = function makeSignature(sig) {
33468 if (sig instanceof Signature)
33470 return new Signature(this, sig);
33474 * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-
03#section-
5.2
33476 * EDDSA defines methods for encoding and decoding points and integers. These are
33477 * helper convenience methods, that pass along to utility functions implied
33481 EDDSA.prototype.encodePoint = function encodePoint(point) {
33482 var enc = point.getY().toArray('le', this.encodingLength);
33483 enc[this.encodingLength -
1] |= point.getX().isOdd() ?
0x80 :
0;
33487 EDDSA.prototype.decodePoint = function decodePoint(bytes) {
33488 bytes = utils.parseBytes(bytes);
33490 var lastIx = bytes.length -
1;
33491 var normed = bytes.slice(
0, lastIx).concat(bytes[lastIx] & ~
0x80);
33492 var xIsOdd = (bytes[lastIx] &
0x80) !==
0;
33494 var y = utils.intFromLE(normed);
33495 return this.curve.pointFromY(y, xIsOdd);
33498 EDDSA.prototype.encodeInt = function encodeInt(num) {
33499 return num.toArray('le', this.encodingLength);
33502 EDDSA.prototype.decodeInt = function decodeInt(bytes) {
33503 return utils.intFromLE(bytes);
33506 EDDSA.prototype.isPoint = function isPoint(val) {
33507 return val instanceof this.pointClass;
33510 },{"../../elliptic":
39,"./key":
50,"./signature":
51,"hash.js":
57}],
50:[function(require,module,exports){
33513 var elliptic = require('../../elliptic');
33514 var utils = elliptic.utils;
33515 var assert = utils.assert;
33516 var parseBytes = utils.parseBytes;
33517 var cachedProperty = utils.cachedProperty;
33520 * @param {EDDSA} eddsa - instance
33521 * @param {Object} params - public/private key parameters
33523 * @param {Array
<Byte>} [params.secret] - secret seed bytes
33524 * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
33525 * @param {Array
<Byte>} [params.pub] - public key point encoded as bytes
33528 function KeyPair(eddsa, params) {
33529 this.eddsa = eddsa;
33530 this._secret = parseBytes(params.secret);
33531 if (eddsa.isPoint(params.pub))
33532 this._pub = params.pub;
33534 this._pubBytes = parseBytes(params.pub);
33537 KeyPair.fromPublic = function fromPublic(eddsa, pub) {
33538 if (pub instanceof KeyPair)
33540 return new KeyPair(eddsa, { pub: pub });
33543 KeyPair.fromSecret = function fromSecret(eddsa, secret) {
33544 if (secret instanceof KeyPair)
33546 return new KeyPair(eddsa, { secret: secret });
33549 KeyPair.prototype.secret = function secret() {
33550 return this._secret;
33553 cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
33554 return this.eddsa.encodePoint(this.pub());
33557 cachedProperty(KeyPair, 'pub', function pub() {
33558 if (this._pubBytes)
33559 return this.eddsa.decodePoint(this._pubBytes);
33560 return this.eddsa.g.mul(this.priv());
33563 cachedProperty(KeyPair, 'privBytes', function privBytes() {
33564 var eddsa = this.eddsa;
33565 var hash = this.hash();
33566 var lastIx = eddsa.encodingLength -
1;
33568 var a = hash.slice(
0, eddsa.encodingLength);
33576 cachedProperty(KeyPair, 'priv', function priv() {
33577 return this.eddsa.decodeInt(this.privBytes());
33580 cachedProperty(KeyPair, 'hash', function hash() {
33581 return this.eddsa.hash().update(this.secret()).digest();
33584 cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
33585 return this.hash().slice(this.eddsa.encodingLength);
33588 KeyPair.prototype.sign = function sign(message) {
33589 assert(this._secret, 'KeyPair can only verify');
33590 return this.eddsa.sign(message, this);
33593 KeyPair.prototype.verify = function verify(message, sig) {
33594 return this.eddsa.verify(message, sig, this);
33597 KeyPair.prototype.getSecret = function getSecret(enc) {
33598 assert(this._secret, 'KeyPair is public only');
33599 return utils.encode(this.secret(), enc);
33602 KeyPair.prototype.getPublic = function getPublic(enc) {
33603 return utils.encode(this.pubBytes(), enc);
33606 module.exports = KeyPair;
33608 },{"../../elliptic":
39}],
51:[function(require,module,exports){
33611 var BN = require('bn.js');
33612 var elliptic = require('../../elliptic');
33613 var utils = elliptic.utils;
33614 var assert = utils.assert;
33615 var cachedProperty = utils.cachedProperty;
33616 var parseBytes = utils.parseBytes;
33619 * @param {EDDSA} eddsa - eddsa instance
33620 * @param {Array
<Bytes>|Object} sig -
33621 * @param {Array
<Bytes>|Point} [sig.R] - R point as Point or bytes
33622 * @param {Array
<Bytes>|bn} [sig.S] - S scalar as bn or bytes
33623 * @param {Array
<Bytes>} [sig.Rencoded] - R point encoded
33624 * @param {Array
<Bytes>} [sig.Sencoded] - S scalar encoded
33626 function Signature(eddsa, sig) {
33627 this.eddsa = eddsa;
33629 if (typeof sig !== 'object')
33630 sig = parseBytes(sig);
33632 if (Array.isArray(sig)) {
33634 R: sig.slice(
0, eddsa.encodingLength),
33635 S: sig.slice(eddsa.encodingLength)
33639 assert(sig.R && sig.S, 'Signature without R or S');
33641 if (eddsa.isPoint(sig.R))
33643 if (sig.S instanceof BN)
33646 this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
33647 this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
33650 cachedProperty(Signature, 'S', function S() {
33651 return this.eddsa.decodeInt(this.Sencoded());
33654 cachedProperty(Signature, 'R', function R() {
33655 return this.eddsa.decodePoint(this.Rencoded());
33658 cachedProperty(Signature, 'Rencoded', function Rencoded() {
33659 return this.eddsa.encodePoint(this.R());
33662 cachedProperty(Signature, 'Sencoded', function Sencoded() {
33663 return this.eddsa.encodeInt(this.S());
33666 Signature.prototype.toBytes = function toBytes() {
33667 return this.Rencoded().concat(this.Sencoded());
33670 Signature.prototype.toHex = function toHex() {
33671 return utils.encode(this.toBytes(), 'hex').toUpperCase();
33674 module.exports = Signature;
33676 },{"../../elliptic":
39,"bn.js":
33}],
52:[function(require,module,exports){
33679 var hash = require('hash.js');
33680 var elliptic = require('../elliptic');
33681 var utils = elliptic.utils;
33682 var assert = utils.assert;
33684 function HmacDRBG(options) {
33685 if (!(this instanceof HmacDRBG))
33686 return new HmacDRBG(options);
33687 this.hash = options.hash;
33688 this.predResist = !!options.predResist;
33690 this.outLen = this.hash.outSize;
33691 this.minEntropy = options.minEntropy || this.hash.hmacStrength;
33693 this.reseed = null;
33694 this.reseedInterval = null;
33698 var entropy = utils.toArray(options.entropy, options.entropyEnc);
33699 var nonce = utils.toArray(options.nonce, options.nonceEnc);
33700 var pers = utils.toArray(options.pers, options.persEnc);
33701 assert(entropy.length
>= (this.minEntropy /
8),
33702 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
33703 this._init(entropy, nonce, pers);
33705 module.exports = HmacDRBG;
33707 HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
33708 var seed = entropy.concat(nonce).concat(pers);
33710 this.K = new Array(this.outLen /
8);
33711 this.V = new Array(this.outLen /
8);
33712 for (var i =
0; i < this.V.length; i++) {
33717 this._update(seed);
33719 this.reseedInterval =
0x1000000000000; //
2^
48
33722 HmacDRBG.prototype._hmac = function hmac() {
33723 return new hash.hmac(this.hash, this.K);
33726 HmacDRBG.prototype._update = function update(seed) {
33727 var kmac = this._hmac()
33731 kmac = kmac.update(seed);
33732 this.K = kmac.digest();
33733 this.V = this._hmac().update(this.V).digest();
33737 this.K = this._hmac()
33742 this.V = this._hmac().update(this.V).digest();
33745 HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
33746 // Optional entropy enc
33747 if (typeof entropyEnc !== 'string') {
33753 entropy = utils.toBuffer(entropy, entropyEnc);
33754 add = utils.toBuffer(add, addEnc);
33756 assert(entropy.length
>= (this.minEntropy /
8),
33757 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
33759 this._update(entropy.concat(add || []));
33763 HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
33764 if (this.reseed
> this.reseedInterval)
33765 throw new Error('Reseed is required');
33767 // Optional encoding
33768 if (typeof enc !== 'string') {
33774 // Optional additional data
33776 add = utils.toArray(add, addEnc);
33781 while (temp.length < len) {
33782 this.V = this._hmac().update(this.V).digest();
33783 temp = temp.concat(this.V);
33786 var res = temp.slice(
0, len);
33789 return utils.encode(res, enc);
33792 },{"../elliptic":
39,"hash.js":
57}],
53:[function(require,module,exports){
33798 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
33799 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'
33802 '
8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
33803 '
11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'
33806 '
175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
33807 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'
33810 '
363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
33811 '
4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'
33814 '
8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
33815 '
4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'
33818 '
723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
33819 '
96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'
33822 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
33823 '
5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'
33826 '
100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
33827 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'
33830 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
33831 '
9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'
33834 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
33835 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'
33838 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
33839 '
9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'
33842 '
53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
33843 '
5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'
33846 '
8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
33847 '
10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'
33850 '
385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
33851 '
283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'
33854 '
6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
33855 '
7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'
33858 '
3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
33859 '
56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'
33862 '
85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
33863 '
7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'
33866 '
948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
33867 '
53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'
33870 '
6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
33871 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'
33874 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
33875 '
4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'
33878 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
33879 '
7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'
33882 '
213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
33883 '
4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'
33886 '
4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
33887 '
17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'
33890 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
33891 '
6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'
33894 '
76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
33895 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'
33898 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
33899 '
893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'
33902 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
33903 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'
33906 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
33907 '
2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'
33910 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
33911 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'
33914 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
33915 '
7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'
33918 '
90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
33919 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'
33922 '
8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
33923 '
662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'
33926 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
33927 '
1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'
33930 '
8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
33931 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'
33934 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
33935 '
2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'
33938 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
33939 '
67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'
33942 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
33943 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'
33946 '
324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
33947 '
648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'
33950 '
4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
33951 '
35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'
33954 '
9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
33955 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'
33958 '
6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
33959 '
9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'
33962 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
33963 '
40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'
33966 '
7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
33967 '
34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'
33970 '
928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
33971 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'
33974 '
85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
33975 '
1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'
33978 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
33979 '
493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'
33982 '
827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
33983 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'
33986 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
33987 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'
33990 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
33991 '
4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'
33994 '
1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
33995 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'
33998 '
146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
33999 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'
34002 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
34003 '
6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'
34006 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
34007 '
8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'
34010 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
34011 '
7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'
34014 '
174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
34015 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'
34018 '
959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
34019 '
2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'
34022 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
34023 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'
34026 '
64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
34027 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'
34030 '
8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
34031 '
38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'
34034 '
13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
34035 '
69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'
34038 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
34039 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'
34042 '
8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
34043 '
40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'
34046 '
8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
34047 '
620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'
34050 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
34051 '
7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'
34054 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
34055 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'
34063 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
34064 '
388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'
34067 '
2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
34068 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'
34071 '
5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
34072 '
6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'
34075 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
34076 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'
34079 '
774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
34080 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'
34083 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
34084 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'
34087 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
34088 '
581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'
34091 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
34092 '
4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'
34095 '
2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
34096 '
85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'
34099 '
352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
34100 '
321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'
34103 '
2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
34104 '
2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'
34107 '
9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
34108 '
73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'
34111 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
34112 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'
34115 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
34116 '
2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'
34119 '
6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
34120 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'
34123 '
1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
34124 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'
34127 '
605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
34128 '
2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'
34131 '
62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
34132 '
80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'
34135 '
80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
34136 '
1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'
34139 '
7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
34140 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'
34143 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
34144 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'
34147 '
49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
34148 '
758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'
34151 '
77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
34152 '
958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'
34155 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
34156 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'
34159 '
463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
34160 '
5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'
34163 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
34164 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'
34167 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
34168 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'
34171 '
2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
34172 '
4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'
34175 '
7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
34176 '
91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'
34179 '
754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
34180 '
673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'
34183 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
34184 '
59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'
34187 '
186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
34188 '
3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'
34191 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
34192 '
55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'
34195 '
5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
34196 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'
34199 '
290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
34200 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'
34203 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
34204 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'
34207 '
766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
34208 '
744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'
34211 '
59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
34212 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'
34215 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
34216 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'
34219 '
7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
34220 '
30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'
34223 '
948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
34224 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'
34227 '
7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
34228 '
100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'
34231 '
3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
34232 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'
34235 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
34236 '
8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'
34239 '
1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
34240 '
68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'
34243 '
733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
34244 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'
34247 '
15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
34248 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'
34251 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
34252 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'
34255 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
34256 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'
34259 '
311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
34260 '
66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'
34263 '
34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
34264 '
9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'
34267 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
34268 '
4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'
34271 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
34272 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'
34275 '
32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
34276 '
5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'
34279 '
7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
34280 '
8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'
34283 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
34284 '
8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'
34287 '
16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
34288 '
5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'
34291 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
34292 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'
34295 '
78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
34296 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'
34299 '
494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
34300 '
42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'
34303 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
34304 '
204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'
34307 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
34308 '
4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'
34311 '
841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
34312 '
73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'
34315 '
5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
34316 '
39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'
34319 '
36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
34320 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'
34323 '
336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
34324 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'
34327 '
8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
34328 '
6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'
34331 '
1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
34332 '
60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'
34335 '
85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
34336 '
3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'
34339 '
29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
34340 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'
34343 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
34344 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'
34347 '
4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
34348 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'
34351 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
34352 '
6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'
34355 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
34356 '
322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'
34359 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
34360 '
6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'
34363 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
34364 '
2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'
34367 '
591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
34368 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'
34371 '
11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
34372 '
998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'
34375 '
3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
34376 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'
34379 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
34380 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'
34383 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
34384 '
6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'
34387 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
34388 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'
34391 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
34392 '
21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'
34395 '
347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
34396 '
60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'
34399 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
34400 '
49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'
34403 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
34404 '
5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'
34407 '
4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
34408 '
7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'
34411 '
3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
34412 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'
34415 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
34416 '
8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'
34419 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
34420 '
39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'
34423 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
34424 '
62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'
34427 '
48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
34428 '
25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'
34431 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
34432 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'
34435 '
6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
34436 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'
34439 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
34440 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'
34443 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
34444 '
6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'
34447 '
13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
34448 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'
34451 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
34452 '
1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'
34455 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
34456 '
5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'
34459 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
34460 '
438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'
34463 '
8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
34464 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'
34467 '
52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
34468 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'
34471 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
34472 '
6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'
34475 '
7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
34476 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'
34479 '
5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
34480 '
9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'
34483 '
32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
34484 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'
34487 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
34488 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'
34491 '
8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
34492 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'
34495 '
4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
34496 '
67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'
34499 '
3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
34500 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'
34503 '
674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
34504 '
299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'
34507 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
34508 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'
34511 '
30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
34512 '
462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'
34515 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
34516 '
62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'
34519 '
93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
34520 '
7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'
34523 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
34524 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'
34527 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
34528 '
4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'
34531 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
34532 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'
34535 '
463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
34536 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'
34539 '
7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
34540 '
603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'
34543 '
74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
34544 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'
34547 '
30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
34548 '
553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'
34551 '
9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
34552 '
712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'
34555 '
176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
34556 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'
34559 '
75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
34560 '
9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'
34563 '
809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
34564 '
9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'
34567 '
1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
34568 '
4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'
34574 },{}],
54:[function(require,module,exports){
34577 var utils = exports;
34578 var BN = require('bn.js');
34580 utils.assert = function assert(val, msg) {
34582 throw new Error(msg || 'Assertion failed');
34585 function toArray(msg, enc) {
34586 if (Array.isArray(msg))
34587 return msg.slice();
34591 if (typeof msg !== 'string') {
34592 for (var i =
0; i < msg.length; i++)
34593 res[i] = msg[i] |
0;
34597 for (var i =
0; i < msg.length; i++) {
34598 var c = msg.charCodeAt(i);
34606 } else if (enc === 'hex') {
34607 msg = msg.replace(/[^a-z0-
9]+/ig, '');
34608 if (msg.length %
2 !==
0)
34610 for (var i =
0; i < msg.length; i +=
2)
34611 res.push(parseInt(msg[i] + msg[i +
1],
16));
34615 utils.toArray = toArray;
34617 function zero2(word) {
34618 if (word.length ===
1)
34623 utils.zero2 = zero2;
34625 function toHex(msg) {
34627 for (var i =
0; i < msg.length; i++)
34628 res += zero2(msg[i].toString(
16));
34631 utils.toHex = toHex;
34633 utils.encode = function encode(arr, enc) {
34640 // Represent num in a w-NAF form
34641 function getNAF(num, w) {
34643 var ws =
1 << (w +
1);
34644 var k = num.clone();
34645 while (k.cmpn(
1)
>=
0) {
34648 var mod = k.andln(ws -
1);
34649 if (mod
> (ws
>> 1) -
1)
34650 z = (ws
>> 1) - mod;
34659 // Optimization, shift by word if possible
34660 var shift = (k.cmpn(
0) !==
0 && k.andln(ws -
1) ===
0) ? (w +
1) :
1;
34661 for (var i =
1; i < shift; i++)
34668 utils.getNAF = getNAF;
34670 // Represent k1, k2 in a Joint Sparse Form
34671 function getJSF(k1, k2) {
34681 while (k1.cmpn(-d1)
> 0 || k2.cmpn(-d2)
> 0) {
34684 var m14 = (k1.andln(
3) + d1) &
3;
34685 var m24 = (k2.andln(
3) + d2) &
3;
34691 if ((m14 &
1) ===
0) {
34694 var m8 = (k1.andln(
7) + d1) &
7;
34695 if ((m8 ===
3 || m8 ===
5) && m24 ===
2)
34703 if ((m24 &
1) ===
0) {
34706 var m8 = (k2.andln(
7) + d2) &
7;
34707 if ((m8 ===
3 || m8 ===
5) && m14 ===
2)
34715 if (
2 * d1 === u1 +
1)
34717 if (
2 * d2 === u2 +
1)
34725 utils.getJSF = getJSF;
34727 function cachedProperty(obj, name, computer) {
34728 var key = '_' + name;
34729 obj.prototype[name] = function cachedProperty() {
34730 return this[key] !== undefined ? this[key] :
34731 this[key] = computer.call(this);
34734 utils.cachedProperty = cachedProperty;
34736 function parseBytes(bytes) {
34737 return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
34740 utils.parseBytes = parseBytes;
34742 function intFromLE(bytes) {
34743 return new BN(bytes, 'hex', 'le');
34745 utils.intFromLE = intFromLE;
34748 },{
"bn.js":
33}],
55:[function(require,module,exports){
34753 "raw":
"elliptic@^6.2.3",
34755 "escapedName":
"elliptic",
34756 "name":
"elliptic",
34757 "rawSpec":
"^6.2.3",
34758 "spec":
">=6.2.3 <7.0.0",
34761 "/home/user/ethereum/ethereumjs-util/node_modules/secp256k1"
34764 "_from":
"elliptic@>=6.2.3 <7.0.0",
34765 "_id":
"elliptic@6.3.3",
34767 "_location":
"/elliptic",
34768 "_nodeVersion":
"7.0.0",
34769 "_npmOperationalInternal": {
34770 "host":
"packages-18-east.internal.npmjs.com",
34771 "tmp":
"tmp/elliptic-6.3.3.tgz_1486422837740_0.10658654430881143"
34775 "email":
"fedor@indutny.com"
34777 "_npmVersion":
"3.10.8",
34778 "_phantomChildren": {},
34780 "raw":
"elliptic@^6.2.3",
34782 "escapedName":
"elliptic",
34783 "name":
"elliptic",
34784 "rawSpec":
"^6.2.3",
34785 "spec":
">=6.2.3 <7.0.0",
34789 "/browserify-sign",
34793 "_resolved":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz",
34794 "_shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
34795 "_shrinkwrap": null,
34796 "_spec":
"elliptic@^6.2.3",
34797 "_where":
"/home/user/ethereum/ethereumjs-util/node_modules/secp256k1",
34799 "name":
"Fedor Indutny",
34800 "email":
"fedor@indutny.com"
34803 "url":
"https://github.com/indutny/elliptic/issues"
34807 "brorand":
"^1.0.1",
34808 "hash.js":
"^1.0.0",
34809 "inherits":
"^2.0.1"
34811 "description":
"EC cryptography",
34812 "devDependencies": {
34814 "coveralls":
"^2.11.3",
34816 "grunt-browserify":
"^5.0.0",
34817 "grunt-cli":
"^1.2.0",
34818 "grunt-contrib-connect":
"^1.0.0",
34819 "grunt-contrib-copy":
"^1.0.0",
34820 "grunt-contrib-uglify":
"^1.0.1",
34821 "grunt-mocha-istanbul":
"^3.0.1",
34822 "grunt-saucelabs":
"^8.6.2",
34823 "istanbul":
"^0.4.2",
34825 "jshint":
"^2.6.0",
34830 "shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
34831 "tarball":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz"
34836 "gitHead":
"63aee8d697e9b7fac37ece24222029117a890a7e",
34837 "homepage":
"https://github.com/indutny/elliptic",
34845 "main":
"lib/elliptic.js",
34849 "email":
"fedor@indutny.com"
34852 "name":
"elliptic",
34853 "optionalDependencies": {},
34854 "readme":
"ERROR: No README data found!",
34857 "url":
"git+ssh://git@github.com/indutny/elliptic.git"
34860 "jscs":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
34861 "jshint":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
34862 "lint":
"npm run jscs && npm run jshint",
34863 "test":
"npm run lint && npm run unit",
34864 "unit":
"istanbul test _mocha --reporter=spec test/index.js",
34865 "version":
"grunt dist && git add dist/"
34870 },{}],
56:[function(require,module,exports){
34871 (function (Buffer){
34874 var isHexPrefixed = require('is-hex-prefixed');
34875 var stripHexPrefix = require('strip-hex-prefix');
34878 * Pads a `String` to have an even length
34879 * @param {String} value
34880 * @return {String} output
34882 function padToEven(value) {
34883 var a = value; // eslint-disable-line
34885 if (typeof a !== 'string') {
34886 throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');
34889 if (a.length %
2) {
34897 * Converts a `Number` into a hex `String`
34898 * @param {Number} i
34901 function intToHex(i) {
34902 var hex = i.toString(
16); // eslint-disable-line
34904 return '
0x' + padToEven(hex);
34908 * Converts an `Number` to a `Buffer`
34909 * @param {Number} i
34912 function intToBuffer(i) {
34913 var hex = intToHex(i);
34915 return new Buffer(hex.slice(
2), 'hex');
34919 * Get the binary size of a string
34920 * @param {String} str
34923 function getBinarySize(str) {
34924 if (typeof str !== 'string') {
34925 throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \'str\' to be type String, got \'' + typeof str + '\'.');
34928 return Buffer.byteLength(str, 'utf8');
34932 * Returns TRUE if the first specified array contains all elements
34933 * from the second one. FALSE otherwise.
34935 * @param {array} superset
34936 * @param {array} subset
34938 * @returns {boolean}
34940 function arrayContainsArray(superset, subset, some) {
34941 if (Array.isArray(superset) !== true) {
34942 throw new Error('[ethjs-util] method arrayContainsArray requires input \'superset\' to be an array got type \'' + typeof superset + '\'');
34944 if (Array.isArray(subset) !== true) {
34945 throw new Error('[ethjs-util] method arrayContainsArray requires input \'subset\' to be an array got type \'' + typeof subset + '\'');
34948 return subset[Boolean(some) && 'some' || 'every'](function (value) {
34949 return superset.indexOf(value)
>=
0;
34954 * Should be called to get utf8 from it's hex representation
34957 * @param {String} string in hex
34958 * @returns {String} ascii string representation of hex value
34960 function toUtf8(hex) {
34961 var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^
0+|
0+$/g, '')), 'hex');
34963 return bufferValue.toString('utf8');
34967 * Should be called to get ascii from it's hex representation
34970 * @param {String} string in hex
34971 * @returns {String} ascii string representation of hex value
34973 function toAscii(hex) {
34974 var str = ''; // eslint-disable-line
34976 l = hex.length; // eslint-disable-line
34978 if (hex.substring(
0,
2) === '
0x') {
34982 for (; i < l; i +=
2) {
34983 var code = parseInt(hex.substr(i,
2),
16);
34984 str += String.fromCharCode(code);
34991 * Should be called to get hex representation (prefixed by
0x) of utf8 string
34994 * @param {String} string
34995 * @param {Number} optional padding
34996 * @returns {String} hex representation of input string
34998 function fromUtf8(stringValue) {
34999 var str = new Buffer(stringValue, 'utf8');
35001 return '
0x' + padToEven(str.toString('hex')).replace(/^
0+|
0+$/g, '');
35005 * Should be called to get hex representation (prefixed by
0x) of ascii string
35007 * @method fromAscii
35008 * @param {String} string
35009 * @param {Number} optional padding
35010 * @returns {String} hex representation of input string
35012 function fromAscii(stringValue) {
35013 var hex = ''; // eslint-disable-line
35014 for (var i =
0; i < stringValue.length; i++) {
35015 // eslint-disable-line
35016 var code = stringValue.charCodeAt(i);
35017 var n = code.toString(
16);
35018 hex += n.length <
2 ? '
0' + n : n;
35025 * getKeys([{a:
1, b:
2}, {a:
3, b:
4}], 'a') =
> [
1,
3]
35027 * @method getKeys get specific key from inner object array of objects
35028 * @param {String} params
35029 * @param {String} key
35030 * @param {Boolean} allowEmpty
35031 * @returns {Array} output just a simple array of output keys
35033 function getKeys(params, key, allowEmpty) {
35034 if (!Array.isArray(params)) {
35035 throw new Error('[ethjs-util] method getKeys expecting type Array as \'params\' input, got \'' + typeof params + '\'');
35037 if (typeof key !== 'string') {
35038 throw new Error('[ethjs-util] method getKeys expecting type String for input \'key\' got \'' + typeof key + '\'.');
35041 var result = []; // eslint-disable-line
35043 for (var i =
0; i < params.length; i++) {
35044 // eslint-disable-line
35045 var value = params[i][key]; // eslint-disable-line
35046 if (allowEmpty && !value) {
35048 } else if (typeof value !== 'string') {
35049 throw new Error('invalid abi');
35051 result.push(value);
35058 * Is the string a hex string.
35060 * @method check if string is hex string of specific length
35061 * @param {String} value
35062 * @param {Number} length
35063 * @returns {Boolean} output the string is a hex string
35065 function isHexString(value, length) {
35066 if (typeof value !== 'string' || !value.match(/^
0x[
0-
9A-Fa-f]*$/)) {
35070 if (length && value.length !==
2 +
2 * length) {
35078 arrayContainsArray: arrayContainsArray,
35079 intToBuffer: intToBuffer,
35080 getBinarySize: getBinarySize,
35081 isHexPrefixed: isHexPrefixed,
35082 stripHexPrefix: stripHexPrefix,
35083 padToEven: padToEven,
35084 intToHex: intToHex,
35085 fromAscii: fromAscii,
35086 fromUtf8: fromUtf8,
35090 isHexString: isHexString
35092 }).call(this,require("buffer").Buffer)
35093 },{"buffer":
5,"is-hex-prefixed":
64,"strip-hex-prefix":
87}],
57:[function(require,module,exports){
35094 var hash = exports;
35096 hash.utils = require('./hash/utils');
35097 hash.common = require('./hash/common');
35098 hash.sha = require('./hash/sha');
35099 hash.ripemd = require('./hash/ripemd');
35100 hash.hmac = require('./hash/hmac');
35102 // Proxy hash functions to the main object
35103 hash.sha1 = hash.sha.sha1;
35104 hash.sha256 = hash.sha.sha256;
35105 hash.sha224 = hash.sha.sha224;
35106 hash.sha384 = hash.sha.sha384;
35107 hash.sha512 = hash.sha.sha512;
35108 hash.ripemd160 = hash.ripemd.ripemd160;
35110 },{"./hash/common":
58,"./hash/hmac":
59,"./hash/ripemd":
60,"./hash/sha":
61,"./hash/utils":
62}],
58:[function(require,module,exports){
35111 var hash = require('../hash');
35112 var utils = hash.utils;
35113 var assert = utils.assert;
35115 function BlockHash() {
35116 this.pending = null;
35117 this.pendingTotal =
0;
35118 this.blockSize = this.constructor.blockSize;
35119 this.outSize = this.constructor.outSize;
35120 this.hmacStrength = this.constructor.hmacStrength;
35121 this.padLength = this.constructor.padLength /
8;
35122 this.endian = 'big';
35124 this._delta8 = this.blockSize /
8;
35125 this._delta32 = this.blockSize /
32;
35127 exports.BlockHash = BlockHash;
35129 BlockHash.prototype.update = function update(msg, enc) {
35130 // Convert message to array, pad it, and join into
32bit blocks
35131 msg = utils.toArray(msg, enc);
35133 this.pending = msg;
35135 this.pending = this.pending.concat(msg);
35136 this.pendingTotal += msg.length;
35138 // Enough data, try updating
35139 if (this.pending.length
>= this._delta8) {
35140 msg = this.pending;
35142 // Process pending data in blocks
35143 var r = msg.length % this._delta8;
35144 this.pending = msg.slice(msg.length - r, msg.length);
35145 if (this.pending.length ===
0)
35146 this.pending = null;
35148 msg = utils.join32(msg,
0, msg.length - r, this.endian);
35149 for (var i =
0; i < msg.length; i += this._delta32)
35150 this._update(msg, i, i + this._delta32);
35156 BlockHash.prototype.digest = function digest(enc) {
35157 this.update(this._pad());
35158 assert(this.pending === null);
35160 return this._digest(enc);
35163 BlockHash.prototype._pad = function pad() {
35164 var len = this.pendingTotal;
35165 var bytes = this._delta8;
35166 var k = bytes - ((len + this.padLength) % bytes);
35167 var res = new Array(k + this.padLength);
35169 for (var i =
1; i < k; i++)
35174 if (this.endian === 'big') {
35175 for (var t =
8; t < this.padLength; t++)
35182 res[i++] = (len
>>> 24) &
0xff;
35183 res[i++] = (len
>>> 16) &
0xff;
35184 res[i++] = (len
>>> 8) &
0xff;
35185 res[i++] = len &
0xff;
35187 res[i++] = len &
0xff;
35188 res[i++] = (len
>>> 8) &
0xff;
35189 res[i++] = (len
>>> 16) &
0xff;
35190 res[i++] = (len
>>> 24) &
0xff;
35196 for (var t =
8; t < this.padLength; t++)
35203 },{
"../hash":
57}],
59:[function(require,module,exports){
35204 var hmac = exports;
35206 var hash = require('../hash');
35207 var utils = hash.utils;
35208 var assert = utils.assert;
35210 function Hmac(hash, key, enc) {
35211 if (!(this instanceof Hmac))
35212 return new Hmac(hash, key, enc);
35214 this.blockSize = hash.blockSize /
8;
35215 this.outSize = hash.outSize /
8;
35219 this._init(utils.toArray(key, enc));
35221 module.exports = Hmac;
35223 Hmac.prototype._init = function init(key) {
35224 // Shorten key, if needed
35225 if (key.length
> this.blockSize)
35226 key = new this.Hash().update(key).digest();
35227 assert(key.length <= this.blockSize);
35229 // Add padding to key
35230 for (var i = key.length; i < this.blockSize; i++)
35233 for (var i =
0; i < key.length; i++)
35235 this.inner = new this.Hash().update(key);
35237 //
0x36 ^
0x5c =
0x6a
35238 for (var i =
0; i < key.length; i++)
35240 this.outer = new this.Hash().update(key);
35243 Hmac.prototype.update = function update(msg, enc) {
35244 this.inner.update(msg, enc);
35248 Hmac.prototype.digest = function digest(enc) {
35249 this.outer.update(this.inner.digest());
35250 return this.outer.digest(enc);
35253 },{"../hash":
57}],
60:[function(require,module,exports){
35254 var hash = require('../hash');
35255 var utils = hash.utils;
35257 var rotl32 = utils.rotl32;
35258 var sum32 = utils.sum32;
35259 var sum32_3 = utils.sum32_3;
35260 var sum32_4 = utils.sum32_4;
35261 var BlockHash = hash.common.BlockHash;
35263 function RIPEMD160() {
35264 if (!(this instanceof RIPEMD160))
35265 return new RIPEMD160();
35267 BlockHash.call(this);
35269 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
0x10325476,
0xc3d2e1f0 ];
35270 this.endian = 'little';
35272 utils.inherits(RIPEMD160, BlockHash);
35273 exports.ripemd160 = RIPEMD160;
35275 RIPEMD160.blockSize =
512;
35276 RIPEMD160.outSize =
160;
35277 RIPEMD160.hmacStrength =
192;
35278 RIPEMD160.padLength =
64;
35280 RIPEMD160.prototype._update = function update(msg, start) {
35291 for (var j =
0; j <
80; j++) {
35294 sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
35304 sum32_4(Ah, f(
79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
35309 Dh = rotl32(Ch,
10);
35313 T = sum32_3(this.h[
1], C, Dh);
35314 this.h[
1] = sum32_3(this.h[
2], D, Eh);
35315 this.h[
2] = sum32_3(this.h[
3], E, Ah);
35316 this.h[
3] = sum32_3(this.h[
4], A, Bh);
35317 this.h[
4] = sum32_3(this.h[
0], B, Ch);
35321 RIPEMD160.prototype._digest = function digest(enc) {
35323 return utils.toHex32(this.h, 'little');
35325 return utils.split32(this.h, 'little');
35328 function f(j, x, y, z) {
35332 return (x & y) | ((~x) & z);
35334 return (x | (~y)) ^ z;
35336 return (x & z) | (y & (~z));
35338 return x ^ (y | (~z));
35368 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
35369 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
35370 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
35371 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
35372 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
35376 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
35377 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
35378 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
35379 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
35380 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
35384 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
35385 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
35386 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
35387 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
35388 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
35392 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
35393 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
35394 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
35395 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
35396 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
35399 },{"../hash":
57}],
61:[function(require,module,exports){
35400 var hash = require('../hash');
35401 var utils = hash.utils;
35402 var assert = utils.assert;
35404 var rotr32 = utils.rotr32;
35405 var rotl32 = utils.rotl32;
35406 var sum32 = utils.sum32;
35407 var sum32_4 = utils.sum32_4;
35408 var sum32_5 = utils.sum32_5;
35409 var rotr64_hi = utils.rotr64_hi;
35410 var rotr64_lo = utils.rotr64_lo;
35411 var shr64_hi = utils.shr64_hi;
35412 var shr64_lo = utils.shr64_lo;
35413 var sum64 = utils.sum64;
35414 var sum64_hi = utils.sum64_hi;
35415 var sum64_lo = utils.sum64_lo;
35416 var sum64_4_hi = utils.sum64_4_hi;
35417 var sum64_4_lo = utils.sum64_4_lo;
35418 var sum64_5_hi = utils.sum64_5_hi;
35419 var sum64_5_lo = utils.sum64_5_lo;
35420 var BlockHash = hash.common.BlockHash;
35423 0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
35424 0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
35425 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
35426 0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
35427 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
35428 0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
35429 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
35430 0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
35431 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
35432 0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
35433 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
35434 0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
35435 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
35436 0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
35437 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
35438 0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2
35442 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
35443 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
35444 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
35445 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
35446 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
35447 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
35448 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
35449 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
35450 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
35451 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
35452 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
35453 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
35454 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
35455 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
35456 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
35457 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
35458 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
35459 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
35460 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
35461 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
35462 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
35463 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
35464 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
35465 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
35466 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
35467 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
35468 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
35469 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
35470 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
35471 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
35472 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
35473 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
35474 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
35475 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
35476 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
35477 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
35478 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
35479 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
35480 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
35481 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
35485 0x5A827999,
0x6ED9EBA1,
35486 0x8F1BBCDC,
0xCA62C1D6
35489 function SHA256() {
35490 if (!(this instanceof SHA256))
35491 return new SHA256();
35493 BlockHash.call(this);
35494 this.h = [
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
35495 0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19 ];
35497 this.W = new Array(
64);
35499 utils.inherits(SHA256, BlockHash);
35500 exports.sha256 = SHA256;
35502 SHA256.blockSize =
512;
35503 SHA256.outSize =
256;
35504 SHA256.hmacStrength =
192;
35505 SHA256.padLength =
64;
35507 SHA256.prototype._update = function _update(msg, start) {
35510 for (var i =
0; i <
16; i++)
35511 W[i] = msg[start + i];
35512 for (; i < W.length; i++)
35513 W[i] = sum32_4(g1_256(W[i -
2]), W[i -
7], g0_256(W[i -
15]), W[i -
16]);
35524 assert(this.k.length === W.length);
35525 for (var i =
0; i < W.length; i++) {
35526 var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
35527 var T2 = sum32(s0_256(a), maj32(a, b, c));
35538 this.h[
0] = sum32(this.h[
0], a);
35539 this.h[
1] = sum32(this.h[
1], b);
35540 this.h[
2] = sum32(this.h[
2], c);
35541 this.h[
3] = sum32(this.h[
3], d);
35542 this.h[
4] = sum32(this.h[
4], e);
35543 this.h[
5] = sum32(this.h[
5], f);
35544 this.h[
6] = sum32(this.h[
6], g);
35545 this.h[
7] = sum32(this.h[
7], h);
35548 SHA256.prototype._digest = function digest(enc) {
35550 return utils.toHex32(this.h, 'big');
35552 return utils.split32(this.h, 'big');
35555 function SHA224() {
35556 if (!(this instanceof SHA224))
35557 return new SHA224();
35560 this.h = [
0xc1059ed8,
0x367cd507,
0x3070dd17,
0xf70e5939,
35561 0xffc00b31,
0x68581511,
0x64f98fa7,
0xbefa4fa4 ];
35563 utils.inherits(SHA224, SHA256);
35564 exports.sha224 = SHA224;
35566 SHA224.blockSize =
512;
35567 SHA224.outSize =
224;
35568 SHA224.hmacStrength =
192;
35569 SHA224.padLength =
64;
35571 SHA224.prototype._digest = function digest(enc) {
35572 // Just truncate output
35574 return utils.toHex32(this.h.slice(
0,
7), 'big');
35576 return utils.split32(this.h.slice(
0,
7), 'big');
35579 function SHA512() {
35580 if (!(this instanceof SHA512))
35581 return new SHA512();
35583 BlockHash.call(this);
35584 this.h = [
0x6a09e667,
0xf3bcc908,
35585 0xbb67ae85,
0x84caa73b,
35586 0x3c6ef372,
0xfe94f82b,
35587 0xa54ff53a,
0x5f1d36f1,
35588 0x510e527f,
0xade682d1,
35589 0x9b05688c,
0x2b3e6c1f,
35590 0x1f83d9ab,
0xfb41bd6b,
35591 0x5be0cd19,
0x137e2179 ];
35593 this.W = new Array(
160);
35595 utils.inherits(SHA512, BlockHash);
35596 exports.sha512 = SHA512;
35598 SHA512.blockSize =
1024;
35599 SHA512.outSize =
512;
35600 SHA512.hmacStrength =
192;
35601 SHA512.padLength =
128;
35603 SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
35606 //
32 x
32bit words
35607 for (var i =
0; i <
32; i++)
35608 W[i] = msg[start + i];
35609 for (; i < W.length; i +=
2) {
35610 var c0_hi = g1_512_hi(W[i -
4], W[i -
3]); // i -
2
35611 var c0_lo = g1_512_lo(W[i -
4], W[i -
3]);
35612 var c1_hi = W[i -
14]; // i -
7
35613 var c1_lo = W[i -
13];
35614 var c2_hi = g0_512_hi(W[i -
30], W[i -
29]); // i -
15
35615 var c2_lo = g0_512_lo(W[i -
30], W[i -
29]);
35616 var c3_hi = W[i -
32]; // i -
16
35617 var c3_lo = W[i -
31];
35619 W[i] = sum64_4_hi(c0_hi, c0_lo,
35623 W[i +
1] = sum64_4_lo(c0_hi, c0_lo,
35630 SHA512.prototype._update = function _update(msg, start) {
35631 this._prepareBlock(msg, start);
35635 var ah = this.h[
0];
35636 var al = this.h[
1];
35637 var bh = this.h[
2];
35638 var bl = this.h[
3];
35639 var ch = this.h[
4];
35640 var cl = this.h[
5];
35641 var dh = this.h[
6];
35642 var dl = this.h[
7];
35643 var eh = this.h[
8];
35644 var el = this.h[
9];
35645 var fh = this.h[
10];
35646 var fl = this.h[
11];
35647 var gh = this.h[
12];
35648 var gl = this.h[
13];
35649 var hh = this.h[
14];
35650 var hl = this.h[
15];
35652 assert(this.k.length === W.length);
35653 for (var i =
0; i < W.length; i +=
2) {
35656 var c1_hi = s1_512_hi(eh, el);
35657 var c1_lo = s1_512_lo(eh, el);
35658 var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
35659 var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
35660 var c3_hi = this.k[i];
35661 var c3_lo = this.k[i +
1];
35663 var c4_lo = W[i +
1];
35665 var T1_hi = sum64_5_hi(c0_hi, c0_lo,
35670 var T1_lo = sum64_5_lo(c0_hi, c0_lo,
35676 var c0_hi = s0_512_hi(ah, al);
35677 var c0_lo = s0_512_lo(ah, al);
35678 var c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
35679 var c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
35681 var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
35682 var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
35693 eh = sum64_hi(dh, dl, T1_hi, T1_lo);
35694 el = sum64_lo(dl, dl, T1_hi, T1_lo);
35705 ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
35706 al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
35709 sum64(this.h,
0, ah, al);
35710 sum64(this.h,
2, bh, bl);
35711 sum64(this.h,
4, ch, cl);
35712 sum64(this.h,
6, dh, dl);
35713 sum64(this.h,
8, eh, el);
35714 sum64(this.h,
10, fh, fl);
35715 sum64(this.h,
12, gh, gl);
35716 sum64(this.h,
14, hh, hl);
35719 SHA512.prototype._digest = function digest(enc) {
35721 return utils.toHex32(this.h, 'big');
35723 return utils.split32(this.h, 'big');
35726 function SHA384() {
35727 if (!(this instanceof SHA384))
35728 return new SHA384();
35731 this.h = [
0xcbbb9d5d,
0xc1059ed8,
35732 0x629a292a,
0x367cd507,
35733 0x9159015a,
0x3070dd17,
35734 0x152fecd8,
0xf70e5939,
35735 0x67332667,
0xffc00b31,
35736 0x8eb44a87,
0x68581511,
35737 0xdb0c2e0d,
0x64f98fa7,
35738 0x47b5481d,
0xbefa4fa4 ];
35740 utils.inherits(SHA384, SHA512);
35741 exports.sha384 = SHA384;
35743 SHA384.blockSize =
1024;
35744 SHA384.outSize =
384;
35745 SHA384.hmacStrength =
192;
35746 SHA384.padLength =
128;
35748 SHA384.prototype._digest = function digest(enc) {
35750 return utils.toHex32(this.h.slice(
0,
12), 'big');
35752 return utils.split32(this.h.slice(
0,
12), 'big');
35756 if (!(this instanceof SHA1))
35759 BlockHash.call(this);
35760 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
35761 0x10325476,
0xc3d2e1f0 ];
35762 this.W = new Array(
80);
35765 utils.inherits(SHA1, BlockHash);
35766 exports.sha1 = SHA1;
35768 SHA1.blockSize =
512;
35769 SHA1.outSize =
160;
35770 SHA1.hmacStrength =
80;
35771 SHA1.padLength =
64;
35773 SHA1.prototype._update = function _update(msg, start) {
35776 for (var i =
0; i <
16; i++)
35777 W[i] = msg[start + i];
35779 for(; i < W.length; i++)
35780 W[i] = rotl32(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16],
1);
35788 for (var i =
0; i < W.length; i++) {
35789 var s = ~~(i /
20);
35790 var t = sum32_5(rotl32(a,
5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
35798 this.h[
0] = sum32(this.h[
0], a);
35799 this.h[
1] = sum32(this.h[
1], b);
35800 this.h[
2] = sum32(this.h[
2], c);
35801 this.h[
3] = sum32(this.h[
3], d);
35802 this.h[
4] = sum32(this.h[
4], e);
35805 SHA1.prototype._digest = function digest(enc) {
35807 return utils.toHex32(this.h, 'big');
35809 return utils.split32(this.h, 'big');
35812 function ch32(x, y, z) {
35813 return (x & y) ^ ((~x) & z);
35816 function maj32(x, y, z) {
35817 return (x & y) ^ (x & z) ^ (y & z);
35820 function p32(x, y, z) {
35824 function s0_256(x) {
35825 return rotr32(x,
2) ^ rotr32(x,
13) ^ rotr32(x,
22);
35828 function s1_256(x) {
35829 return rotr32(x,
6) ^ rotr32(x,
11) ^ rotr32(x,
25);
35832 function g0_256(x) {
35833 return rotr32(x,
7) ^ rotr32(x,
18) ^ (x
>>> 3);
35836 function g1_256(x) {
35837 return rotr32(x,
17) ^ rotr32(x,
19) ^ (x
>>> 10);
35840 function ft_1(s, x, y, z) {
35842 return ch32(x, y, z);
35843 if (s ===
1 || s ===
3)
35844 return p32(x, y, z);
35846 return maj32(x, y, z);
35849 function ch64_hi(xh, xl, yh, yl, zh, zl) {
35850 var r = (xh & yh) ^ ((~xh) & zh);
35856 function ch64_lo(xh, xl, yh, yl, zh, zl) {
35857 var r = (xl & yl) ^ ((~xl) & zl);
35863 function maj64_hi(xh, xl, yh, yl, zh, zl) {
35864 var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
35870 function maj64_lo(xh, xl, yh, yl, zh, zl) {
35871 var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
35877 function s0_512_hi(xh, xl) {
35878 var c0_hi = rotr64_hi(xh, xl,
28);
35879 var c1_hi = rotr64_hi(xl, xh,
2); //
34
35880 var c2_hi = rotr64_hi(xl, xh,
7); //
39
35882 var r = c0_hi ^ c1_hi ^ c2_hi;
35888 function s0_512_lo(xh, xl) {
35889 var c0_lo = rotr64_lo(xh, xl,
28);
35890 var c1_lo = rotr64_lo(xl, xh,
2); //
34
35891 var c2_lo = rotr64_lo(xl, xh,
7); //
39
35893 var r = c0_lo ^ c1_lo ^ c2_lo;
35899 function s1_512_hi(xh, xl) {
35900 var c0_hi = rotr64_hi(xh, xl,
14);
35901 var c1_hi = rotr64_hi(xh, xl,
18);
35902 var c2_hi = rotr64_hi(xl, xh,
9); //
41
35904 var r = c0_hi ^ c1_hi ^ c2_hi;
35910 function s1_512_lo(xh, xl) {
35911 var c0_lo = rotr64_lo(xh, xl,
14);
35912 var c1_lo = rotr64_lo(xh, xl,
18);
35913 var c2_lo = rotr64_lo(xl, xh,
9); //
41
35915 var r = c0_lo ^ c1_lo ^ c2_lo;
35921 function g0_512_hi(xh, xl) {
35922 var c0_hi = rotr64_hi(xh, xl,
1);
35923 var c1_hi = rotr64_hi(xh, xl,
8);
35924 var c2_hi = shr64_hi(xh, xl,
7);
35926 var r = c0_hi ^ c1_hi ^ c2_hi;
35932 function g0_512_lo(xh, xl) {
35933 var c0_lo = rotr64_lo(xh, xl,
1);
35934 var c1_lo = rotr64_lo(xh, xl,
8);
35935 var c2_lo = shr64_lo(xh, xl,
7);
35937 var r = c0_lo ^ c1_lo ^ c2_lo;
35943 function g1_512_hi(xh, xl) {
35944 var c0_hi = rotr64_hi(xh, xl,
19);
35945 var c1_hi = rotr64_hi(xl, xh,
29); //
61
35946 var c2_hi = shr64_hi(xh, xl,
6);
35948 var r = c0_hi ^ c1_hi ^ c2_hi;
35954 function g1_512_lo(xh, xl) {
35955 var c0_lo = rotr64_lo(xh, xl,
19);
35956 var c1_lo = rotr64_lo(xl, xh,
29); //
61
35957 var c2_lo = shr64_lo(xh, xl,
6);
35959 var r = c0_lo ^ c1_lo ^ c2_lo;
35965 },{
"../hash":
57}],
62:[function(require,module,exports){
35966 var utils = exports;
35967 var inherits = require('inherits');
35969 function toArray(msg, enc) {
35970 if (Array.isArray(msg))
35971 return msg.slice();
35975 if (typeof msg === 'string') {
35977 for (var i =
0; i < msg.length; i++) {
35978 var c = msg.charCodeAt(i);
35986 } else if (enc === 'hex') {
35987 msg = msg.replace(/[^a-z0-
9]+/ig, '');
35988 if (msg.length %
2 !==
0)
35990 for (var i =
0; i < msg.length; i +=
2)
35991 res.push(parseInt(msg[i] + msg[i +
1],
16));
35994 for (var i =
0; i < msg.length; i++)
35995 res[i] = msg[i] |
0;
35999 utils.toArray = toArray;
36001 function toHex(msg) {
36003 for (var i =
0; i < msg.length; i++)
36004 res += zero2(msg[i].toString(
16));
36007 utils.toHex = toHex;
36009 function htonl(w) {
36010 var res = (w
>>> 24) |
36011 ((w
>>> 8) &
0xff00) |
36012 ((w <<
8) &
0xff0000) |
36013 ((w &
0xff) <<
24);
36016 utils.htonl = htonl;
36018 function toHex32(msg, endian) {
36020 for (var i =
0; i < msg.length; i++) {
36022 if (endian === 'little')
36024 res += zero8(w.toString(
16));
36028 utils.toHex32 = toHex32;
36030 function zero2(word) {
36031 if (word.length ===
1)
36036 utils.zero2 = zero2;
36038 function zero8(word) {
36039 if (word.length ===
7)
36041 else if (word.length ===
6)
36042 return '
00' + word;
36043 else if (word.length ===
5)
36044 return '
000' + word;
36045 else if (word.length ===
4)
36046 return '
0000' + word;
36047 else if (word.length ===
3)
36048 return '
00000' + word;
36049 else if (word.length ===
2)
36050 return '
000000' + word;
36051 else if (word.length ===
1)
36052 return '
0000000' + word;
36056 utils.zero8 = zero8;
36058 function join32(msg, start, end, endian) {
36059 var len = end - start;
36060 assert(len %
4 ===
0);
36061 var res = new Array(len /
4);
36062 for (var i =
0, k = start; i < res.length; i++, k +=
4) {
36064 if (endian === 'big')
36065 w = (msg[k] <<
24) | (msg[k +
1] <<
16) | (msg[k +
2] <<
8) | msg[k +
3];
36067 w = (msg[k +
3] <<
24) | (msg[k +
2] <<
16) | (msg[k +
1] <<
8) | msg[k];
36072 utils.join32 = join32;
36074 function split32(msg, endian) {
36075 var res = new Array(msg.length *
4);
36076 for (var i =
0, k =
0; i < msg.length; i++, k +=
4) {
36078 if (endian === 'big') {
36080 res[k +
1] = (m
>>> 16) &
0xff;
36081 res[k +
2] = (m
>>> 8) &
0xff;
36082 res[k +
3] = m &
0xff;
36084 res[k +
3] = m
>>> 24;
36085 res[k +
2] = (m
>>> 16) &
0xff;
36086 res[k +
1] = (m
>>> 8) &
0xff;
36092 utils.split32 = split32;
36094 function rotr32(w, b) {
36095 return (w
>>> b) | (w << (
32 - b));
36097 utils.rotr32 = rotr32;
36099 function rotl32(w, b) {
36100 return (w << b) | (w
>>> (
32 - b));
36102 utils.rotl32 = rotl32;
36104 function sum32(a, b) {
36105 return (a + b)
>>> 0;
36107 utils.sum32 = sum32;
36109 function sum32_3(a, b, c) {
36110 return (a + b + c)
>>> 0;
36112 utils.sum32_3 = sum32_3;
36114 function sum32_4(a, b, c, d) {
36115 return (a + b + c + d)
>>> 0;
36117 utils.sum32_4 = sum32_4;
36119 function sum32_5(a, b, c, d, e) {
36120 return (a + b + c + d + e)
>>> 0;
36122 utils.sum32_5 = sum32_5;
36124 function assert(cond, msg) {
36126 throw new Error(msg || 'Assertion failed');
36128 utils.assert = assert;
36130 utils.inherits = inherits;
36132 function sum64(buf, pos, ah, al) {
36134 var bl = buf[pos +
1];
36136 var lo = (al + bl)
>>> 0;
36137 var hi = (lo < al ?
1 :
0) + ah + bh;
36138 buf[pos] = hi
>>> 0;
36141 exports.sum64 = sum64;
36143 function sum64_hi(ah, al, bh, bl) {
36144 var lo = (al + bl)
>>> 0;
36145 var hi = (lo < al ?
1 :
0) + ah + bh;
36148 exports.sum64_hi = sum64_hi;
36150 function sum64_lo(ah, al, bh, bl) {
36154 exports.sum64_lo = sum64_lo;
36156 function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
36159 lo = (lo + bl)
>>> 0;
36160 carry += lo < al ?
1 :
0;
36161 lo = (lo + cl)
>>> 0;
36162 carry += lo < cl ?
1 :
0;
36163 lo = (lo + dl)
>>> 0;
36164 carry += lo < dl ?
1 :
0;
36166 var hi = ah + bh + ch + dh + carry;
36169 exports.sum64_4_hi = sum64_4_hi;
36171 function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
36172 var lo = al + bl + cl + dl;
36175 exports.sum64_4_lo = sum64_4_lo;
36177 function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
36180 lo = (lo + bl)
>>> 0;
36181 carry += lo < al ?
1 :
0;
36182 lo = (lo + cl)
>>> 0;
36183 carry += lo < cl ?
1 :
0;
36184 lo = (lo + dl)
>>> 0;
36185 carry += lo < dl ?
1 :
0;
36186 lo = (lo + el)
>>> 0;
36187 carry += lo < el ?
1 :
0;
36189 var hi = ah + bh + ch + dh + eh + carry;
36192 exports.sum64_5_hi = sum64_5_hi;
36194 function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
36195 var lo = al + bl + cl + dl + el;
36199 exports.sum64_5_lo = sum64_5_lo;
36201 function rotr64_hi(ah, al, num) {
36202 var r = (al << (
32 - num)) | (ah
>>> num);
36205 exports.rotr64_hi = rotr64_hi;
36207 function rotr64_lo(ah, al, num) {
36208 var r = (ah << (
32 - num)) | (al
>>> num);
36211 exports.rotr64_lo = rotr64_lo;
36213 function shr64_hi(ah, al, num) {
36216 exports.shr64_hi = shr64_hi;
36218 function shr64_lo(ah, al, num) {
36219 var r = (ah << (
32 - num)) | (al
>>> num);
36222 exports.shr64_lo = shr64_lo;
36224 },{
"inherits":
63}],
63:[function(require,module,exports){
36225 arguments[
4][
9][
0].apply(exports,arguments)
36226 },{
"dup":
9}],
64:[function(require,module,exports){
36228 * Returns a `Boolean` on whether or not the a `String` starts with '
0x'
36229 * @param {String} str the string input value
36230 * @return {Boolean} a boolean if it is or is not hex prefixed
36231 * @throws if the str input is not a string
36233 module.exports = function isHexPrefixed(str) {
36234 if (typeof str !== 'string') {
36235 throw new Error(
"[is-hex-prefixed] value must be type 'string', is currently type " + (typeof str) +
", while checking isHexPrefixed.");
36238 return str.slice(
0,
2) === '
0x';
36241 },{}],
65:[function(require,module,exports){
36243 module.exports = require('./lib/api')(require('./lib/keccak'))
36245 },{
"./lib/api":
66,
"./lib/keccak":
70}],
66:[function(require,module,exports){
36247 var createKeccak = require('./keccak')
36248 var createShake = require('./shake')
36250 module.exports = function (KeccakState) {
36251 var Keccak = createKeccak(KeccakState)
36252 var Shake = createShake(KeccakState)
36254 return function (algorithm, options) {
36255 var hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm
36257 case 'keccak224': return new Keccak(
1152,
448, null,
224, options)
36258 case 'keccak256': return new Keccak(
1088,
512, null,
256, options)
36259 case 'keccak384': return new Keccak(
832,
768, null,
384, options)
36260 case 'keccak512': return new Keccak(
576,
1024, null,
512, options)
36262 case 'sha3-
224': return new Keccak(
1152,
448,
0x06,
224, options)
36263 case 'sha3-
256': return new Keccak(
1088,
512,
0x06,
256, options)
36264 case 'sha3-
384': return new Keccak(
832,
768,
0x06,
384, options)
36265 case 'sha3-
512': return new Keccak(
576,
1024,
0x06,
512, options)
36267 case 'shake128': return new Shake(
1344,
256,
0x1f, options)
36268 case 'shake256': return new Shake(
1088,
512,
0x1f, options)
36270 default: throw new Error('Invald algorithm: ' + algorithm)
36275 },{
"./keccak":
67,
"./shake":
68}],
67:[function(require,module,exports){
36276 (function (Buffer){
36278 var Transform = require('stream').Transform
36279 var inherits = require('inherits')
36281 module.exports = function (KeccakState) {
36282 function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
36283 Transform.call(this, options)
36286 this._capacity = capacity
36287 this._delimitedSuffix = delimitedSuffix
36288 this._hashBitLength = hashBitLength
36289 this._options = options
36291 this._state = new KeccakState()
36292 this._state.initialize(rate, capacity)
36293 this._finalized = false
36296 inherits(Keccak, Transform)
36298 Keccak.prototype._transform = function (chunk, encoding, callback) {
36301 this.update(chunk, encoding)
36309 Keccak.prototype._flush = function (callback) {
36312 this.push(this.digest())
36320 Keccak.prototype.update = function (data, encoding) {
36321 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
36322 if (this._finalized) throw new Error('Digest already called')
36323 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
36325 this._state.absorb(data)
36330 Keccak.prototype.digest = function (encoding) {
36331 if (this._finalized) throw new Error('Digest already called')
36332 this._finalized = true
36334 if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)
36335 var digest = this._state.squeeze(this._hashBitLength /
8)
36336 if (encoding !== undefined) digest = digest.toString(encoding)
36343 // remove result from memory
36344 Keccak.prototype._resetState = function () {
36345 this._state.initialize(this._rate, this._capacity)
36349 // because sometimes we need hash right now and little later
36350 Keccak.prototype._clone = function () {
36351 var clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)
36352 this._state.copy(clone._state)
36353 clone._finalized = this._finalized
36361 }).call(this,require(
"buffer").Buffer)
36362 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
68:[function(require,module,exports){
36363 (function (Buffer){
36365 var Transform = require('stream').Transform
36366 var inherits = require('inherits')
36368 module.exports = function (KeccakState) {
36369 function Shake (rate, capacity, delimitedSuffix, options) {
36370 Transform.call(this, options)
36373 this._capacity = capacity
36374 this._delimitedSuffix = delimitedSuffix
36375 this._options = options
36377 this._state = new KeccakState()
36378 this._state.initialize(rate, capacity)
36379 this._finalized = false
36382 inherits(Shake, Transform)
36384 Shake.prototype._transform = function (chunk, encoding, callback) {
36387 this.update(chunk, encoding)
36395 Shake.prototype._flush = function () {}
36397 Shake.prototype._read = function (size) {
36398 this.push(this.squeeze(size))
36401 Shake.prototype.update = function (data, encoding) {
36402 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
36403 if (this._finalized) throw new Error('Squeeze already called')
36404 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
36406 this._state.absorb(data)
36411 Shake.prototype.squeeze = function (dataByteLength, encoding) {
36412 if (!this._finalized) {
36413 this._finalized = true
36414 this._state.absorbLastFewBits(this._delimitedSuffix)
36417 var data = this._state.squeeze(dataByteLength)
36418 if (encoding !== undefined) data = data.toString(encoding)
36423 Shake.prototype._resetState = function () {
36424 this._state.initialize(this._rate, this._capacity)
36428 Shake.prototype._clone = function () {
36429 var clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)
36430 this._state.copy(clone._state)
36431 clone._finalized = this._finalized
36439 }).call(this,require(
"buffer").Buffer)
36440 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
69:[function(require,module,exports){
36442 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]
36444 exports.p1600 = function (s) {
36445 for (var round =
0; round <
24; ++round) {
36447 var lo0 = s[
0] ^ s[
10] ^ s[
20] ^ s[
30] ^ s[
40]
36448 var hi0 = s[
1] ^ s[
11] ^ s[
21] ^ s[
31] ^ s[
41]
36449 var lo1 = s[
2] ^ s[
12] ^ s[
22] ^ s[
32] ^ s[
42]
36450 var hi1 = s[
3] ^ s[
13] ^ s[
23] ^ s[
33] ^ s[
43]
36451 var lo2 = s[
4] ^ s[
14] ^ s[
24] ^ s[
34] ^ s[
44]
36452 var hi2 = s[
5] ^ s[
15] ^ s[
25] ^ s[
35] ^ s[
45]
36453 var lo3 = s[
6] ^ s[
16] ^ s[
26] ^ s[
36] ^ s[
46]
36454 var hi3 = s[
7] ^ s[
17] ^ s[
27] ^ s[
37] ^ s[
47]
36455 var lo4 = s[
8] ^ s[
18] ^ s[
28] ^ s[
38] ^ s[
48]
36456 var hi4 = s[
9] ^ s[
19] ^ s[
29] ^ s[
39] ^ s[
49]
36458 var lo = lo4 ^ (lo1 <<
1 | hi1
>>> 31)
36459 var hi = hi4 ^ (hi1 <<
1 | lo1
>>> 31)
36460 var t1slo0 = s[
0] ^ lo
36461 var t1shi0 = s[
1] ^ hi
36462 var t1slo5 = s[
10] ^ lo
36463 var t1shi5 = s[
11] ^ hi
36464 var t1slo10 = s[
20] ^ lo
36465 var t1shi10 = s[
21] ^ hi
36466 var t1slo15 = s[
30] ^ lo
36467 var t1shi15 = s[
31] ^ hi
36468 var t1slo20 = s[
40] ^ lo
36469 var t1shi20 = s[
41] ^ hi
36470 lo = lo0 ^ (lo2 <<
1 | hi2
>>> 31)
36471 hi = hi0 ^ (hi2 <<
1 | lo2
>>> 31)
36472 var t1slo1 = s[
2] ^ lo
36473 var t1shi1 = s[
3] ^ hi
36474 var t1slo6 = s[
12] ^ lo
36475 var t1shi6 = s[
13] ^ hi
36476 var t1slo11 = s[
22] ^ lo
36477 var t1shi11 = s[
23] ^ hi
36478 var t1slo16 = s[
32] ^ lo
36479 var t1shi16 = s[
33] ^ hi
36480 var t1slo21 = s[
42] ^ lo
36481 var t1shi21 = s[
43] ^ hi
36482 lo = lo1 ^ (lo3 <<
1 | hi3
>>> 31)
36483 hi = hi1 ^ (hi3 <<
1 | lo3
>>> 31)
36484 var t1slo2 = s[
4] ^ lo
36485 var t1shi2 = s[
5] ^ hi
36486 var t1slo7 = s[
14] ^ lo
36487 var t1shi7 = s[
15] ^ hi
36488 var t1slo12 = s[
24] ^ lo
36489 var t1shi12 = s[
25] ^ hi
36490 var t1slo17 = s[
34] ^ lo
36491 var t1shi17 = s[
35] ^ hi
36492 var t1slo22 = s[
44] ^ lo
36493 var t1shi22 = s[
45] ^ hi
36494 lo = lo2 ^ (lo4 <<
1 | hi4
>>> 31)
36495 hi = hi2 ^ (hi4 <<
1 | lo4
>>> 31)
36496 var t1slo3 = s[
6] ^ lo
36497 var t1shi3 = s[
7] ^ hi
36498 var t1slo8 = s[
16] ^ lo
36499 var t1shi8 = s[
17] ^ hi
36500 var t1slo13 = s[
26] ^ lo
36501 var t1shi13 = s[
27] ^ hi
36502 var t1slo18 = s[
36] ^ lo
36503 var t1shi18 = s[
37] ^ hi
36504 var t1slo23 = s[
46] ^ lo
36505 var t1shi23 = s[
47] ^ hi
36506 lo = lo3 ^ (lo0 <<
1 | hi0
>>> 31)
36507 hi = hi3 ^ (hi0 <<
1 | lo0
>>> 31)
36508 var t1slo4 = s[
8] ^ lo
36509 var t1shi4 = s[
9] ^ hi
36510 var t1slo9 = s[
18] ^ lo
36511 var t1shi9 = s[
19] ^ hi
36512 var t1slo14 = s[
28] ^ lo
36513 var t1shi14 = s[
29] ^ hi
36514 var t1slo19 = s[
38] ^ lo
36515 var t1shi19 = s[
39] ^ hi
36516 var t1slo24 = s[
48] ^ lo
36517 var t1shi24 = s[
49] ^ hi
36520 var t2slo0 = t1slo0
36521 var t2shi0 = t1shi0
36522 var t2slo16 = (t1shi5 <<
4 | t1slo5
>>> 28)
36523 var t2shi16 = (t1slo5 <<
4 | t1shi5
>>> 28)
36524 var t2slo7 = (t1slo10 <<
3 | t1shi10
>>> 29)
36525 var t2shi7 = (t1shi10 <<
3 | t1slo10
>>> 29)
36526 var t2slo23 = (t1shi15 <<
9 | t1slo15
>>> 23)
36527 var t2shi23 = (t1slo15 <<
9 | t1shi15
>>> 23)
36528 var t2slo14 = (t1slo20 <<
18 | t1shi20
>>> 14)
36529 var t2shi14 = (t1shi20 <<
18 | t1slo20
>>> 14)
36530 var t2slo10 = (t1slo1 <<
1 | t1shi1
>>> 31)
36531 var t2shi10 = (t1shi1 <<
1 | t1slo1
>>> 31)
36532 var t2slo1 = (t1shi6 <<
12 | t1slo6
>>> 20)
36533 var t2shi1 = (t1slo6 <<
12 | t1shi6
>>> 20)
36534 var t2slo17 = (t1slo11 <<
10 | t1shi11
>>> 22)
36535 var t2shi17 = (t1shi11 <<
10 | t1slo11
>>> 22)
36536 var t2slo8 = (t1shi16 <<
13 | t1slo16
>>> 19)
36537 var t2shi8 = (t1slo16 <<
13 | t1shi16
>>> 19)
36538 var t2slo24 = (t1slo21 <<
2 | t1shi21
>>> 30)
36539 var t2shi24 = (t1shi21 <<
2 | t1slo21
>>> 30)
36540 var t2slo20 = (t1shi2 <<
30 | t1slo2
>>> 2)
36541 var t2shi20 = (t1slo2 <<
30 | t1shi2
>>> 2)
36542 var t2slo11 = (t1slo7 <<
6 | t1shi7
>>> 26)
36543 var t2shi11 = (t1shi7 <<
6 | t1slo7
>>> 26)
36544 var t2slo2 = (t1shi12 <<
11 | t1slo12
>>> 21)
36545 var t2shi2 = (t1slo12 <<
11 | t1shi12
>>> 21)
36546 var t2slo18 = (t1slo17 <<
15 | t1shi17
>>> 17)
36547 var t2shi18 = (t1shi17 <<
15 | t1slo17
>>> 17)
36548 var t2slo9 = (t1shi22 <<
29 | t1slo22
>>> 3)
36549 var t2shi9 = (t1slo22 <<
29 | t1shi22
>>> 3)
36550 var t2slo5 = (t1slo3 <<
28 | t1shi3
>>> 4)
36551 var t2shi5 = (t1shi3 <<
28 | t1slo3
>>> 4)
36552 var t2slo21 = (t1shi8 <<
23 | t1slo8
>>> 9)
36553 var t2shi21 = (t1slo8 <<
23 | t1shi8
>>> 9)
36554 var t2slo12 = (t1slo13 <<
25 | t1shi13
>>> 7)
36555 var t2shi12 = (t1shi13 <<
25 | t1slo13
>>> 7)
36556 var t2slo3 = (t1slo18 <<
21 | t1shi18
>>> 11)
36557 var t2shi3 = (t1shi18 <<
21 | t1slo18
>>> 11)
36558 var t2slo19 = (t1shi23 <<
24 | t1slo23
>>> 8)
36559 var t2shi19 = (t1slo23 <<
24 | t1shi23
>>> 8)
36560 var t2slo15 = (t1slo4 <<
27 | t1shi4
>>> 5)
36561 var t2shi15 = (t1shi4 <<
27 | t1slo4
>>> 5)
36562 var t2slo6 = (t1slo9 <<
20 | t1shi9
>>> 12)
36563 var t2shi6 = (t1shi9 <<
20 | t1slo9
>>> 12)
36564 var t2slo22 = (t1shi14 <<
7 | t1slo14
>>> 25)
36565 var t2shi22 = (t1slo14 <<
7 | t1shi14
>>> 25)
36566 var t2slo13 = (t1slo19 <<
8 | t1shi19
>>> 24)
36567 var t2shi13 = (t1shi19 <<
8 | t1slo19
>>> 24)
36568 var t2slo4 = (t1slo24 <<
14 | t1shi24
>>> 18)
36569 var t2shi4 = (t1shi24 <<
14 | t1slo24
>>> 18)
36572 s[
0] = t2slo0 ^ (~t2slo1 & t2slo2)
36573 s[
1] = t2shi0 ^ (~t2shi1 & t2shi2)
36574 s[
10] = t2slo5 ^ (~t2slo6 & t2slo7)
36575 s[
11] = t2shi5 ^ (~t2shi6 & t2shi7)
36576 s[
20] = t2slo10 ^ (~t2slo11 & t2slo12)
36577 s[
21] = t2shi10 ^ (~t2shi11 & t2shi12)
36578 s[
30] = t2slo15 ^ (~t2slo16 & t2slo17)
36579 s[
31] = t2shi15 ^ (~t2shi16 & t2shi17)
36580 s[
40] = t2slo20 ^ (~t2slo21 & t2slo22)
36581 s[
41] = t2shi20 ^ (~t2shi21 & t2shi22)
36582 s[
2] = t2slo1 ^ (~t2slo2 & t2slo3)
36583 s[
3] = t2shi1 ^ (~t2shi2 & t2shi3)
36584 s[
12] = t2slo6 ^ (~t2slo7 & t2slo8)
36585 s[
13] = t2shi6 ^ (~t2shi7 & t2shi8)
36586 s[
22] = t2slo11 ^ (~t2slo12 & t2slo13)
36587 s[
23] = t2shi11 ^ (~t2shi12 & t2shi13)
36588 s[
32] = t2slo16 ^ (~t2slo17 & t2slo18)
36589 s[
33] = t2shi16 ^ (~t2shi17 & t2shi18)
36590 s[
42] = t2slo21 ^ (~t2slo22 & t2slo23)
36591 s[
43] = t2shi21 ^ (~t2shi22 & t2shi23)
36592 s[
4] = t2slo2 ^ (~t2slo3 & t2slo4)
36593 s[
5] = t2shi2 ^ (~t2shi3 & t2shi4)
36594 s[
14] = t2slo7 ^ (~t2slo8 & t2slo9)
36595 s[
15] = t2shi7 ^ (~t2shi8 & t2shi9)
36596 s[
24] = t2slo12 ^ (~t2slo13 & t2slo14)
36597 s[
25] = t2shi12 ^ (~t2shi13 & t2shi14)
36598 s[
34] = t2slo17 ^ (~t2slo18 & t2slo19)
36599 s[
35] = t2shi17 ^ (~t2shi18 & t2shi19)
36600 s[
44] = t2slo22 ^ (~t2slo23 & t2slo24)
36601 s[
45] = t2shi22 ^ (~t2shi23 & t2shi24)
36602 s[
6] = t2slo3 ^ (~t2slo4 & t2slo0)
36603 s[
7] = t2shi3 ^ (~t2shi4 & t2shi0)
36604 s[
16] = t2slo8 ^ (~t2slo9 & t2slo5)
36605 s[
17] = t2shi8 ^ (~t2shi9 & t2shi5)
36606 s[
26] = t2slo13 ^ (~t2slo14 & t2slo10)
36607 s[
27] = t2shi13 ^ (~t2shi14 & t2shi10)
36608 s[
36] = t2slo18 ^ (~t2slo19 & t2slo15)
36609 s[
37] = t2shi18 ^ (~t2shi19 & t2shi15)
36610 s[
46] = t2slo23 ^ (~t2slo24 & t2slo20)
36611 s[
47] = t2shi23 ^ (~t2shi24 & t2shi20)
36612 s[
8] = t2slo4 ^ (~t2slo0 & t2slo1)
36613 s[
9] = t2shi4 ^ (~t2shi0 & t2shi1)
36614 s[
18] = t2slo9 ^ (~t2slo5 & t2slo6)
36615 s[
19] = t2shi9 ^ (~t2shi5 & t2shi6)
36616 s[
28] = t2slo14 ^ (~t2slo10 & t2slo11)
36617 s[
29] = t2shi14 ^ (~t2shi10 & t2shi11)
36618 s[
38] = t2slo19 ^ (~t2slo15 & t2slo16)
36619 s[
39] = t2shi19 ^ (~t2shi15 & t2shi16)
36620 s[
48] = t2slo24 ^ (~t2slo20 & t2slo21)
36621 s[
49] = t2shi24 ^ (~t2shi20 & t2shi21)
36624 s[
0] ^= P1600_ROUND_CONSTANTS[round *
2]
36625 s[
1] ^= P1600_ROUND_CONSTANTS[round *
2 +
1]
36629 },{}],
70:[function(require,module,exports){
36630 (function (Buffer){
36632 var keccakState = require('./keccak-state-unroll')
36634 function Keccak () {
36635 // much faster than `new Array(
50)`
36644 this.blockSize = null
36646 this.squeezing = false
36649 Keccak.prototype.initialize = function (rate, capacity) {
36650 for (var i =
0; i <
50; ++i) this.state[i] =
0
36651 this.blockSize = rate /
8
36653 this.squeezing = false
36656 Keccak.prototype.absorb = function (data) {
36657 for (var i =
0; i < data.length; ++i) {
36658 this.state[~~(this.count /
4)] ^= data[i] << (
8 * (this.count %
4))
36660 if (this.count === this.blockSize) {
36661 keccakState.p1600(this.state)
36667 Keccak.prototype.absorbLastFewBits = function (bits) {
36668 this.state[~~(this.count /
4)] ^= bits << (
8 * (this.count %
4))
36669 if ((bits &
0x80) !==
0 && this.count === (this.blockSize -
1)) keccakState.p1600(this.state)
36670 this.state[~~((this.blockSize -
1) /
4)] ^=
0x80 << (
8 * ((this.blockSize -
1) %
4))
36671 keccakState.p1600(this.state)
36673 this.squeezing = true
36676 Keccak.prototype.squeeze = function (length) {
36677 if (!this.squeezing) this.absorbLastFewBits(
0x01)
36679 var output = Buffer.allocUnsafe(length)
36680 for (var i =
0; i < length; ++i) {
36681 output[i] = (this.state[~~(this.count /
4)]
>>> (
8 * (this.count %
4))) &
0xff
36683 if (this.count === this.blockSize) {
36684 keccakState.p1600(this.state)
36692 Keccak.prototype.copy = function (dest) {
36693 for (var i =
0; i <
50; ++i) dest.state[i] = this.state[i]
36694 dest.blockSize = this.blockSize
36695 dest.count = this.count
36696 dest.squeezing = this.squeezing
36699 module.exports = Keccak
36701 }).call(this,require("buffer").Buffer)
36702 },{"./keccak-state-unroll":
69,"buffer":
5}],
71:[function(require,module,exports){
36703 (function (Buffer){
36706 code.google.com/p/crypto-js
36707 (c)
2009-
2013 by Jeff Mott. All rights reserved.
36708 code.google.com/p/crypto-js/wiki/License
36711 (c)
2012 by Cédric Mesnil. All rights reserved.
36713 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
36715 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
36716 - 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.
36718 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.
36723 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
36724 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
36725 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
36726 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
36727 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
36731 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
36732 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
36733 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
36734 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
36735 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
36739 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
36740 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
36741 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
36742 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
36743 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
36747 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
36748 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
36749 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
36750 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
36751 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
36754 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
36755 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
36757 function bytesToWords (bytes) {
36759 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
36760 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
36765 function wordsToBytes (words) {
36767 for (var b =
0; b < words.length *
32; b +=
8) {
36768 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
36773 function processBlock (H, M, offset) {
36775 for (var i =
0; i <
16; i++) {
36776 var offset_i = offset + i
36777 var M_offset_i = M[offset_i]
36781 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
36782 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
36786 // Working variables
36787 var al, bl, cl, dl, el
36788 var ar, br, cr, dr, er
36798 for (i =
0; i <
80; i +=
1) {
36799 t = (al + M[offset + zl[i]]) |
0
36801 t += f1(bl, cl, dl) + hl[
0]
36802 } else if (i <
32) {
36803 t += f2(bl, cl, dl) + hl[
1]
36804 } else if (i <
48) {
36805 t += f3(bl, cl, dl) + hl[
2]
36806 } else if (i <
64) {
36807 t += f4(bl, cl, dl) + hl[
3]
36808 } else {// if (i
<80) {
36809 t += f5(bl, cl, dl) + hl[
4]
36820 t = (ar + M[offset + zr[i]]) |
0
36822 t += f5(br, cr, dr) + hr[
0]
36823 } else if (i <
32) {
36824 t += f4(br, cr, dr) + hr[
1]
36825 } else if (i <
48) {
36826 t += f3(br, cr, dr) + hr[
2]
36827 } else if (i <
64) {
36828 t += f2(br, cr, dr) + hr[
3]
36829 } else {// if (i
<80) {
36830 t += f1(br, cr, dr) + hr[
4]
36843 // intermediate hash value
36844 t = (H[
1] + cl + dr) |
0
36845 H[
1] = (H[
2] + dl + er) |
0
36846 H[
2] = (H[
3] + el + ar) |
0
36847 H[
3] = (H[
4] + al + br) |
0
36848 H[
4] = (H[
0] + bl + cr) |
0
36852 function f1 (x, y, z) {
36853 return ((x) ^ (y) ^ (z))
36856 function f2 (x, y, z) {
36857 return (((x) & (y)) | ((~x) & (z)))
36860 function f3 (x, y, z) {
36861 return (((x) | (~(y))) ^ (z))
36864 function f4 (x, y, z) {
36865 return (((x) & (z)) | ((y) & (~(z))))
36868 function f5 (x, y, z) {
36869 return ((x) ^ ((y) | (~(z))))
36872 function rotl (x, n) {
36873 return (x << n) | (x
>>> (
32 - n))
36876 function ripemd160 (message) {
36877 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
36879 if (typeof message === 'string') {
36880 message = new Buffer(message, 'utf8')
36883 var m = bytesToWords(message)
36885 var nBitsLeft = message.length *
8
36886 var nBitsTotal = message.length *
8
36889 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
36890 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
36891 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
36892 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
36895 for (var i =
0; i < m.length; i +=
16) {
36896 processBlock(H, m, i)
36900 for (i =
0; i <
5; i++) {
36905 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
36906 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
36909 var digestbytes = wordsToBytes(H)
36910 return new Buffer(digestbytes)
36913 module.exports = ripemd160
36915 }).call(this,require(
"buffer").Buffer)
36916 },{
"buffer":
5}],
72:[function(require,module,exports){
36917 (function (Buffer){
36918 const assert = require('assert')
36920 * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP
36921 * This function takes in a data, convert it to buffer if not, and a length for recursion
36923 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
36924 * @returns {Buffer} - returns buffer of encoded data
36926 exports.encode = function (input) {
36927 if (input instanceof Array) {
36929 for (var i =
0; i < input.length; i++) {
36930 output.push(exports.encode(input[i]))
36932 var buf = Buffer.concat(output)
36933 return Buffer.concat([encodeLength(buf.length,
192), buf])
36935 input = toBuffer(input)
36936 if (input.length ===
1 && input[
0] <
128) {
36939 return Buffer.concat([encodeLength(input.length,
128), input])
36944 function safeParseInt (v, base) {
36945 if (v.slice(
0,
2) === '
00') {
36946 throw (new Error('invalid RLP: extra zeros'))
36949 return parseInt(v, base)
36952 function encodeLength (len, offset) {
36954 return new Buffer([len + offset])
36956 var hexLength = intToHex(len)
36957 var lLength = hexLength.length /
2
36958 var firstByte = intToHex(offset +
55 + lLength)
36959 return new Buffer(firstByte + hexLength, 'hex')
36964 * RLP Decoding based on: {@link https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP|RLP}
36965 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
36966 * @returns {Array} - returns decode Array of Buffers containg the original message
36968 exports.decode = function (input, stream) {
36969 if (!input || input.length ===
0) {
36970 return new Buffer([])
36973 input = toBuffer(input)
36974 var decoded = _decode(input)
36980 assert.equal(decoded.remainder.length,
0, 'invalid remainder')
36981 return decoded.data
36984 exports.getLength = function (input) {
36985 if (!input || input.length ===
0) {
36986 return new Buffer([])
36989 input = toBuffer(input)
36990 var firstByte = input[
0]
36991 if (firstByte <=
0x7f) {
36992 return input.length
36993 } else if (firstByte <=
0xb7) {
36994 return firstByte -
0x7f
36995 } else if (firstByte <=
0xbf) {
36996 return firstByte -
0xb6
36997 } else if (firstByte <=
0xf7) {
36998 // a list between
0-
55 bytes long
36999 return firstByte -
0xbf
37001 // a list over
55 bytes long
37002 var llength = firstByte -
0xf6
37003 var length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
37004 return llength + length
37008 function _decode (input) {
37009 var length, llength, data, innerRemainder, d
37011 var firstByte = input[
0]
37013 if (firstByte <=
0x7f) {
37014 // a single byte whose value is in the [
0x00,
0x7f] range, that byte is its own RLP encoding.
37016 data: input.slice(
0,
1),
37017 remainder: input.slice(
1)
37019 } else if (firstByte <=
0xb7) {
37020 // string is
0-
55 bytes long. A single byte with value
0x80 plus the length of the string followed by the string
37021 // The range of the first byte is [
0x80,
0xb7]
37022 length = firstByte -
0x7f
37024 // set
0x80 null to
0
37025 if (firstByte ===
0x80) {
37026 data = new Buffer([])
37028 data = input.slice(
1, length)
37031 if (length ===
2 && data[
0] <
0x80) {
37032 throw new Error('invalid rlp encoding: byte must be less
0x80')
37037 remainder: input.slice(length)
37039 } else if (firstByte <=
0xbf) {
37040 llength = firstByte -
0xb6
37041 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
37042 data = input.slice(llength, length + llength)
37043 if (data.length < length) {
37044 throw (new Error('invalid RLP'))
37049 remainder: input.slice(length + llength)
37051 } else if (firstByte <=
0xf7) {
37052 // a list between
0-
55 bytes long
37053 length = firstByte -
0xbf
37054 innerRemainder = input.slice(
1, length)
37055 while (innerRemainder.length) {
37056 d = _decode(innerRemainder)
37057 decoded.push(d.data)
37058 innerRemainder = d.remainder
37063 remainder: input.slice(length)
37066 // a list over
55 bytes long
37067 llength = firstByte -
0xf6
37068 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
37069 var totalLength = llength + length
37070 if (totalLength
> input.length) {
37071 throw new Error('invalid rlp: total length is larger than the data')
37074 innerRemainder = input.slice(llength, totalLength)
37075 if (innerRemainder.length ===
0) {
37076 throw new Error('invalid rlp, List has a invalid length')
37079 while (innerRemainder.length) {
37080 d = _decode(innerRemainder)
37081 decoded.push(d.data)
37082 innerRemainder = d.remainder
37086 remainder: input.slice(totalLength)
37091 function isHexPrefixed (str) {
37092 return str.slice(
0,
2) === '
0x'
37095 // Removes
0x from a given String
37096 function stripHexPrefix (str) {
37097 if (typeof str !== 'string') {
37100 return isHexPrefixed(str) ? str.slice(
2) : str
37103 function intToHex (i) {
37104 var hex = i.toString(
16)
37105 if (hex.length %
2) {
37112 function padToEven (a) {
37113 if (a.length %
2) a = '
0' + a
37117 function intToBuffer (i) {
37118 var hex = intToHex(i)
37119 return new Buffer(hex, 'hex')
37122 function toBuffer (v) {
37123 if (!Buffer.isBuffer(v)) {
37124 if (typeof v === 'string') {
37125 if (isHexPrefixed(v)) {
37126 v = new Buffer(padToEven(stripHexPrefix(v)), 'hex')
37130 } else if (typeof v === 'number') {
37136 } else if (v === null || v === undefined) {
37138 } else if (v.toArray) {
37139 // converts a BN to a Buffer
37140 v = new Buffer(v.toArray())
37142 throw new Error('invalid type')
37148 }).call(this,require("buffer").Buffer)
37149 },{"assert":
1,"buffer":
5}],
73:[function(require,module,exports){
37151 module.exports = require('./lib')(require('./lib/elliptic'))
37153 },{"./lib":
77,"./lib/elliptic":
76}],
74:[function(require,module,exports){
37154 (function (Buffer){
37156 var toString = Object.prototype.toString
37159 exports.isArray = function (value, message) {
37160 if (!Array.isArray(value)) throw TypeError(message)
37163 exports.isBoolean = function (value, message) {
37164 if (toString.call(value) !== '[object Boolean]') throw TypeError(message)
37167 exports.isBuffer = function (value, message) {
37168 if (!Buffer.isBuffer(value)) throw TypeError(message)
37171 exports.isFunction = function (value, message) {
37172 if (toString.call(value) !== '[object Function]') throw TypeError(message)
37175 exports.isNumber = function (value, message) {
37176 if (toString.call(value) !== '[object Number]') throw TypeError(message)
37179 exports.isObject = function (value, message) {
37180 if (toString.call(value) !== '[object Object]') throw TypeError(message)
37184 exports.isBufferLength = function (buffer, length, message) {
37185 if (buffer.length !== length) throw RangeError(message)
37188 exports.isBufferLength2 = function (buffer, length1, length2, message) {
37189 if (buffer.length !== length1 && buffer.length !== length2) throw RangeError(message)
37192 exports.isLengthGTZero = function (value, message) {
37193 if (value.length ===
0) throw RangeError(message)
37196 exports.isNumberInInterval = function (number, x, y, message) {
37197 if (number <= x || number
>= y) throw RangeError(message)
37200 }).call(this,{"isBuffer":require("../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
37201 },{"../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js":
10}],
75:[function(require,module,exports){
37202 (function (Buffer){
37204 var bip66 = require('bip66')
37206 var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
37208 0x30,
0x81,
0xd3,
0x02,
0x01,
0x01,
0x04,
0x20,
37210 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37211 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37213 0xa0,
0x81,
0x85,
0x30,
0x81,
0x82,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
37214 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37215 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37216 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
37217 0x21,
0x02,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
37218 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
37219 0x17,
0x98,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37220 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
37221 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x24,
0x03,
0x22,
0x00,
37223 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37224 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37228 var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
37230 0x30,
0x82,
0x01,
0x13,
0x02,
0x01,
0x01,
0x04,
0x20,
37232 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37233 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37235 0xa0,
0x81,
0xa5,
0x30,
0x81,
0xa2,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
37236 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37237 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37238 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
37239 0x41,
0x04,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
37240 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
37241 0x17,
0x98,
0x48,
0x3a,
0xda,
0x77,
0x26,
0xa3,
0xc4,
0x65,
0x5d,
0xa4,
0xfb,
0xfc,
0x0E,
0x11,
37242 0x08,
0xa8,
0xfd,
0x17,
0xb4,
0x48,
0xa6,
0x85,
0x54,
0x19,
0x9c,
0x47,
0xd0,
0x8f,
0xfb,
0x10,
37243 0xd4,
0xb8,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
37244 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
37245 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x44,
0x03,
0x42,
0x00,
37247 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37248 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37249 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37250 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37254 var ZERO_BUFFER_32 = new Buffer([
37255 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
37256 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
37259 exports.privateKeyExport = function (privateKey, publicKey, compressed) {
37260 var result = new Buffer(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
37261 privateKey.copy(result, compressed ?
8 :
9)
37262 publicKey.copy(result, compressed ?
181 :
214)
37266 exports.privateKeyImport = function (privateKey) {
37267 var length = privateKey.length
37271 if (length < index +
1 || privateKey[index] !==
0x30) return
37274 // sequence length constructor
37275 if (length < index +
1 || !(privateKey[index] &
0x80)) return
37277 var lenb = privateKey[index] &
0x7f
37279 if (lenb <
1 || lenb
> 2) return
37280 if (length < index + lenb) return
37283 var len = privateKey[index + lenb -
1] | (lenb
> 1 ? privateKey[index + lenb -
2] <<
8 :
0)
37285 if (length < index + len) return
37287 // sequence element
0: version number (=
1)
37288 if (length < index +
3 ||
37289 privateKey[index] !==
0x02 ||
37290 privateKey[index +
1] !==
0x01 ||
37291 privateKey[index +
2] !==
0x01) {
37296 // sequence element
1: octet string, up to
32 bytes
37297 if (length < index +
2 ||
37298 privateKey[index] !==
0x04 ||
37299 privateKey[index +
1]
> 0x20 ||
37300 length < index +
2 + privateKey[index +
1]) {
37304 return privateKey.slice(index +
2, index +
2 + privateKey[index +
1])
37307 exports.signatureExport = function (sigObj) {
37308 var r = Buffer.concat([new Buffer([
0]), sigObj.r])
37309 for (var lenR =
33, posR =
0; lenR
> 1 && r[posR] ===
0x00 && !(r[posR +
1] &
0x80); --lenR, ++posR);
37311 var s = Buffer.concat([new Buffer([
0]), sigObj.s])
37312 for (var lenS =
33, posS =
0; lenS
> 1 && s[posS] ===
0x00 && !(s[posS +
1] &
0x80); --lenS, ++posS);
37314 return bip66.encode(r.slice(posR), s.slice(posS))
37317 exports.signatureImport = function (sig) {
37318 var r = new Buffer(ZERO_BUFFER_32)
37319 var s = new Buffer(ZERO_BUFFER_32)
37322 var sigObj = bip66.decode(sig)
37323 if (sigObj.r.length ===
33 && sigObj.r[
0] ===
0x00) sigObj.r = sigObj.r.slice(
1)
37324 if (sigObj.r.length
> 32) throw new Error('R length is too long')
37325 if (sigObj.s.length ===
33 && sigObj.s[
0] ===
0x00) sigObj.s = sigObj.s.slice(
1)
37326 if (sigObj.s.length
> 32) throw new Error('S length is too long')
37331 sigObj.r.copy(r,
32 - sigObj.r.length)
37332 sigObj.s.copy(s,
32 - sigObj.s.length)
37334 return { r: r, s: s }
37337 exports.signatureImportLax = function (sig) {
37338 var r = new Buffer(ZERO_BUFFER_32)
37339 var s = new Buffer(ZERO_BUFFER_32)
37341 var length = sig.length
37344 // sequence tag byte
37345 if (sig[index++] !==
0x30) return
37347 // sequence length byte
37348 var lenbyte = sig[index++]
37349 if (lenbyte &
0x80) {
37350 index += lenbyte -
0x80
37351 if (index
> length) return
37354 // sequence tag byte for r
37355 if (sig[index++] !==
0x02) return
37358 var rlen = sig[index++]
37360 lenbyte = rlen -
0x80
37361 if (index + lenbyte
> length) return
37362 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
37363 for (rlen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) rlen = (rlen <<
8) + sig[index]
37365 if (rlen
> length - index) return
37369 // sequence tag byte for s
37370 if (sig[index++] !==
0x02) return
37373 var slen = sig[index++]
37375 lenbyte = slen -
0x80
37376 if (index + lenbyte
> length) return
37377 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
37378 for (slen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) slen = (slen <<
8) + sig[index]
37380 if (slen
> length - index) return
37384 // ignore leading zeros in r
37385 for (; rlen
> 0 && sig[rindex] ===
0x00; rlen -=
1, rindex +=
1);
37387 if (rlen
> 32) return
37388 var rvalue = sig.slice(rindex, rindex + rlen)
37389 rvalue.copy(r,
32 - rvalue.length)
37391 // ignore leading zeros in s
37392 for (; slen
> 0 && sig[sindex] ===
0x00; slen -=
1, sindex +=
1);
37394 if (slen
> 32) return
37395 var svalue = sig.slice(sindex, sindex + slen)
37396 svalue.copy(s,
32 - svalue.length)
37398 return { r: r, s: s }
37401 }).call(this,require(
"buffer").Buffer)
37402 },{
"bip66":
32,
"buffer":
5}],
76:[function(require,module,exports){
37403 (function (Buffer){
37405 var createHash = require('create-hash')
37406 var BN = require('bn.js')
37407 var EC = require('elliptic').ec
37409 var messages = require('../messages.json')
37411 var ec = new EC('secp256k1')
37412 var ecparams = ec.curve
37414 function loadCompressedPublicKey (first, xBuffer) {
37415 var x = new BN(xBuffer)
37418 if (x.cmp(ecparams.p)
>=
0) return null
37419 x = x.toRed(ecparams.red)
37421 // compute corresponding Y
37422 var y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()
37423 if ((first ===
0x03) !== y.isOdd()) y = y.redNeg()
37425 return ec.keyPair({ pub: { x: x, y: y } })
37428 function loadUncompressedPublicKey (first, xBuffer, yBuffer) {
37429 var x = new BN(xBuffer)
37430 var y = new BN(yBuffer)
37433 if (x.cmp(ecparams.p)
>=
0 || y.cmp(ecparams.p)
>=
0) return null
37435 x = x.toRed(ecparams.red)
37436 y = y.toRed(ecparams.red)
37439 if ((first ===
0x06 || first ===
0x07) && y.isOdd() !== (first ===
0x07)) return null
37442 var x3 = x.redSqr().redIMul(x)
37443 if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null
37445 return ec.keyPair({ pub: { x: x, y: y } })
37448 function loadPublicKey (publicKey) {
37449 var first = publicKey[
0]
37453 if (publicKey.length !==
33) return null
37454 return loadCompressedPublicKey(first, publicKey.slice(
1,
33))
37458 if (publicKey.length !==
65) return null
37459 return loadUncompressedPublicKey(first, publicKey.slice(
1,
33), publicKey.slice(
33,
65))
37465 exports.privateKeyVerify = function (privateKey) {
37466 var bn = new BN(privateKey)
37467 return bn.cmp(ecparams.n) <
0 && !bn.isZero()
37470 exports.privateKeyExport = function (privateKey, compressed) {
37471 var d = new BN(privateKey)
37472 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PRIVATE_KEY_EXPORT_DER_FAIL)
37474 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
37477 exports.privateKeyTweakAdd = function (privateKey, tweak) {
37478 var bn = new BN(tweak)
37479 if (bn.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
37481 bn.iadd(new BN(privateKey))
37482 if (bn.cmp(ecparams.n)
>=
0) bn.isub(ecparams.n)
37483 if (bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
37485 return bn.toArrayLike(Buffer, 'be',
32)
37488 exports.privateKeyTweakMul = function (privateKey, tweak) {
37489 var bn = new BN(tweak)
37490 if (bn.cmp(ecparams.n)
>=
0 || bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_MUL_FAIL)
37492 bn.imul(new BN(privateKey))
37493 if (bn.cmp(ecparams.n)) bn = bn.umod(ecparams.n)
37495 return bn.toArrayLike(Buffer, 'be',
32)
37498 exports.publicKeyCreate = function (privateKey, compressed) {
37499 var d = new BN(privateKey)
37500 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PUBLIC_KEY_CREATE_FAIL)
37502 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
37505 exports.publicKeyConvert = function (publicKey, compressed) {
37506 var pair = loadPublicKey(publicKey)
37507 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37509 return new Buffer(pair.getPublic(compressed, true))
37512 exports.publicKeyVerify = function (publicKey) {
37513 return loadPublicKey(publicKey) !== null
37516 exports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {
37517 var pair = loadPublicKey(publicKey)
37518 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37520 tweak = new BN(tweak)
37521 if (tweak.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_ADD_FAIL)
37523 return new Buffer(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
37526 exports.publicKeyTweakMul = function (publicKey, tweak, compressed) {
37527 var pair = loadPublicKey(publicKey)
37528 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37530 tweak = new BN(tweak)
37531 if (tweak.cmp(ecparams.n)
>=
0 || tweak.isZero()) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_MUL_FAIL)
37533 return new Buffer(pair.pub.mul(tweak).encode(true, compressed))
37536 exports.publicKeyCombine = function (publicKeys, compressed) {
37537 var pairs = new Array(publicKeys.length)
37538 for (var i =
0; i < publicKeys.length; ++i) {
37539 pairs[i] = loadPublicKey(publicKeys[i])
37540 if (pairs[i] === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37543 var point = pairs[
0].pub
37544 for (var j =
1; j < pairs.length; ++j) point = point.add(pairs[j].pub)
37545 if (point.isInfinity()) throw new Error(messages.EC_PUBLIC_KEY_COMBINE_FAIL)
37547 return new Buffer(point.encode(true, compressed))
37550 exports.signatureNormalize = function (signature) {
37551 var r = new BN(signature.slice(
0,
32))
37552 var s = new BN(signature.slice(
32,
64))
37553 if (r.cmp(ecparams.n)
>=
0 || s.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37555 var result = new Buffer(signature)
37556 if (s.cmp(ec.nh) ===
1) ecparams.n.sub(s).toArrayLike(Buffer, 'be',
32).copy(result,
32)
37561 exports.signatureExport = function (signature) {
37562 var r = signature.slice(
0,
32)
37563 var s = signature.slice(
32,
64)
37564 if (new BN(r).cmp(ecparams.n)
>=
0 || new BN(s).cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37566 return { r: r, s: s }
37569 exports.signatureImport = function (sigObj) {
37570 var r = new BN(sigObj.r)
37571 if (r.cmp(ecparams.n)
>=
0) r = new BN(
0)
37573 var s = new BN(sigObj.s)
37574 if (s.cmp(ecparams.n)
>=
0) s = new BN(
0)
37576 return Buffer.concat([
37577 r.toArrayLike(Buffer, 'be',
32),
37578 s.toArrayLike(Buffer, 'be',
32)
37582 exports.sign = function (message, privateKey, noncefn, data) {
37583 if (typeof noncefn === 'function') {
37584 var getNonce = noncefn
37585 noncefn = function (counter) {
37586 var nonce = getNonce(message, privateKey, null, data, counter)
37587 if (!Buffer.isBuffer(nonce) || nonce.length !==
32) throw new Error(messages.ECDSA_SIGN_FAIL)
37589 return new BN(nonce)
37593 var d = new BN(privateKey)
37594 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.ECDSA_SIGN_FAIL)
37596 var result = ec.sign(message, privateKey, { canonical: true, k: noncefn, pers: data })
37598 signature: Buffer.concat([
37599 result.r.toArrayLike(Buffer, 'be',
32),
37600 result.s.toArrayLike(Buffer, 'be',
32)
37602 recovery: result.recoveryParam
37606 exports.verify = function (message, signature, publicKey) {
37607 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
37609 var sigr = new BN(sigObj.r)
37610 var sigs = new BN(sigObj.s)
37611 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37612 if (sigs.cmp(ec.nh) ===
1 || sigr.isZero() || sigs.isZero()) return false
37614 var pair = loadPublicKey(publicKey)
37615 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37617 return ec.verify(message, sigObj, {x: pair.pub.x, y: pair.pub.y})
37620 exports.recover = function (message, signature, recovery, compressed) {
37621 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
37623 var sigr = new BN(sigObj.r)
37624 var sigs = new BN(sigObj.s)
37625 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
37628 if (sigr.isZero() || sigs.isZero()) throw new Error()
37630 var point = ec.recoverPubKey(message, sigObj, recovery)
37631 return new Buffer(point.encode(true, compressed))
37633 throw new Error(messages.ECDSA_RECOVER_FAIL)
37637 exports.ecdh = function (publicKey, privateKey) {
37638 var shared = exports.ecdhUnsafe(publicKey, privateKey, true)
37639 return createHash('sha256').update(shared).digest()
37642 exports.ecdhUnsafe = function (publicKey, privateKey, compressed) {
37643 var pair = loadPublicKey(publicKey)
37644 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
37646 var scalar = new BN(privateKey)
37647 if (scalar.cmp(ecparams.n)
>=
0 || scalar.isZero()) throw new Error(messages.ECDH_FAIL)
37649 return new Buffer(pair.pub.mul(scalar).encode(true, compressed))
37652 }).call(this,require("buffer").Buffer)
37653 },{"../messages.json":
78,"bn.js":
33,"buffer":
5,"create-hash":
36,"elliptic":
39}],
77:[function(require,module,exports){
37655 var assert = require('./assert')
37656 var der = require('./der')
37657 var messages = require('./messages.json')
37659 function initCompressedValue (value, defaultValue) {
37660 if (value === undefined) return defaultValue
37662 assert.isBoolean(value, messages.COMPRESSED_TYPE_INVALID)
37666 module.exports = function (secp256k1) {
37668 privateKeyVerify: function (privateKey) {
37669 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37670 return privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)
37673 privateKeyExport: function (privateKey, compressed) {
37674 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37675 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37677 compressed = initCompressedValue(compressed, true)
37678 var publicKey = secp256k1.privateKeyExport(privateKey, compressed)
37680 return der.privateKeyExport(privateKey, publicKey, compressed)
37683 privateKeyImport: function (privateKey) {
37684 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37686 privateKey = der.privateKeyImport(privateKey)
37687 if (privateKey && privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)) return privateKey
37689 throw new Error(messages.EC_PRIVATE_KEY_IMPORT_DER_FAIL)
37692 privateKeyTweakAdd: function (privateKey, tweak) {
37693 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37694 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37696 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37697 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37699 return secp256k1.privateKeyTweakAdd(privateKey, tweak)
37702 privateKeyTweakMul: function (privateKey, tweak) {
37703 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37704 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37706 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37707 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37709 return secp256k1.privateKeyTweakMul(privateKey, tweak)
37712 publicKeyCreate: function (privateKey, compressed) {
37713 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37714 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37716 compressed = initCompressedValue(compressed, true)
37718 return secp256k1.publicKeyCreate(privateKey, compressed)
37721 publicKeyConvert: function (publicKey, compressed) {
37722 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37723 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37725 compressed = initCompressedValue(compressed, true)
37727 return secp256k1.publicKeyConvert(publicKey, compressed)
37730 publicKeyVerify: function (publicKey) {
37731 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37732 return secp256k1.publicKeyVerify(publicKey)
37735 publicKeyTweakAdd: function (publicKey, tweak, compressed) {
37736 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37737 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37739 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37740 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37742 compressed = initCompressedValue(compressed, true)
37744 return secp256k1.publicKeyTweakAdd(publicKey, tweak, compressed)
37747 publicKeyTweakMul: function (publicKey, tweak, compressed) {
37748 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37749 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37751 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
37752 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
37754 compressed = initCompressedValue(compressed, true)
37756 return secp256k1.publicKeyTweakMul(publicKey, tweak, compressed)
37759 publicKeyCombine: function (publicKeys, compressed) {
37760 assert.isArray(publicKeys, messages.EC_PUBLIC_KEYS_TYPE_INVALID)
37761 assert.isLengthGTZero(publicKeys, messages.EC_PUBLIC_KEYS_LENGTH_INVALID)
37762 for (var i =
0; i < publicKeys.length; ++i) {
37763 assert.isBuffer(publicKeys[i], messages.EC_PUBLIC_KEY_TYPE_INVALID)
37764 assert.isBufferLength2(publicKeys[i],
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37767 compressed = initCompressedValue(compressed, true)
37769 return secp256k1.publicKeyCombine(publicKeys, compressed)
37772 signatureNormalize: function (signature) {
37773 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37774 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37776 return secp256k1.signatureNormalize(signature)
37779 signatureExport: function (signature) {
37780 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37781 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37783 var sigObj = secp256k1.signatureExport(signature)
37784 return der.signatureExport(sigObj)
37787 signatureImport: function (sig) {
37788 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37789 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37791 var sigObj = der.signatureImport(sig)
37792 if (sigObj) return secp256k1.signatureImport(sigObj)
37794 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
37797 signatureImportLax: function (sig) {
37798 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37799 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37801 var sigObj = der.signatureImportLax(sig)
37802 if (sigObj) return secp256k1.signatureImport(sigObj)
37804 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
37807 sign: function (message, privateKey, options) {
37808 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
37809 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
37811 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37812 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37816 if (options !== undefined) {
37817 assert.isObject(options, messages.OPTIONS_TYPE_INVALID)
37819 if (options.data !== undefined) {
37820 assert.isBuffer(options.data, messages.OPTIONS_DATA_TYPE_INVALID)
37821 assert.isBufferLength(options.data,
32, messages.OPTIONS_DATA_LENGTH_INVALID)
37822 data = options.data
37825 if (options.noncefn !== undefined) {
37826 assert.isFunction(options.noncefn, messages.OPTIONS_NONCEFN_TYPE_INVALID)
37827 noncefn = options.noncefn
37831 return secp256k1.sign(message, privateKey, noncefn, data)
37834 verify: function (message, signature, publicKey) {
37835 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
37836 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
37838 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37839 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37841 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37842 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37844 return secp256k1.verify(message, signature, publicKey)
37847 recover: function (message, signature, recovery, compressed) {
37848 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
37849 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
37851 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
37852 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
37854 assert.isNumber(recovery, messages.RECOVERY_ID_TYPE_INVALID)
37855 assert.isNumberInInterval(recovery, -
1,
4, messages.RECOVERY_ID_VALUE_INVALID)
37857 compressed = initCompressedValue(compressed, true)
37859 return secp256k1.recover(message, signature, recovery, compressed)
37862 ecdh: function (publicKey, privateKey) {
37863 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37864 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37866 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37867 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37869 return secp256k1.ecdh(publicKey, privateKey)
37872 ecdhUnsafe: function (publicKey, privateKey, compressed) {
37873 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
37874 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
37876 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
37877 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
37879 compressed = initCompressedValue(compressed, true)
37881 return secp256k1.ecdhUnsafe(publicKey, privateKey, compressed)
37886 },{"./assert":
74,"./der":
75,"./messages.json":
78}],
78:[function(require,module,exports){
37888 "COMPRESSED_TYPE_INVALID": "compressed should be a boolean",
37889 "EC_PRIVATE_KEY_TYPE_INVALID": "private key should be a Buffer",
37890 "EC_PRIVATE_KEY_LENGTH_INVALID": "private key length is invalid",
37891 "EC_PRIVATE_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting private key is invalid",
37892 "EC_PRIVATE_KEY_TWEAK_MUL_FAIL": "tweak out of range",
37893 "EC_PRIVATE_KEY_EXPORT_DER_FAIL": "couldn't export to DER format",
37894 "EC_PRIVATE_KEY_IMPORT_DER_FAIL": "couldn't import from DER format",
37895 "EC_PUBLIC_KEYS_TYPE_INVALID": "public keys should be an Array",
37896 "EC_PUBLIC_KEYS_LENGTH_INVALID": "public keys Array should have at least
1 element",
37897 "EC_PUBLIC_KEY_TYPE_INVALID": "public key should be a Buffer",
37898 "EC_PUBLIC_KEY_LENGTH_INVALID": "public key length is invalid",
37899 "EC_PUBLIC_KEY_PARSE_FAIL": "the public key could not be parsed or is invalid",
37900 "EC_PUBLIC_KEY_CREATE_FAIL": "private was invalid, try again",
37901 "EC_PUBLIC_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting public key is invalid",
37902 "EC_PUBLIC_KEY_TWEAK_MUL_FAIL": "tweak out of range",
37903 "EC_PUBLIC_KEY_COMBINE_FAIL": "the sum of the public keys is not valid",
37904 "ECDH_FAIL": "scalar was invalid (zero or overflow)",
37905 "ECDSA_SIGNATURE_TYPE_INVALID": "signature should be a Buffer",
37906 "ECDSA_SIGNATURE_LENGTH_INVALID": "signature length is invalid",
37907 "ECDSA_SIGNATURE_PARSE_FAIL": "couldn't parse signature",
37908 "ECDSA_SIGNATURE_PARSE_DER_FAIL": "couldn't parse DER signature",
37909 "ECDSA_SIGNATURE_SERIALIZE_DER_FAIL": "couldn't serialize signature to DER format",
37910 "ECDSA_SIGN_FAIL": "nonce generation function failed or private key is invalid",
37911 "ECDSA_RECOVER_FAIL": "couldn't recover public key from signature",
37912 "MSG32_TYPE_INVALID": "message should be a Buffer",
37913 "MSG32_LENGTH_INVALID": "message length is invalid",
37914 "OPTIONS_TYPE_INVALID": "options should be an Object",
37915 "OPTIONS_DATA_TYPE_INVALID": "options.data should be a Buffer",
37916 "OPTIONS_DATA_LENGTH_INVALID": "options.data length is invalid",
37917 "OPTIONS_NONCEFN_TYPE_INVALID": "options.noncefn should be a Function",
37918 "RECOVERY_ID_TYPE_INVALID": "recovery should be a Number",
37919 "RECOVERY_ID_VALUE_INVALID": "recovery should have value between -
1 and
4",
37920 "TWEAK_TYPE_INVALID": "tweak should be a Buffer",
37921 "TWEAK_LENGTH_INVALID": "tweak length is invalid"
37924 },{}],
79:[function(require,module,exports){
37925 (function (Buffer){
37926 // prototype class for hash functions
37927 function Hash (blockSize, finalSize) {
37928 this._block = new Buffer(blockSize)
37929 this._finalSize = finalSize
37930 this._blockSize = blockSize
37935 Hash.prototype.update = function (data, enc) {
37936 if (typeof data === 'string') {
37937 enc = enc || 'utf8'
37938 data = new Buffer(data, enc)
37941 var l = this._len += data.length
37942 var s = this._s ||
0
37944 var buffer = this._block
37947 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
37950 for (var i =
0; i < ch; i++) {
37951 buffer[(s % this._blockSize) + i] = data[i + f]
37957 if ((s % this._blockSize) ===
0) {
37958 this._update(buffer)
37966 Hash.prototype.digest = function (enc) {
37967 // Suppose the length of the message M, in bits, is l
37968 var l = this._len *
8
37970 // Append the bit
1 to the end of the message
37971 this._block[this._len % this._blockSize] =
0x80
37973 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
37974 this._block.fill(
0, this._len % this._blockSize +
1)
37976 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
37977 this._update(this._block)
37978 this._block.fill(
0)
37981 // to this append the block which is equal to the number l written in binary
37982 // TODO: handle case where l is
> Math.pow(
2,
29)
37983 this._block.writeInt32BE(l, this._blockSize -
4)
37985 var hash = this._update(this._block) || this._hash()
37987 return enc ? hash.toString(enc) : hash
37990 Hash.prototype._update = function () {
37991 throw new Error('_update must be implemented by subclass')
37994 module.exports = Hash
37996 }).call(this,require("buffer").Buffer)
37997 },{"buffer":
5}],
80:[function(require,module,exports){
37998 var exports = module.exports = function SHA (algorithm) {
37999 algorithm = algorithm.toLowerCase()
38001 var Algorithm = exports[algorithm]
38002 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
38004 return new Algorithm()
38007 exports.sha = require('./sha')
38008 exports.sha1 = require('./sha1')
38009 exports.sha224 = require('./sha224')
38010 exports.sha256 = require('./sha256')
38011 exports.sha384 = require('./sha384')
38012 exports.sha512 = require('./sha512')
38014 },{"./sha":
81,"./sha1":
82,"./sha224":
83,"./sha256":
84,"./sha384":
85,"./sha512":
86}],
81:[function(require,module,exports){
38015 (function (Buffer){
38017 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
38018 * in FIPS PUB
180-
1
38019 * This source code is derived from sha1.js of the same repository.
38020 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
38021 * operation was added.
38024 var inherits = require('inherits')
38025 var Hash = require('./hash')
38028 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
38031 var W = new Array(
80)
38037 Hash.call(this,
64,
56)
38040 inherits(Sha, Hash)
38042 Sha.prototype.init = function () {
38043 this._a =
0x67452301
38044 this._b =
0xefcdab89
38045 this._c =
0x98badcfe
38046 this._d =
0x10325476
38047 this._e =
0xc3d2e1f0
38052 function rotl5 (num) {
38053 return (num <<
5) | (num
>>> 27)
38056 function rotl30 (num) {
38057 return (num <<
30) | (num
>>> 2)
38060 function ft (s, b, c, d) {
38061 if (s ===
0) return (b & c) | ((~b) & d)
38062 if (s ===
2) return (b & c) | (b & d) | (c & d)
38066 Sha.prototype._update = function (M) {
38069 var a = this._a |
0
38070 var b = this._b |
0
38071 var c = this._c |
0
38072 var d = this._d |
0
38073 var e = this._e |
0
38075 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
38076 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
38078 for (var j =
0; j <
80; ++j) {
38080 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
38089 this._a = (a + this._a) |
0
38090 this._b = (b + this._b) |
0
38091 this._c = (c + this._c) |
0
38092 this._d = (d + this._d) |
0
38093 this._e = (e + this._e) |
0
38096 Sha.prototype._hash = function () {
38097 var H = new Buffer(
20)
38099 H.writeInt32BE(this._a |
0,
0)
38100 H.writeInt32BE(this._b |
0,
4)
38101 H.writeInt32BE(this._c |
0,
8)
38102 H.writeInt32BE(this._d |
0,
12)
38103 H.writeInt32BE(this._e |
0,
16)
38108 module.exports = Sha
38110 }).call(this,require(
"buffer").Buffer)
38111 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
82:[function(require,module,exports){
38112 (function (Buffer){
38114 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
38115 * in FIPS PUB
180-
1
38116 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
38117 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
38118 * Distributed under the BSD License
38119 * See http://pajhome.org.uk/crypt/md5 for details.
38122 var inherits = require('inherits')
38123 var Hash = require('./hash')
38126 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
38129 var W = new Array(
80)
38135 Hash.call(this,
64,
56)
38138 inherits(Sha1, Hash)
38140 Sha1.prototype.init = function () {
38141 this._a =
0x67452301
38142 this._b =
0xefcdab89
38143 this._c =
0x98badcfe
38144 this._d =
0x10325476
38145 this._e =
0xc3d2e1f0
38150 function rotl1 (num) {
38151 return (num <<
1) | (num
>>> 31)
38154 function rotl5 (num) {
38155 return (num <<
5) | (num
>>> 27)
38158 function rotl30 (num) {
38159 return (num <<
30) | (num
>>> 2)
38162 function ft (s, b, c, d) {
38163 if (s ===
0) return (b & c) | ((~b) & d)
38164 if (s ===
2) return (b & c) | (b & d) | (c & d)
38168 Sha1.prototype._update = function (M) {
38171 var a = this._a |
0
38172 var b = this._b |
0
38173 var c = this._c |
0
38174 var d = this._d |
0
38175 var e = this._e |
0
38177 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
38178 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
38180 for (var j =
0; j <
80; ++j) {
38182 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
38191 this._a = (a + this._a) |
0
38192 this._b = (b + this._b) |
0
38193 this._c = (c + this._c) |
0
38194 this._d = (d + this._d) |
0
38195 this._e = (e + this._e) |
0
38198 Sha1.prototype._hash = function () {
38199 var H = new Buffer(
20)
38201 H.writeInt32BE(this._a |
0,
0)
38202 H.writeInt32BE(this._b |
0,
4)
38203 H.writeInt32BE(this._c |
0,
8)
38204 H.writeInt32BE(this._d |
0,
12)
38205 H.writeInt32BE(this._e |
0,
16)
38210 module.exports = Sha1
38212 }).call(this,require(
"buffer").Buffer)
38213 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
83:[function(require,module,exports){
38214 (function (Buffer){
38216 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
38218 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
38219 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
38223 var inherits = require('inherits')
38224 var Sha256 = require('./sha256')
38225 var Hash = require('./hash')
38227 var W = new Array(
64)
38229 function Sha224 () {
38232 this._w = W // new Array(
64)
38234 Hash.call(this,
64,
56)
38237 inherits(Sha224, Sha256)
38239 Sha224.prototype.init = function () {
38240 this._a =
0xc1059ed8
38241 this._b =
0x367cd507
38242 this._c =
0x3070dd17
38243 this._d =
0xf70e5939
38244 this._e =
0xffc00b31
38245 this._f =
0x68581511
38246 this._g =
0x64f98fa7
38247 this._h =
0xbefa4fa4
38252 Sha224.prototype._hash = function () {
38253 var H = new Buffer(
28)
38255 H.writeInt32BE(this._a,
0)
38256 H.writeInt32BE(this._b,
4)
38257 H.writeInt32BE(this._c,
8)
38258 H.writeInt32BE(this._d,
12)
38259 H.writeInt32BE(this._e,
16)
38260 H.writeInt32BE(this._f,
20)
38261 H.writeInt32BE(this._g,
24)
38266 module.exports = Sha224
38268 }).call(this,require(
"buffer").Buffer)
38269 },{
"./hash":
79,
"./sha256":
84,
"buffer":
5,
"inherits":
63}],
84:[function(require,module,exports){
38270 (function (Buffer){
38272 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
38274 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
38275 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
38279 var inherits = require('inherits')
38280 var Hash = require('./hash')
38283 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
38284 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
38285 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
38286 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
38287 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
38288 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
38289 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
38290 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
38291 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
38292 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
38293 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
38294 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
38295 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
38296 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
38297 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
38298 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
38301 var W = new Array(
64)
38303 function Sha256 () {
38306 this._w = W // new Array(
64)
38308 Hash.call(this,
64,
56)
38311 inherits(Sha256, Hash)
38313 Sha256.prototype.init = function () {
38314 this._a =
0x6a09e667
38315 this._b =
0xbb67ae85
38316 this._c =
0x3c6ef372
38317 this._d =
0xa54ff53a
38318 this._e =
0x510e527f
38319 this._f =
0x9b05688c
38320 this._g =
0x1f83d9ab
38321 this._h =
0x5be0cd19
38326 function ch (x, y, z) {
38327 return z ^ (x & (y ^ z))
38330 function maj (x, y, z) {
38331 return (x & y) | (z & (x | y))
38334 function sigma0 (x) {
38335 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
38338 function sigma1 (x) {
38339 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
38342 function gamma0 (x) {
38343 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
38346 function gamma1 (x) {
38347 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
38350 Sha256.prototype._update = function (M) {
38353 var a = this._a |
0
38354 var b = this._b |
0
38355 var c = this._c |
0
38356 var d = this._d |
0
38357 var e = this._e |
0
38358 var f = this._f |
0
38359 var g = this._g |
0
38360 var h = this._h |
0
38362 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
38363 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
38365 for (var j =
0; j <
64; ++j) {
38366 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
38367 var T2 = (sigma0(a) + maj(a, b, c)) |
0
38379 this._a = (a + this._a) |
0
38380 this._b = (b + this._b) |
0
38381 this._c = (c + this._c) |
0
38382 this._d = (d + this._d) |
0
38383 this._e = (e + this._e) |
0
38384 this._f = (f + this._f) |
0
38385 this._g = (g + this._g) |
0
38386 this._h = (h + this._h) |
0
38389 Sha256.prototype._hash = function () {
38390 var H = new Buffer(
32)
38392 H.writeInt32BE(this._a,
0)
38393 H.writeInt32BE(this._b,
4)
38394 H.writeInt32BE(this._c,
8)
38395 H.writeInt32BE(this._d,
12)
38396 H.writeInt32BE(this._e,
16)
38397 H.writeInt32BE(this._f,
20)
38398 H.writeInt32BE(this._g,
24)
38399 H.writeInt32BE(this._h,
28)
38404 module.exports = Sha256
38406 }).call(this,require(
"buffer").Buffer)
38407 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
85:[function(require,module,exports){
38408 (function (Buffer){
38409 var inherits = require('inherits')
38410 var SHA512 = require('./sha512')
38411 var Hash = require('./hash')
38413 var W = new Array(
160)
38415 function Sha384 () {
38419 Hash.call(this,
128,
112)
38422 inherits(Sha384, SHA512)
38424 Sha384.prototype.init = function () {
38425 this._ah =
0xcbbb9d5d
38426 this._bh =
0x629a292a
38427 this._ch =
0x9159015a
38428 this._dh =
0x152fecd8
38429 this._eh =
0x67332667
38430 this._fh =
0x8eb44a87
38431 this._gh =
0xdb0c2e0d
38432 this._hh =
0x47b5481d
38434 this._al =
0xc1059ed8
38435 this._bl =
0x367cd507
38436 this._cl =
0x3070dd17
38437 this._dl =
0xf70e5939
38438 this._el =
0xffc00b31
38439 this._fl =
0x68581511
38440 this._gl =
0x64f98fa7
38441 this._hl =
0xbefa4fa4
38446 Sha384.prototype._hash = function () {
38447 var H = new Buffer(
48)
38449 function writeInt64BE (h, l, offset) {
38450 H.writeInt32BE(h, offset)
38451 H.writeInt32BE(l, offset +
4)
38454 writeInt64BE(this._ah, this._al,
0)
38455 writeInt64BE(this._bh, this._bl,
8)
38456 writeInt64BE(this._ch, this._cl,
16)
38457 writeInt64BE(this._dh, this._dl,
24)
38458 writeInt64BE(this._eh, this._el,
32)
38459 writeInt64BE(this._fh, this._fl,
40)
38464 module.exports = Sha384
38466 }).call(this,require(
"buffer").Buffer)
38467 },{
"./hash":
79,
"./sha512":
86,
"buffer":
5,
"inherits":
63}],
86:[function(require,module,exports){
38468 (function (Buffer){
38469 var inherits = require('inherits')
38470 var Hash = require('./hash')
38473 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
38474 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
38475 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
38476 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
38477 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
38478 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
38479 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
38480 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
38481 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
38482 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
38483 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
38484 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
38485 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
38486 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
38487 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
38488 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
38489 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
38490 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
38491 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
38492 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
38493 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
38494 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
38495 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
38496 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
38497 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
38498 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
38499 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
38500 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
38501 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
38502 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
38503 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
38504 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
38505 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
38506 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
38507 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
38508 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
38509 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
38510 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
38511 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
38512 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
38515 var W = new Array(
160)
38517 function Sha512 () {
38521 Hash.call(this,
128,
112)
38524 inherits(Sha512, Hash)
38526 Sha512.prototype.init = function () {
38527 this._ah =
0x6a09e667
38528 this._bh =
0xbb67ae85
38529 this._ch =
0x3c6ef372
38530 this._dh =
0xa54ff53a
38531 this._eh =
0x510e527f
38532 this._fh =
0x9b05688c
38533 this._gh =
0x1f83d9ab
38534 this._hh =
0x5be0cd19
38536 this._al =
0xf3bcc908
38537 this._bl =
0x84caa73b
38538 this._cl =
0xfe94f82b
38539 this._dl =
0x5f1d36f1
38540 this._el =
0xade682d1
38541 this._fl =
0x2b3e6c1f
38542 this._gl =
0xfb41bd6b
38543 this._hl =
0x137e2179
38548 function Ch (x, y, z) {
38549 return z ^ (x & (y ^ z))
38552 function maj (x, y, z) {
38553 return (x & y) | (z & (x | y))
38556 function sigma0 (x, xl) {
38557 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
38560 function sigma1 (x, xl) {
38561 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
38564 function Gamma0 (x, xl) {
38565 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
38568 function Gamma0l (x, xl) {
38569 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
38572 function Gamma1 (x, xl) {
38573 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
38576 function Gamma1l (x, xl) {
38577 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
38580 function getCarry (a, b) {
38581 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
38584 Sha512.prototype._update = function (M) {
38587 var ah = this._ah |
0
38588 var bh = this._bh |
0
38589 var ch = this._ch |
0
38590 var dh = this._dh |
0
38591 var eh = this._eh |
0
38592 var fh = this._fh |
0
38593 var gh = this._gh |
0
38594 var hh = this._hh |
0
38596 var al = this._al |
0
38597 var bl = this._bl |
0
38598 var cl = this._cl |
0
38599 var dl = this._dl |
0
38600 var el = this._el |
0
38601 var fl = this._fl |
0
38602 var gl = this._gl |
0
38603 var hl = this._hl |
0
38605 for (var i =
0; i <
32; i +=
2) {
38606 W[i] = M.readInt32BE(i *
4)
38607 W[i +
1] = M.readInt32BE(i *
4 +
4)
38609 for (; i <
160; i +=
2) {
38610 var xh = W[i -
15 *
2]
38611 var xl = W[i -
15 *
2 +
1]
38612 var gamma0 = Gamma0(xh, xl)
38613 var gamma0l = Gamma0l(xl, xh)
38616 xl = W[i -
2 *
2 +
1]
38617 var gamma1 = Gamma1(xh, xl)
38618 var gamma1l = Gamma1l(xl, xh)
38620 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
38621 var Wi7h = W[i -
7 *
2]
38622 var Wi7l = W[i -
7 *
2 +
1]
38624 var Wi16h = W[i -
16 *
2]
38625 var Wi16l = W[i -
16 *
2 +
1]
38627 var Wil = (gamma0l + Wi7l) |
0
38628 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
38629 Wil = (Wil + gamma1l) |
0
38630 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
38631 Wil = (Wil + Wi16l) |
0
38632 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
38638 for (var j =
0; j <
160; j +=
2) {
38642 var majh = maj(ah, bh, ch)
38643 var majl = maj(al, bl, cl)
38645 var sigma0h = sigma0(ah, al)
38646 var sigma0l = sigma0(al, ah)
38647 var sigma1h = sigma1(eh, el)
38648 var sigma1l = sigma1(el, eh)
38650 // t1 = h + sigma1 + ch + K[j] + W[j]
38654 var chh = Ch(eh, fh, gh)
38655 var chl = Ch(el, fl, gl)
38657 var t1l = (hl + sigma1l) |
0
38658 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
38659 t1l = (t1l + chl) |
0
38660 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
38661 t1l = (t1l + Kil) |
0
38662 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
38663 t1l = (t1l + Wil) |
0
38664 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
38666 // t2 = sigma0 + maj
38667 var t2l = (sigma0l + majl) |
0
38668 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
38676 el = (dl + t1l) |
0
38677 eh = (dh + t1h + getCarry(el, dl)) |
0
38684 al = (t1l + t2l) |
0
38685 ah = (t1h + t2h + getCarry(al, t1l)) |
0
38688 this._al = (this._al + al) |
0
38689 this._bl = (this._bl + bl) |
0
38690 this._cl = (this._cl + cl) |
0
38691 this._dl = (this._dl + dl) |
0
38692 this._el = (this._el + el) |
0
38693 this._fl = (this._fl + fl) |
0
38694 this._gl = (this._gl + gl) |
0
38695 this._hl = (this._hl + hl) |
0
38697 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
38698 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
38699 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
38700 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
38701 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
38702 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
38703 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
38704 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
38707 Sha512.prototype._hash = function () {
38708 var H = new Buffer(
64)
38710 function writeInt64BE (h, l, offset) {
38711 H.writeInt32BE(h, offset)
38712 H.writeInt32BE(l, offset +
4)
38715 writeInt64BE(this._ah, this._al,
0)
38716 writeInt64BE(this._bh, this._bl,
8)
38717 writeInt64BE(this._ch, this._cl,
16)
38718 writeInt64BE(this._dh, this._dl,
24)
38719 writeInt64BE(this._eh, this._el,
32)
38720 writeInt64BE(this._fh, this._fl,
40)
38721 writeInt64BE(this._gh, this._gl,
48)
38722 writeInt64BE(this._hh, this._hl,
56)
38727 module.exports = Sha512
38729 }).call(this,require(
"buffer").Buffer)
38730 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
87:[function(require,module,exports){
38731 var isHexPrefixed = require('is-hex-prefixed');
38734 * Removes '
0x' from a given `String` is present
38735 * @param {String} str the string value
38736 * @return {String|Optional} a string by pass if necessary
38738 module.exports = function stripHexPrefix(str) {
38739 if (typeof str !== 'string') {
38743 return isHexPrefixed(str) ? str.slice(
2) : str;
38746 },{
"is-hex-prefixed":
64}]},{},[
31])(
31)
38748 <script>function convertRippleAdrr(address) {
38749 return window.basex('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz').encode(
38750 window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(address)
38754 function convertRipplePriv(priv) {
38755 return window.basex('
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz').decode(priv).toString("hex").slice(
2,
66)
38759 <script>// Select components from sjcl to suit the crypto operations bip39 requires.
38763 /** @fileOverview Javascript cryptography implementation.
38765 * Crush to remove comments, shorten variable names and
38766 * generally reduce transmission size.
38768 * @author Emily Stark
38769 * @author Mike Hamburg
38770 * @author Dan Boneh
38774 /*jslint indent:
2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */
38775 /*global document, window, escape, unescape, module, require, Uint32Array */
38777 /** @namespace The Stanford Javascript Crypto Library, top-level namespace. */
38779 /** @namespace Symmetric ciphers. */
38782 /** @namespace Hash functions. Right now only SHA256 is implemented. */
38785 /** @namespace Key exchange functions. Right now only SRP is implemented. */
38788 /** @namespace Block cipher modes of operation. */
38791 /** @namespace Miscellaneous. HMAC and PBKDF2. */
38795 * @namespace Bit array encoders and decoders.
38798 * The members of this namespace are functions which translate between
38799 * SJCL's bitArrays and other objects (usually strings). Because it
38800 * isn't always clear which direction is encoding and which is decoding,
38801 * the method names are "fromBits" and "toBits".
38805 /** @namespace Exceptions. */
38807 /** @constructor Ciphertext is corrupt. */
38808 corrupt: function(message) {
38809 this.toString = function() { return "CORRUPT: "+this.message; };
38810 this.message = message;
38813 /** @constructor Invalid parameter. */
38814 invalid: function(message) {
38815 this.toString = function() { return "INVALID: "+this.message; };
38816 this.message = message;
38819 /** @constructor Bug or missing feature in SJCL. @constructor */
38820 bug: function(message) {
38821 this.toString = function() { return "BUG: "+this.message; };
38822 this.message = message;
38825 /** @constructor Something isn't ready. */
38826 notReady: function(message) {
38827 this.toString = function() { return "NOT READY: "+this.message; };
38828 this.message = message;
38833 if(typeof module !== 'undefined' && module.exports){
38834 module.exports = sjcl;
38836 if (typeof define === "function") {
38837 define([], function () {
38845 /** @fileOverview Arrays of bits, encoded as arrays of Numbers.
38847 * @author Emily Stark
38848 * @author Mike Hamburg
38849 * @author Dan Boneh
38852 /** @namespace Arrays of bits, encoded as arrays of Numbers.
38856 * These objects are the currency accepted by SJCL's crypto functions.
38860 * Most of our crypto primitives operate on arrays of
4-byte words internally,
38861 * but many of them can take arguments that are not a multiple of
4 bytes.
38862 * This library encodes arrays of bits (whose size need not be a multiple of
8
38863 * bits) as arrays of
32-bit words. The bits are packed, big-endian, into an
38864 * array of words,
32 bits at a time. Since the words are double-precision
38865 * floating point numbers, they fit some extra data. We use this (in a private,
38866 * possibly-changing manner) to encode the number of bits actually present
38867 * in the last word of the array.
38871 * Because bitwise ops clear this out-of-band data, these arrays can be passed
38872 * to ciphers like AES which want arrays of words.
38877 * Array slices in units of bits.
38878 * @param {bitArray} a The array to slice.
38879 * @param {Number} bstart The offset to the start of the slice, in bits.
38880 * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined,
38881 * slice until the end of the array.
38882 * @return {bitArray} The requested slice.
38884 bitSlice: function (a, bstart, bend) {
38885 a = sjcl.bitArray._shiftRight(a.slice(bstart/
32),
32 - (bstart &
31)).slice(
1);
38886 return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart);
38890 * Extract a number packed into a bit array.
38891 * @param {bitArray} a The array to slice.
38892 * @param {Number} bstart The offset to the start of the slice, in bits.
38893 * @param {Number} length The length of the number to extract.
38894 * @return {Number} The requested slice.
38896 extract: function(a, bstart, blength) {
38897 // FIXME: this Math.floor is not necessary at all, but for some reason
38898 // seems to suppress a bug in the Chromium JIT.
38899 var x, sh = Math.floor((-bstart-blength) &
31);
38900 if ((bstart + blength -
1 ^ bstart) & -
32) {
38901 // it crosses a boundary
38902 x = (a[bstart/
32|
0] << (
32 - sh)) ^ (a[bstart/
32+
1|
0]
>>> sh);
38904 // within a single word
38905 x = a[bstart/
32|
0]
>>> sh;
38907 return x & ((
1<
<blength) -
1);
38911 * Concatenate two bit arrays.
38912 * @param {bitArray} a1 The first array.
38913 * @param {bitArray} a2 The second array.
38914 * @return {bitArray} The concatenation of a1 and a2.
38916 concat: function (a1, a2) {
38917 if (a1.length ===
0 || a2.length ===
0) {
38918 return a1.concat(a2);
38921 var last = a1[a1.length-
1], shift = sjcl.bitArray.getPartial(last);
38922 if (shift ===
32) {
38923 return a1.concat(a2);
38925 return sjcl.bitArray._shiftRight(a2, shift, last|
0, a1.slice(
0,a1.length-
1));
38930 * Find the length of an array of bits.
38931 * @param {bitArray} a The array.
38932 * @return {Number} The length of a, in bits.
38934 bitLength: function (a) {
38935 var l = a.length, x;
38936 if (l ===
0) { return
0; }
38938 return (l-
1) *
32 + sjcl.bitArray.getPartial(x);
38942 * Truncate an array.
38943 * @param {bitArray} a The array.
38944 * @param {Number} len The length to truncate to, in bits.
38945 * @return {bitArray} A new array, truncated to len bits.
38947 clamp: function (a, len) {
38948 if (a.length *
32 < len) { return a; }
38949 a = a.slice(
0, Math.ceil(len /
32));
38952 if (l
> 0 && len) {
38953 a[l-
1] = sjcl.bitArray.partial(len, a[l-
1] &
0x80000000 >> (len-
1),
1);
38959 * Make a partial word for a bit array.
38960 * @param {Number} len The number of bits in the word.
38961 * @param {Number} x The bits.
38962 * @param {Number} [
0] _end Pass
1 if x has already been shifted to the high side.
38963 * @return {Number} The partial word.
38965 partial: function (len, x, _end) {
38966 if (len ===
32) { return x; }
38967 return (_end ? x|
0 : x << (
32-len)) + len *
0x10000000000;
38971 * Get the number of bits used by a partial word.
38972 * @param {Number} x The partial word.
38973 * @return {Number} The number of bits used by the partial word.
38975 getPartial: function (x) {
38976 return Math.round(x/
0x10000000000) ||
32;
38980 * Compare two arrays for equality in a predictable amount of time.
38981 * @param {bitArray} a The first array.
38982 * @param {bitArray} b The second array.
38983 * @return {boolean} true if a == b; false otherwise.
38985 equal: function (a, b) {
38986 if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) {
38990 for (i=
0; i
<a.length; i++) {
38996 /** Shift an array right.
38997 * @param {bitArray} a The array to shift.
38998 * @param {Number} shift The number of bits to shift.
38999 * @param {Number} [carry=
0] A byte to carry in
39000 * @param {bitArray} [out=[]] An array to prepend to the output.
39003 _shiftRight: function (a, shift, carry, out) {
39004 var i, last2=
0, shift2;
39005 if (out === undefined) { out = []; }
39007 for (; shift
>=
32; shift -=
32) {
39012 return out.concat(a);
39015 for (i=
0; i
<a.length; i++) {
39016 out.push(carry | a[i]
>>>shift);
39017 carry = a[i] << (
32-shift);
39019 last2 = a.length ? a[a.length-
1] :
0;
39020 shift2 = sjcl.bitArray.getPartial(last2);
39021 out.push(sjcl.bitArray.partial(shift+shift2 &
31, (shift + shift2
> 32) ? carry : out.pop(),
1));
39025 /** xor a block of
4 words together.
39028 _xor4: function(x,y) {
39029 return [x[
0]^y[
0],x[
1]^y[
1],x[
2]^y[
2],x[
3]^y[
3]];
39032 /** byteswap a word array inplace.
39033 * (does not handle partial words)
39034 * @param {sjcl.bitArray} a word array
39035 * @return {sjcl.bitArray} byteswapped array
39037 byteswapM: function(a) {
39038 var i, v, m =
0xff00;
39039 for (i =
0; i < a.length; ++i) {
39041 a[i] = (v
>>> 24) | ((v
>>> 8) & m) | ((v & m) <<
8) | (v <<
24);
39048 //// codecString.js
39050 /** @fileOverview Bit array codec implementations.
39052 * @author Emily Stark
39053 * @author Mike Hamburg
39054 * @author Dan Boneh
39057 /** @namespace UTF-
8 strings */
39058 sjcl.codec.utf8String = {
39059 /** Convert from a bitArray to a UTF-
8 string. */
39060 fromBits: function (arr) {
39061 var out =
"", bl = sjcl.bitArray.bitLength(arr), i, tmp;
39062 for (i=
0; i
<bl/
8; i++) {
39066 out += String.fromCharCode(tmp
>>> 24);
39069 return decodeURIComponent(escape(out));
39072 /** Convert from a UTF-
8 string to a bitArray. */
39073 toBits: function (str) {
39074 str = unescape(encodeURIComponent(str));
39075 var out = [], i, tmp=
0;
39076 for (i=
0; i
<str.length; i++) {
39077 tmp = tmp <<
8 | str.charCodeAt(i);
39084 out.push(sjcl.bitArray.partial(
8*(i&
3), tmp));
39093 /** @fileOverview Bit array codec implementations.
39095 * @author Emily Stark
39096 * @author Mike Hamburg
39097 * @author Dan Boneh
39100 /** @namespace Hexadecimal */
39102 /** Convert from a bitArray to a hex string. */
39103 fromBits: function (arr) {
39105 for (i=
0; i
<arr.length; i++) {
39106 out += ((arr[i]|
0)+
0xF00000000000).toString(
16).substr(
4);
39108 return out.substr(
0, sjcl.bitArray.bitLength(arr)/
4);//.replace(/(.{
8})/g,
"$1 ");
39110 /** Convert from a hex string to a bitArray. */
39111 toBits: function (str) {
39112 var i, out=[], len;
39113 str = str.replace(/\s|
0x/g,
"");
39115 str = str +
"00000000";
39116 for (i=
0; i
<str.length; i+=
8) {
39117 out.push(parseInt(str.substr(i,
8),
16)^
0);
39119 return sjcl.bitArray.clamp(out, len*
4);
39126 /** @fileOverview Javascript SHA-
512 implementation.
39128 * This implementation was written for CryptoJS by Jeff Mott and adapted for
39129 * SJCL by Stefan Thomas.
39131 * CryptoJS (c)
2009–
2012 by Jeff Mott. All rights reserved.
39132 * Released with New BSD License
39134 * @author Emily Stark
39135 * @author Mike Hamburg
39136 * @author Dan Boneh
39137 * @author Jeff Mott
39138 * @author Stefan Thomas
39142 * Context for a SHA-
512 operation in progress.
39144 * @class Secure Hash Algorithm,
512 bits.
39146 sjcl.hash.sha512 = function (hash) {
39147 if (!this._key[
0]) { this._precompute(); }
39149 this._h = hash._h.slice(
0);
39150 this._buffer = hash._buffer.slice(
0);
39151 this._length = hash._length;
39158 * Hash a string or an array of words.
39160 * @param {bitArray|String} data the data to hash.
39161 * @return {bitArray} The hash value, an array of
16 big-endian words.
39163 sjcl.hash.sha512.hash = function (data) {
39164 return (new sjcl.hash.sha512()).update(data).finalize();
39167 sjcl.hash.sha512.prototype = {
39169 * The hash's block size, in bits.
39175 * Reset the hash state.
39178 reset:function () {
39179 this._h = this._init.slice(
0);
39186 * Input several words to the hash.
39187 * @param {bitArray|String} data the data to hash.
39190 update: function (data) {
39191 if (typeof data ===
"string") {
39192 data = sjcl.codec.utf8String.toBits(data);
39194 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
39196 nl = this._length = ol + sjcl.bitArray.bitLength(data);
39197 for (i =
1024+ol & -
1024; i <= nl; i+=
1024) {
39198 this._block(b.splice(
0,
32));
39204 * Complete hashing and output the hash value.
39205 * @return {bitArray} The hash value, an array of
16 big-endian words.
39207 finalize:function () {
39208 var i, b = this._buffer, h = this._h;
39210 // Round out and push the buffer
39211 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
39213 // Round out the buffer to a multiple of
32 words, less the
4 length words.
39214 for (i = b.length +
4; i &
31; i++) {
39218 // append the length
39221 b.push(Math.floor(this._length /
0x100000000));
39222 b.push(this._length |
0);
39225 this._block(b.splice(
0,
32));
39233 * The SHA-
512 initialization vector, to be precomputed.
39239 * Least significant
24 bits of SHA512 initialization values.
39241 * Javascript only has
53 bits of precision, so we compute the
40 most
39242 * significant bits and add the remaining
24 bits as constants.
39246 _initr: [
0xbcc908,
0xcaa73b,
0x94f82b,
0x1d36f1,
0xe682d1,
0x3e6c1f,
0x41bd6b,
0x7e2179 ],
39250 [
0x6a09e667,
0xf3bcc908,
0xbb67ae85,
0x84caa73b,
0x3c6ef372,
0xfe94f82b,
0xa54ff53a,
0x5f1d36f1,
39251 0x510e527f,
0xade682d1,
0x9b05688c,
0x2b3e6c1f,
0x1f83d9ab,
0xfb41bd6b,
0x5be0cd19,
0x137e2179],
39255 * The SHA-
512 hash key, to be precomputed.
39261 * Least significant
24 bits of SHA512 key values.
39265 [
0x28ae22,
0xef65cd,
0x4d3b2f,
0x89dbbc,
0x48b538,
0x05d019,
0x194f9b,
0x6d8118,
39266 0x030242,
0x706fbe,
0xe4b28c,
0xffb4e2,
0x7b896f,
0x1696b1,
0xc71235,
0x692694,
39267 0xf14ad2,
0x4f25e3,
0x8cd5b5,
0xac9c65,
0x2b0275,
0xa6e483,
0x41fbd4,
0x1153b5,
39268 0x66dfab,
0xb43210,
0xfb213f,
0xef0ee4,
0xa88fc2,
0x0aa725,
0x03826f,
0x0e6e70,
39269 0xd22ffc,
0x26c926,
0xc42aed,
0x95b3df,
0xaf63de,
0x77b2a8,
0xedaee6,
0x82353b,
39270 0xf10364,
0x423001,
0xf89791,
0x54be30,
0xef5218,
0x65a910,
0x71202a,
0xbbd1b8,
39271 0xd2d0c8,
0x41ab53,
0x8eeb99,
0x9b48a8,
0xc95a63,
0x418acb,
0x63e373,
0xb2b8a3,
39272 0xefb2fc,
0x172f60,
0xf0ab72,
0x6439ec,
0x631e28,
0x82bde9,
0xc67915,
0x72532b,
39273 0x26619c,
0xc0c207,
0xe0eb1e,
0x6ed178,
0x176fba,
0xc898a6,
0xf90dae,
0x1c471b,
39274 0x047d84,
0xc72493,
0xc9bebc,
0x100d4c,
0x3e42b6,
0x657e2a,
0xd6faec,
0x475817],
39278 [
0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
39279 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
39280 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
39281 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
39282 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
39283 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
39284 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
39285 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
39286 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
39287 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
39288 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
39289 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
39290 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
39291 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
39292 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
39293 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
39294 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
39295 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
39296 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
39297 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817],
39301 * Function to precompute _init and _key.
39304 _precompute: function () {
39305 // XXX: This code is for precomputing the SHA256 constants, change for
39306 // SHA512 and re-enable.
39307 var i =
0, prime =
2, factor;
39309 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
39310 function frac2(x) { return (x-Math.floor(x)) *
0x10000000000 &
0xff; }
39312 outer: for (; i
<80; prime++) {
39313 for (factor=
2; factor*factor <= prime; factor++) {
39314 if (prime % factor ===
0) {
39321 this._init[i*
2] = frac(Math.pow(prime,
1/
2));
39322 this._init[i*
2+
1] = (frac2(Math.pow(prime,
1/
2)) <<
24) | this._initr[i];
39324 this._key[i*
2] = frac(Math.pow(prime,
1/
3));
39325 this._key[i*
2+
1] = (frac2(Math.pow(prime,
1/
3)) <<
24) | this._keyr[i];
39331 * Perform one cycle of SHA-
512.
39332 * @param {bitArray} words one block of words.
39335 _block:function (words) {
39337 w = words.slice(
0),
39340 h0h = h[
0], h0l = h[
1], h1h = h[
2], h1l = h[
3],
39341 h2h = h[
4], h2l = h[
5], h3h = h[
6], h3l = h[
7],
39342 h4h = h[
8], h4l = h[
9], h5h = h[
10], h5l = h[
11],
39343 h6h = h[
12], h6l = h[
13], h7h = h[
14], h7l = h[
15];
39345 // Working variables
39346 var ah = h0h, al = h0l, bh = h1h, bl = h1l,
39347 ch = h2h, cl = h2l, dh = h3h, dl = h3l,
39348 eh = h4h, el = h4l, fh = h5h, fl = h5l,
39349 gh = h6h, gl = h6l, hh = h7h, hl = h7l;
39351 for (i=
0; i
<80; i++) {
39352 // load up the input word for this round
39355 wrl = w[i *
2 +
1];
39358 var gamma0xh = w[(i-
15) *
2];
39359 var gamma0xl = w[(i-
15) *
2 +
1];
39361 ((gamma0xl <<
31) | (gamma0xh
>>> 1)) ^
39362 ((gamma0xl <<
24) | (gamma0xh
>>> 8)) ^
39365 ((gamma0xh <<
31) | (gamma0xl
>>> 1)) ^
39366 ((gamma0xh <<
24) | (gamma0xl
>>> 8)) ^
39367 ((gamma0xh <<
25) | (gamma0xl
>>> 7));
39370 var gamma1xh = w[(i-
2) *
2];
39371 var gamma1xl = w[(i-
2) *
2 +
1];
39373 ((gamma1xl <<
13) | (gamma1xh
>>> 19)) ^
39374 ((gamma1xh <<
3) | (gamma1xl
>>> 29)) ^
39377 ((gamma1xh <<
13) | (gamma1xl
>>> 19)) ^
39378 ((gamma1xl <<
3) | (gamma1xh
>>> 29)) ^
39379 ((gamma1xh <<
26) | (gamma1xl
>>> 6));
39382 var wr7h = w[(i-
7) *
2];
39383 var wr7l = w[(i-
7) *
2 +
1];
39385 var wr16h = w[(i-
16) *
2];
39386 var wr16l = w[(i-
16) *
2 +
1];
39388 // W(round) = gamma0 + W(round -
7) + gamma1 + W(round -
16)
39389 wrl = gamma0l + wr7l;
39390 wrh = gamma0h + wr7h + ((wrl
>>> 0) < (gamma0l
>>> 0) ?
1 :
0);
39392 wrh += gamma1h + ((wrl
>>> 0) < (gamma1l
>>> 0) ?
1 :
0);
39394 wrh += wr16h + ((wrl
>>> 0) < (wr16l
>>> 0) ?
1 :
0);
39398 w[i*
2 +
1] = wrl |=
0;
39401 var chh = (eh & fh) ^ (~eh & gh);
39402 var chl = (el & fl) ^ (~el & gl);
39405 var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
39406 var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
39409 var sigma0h = ((al <<
4) | (ah
>>> 28)) ^ ((ah <<
30) | (al
>>> 2)) ^ ((ah <<
25) | (al
>>> 7));
39410 var sigma0l = ((ah <<
4) | (al
>>> 28)) ^ ((al <<
30) | (ah
>>> 2)) ^ ((al <<
25) | (ah
>>> 7));
39413 var sigma1h = ((el <<
18) | (eh
>>> 14)) ^ ((el <<
14) | (eh
>>> 18)) ^ ((eh <<
23) | (el
>>> 9));
39414 var sigma1l = ((eh <<
18) | (el
>>> 14)) ^ ((eh <<
14) | (el
>>> 18)) ^ ((el <<
23) | (eh
>>> 9));
39418 var krl = k[i*
2+
1];
39420 // t1 = h + sigma1 + ch + K(round) + W(round)
39421 var t1l = hl + sigma1l;
39422 var t1h = hh + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0);
39424 t1h += chh + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0);
39426 t1h += krh + ((t1l
>>> 0) < (krl
>>> 0) ?
1 :
0);
39427 t1l = t1l + wrl|
0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=
1054972
39428 t1h += wrh + ((t1l
>>> 0) < (wrl
>>> 0) ?
1 :
0);
39430 // t2 = sigma0 + maj
39431 var t2l = sigma0l + majl;
39432 var t2h = sigma0h + majh + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0);
39434 // Update working variables
39441 el = (dl + t1l) |
0;
39442 eh = (dh + t1h + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
39449 al = (t1l + t2l) |
0;
39450 ah = (t1h + t2h + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0;
39453 // Intermediate hash
39454 h0l = h[
1] = (h0l + al) |
0;
39455 h[
0] = (h0h + ah + ((h0l
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0;
39456 h1l = h[
3] = (h1l + bl) |
0;
39457 h[
2] = (h1h + bh + ((h1l
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0;
39458 h2l = h[
5] = (h2l + cl) |
0;
39459 h[
4] = (h2h + ch + ((h2l
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0;
39460 h3l = h[
7] = (h3l + dl) |
0;
39461 h[
6] = (h3h + dh + ((h3l
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
39462 h4l = h[
9] = (h4l + el) |
0;
39463 h[
8] = (h4h + eh + ((h4l
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0;
39464 h5l = h[
11] = (h5l + fl) |
0;
39465 h[
10] = (h5h + fh + ((h5l
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0;
39466 h6l = h[
13] = (h6l + gl) |
0;
39467 h[
12] = (h6h + gh + ((h6l
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0;
39468 h7l = h[
15] = (h7l + hl) |
0;
39469 h[
14] = (h7h + hh + ((h7l
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0;
39476 /** @fileOverview HMAC implementation.
39478 * @author Emily Stark
39479 * @author Mike Hamburg
39480 * @author Dan Boneh
39483 /** HMAC with the specified hash function.
39485 * @param {bitArray} key the key for HMAC.
39486 * @param {Object} [hash=sjcl.hash.sha256] The hash function to use.
39488 sjcl.misc.hmac = function (key, Hash) {
39489 this._hash = Hash = Hash || sjcl.hash.sha256;
39490 var exKey = [[],[]], i,
39491 bs = Hash.prototype.blockSize /
32;
39492 this._baseHash = [new Hash(), new Hash()];
39494 if (key.length
> bs) {
39495 key = Hash.hash(key);
39498 for (i=
0; i
<bs; i++) {
39499 exKey[
0][i] = key[i]^
0x36363636;
39500 exKey[
1][i] = key[i]^
0x5C5C5C5C;
39503 this._baseHash[
0].update(exKey[
0]);
39504 this._baseHash[
1].update(exKey[
1]);
39505 this._resultHash = new Hash(this._baseHash[
0]);
39508 /** HMAC with the specified hash function. Also called encrypt since it's a prf.
39509 * @param {bitArray|String} data The data to mac.
39511 sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (data) {
39512 if (!this._updated) {
39514 return this.digest(data);
39516 throw new sjcl.exception.invalid(
"encrypt on already updated hmac called!");
39520 sjcl.misc.hmac.prototype.reset = function () {
39521 this._resultHash = new this._hash(this._baseHash[
0]);
39522 this._updated = false;
39525 sjcl.misc.hmac.prototype.update = function (data) {
39526 this._updated = true;
39527 this._resultHash.update(data);
39530 sjcl.misc.hmac.prototype.digest = function () {
39531 var w = this._resultHash.finalize(), result = new (this._hash)(this._baseHash[
1]).update(w).finalize();
39542 /** @fileOverview Password-based key-derivation function, version
2.0.
39544 * @author Emily Stark
39545 * @author Mike Hamburg
39546 * @author Dan Boneh
39549 /** Password-Based Key-Derivation Function, version
2.0.
39551 * Generate keys from passwords using PBKDF2-HMAC-SHA256.
39553 * This is the method specified by RSA's PKCS #
5 standard.
39555 * @param {bitArray|String} password The password.
39556 * @param {bitArray|String} salt The salt. Should have lots of entropy.
39557 * @param {Number} [count=
1000] The number of iterations. Higher numbers make the function slower but more secure.
39558 * @param {Number} [length] The length of the derived key. Defaults to the
39559 output size of the hash function.
39560 * @param {Object} [Prff=sjcl.misc.hmac] The pseudorandom function family.
39561 * @return {bitArray} the derived key.
39563 sjcl.misc.pbkdf2 = function (password, salt, count, length, Prff) {
39564 count = count ||
1000;
39566 if (length <
0 || count <
0) {
39567 throw sjcl.exception.invalid(
"invalid params to pbkdf2");
39570 if (typeof password ===
"string") {
39571 password = sjcl.codec.utf8String.toBits(password);
39574 if (typeof salt ===
"string") {
39575 salt = sjcl.codec.utf8String.toBits(salt);
39578 Prff = Prff || sjcl.misc.hmac;
39580 var prf = new Prff(password),
39581 u, ui, i, j, k, out = [], b = sjcl.bitArray;
39583 for (k =
1;
32 * out.length < (length ||
1); k++) {
39584 u = ui = prf.encrypt(b.concat(salt,[k]));
39586 for (i=
1; i
<count; i++) {
39587 ui = prf.encrypt(ui);
39588 for (j=
0; j
<ui.length; j++) {
39593 out = out.concat(u);
39596 if (length) { out = b.clamp(out, length); }
39604 /** @fileOverview Javascript SHA-
256 implementation.
39606 * An older version of this implementation is available in the public
39607 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
39608 * Stanford University
2008-
2010 and BSD-licensed for liability
39611 * Special thanks to Aldo Cortesi for pointing out several bugs in
39614 * @author Emily Stark
39615 * @author Mike Hamburg
39616 * @author Dan Boneh
39620 * Context for a SHA-
256 operation in progress.
39622 * @class Secure Hash Algorithm,
256 bits.
39624 sjcl.hash.sha256 = function (hash) {
39625 if (!this._key[
0]) { this._precompute(); }
39627 this._h = hash._h.slice(
0);
39628 this._buffer = hash._buffer.slice(
0);
39629 this._length = hash._length;
39636 * Hash a string or an array of words.
39638 * @param {bitArray|String} data the data to hash.
39639 * @return {bitArray} The hash value, an array of
16 big-endian words.
39641 sjcl.hash.sha256.hash = function (data) {
39642 return (new sjcl.hash.sha256()).update(data).finalize();
39645 sjcl.hash.sha256.prototype = {
39647 * The hash's block size, in bits.
39653 * Reset the hash state.
39656 reset:function () {
39657 this._h = this._init.slice(
0);
39664 * Input several words to the hash.
39665 * @param {bitArray|String} data the data to hash.
39668 update: function (data) {
39669 if (typeof data ===
"string") {
39670 data = sjcl.codec.utf8String.toBits(data);
39672 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
39674 nl = this._length = ol + sjcl.bitArray.bitLength(data);
39675 for (i =
512+ol & -
512; i <= nl; i+=
512) {
39676 this._block(b.splice(
0,
16));
39682 * Complete hashing and output the hash value.
39683 * @return {bitArray} The hash value, an array of
8 big-endian words.
39685 finalize:function () {
39686 var i, b = this._buffer, h = this._h;
39688 // Round out and push the buffer
39689 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
39691 // Round out the buffer to a multiple of
16 words, less the
2 length words.
39692 for (i = b.length +
2; i &
15; i++) {
39696 // append the length
39697 b.push(Math.floor(this._length /
0x100000000));
39698 b.push(this._length |
0);
39701 this._block(b.splice(
0,
16));
39709 * The SHA-
256 initialization vector, to be precomputed.
39714 _init:[
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19],
39718 * The SHA-
256 hash key, to be precomputed.
39724 [
0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
39725 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
39726 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
39727 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
39728 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
39729 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
39730 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
39731 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2],
39736 * Function to precompute _init and _key.
39739 _precompute: function () {
39740 var i =
0, prime =
2, factor;
39742 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
39744 outer: for (; i
<64; prime++) {
39745 for (factor=
2; factor*factor <= prime; factor++) {
39746 if (prime % factor ===
0) {
39753 this._init[i] = frac(Math.pow(prime,
1/
2));
39755 this._key[i] = frac(Math.pow(prime,
1/
3));
39761 * Perform one cycle of SHA-
256.
39762 * @param {bitArray} words one block of words.
39765 _block:function (words) {
39767 w = words.slice(
0),
39770 h0 = h[
0], h1 = h[
1], h2 = h[
2], h3 = h[
3],
39771 h4 = h[
4], h5 = h[
5], h6 = h[
6], h7 = h[
7];
39773 /* Rationale for placement of |
0 :
39774 * If a value can overflow is original
32 bits by a factor of more than a few
39775 * million (
2^
23 ish), there is a possibility that it might overflow the
39776 *
53-bit mantissa and lose precision.
39778 * To avoid this, we clamp back to
32 bits by |'ing with
0 on any value that
39779 * propagates around the loop, and on the hash state h[]. I don't believe
39780 * that the clamps on h4 and on h0 are strictly necessary, but it's close
39781 * (for h4 anyway), and better safe than sorry.
39783 * The clamps on h[] are necessary for the output to be correct even in the
39784 * common case and for short inputs.
39786 for (i=
0; i
<64; i++) {
39787 // load up the input word for this round
39791 a = w[(i+
1 ) &
15];
39792 b = w[(i+
14) &
15];
39793 tmp = w[i&
15] = ((a
>>>7 ^ a
>>>18 ^ a
>>>3 ^ a<
<25 ^ a<
<14) +
39794 (b
>>>17 ^ b
>>>19 ^ b
>>>10 ^ b<
<15 ^ b<
<13) +
39795 w[i&
15] + w[(i+
9) &
15]) |
0;
39798 tmp = (tmp + h7 + (h4
>>>6 ^ h4
>>>11 ^ h4
>>>25 ^ h4<
<26 ^ h4<
<21 ^ h4<
<7) + (h6 ^ h4&(h5^h6)) + k[i]); // |
0;
39801 h7 = h6; h6 = h5; h5 = h4;
39803 h3 = h2; h2 = h1; h1 = h0;
39805 h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1
>>>2 ^ h1
>>>13 ^ h1
>>>22 ^ h1<
<30 ^ h1<
<19 ^ h1<
<10)) |
0;
39808 h[
0] = h[
0]+h0 |
0;
39809 h[
1] = h[
1]+h1 |
0;
39810 h[
2] = h[
2]+h2 |
0;
39811 h[
3] = h[
3]+h3 |
0;
39812 h[
4] = h[
4]+h4 |
0;
39813 h[
5] = h[
5]+h5 |
0;
39814 h[
6] = h[
6]+h6 |
0;
39815 h[
7] = h[
7]+h7 |
0;
39819 <script>// An extremely basic translation library
39823 // Set some html to be translated. Do this using the 'data-translate' attribute:
39825 //
<div data-translate
>Test
</div>
39826 //
<div data-translate-html
><em>keep em tag
</em></div>
39827 //
<input data-translate-placeholder
placeholder=
"Example placeholder">
39828 //
<span data-translate-title
title=
"Example title"></span>
39830 // Obtain all the phrases to be translated via js debug console:
39832 // Translate.phrasesAsJson();
39834 // Use that template to translate the phrases into another language.
39835 // Leave the key the same. Change the value to the new language.
39837 // Create a js file to load the new phrases. In this example for Spanish,
39838 // es.js will contain the following code:
39840 // Translate.loadForeignPhrases("es", {
39841 // "Test": "Test in Spanish",
39842 // "
<em>keep em tag
</em>": "<em>keep em tag in Spanish
</em>",
39843 // "Example placeholder
": "Example placeholder in Spanish
"
39844 // "Example title
": "Example title in Spanish
"
39847 // In your UI put a listener for clicking on the Spanish button:
39849 // mySpanishButton.addEventListener("click
", function() {
39850 // Translate.setLanguage("es
");
39852 // myEnglishButton.addEventListener("click
", function() {
39853 // Translate.setLanguage("en
");
39856 Translate = new (function() {
39858 var defaultLanguage = "en
";
39860 var allPhrases = {};
39861 allPhrases[defaultLanguage] = {};
39866 selector: "[data-translate]
",
39867 getKey: function() {
39868 return this.textContent.trim().replace(/\s+/g, " ");
39870 setPhrase: function(p) {
39871 this.textContent = p;
39876 selector: "[data-translate-html]
",
39877 getKey: function() {
39878 return this.innerHTML.trim().replace(/\s+/g, " ");
39880 setPhrase: function(p) {
39881 this.innerHTML = p;
39885 var placeholder = {
39886 selector: "[data-translate-placeholder]
",
39887 getKey: function() {
39888 return this.getAttribute("placeholder
").trim().replace(/\s+/g, " ");
39890 setPhrase: function(p) {
39891 this.setAttribute("placeholder
", p);
39896 selector: "[data-translate-title]
",
39897 getKey: function() {
39898 return this.getAttribute("title
").trim().replace(/\s+/g, " ");
39900 setPhrase: function(p) {
39901 this.setAttribute("title
", p);
39905 // Get elements to be translated
39906 var allEls = getEls(text)
39907 .concat(getEls(html))
39908 .concat(getEls(placeholder))
39909 .concat(getEls(title));
39911 // Provides access to phrases from a non-default language.
39912 // See phrases_en.js for example usage.
39913 this.loadForeignPhrases = function(language, phrases) {
39914 allPhrases[language] = phrases;
39917 // Displays a different language, eg "en
" or "fr
"
39918 this.setLanguage = function(language) {
39919 for (var i=0; i<allEls.length; i++) {
39920 var el = allEls[i];
39922 if (!(language in allPhrases)) {
39923 console.log(language + " not in allPhrases
");
39926 if (!(key in allPhrases[language])) {
39927 console.log(language + " does not contain phrase:
" + key);
39930 var phrase = allPhrases[language][key];
39931 el.setPhrase(phrase);
39935 // Converts the phrases to a key-pair json file.
39936 // This is a good way to export phrases for use in translation tools.
39937 this.phrasesAsJson = function(language) {
39939 for (var i=0; i<allEls.length; i++) {
39940 var el = allEls[i];
39946 for (var i=0; i<keys.length; i++) {
39948 var translated = "";
39949 if (language in allPhrases && key in allPhrases[language]) {
39950 translated = allPhrases[language][key];
39952 output[key] = translated;
39954 return JSON.stringify(output, null, 2);
39957 function getEls(nodeType) {
39958 var nodes = document.querySelectorAll(nodeType.selector);
39960 for (var i=0; i<nodes.length; i++) {
39961 var node = nodes[i];
39962 node.getKey = nodeType.getKey;
39963 node.setPhrase = nodeType.setPhrase;
39964 node.key = node.getKey();
39965 allPhrases[defaultLanguage][node.key] = node.key;
39973 <script>Translate.loadForeignPhrases("en",
39975 "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses": "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses",
39976 "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses": "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses",
39977 "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export": "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export",
39978 "
<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).",
39979 "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards": "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards",
39980 "Account": "Account",
39981 "Address": "Address",
39982 "Alternatively, download the file from the repository": "Alternatively, download the file from the repository",
39983 "BIP32 Derivation Path": "BIP32 Derivation Path",
39984 "BIP32 Extended Key": "BIP32 Extended Key",
39985 "BIP32 Extended Key (addresses only)": "BIP32 Extended Key (addresses only)",
39986 "BIP32 Root Key": "BIP32 Root Key",
39987 "BIP39 Mnemonic": "BIP39 Mnemonic",
39988 "BIP39 Passphrase (optional)": "BIP39 Passphrase (optional)",
39989 "BIP39 Seed": "BIP39 Seed",
39990 "Base
10": "Base
10",
39991 "Base
6": "Base
6",
39992 "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.",
39993 "Binary": "Binary",
39994 "Bitcoin Core": "Bitcoin Core",
39995 "Bits Per Event": "Bits Per Event",
39996 "Block Explorers": "Block Explorers",
39997 "Can be used with": "Can be used with",
40001 "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.",
40002 "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.",
40003 "Entropy": "Entropy",
40004 "Entropy Type": "Entropy Type",
40005 "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.",
40006 "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>.",
40007 "Event Count": "Event Count",
40008 "External / Internal": "External / Internal",
40009 "Filtered Entropy": "Filtered Entropy",
40010 "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>",
40011 "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>.",
40012 "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>.",
40013 "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>",
40014 "For more info see the BIP32 spec
": "For more info see the BIP32 spec
",
40015 "From entropy length (
3 words per
32 bits)
": "From entropy length (
3 words per
32 bits)
",
40016 "Generate a random mnemonic, or enter your own below
": "Generate a random mnemonic, or enter your own below
",
40017 "Get the source code from the repository
": "Get the source code from the repository
",
40019 "Hierarchical Deterministic Wallets
": "Hierarchical Deterministic Wallets
",
40020 "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.
",
40021 "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.
",
40022 "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.
",
40023 "Libraries
": "Libraries
",
40024 "Mnemonic Language
": "Mnemonic Language
",
40025 "Mnemonic Length
": "Mnemonic Length
",
40026 "Mnemonic code for generating deterministic keys
": "Mnemonic code for generating deterministic keys
",
40027 "More info
": "More info
",
40028 "Multi-Account Hierarchy for Deterministic Wallets
": "Multi-Account Hierarchy for Deterministic Wallets
",
40029 "Mycelium Wallet
": "Mycelium Wallet
",
40030 "Note these addreses are derived from the BIP32 Extended Key
": "Note these addreses are derived from the BIP32 Extended Key
",
40031 "Offline Usage
": "Offline Usage
",
40032 "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.",
40034 "Private Key": "Private Key",
40035 "Private Keys": "Private Keys",
40036 "Public Key": "Public Key",
40037 "Purpose": "Purpose",
40038 "Raw Binary": "Raw Binary",
40039 "Read more": "Read more",
40040 "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>",
40041 "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>",
40042 "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>",
40043 "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>",
40045 "Show more rows
": "Show more rows
",
40046 "Strength
": "Strength
",
40047 "Supply my own source of entropy
": "Supply my own source of entropy
",
40048 "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.
",
40049 "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>.",
40050 "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.",
40051 "This project is
100% open-source code": "This project is
100% open-source code",
40052 "Toggle": "Toggle",
40053 "Total Bits": "Total Bits",
40054 "Use hardened addresses": "Use hardened addresses",
40055 "Use path
<code>m/
0'/
0'
</code> with hardened addresses.": "Use path
<code>m/
0'/
0'
</code> with hardened addresses.",
40056 "Use path
<code>m/
44'/
0'/
0'
</code>.": "Use path
<code>m/
44'/
0'/
0'
</code>.",
40057 "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>.",
40058 "Valid entropy values include:": "Valid entropy values include:",
40059 "Warning": "Warning",
40060 "Word Count": "Word Count",
40061 "You are not a good source of entropy.": "You are not a good source of entropy.",
40062 "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).",
40063 "You can use this tool without having to be online.": "You can use this tool without having to be online.",
40068 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40069 WORDLISTS["english"] = [
40070 "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
40071 "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
40072 "action","actor","actress","actual","adapt","add","addict","address","adjust","admit",
40073 "adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent",
40074 "agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert",
40075 "alien","all","alley","allow","almost","alone","alpha","already","also","alter",
40076 "always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger",
40077 "angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique",
40078 "anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic",
40079 "area","arena","argue","arm","armed","armor","army","around","arrange","arrest",
40080 "arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset",
40081 "assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction",
40082 "audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake",
40083 "aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge",
40084 "bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain",
40085 "barrel","base","basic","basket","battle","beach","bean","beauty","because","become",
40086 "beef","before","begin","behave","behind","believe","below","belt","bench","benefit",
40087 "best","betray","better","between","beyond","bicycle","bid","bike","bind","biology",
40088 "bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless",
40089 "blind","blood","blossom","blouse","blue","blur","blush","board","boat","body",
40090 "boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss",
40091 "bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread",
40092 "breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze",
40093 "broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb",
40094 "bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy",
40095 "butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call",
40096 "calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas",
40097 "canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry",
40098 "cart","case","cash","casino","castle","casual","cat","catalog","catch","category",
40099 "cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century",
40100 "cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase",
40101 "chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child",
40102 "chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle",
40103 "citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk",
40104 "clever","click","client","cliff","climb","clinic","clip","clock","clog","close",
40105 "cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut",
40106 "code","coffee","coil","coin","collect","color","column","combine","come","comfort",
40107 "comic","common","company","concert","conduct","confirm","congress","connect","consider","control",
40108 "convince","cook","cool","copper","copy","coral","core","corn","correct","cost",
40109 "cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle",
40110 "craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek",
40111 "crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial",
40112 "cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup",
40113 "cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad",
40114 "damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal",
40115 "debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense",
40116 "define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny",
40117 "depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk",
40118 "despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond",
40119 "diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur",
40120 "direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance",
40121 "divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain",
40122 "donate","donkey","donor","door","dose","double","dove","draft","dragon","drama",
40123 "drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop",
40124 "drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf",
40125 "dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo",
40126 "ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow",
40127 "elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody",
40128 "embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless",
40129 "endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough",
40130 "enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip",
40131 "era","erase","erode","erosion","error","erupt","escape","essay","essence","estate",
40132 "eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange",
40133 "excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit",
40134 "exotic","expand","expect","expire","explain","expose","express","extend","extra","eye",
40135 "eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame",
40136 "family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father",
40137 "fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female",
40138 "fence","festival","fetch","fever","few","fiber","fiction","field","figure","file",
40139 "film","filter","final","find","fine","finger","finish","fire","firm","first",
40140 "fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor",
40141 "flee","flight","flip","float","flock","floor","flower","fluid","flush","fly",
40142 "foam","focus","fog","foil","fold","follow","food","foot","force","forest",
40143 "forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile",
40144 "frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen",
40145 "fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy",
40146 "gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp",
40147 "gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture",
40148 "ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance",
40149 "glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue",
40150 "goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown",
40151 "grab","grace","grain","grant","grape","grass","gravity","great","green","grid",
40152 "grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt",
40153 "guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy",
40154 "harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health",
40155 "heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden",
40156 "high","hill","hint","hip","hire","history","hobby","hockey","hold","hole",
40157 "holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital",
40158 "host","hotel","hour","hover","hub","huge","human","humble","humor","hundred",
40159 "hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea",
40160 "identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune",
40161 "impact","impose","improve","impulse","inch","include","income","increase","index","indicate",
40162 "indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury",
40163 "inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install",
40164 "intact","interest","into","invest","invite","involve","iron","island","isolate","issue",
40165 "item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel",
40166 "job","join","joke","journey","joy","judge","juice","jump","jungle","junior",
40167 "junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney",
40168 "kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife",
40169 "knock","know","lab","label","labor","ladder","lady","lake","lamp","language",
40170 "laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit",
40171 "layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal",
40172 "legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level",
40173 "liar","liberty","library","license","life","lift","light","like","limb","limit",
40174 "link","lion","liquid","list","little","live","lizard","load","loan","lobster",
40175 "local","lock","logic","lonely","long","loop","lottery","loud","lounge","love",
40176 "loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad",
40177 "magic","magnet","maid","mail","main","major","make","mammal","man","manage",
40178 "mandate","mango","mansion","manual","maple","marble","march","margin","marine","market",
40179 "marriage","mask","mass","master","match","material","math","matrix","matter","maximum",
40180 "maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt",
40181 "member","memory","mention","menu","mercy","merge","merit","merry","mesh","message",
40182 "metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor",
40183 "minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile",
40184 "model","modify","mom","moment","monitor","monkey","monster","month","moon","moral",
40185 "more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie",
40186 "much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual",
40187 "myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature",
40188 "near","neck","need","negative","neglect","neither","nephew","nerve","nest","net",
40189 "network","neutral","never","news","next","nice","night","noble","noise","nominee",
40190 "noodle","normal","north","nose","notable","note","nothing","notice","novel","now",
40191 "nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe",
40192 "obtain","obvious","occur","ocean","october","odor","off","offer","office","often",
40193 "oil","okay","old","olive","olympic","omit","once","one","onion","online",
40194 "only","open","opera","opinion","oppose","option","orange","orbit","orchard","order",
40195 "ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output",
40196 "outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact",
40197 "paddle","page","pair","palace","palm","panda","panel","panic","panther","paper",
40198 "parade","parent","park","parrot","party","pass","patch","path","patient","patrol",
40199 "pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen",
40200 "penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo",
40201 "phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot",
40202 "pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate",
40203 "play","please","pledge","pluck","plug","plunge","poem","poet","point","polar",
40204 "pole","police","pond","pony","pool","popular","portion","position","possible","post",
40205 "potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare",
40206 "present","pretty","prevent","price","pride","primary","print","priority","prison","private",
40207 "prize","problem","process","produce","profit","program","project","promote","proof","property",
40208 "prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin",
40209 "punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle",
40210 "pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit",
40211 "raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp",
40212 "ranch","random","range","rapid","rare","rate","rather","raven","raw","razor",
40213 "ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle",
40214 "reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release",
40215 "relief","rely","remain","remember","remind","remove","render","renew","rent","reopen",
40216 "repair","repeat","replace","report","require","rescue","resemble","resist","resource","response",
40217 "result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib",
40218 "ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot",
40219 "ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket",
40220 "romance","roof","rookie","room","rose","rotate","rough","round","route","royal",
40221 "rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness",
40222 "safe","sail","salad","salmon","salon","salt","salute","same","sample","sand",
40223 "satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter",
40224 "scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script",
40225 "scrub","sea","search","season","seat","second","secret","section","security","seed",
40226 "seek","segment","select","sell","seminar","senior","sense","sentence","series","service",
40227 "session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell",
40228 "sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop",
40229 "short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side",
40230 "siege","sight","sign","silent","silk","silly","silver","similar","simple","since",
40231 "sing","siren","sister","situate","six","size","skate","sketch","ski","skill",
40232 "skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight",
40233 "slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth",
40234 "snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda",
40235 "soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry",
40236 "sort","soul","sound","soup","source","south","space","spare","spatial","spawn",
40237 "speak","special","speed","spell","spend","sphere","spice","spider","spike","spin",
40238 "spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring",
40239 "spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp",
40240 "stand","start","state","stay","steak","steel","stem","step","stereo","stick",
40241 "still","sting","stock","stomach","stone","stool","story","stove","strategy","street",
40242 "strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway",
40243 "success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny",
40244 "sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey",
40245 "suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim",
40246 "swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag",
40247 "tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi",
40248 "teach","team","tell","ten","tenant","tennis","tent","term","test","text",
40249 "thank","that","theme","then","theory","there","they","thing","this","thought",
40250 "three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber",
40251 "time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler",
40252 "toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool",
40253 "tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist",
40254 "toward","tower","town","toy","track","trade","traffic","tragic","train","transfer",
40255 "trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick",
40256 "trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust",
40257 "truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle",
40258 "twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella",
40259 "unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform",
40260 "unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade",
40261 "uphold","upon","upper","upset","urban","urge","usage","use","used","useful",
40262 "useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van",
40263 "vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue",
40264 "verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory",
40265 "video","view","village","vintage","violin","virtual","virus","visa","visit","visual",
40266 "vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage",
40267 "wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash",
40268 "wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather",
40269 "web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat",
40270 "wheel","when","where","whip","whisper","wide","width","wife","wild","will",
40271 "win","window","wine","wing","wink","winner","winter","wire","wisdom","wise",
40272 "wish","witness","wolf","woman","wonder","wood","wool","word","work","world",
40273 "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year",
40274 "yellow","you","young","youth","zebra","zero","zone","zoo"]
40276 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40277 WORDLISTS["japanese"] = [
40278 "あいこくしん", "あいさつ", "あいだ", "あおぞら", "あかちゃん", "あきる", "あけがた", "あける", "あこがれる", "あさい",
40279 "あさひ", "あしあと", "あじわう", "あずかる", "あずき", "あそぶ", "あたえる", "あたためる", "あたりまえ", "あたる",
40280 "あつい", "あつかう", "あっしゅく", "あつまり", "あつめる", "あてな", "あてはまる", "あひる", "あぶら", "あぶる",
40281 "あふれる", "あまい", "あまど", "あまやかす", "あまり", "あみもの", "あめりか", "あやまる", "あゆむ", "あらいぐま",
40282 "あらし", "あらすじ", "あらためる", "あらゆる", "あらわす", "ありがとう", "あわせる", "あわてる", "あんい", "あんがい",
40283 "あんこ", "あんぜん", "あんてい", "あんない", "あんまり", "いいだす", "いおん", "いがい", "いがく", "いきおい",
40284 "いきなり", "いきもの", "いきる", "いくじ", "いくぶん", "いけばな", "いけん", "いこう", "いこく", "いこつ",
40285 "いさましい", "いさん", "いしき", "いじゅう", "いじょう", "いじわる", "いずみ", "いずれ", "いせい", "いせえび",
40286 "いせかい", "いせき", "いぜん", "いそうろう", "いそがしい", "いだい", "いだく", "いたずら", "いたみ", "いたりあ",
40287 "いちおう", "いちじ", "いちど", "いちば", "いちぶ", "いちりゅう", "いつか", "いっしゅん", "いっせい", "いっそう",
40288 "いったん", "いっち", "いってい", "いっぽう", "いてざ", "いてん", "いどう", "いとこ", "いない", "いなか",
40289 "いねむり", "いのち", "いのる", "いはつ", "いばる", "いはん", "いびき", "いひん", "いふく", "いへん",
40290 "いほう", "いみん", "いもうと", "いもたれ", "いもり", "いやがる", "いやす", "いよかん", "いよく", "いらい",
40291 "いらすと", "いりぐち", "いりょう", "いれい", "いれもの", "いれる", "いろえんぴつ", "いわい", "いわう", "いわかん",
40292 "いわば", "いわゆる", "いんげんまめ", "いんさつ", "いんしょう", "いんよう", "うえき", "うえる", "うおざ", "うがい",
40293 "うかぶ", "うかべる", "うきわ", "うくらいな", "うくれれ", "うけたまわる", "うけつけ", "うけとる", "うけもつ", "うける",
40294 "うごかす", "うごく", "うこん", "うさぎ", "うしなう", "うしろがみ", "うすい", "うすぎ", "うすぐらい", "うすめる",
40295 "うせつ", "うちあわせ", "うちがわ", "うちき", "うちゅう", "うっかり", "うつくしい", "うったえる", "うつる", "うどん",
40296 "うなぎ", "うなじ", "うなずく", "うなる", "うねる", "うのう", "うぶげ", "うぶごえ", "うまれる", "うめる",
40297 "うもう", "うやまう", "うよく", "うらがえす", "うらぐち", "うらない", "うりあげ", "うりきれ", "うるさい", "うれしい",
40298 "うれゆき", "うれる", "うろこ", "うわき", "うわさ", "うんこう", "うんちん", "うんてん", "うんどう", "えいえん",
40299 "えいが", "えいきょう", "えいご", "えいせい", "えいぶん", "えいよう", "えいわ", "えおり", "えがお", "えがく",
40300 "えきたい", "えくせる", "えしゃく", "えすて", "えつらん", "えのぐ", "えほうまき", "えほん", "えまき", "えもじ",
40301 "えもの", "えらい", "えらぶ", "えりあ", "えんえん", "えんかい", "えんぎ", "えんげき", "えんしゅう", "えんぜつ",
40302 "えんそく", "えんちょう", "えんとつ", "おいかける", "おいこす", "おいしい", "おいつく", "おうえん", "おうさま", "おうじ",
40303 "おうせつ", "おうたい", "おうふく", "おうべい", "おうよう", "おえる", "おおい", "おおう", "おおどおり", "おおや",
40304 "おおよそ", "おかえり", "おかず", "おがむ", "おかわり", "おぎなう", "おきる", "おくさま", "おくじょう", "おくりがな",
40305 "おくる", "おくれる", "おこす", "おこなう", "おこる", "おさえる", "おさない", "おさめる", "おしいれ", "おしえる",
40306 "おじぎ", "おじさん", "おしゃれ", "おそらく", "おそわる", "おたがい", "おたく", "おだやか", "おちつく", "おっと",
40307 "おつり", "おでかけ", "おとしもの", "おとなしい", "おどり", "おどろかす", "おばさん", "おまいり", "おめでとう", "おもいで",
40308 "おもう", "おもたい", "おもちゃ", "おやつ", "おやゆび", "およぼす", "おらんだ", "おろす", "おんがく", "おんけい",
40309 "おんしゃ", "おんせん", "おんだん", "おんちゅう", "おんどけい", "かあつ", "かいが", "がいき", "がいけん", "がいこう",
40310 "かいさつ", "かいしゃ", "かいすいよく", "かいぜん", "かいぞうど", "かいつう", "かいてん", "かいとう", "かいふく", "がいへき",
40311 "かいほう", "かいよう", "がいらい", "かいわ", "かえる", "かおり", "かかえる", "かがく", "かがし", "かがみ",
40312 "かくご", "かくとく", "かざる", "がぞう", "かたい", "かたち", "がちょう", "がっきゅう", "がっこう", "がっさん",
40313 "がっしょう", "かなざわし", "かのう", "がはく", "かぶか", "かほう", "かほご", "かまう", "かまぼこ", "かめれおん",
40314 "かゆい", "かようび", "からい", "かるい", "かろう", "かわく", "かわら", "がんか", "かんけい", "かんこう",
40315 "かんしゃ", "かんそう", "かんたん", "かんち", "がんばる", "きあい", "きあつ", "きいろ", "ぎいん", "きうい",
40316 "きうん", "きえる", "きおう", "きおく", "きおち", "きおん", "きかい", "きかく", "きかんしゃ", "ききて",
40317 "きくばり", "きくらげ", "きけんせい", "きこう", "きこえる", "きこく", "きさい", "きさく", "きさま", "きさらぎ",
40318 "ぎじかがく", "ぎしき", "ぎじたいけん", "ぎじにってい", "ぎじゅつしゃ", "きすう", "きせい", "きせき", "きせつ", "きそう",
40319 "きぞく", "きぞん", "きたえる", "きちょう", "きつえん", "ぎっちり", "きつつき", "きつね", "きてい", "きどう",
40320 "きどく", "きない", "きなが", "きなこ", "きぬごし", "きねん", "きのう", "きのした", "きはく", "きびしい",
40321 "きひん", "きふく", "きぶん", "きぼう", "きほん", "きまる", "きみつ", "きむずかしい", "きめる", "きもだめし",
40322 "きもち", "きもの", "きゃく", "きやく", "ぎゅうにく", "きよう", "きょうりゅう", "きらい", "きらく", "きりん",
40323 "きれい", "きれつ", "きろく", "ぎろん", "きわめる", "ぎんいろ", "きんかくじ", "きんじょ", "きんようび", "ぐあい",
40324 "くいず", "くうかん", "くうき", "くうぐん", "くうこう", "ぐうせい", "くうそう", "ぐうたら", "くうふく", "くうぼ",
40325 "くかん", "くきょう", "くげん", "ぐこう", "くさい", "くさき", "くさばな", "くさる", "くしゃみ", "くしょう",
40326 "くすのき", "くすりゆび", "くせげ", "くせん", "ぐたいてき", "くださる", "くたびれる", "くちこみ", "くちさき", "くつした",
40327 "ぐっすり", "くつろぐ", "くとうてん", "くどく", "くなん", "くねくね", "くのう", "くふう", "くみあわせ", "くみたてる",
40328 "くめる", "くやくしょ", "くらす", "くらべる", "くるま", "くれる", "くろう", "くわしい", "ぐんかん", "ぐんしょく",
40329 "ぐんたい", "ぐんて", "けあな", "けいかく", "けいけん", "けいこ", "けいさつ", "げいじゅつ", "けいたい", "げいのうじん",
40330 "けいれき", "けいろ", "けおとす", "けおりもの", "げきか", "げきげん", "げきだん", "げきちん", "げきとつ", "げきは",
40331 "げきやく", "げこう", "げこくじょう", "げざい", "けさき", "げざん", "けしき", "けしごむ", "けしょう", "げすと",
40332 "けたば", "けちゃっぷ", "けちらす", "けつあつ", "けつい", "けつえき", "けっこん", "けつじょ", "けっせき", "けってい",
40333 "けつまつ", "げつようび", "げつれい", "けつろん", "げどく", "けとばす", "けとる", "けなげ", "けなす", "けなみ",
40334 "けぬき", "げねつ", "けねん", "けはい", "げひん", "けぶかい", "げぼく", "けまり", "けみかる", "けむし",
40335 "けむり", "けもの", "けらい", "けろけろ", "けわしい", "けんい", "けんえつ", "けんお", "けんか", "げんき",
40336 "けんげん", "けんこう", "けんさく", "けんしゅう", "けんすう", "げんそう", "けんちく", "けんてい", "けんとう", "けんない",
40337 "けんにん", "げんぶつ", "けんま", "けんみん", "けんめい", "けんらん", "けんり", "こあくま", "こいぬ", "こいびと",
40338 "ごうい", "こうえん", "こうおん", "こうかん", "ごうきゅう", "ごうけい", "こうこう", "こうさい", "こうじ", "こうすい",
40339 "ごうせい", "こうそく", "こうたい", "こうちゃ", "こうつう", "こうてい", "こうどう", "こうない", "こうはい", "ごうほう",
40340 "ごうまん", "こうもく", "こうりつ", "こえる", "こおり", "ごかい", "ごがつ", "ごかん", "こくご", "こくさい",
40341 "こくとう", "こくない", "こくはく", "こぐま", "こけい", "こける", "ここのか", "こころ", "こさめ", "こしつ",
40342 "こすう", "こせい", "こせき", "こぜん", "こそだて", "こたい", "こたえる", "こたつ", "こちょう", "こっか",
40343 "こつこつ", "こつばん", "こつぶ", "こてい", "こてん", "ことがら", "ことし", "ことば", "ことり", "こなごな",
40344 "こねこね", "このまま", "このみ", "このよ", "ごはん", "こひつじ", "こふう", "こふん", "こぼれる", "ごまあぶら",
40345 "こまかい", "ごますり", "こまつな", "こまる", "こむぎこ", "こもじ", "こもち", "こもの", "こもん", "こやく",
40346 "こやま", "こゆう", "こゆび", "こよい", "こよう", "こりる", "これくしょん", "ころっけ", "こわもて", "こわれる",
40347 "こんいん", "こんかい", "こんき", "こんしゅう", "こんすい", "こんだて", "こんとん", "こんなん", "こんびに", "こんぽん",
40348 "こんまけ", "こんや", "こんれい", "こんわく", "ざいえき", "さいかい", "さいきん", "ざいげん", "ざいこ", "さいしょ",
40349 "さいせい", "ざいたく", "ざいちゅう", "さいてき", "ざいりょう", "さうな", "さかいし", "さがす", "さかな", "さかみち",
40350 "さがる", "さぎょう", "さくし", "さくひん", "さくら", "さこく", "さこつ", "さずかる", "ざせき", "さたん",
40351 "さつえい", "ざつおん", "ざっか", "ざつがく", "さっきょく", "ざっし", "さつじん", "ざっそう", "さつたば", "さつまいも",
40352 "さてい", "さといも", "さとう", "さとおや", "さとし", "さとる", "さのう", "さばく", "さびしい", "さべつ",
40353 "さほう", "さほど", "さます", "さみしい", "さみだれ", "さむけ", "さめる", "さやえんどう", "さゆう", "さよう",
40354 "さよく", "さらだ", "ざるそば", "さわやか", "さわる", "さんいん", "さんか", "さんきゃく", "さんこう", "さんさい",
40355 "ざんしょ", "さんすう", "さんせい", "さんそ", "さんち", "さんま", "さんみ", "さんらん", "しあい", "しあげ",
40356 "しあさって", "しあわせ", "しいく", "しいん", "しうち", "しえい", "しおけ", "しかい", "しかく", "じかん",
40357 "しごと", "しすう", "じだい", "したうけ", "したぎ", "したて", "したみ", "しちょう", "しちりん", "しっかり",
40358 "しつじ", "しつもん", "してい", "してき", "してつ", "じてん", "じどう", "しなぎれ", "しなもの", "しなん",
40359 "しねま", "しねん", "しのぐ", "しのぶ", "しはい", "しばかり", "しはつ", "しはらい", "しはん", "しひょう",
40360 "しふく", "じぶん", "しへい", "しほう", "しほん", "しまう", "しまる", "しみん", "しむける", "じむしょ",
40361 "しめい", "しめる", "しもん", "しゃいん", "しゃうん", "しゃおん", "じゃがいも", "しやくしょ", "しゃくほう", "しゃけん",
40362 "しゃこ", "しゃざい", "しゃしん", "しゃせん", "しゃそう", "しゃたい", "しゃちょう", "しゃっきん", "じゃま", "しゃりん",
40363 "しゃれい", "じゆう", "じゅうしょ", "しゅくはく", "じゅしん", "しゅっせき", "しゅみ", "しゅらば", "じゅんばん", "しょうかい",
40364 "しょくたく", "しょっけん", "しょどう", "しょもつ", "しらせる", "しらべる", "しんか", "しんこう", "じんじゃ", "しんせいじ",
40365 "しんちく", "しんりん", "すあげ", "すあし", "すあな", "ずあん", "すいえい", "すいか", "すいとう", "ずいぶん",
40366 "すいようび", "すうがく", "すうじつ", "すうせん", "すおどり", "すきま", "すくう", "すくない", "すける", "すごい",
40367 "すこし", "ずさん", "すずしい", "すすむ", "すすめる", "すっかり", "ずっしり", "ずっと", "すてき", "すてる",
40368 "すねる", "すのこ", "すはだ", "すばらしい", "ずひょう", "ずぶぬれ", "すぶり", "すふれ", "すべて", "すべる",
40369 "ずほう", "すぼん", "すまい", "すめし", "すもう", "すやき", "すらすら", "するめ", "すれちがう", "すろっと",
40370 "すわる", "すんぜん", "すんぽう", "せあぶら", "せいかつ", "せいげん", "せいじ", "せいよう", "せおう", "せかいかん",
40371 "せきにん", "せきむ", "せきゆ", "せきらんうん", "せけん", "せこう", "せすじ", "せたい", "せたけ", "せっかく",
40372 "せっきゃく", "ぜっく", "せっけん", "せっこつ", "せっさたくま", "せつぞく", "せつだん", "せつでん", "せっぱん", "せつび",
40373 "せつぶん", "せつめい", "せつりつ", "せなか", "せのび", "せはば", "せびろ", "せぼね", "せまい", "せまる",
40374 "せめる", "せもたれ", "せりふ", "ぜんあく", "せんい", "せんえい", "せんか", "せんきょ", "せんく", "せんげん",
40375 "ぜんご", "せんさい", "せんしゅ", "せんすい", "せんせい", "せんぞ", "せんたく", "せんちょう", "せんてい", "せんとう",
40376 "せんぬき", "せんねん", "せんぱい", "ぜんぶ", "ぜんぽう", "せんむ", "せんめんじょ", "せんもん", "せんやく", "せんゆう",
40377 "せんよう", "ぜんら", "ぜんりゃく", "せんれい", "せんろ", "そあく", "そいとげる", "そいね", "そうがんきょう", "そうき",
40378 "そうご", "そうしん", "そうだん", "そうなん", "そうび", "そうめん", "そうり", "そえもの", "そえん", "そがい",
40379 "そげき", "そこう", "そこそこ", "そざい", "そしな", "そせい", "そせん", "そそぐ", "そだてる", "そつう",
40380 "そつえん", "そっかん", "そつぎょう", "そっけつ", "そっこう", "そっせん", "そっと", "そとがわ", "そとづら", "そなえる",
40381 "そなた", "そふぼ", "そぼく", "そぼろ", "そまつ", "そまる", "そむく", "そむりえ", "そめる", "そもそも",
40382 "そよかぜ", "そらまめ", "そろう", "そんかい", "そんけい", "そんざい", "そんしつ", "そんぞく", "そんちょう", "ぞんび",
40383 "ぞんぶん", "そんみん", "たあい", "たいいん", "たいうん", "たいえき", "たいおう", "だいがく", "たいき", "たいぐう",
40384 "たいけん", "たいこ", "たいざい", "だいじょうぶ", "だいすき", "たいせつ", "たいそう", "だいたい", "たいちょう", "たいてい",
40385 "だいどころ", "たいない", "たいねつ", "たいのう", "たいはん", "だいひょう", "たいふう", "たいへん", "たいほ", "たいまつばな",
40386 "たいみんぐ", "たいむ", "たいめん", "たいやき", "たいよう", "たいら", "たいりょく", "たいる", "たいわん", "たうえ",
40387 "たえる", "たおす", "たおる", "たおれる", "たかい", "たかね", "たきび", "たくさん", "たこく", "たこやき",
40388 "たさい", "たしざん", "だじゃれ", "たすける", "たずさわる", "たそがれ", "たたかう", "たたく", "ただしい", "たたみ",
40389 "たちばな", "だっかい", "だっきゃく", "だっこ", "だっしゅつ", "だったい", "たてる", "たとえる", "たなばた", "たにん",
40390 "たぬき", "たのしみ", "たはつ", "たぶん", "たべる", "たぼう", "たまご", "たまる", "だむる", "ためいき",
40391 "ためす", "ためる", "たもつ", "たやすい", "たよる", "たらす", "たりきほんがん", "たりょう", "たりる", "たると",
40392 "たれる", "たれんと", "たろっと", "たわむれる", "だんあつ", "たんい", "たんおん", "たんか", "たんき", "たんけん",
40393 "たんご", "たんさん", "たんじょうび", "だんせい", "たんそく", "たんたい", "だんち", "たんてい", "たんとう", "だんな",
40394 "たんにん", "だんねつ", "たんのう", "たんぴん", "だんぼう", "たんまつ", "たんめい", "だんれつ", "だんろ", "だんわ",
40395 "ちあい", "ちあん", "ちいき", "ちいさい", "ちえん", "ちかい", "ちから", "ちきゅう", "ちきん", "ちけいず",
40396 "ちけん", "ちこく", "ちさい", "ちしき", "ちしりょう", "ちせい", "ちそう", "ちたい", "ちたん", "ちちおや",
40397 "ちつじょ", "ちてき", "ちてん", "ちぬき", "ちぬり", "ちのう", "ちひょう", "ちへいせん", "ちほう", "ちまた",
40398 "ちみつ", "ちみどろ", "ちめいど", "ちゃんこなべ", "ちゅうい", "ちゆりょく", "ちょうし", "ちょさくけん", "ちらし", "ちらみ",
40399 "ちりがみ", "ちりょう", "ちるど", "ちわわ", "ちんたい", "ちんもく", "ついか", "ついたち", "つうか", "つうじょう",
40400 "つうはん", "つうわ", "つかう", "つかれる", "つくね", "つくる", "つけね", "つける", "つごう", "つたえる",
40401 "つづく", "つつじ", "つつむ", "つとめる", "つながる", "つなみ", "つねづね", "つのる", "つぶす", "つまらない",
40402 "つまる", "つみき", "つめたい", "つもり", "つもる", "つよい", "つるぼ", "つるみく", "つわもの", "つわり",
40403 "てあし", "てあて", "てあみ", "ていおん", "ていか", "ていき", "ていけい", "ていこく", "ていさつ", "ていし",
40404 "ていせい", "ていたい", "ていど", "ていねい", "ていひょう", "ていへん", "ていぼう", "てうち", "ておくれ", "てきとう",
40405 "てくび", "でこぼこ", "てさぎょう", "てさげ", "てすり", "てそう", "てちがい", "てちょう", "てつがく", "てつづき",
40406 "でっぱ", "てつぼう", "てつや", "でぬかえ", "てぬき", "てぬぐい", "てのひら", "てはい", "てぶくろ", "てふだ",
40407 "てほどき", "てほん", "てまえ", "てまきずし", "てみじか", "てみやげ", "てらす", "てれび", "てわけ", "てわたし",
40408 "でんあつ", "てんいん", "てんかい", "てんき", "てんぐ", "てんけん", "てんごく", "てんさい", "てんし", "てんすう",
40409 "でんち", "てんてき", "てんとう", "てんない", "てんぷら", "てんぼうだい", "てんめつ", "てんらんかい", "でんりょく", "でんわ",
40410 "どあい", "といれ", "どうかん", "とうきゅう", "どうぐ", "とうし", "とうむぎ", "とおい", "とおか", "とおく",
40411 "とおす", "とおる", "とかい", "とかす", "ときおり", "ときどき", "とくい", "とくしゅう", "とくてん", "とくに",
40412 "とくべつ", "とけい", "とける", "とこや", "とさか", "としょかん", "とそう", "とたん", "とちゅう", "とっきゅう",
40413 "とっくん", "とつぜん", "とつにゅう", "とどける", "ととのえる", "とない", "となえる", "となり", "とのさま", "とばす",
40414 "どぶがわ", "とほう", "とまる", "とめる", "ともだち", "ともる", "どようび", "とらえる", "とんかつ", "どんぶり",
40415 "ないかく", "ないこう", "ないしょ", "ないす", "ないせん", "ないそう", "なおす", "ながい", "なくす", "なげる",
40416 "なこうど", "なさけ", "なたでここ", "なっとう", "なつやすみ", "ななおし", "なにごと", "なにもの", "なにわ", "なのか",
40417 "なふだ", "なまいき", "なまえ", "なまみ", "なみだ", "なめらか", "なめる", "なやむ", "ならう", "ならび",
40418 "ならぶ", "なれる", "なわとび", "なわばり", "にあう", "にいがた", "にうけ", "におい", "にかい", "にがて",
40419 "にきび", "にくしみ", "にくまん", "にげる", "にさんかたんそ", "にしき", "にせもの", "にちじょう", "にちようび", "にっか",
40420 "にっき", "にっけい", "にっこう", "にっさん", "にっしょく", "にっすう", "にっせき", "にってい", "になう", "にほん",
40421 "にまめ", "にもつ", "にやり", "にゅういん", "にりんしゃ", "にわとり", "にんい", "にんか", "にんき", "にんげん",
40422 "にんしき", "にんずう", "にんそう", "にんたい", "にんち", "にんてい", "にんにく", "にんぷ", "にんまり", "にんむ",
40423 "にんめい", "にんよう", "ぬいくぎ", "ぬかす", "ぬぐいとる", "ぬぐう", "ぬくもり", "ぬすむ", "ぬまえび", "ぬめり",
40424 "ぬらす", "ぬんちゃく", "ねあげ", "ねいき", "ねいる", "ねいろ", "ねぐせ", "ねくたい", "ねくら", "ねこぜ",
40425 "ねこむ", "ねさげ", "ねすごす", "ねそべる", "ねだん", "ねつい", "ねっしん", "ねつぞう", "ねったいぎょ", "ねぶそく",
40426 "ねふだ", "ねぼう", "ねほりはほり", "ねまき", "ねまわし", "ねみみ", "ねむい", "ねむたい", "ねもと", "ねらう",
40427 "ねわざ", "ねんいり", "ねんおし", "ねんかん", "ねんきん", "ねんぐ", "ねんざ", "ねんし", "ねんちゃく", "ねんど",
40428 "ねんぴ", "ねんぶつ", "ねんまつ", "ねんりょう", "ねんれい", "のいず", "のおづま", "のがす", "のきなみ", "のこぎり",
40429 "のこす", "のこる", "のせる", "のぞく", "のぞむ", "のたまう", "のちほど", "のっく", "のばす", "のはら",
40430 "のべる", "のぼる", "のみもの", "のやま", "のらいぬ", "のらねこ", "のりもの", "のりゆき", "のれん", "のんき",
40431 "ばあい", "はあく", "ばあさん", "ばいか", "ばいく", "はいけん", "はいご", "はいしん", "はいすい", "はいせん",
40432 "はいそう", "はいち", "ばいばい", "はいれつ", "はえる", "はおる", "はかい", "ばかり", "はかる", "はくしゅ",
40433 "はけん", "はこぶ", "はさみ", "はさん", "はしご", "ばしょ", "はしる", "はせる", "ぱそこん", "はそん",
40434 "はたん", "はちみつ", "はつおん", "はっかく", "はづき", "はっきり", "はっくつ", "はっけん", "はっこう", "はっさん",
40435 "はっしん", "はったつ", "はっちゅう", "はってん", "はっぴょう", "はっぽう", "はなす", "はなび", "はにかむ", "はぶらし",
40436 "はみがき", "はむかう", "はめつ", "はやい", "はやし", "はらう", "はろうぃん", "はわい", "はんい", "はんえい",
40437 "はんおん", "はんかく", "はんきょう", "ばんぐみ", "はんこ", "はんしゃ", "はんすう", "はんだん", "ぱんち", "ぱんつ",
40438 "はんてい", "はんとし", "はんのう", "はんぱ", "はんぶん", "はんぺん", "はんぼうき", "はんめい", "はんらん", "はんろん",
40439 "ひいき", "ひうん", "ひえる", "ひかく", "ひかり", "ひかる", "ひかん", "ひくい", "ひけつ", "ひこうき",
40440 "ひこく", "ひさい", "ひさしぶり", "ひさん", "びじゅつかん", "ひしょ", "ひそか", "ひそむ", "ひたむき", "ひだり",
40441 "ひたる", "ひつぎ", "ひっこし", "ひっし", "ひつじゅひん", "ひっす", "ひつぜん", "ぴったり", "ぴっちり", "ひつよう",
40442 "ひてい", "ひとごみ", "ひなまつり", "ひなん", "ひねる", "ひはん", "ひびく", "ひひょう", "ひほう", "ひまわり",
40443 "ひまん", "ひみつ", "ひめい", "ひめじし", "ひやけ", "ひやす", "ひよう", "びょうき", "ひらがな", "ひらく",
40444 "ひりつ", "ひりょう", "ひるま", "ひるやすみ", "ひれい", "ひろい", "ひろう", "ひろき", "ひろゆき", "ひんかく",
40445 "ひんけつ", "ひんこん", "ひんしゅ", "ひんそう", "ぴんち", "ひんぱん", "びんぼう", "ふあん", "ふいうち", "ふうけい",
40446 "ふうせん", "ぷうたろう", "ふうとう", "ふうふ", "ふえる", "ふおん", "ふかい", "ふきん", "ふくざつ", "ふくぶくろ",
40447 "ふこう", "ふさい", "ふしぎ", "ふじみ", "ふすま", "ふせい", "ふせぐ", "ふそく", "ぶたにく", "ふたん",
40448 "ふちょう", "ふつう", "ふつか", "ふっかつ", "ふっき", "ふっこく", "ぶどう", "ふとる", "ふとん", "ふのう",
40449 "ふはい", "ふひょう", "ふへん", "ふまん", "ふみん", "ふめつ", "ふめん", "ふよう", "ふりこ", "ふりる",
40450 "ふるい", "ふんいき", "ぶんがく", "ぶんぐ", "ふんしつ", "ぶんせき", "ふんそう", "ぶんぽう", "へいあん", "へいおん",
40451 "へいがい", "へいき", "へいげん", "へいこう", "へいさ", "へいしゃ", "へいせつ", "へいそ", "へいたく", "へいてん",
40452 "へいねつ", "へいわ", "へきが", "へこむ", "べにいろ", "べにしょうが", "へらす", "へんかん", "べんきょう", "べんごし",
40453 "へんさい", "へんたい", "べんり", "ほあん", "ほいく", "ぼうぎょ", "ほうこく", "ほうそう", "ほうほう", "ほうもん",
40454 "ほうりつ", "ほえる", "ほおん", "ほかん", "ほきょう", "ぼきん", "ほくろ", "ほけつ", "ほけん", "ほこう",
40455 "ほこる", "ほしい", "ほしつ", "ほしゅ", "ほしょう", "ほせい", "ほそい", "ほそく", "ほたて", "ほたる",
40456 "ぽちぶくろ", "ほっきょく", "ほっさ", "ほったん", "ほとんど", "ほめる", "ほんい", "ほんき", "ほんけ", "ほんしつ",
40457 "ほんやく", "まいにち", "まかい", "まかせる", "まがる", "まける", "まこと", "まさつ", "まじめ", "ますく",
40458 "まぜる", "まつり", "まとめ", "まなぶ", "まぬけ", "まねく", "まほう", "まもる", "まゆげ", "まよう",
40459 "まろやか", "まわす", "まわり", "まわる", "まんが", "まんきつ", "まんぞく", "まんなか", "みいら", "みうち",
40460 "みえる", "みがく", "みかた", "みかん", "みけん", "みこん", "みじかい", "みすい", "みすえる", "みせる",
40461 "みっか", "みつかる", "みつける", "みてい", "みとめる", "みなと", "みなみかさい", "みねらる", "みのう", "みのがす",
40462 "みほん", "みもと", "みやげ", "みらい", "みりょく", "みわく", "みんか", "みんぞく", "むいか", "むえき",
40463 "むえん", "むかい", "むかう", "むかえ", "むかし", "むぎちゃ", "むける", "むげん", "むさぼる", "むしあつい",
40464 "むしば", "むじゅん", "むしろ", "むすう", "むすこ", "むすぶ", "むすめ", "むせる", "むせん", "むちゅう",
40465 "むなしい", "むのう", "むやみ", "むよう", "むらさき", "むりょう", "むろん", "めいあん", "めいうん", "めいえん",
40466 "めいかく", "めいきょく", "めいさい", "めいし", "めいそう", "めいぶつ", "めいれい", "めいわく", "めぐまれる", "めざす",
40467 "めした", "めずらしい", "めだつ", "めまい", "めやす", "めんきょ", "めんせき", "めんどう", "もうしあげる", "もうどうけん",
40468 "もえる", "もくし", "もくてき", "もくようび", "もちろん", "もどる", "もらう", "もんく", "もんだい", "やおや",
40469 "やける", "やさい", "やさしい", "やすい", "やすたろう", "やすみ", "やせる", "やそう", "やたい", "やちん",
40470 "やっと", "やっぱり", "やぶる", "やめる", "ややこしい", "やよい", "やわらかい", "ゆうき", "ゆうびんきょく", "ゆうべ",
40471 "ゆうめい", "ゆけつ", "ゆしゅつ", "ゆせん", "ゆそう", "ゆたか", "ゆちゃく", "ゆでる", "ゆにゅう", "ゆびわ",
40472 "ゆらい", "ゆれる", "ようい", "ようか", "ようきゅう", "ようじ", "ようす", "ようちえん", "よかぜ", "よかん",
40473 "よきん", "よくせい", "よくぼう", "よけい", "よごれる", "よさん", "よしゅう", "よそう", "よそく", "よっか",
40474 "よてい", "よどがわく", "よねつ", "よやく", "よゆう", "よろこぶ", "よろしい", "らいう", "らくがき", "らくご",
40475 "らくさつ", "らくだ", "らしんばん", "らせん", "らぞく", "らたい", "らっか", "られつ", "りえき", "りかい",
40476 "りきさく", "りきせつ", "りくぐん", "りくつ", "りけん", "りこう", "りせい", "りそう", "りそく", "りてん",
40477 "りねん", "りゆう", "りゅうがく", "りよう", "りょうり", "りょかん", "りょくちゃ", "りょこう", "りりく", "りれき",
40478 "りろん", "りんご", "るいけい", "るいさい", "るいじ", "るいせき", "るすばん", "るりがわら", "れいかん", "れいぎ",
40479 "れいせい", "れいぞうこ", "れいとう", "れいぼう", "れきし", "れきだい", "れんあい", "れんけい", "れんこん", "れんさい",
40480 "れんしゅう", "れんぞく", "れんらく", "ろうか", "ろうご", "ろうじん", "ろうそく", "ろくが", "ろこつ", "ろじうら",
40481 "ろしゅつ", "ろせん", "ろてん", "ろめん", "ろれつ", "ろんぎ", "ろんぱ", "ろんぶん", "ろんり", "わかす",
40482 "わかめ", "わかやま", "わかれる", "わしつ", "わじまし", "わすれもの", "わらう", "われる"]
40484 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40485 WORDLISTS["spanish"] = [
40486 "ábaco", "abdomen", "abeja", "abierto", "abogado", "abono", "aborto", "abrazo", "abrir", "abuelo",
40487 "abuso", "acabar", "academia", "acceso", "acción", "aceite", "acelga", "acento", "aceptar", "ácido",
40488 "aclarar", "acné", "acoger", "acoso", "activo", "acto", "actriz", "actuar", "acudir", "acuerdo",
40489 "acusar", "adicto", "admitir", "adoptar", "adorno", "aduana", "adulto", "aéreo", "afectar", "afición",
40490 "afinar", "afirmar", "ágil", "agitar", "agonía", "agosto", "agotar", "agregar", "agrio", "agua",
40491 "agudo", "águila", "aguja", "ahogo", "ahorro", "aire", "aislar", "ajedrez", "ajeno", "ajuste",
40492 "alacrán", "alambre", "alarma", "alba", "álbum", "alcalde", "aldea", "alegre", "alejar", "alerta",
40493 "aleta", "alfiler", "alga", "algodón", "aliado", "aliento", "alivio", "alma", "almeja", "almíbar",
40494 "altar", "alteza", "altivo", "alto", "altura", "alumno", "alzar", "amable", "amante", "amapola",
40495 "amargo", "amasar", "ámbar", "ámbito", "ameno", "amigo", "amistad", "amor", "amparo", "amplio",
40496 "ancho", "anciano", "ancla", "andar", "andén", "anemia", "ángulo", "anillo", "ánimo", "anís",
40497 "anotar", "antena", "antiguo", "antojo", "anual", "anular", "anuncio", "añadir", "añejo", "año",
40498 "apagar", "aparato", "apetito", "apio", "aplicar", "apodo", "aporte", "apoyo", "aprender", "aprobar",
40499 "apuesta", "apuro", "arado", "araña", "arar", "árbitro", "árbol", "arbusto", "archivo", "arco",
40500 "arder", "ardilla", "arduo", "área", "árido", "aries", "armonía", "arnés", "aroma", "arpa",
40501 "arpón", "arreglo", "arroz", "arruga", "arte", "artista", "asa", "asado", "asalto", "ascenso",
40502 "asegurar", "aseo", "asesor", "asiento", "asilo", "asistir", "asno", "asombro", "áspero", "astilla",
40503 "astro", "astuto", "asumir", "asunto", "atajo", "ataque", "atar", "atento", "ateo", "ático",
40504 "atleta", "átomo", "atraer", "atroz", "atún", "audaz", "audio", "auge", "aula", "aumento",
40505 "ausente", "autor", "aval", "avance", "avaro", "ave", "avellana", "avena", "avestruz", "avión",
40506 "aviso", "ayer", "ayuda", "ayuno", "azafrán", "azar", "azote", "azúcar", "azufre", "azul",
40507 "baba", "babor", "bache", "bahía", "baile", "bajar", "balanza", "balcón", "balde", "bambú",
40508 "banco", "banda", "baño", "barba", "barco", "barniz", "barro", "báscula", "bastón", "basura",
40509 "batalla", "batería", "batir", "batuta", "baúl", "bazar", "bebé", "bebida", "bello", "besar",
40510 "beso", "bestia", "bicho", "bien", "bingo", "blanco", "bloque", "blusa", "boa", "bobina",
40511 "bobo", "boca", "bocina", "boda", "bodega", "boina", "bola", "bolero", "bolsa", "bomba",
40512 "bondad", "bonito", "bono", "bonsái", "borde", "borrar", "bosque", "bote", "botín", "bóveda",
40513 "bozal", "bravo", "brazo", "brecha", "breve", "brillo", "brinco", "brisa", "broca", "broma",
40514 "bronce", "brote", "bruja", "brusco", "bruto", "buceo", "bucle", "bueno", "buey", "bufanda",
40515 "bufón", "búho", "buitre", "bulto", "burbuja", "burla", "burro", "buscar", "butaca", "buzón",
40516 "caballo", "cabeza", "cabina", "cabra", "cacao", "cadáver", "cadena", "caer", "café", "caída",
40517 "caimán", "caja", "cajón", "cal", "calamar", "calcio", "caldo", "calidad", "calle", "calma",
40518 "calor", "calvo", "cama", "cambio", "camello", "camino", "campo", "cáncer", "candil", "canela",
40519 "canguro", "canica", "canto", "caña", "cañón", "caoba", "caos", "capaz", "capitán", "capote",
40520 "captar", "capucha", "cara", "carbón", "cárcel", "careta", "carga", "cariño", "carne", "carpeta",
40521 "carro", "carta", "casa", "casco", "casero", "caspa", "castor", "catorce", "catre", "caudal",
40522 "causa", "cazo", "cebolla", "ceder", "cedro", "celda", "célebre", "celoso", "célula", "cemento",
40523 "ceniza", "centro", "cerca", "cerdo", "cereza", "cero", "cerrar", "certeza", "césped", "cetro",
40524 "chacal", "chaleco", "champú", "chancla", "chapa", "charla", "chico", "chiste", "chivo", "choque",
40525 "choza", "chuleta", "chupar", "ciclón", "ciego", "cielo", "cien", "cierto", "cifra", "cigarro",
40526 "cima", "cinco", "cine", "cinta", "ciprés", "circo", "ciruela", "cisne", "cita", "ciudad",
40527 "clamor", "clan", "claro", "clase", "clave", "cliente", "clima", "clínica", "cobre", "cocción",
40528 "cochino", "cocina", "coco", "código", "codo", "cofre", "coger", "cohete", "cojín", "cojo",
40529 "cola", "colcha", "colegio", "colgar", "colina", "collar", "colmo", "columna", "combate", "comer",
40530 "comida", "cómodo", "compra", "conde", "conejo", "conga", "conocer", "consejo", "contar", "copa",
40531 "copia", "corazón", "corbata", "corcho", "cordón", "corona", "correr", "coser", "cosmos", "costa",
40532 "cráneo", "cráter", "crear", "crecer", "creído", "crema", "cría", "crimen", "cripta", "crisis",
40533 "cromo", "crónica", "croqueta", "crudo", "cruz", "cuadro", "cuarto", "cuatro", "cubo", "cubrir",
40534 "cuchara", "cuello", "cuento", "cuerda", "cuesta", "cueva", "cuidar", "culebra", "culpa", "culto",
40535 "cumbre", "cumplir", "cuna", "cuneta", "cuota", "cupón", "cúpula", "curar", "curioso", "curso",
40536 "curva", "cutis", "dama", "danza", "dar", "dardo", "dátil", "deber", "débil", "década",
40537 "decir", "dedo", "defensa", "definir", "dejar", "delfín", "delgado", "delito", "demora", "denso",
40538 "dental", "deporte", "derecho", "derrota", "desayuno", "deseo", "desfile", "desnudo", "destino", "desvío",
40539 "detalle", "detener", "deuda", "día", "diablo", "diadema", "diamante", "diana", "diario", "dibujo",
40540 "dictar", "diente", "dieta", "diez", "difícil", "digno", "dilema", "diluir", "dinero", "directo",
40541 "dirigir", "disco", "diseño", "disfraz", "diva", "divino", "doble", "doce", "dolor", "domingo",
40542 "don", "donar", "dorado", "dormir", "dorso", "dos", "dosis", "dragón", "droga", "ducha",
40543 "duda", "duelo", "dueño", "dulce", "dúo", "duque", "durar", "dureza", "duro", "ébano",
40544 "ebrio", "echar", "eco", "ecuador", "edad", "edición", "edificio", "editor", "educar", "efecto",
40545 "eficaz", "eje", "ejemplo", "elefante", "elegir", "elemento", "elevar", "elipse", "élite", "elixir",
40546 "elogio", "eludir", "embudo", "emitir", "emoción", "empate", "empeño", "empleo", "empresa", "enano",
40547 "encargo", "enchufe", "encía", "enemigo", "enero", "enfado", "enfermo", "engaño", "enigma", "enlace",
40548 "enorme", "enredo", "ensayo", "enseñar", "entero", "entrar", "envase", "envío", "época", "equipo",
40549 "erizo", "escala", "escena", "escolar", "escribir", "escudo", "esencia", "esfera", "esfuerzo", "espada",
40550 "espejo", "espía", "esposa", "espuma", "esquí", "estar", "este", "estilo", "estufa", "etapa",
40551 "eterno", "ética", "etnia", "evadir", "evaluar", "evento", "evitar", "exacto", "examen", "exceso",
40552 "excusa", "exento", "exigir", "exilio", "existir", "éxito", "experto", "explicar", "exponer", "extremo",
40553 "fábrica", "fábula", "fachada", "fácil", "factor", "faena", "faja", "falda", "fallo", "falso",
40554 "faltar", "fama", "familia", "famoso", "faraón", "farmacia", "farol", "farsa", "fase", "fatiga",
40555 "fauna", "favor", "fax", "febrero", "fecha", "feliz", "feo", "feria", "feroz", "fértil",
40556 "fervor", "festín", "fiable", "fianza", "fiar", "fibra", "ficción", "ficha", "fideo", "fiebre",
40557 "fiel", "fiera", "fiesta", "figura", "fijar", "fijo", "fila", "filete", "filial", "filtro",
40558 "fin", "finca", "fingir", "finito", "firma", "flaco", "flauta", "flecha", "flor", "flota",
40559 "fluir", "flujo", "flúor", "fobia", "foca", "fogata", "fogón", "folio", "folleto", "fondo",
40560 "forma", "forro", "fortuna", "forzar", "fosa", "foto", "fracaso", "frágil", "franja", "frase",
40561 "fraude", "freír", "freno", "fresa", "frío", "frito", "fruta", "fuego", "fuente", "fuerza",
40562 "fuga", "fumar", "función", "funda", "furgón", "furia", "fusil", "fútbol", "futuro", "gacela",
40563 "gafas", "gaita", "gajo", "gala", "galería", "gallo", "gamba", "ganar", "gancho", "ganga",
40564 "ganso", "garaje", "garza", "gasolina", "gastar", "gato", "gavilán", "gemelo", "gemir", "gen",
40565 "género", "genio", "gente", "geranio", "gerente", "germen", "gesto", "gigante", "gimnasio", "girar",
40566 "giro", "glaciar", "globo", "gloria", "gol", "golfo", "goloso", "golpe", "goma", "gordo",
40567 "gorila", "gorra", "gota", "goteo", "gozar", "grada", "gráfico", "grano", "grasa", "gratis",
40568 "grave", "grieta", "grillo", "gripe", "gris", "grito", "grosor", "grúa", "grueso", "grumo",
40569 "grupo", "guante", "guapo", "guardia", "guerra", "guía", "guiño", "guion", "guiso", "guitarra",
40570 "gusano", "gustar", "haber", "hábil", "hablar", "hacer", "hacha", "hada", "hallar", "hamaca",
40571 "harina", "haz", "hazaña", "hebilla", "hebra", "hecho", "helado", "helio", "hembra", "herir",
40572 "hermano", "héroe", "hervir", "hielo", "hierro", "hígado", "higiene", "hijo", "himno", "historia",
40573 "hocico", "hogar", "hoguera", "hoja", "hombre", "hongo", "honor", "honra", "hora", "hormiga",
40574 "horno", "hostil", "hoyo", "hueco", "huelga", "huerta", "hueso", "huevo", "huida", "huir",
40575 "humano", "húmedo", "humilde", "humo", "hundir", "huracán", "hurto", "icono", "ideal", "idioma",
40576 "ídolo", "iglesia", "iglú", "igual", "ilegal", "ilusión", "imagen", "imán", "imitar", "impar",
40577 "imperio", "imponer", "impulso", "incapaz", "índice", "inerte", "infiel", "informe", "ingenio", "inicio",
40578 "inmenso", "inmune", "innato", "insecto", "instante", "interés", "íntimo", "intuir", "inútil", "invierno",
40579 "ira", "iris", "ironía", "isla", "islote", "jabalí", "jabón", "jamón", "jarabe", "jardín",
40580 "jarra", "jaula", "jazmín", "jefe", "jeringa", "jinete", "jornada", "joroba", "joven", "joya",
40581 "juerga", "jueves", "juez", "jugador", "jugo", "juguete", "juicio", "junco", "jungla", "junio",
40582 "juntar", "júpiter", "jurar", "justo", "juvenil", "juzgar", "kilo", "koala", "labio", "lacio",
40583 "lacra", "lado", "ladrón", "lagarto", "lágrima", "laguna", "laico", "lamer", "lámina", "lámpara",
40584 "lana", "lancha", "langosta", "lanza", "lápiz", "largo", "larva", "lástima", "lata", "látex",
40585 "latir", "laurel", "lavar", "lazo", "leal", "lección", "leche", "lector", "leer", "legión",
40586 "legumbre", "lejano", "lengua", "lento", "leña", "león", "leopardo", "lesión", "letal", "letra",
40587 "leve", "leyenda", "libertad", "libro", "licor", "líder", "lidiar", "lienzo", "liga", "ligero",
40588 "lima", "límite", "limón", "limpio", "lince", "lindo", "línea", "lingote", "lino", "linterna",
40589 "líquido", "liso", "lista", "litera", "litio", "litro", "llaga", "llama", "llanto", "llave",
40590 "llegar", "llenar", "llevar", "llorar", "llover", "lluvia", "lobo", "loción", "loco", "locura",
40591 "lógica", "logro", "lombriz", "lomo", "lonja", "lote", "lucha", "lucir", "lugar", "lujo",
40592 "luna", "lunes", "lupa", "lustro", "luto", "luz", "maceta", "macho", "madera", "madre",
40593 "maduro", "maestro", "mafia", "magia", "mago", "maíz", "maldad", "maleta", "malla", "malo",
40594 "mamá", "mambo", "mamut", "manco", "mando", "manejar", "manga", "maniquí", "manjar", "mano",
40595 "manso", "manta", "mañana", "mapa", "máquina", "mar", "marco", "marea", "marfil", "margen",
40596 "marido", "mármol", "marrón", "martes", "marzo", "masa", "máscara", "masivo", "matar", "materia",
40597 "matiz", "matriz", "máximo", "mayor", "mazorca", "mecha", "medalla", "medio", "médula", "mejilla",
40598 "mejor", "melena", "melón", "memoria", "menor", "mensaje", "mente", "menú", "mercado", "merengue",
40599 "mérito", "mes", "mesón", "meta", "meter", "método", "metro", "mezcla", "miedo", "miel",
40600 "miembro", "miga", "mil", "milagro", "militar", "millón", "mimo", "mina", "minero", "mínimo",
40601 "minuto", "miope", "mirar", "misa", "miseria", "misil", "mismo", "mitad", "mito", "mochila",
40602 "moción", "moda", "modelo", "moho", "mojar", "molde", "moler", "molino", "momento", "momia",
40603 "monarca", "moneda", "monja", "monto", "moño", "morada", "morder", "moreno", "morir", "morro",
40604 "morsa", "mortal", "mosca", "mostrar", "motivo", "mover", "móvil", "mozo", "mucho", "mudar",
40605 "mueble", "muela", "muerte", "muestra", "mugre", "mujer", "mula", "muleta", "multa", "mundo",
40606 "muñeca", "mural", "muro", "músculo", "museo", "musgo", "música", "muslo", "nácar", "nación",
40607 "nadar", "naipe", "naranja", "nariz", "narrar", "nasal", "natal", "nativo", "natural", "náusea",
40608 "naval", "nave", "navidad", "necio", "néctar", "negar", "negocio", "negro", "neón", "nervio",
40609 "neto", "neutro", "nevar", "nevera", "nicho", "nido", "niebla", "nieto", "niñez", "niño",
40610 "nítido", "nivel", "nobleza", "noche", "nómina", "noria", "norma", "norte", "nota", "noticia",
40611 "novato", "novela", "novio", "nube", "nuca", "núcleo", "nudillo", "nudo", "nuera", "nueve",
40612 "nuez", "nulo", "número", "nutria", "oasis", "obeso", "obispo", "objeto", "obra", "obrero",
40613 "observar", "obtener", "obvio", "oca", "ocaso", "océano", "ochenta", "ocho", "ocio", "ocre",
40614 "octavo", "octubre", "oculto", "ocupar", "ocurrir", "odiar", "odio", "odisea", "oeste", "ofensa",
40615 "oferta", "oficio", "ofrecer", "ogro", "oído", "oír", "ojo", "ola", "oleada", "olfato",
40616 "olivo", "olla", "olmo", "olor", "olvido", "ombligo", "onda", "onza", "opaco", "opción",
40617 "ópera", "opinar", "oponer", "optar", "óptica", "opuesto", "oración", "orador", "oral", "órbita",
40618 "orca", "orden", "oreja", "órgano", "orgía", "orgullo", "oriente", "origen", "orilla", "oro",
40619 "orquesta", "oruga", "osadía", "oscuro", "osezno", "oso", "ostra", "otoño", "otro", "oveja",
40620 "óvulo", "óxido", "oxígeno", "oyente", "ozono", "pacto", "padre", "paella", "página", "pago",
40621 "país", "pájaro", "palabra", "palco", "paleta", "pálido", "palma", "paloma", "palpar", "pan",
40622 "panal", "pánico", "pantera", "pañuelo", "papá", "papel", "papilla", "paquete", "parar", "parcela",
40623 "pared", "parir", "paro", "párpado", "parque", "párrafo", "parte", "pasar", "paseo", "pasión",
40624 "paso", "pasta", "pata", "patio", "patria", "pausa", "pauta", "pavo", "payaso", "peatón",
40625 "pecado", "pecera", "pecho", "pedal", "pedir", "pegar", "peine", "pelar", "peldaño", "pelea",
40626 "peligro", "pellejo", "pelo", "peluca", "pena", "pensar", "peñón", "peón", "peor", "pepino",
40627 "pequeño", "pera", "percha", "perder", "pereza", "perfil", "perico", "perla", "permiso", "perro",
40628 "persona", "pesa", "pesca", "pésimo", "pestaña", "pétalo", "petróleo", "pez", "pezuña", "picar",
40629 "pichón", "pie", "piedra", "pierna", "pieza", "pijama", "pilar", "piloto", "pimienta", "pino",
40630 "pintor", "pinza", "piña", "piojo", "pipa", "pirata", "pisar", "piscina", "piso", "pista",
40631 "pitón", "pizca", "placa", "plan", "plata", "playa", "plaza", "pleito", "pleno", "plomo",
40632 "pluma", "plural", "pobre", "poco", "poder", "podio", "poema", "poesía", "poeta", "polen",
40633 "policía", "pollo", "polvo", "pomada", "pomelo", "pomo", "pompa", "poner", "porción", "portal",
40634 "posada", "poseer", "posible", "poste", "potencia", "potro", "pozo", "prado", "precoz", "pregunta",
40635 "premio", "prensa", "preso", "previo", "primo", "príncipe", "prisión", "privar", "proa", "probar",
40636 "proceso", "producto", "proeza", "profesor", "programa", "prole", "promesa", "pronto", "propio", "próximo",
40637 "prueba", "público", "puchero", "pudor", "pueblo", "puerta", "puesto", "pulga", "pulir", "pulmón",
40638 "pulpo", "pulso", "puma", "punto", "puñal", "puño", "pupa", "pupila", "puré", "quedar",
40639 "queja", "quemar", "querer", "queso", "quieto", "química", "quince", "quitar", "rábano", "rabia",
40640 "rabo", "ración", "radical", "raíz", "rama", "rampa", "rancho", "rango", "rapaz", "rápido",
40641 "rapto", "rasgo", "raspa", "rato", "rayo", "raza", "razón", "reacción", "realidad", "rebaño",
40642 "rebote", "recaer", "receta", "rechazo", "recoger", "recreo", "recto", "recurso", "red", "redondo",
40643 "reducir", "reflejo", "reforma", "refrán", "refugio", "regalo", "regir", "regla", "regreso", "rehén",
40644 "reino", "reír", "reja", "relato", "relevo", "relieve", "relleno", "reloj", "remar", "remedio",
40645 "remo", "rencor", "rendir", "renta", "reparto", "repetir", "reposo", "reptil", "res", "rescate",
40646 "resina", "respeto", "resto", "resumen", "retiro", "retorno", "retrato", "reunir", "revés", "revista",
40647 "rey", "rezar", "rico", "riego", "rienda", "riesgo", "rifa", "rígido", "rigor", "rincón",
40648 "riñón", "río", "riqueza", "risa", "ritmo", "rito", "rizo", "roble", "roce", "rociar",
40649 "rodar", "rodeo", "rodilla", "roer", "rojizo", "rojo", "romero", "romper", "ron", "ronco",
40650 "ronda", "ropa", "ropero", "rosa", "rosca", "rostro", "rotar", "rubí", "rubor", "rudo",
40651 "rueda", "rugir", "ruido", "ruina", "ruleta", "rulo", "rumbo", "rumor", "ruptura", "ruta",
40652 "rutina", "sábado", "saber", "sabio", "sable", "sacar", "sagaz", "sagrado", "sala", "saldo",
40653 "salero", "salir", "salmón", "salón", "salsa", "salto", "salud", "salvar", "samba", "sanción",
40654 "sandía", "sanear", "sangre", "sanidad", "sano", "santo", "sapo", "saque", "sardina", "sartén",
40655 "sastre", "satán", "sauna", "saxofón", "sección", "seco", "secreto", "secta", "sed", "seguir",
40656 "seis", "sello", "selva", "semana", "semilla", "senda", "sensor", "señal", "señor", "separar",
40657 "sepia", "sequía", "ser", "serie", "sermón", "servir", "sesenta", "sesión", "seta", "setenta",
40658 "severo", "sexo", "sexto", "sidra", "siesta", "siete", "siglo", "signo", "sílaba", "silbar",
40659 "silencio", "silla", "símbolo", "simio", "sirena", "sistema", "sitio", "situar", "sobre", "socio",
40660 "sodio", "sol", "solapa", "soldado", "soledad", "sólido", "soltar", "solución", "sombra", "sondeo",
40661 "sonido", "sonoro", "sonrisa", "sopa", "soplar", "soporte", "sordo", "sorpresa", "sorteo", "sostén",
40662 "sótano", "suave", "subir", "suceso", "sudor", "suegra", "suelo", "sueño", "suerte", "sufrir",
40663 "sujeto", "sultán", "sumar", "superar", "suplir", "suponer", "supremo", "sur", "surco", "sureño",
40664 "surgir", "susto", "sutil", "tabaco", "tabique", "tabla", "tabú", "taco", "tacto", "tajo",
40665 "talar", "talco", "talento", "talla", "talón", "tamaño", "tambor", "tango", "tanque", "tapa",
40666 "tapete", "tapia", "tapón", "taquilla", "tarde", "tarea", "tarifa", "tarjeta", "tarot", "tarro",
40667 "tarta", "tatuaje", "tauro", "taza", "tazón", "teatro", "techo", "tecla", "técnica", "tejado",
40668 "tejer", "tejido", "tela", "teléfono", "tema", "temor", "templo", "tenaz", "tender", "tener",
40669 "tenis", "tenso", "teoría", "terapia", "terco", "término", "ternura", "terror", "tesis", "tesoro",
40670 "testigo", "tetera", "texto", "tez", "tibio", "tiburón", "tiempo", "tienda", "tierra", "tieso",
40671 "tigre", "tijera", "tilde", "timbre", "tímido", "timo", "tinta", "tío", "típico", "tipo",
40672 "tira", "tirón", "titán", "títere", "título", "tiza", "toalla", "tobillo", "tocar", "tocino",
40673 "todo", "toga", "toldo", "tomar", "tono", "tonto", "topar", "tope", "toque", "tórax",
40674 "torero", "tormenta", "torneo", "toro", "torpedo", "torre", "torso", "tortuga", "tos", "tosco",
40675 "toser", "tóxico", "trabajo", "tractor", "traer", "tráfico", "trago", "traje", "tramo", "trance",
40676 "trato", "trauma", "trazar", "trébol", "tregua", "treinta", "tren", "trepar", "tres", "tribu",
40677 "trigo", "tripa", "triste", "triunfo", "trofeo", "trompa", "tronco", "tropa", "trote", "trozo",
40678 "truco", "trueno", "trufa", "tubería", "tubo", "tuerto", "tumba", "tumor", "túnel", "túnica",
40679 "turbina", "turismo", "turno", "tutor", "ubicar", "úlcera", "umbral", "unidad", "unir", "universo",
40680 "uno", "untar", "uña", "urbano", "urbe", "urgente", "urna", "usar", "usuario", "útil",
40681 "utopía", "uva", "vaca", "vacío", "vacuna", "vagar", "vago", "vaina", "vajilla", "vale",
40682 "válido", "valle", "valor", "válvula", "vampiro", "vara", "variar", "varón", "vaso", "vecino",
40683 "vector", "vehículo", "veinte", "vejez", "vela", "velero", "veloz", "vena", "vencer", "venda",
40684 "veneno", "vengar", "venir", "venta", "venus", "ver", "verano", "verbo", "verde", "vereda",
40685 "verja", "verso", "verter", "vía", "viaje", "vibrar", "vicio", "víctima", "vida", "vídeo",
40686 "vidrio", "viejo", "viernes", "vigor", "vil", "villa", "vinagre", "vino", "viñedo", "violín",
40687 "viral", "virgo", "virtud", "visor", "víspera", "vista", "vitamina", "viudo", "vivaz", "vivero",
40688 "vivir", "vivo", "volcán", "volumen", "volver", "voraz", "votar", "voto", "voz", "vuelo",
40689 "vulgar", "yacer", "yate", "yegua", "yema", "yerno", "yeso", "yodo", "yoga", "yogur",
40690 "zafiro", "zanja", "zapato", "zarza", "zona", "zorro", "zumo", "zurdo"]
40692 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40693 WORDLISTS["chinese_simplified"] = [
40694 "的", "一", "是", "在", "不", "了", "有", "和", "人", "这",
40695 "中", "大", "为", "上", "个", "国", "我", "以", "要", "他",
40696 "时", "来", "用", "们", "生", "到", "作", "地", "于", "出",
40697 "就", "分", "对", "成", "会", "可", "主", "发", "年", "动",
40698 "同", "工", "也", "能", "下", "过", "子", "说", "产", "种",
40699 "面", "而", "方", "后", "多", "定", "行", "学", "法", "所",
40700 "民", "得", "经", "十", "三", "之", "进", "着", "等", "部",
40701 "度", "家", "电", "力", "里", "如", "水", "化", "高", "自",
40702 "二", "理", "起", "小", "物", "现", "实", "加", "量", "都",
40703 "两", "体", "制", "机", "当", "使", "点", "从", "业", "本",
40704 "去", "把", "性", "好", "应", "开", "它", "合", "还", "因",
40705 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
40706 "那", "社", "义", "事", "平", "形", "相", "全", "表", "间",
40707 "样", "与", "关", "各", "重", "新", "线", "内", "数", "正",
40708 "心", "反", "你", "明", "看", "原", "又", "么", "利", "比",
40709 "或", "但", "质", "气", "第", "向", "道", "命", "此", "变",
40710 "条", "只", "没", "结", "解", "问", "意", "建", "月", "公",
40711 "无", "系", "军", "很", "情", "者", "最", "立", "代", "想",
40712 "已", "通", "并", "提", "直", "题", "党", "程", "展", "五",
40713 "果", "料", "象", "员", "革", "位", "入", "常", "文", "总",
40714 "次", "品", "式", "活", "设", "及", "管", "特", "件", "长",
40715 "求", "老", "头", "基", "资", "边", "流", "路", "级", "少",
40716 "图", "山", "统", "接", "知", "较", "将", "组", "见", "计",
40717 "别", "她", "手", "角", "期", "根", "论", "运", "农", "指",
40718 "几", "九", "区", "强", "放", "决", "西", "被", "干", "做",
40719 "必", "战", "先", "回", "则", "任", "取", "据", "处", "队",
40720 "南", "给", "色", "光", "门", "即", "保", "治", "北", "造",
40721 "百", "规", "热", "领", "七", "海", "口", "东", "导", "器",
40722 "压", "志", "世", "金", "增", "争", "济", "阶", "油", "思",
40723 "术", "极", "交", "受", "联", "什", "认", "六", "共", "权",
40724 "收", "证", "改", "清", "美", "再", "采", "转", "更", "单",
40725 "风", "切", "打", "白", "教", "速", "花", "带", "安", "场",
40726 "身", "车", "例", "真", "务", "具", "万", "每", "目", "至",
40727 "达", "走", "积", "示", "议", "声", "报", "斗", "完", "类",
40728 "八", "离", "华", "名", "确", "才", "科", "张", "信", "马",
40729 "节", "话", "米", "整", "空", "元", "况", "今", "集", "温",
40730 "传", "土", "许", "步", "群", "广", "石", "记", "需", "段",
40731 "研", "界", "拉", "林", "律", "叫", "且", "究", "观", "越",
40732 "织", "装", "影", "算", "低", "持", "音", "众", "书", "布",
40733 "复", "容", "儿", "须", "际", "商", "非", "验", "连", "断",
40734 "深", "难", "近", "矿", "千", "周", "委", "素", "技", "备",
40735 "半", "办", "青", "省", "列", "习", "响", "约", "支", "般",
40736 "史", "感", "劳", "便", "团", "往", "酸", "历", "市", "克",
40737 "何", "除", "消", "构", "府", "称", "太", "准", "精", "值",
40738 "号", "率", "族", "维", "划", "选", "标", "写", "存", "候",
40739 "毛", "亲", "快", "效", "斯", "院", "查", "江", "型", "眼",
40740 "王", "按", "格", "养", "易", "置", "派", "层", "片", "始",
40741 "却", "专", "状", "育", "厂", "京", "识", "适", "属", "圆",
40742 "包", "火", "住", "调", "满", "县", "局", "照", "参", "红",
40743 "细", "引", "听", "该", "铁", "价", "严", "首", "底", "液",
40744 "官", "德", "随", "病", "苏", "失", "尔", "死", "讲", "配",
40745 "女", "黄", "推", "显", "谈", "罪", "神", "艺", "呢", "席",
40746 "含", "企", "望", "密", "批", "营", "项", "防", "举", "球",
40747 "英", "氧", "势", "告", "李", "台", "落", "木", "帮", "轮",
40748 "破", "亚", "师", "围", "注", "远", "字", "材", "排", "供",
40749 "河", "态", "封", "另", "施", "减", "树", "溶", "怎", "止",
40750 "案", "言", "士", "均", "武", "固", "叶", "鱼", "波", "视",
40751 "仅", "费", "紧", "爱", "左", "章", "早", "朝", "害", "续",
40752 "轻", "服", "试", "食", "充", "兵", "源", "判", "护", "司",
40753 "足", "某", "练", "差", "致", "板", "田", "降", "黑", "犯",
40754 "负", "击", "范", "继", "兴", "似", "余", "坚", "曲", "输",
40755 "修", "故", "城", "夫", "够", "送", "笔", "船", "占", "右",
40756 "财", "吃", "富", "春", "职", "觉", "汉", "画", "功", "巴",
40757 "跟", "虽", "杂", "飞", "检", "吸", "助", "升", "阳", "互",
40758 "初", "创", "抗", "考", "投", "坏", "策", "古", "径", "换",
40759 "未", "跑", "留", "钢", "曾", "端", "责", "站", "简", "述",
40760 "钱", "副", "尽", "帝", "射", "草", "冲", "承", "独", "令",
40761 "限", "阿", "宣", "环", "双", "请", "超", "微", "让", "控",
40762 "州", "良", "轴", "找", "否", "纪", "益", "依", "优", "顶",
40763 "础", "载", "倒", "房", "突", "坐", "粉", "敌", "略", "客",
40764 "袁", "冷", "胜", "绝", "析", "块", "剂", "测", "丝", "协",
40765 "诉", "念", "陈", "仍", "罗", "盐", "友", "洋", "错", "苦",
40766 "夜", "刑", "移", "频", "逐", "靠", "混", "母", "短", "皮",
40767 "终", "聚", "汽", "村", "云", "哪", "既", "距", "卫", "停",
40768 "烈", "央", "察", "烧", "迅", "境", "若", "印", "洲", "刻",
40769 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
40770 "侵", "吧", "甲", "游", "久", "菜", "味", "旧", "模", "湖",
40771 "货", "损", "预", "阻", "毫", "普", "稳", "乙", "妈", "植",
40772 "息", "扩", "银", "语", "挥", "酒", "守", "拿", "序", "纸",
40773 "医", "缺", "雨", "吗", "针", "刘", "啊", "急", "唱", "误",
40774 "训", "愿", "审", "附", "获", "茶", "鲜", "粮", "斤", "孩",
40775 "脱", "硫", "肥", "善", "龙", "演", "父", "渐", "血", "欢",
40776 "械", "掌", "歌", "沙", "刚", "攻", "谓", "盾", "讨", "晚",
40777 "粒", "乱", "燃", "矛", "乎", "杀", "药", "宁", "鲁", "贵",
40778 "钟", "煤", "读", "班", "伯", "香", "介", "迫", "句", "丰",
40779 "培", "握", "兰", "担", "弦", "蛋", "沉", "假", "穿", "执",
40780 "答", "乐", "谁", "顺", "烟", "缩", "征", "脸", "喜", "松",
40781 "脚", "困", "异", "免", "背", "星", "福", "买", "染", "井",
40782 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "静", "补",
40783 "评", "翻", "肉", "践", "尼", "衣", "宽", "扬", "棉", "希",
40784 "伤", "操", "垂", "秋", "宜", "氢", "套", "督", "振", "架",
40785 "亮", "末", "宪", "庆", "编", "牛", "触", "映", "雷", "销",
40786 "诗", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
40787 "绿", "晶", "厚", "盟", "衡", "鸡", "孙", "延", "危", "胶",
40788 "屋", "乡", "临", "陆", "顾", "掉", "呀", "灯", "岁", "措",
40789 "束", "耐", "剧", "玉", "赵", "跳", "哥", "季", "课", "凯",
40790 "胡", "额", "款", "绍", "卷", "齐", "伟", "蒸", "殖", "永",
40791 "宗", "苗", "川", "炉", "岩", "弱", "零", "杨", "奏", "沿",
40792 "露", "杆", "探", "滑", "镇", "饭", "浓", "航", "怀", "赶",
40793 "库", "夺", "伊", "灵", "税", "途", "灭", "赛", "归", "召",
40794 "鼓", "播", "盘", "裁", "险", "康", "唯", "录", "菌", "纯",
40795 "借", "糖", "盖", "横", "符", "私", "努", "堂", "域", "枪",
40796 "润", "幅", "哈", "竟", "熟", "虫", "泽", "脑", "壤", "碳",
40797 "欧", "遍", "侧", "寨", "敢", "彻", "虑", "斜", "薄", "庭",
40798 "纳", "弹", "饲", "伸", "折", "麦", "湿", "暗", "荷", "瓦",
40799 "塞", "床", "筑", "恶", "户", "访", "塔", "奇", "透", "梁",
40800 "刀", "旋", "迹", "卡", "氯", "遇", "份", "毒", "泥", "退",
40801 "洗", "摆", "灰", "彩", "卖", "耗", "夏", "择", "忙", "铜",
40802 "献", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
40803 "阵", "阴", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
40804 "楼", "避", "谋", "吨", "野", "猪", "旗", "累", "偏", "典",
40805 "馆", "索", "秦", "脂", "潮", "爷", "豆", "忽", "托", "惊",
40806 "塑", "遗", "愈", "朱", "替", "纤", "粗", "倾", "尚", "痛",
40807 "楚", "谢", "奋", "购", "磨", "君", "池", "旁", "碎", "骨",
40808 "监", "捕", "弟", "暴", "割", "贯", "殊", "释", "词", "亡",
40809 "壁", "顿", "宝", "午", "尘", "闻", "揭", "炮", "残", "冬",
40810 "桥", "妇", "警", "综", "招", "吴", "付", "浮", "遭", "徐",
40811 "您", "摇", "谷", "赞", "箱", "隔", "订", "男", "吹", "园",
40812 "纷", "唐", "败", "宋", "玻", "巨", "耕", "坦", "荣", "闭",
40813 "湾", "键", "凡", "驻", "锅", "救", "恩", "剥", "凝", "碱",
40814 "齿", "截", "炼", "麻", "纺", "禁", "废", "盛", "版", "缓",
40815 "净", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
40816 "庄", "街", "藏", "姑", "贸", "腐", "奴", "啦", "惯", "乘",
40817 "伙", "恢", "匀", "纱", "扎", "辩", "耳", "彪", "臣", "亿",
40818 "璃", "抵", "脉", "秀", "萨", "俄", "网", "舞", "店", "喷",
40819 "纵", "寸", "汗", "挂", "洪", "贺", "闪", "柬", "爆", "烯",
40820 "津", "稻", "墙", "软", "勇", "像", "滚", "厘", "蒙", "芳",
40821 "肯", "坡", "柱", "荡", "腿", "仪", "旅", "尾", "轧", "冰",
40822 "贡", "登", "黎", "削", "钻", "勒", "逃", "障", "氨", "郭",
40823 "峰", "币", "港", "伏", "轨", "亩", "毕", "擦", "莫", "刺",
40824 "浪", "秘", "援", "株", "健", "售", "股", "岛", "甘", "泡",
40825 "睡", "童", "铸", "汤", "阀", "休", "汇", "舍", "牧", "绕",
40826 "炸", "哲", "磷", "绩", "朋", "淡", "尖", "启", "陷", "柴",
40827 "呈", "徒", "颜", "泪", "稍", "忘", "泵", "蓝", "拖", "洞",
40828 "授", "镜", "辛", "壮", "锋", "贫", "虚", "弯", "摩", "泰",
40829 "幼", "廷", "尊", "窗", "纲", "弄", "隶", "疑", "氏", "宫",
40830 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "违",
40831 "夹", "腰", "缘", "珠", "穷", "森", "枝", "竹", "沟", "催",
40832 "绳", "忆", "邦", "剩", "幸", "浆", "栏", "拥", "牙", "贮",
40833 "礼", "滤", "钠", "纹", "罢", "拍", "咱", "喊", "袖", "埃",
40834 "勤", "罚", "焦", "潜", "伍", "墨", "欲", "缝", "姓", "刊",
40835 "饱", "仿", "奖", "铝", "鬼", "丽", "跨", "默", "挖", "链",
40836 "扫", "喝", "袋", "炭", "污", "幕", "诸", "弧", "励", "梅",
40837 "奶", "洁", "灾", "舟", "鉴", "苯", "讼", "抱", "毁", "懂",
40838 "寒", "智", "埔", "寄", "届", "跃", "渡", "挑", "丹", "艰",
40839 "贝", "碰", "拔", "爹", "戴", "码", "梦", "芽", "熔", "赤",
40840 "渔", "哭", "敬", "颗", "奔", "铅", "仲", "虎", "稀", "妹",
40841 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "仓", "魏",
40842 "锐", "晓", "氮", "兼", "隐", "碍", "赫", "拨", "忠", "肃",
40843 "缸", "牵", "抢", "博", "巧", "壳", "兄", "杜", "讯", "诚",
40844 "碧", "祥", "柯", "页", "巡", "矩", "悲", "灌", "龄", "伦",
40845 "票", "寻", "桂", "铺", "圣", "恐", "恰", "郑", "趣", "抬",
40846 "荒", "腾", "贴", "柔", "滴", "猛", "阔", "辆", "妻", "填",
40847 "撤", "储", "签", "闹", "扰", "紫", "砂", "递", "戏", "吊",
40848 "陶", "伐", "喂", "疗", "瓶", "婆", "抚", "臂", "摸", "忍",
40849 "虾", "蜡", "邻", "胸", "巩", "挤", "偶", "弃", "槽", "劲",
40850 "乳", "邓", "吉", "仁", "烂", "砖", "租", "乌", "舰", "伴",
40851 "瓜", "浅", "丙", "暂", "燥", "橡", "柳", "迷", "暖", "牌",
40852 "秧", "胆", "详", "簧", "踏", "瓷", "谱", "呆", "宾", "糊",
40853 "洛", "辉", "愤", "竞", "隙", "怒", "粘", "乃", "绪", "肩",
40854 "籍", "敏", "涂", "熙", "皆", "侦", "悬", "掘", "享", "纠",
40855 "醒", "狂", "锁", "淀", "恨", "牲", "霸", "爬", "赏", "逆",
40856 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鸭",
40857 "趋", "凤", "晨", "畜", "辈", "秩", "卵", "署", "梯", "炎",
40858 "滩", "棋", "驱", "筛", "峡", "冒", "啥", "寿", "译", "浸",
40859 "泉", "帽", "迟", "硅", "疆", "贷", "漏", "稿", "冠", "嫩",
40860 "胁", "芯", "牢", "叛", "蚀", "奥", "鸣", "岭", "羊", "凭",
40861 "串", "塘", "绘", "酵", "融", "盆", "锡", "庙", "筹", "冻",
40862 "辅", "摄", "袭", "筋", "拒", "僚", "旱", "钾", "鸟", "漆",
40863 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韩", "逼", "扭",
40864 "侨", "凉", "挺", "碗", "栽", "炒", "杯", "患", "馏", "劝",
40865 "豪", "辽", "勃", "鸿", "旦", "吏", "拜", "狗", "埋", "辊",
40866 "掩", "饮", "搬", "骂", "辞", "勾", "扣", "估", "蒋", "绒",
40867 "雾", "丈", "朵", "姆", "拟", "宇", "辑", "陕", "雕", "偿",
40868 "蓄", "崇", "剪", "倡", "厅", "咬", "驶", "薯", "刷", "斥",
40869 "番", "赋", "奉", "佛", "浇", "漫", "曼", "扇", "钙", "桃",
40870 "扶", "仔", "返", "俗", "亏", "腔", "鞋", "棱", "覆", "框",
40871 "悄", "叔", "撞", "骗", "勘", "旺", "沸", "孤", "吐", "孟",
40872 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "胀", "谐", "抛",
40873 "霉", "桑", "岗", "嘛", "衰", "盗", "渗", "脏", "赖", "涌",
40874 "甜", "曹", "阅", "肌", "哩", "厉", "烃", "纬", "毅", "昨",
40875 "伪", "症", "煮", "叹", "钉", "搭", "茎", "笼", "酷", "偷",
40876 "弓", "锥", "恒", "杰", "坑", "鼻", "翼", "纶", "叙", "狱",
40877 "逮", "罐", "络", "棚", "抑", "膨", "蔬", "寺", "骤", "穆",
40878 "冶", "枯", "册", "尸", "凸", "绅", "坯", "牺", "焰", "轰",
40879 "欣", "晋", "瘦", "御", "锭", "锦", "丧", "旬", "锻", "垄",
40880 "搜", "扑", "邀", "亭", "酯", "迈", "舒", "脆", "酶", "闲",
40881 "忧", "酚", "顽", "羽", "涨", "卸", "仗", "陪", "辟", "惩",
40882 "杭", "姚", "肚", "捉", "飘", "漂", "昆", "欺", "吾", "郎",
40883 "烷", "汁", "呵", "饰", "萧", "雅", "邮", "迁", "燕", "撒",
40884 "姻", "赴", "宴", "烦", "债", "帐", "斑", "铃", "旨", "醇",
40885 "董", "饼", "雏", "姿", "拌", "傅", "腹", "妥", "揉", "贤",
40886 "拆", "歪", "葡", "胺", "丢", "浩", "徽", "昂", "垫", "挡",
40887 "览", "贪", "慰", "缴", "汪", "慌", "冯", "诺", "姜", "谊",
40888 "凶", "劣", "诬", "耀", "昏", "躺", "盈", "骑", "乔", "溪",
40889 "丛", "卢", "抹", "闷", "咨", "刮", "驾", "缆", "悟", "摘",
40890 "铒", "掷", "颇", "幻", "柄", "惠", "惨", "佳", "仇", "腊",
40891 "窝", "涤", "剑", "瞧", "堡", "泼", "葱", "罩", "霍", "捞",
40892 "胎", "苍", "滨", "俩", "捅", "湘", "砍", "霞", "邵", "萄",
40893 "疯", "淮", "遂", "熊", "粪", "烘", "宿", "档", "戈", "驳",
40894 "嫂", "裕", "徙", "箭", "捐", "肠", "撑", "晒", "辨", "殿",
40895 "莲", "摊", "搅", "酱", "屏", "疫", "哀", "蔡", "堵", "沫",
40896 "皱", "畅", "叠", "阁", "莱", "敲", "辖", "钩", "痕", "坝",
40897 "巷", "饿", "祸", "丘", "玄", "溜", "曰", "逻", "彭", "尝",
40898 "卿", "妨", "艇", "吞", "韦", "怨", "矮", "歇" ]
40900 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
40901 WORDLISTS["chinese_traditional"] = [
40902 "的", "一", "是", "在", "不", "了", "有", "和", "人", "這",
40903 "中", "大", "為", "上", "個", "國", "我", "以", "要", "他",
40904 "時", "來", "用", "們", "生", "到", "作", "地", "於", "出",
40905 "就", "分", "對", "成", "會", "可", "主", "發", "年", "動",
40906 "同", "工", "也", "能", "下", "過", "子", "說", "產", "種",
40907 "面", "而", "方", "後", "多", "定", "行", "學", "法", "所",
40908 "民", "得", "經", "十", "三", "之", "進", "著", "等", "部",
40909 "度", "家", "電", "力", "裡", "如", "水", "化", "高", "自",
40910 "二", "理", "起", "小", "物", "現", "實", "加", "量", "都",
40911 "兩", "體", "制", "機", "當", "使", "點", "從", "業", "本",
40912 "去", "把", "性", "好", "應", "開", "它", "合", "還", "因",
40913 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
40914 "那", "社", "義", "事", "平", "形", "相", "全", "表", "間",
40915 "樣", "與", "關", "各", "重", "新", "線", "內", "數", "正",
40916 "心", "反", "你", "明", "看", "原", "又", "麼", "利", "比",
40917 "或", "但", "質", "氣", "第", "向", "道", "命", "此", "變",
40918 "條", "只", "沒", "結", "解", "問", "意", "建", "月", "公",
40919 "無", "系", "軍", "很", "情", "者", "最", "立", "代", "想",
40920 "已", "通", "並", "提", "直", "題", "黨", "程", "展", "五",
40921 "果", "料", "象", "員", "革", "位", "入", "常", "文", "總",
40922 "次", "品", "式", "活", "設", "及", "管", "特", "件", "長",
40923 "求", "老", "頭", "基", "資", "邊", "流", "路", "級", "少",
40924 "圖", "山", "統", "接", "知", "較", "將", "組", "見", "計",
40925 "別", "她", "手", "角", "期", "根", "論", "運", "農", "指",
40926 "幾", "九", "區", "強", "放", "決", "西", "被", "幹", "做",
40927 "必", "戰", "先", "回", "則", "任", "取", "據", "處", "隊",
40928 "南", "給", "色", "光", "門", "即", "保", "治", "北", "造",
40929 "百", "規", "熱", "領", "七", "海", "口", "東", "導", "器",
40930 "壓", "志", "世", "金", "增", "爭", "濟", "階", "油", "思",
40931 "術", "極", "交", "受", "聯", "什", "認", "六", "共", "權",
40932 "收", "證", "改", "清", "美", "再", "採", "轉", "更", "單",
40933 "風", "切", "打", "白", "教", "速", "花", "帶", "安", "場",
40934 "身", "車", "例", "真", "務", "具", "萬", "每", "目", "至",
40935 "達", "走", "積", "示", "議", "聲", "報", "鬥", "完", "類",
40936 "八", "離", "華", "名", "確", "才", "科", "張", "信", "馬",
40937 "節", "話", "米", "整", "空", "元", "況", "今", "集", "溫",
40938 "傳", "土", "許", "步", "群", "廣", "石", "記", "需", "段",
40939 "研", "界", "拉", "林", "律", "叫", "且", "究", "觀", "越",
40940 "織", "裝", "影", "算", "低", "持", "音", "眾", "書", "布",
40941 "复", "容", "兒", "須", "際", "商", "非", "驗", "連", "斷",
40942 "深", "難", "近", "礦", "千", "週", "委", "素", "技", "備",
40943 "半", "辦", "青", "省", "列", "習", "響", "約", "支", "般",
40944 "史", "感", "勞", "便", "團", "往", "酸", "歷", "市", "克",
40945 "何", "除", "消", "構", "府", "稱", "太", "準", "精", "值",
40946 "號", "率", "族", "維", "劃", "選", "標", "寫", "存", "候",
40947 "毛", "親", "快", "效", "斯", "院", "查", "江", "型", "眼",
40948 "王", "按", "格", "養", "易", "置", "派", "層", "片", "始",
40949 "卻", "專", "狀", "育", "廠", "京", "識", "適", "屬", "圓",
40950 "包", "火", "住", "調", "滿", "縣", "局", "照", "參", "紅",
40951 "細", "引", "聽", "該", "鐵", "價", "嚴", "首", "底", "液",
40952 "官", "德", "隨", "病", "蘇", "失", "爾", "死", "講", "配",
40953 "女", "黃", "推", "顯", "談", "罪", "神", "藝", "呢", "席",
40954 "含", "企", "望", "密", "批", "營", "項", "防", "舉", "球",
40955 "英", "氧", "勢", "告", "李", "台", "落", "木", "幫", "輪",
40956 "破", "亞", "師", "圍", "注", "遠", "字", "材", "排", "供",
40957 "河", "態", "封", "另", "施", "減", "樹", "溶", "怎", "止",
40958 "案", "言", "士", "均", "武", "固", "葉", "魚", "波", "視",
40959 "僅", "費", "緊", "愛", "左", "章", "早", "朝", "害", "續",
40960 "輕", "服", "試", "食", "充", "兵", "源", "判", "護", "司",
40961 "足", "某", "練", "差", "致", "板", "田", "降", "黑", "犯",
40962 "負", "擊", "范", "繼", "興", "似", "餘", "堅", "曲", "輸",
40963 "修", "故", "城", "夫", "夠", "送", "筆", "船", "佔", "右",
40964 "財", "吃", "富", "春", "職", "覺", "漢", "畫", "功", "巴",
40965 "跟", "雖", "雜", "飛", "檢", "吸", "助", "昇", "陽", "互",
40966 "初", "創", "抗", "考", "投", "壞", "策", "古", "徑", "換",
40967 "未", "跑", "留", "鋼", "曾", "端", "責", "站", "簡", "述",
40968 "錢", "副", "盡", "帝", "射", "草", "衝", "承", "獨", "令",
40969 "限", "阿", "宣", "環", "雙", "請", "超", "微", "讓", "控",
40970 "州", "良", "軸", "找", "否", "紀", "益", "依", "優", "頂",
40971 "礎", "載", "倒", "房", "突", "坐", "粉", "敵", "略", "客",
40972 "袁", "冷", "勝", "絕", "析", "塊", "劑", "測", "絲", "協",
40973 "訴", "念", "陳", "仍", "羅", "鹽", "友", "洋", "錯", "苦",
40974 "夜", "刑", "移", "頻", "逐", "靠", "混", "母", "短", "皮",
40975 "終", "聚", "汽", "村", "雲", "哪", "既", "距", "衛", "停",
40976 "烈", "央", "察", "燒", "迅", "境", "若", "印", "洲", "刻",
40977 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
40978 "侵", "吧", "甲", "遊", "久", "菜", "味", "舊", "模", "湖",
40979 "貨", "損", "預", "阻", "毫", "普", "穩", "乙", "媽", "植",
40980 "息", "擴", "銀", "語", "揮", "酒", "守", "拿", "序", "紙",
40981 "醫", "缺", "雨", "嗎", "針", "劉", "啊", "急", "唱", "誤",
40982 "訓", "願", "審", "附", "獲", "茶", "鮮", "糧", "斤", "孩",
40983 "脫", "硫", "肥", "善", "龍", "演", "父", "漸", "血", "歡",
40984 "械", "掌", "歌", "沙", "剛", "攻", "謂", "盾", "討", "晚",
40985 "粒", "亂", "燃", "矛", "乎", "殺", "藥", "寧", "魯", "貴",
40986 "鐘", "煤", "讀", "班", "伯", "香", "介", "迫", "句", "豐",
40987 "培", "握", "蘭", "擔", "弦", "蛋", "沉", "假", "穿", "執",
40988 "答", "樂", "誰", "順", "煙", "縮", "徵", "臉", "喜", "松",
40989 "腳", "困", "異", "免", "背", "星", "福", "買", "染", "井",
40990 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "靜", "補",
40991 "評", "翻", "肉", "踐", "尼", "衣", "寬", "揚", "棉", "希",
40992 "傷", "操", "垂", "秋", "宜", "氫", "套", "督", "振", "架",
40993 "亮", "末", "憲", "慶", "編", "牛", "觸", "映", "雷", "銷",
40994 "詩", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
40995 "綠", "晶", "厚", "盟", "衡", "雞", "孫", "延", "危", "膠",
40996 "屋", "鄉", "臨", "陸", "顧", "掉", "呀", "燈", "歲", "措",
40997 "束", "耐", "劇", "玉", "趙", "跳", "哥", "季", "課", "凱",
40998 "胡", "額", "款", "紹", "卷", "齊", "偉", "蒸", "殖", "永",
40999 "宗", "苗", "川", "爐", "岩", "弱", "零", "楊", "奏", "沿",
41000 "露", "桿", "探", "滑", "鎮", "飯", "濃", "航", "懷", "趕",
41001 "庫", "奪", "伊", "靈", "稅", "途", "滅", "賽", "歸", "召",
41002 "鼓", "播", "盤", "裁", "險", "康", "唯", "錄", "菌", "純",
41003 "借", "糖", "蓋", "橫", "符", "私", "努", "堂", "域", "槍",
41004 "潤", "幅", "哈", "竟", "熟", "蟲", "澤", "腦", "壤", "碳",
41005 "歐", "遍", "側", "寨", "敢", "徹", "慮", "斜", "薄", "庭",
41006 "納", "彈", "飼", "伸", "折", "麥", "濕", "暗", "荷", "瓦",
41007 "塞", "床", "築", "惡", "戶", "訪", "塔", "奇", "透", "梁",
41008 "刀", "旋", "跡", "卡", "氯", "遇", "份", "毒", "泥", "退",
41009 "洗", "擺", "灰", "彩", "賣", "耗", "夏", "擇", "忙", "銅",
41010 "獻", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
41011 "陣", "陰", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
41012 "樓", "避", "謀", "噸", "野", "豬", "旗", "累", "偏", "典",
41013 "館", "索", "秦", "脂", "潮", "爺", "豆", "忽", "托", "驚",
41014 "塑", "遺", "愈", "朱", "替", "纖", "粗", "傾", "尚", "痛",
41015 "楚", "謝", "奮", "購", "磨", "君", "池", "旁", "碎", "骨",
41016 "監", "捕", "弟", "暴", "割", "貫", "殊", "釋", "詞", "亡",
41017 "壁", "頓", "寶", "午", "塵", "聞", "揭", "炮", "殘", "冬",
41018 "橋", "婦", "警", "綜", "招", "吳", "付", "浮", "遭", "徐",
41019 "您", "搖", "谷", "贊", "箱", "隔", "訂", "男", "吹", "園",
41020 "紛", "唐", "敗", "宋", "玻", "巨", "耕", "坦", "榮", "閉",
41021 "灣", "鍵", "凡", "駐", "鍋", "救", "恩", "剝", "凝", "鹼",
41022 "齒", "截", "煉", "麻", "紡", "禁", "廢", "盛", "版", "緩",
41023 "淨", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
41024 "莊", "街", "藏", "姑", "貿", "腐", "奴", "啦", "慣", "乘",
41025 "夥", "恢", "勻", "紗", "扎", "辯", "耳", "彪", "臣", "億",
41026 "璃", "抵", "脈", "秀", "薩", "俄", "網", "舞", "店", "噴",
41027 "縱", "寸", "汗", "掛", "洪", "賀", "閃", "柬", "爆", "烯",
41028 "津", "稻", "牆", "軟", "勇", "像", "滾", "厘", "蒙", "芳",
41029 "肯", "坡", "柱", "盪", "腿", "儀", "旅", "尾", "軋", "冰",
41030 "貢", "登", "黎", "削", "鑽", "勒", "逃", "障", "氨", "郭",
41031 "峰", "幣", "港", "伏", "軌", "畝", "畢", "擦", "莫", "刺",
41032 "浪", "秘", "援", "株", "健", "售", "股", "島", "甘", "泡",
41033 "睡", "童", "鑄", "湯", "閥", "休", "匯", "舍", "牧", "繞",
41034 "炸", "哲", "磷", "績", "朋", "淡", "尖", "啟", "陷", "柴",
41035 "呈", "徒", "顏", "淚", "稍", "忘", "泵", "藍", "拖", "洞",
41036 "授", "鏡", "辛", "壯", "鋒", "貧", "虛", "彎", "摩", "泰",
41037 "幼", "廷", "尊", "窗", "綱", "弄", "隸", "疑", "氏", "宮",
41038 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "違",
41039 "夾", "腰", "緣", "珠", "窮", "森", "枝", "竹", "溝", "催",
41040 "繩", "憶", "邦", "剩", "幸", "漿", "欄", "擁", "牙", "貯",
41041 "禮", "濾", "鈉", "紋", "罷", "拍", "咱", "喊", "袖", "埃",
41042 "勤", "罰", "焦", "潛", "伍", "墨", "欲", "縫", "姓", "刊",
41043 "飽", "仿", "獎", "鋁", "鬼", "麗", "跨", "默", "挖", "鏈",
41044 "掃", "喝", "袋", "炭", "污", "幕", "諸", "弧", "勵", "梅",
41045 "奶", "潔", "災", "舟", "鑑", "苯", "訟", "抱", "毀", "懂",
41046 "寒", "智", "埔", "寄", "屆", "躍", "渡", "挑", "丹", "艱",
41047 "貝", "碰", "拔", "爹", "戴", "碼", "夢", "芽", "熔", "赤",
41048 "漁", "哭", "敬", "顆", "奔", "鉛", "仲", "虎", "稀", "妹",
41049 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "倉", "魏",
41050 "銳", "曉", "氮", "兼", "隱", "礙", "赫", "撥", "忠", "肅",
41051 "缸", "牽", "搶", "博", "巧", "殼", "兄", "杜", "訊", "誠",
41052 "碧", "祥", "柯", "頁", "巡", "矩", "悲", "灌", "齡", "倫",
41053 "票", "尋", "桂", "鋪", "聖", "恐", "恰", "鄭", "趣", "抬",
41054 "荒", "騰", "貼", "柔", "滴", "猛", "闊", "輛", "妻", "填",
41055 "撤", "儲", "簽", "鬧", "擾", "紫", "砂", "遞", "戲", "吊",
41056 "陶", "伐", "餵", "療", "瓶", "婆", "撫", "臂", "摸", "忍",
41057 "蝦", "蠟", "鄰", "胸", "鞏", "擠", "偶", "棄", "槽", "勁",
41058 "乳", "鄧", "吉", "仁", "爛", "磚", "租", "烏", "艦", "伴",
41059 "瓜", "淺", "丙", "暫", "燥", "橡", "柳", "迷", "暖", "牌",
41060 "秧", "膽", "詳", "簧", "踏", "瓷", "譜", "呆", "賓", "糊",
41061 "洛", "輝", "憤", "競", "隙", "怒", "粘", "乃", "緒", "肩",
41062 "籍", "敏", "塗", "熙", "皆", "偵", "懸", "掘", "享", "糾",
41063 "醒", "狂", "鎖", "淀", "恨", "牲", "霸", "爬", "賞", "逆",
41064 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鴨",
41065 "趨", "鳳", "晨", "畜", "輩", "秩", "卵", "署", "梯", "炎",
41066 "灘", "棋", "驅", "篩", "峽", "冒", "啥", "壽", "譯", "浸",
41067 "泉", "帽", "遲", "矽", "疆", "貸", "漏", "稿", "冠", "嫩",
41068 "脅", "芯", "牢", "叛", "蝕", "奧", "鳴", "嶺", "羊", "憑",
41069 "串", "塘", "繪", "酵", "融", "盆", "錫", "廟", "籌", "凍",
41070 "輔", "攝", "襲", "筋", "拒", "僚", "旱", "鉀", "鳥", "漆",
41071 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韓", "逼", "扭",
41072 "僑", "涼", "挺", "碗", "栽", "炒", "杯", "患", "餾", "勸",
41073 "豪", "遼", "勃", "鴻", "旦", "吏", "拜", "狗", "埋", "輥",
41074 "掩", "飲", "搬", "罵", "辭", "勾", "扣", "估", "蔣", "絨",
41075 "霧", "丈", "朵", "姆", "擬", "宇", "輯", "陝", "雕", "償",
41076 "蓄", "崇", "剪", "倡", "廳", "咬", "駛", "薯", "刷", "斥",
41077 "番", "賦", "奉", "佛", "澆", "漫", "曼", "扇", "鈣", "桃",
41078 "扶", "仔", "返", "俗", "虧", "腔", "鞋", "棱", "覆", "框",
41079 "悄", "叔", "撞", "騙", "勘", "旺", "沸", "孤", "吐", "孟",
41080 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "脹", "諧", "拋",
41081 "黴", "桑", "崗", "嘛", "衰", "盜", "滲", "臟", "賴", "湧",
41082 "甜", "曹", "閱", "肌", "哩", "厲", "烴", "緯", "毅", "昨",
41083 "偽", "症", "煮", "嘆", "釘", "搭", "莖", "籠", "酷", "偷",
41084 "弓", "錐", "恆", "傑", "坑", "鼻", "翼", "綸", "敘", "獄",
41085 "逮", "罐", "絡", "棚", "抑", "膨", "蔬", "寺", "驟", "穆",
41086 "冶", "枯", "冊", "屍", "凸", "紳", "坯", "犧", "焰", "轟",
41087 "欣", "晉", "瘦", "禦", "錠", "錦", "喪", "旬", "鍛", "壟",
41088 "搜", "撲", "邀", "亭", "酯", "邁", "舒", "脆", "酶", "閒",
41089 "憂", "酚", "頑", "羽", "漲", "卸", "仗", "陪", "闢", "懲",
41090 "杭", "姚", "肚", "捉", "飄", "漂", "昆", "欺", "吾", "郎",
41091 "烷", "汁", "呵", "飾", "蕭", "雅", "郵", "遷", "燕", "撒",
41092 "姻", "赴", "宴", "煩", "債", "帳", "斑", "鈴", "旨", "醇",
41093 "董", "餅", "雛", "姿", "拌", "傅", "腹", "妥", "揉", "賢",
41094 "拆", "歪", "葡", "胺", "丟", "浩", "徽", "昂", "墊", "擋",
41095 "覽", "貪", "慰", "繳", "汪", "慌", "馮", "諾", "姜", "誼",
41096 "兇", "劣", "誣", "耀", "昏", "躺", "盈", "騎", "喬", "溪",
41097 "叢", "盧", "抹", "悶", "諮", "刮", "駕", "纜", "悟", "摘",
41098 "鉺", "擲", "頗", "幻", "柄", "惠", "慘", "佳", "仇", "臘",
41099 "窩", "滌", "劍", "瞧", "堡", "潑", "蔥", "罩", "霍", "撈",
41100 "胎", "蒼", "濱", "倆", "捅", "湘", "砍", "霞", "邵", "萄",
41101 "瘋", "淮", "遂", "熊", "糞", "烘", "宿", "檔", "戈", "駁",
41102 "嫂", "裕", "徙", "箭", "捐", "腸", "撐", "曬", "辨", "殿",
41103 "蓮", "攤", "攪", "醬", "屏", "疫", "哀", "蔡", "堵", "沫",
41104 "皺", "暢", "疊", "閣", "萊", "敲", "轄", "鉤", "痕", "壩",
41105 "巷", "餓", "禍", "丘", "玄", "溜", "曰", "邏", "彭", "嘗",
41106 "卿", "妨", "艇", "吞", "韋", "怨", "矮", "歇" ]
41108 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
41109 WORDLISTS["french"] = [
41110 "abaisser", "abandon", "abdiquer", "abeille", "abolir", "aborder", "aboutir", "aboyer", "abrasif", "abreuver",
41111 "abriter", "abroger", "abrupt", "absence", "absolu", "absurde", "abusif", "abyssal", "académie", "acajou",
41112 "acarien", "accabler", "accepter", "acclamer", "accolade", "accroche", "accuser", "acerbe", "achat", "acheter",
41113 "aciduler", "acier", "acompte", "acquérir", "acronyme", "acteur", "actif", "actuel", "adepte", "adéquat",
41114 "adhésif", "adjectif", "adjuger", "admettre", "admirer", "adopter", "adorer", "adoucir", "adresse", "adroit",
41115 "adulte", "adverbe", "aérer", "aéronef", "affaire", "affecter", "affiche", "affreux", "affubler", "agacer",
41116 "agencer", "agile", "agiter", "agrafer", "agréable", "agrume", "aider", "aiguille", "ailier", "aimable",
41117 "aisance", "ajouter", "ajuster", "alarmer", "alchimie", "alerte", "algèbre", "algue", "aliéner", "aliment",
41118 "alléger", "alliage", "allouer", "allumer", "alourdir", "alpaga", "altesse", "alvéole", "amateur", "ambigu",
41119 "ambre", "aménager", "amertume", "amidon", "amiral", "amorcer", "amour", "amovible", "amphibie", "ampleur",
41120 "amusant", "analyse", "anaphore", "anarchie", "anatomie", "ancien", "anéantir", "angle", "angoisse", "anguleux",
41121 "animal", "annexer", "annonce", "annuel", "anodin", "anomalie", "anonyme", "anormal", "antenne", "antidote",
41122 "anxieux", "apaiser", "apéritif", "aplanir", "apologie", "appareil", "appeler", "apporter", "appuyer", "aquarium",
41123 "aqueduc", "arbitre", "arbuste", "ardeur", "ardoise", "argent", "arlequin", "armature", "armement", "armoire",
41124 "armure", "arpenter", "arracher", "arriver", "arroser", "arsenic", "artériel", "article", "aspect", "asphalte",
41125 "aspirer", "assaut", "asservir", "assiette", "associer", "assurer", "asticot", "astre", "astuce", "atelier",
41126 "atome", "atrium", "atroce", "attaque", "attentif", "attirer", "attraper", "aubaine", "auberge", "audace",
41127 "audible", "augurer", "aurore", "automne", "autruche", "avaler", "avancer", "avarice", "avenir", "averse",
41128 "aveugle", "aviateur", "avide", "avion", "aviser", "avoine", "avouer", "avril", "axial", "axiome",
41129 "badge", "bafouer", "bagage", "baguette", "baignade", "balancer", "balcon", "baleine", "balisage", "bambin",
41130 "bancaire", "bandage", "banlieue", "bannière", "banquier", "barbier", "baril", "baron", "barque", "barrage",
41131 "bassin", "bastion", "bataille", "bateau", "batterie", "baudrier", "bavarder", "belette", "bélier", "belote",
41132 "bénéfice", "berceau", "berger", "berline", "bermuda", "besace", "besogne", "bétail", "beurre", "biberon",
41133 "bicycle", "bidule", "bijou", "bilan", "bilingue", "billard", "binaire", "biologie", "biopsie", "biotype",
41134 "biscuit", "bison", "bistouri", "bitume", "bizarre", "blafard", "blague", "blanchir", "blessant", "blinder",
41135 "blond", "bloquer", "blouson", "bobard", "bobine", "boire", "boiser", "bolide", "bonbon", "bondir",
41136 "bonheur", "bonifier", "bonus", "bordure", "borne", "botte", "boucle", "boueux", "bougie", "boulon",
41137 "bouquin", "bourse", "boussole", "boutique", "boxeur", "branche", "brasier", "brave", "brebis", "brèche",
41138 "breuvage", "bricoler", "brigade", "brillant", "brioche", "brique", "brochure", "broder", "bronzer", "brousse",
41139 "broyeur", "brume", "brusque", "brutal", "bruyant", "buffle", "buisson", "bulletin", "bureau", "burin",
41140 "bustier", "butiner", "butoir", "buvable", "buvette", "cabanon", "cabine", "cachette", "cadeau", "cadre",
41141 "caféine", "caillou", "caisson", "calculer", "calepin", "calibre", "calmer", "calomnie", "calvaire", "camarade",
41142 "caméra", "camion", "campagne", "canal", "caneton", "canon", "cantine", "canular", "capable", "caporal",
41143 "caprice", "capsule", "capter", "capuche", "carabine", "carbone", "caresser", "caribou", "carnage", "carotte",
41144 "carreau", "carton", "cascade", "casier", "casque", "cassure", "causer", "caution", "cavalier", "caverne",
41145 "caviar", "cédille", "ceinture", "céleste", "cellule", "cendrier", "censurer", "central", "cercle", "cérébral",
41146 "cerise", "cerner", "cerveau", "cesser", "chagrin", "chaise", "chaleur", "chambre", "chance", "chapitre",
41147 "charbon", "chasseur", "chaton", "chausson", "chavirer", "chemise", "chenille", "chéquier", "chercher", "cheval",
41148 "chien", "chiffre", "chignon", "chimère", "chiot", "chlorure", "chocolat", "choisir", "chose", "chouette",
41149 "chrome", "chute", "cigare", "cigogne", "cimenter", "cinéma", "cintrer", "circuler", "cirer", "cirque",
41150 "citerne", "citoyen", "citron", "civil", "clairon", "clameur", "claquer", "classe", "clavier", "client",
41151 "cligner", "climat", "clivage", "cloche", "clonage", "cloporte", "cobalt", "cobra", "cocasse", "cocotier",
41152 "coder", "codifier", "coffre", "cogner", "cohésion", "coiffer", "coincer", "colère", "colibri", "colline",
41153 "colmater", "colonel", "combat", "comédie", "commande", "compact", "concert", "conduire", "confier", "congeler",
41154 "connoter", "consonne", "contact", "convexe", "copain", "copie", "corail", "corbeau", "cordage", "corniche",
41155 "corpus", "correct", "cortège", "cosmique", "costume", "coton", "coude", "coupure", "courage", "couteau",
41156 "couvrir", "coyote", "crabe", "crainte", "cravate", "crayon", "créature", "créditer", "crémeux", "creuser",
41157 "crevette", "cribler", "crier", "cristal", "critère", "croire", "croquer", "crotale", "crucial", "cruel",
41158 "crypter", "cubique", "cueillir", "cuillère", "cuisine", "cuivre", "culminer", "cultiver", "cumuler", "cupide",
41159 "curatif", "curseur", "cyanure", "cycle", "cylindre", "cynique", "daigner", "damier", "danger", "danseur",
41160 "dauphin", "débattre", "débiter", "déborder", "débrider", "débutant", "décaler", "décembre", "déchirer", "décider",
41161 "déclarer", "décorer", "décrire", "décupler", "dédale", "déductif", "déesse", "défensif", "défiler", "défrayer",
41162 "dégager", "dégivrer", "déglutir", "dégrafer", "déjeuner", "délice", "déloger", "demander", "demeurer", "démolir",
41163 "dénicher", "dénouer", "dentelle", "dénuder", "départ", "dépenser", "déphaser", "déplacer", "déposer", "déranger",
41164 "dérober", "désastre", "descente", "désert", "désigner", "désobéir", "dessiner", "destrier", "détacher", "détester",
41165 "détourer", "détresse", "devancer", "devenir", "deviner", "devoir", "diable", "dialogue", "diamant", "dicter",
41166 "différer", "digérer", "digital", "digne", "diluer", "dimanche", "diminuer", "dioxyde", "directif", "diriger",
41167 "discuter", "disposer", "dissiper", "distance", "divertir", "diviser", "docile", "docteur", "dogme", "doigt",
41168 "domaine", "domicile", "dompter", "donateur", "donjon", "donner", "dopamine", "dortoir", "dorure", "dosage",
41169 "doseur", "dossier", "dotation", "douanier", "double", "douceur", "douter", "doyen", "dragon", "draper",
41170 "dresser", "dribbler", "droiture", "duperie", "duplexe", "durable", "durcir", "dynastie", "éblouir", "écarter",
41171 "écharpe", "échelle", "éclairer", "éclipse", "éclore", "écluse", "école", "économie", "écorce", "écouter",
41172 "écraser", "écrémer", "écrivain", "écrou", "écume", "écureuil", "édifier", "éduquer", "effacer", "effectif",
41173 "effigie", "effort", "effrayer", "effusion", "égaliser", "égarer", "éjecter", "élaborer", "élargir", "électron",
41174 "élégant", "éléphant", "élève", "éligible", "élitisme", "éloge", "élucider", "éluder", "emballer", "embellir",
41175 "embryon", "émeraude", "émission", "emmener", "émotion", "émouvoir", "empereur", "employer", "emporter", "emprise",
41176 "émulsion", "encadrer", "enchère", "enclave", "encoche", "endiguer", "endosser", "endroit", "enduire", "énergie",
41177 "enfance", "enfermer", "enfouir", "engager", "engin", "englober", "énigme", "enjamber", "enjeu", "enlever",
41178 "ennemi", "ennuyeux", "enrichir", "enrobage", "enseigne", "entasser", "entendre", "entier", "entourer", "entraver",
41179 "énumérer", "envahir", "enviable", "envoyer", "enzyme", "éolien", "épaissir", "épargne", "épatant", "épaule",
41180 "épicerie", "épidémie", "épier", "épilogue", "épine", "épisode", "épitaphe", "époque", "épreuve", "éprouver",
41181 "épuisant", "équerre", "équipe", "ériger", "érosion", "erreur", "éruption", "escalier", "espadon", "espèce",
41182 "espiègle", "espoir", "esprit", "esquiver", "essayer", "essence", "essieu", "essorer", "estime", "estomac",
41183 "estrade", "étagère", "étaler", "étanche", "étatique", "éteindre", "étendoir", "éternel", "éthanol", "éthique",
41184 "ethnie", "étirer", "étoffer", "étoile", "étonnant", "étourdir", "étrange", "étroit", "étude", "euphorie",
41185 "évaluer", "évasion", "éventail", "évidence", "éviter", "évolutif", "évoquer", "exact", "exagérer", "exaucer",
41186 "exceller", "excitant", "exclusif", "excuse", "exécuter", "exemple", "exercer", "exhaler", "exhorter", "exigence",
41187 "exiler", "exister", "exotique", "expédier", "explorer", "exposer", "exprimer", "exquis", "extensif", "extraire",
41188 "exulter", "fable", "fabuleux", "facette", "facile", "facture", "faiblir", "falaise", "fameux", "famille",
41189 "farceur", "farfelu", "farine", "farouche", "fasciner", "fatal", "fatigue", "faucon", "fautif", "faveur",
41190 "favori", "fébrile", "féconder", "fédérer", "félin", "femme", "fémur", "fendoir", "féodal", "fermer",
41191 "féroce", "ferveur", "festival", "feuille", "feutre", "février", "fiasco", "ficeler", "fictif", "fidèle",
41192 "figure", "filature", "filetage", "filière", "filleul", "filmer", "filou", "filtrer", "financer", "finir",
41193 "fiole", "firme", "fissure", "fixer", "flairer", "flamme", "flasque", "flatteur", "fléau", "flèche",
41194 "fleur", "flexion", "flocon", "flore", "fluctuer", "fluide", "fluvial", "folie", "fonderie", "fongible",
41195 "fontaine", "forcer", "forgeron", "formuler", "fortune", "fossile", "foudre", "fougère", "fouiller", "foulure",
41196 "fourmi", "fragile", "fraise", "franchir", "frapper", "frayeur", "frégate", "freiner", "frelon", "frémir",
41197 "frénésie", "frère", "friable", "friction", "frisson", "frivole", "froid", "fromage", "frontal", "frotter",
41198 "fruit", "fugitif", "fuite", "fureur", "furieux", "furtif", "fusion", "futur", "gagner", "galaxie",
41199 "galerie", "gambader", "garantir", "gardien", "garnir", "garrigue", "gazelle", "gazon", "géant", "gélatine",
41200 "gélule", "gendarme", "général", "génie", "genou", "gentil", "géologie", "géomètre", "géranium", "germe",
41201 "gestuel", "geyser", "gibier", "gicler", "girafe", "givre", "glace", "glaive", "glisser", "globe",
41202 "gloire", "glorieux", "golfeur", "gomme", "gonfler", "gorge", "gorille", "goudron", "gouffre", "goulot",
41203 "goupille", "gourmand", "goutte", "graduel", "graffiti", "graine", "grand", "grappin", "gratuit", "gravir",
41204 "grenat", "griffure", "griller", "grimper", "grogner", "gronder", "grotte", "groupe", "gruger", "grutier",
41205 "gruyère", "guépard", "guerrier", "guide", "guimauve", "guitare", "gustatif", "gymnaste", "gyrostat", "habitude",
41206 "hachoir", "halte", "hameau", "hangar", "hanneton", "haricot", "harmonie", "harpon", "hasard", "hélium",
41207 "hématome", "herbe", "hérisson", "hermine", "héron", "hésiter", "heureux", "hiberner", "hibou", "hilarant",
41208 "histoire", "hiver", "homard", "hommage", "homogène", "honneur", "honorer", "honteux", "horde", "horizon",
41209 "horloge", "hormone", "horrible", "houleux", "housse", "hublot", "huileux", "humain", "humble", "humide",
41210 "humour", "hurler", "hydromel", "hygiène", "hymne", "hypnose", "idylle", "ignorer", "iguane", "illicite",
41211 "illusion", "image", "imbiber", "imiter", "immense", "immobile", "immuable", "impact", "impérial", "implorer",
41212 "imposer", "imprimer", "imputer", "incarner", "incendie", "incident", "incliner", "incolore", "indexer", "indice",
41213 "inductif", "inédit", "ineptie", "inexact", "infini", "infliger", "informer", "infusion", "ingérer", "inhaler",
41214 "inhiber", "injecter", "injure", "innocent", "inoculer", "inonder", "inscrire", "insecte", "insigne", "insolite",
41215 "inspirer", "instinct", "insulter", "intact", "intense", "intime", "intrigue", "intuitif", "inutile", "invasion",
41216 "inventer", "inviter", "invoquer", "ironique", "irradier", "irréel", "irriter", "isoler", "ivoire", "ivresse",
41217 "jaguar", "jaillir", "jambe", "janvier", "jardin", "jauger", "jaune", "javelot", "jetable", "jeton",
41218 "jeudi", "jeunesse", "joindre", "joncher", "jongler", "joueur", "jouissif", "journal", "jovial", "joyau",
41219 "joyeux", "jubiler", "jugement", "junior", "jupon", "juriste", "justice", "juteux", "juvénile", "kayak",
41220 "kimono", "kiosque", "label", "labial", "labourer", "lacérer", "lactose", "lagune", "laine", "laisser",
41221 "laitier", "lambeau", "lamelle", "lampe", "lanceur", "langage", "lanterne", "lapin", "largeur", "larme",
41222 "laurier", "lavabo", "lavoir", "lecture", "légal", "léger", "légume", "lessive", "lettre", "levier",
41223 "lexique", "lézard", "liasse", "libérer", "libre", "licence", "licorne", "liège", "lièvre", "ligature",
41224 "ligoter", "ligue", "limer", "limite", "limonade", "limpide", "linéaire", "lingot", "lionceau", "liquide",
41225 "lisière", "lister", "lithium", "litige", "littoral", "livreur", "logique", "lointain", "loisir", "lombric",
41226 "loterie", "louer", "lourd", "loutre", "louve", "loyal", "lubie", "lucide", "lucratif", "lueur",
41227 "lugubre", "luisant", "lumière", "lunaire", "lundi", "luron", "lutter", "luxueux", "machine", "magasin",
41228 "magenta", "magique", "maigre", "maillon", "maintien", "mairie", "maison", "majorer", "malaxer", "maléfice",
41229 "malheur", "malice", "mallette", "mammouth", "mandater", "maniable", "manquant", "manteau", "manuel", "marathon",
41230 "marbre", "marchand", "mardi", "maritime", "marqueur", "marron", "marteler", "mascotte", "massif", "matériel",
41231 "matière", "matraque", "maudire", "maussade", "mauve", "maximal", "méchant", "méconnu", "médaille", "médecin",
41232 "méditer", "méduse", "meilleur", "mélange", "mélodie", "membre", "mémoire", "menacer", "mener", "menhir",
41233 "mensonge", "mentor", "mercredi", "mérite", "merle", "messager", "mesure", "métal", "météore", "méthode",
41234 "métier", "meuble", "miauler", "microbe", "miette", "mignon", "migrer", "milieu", "million", "mimique",
41235 "mince", "minéral", "minimal", "minorer", "minute", "miracle", "miroiter", "missile", "mixte", "mobile",
41236 "moderne", "moelleux", "mondial", "moniteur", "monnaie", "monotone", "monstre", "montagne", "monument", "moqueur",
41237 "morceau", "morsure", "mortier", "moteur", "motif", "mouche", "moufle", "moulin", "mousson", "mouton",
41238 "mouvant", "multiple", "munition", "muraille", "murène", "murmure", "muscle", "muséum", "musicien", "mutation",
41239 "muter", "mutuel", "myriade", "myrtille", "mystère", "mythique", "nageur", "nappe", "narquois", "narrer",
41240 "natation", "nation", "nature", "naufrage", "nautique", "navire", "nébuleux", "nectar", "néfaste", "négation",
41241 "négliger", "négocier", "neige", "nerveux", "nettoyer", "neurone", "neutron", "neveu", "niche", "nickel",
41242 "nitrate", "niveau", "noble", "nocif", "nocturne", "noirceur", "noisette", "nomade", "nombreux", "nommer",
41243 "normatif", "notable", "notifier", "notoire", "nourrir", "nouveau", "novateur", "novembre", "novice", "nuage",
41244 "nuancer", "nuire", "nuisible", "numéro", "nuptial", "nuque", "nutritif", "obéir", "objectif", "obliger",
41245 "obscur", "observer", "obstacle", "obtenir", "obturer", "occasion", "occuper", "océan", "octobre", "octroyer",
41246 "octupler", "oculaire", "odeur", "odorant", "offenser", "officier", "offrir", "ogive", "oiseau", "oisillon",
41247 "olfactif", "olivier", "ombrage", "omettre", "onctueux", "onduler", "onéreux", "onirique", "opale", "opaque",
41248 "opérer", "opinion", "opportun", "opprimer", "opter", "optique", "orageux", "orange", "orbite", "ordonner",
41249 "oreille", "organe", "orgueil", "orifice", "ornement", "orque", "ortie", "osciller", "osmose", "ossature",
41250 "otarie", "ouragan", "ourson", "outil", "outrager", "ouvrage", "ovation", "oxyde", "oxygène", "ozone",
41251 "paisible", "palace", "palmarès", "palourde", "palper", "panache", "panda", "pangolin", "paniquer", "panneau",
41252 "panorama", "pantalon", "papaye", "papier", "papoter", "papyrus", "paradoxe", "parcelle", "paresse", "parfumer",
41253 "parler", "parole", "parrain", "parsemer", "partager", "parure", "parvenir", "passion", "pastèque", "paternel",
41254 "patience", "patron", "pavillon", "pavoiser", "payer", "paysage", "peigne", "peintre", "pelage", "pélican",
41255 "pelle", "pelouse", "peluche", "pendule", "pénétrer", "pénible", "pensif", "pénurie", "pépite", "péplum",
41256 "perdrix", "perforer", "période", "permuter", "perplexe", "persil", "perte", "peser", "pétale", "petit",
41257 "pétrir", "peuple", "pharaon", "phobie", "phoque", "photon", "phrase", "physique", "piano", "pictural",
41258 "pièce", "pierre", "pieuvre", "pilote", "pinceau", "pipette", "piquer", "pirogue", "piscine", "piston",
41259 "pivoter", "pixel", "pizza", "placard", "plafond", "plaisir", "planer", "plaque", "plastron", "plateau",
41260 "pleurer", "plexus", "pliage", "plomb", "plonger", "pluie", "plumage", "pochette", "poésie", "poète",
41261 "pointe", "poirier", "poisson", "poivre", "polaire", "policier", "pollen", "polygone", "pommade", "pompier",
41262 "ponctuel", "pondérer", "poney", "portique", "position", "posséder", "posture", "potager", "poteau", "potion",
41263 "pouce", "poulain", "poumon", "pourpre", "poussin", "pouvoir", "prairie", "pratique", "précieux", "prédire",
41264 "préfixe", "prélude", "prénom", "présence", "prétexte", "prévoir", "primitif", "prince", "prison", "priver",
41265 "problème", "procéder", "prodige", "profond", "progrès", "proie", "projeter", "prologue", "promener", "propre",
41266 "prospère", "protéger", "prouesse", "proverbe", "prudence", "pruneau", "psychose", "public", "puceron", "puiser",
41267 "pulpe", "pulsar", "punaise", "punitif", "pupitre", "purifier", "puzzle", "pyramide", "quasar", "querelle",
41268 "question", "quiétude", "quitter", "quotient", "racine", "raconter", "radieux", "ragondin", "raideur", "raisin",
41269 "ralentir", "rallonge", "ramasser", "rapide", "rasage", "ratisser", "ravager", "ravin", "rayonner", "réactif",
41270 "réagir", "réaliser", "réanimer", "recevoir", "réciter", "réclamer", "récolter", "recruter", "reculer", "recycler",
41271 "rédiger", "redouter", "refaire", "réflexe", "réformer", "refrain", "refuge", "régalien", "région", "réglage",
41272 "régulier", "réitérer", "rejeter", "rejouer", "relatif", "relever", "relief", "remarque", "remède", "remise",
41273 "remonter", "remplir", "remuer", "renard", "renfort", "renifler", "renoncer", "rentrer", "renvoi", "replier",
41274 "reporter", "reprise", "reptile", "requin", "réserve", "résineux", "résoudre", "respect", "rester", "résultat",
41275 "rétablir", "retenir", "réticule", "retomber", "retracer", "réunion", "réussir", "revanche", "revivre", "révolte",
41276 "révulsif", "richesse", "rideau", "rieur", "rigide", "rigoler", "rincer", "riposter", "risible", "risque",
41277 "rituel", "rival", "rivière", "rocheux", "romance", "rompre", "ronce", "rondin", "roseau", "rosier",
41278 "rotatif", "rotor", "rotule", "rouge", "rouille", "rouleau", "routine", "royaume", "ruban", "rubis",
41279 "ruche", "ruelle", "rugueux", "ruiner", "ruisseau", "ruser", "rustique", "rythme", "sabler", "saboter",
41280 "sabre", "sacoche", "safari", "sagesse", "saisir", "salade", "salive", "salon", "saluer", "samedi",
41281 "sanction", "sanglier", "sarcasme", "sardine", "saturer", "saugrenu", "saumon", "sauter", "sauvage", "savant",
41282 "savonner", "scalpel", "scandale", "scélérat", "scénario", "sceptre", "schéma", "science", "scinder", "score",
41283 "scrutin", "sculpter", "séance", "sécable", "sécher", "secouer", "sécréter", "sédatif", "séduire", "seigneur",
41284 "séjour", "sélectif", "semaine", "sembler", "semence", "séminal", "sénateur", "sensible", "sentence", "séparer",
41285 "séquence", "serein", "sergent", "sérieux", "serrure", "sérum", "service", "sésame", "sévir", "sevrage",
41286 "sextuple", "sidéral", "siècle", "siéger", "siffler", "sigle", "signal", "silence", "silicium", "simple",
41287 "sincère", "sinistre", "siphon", "sirop", "sismique", "situer", "skier", "social", "socle", "sodium",
41288 "soigneux", "soldat", "soleil", "solitude", "soluble", "sombre", "sommeil", "somnoler", "sonde", "songeur",
41289 "sonnette", "sonore", "sorcier", "sortir", "sosie", "sottise", "soucieux", "soudure", "souffle", "soulever",
41290 "soupape", "source", "soutirer", "souvenir", "spacieux", "spatial", "spécial", "sphère", "spiral", "stable",
41291 "station", "sternum", "stimulus", "stipuler", "strict", "studieux", "stupeur", "styliste", "sublime", "substrat",
41292 "subtil", "subvenir", "succès", "sucre", "suffixe", "suggérer", "suiveur", "sulfate", "superbe", "supplier",
41293 "surface", "suricate", "surmener", "surprise", "sursaut", "survie", "suspect", "syllabe", "symbole", "symétrie",
41294 "synapse", "syntaxe", "système", "tabac", "tablier", "tactile", "tailler", "talent", "talisman", "talonner",
41295 "tambour", "tamiser", "tangible", "tapis", "taquiner", "tarder", "tarif", "tartine", "tasse", "tatami",
41296 "tatouage", "taupe", "taureau", "taxer", "témoin", "temporel", "tenaille", "tendre", "teneur", "tenir",
41297 "tension", "terminer", "terne", "terrible", "tétine", "texte", "thème", "théorie", "thérapie", "thorax",
41298 "tibia", "tiède", "timide", "tirelire", "tiroir", "tissu", "titane", "titre", "tituber", "toboggan",
41299 "tolérant", "tomate", "tonique", "tonneau", "toponyme", "torche", "tordre", "tornade", "torpille", "torrent",
41300 "torse", "tortue", "totem", "toucher", "tournage", "tousser", "toxine", "traction", "trafic", "tragique",
41301 "trahir", "train", "trancher", "travail", "trèfle", "tremper", "trésor", "treuil", "triage", "tribunal",
41302 "tricoter", "trilogie", "triomphe", "tripler", "triturer", "trivial", "trombone", "tronc", "tropical", "troupeau",
41303 "tuile", "tulipe", "tumulte", "tunnel", "turbine", "tuteur", "tutoyer", "tuyau", "tympan", "typhon",
41304 "typique", "tyran", "ubuesque", "ultime", "ultrason", "unanime", "unifier", "union", "unique", "unitaire",
41305 "univers", "uranium", "urbain", "urticant", "usage", "usine", "usuel", "usure", "utile", "utopie",
41306 "vacarme", "vaccin", "vagabond", "vague", "vaillant", "vaincre", "vaisseau", "valable", "valise", "vallon",
41307 "valve", "vampire", "vanille", "vapeur", "varier", "vaseux", "vassal", "vaste", "vecteur", "vedette",
41308 "végétal", "véhicule", "veinard", "véloce", "vendredi", "vénérer", "venger", "venimeux", "ventouse", "verdure",
41309 "vérin", "vernir", "verrou", "verser", "vertu", "veston", "vétéran", "vétuste", "vexant", "vexer",
41310 "viaduc", "viande", "victoire", "vidange", "vidéo", "vignette", "vigueur", "vilain", "village", "vinaigre",
41311 "violon", "vipère", "virement", "virtuose", "virus", "visage", "viseur", "vision", "visqueux", "visuel",
41312 "vital", "vitesse", "viticole", "vitrine", "vivace", "vivipare", "vocation", "voguer", "voile", "voisin",
41313 "voiture", "volaille", "volcan", "voltiger", "volume", "vorace", "vortex", "voter", "vouloir", "voyage",
41314 "voyelle", "wagon", "xénon", "yacht", "zèbre", "zénith", "zeste", "zoologie"]
41316 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
41317 WORDLISTS["italian"] = [
41318 "abaco", "abbaglio", "abbinato", "abete", "abisso", "abolire", "abrasivo", "abrogato", "accadere", "accenno",
41319 "accusato", "acetone", "achille", "acido", "acqua", "acre", "acrilico", "acrobata", "acuto", "adagio",
41320 "addebito", "addome", "adeguato", "aderire", "adipe", "adottare", "adulare", "affabile", "affetto", "affisso",
41321 "affranto", "aforisma", "afoso", "africano", "agave", "agente", "agevole", "aggancio", "agire", "agitare",
41322 "agonismo", "agricolo", "agrumeto", "aguzzo", "alabarda", "alato", "albatro", "alberato", "albo", "albume",
41323 "alce", "alcolico", "alettone", "alfa", "algebra", "aliante", "alibi", "alimento", "allagato", "allegro",
41324 "allievo", "allodola", "allusivo", "almeno", "alogeno", "alpaca", "alpestre", "altalena", "alterno", "alticcio",
41325 "altrove", "alunno", "alveolo", "alzare", "amalgama", "amanita", "amarena", "ambito", "ambrato", "ameba",
41326 "america", "ametista", "amico", "ammasso", "ammenda", "ammirare", "ammonito", "amore", "ampio", "ampliare",
41327 "amuleto", "anacardo", "anagrafe", "analista", "anarchia", "anatra", "anca", "ancella", "ancora", "andare",
41328 "andrea", "anello", "angelo", "angolare", "angusto", "anima", "annegare", "annidato", "anno", "annuncio",
41329 "anonimo", "anticipo", "anzi", "apatico", "apertura", "apode", "apparire", "appetito", "appoggio", "approdo",
41330 "appunto", "aprile", "arabica", "arachide", "aragosta", "araldica", "arancio", "aratura", "arazzo", "arbitro",
41331 "archivio", "ardito", "arenile", "argento", "argine", "arguto", "aria", "armonia", "arnese", "arredato",
41332 "arringa", "arrosto", "arsenico", "arso", "artefice", "arzillo", "asciutto", "ascolto", "asepsi", "asettico",
41333 "asfalto", "asino", "asola", "aspirato", "aspro", "assaggio", "asse", "assoluto", "assurdo", "asta",
41334 "astenuto", "astice", "astratto", "atavico", "ateismo", "atomico", "atono", "attesa", "attivare", "attorno",
41335 "attrito", "attuale", "ausilio", "austria", "autista", "autonomo", "autunno", "avanzato", "avere", "avvenire",
41336 "avviso", "avvolgere", "azione", "azoto", "azzimo", "azzurro", "babele", "baccano", "bacino", "baco",
41337 "badessa", "badilata", "bagnato", "baita", "balcone", "baldo", "balena", "ballata", "balzano", "bambino",
41338 "bandire", "baraonda", "barbaro", "barca", "baritono", "barlume", "barocco", "basilico", "basso", "batosta",
41339 "battuto", "baule", "bava", "bavosa", "becco", "beffa", "belgio", "belva", "benda", "benevole",
41340 "benigno", "benzina", "bere", "berlina", "beta", "bibita", "bici", "bidone", "bifido", "biga",
41341 "bilancia", "bimbo", "binocolo", "biologo", "bipede", "bipolare", "birbante", "birra", "biscotto", "bisesto",
41342 "bisnonno", "bisonte", "bisturi", "bizzarro", "blando", "blatta", "bollito", "bonifico", "bordo", "bosco",
41343 "botanico", "bottino", "bozzolo", "braccio", "bradipo", "brama", "branca", "bravura", "bretella", "brevetto",
41344 "brezza", "briglia", "brillante", "brindare", "broccolo", "brodo", "bronzina", "brullo", "bruno", "bubbone",
41345 "buca", "budino", "buffone", "buio", "bulbo", "buono", "burlone", "burrasca", "bussola", "busta",
41346 "cadetto", "caduco", "calamaro", "calcolo", "calesse", "calibro", "calmo", "caloria", "cambusa", "camerata",
41347 "camicia", "cammino", "camola", "campale", "canapa", "candela", "cane", "canino", "canotto", "cantina",
41348 "capace", "capello", "capitolo", "capogiro", "cappero", "capra", "capsula", "carapace", "carcassa", "cardo",
41349 "carisma", "carovana", "carretto", "cartolina", "casaccio", "cascata", "caserma", "caso", "cassone", "castello",
41350 "casuale", "catasta", "catena", "catrame", "cauto", "cavillo", "cedibile", "cedrata", "cefalo", "celebre",
41351 "cellulare", "cena", "cenone", "centesimo", "ceramica", "cercare", "certo", "cerume", "cervello", "cesoia",
41352 "cespo", "ceto", "chela", "chiaro", "chicca", "chiedere", "chimera", "china", "chirurgo", "chitarra",
41353 "ciao", "ciclismo", "cifrare", "cigno", "cilindro", "ciottolo", "circa", "cirrosi", "citrico", "cittadino",
41354 "ciuffo", "civetta", "civile", "classico", "clinica", "cloro", "cocco", "codardo", "codice", "coerente",
41355 "cognome", "collare", "colmato", "colore", "colposo", "coltivato", "colza", "coma", "cometa", "commando",
41356 "comodo", "computer", "comune", "conciso", "condurre", "conferma", "congelare", "coniuge", "connesso", "conoscere",
41357 "consumo", "continuo", "convegno", "coperto", "copione", "coppia", "copricapo", "corazza", "cordata", "coricato",
41358 "cornice", "corolla", "corpo", "corredo", "corsia", "cortese", "cosmico", "costante", "cottura", "covato",
41359 "cratere", "cravatta", "creato", "credere", "cremoso", "crescita", "creta", "criceto", "crinale", "crisi",
41360 "critico", "croce", "cronaca", "crostata", "cruciale", "crusca", "cucire", "cuculo", "cugino", "cullato",
41361 "cupola", "curatore", "cursore", "curvo", "cuscino", "custode", "dado", "daino", "dalmata", "damerino",
41362 "daniela", "dannoso", "danzare", "datato", "davanti", "davvero", "debutto", "decennio", "deciso", "declino",
41363 "decollo", "decreto", "dedicato", "definito", "deforme", "degno", "delegare", "delfino", "delirio", "delta",
41364 "demenza", "denotato", "dentro", "deposito", "derapata", "derivare", "deroga", "descritto", "deserto", "desiderio",
41365 "desumere", "detersivo", "devoto", "diametro", "dicembre", "diedro", "difeso", "diffuso", "digerire", "digitale",
41366 "diluvio", "dinamico", "dinnanzi", "dipinto", "diploma", "dipolo", "diradare", "dire", "dirotto", "dirupo",
41367 "disagio", "discreto", "disfare", "disgelo", "disposto", "distanza", "disumano", "dito", "divano", "divelto",
41368 "dividere", "divorato", "doblone", "docente", "doganale", "dogma", "dolce", "domato", "domenica", "dominare",
41369 "dondolo", "dono", "dormire", "dote", "dottore", "dovuto", "dozzina", "drago", "druido", "dubbio",
41370 "dubitare", "ducale", "duna", "duomo", "duplice", "duraturo", "ebano", "eccesso", "ecco", "eclissi",
41371 "economia", "edera", "edicola", "edile", "editoria", "educare", "egemonia", "egli", "egoismo", "egregio",
41372 "elaborato", "elargire", "elegante", "elencato", "eletto", "elevare", "elfico", "elica", "elmo", "elsa",
41373 "eluso", "emanato", "emblema", "emesso", "emiro", "emotivo", "emozione", "empirico", "emulo", "endemico",
41374 "enduro", "energia", "enfasi", "enoteca", "entrare", "enzima", "epatite", "epilogo", "episodio", "epocale",
41375 "eppure", "equatore", "erario", "erba", "erboso", "erede", "eremita", "erigere", "ermetico", "eroe",
41376 "erosivo", "errante", "esagono", "esame", "esanime", "esaudire", "esca", "esempio", "esercito", "esibito",
41377 "esigente", "esistere", "esito", "esofago", "esortato", "esoso", "espanso", "espresso", "essenza", "esso",
41378 "esteso", "estimare", "estonia", "estroso", "esultare", "etilico", "etnico", "etrusco", "etto", "euclideo",
41379 "europa", "evaso", "evidenza", "evitato", "evoluto", "evviva", "fabbrica", "faccenda", "fachiro", "falco",
41380 "famiglia", "fanale", "fanfara", "fango", "fantasma", "fare", "farfalla", "farinoso", "farmaco", "fascia",
41381 "fastoso", "fasullo", "faticare", "fato", "favoloso", "febbre", "fecola", "fede", "fegato", "felpa",
41382 "feltro", "femmina", "fendere", "fenomeno", "fermento", "ferro", "fertile", "fessura", "festivo", "fetta",
41383 "feudo", "fiaba", "fiducia", "fifa", "figurato", "filo", "finanza", "finestra", "finire", "fiore",
41384 "fiscale", "fisico", "fiume", "flacone", "flamenco", "flebo", "flemma", "florido", "fluente", "fluoro",
41385 "fobico", "focaccia", "focoso", "foderato", "foglio", "folata", "folclore", "folgore", "fondente", "fonetico",
41386 "fonia", "fontana", "forbito", "forchetta", "foresta", "formica", "fornaio", "foro", "fortezza", "forzare",
41387 "fosfato", "fosso", "fracasso", "frana", "frassino", "fratello", "freccetta", "frenata", "fresco", "frigo",
41388 "frollino", "fronde", "frugale", "frutta", "fucilata", "fucsia", "fuggente", "fulmine", "fulvo", "fumante",
41389 "fumetto", "fumoso", "fune", "funzione", "fuoco", "furbo", "furgone", "furore", "fuso", "futile",
41390 "gabbiano", "gaffe", "galateo", "gallina", "galoppo", "gambero", "gamma", "garanzia", "garbo", "garofano",
41391 "garzone", "gasdotto", "gasolio", "gastrico", "gatto", "gaudio", "gazebo", "gazzella", "geco", "gelatina",
41392 "gelso", "gemello", "gemmato", "gene", "genitore", "gennaio", "genotipo", "gergo", "ghepardo", "ghiaccio",
41393 "ghisa", "giallo", "gilda", "ginepro", "giocare", "gioiello", "giorno", "giove", "girato", "girone",
41394 "gittata", "giudizio", "giurato", "giusto", "globulo", "glutine", "gnomo", "gobba", "golf", "gomito",
41395 "gommone", "gonfio", "gonna", "governo", "gracile", "grado", "grafico", "grammo", "grande", "grattare",
41396 "gravoso", "grazia", "greca", "gregge", "grifone", "grigio", "grinza", "grotta", "gruppo", "guadagno",
41397 "guaio", "guanto", "guardare", "gufo", "guidare", "ibernato", "icona", "identico", "idillio", "idolo",
41398 "idra", "idrico", "idrogeno", "igiene", "ignaro", "ignorato", "ilare", "illeso", "illogico", "illudere",
41399 "imballo", "imbevuto", "imbocco", "imbuto", "immane", "immerso", "immolato", "impacco", "impeto", "impiego",
41400 "importo", "impronta", "inalare", "inarcare", "inattivo", "incanto", "incendio", "inchino", "incisivo", "incluso",
41401 "incontro", "incrocio", "incubo", "indagine", "india", "indole", "inedito", "infatti", "infilare", "inflitto",
41402 "ingaggio", "ingegno", "inglese", "ingordo", "ingrosso", "innesco", "inodore", "inoltrare", "inondato", "insano",
41403 "insetto", "insieme", "insonnia", "insulina", "intasato", "intero", "intonaco", "intuito", "inumidire", "invalido",
41404 "invece", "invito", "iperbole", "ipnotico", "ipotesi", "ippica", "iride", "irlanda", "ironico", "irrigato",
41405 "irrorare", "isolato", "isotopo", "isterico", "istituto", "istrice", "italia", "iterare", "labbro", "labirinto",
41406 "lacca", "lacerato", "lacrima", "lacuna", "laddove", "lago", "lampo", "lancetta", "lanterna", "lardoso",
41407 "larga", "laringe", "lastra", "latenza", "latino", "lattuga", "lavagna", "lavoro", "legale", "leggero",
41408 "lembo", "lentezza", "lenza", "leone", "lepre", "lesivo", "lessato", "lesto", "letterale", "leva",
41409 "levigato", "libero", "lido", "lievito", "lilla", "limatura", "limitare", "limpido", "lineare", "lingua",
41410 "liquido", "lira", "lirica", "lisca", "lite", "litigio", "livrea", "locanda", "lode", "logica",
41411 "lombare", "londra", "longevo", "loquace", "lorenzo", "loto", "lotteria", "luce", "lucidato", "lumaca",
41412 "luminoso", "lungo", "lupo", "luppolo", "lusinga", "lusso", "lutto", "macabro", "macchina", "macero",
41413 "macinato", "madama", "magico", "maglia", "magnete", "magro", "maiolica", "malafede", "malgrado", "malinteso",
41414 "malsano", "malto", "malumore", "mana", "mancia", "mandorla", "mangiare", "manifesto", "mannaro", "manovra",
41415 "mansarda", "mantide", "manubrio", "mappa", "maratona", "marcire", "maretta", "marmo", "marsupio", "maschera",
41416 "massaia", "mastino", "materasso", "matricola", "mattone", "maturo", "mazurca", "meandro", "meccanico", "mecenate",
41417 "medesimo", "meditare", "mega", "melassa", "melis", "melodia", "meninge", "meno", "mensola", "mercurio",
41418 "merenda", "merlo", "meschino", "mese", "messere", "mestolo", "metallo", "metodo", "mettere", "miagolare",
41419 "mica", "micelio", "michele", "microbo", "midollo", "miele", "migliore", "milano", "milite", "mimosa",
41420 "minerale", "mini", "minore", "mirino", "mirtillo", "miscela", "missiva", "misto", "misurare", "mitezza",
41421 "mitigare", "mitra", "mittente", "mnemonico", "modello", "modifica", "modulo", "mogano", "mogio", "mole",
41422 "molosso", "monastero", "monco", "mondina", "monetario", "monile", "monotono", "monsone", "montato", "monviso",
41423 "mora", "mordere", "morsicato", "mostro", "motivato", "motosega", "motto", "movenza", "movimento", "mozzo",
41424 "mucca", "mucosa", "muffa", "mughetto", "mugnaio", "mulatto", "mulinello", "multiplo", "mummia", "munto",
41425 "muovere", "murale", "musa", "muscolo", "musica", "mutevole", "muto", "nababbo", "nafta", "nanometro",
41426 "narciso", "narice", "narrato", "nascere", "nastrare", "naturale", "nautica", "naviglio", "nebulosa", "necrosi",
41427 "negativo", "negozio", "nemmeno", "neofita", "neretto", "nervo", "nessuno", "nettuno", "neutrale", "neve",
41428 "nevrotico", "nicchia", "ninfa", "nitido", "nobile", "nocivo", "nodo", "nome", "nomina", "nordico",
41429 "normale", "norvegese", "nostrano", "notare", "notizia", "notturno", "novella", "nucleo", "nulla", "numero",
41430 "nuovo", "nutrire", "nuvola", "nuziale", "oasi", "obbedire", "obbligo", "obelisco", "oblio", "obolo",
41431 "obsoleto", "occasione", "occhio", "occidente", "occorrere", "occultare", "ocra", "oculato", "odierno", "odorare",
41432 "offerta", "offrire", "offuscato", "oggetto", "oggi", "ognuno", "olandese", "olfatto", "oliato", "oliva",
41433 "ologramma", "oltre", "omaggio", "ombelico", "ombra", "omega", "omissione", "ondoso", "onere", "onice",
41434 "onnivoro", "onorevole", "onta", "operato", "opinione", "opposto", "oracolo", "orafo", "ordine", "orecchino",
41435 "orefice", "orfano", "organico", "origine", "orizzonte", "orma", "ormeggio", "ornativo", "orologio", "orrendo",
41436 "orribile", "ortensia", "ortica", "orzata", "orzo", "osare", "oscurare", "osmosi", "ospedale", "ospite",
41437 "ossa", "ossidare", "ostacolo", "oste", "otite", "otre", "ottagono", "ottimo", "ottobre", "ovale",
41438 "ovest", "ovino", "oviparo", "ovocito", "ovunque", "ovviare", "ozio", "pacchetto", "pace", "pacifico",
41439 "padella", "padrone", "paese", "paga", "pagina", "palazzina", "palesare", "pallido", "palo", "palude",
41440 "pandoro", "pannello", "paolo", "paonazzo", "paprica", "parabola", "parcella", "parere", "pargolo", "pari",
41441 "parlato", "parola", "partire", "parvenza", "parziale", "passivo", "pasticca", "patacca", "patologia", "pattume",
41442 "pavone", "peccato", "pedalare", "pedonale", "peggio", "peloso", "penare", "pendice", "penisola", "pennuto",
41443 "penombra", "pensare", "pentola", "pepe", "pepita", "perbene", "percorso", "perdonato", "perforare", "pergamena",
41444 "periodo", "permesso", "perno", "perplesso", "persuaso", "pertugio", "pervaso", "pesatore", "pesista", "peso",
41445 "pestifero", "petalo", "pettine", "petulante", "pezzo", "piacere", "pianta", "piattino", "piccino", "picozza",
41446 "piega", "pietra", "piffero", "pigiama", "pigolio", "pigro", "pila", "pilifero", "pillola", "pilota",
41447 "pimpante", "pineta", "pinna", "pinolo", "pioggia", "piombo", "piramide", "piretico", "pirite", "pirolisi",
41448 "pitone", "pizzico", "placebo", "planare", "plasma", "platano", "plenario", "pochezza", "poderoso", "podismo",
41449 "poesia", "poggiare", "polenta", "poligono", "pollice", "polmonite", "polpetta", "polso", "poltrona", "polvere",
41450 "pomice", "pomodoro", "ponte", "popoloso", "porfido", "poroso", "porpora", "porre", "portata", "posa",
41451 "positivo", "possesso", "postulato", "potassio", "potere", "pranzo", "prassi", "pratica", "precluso", "predica",
41452 "prefisso", "pregiato", "prelievo", "premere", "prenotare", "preparato", "presenza", "pretesto", "prevalso", "prima",
41453 "principe", "privato", "problema", "procura", "produrre", "profumo", "progetto", "prolunga", "promessa", "pronome",
41454 "proposta", "proroga", "proteso", "prova", "prudente", "prugna", "prurito", "psiche", "pubblico", "pudica",
41455 "pugilato", "pugno", "pulce", "pulito", "pulsante", "puntare", "pupazzo", "pupilla", "puro", "quadro",
41456 "qualcosa", "quasi", "querela", "quota", "raccolto", "raddoppio", "radicale", "radunato", "raffica", "ragazzo",
41457 "ragione", "ragno", "ramarro", "ramingo", "ramo", "randagio", "rantolare", "rapato", "rapina", "rappreso",
41458 "rasatura", "raschiato", "rasente", "rassegna", "rastrello", "rata", "ravveduto", "reale", "recepire", "recinto",
41459 "recluta", "recondito", "recupero", "reddito", "redimere", "regalato", "registro", "regola", "regresso", "relazione",
41460 "remare", "remoto", "renna", "replica", "reprimere", "reputare", "resa", "residente", "responso", "restauro",
41461 "rete", "retina", "retorica", "rettifica", "revocato", "riassunto", "ribadire", "ribelle", "ribrezzo", "ricarica",
41462 "ricco", "ricevere", "riciclato", "ricordo", "ricreduto", "ridicolo", "ridurre", "rifasare", "riflesso", "riforma",
41463 "rifugio", "rigare", "rigettato", "righello", "rilassato", "rilevato", "rimanere", "rimbalzo", "rimedio", "rimorchio",
41464 "rinascita", "rincaro", "rinforzo", "rinnovo", "rinomato", "rinsavito", "rintocco", "rinuncia", "rinvenire", "riparato",
41465 "ripetuto", "ripieno", "riportare", "ripresa", "ripulire", "risata", "rischio", "riserva", "risibile", "riso",
41466 "rispetto", "ristoro", "risultato", "risvolto", "ritardo", "ritegno", "ritmico", "ritrovo", "riunione", "riva",
41467 "riverso", "rivincita", "rivolto", "rizoma", "roba", "robotico", "robusto", "roccia", "roco", "rodaggio",
41468 "rodere", "roditore", "rogito", "rollio", "romantico", "rompere", "ronzio", "rosolare", "rospo", "rotante",
41469 "rotondo", "rotula", "rovescio", "rubizzo", "rubrica", "ruga", "rullino", "rumine", "rumoroso", "ruolo",
41470 "rupe", "russare", "rustico", "sabato", "sabbiare", "sabotato", "sagoma", "salasso", "saldatura", "salgemma",
41471 "salivare", "salmone", "salone", "saltare", "saluto", "salvo", "sapere", "sapido", "saporito", "saraceno",
41472 "sarcasmo", "sarto", "sassoso", "satellite", "satira", "satollo", "saturno", "savana", "savio", "saziato",
41473 "sbadiglio", "sbalzo", "sbancato", "sbarra", "sbattere", "sbavare", "sbendare", "sbirciare", "sbloccato", "sbocciato",
41474 "sbrinare", "sbruffone", "sbuffare", "scabroso", "scadenza", "scala", "scambiare", "scandalo", "scapola", "scarso",
41475 "scatenare", "scavato", "scelto", "scenico", "scettro", "scheda", "schiena", "sciarpa", "scienza", "scindere",
41476 "scippo", "sciroppo", "scivolo", "sclerare", "scodella", "scolpito", "scomparto", "sconforto", "scoprire", "scorta",
41477 "scossone", "scozzese", "scriba", "scrollare", "scrutinio", "scuderia", "scultore", "scuola", "scuro", "scusare",
41478 "sdebitare", "sdoganare", "seccatura", "secondo", "sedano", "seggiola", "segnalato", "segregato", "seguito", "selciato",
41479 "selettivo", "sella", "selvaggio", "semaforo", "sembrare", "seme", "seminato", "sempre", "senso", "sentire",
41480 "sepolto", "sequenza", "serata", "serbato", "sereno", "serio", "serpente", "serraglio", "servire", "sestina",
41481 "setola", "settimana", "sfacelo", "sfaldare", "sfamato", "sfarzoso", "sfaticato", "sfera", "sfida", "sfilato",
41482 "sfinge", "sfocato", "sfoderare", "sfogo", "sfoltire", "sforzato", "sfratto", "sfruttato", "sfuggito", "sfumare",
41483 "sfuso", "sgabello", "sgarbato", "sgonfiare", "sgorbio", "sgrassato", "sguardo", "sibilo", "siccome", "sierra",
41484 "sigla", "signore", "silenzio", "sillaba", "simbolo", "simpatico", "simulato", "sinfonia", "singolo", "sinistro",
41485 "sino", "sintesi", "sinusoide", "sipario", "sisma", "sistole", "situato", "slitta", "slogatura", "sloveno",
41486 "smarrito", "smemorato", "smentito", "smeraldo", "smilzo", "smontare", "smottato", "smussato", "snellire", "snervato",
41487 "snodo", "sobbalzo", "sobrio", "soccorso", "sociale", "sodale", "soffitto", "sogno", "soldato", "solenne",
41488 "solido", "sollazzo", "solo", "solubile", "solvente", "somatico", "somma", "sonda", "sonetto", "sonnifero",
41489 "sopire", "soppeso", "sopra", "sorgere", "sorpasso", "sorriso", "sorso", "sorteggio", "sorvolato", "sospiro",
41490 "sosta", "sottile", "spada", "spalla", "spargere", "spatola", "spavento", "spazzola", "specie", "spedire",
41491 "spegnere", "spelatura", "speranza", "spessore", "spettrale", "spezzato", "spia", "spigoloso", "spillato", "spinoso",
41492 "spirale", "splendido", "sportivo", "sposo", "spranga", "sprecare", "spronato", "spruzzo", "spuntino", "squillo",
41493 "sradicare", "srotolato", "stabile", "stacco", "staffa", "stagnare", "stampato", "stantio", "starnuto", "stasera",
41494 "statuto", "stelo", "steppa", "sterzo", "stiletto", "stima", "stirpe", "stivale", "stizzoso", "stonato",
41495 "storico", "strappo", "stregato", "stridulo", "strozzare", "strutto", "stuccare", "stufo", "stupendo", "subentro",
41496 "succoso", "sudore", "suggerito", "sugo", "sultano", "suonare", "superbo", "supporto", "surgelato", "surrogato",
41497 "sussurro", "sutura", "svagare", "svedese", "sveglio", "svelare", "svenuto", "svezia", "sviluppo", "svista",
41498 "svizzera", "svolta", "svuotare", "tabacco", "tabulato", "tacciare", "taciturno", "tale", "talismano", "tampone",
41499 "tannino", "tara", "tardivo", "targato", "tariffa", "tarpare", "tartaruga", "tasto", "tattico", "taverna",
41500 "tavolata", "tazza", "teca", "tecnico", "telefono", "temerario", "tempo", "temuto", "tendone", "tenero",
41501 "tensione", "tentacolo", "teorema", "terme", "terrazzo", "terzetto", "tesi", "tesserato", "testato", "tetro",
41502 "tettoia", "tifare", "tigella", "timbro", "tinto", "tipico", "tipografo", "tiraggio", "tiro", "titanio",
41503 "titolo", "titubante", "tizio", "tizzone", "toccare", "tollerare", "tolto", "tombola", "tomo", "tonfo",
41504 "tonsilla", "topazio", "topologia", "toppa", "torba", "tornare", "torrone", "tortora", "toscano", "tossire",
41505 "tostatura", "totano", "trabocco", "trachea", "trafila", "tragedia", "tralcio", "tramonto", "transito", "trapano",
41506 "trarre", "trasloco", "trattato", "trave", "treccia", "tremolio", "trespolo", "tributo", "tricheco", "trifoglio",
41507 "trillo", "trincea", "trio", "tristezza", "triturato", "trivella", "tromba", "trono", "troppo", "trottola",
41508 "trovare", "truccato", "tubatura", "tuffato", "tulipano", "tumulto", "tunisia", "turbare", "turchino", "tuta",
41509 "tutela", "ubicato", "uccello", "uccisore", "udire", "uditivo", "uffa", "ufficio", "uguale", "ulisse",
41510 "ultimato", "umano", "umile", "umorismo", "uncinetto", "ungere", "ungherese", "unicorno", "unificato", "unisono",
41511 "unitario", "unte", "uovo", "upupa", "uragano", "urgenza", "urlo", "usanza", "usato", "uscito",
41512 "usignolo", "usuraio", "utensile", "utilizzo", "utopia", "vacante", "vaccinato", "vagabondo", "vagliato", "valanga",
41513 "valgo", "valico", "valletta", "valoroso", "valutare", "valvola", "vampata", "vangare", "vanitoso", "vano",
41514 "vantaggio", "vanvera", "vapore", "varano", "varcato", "variante", "vasca", "vedetta", "vedova", "veduto",
41515 "vegetale", "veicolo", "velcro", "velina", "velluto", "veloce", "venato", "vendemmia", "vento", "verace",
41516 "verbale", "vergogna", "verifica", "vero", "verruca", "verticale", "vescica", "vessillo", "vestale", "veterano",
41517 "vetrina", "vetusto", "viandante", "vibrante", "vicenda", "vichingo", "vicinanza", "vidimare", "vigilia", "vigneto",
41518 "vigore", "vile", "villano", "vimini", "vincitore", "viola", "vipera", "virgola", "virologo", "virulento",
41519 "viscoso", "visione", "vispo", "vissuto", "visura", "vita", "vitello", "vittima", "vivanda", "vivido",
41520 "viziare", "voce", "voga", "volatile", "volere", "volpe", "voragine", "vulcano", "zampogna", "zanna",
41521 "zappato", "zattera", "zavorra", "zefiro", "zelante", "zelo", "zenzero", "zerbino", "zibetto", "zinco",
41522 "zircone", "zitto", "zolla", "zotico", "zucchero", "zufolo", "zulu", "zuppa"]
41525 * Copyright (c)
2013 Pavol Rusnak
41527 * Permission is hereby granted, free of charge, to any person obtaining a copy of
41528 * this software and associated documentation files (the "Software"), to deal in
41529 * the Software without restriction, including without limitation the rights to
41530 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
41531 * of the Software, and to permit persons to whom the Software is furnished to do
41532 * so, subject to the following conditions:
41534 * The above copyright notice and this permission notice shall be included in all
41535 * copies or substantial portions of the Software.
41537 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
41538 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
41539 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
41540 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41541 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
41542 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
41546 * Javascript port from python by Ian Coleman
41548 * Requires code from sjcl
41549 * https://github.com/bitwiseshiftleft/sjcl
41552 var Mnemonic = function(language) {
41554 var PBKDF2_ROUNDS =
2048;
41560 var hmacSHA512 = function(key) {
41561 var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512);
41562 this.encrypt = function() {
41563 return hasher.encrypt.apply(hasher, arguments);
41568 wordlist = WORDLISTS[language];
41569 if (wordlist.length != RADIX) {
41570 err = 'Wordlist should contain ' + RADIX + ' words, but it contains ' + wordlist.length + ' words.';
41575 self.generate = function(strength) {
41576 strength = strength ||
128;
41577 var r = strength %
32;
41579 throw 'Strength should be divisible by
32, but it is not (' + r + ').';
41581 var hasStrongCrypto = 'crypto' in window && window['crypto'] !== null;
41582 if (!hasStrongCrypto) {
41583 throw 'Mnemonic should be generated with strong randomness, but crypto.getRandomValues is unavailable';
41585 var buffer = new Uint8Array(strength /
8);
41586 var data = crypto.getRandomValues(buffer);
41587 return self.toMnemonic(data);
41590 self.toMnemonic = function(byteArray) {
41591 if (byteArray.length %
4 > 0) {
41592 throw 'Data length in bits should be divisible by
32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*
8 + ' bits).'
41595 //h = hashlib.sha256(data).hexdigest()
41596 var data = byteArrayToWordArray(byteArray);
41597 var hash = sjcl.hash.sha256.hash(data);
41598 var h = sjcl.codec.hex.fromBits(hash);
41600 // b is a binary string, eg '
00111010101100...'
41601 //b = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8) + \
41602 // bin(int(h,
16))[
2:].zfill(
256)[:len(data) *
8 /
32]
41604 // a = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8)
41605 // c = bin(int(h,
16))[
2:].zfill(
256)
41606 // d = c[:len(data) *
8 /
32]
41607 var a = byteArrayToBinaryString(byteArray);
41608 var c = zfill(hexStringToBinaryString(h),
256);
41609 var d = c.substring(
0, byteArray.length *
8 /
32);
41610 // b = line1 + line2
41614 var blen = b.length /
11;
41615 for (var i=
0; i
<blen; i++) {
41616 var idx = parseInt(b.substring(i *
11, (i +
1) *
11),
2);
41617 result.push(wordlist[idx]);
41619 return self.joinWords(result);
41622 self.check = function(mnemonic) {
41623 var mnemonic = self.splitWords(mnemonic);
41624 if (mnemonic.length ==
0 || mnemonic.length %
3 > 0) {
41627 // idx = map(lambda x: bin(self.wordlist.index(x))[
2:].zfill(
11), mnemonic)
41629 for (var i=
0; i
<mnemonic.length; i++) {
41630 var word = mnemonic[i];
41631 var wordIndex = wordlist.indexOf(word);
41632 if (wordIndex == -
1) {
41635 var binaryIndex = zfill(wordIndex.toString(
2),
11);
41636 idx.push(binaryIndex);
41638 var b = idx.join('');
41640 //d = b[:l /
33 *
32]
41642 var d = b.substring(
0, l /
33 *
32);
41643 var h = b.substring(l - l /
33, l);
41644 //nd = binascii.unhexlify(hex(int(d,
2))[
2:].rstrip('L').zfill(l /
33 *
8))
41645 var nd = binaryStringToWordArray(d);
41646 //nh = bin(int(hashlib.sha256(nd).hexdigest(),
16))[
2:].zfill(
256)[:l /
33]
41647 var ndHash = sjcl.hash.sha256.hash(nd);
41648 var ndHex = sjcl.codec.hex.fromBits(ndHash);
41649 var ndBstr = zfill(hexStringToBinaryString(ndHex),
256);
41650 var nh = ndBstr.substring(
0,l/
33);
41654 self.toSeed = function(mnemonic, passphrase) {
41655 passphrase = passphrase || '';
41656 mnemonic = self.joinWords(self.splitWords(mnemonic)); // removes duplicate blanks
41657 var mnemonicNormalized = self.normalizeString(mnemonic);
41658 passphrase = self.normalizeString(passphrase)
41659 passphrase =
"mnemonic" + passphrase;
41660 var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonicNormalized);
41661 var passphraseBits = sjcl.codec.utf8String.toBits(passphrase);
41662 var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS,
512, hmacSHA512);
41663 var hashHex = sjcl.codec.hex.fromBits(result);
41667 self.splitWords = function(mnemonic) {
41668 return mnemonic.split(/\s/g).filter(function(x) { return x.length; });
41671 self.joinWords = function(words) {
41672 // Set space correctly depending on the language
41673 // see https://github.com/bitcoin/bips/blob/master/bip-
0039/bip-
0039-wordlists.md#japanese
41675 if (language ==
"japanese") {
41676 space =
"\u3000"; // ideographic space
41678 return words.join(space);
41681 self.normalizeString = function(str) {
41682 if (typeof str.normalize ==
"function") {
41683 return str.normalize(
"NFKD");
41686 // TODO decide how to handle this in the future.
41687 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
41692 function byteArrayToWordArray(data) {
41694 for (var i=
0; i
<data.length/
4; i++) {
41696 v += data[i*
4 +
0] <<
8 *
3;
41697 v += data[i*
4 +
1] <<
8 *
2;
41698 v += data[i*
4 +
2] <<
8 *
1;
41699 v += data[i*
4 +
3] <<
8 *
0;
41705 function byteArrayToBinaryString(data) {
41707 for (var i=
0; i
<data.length; i++) {
41708 bin += zfill(data[i].toString(
2),
8);
41713 function hexStringToBinaryString(hexString) {
41715 for (var i=
0; i
<hexString.length; i++) {
41716 binaryString += zfill(parseInt(hexString[i],
16).toString(
2),
4);
41718 return binaryString;
41721 function binaryStringToWordArray(binary) {
41722 var aLen = binary.length /
32;
41724 for (var i=
0; i
<aLen; i++) {
41725 var valueStr = binary.substring(
0,
32);
41726 var value = parseInt(valueStr,
2);
41728 binary = binary.slice(
32);
41733 // Pad a numeric string on the left with zero digits until the given width
41735 // Note this differs to the python implementation because it does not
41736 // handle numbers starting with a sign.
41737 function zfill(source, length) {
41738 source = source.toString();
41739 while (source.length < length) {
41740 source = '
0' + source;
41750 JavaScript BigInteger library version
0.9.1
41751 http://silentmatt.com/biginteger/
41753 Copyright (c)
2009 Matthew Crumley
<email@matthewcrumley.com
>
41754 Copyright (c)
2010,
2011 by John Tobey
<John.Tobey@gmail.com
>
41755 Licensed under the MIT license.
41757 Support for arbitrary internal representation base was added by
41762 File: biginteger.js
41768 (function(exports) {
41772 An arbitrarily-large integer.
41774 <BigInteger> objects should be considered immutable. None of the "built-in"
41775 methods modify *this* or their arguments. All properties should be
41776 considered private.
41778 All the methods of
<BigInteger> instances can be called "statically". The
41779 static versions are convenient if you don't already have a
<BigInteger>
41782 As an example, these calls are equivalent.
41784 > BigInteger(
4).multiply(
5); // returns BigInteger(
20);
41785 > BigInteger.multiply(
4,
5); // returns BigInteger(
20);
41788 > var a = BigInteger.toJSValue("
0b101010"); // Not completely useless...
41791 var CONSTRUCT = {}; // Unique token to call "private" version of constructor
41794 Constructor: BigInteger()
41795 Convert a value to a
<BigInteger>.
41797 Although
<BigInteger()
> is the constructor for
<BigInteger> objects, it is
41798 best not to call it as a constructor. If *n* is a
<BigInteger> object, it is
41799 simply returned as-is. Otherwise,
<BigInteger()
> is equivalent to
<parse>
41800 without a radix argument.
41802 > var n0 = BigInteger(); // Same as
<BigInteger.ZERO
>
41803 > var n1 = BigInteger("
123"); // Create a new
<BigInteger> with value
123
41804 > var n2 = BigInteger(
123); // Create a new
<BigInteger> with value
123
41805 > var n3 = BigInteger(n2); // Return n2, unchanged
41807 The constructor form only takes an array and a sign. *n* must be an
41808 array of numbers in little-endian order, where each digit is between
0
41809 and BigInteger.base. The second parameter sets the sign: -
1 for
41810 negative, +
1 for positive, or
0 for zero. The array is *not copied and
41811 may be modified*. If the array contains only zeros, the sign parameter
41812 is ignored and is forced to zero.
41814 > new BigInteger([
5], -
1): create a new BigInteger with value -
5
41818 n - Value to convert to a
<BigInteger>.
41822 A
<BigInteger> value.
41826 <parse>,
<BigInteger>
41828 function BigInteger(n, s, token) {
41829 if (token !== CONSTRUCT) {
41830 if (n instanceof BigInteger) {
41833 else if (typeof n === "undefined") {
41836 return BigInteger.parse(n);
41839 n = n || []; // Provide the nullary constructor for subclasses.
41840 while (n.length && !n[n.length -
1]) {
41844 this._s = n.length ? (s ||
1) :
0;
41847 BigInteger._construct = function(n, s) {
41848 return new BigInteger(n, s, CONSTRUCT);
41851 // Base-
10 speedup hacks in parse, toString, exp10 and log functions
41852 // require base to be a power of
10.
10^
7 is the largest such power
41853 // that won't cause a precision loss when digits are multiplied.
41854 var BigInteger_base =
10000000;
41855 var BigInteger_base_log10 =
7;
41857 BigInteger.base = BigInteger_base;
41858 BigInteger.base_log10 = BigInteger_base_log10;
41860 var ZERO = new BigInteger([],
0, CONSTRUCT);
41863 BigInteger.ZERO = ZERO;
41865 var ONE = new BigInteger([
1],
1, CONSTRUCT);
41868 BigInteger.ONE = ONE;
41870 var M_ONE = new BigInteger(ONE._d, -
1, CONSTRUCT);
41872 //
<BigInteger> -
1.
41873 BigInteger.M_ONE = M_ONE;
41876 // Shortcut for
<ZERO>.
41877 BigInteger._0 = ZERO;
41880 // Shortcut for
<ONE>.
41881 BigInteger._1 = ONE;
41885 Array of
<BigIntegers> from
0 to
36.
41887 These are used internally for parsing, but useful when you need a "small"
41892 <ZERO>,
<ONE>,
<_0>,
<_1>
41894 BigInteger.small = [
41897 /* Assuming BigInteger_base
> 36 */
41898 new BigInteger( [
2],
1, CONSTRUCT),
41899 new BigInteger( [
3],
1, CONSTRUCT),
41900 new BigInteger( [
4],
1, CONSTRUCT),
41901 new BigInteger( [
5],
1, CONSTRUCT),
41902 new BigInteger( [
6],
1, CONSTRUCT),
41903 new BigInteger( [
7],
1, CONSTRUCT),
41904 new BigInteger( [
8],
1, CONSTRUCT),
41905 new BigInteger( [
9],
1, CONSTRUCT),
41906 new BigInteger([
10],
1, CONSTRUCT),
41907 new BigInteger([
11],
1, CONSTRUCT),
41908 new BigInteger([
12],
1, CONSTRUCT),
41909 new BigInteger([
13],
1, CONSTRUCT),
41910 new BigInteger([
14],
1, CONSTRUCT),
41911 new BigInteger([
15],
1, CONSTRUCT),
41912 new BigInteger([
16],
1, CONSTRUCT),
41913 new BigInteger([
17],
1, CONSTRUCT),
41914 new BigInteger([
18],
1, CONSTRUCT),
41915 new BigInteger([
19],
1, CONSTRUCT),
41916 new BigInteger([
20],
1, CONSTRUCT),
41917 new BigInteger([
21],
1, CONSTRUCT),
41918 new BigInteger([
22],
1, CONSTRUCT),
41919 new BigInteger([
23],
1, CONSTRUCT),
41920 new BigInteger([
24],
1, CONSTRUCT),
41921 new BigInteger([
25],
1, CONSTRUCT),
41922 new BigInteger([
26],
1, CONSTRUCT),
41923 new BigInteger([
27],
1, CONSTRUCT),
41924 new BigInteger([
28],
1, CONSTRUCT),
41925 new BigInteger([
29],
1, CONSTRUCT),
41926 new BigInteger([
30],
1, CONSTRUCT),
41927 new BigInteger([
31],
1, CONSTRUCT),
41928 new BigInteger([
32],
1, CONSTRUCT),
41929 new BigInteger([
33],
1, CONSTRUCT),
41930 new BigInteger([
34],
1, CONSTRUCT),
41931 new BigInteger([
35],
1, CONSTRUCT),
41932 new BigInteger([
36],
1, CONSTRUCT)
41935 // Used for parsing/radix conversion
41936 BigInteger.digits =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(
"");
41940 Convert a
<BigInteger> to a string.
41942 When *base* is greater than
10, letters are upper case.
41946 base - Optional base to represent the number in (default is base
10).
41947 Must be between
2 and
36 inclusive, or an Error will be thrown.
41951 The string representation of the
<BigInteger>.
41953 BigInteger.prototype.toString = function(base) {
41954 base = +base ||
10;
41955 if (base <
2 || base
> 36) {
41956 throw new Error(
"illegal radix " + base +
".");
41958 if (this._s ===
0) {
41962 var str = this._s <
0 ?
"-" :
"";
41963 str += this._d[this._d.length -
1].toString();
41964 for (var i = this._d.length -
2; i
>=
0; i--) {
41965 var group = this._d[i].toString();
41966 while (group.length < BigInteger_base_log10) group = '
0' + group;
41972 var numerals = BigInteger.digits;
41973 base = BigInteger.small[base];
41974 var sign = this._s;
41976 var n = this.abs();
41980 while (n._s !==
0) {
41981 var divmod = n.divRem(base);
41984 // TODO: This could be changed to unshift instead of reversing at the end.
41985 // Benchmark both to compare speeds.
41986 digits.push(numerals[digit.valueOf()]);
41988 return (sign <
0 ? "-" : "") + digits.reverse().join("");
41992 // Verify strings for parsing
41993 BigInteger.radixRegex = [
42035 Parse a string into a
<BigInteger>.
42037 *base* is optional but, if provided, must be from
2 to
36 inclusive. If
42038 *base* is not provided, it will be guessed based on the leading characters
42041 - "
0x" or "
0X": *base* =
16
42042 - "
0c" or "
0C": *base* =
8
42043 - "
0b" or "
0B": *base* =
2
42044 - else: *base* =
10
42046 If no base is provided, or *base* is
10, the number can be in exponential
42047 form. For example, these are all valid:
42049 > BigInteger.parse("
1e9"); // Same as "
1000000000"
42050 > BigInteger.parse("
1.234*
10^
3"); // Same as
1234
42051 > BigInteger.parse("
56789 *
10 ** -
2"); // Same as
567
42053 If any characters fall outside the range defined by the radix, an exception
42058 s - The string to parse.
42059 base - Optional radix (default is to guess based on *s*).
42063 a
<BigInteger> instance.
42065 BigInteger.parse = function(s, base) {
42066 // Expands a number in exponential form to decimal form.
42067 // expandExponential("-
13.441*
10^
5") === "
1344100";
42068 // expandExponential("
1.12300e-1") === "
0.112300";
42069 // expandExponential(
1000000000000000000000000000000) === "
1000000000000000000000000000000";
42070 function expandExponential(str) {
42071 str = str.replace(/\s*[*xX]\s*
10\s*(\^|\*\*)\s*/, "e");
42073 return str.replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/, function(x, s, n, f, c) {
42076 var i = n.length + c;
42077 x = (l ? n : f).length;
42078 c = ((c = Math.abs(c))
>= x ? c - x + l :
0);
42079 var z = (new Array(c +
1)).join("
0");
42081 return (s || "") + (l ? r = z + r : r += z).substr(
0, i += l ? z.length :
0) + (i < r.length ? "." + r.substr(i) : "");
42086 if (typeof base === "undefined" || +base ===
10) {
42087 s = expandExponential(s);
42091 if (typeof base === "undefined") {
42092 prefixRE = '
0[xcb]';
42094 else if (base ==
16) {
42097 else if (base ==
8) {
42100 else if (base ==
2) {
42106 var parts = new RegExp('^([+\\-]?)(' + prefixRE + ')?([
0-
9a-z]*)(?:\\.\\d*)?$', 'i').exec(s);
42108 var sign = parts[
1] || "+";
42109 var baseSection = parts[
2] || "";
42110 var digits = parts[
3] || "";
42112 if (typeof base === "undefined") {
42114 if (baseSection === "
0x" || baseSection === "
0X") { // Hex
42117 else if (baseSection === "
0c" || baseSection === "
0C") { // Octal
42120 else if (baseSection === "
0b" || baseSection === "
0B") { // Binary
42127 else if (base <
2 || base
> 36) {
42128 throw new Error(
"Illegal radix " + base +
".");
42133 // Check for digits outside the range
42134 if (!(BigInteger.radixRegex[base].test(digits))) {
42135 throw new Error(
"Bad digit for radix " + base);
42138 // Strip leading zeros, and convert to array
42139 digits = digits.replace(/^
0+/,
"").split(
"");
42140 if (digits.length ===
0) {
42144 // Get the sign (we know it's not zero)
42145 sign = (sign ===
"-") ? -
1 :
1;
42150 while (digits.length
>= BigInteger_base_log10) {
42151 d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''),
10));
42153 d.push(parseInt(digits.join(''),
10));
42154 return new BigInteger(d, sign, CONSTRUCT);
42157 // Do the conversion
42159 base = BigInteger.small[base];
42160 var small = BigInteger.small;
42161 for (var i =
0; i < digits.length; i++) {
42162 d = d.multiply(base).add(small[parseInt(digits[i],
36)]);
42164 return new BigInteger(d._d, sign, CONSTRUCT);
42167 throw new Error("Invalid BigInteger format: " + s);
42173 Add two
<BigIntegers>.
42177 n - The number to add to *this*. Will be converted to a
<BigInteger>.
42181 The numbers added together.
42185 <subtract>,
<multiply>,
<quotient>,
<next>
42187 BigInteger.prototype.add = function(n) {
42188 if (this._s ===
0) {
42189 return BigInteger(n);
42196 if (this._s !== n._s) {
42198 return this.subtract(n);
42205 var sum = new Array(Math.max(al, bl) +
1);
42206 var size = Math.min(al, bl);
42210 for (var i =
0; i < size; i++) {
42211 digit = a[i] + b[i] + carry;
42212 sum[i] = digit % BigInteger_base;
42213 carry = (digit / BigInteger_base) |
0;
42219 for (i = size; carry && i < al; i++) {
42220 digit = a[i] + carry;
42221 sum[i] = digit % BigInteger_base;
42222 carry = (digit / BigInteger_base) |
0;
42228 for ( ; i < al; i++) {
42232 return new BigInteger(sum, this._s, CONSTRUCT);
42237 Get the additive inverse of a
<BigInteger>.
42241 A
<BigInteger> with the same magnatude, but with the opposite sign.
42247 BigInteger.prototype.negate = function() {
42248 return new BigInteger(this._d, (-this._s) |
0, CONSTRUCT);
42253 Get the absolute value of a
<BigInteger>.
42257 A
<BigInteger> with the same magnatude, but always positive (or zero).
42263 BigInteger.prototype.abs = function() {
42264 return (this._s <
0) ? this.negate() : this;
42269 Subtract two
<BigIntegers>.
42273 n - The number to subtract from *this*. Will be converted to a
<BigInteger>.
42277 The *n* subtracted from *this*.
42281 <add>,
<multiply>,
<quotient>,
<prev>
42283 BigInteger.prototype.subtract = function(n) {
42284 if (this._s ===
0) {
42285 return BigInteger(n).negate();
42292 if (this._s !== n._s) {
42294 return this.add(n);
42298 // negative - negative =
> -|a| - -|b| =
> -|a| + |b| =
> |b| - |a|
42300 m = new BigInteger(n._d,
1, CONSTRUCT);
42301 n = new BigInteger(this._d,
1, CONSTRUCT);
42304 // Both are positive =
> a - b
42305 var sign = m.compareAbs(n);
42309 else if (sign <
0) {
42321 var diff = new Array(al); // al
>= bl since a
> b
42326 for (i =
0; i < bl; i++) {
42327 digit = a[i] - borrow - b[i];
42329 digit += BigInteger_base;
42337 for (i = bl; i < al; i++) {
42338 digit = a[i] - borrow;
42340 digit += BigInteger_base;
42348 for ( ; i < al; i++) {
42352 return new BigInteger(diff, sign, CONSTRUCT);
42356 function addOne(n, sign) {
42358 var sum = a.slice();
42363 var digit = (a[i] ||
0) +
1;
42364 sum[i] = digit % BigInteger_base;
42365 if (digit <= BigInteger_base -
1) {
42371 return new BigInteger(sum, sign, CONSTRUCT);
42374 function subtractOne(n, sign) {
42376 var sum = a.slice();
42381 var digit = (a[i] ||
0) -
1;
42383 sum[i] = digit + BigInteger_base;
42392 return new BigInteger(sum, sign, CONSTRUCT);
42397 Get the next
<BigInteger> (add one).
42407 BigInteger.prototype.next = function() {
42412 return subtractOne(this, -
1);
42415 return addOne(this,
1);
42421 Get the previous
<BigInteger> (subtract one).
42431 BigInteger.prototype.prev = function() {
42436 return addOne(this, -
1);
42439 return subtractOne(this,
1);
42445 Function: compareAbs
42446 Compare the absolute value of two
<BigIntegers>.
42448 Calling
<compareAbs> is faster than calling
<abs> twice, then
<compare>.
42452 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
42456 -
1,
0, or +
1 if *|this|* is less than, equal to, or greater than *|n|*.
42462 BigInteger.prototype.compareAbs = function(n) {
42467 if (!(n instanceof BigInteger)) {
42468 if (!isFinite(n)) {
42469 return(isNaN(n) ? n : -
1);
42474 if (this._s ===
0) {
42475 return (n._s !==
0) ? -
1 :
0;
42481 var l = this._d.length;
42482 var nl = n._d.length;
42492 for (var i = l-
1; i
>=
0; i--) {
42493 if (a[i] !== b[i]) {
42494 return a[i] < b[i] ? -
1 :
1;
42503 Compare two
<BigIntegers>.
42507 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
42511 -
1,
0, or +
1 if *this* is less than, equal to, or greater than *n*.
42515 <compareAbs>,
<isPositive>,
<isNegative>,
<isUnit>
42517 BigInteger.prototype.compare = function(n) {
42524 if (this._s ===
0) {
42528 if (this._s === n._s) { // both positive or both negative
42529 var cmp = this.compareAbs(n);
42530 return cmp * this._s;
42539 Return true iff *this* is either
1 or -
1.
42543 true if *this* compares equal to
<BigInteger.ONE
> or
<BigInteger.M_ONE
>.
42547 <isZero>,
<isNegative>,
<isPositive>,
<compareAbs>,
<compare>,
42548 <BigInteger.ONE
>,
<BigInteger.M_ONE
>
42550 BigInteger.prototype.isUnit = function() {
42551 return this === ONE ||
42553 (this._d.length ===
1 && this._d[
0] ===
1);
42558 Multiply two
<BigIntegers>.
42562 n - The number to multiply *this* by. Will be converted to a
42567 The numbers multiplied together.
42571 <add>,
<subtract>,
<quotient>,
<square>
42573 BigInteger.prototype.multiply = function(n) {
42574 // TODO: Consider adding Karatsuba multiplication for large numbers
42575 if (this._s ===
0) {
42583 if (this.isUnit()) {
42591 return this.negate();
42596 return this.square();
42599 var r = (this._d.length
>= n._d.length);
42600 var a = (r ? this : n)._d; // a will be longer than b
42601 var b = (r ? n : this)._d;
42606 var partial = new Array(pl);
42608 for (i =
0; i < pl; i++) {
42612 for (i =
0; i < bl; i++) {
42615 var jlimit = al + i;
42617 for (var j = i; j < jlimit; j++) {
42618 digit = partial[j] + bi * a[j - i] + carry;
42619 carry = (digit / BigInteger_base) |
0;
42620 partial[j] = (digit % BigInteger_base) |
0;
42623 digit = partial[j] + carry;
42624 carry = (digit / BigInteger_base) |
0;
42625 partial[j] = digit % BigInteger_base;
42628 return new BigInteger(partial, this._s * n._s, CONSTRUCT);
42631 // Multiply a BigInteger by a single-digit native number
42632 // Assumes that this and n are
>=
0
42633 // This is not really intended to be used outside the library itself
42634 BigInteger.prototype.multiplySingleDigit = function(n) {
42635 if (n ===
0 || this._s ===
0) {
42643 if (this._d.length ===
1) {
42644 digit = this._d[
0] * n;
42645 if (digit
>= BigInteger_base) {
42646 return new BigInteger([(digit % BigInteger_base)|
0,
42647 (digit / BigInteger_base)|
0],
1, CONSTRUCT);
42649 return new BigInteger([digit],
1, CONSTRUCT);
42653 return this.add(this);
42655 if (this.isUnit()) {
42656 return new BigInteger([n],
1, CONSTRUCT);
42663 var partial = new Array(pl);
42664 for (var i =
0; i < pl; i++) {
42669 for (var j =
0; j < al; j++) {
42670 digit = n * a[j] + carry;
42671 carry = (digit / BigInteger_base) |
0;
42672 partial[j] = (digit % BigInteger_base) |
0;
42675 partial[j] = carry;
42678 return new BigInteger(partial,
1, CONSTRUCT);
42683 Multiply a
<BigInteger> by itself.
42685 This is slightly faster than regular multiplication, since it removes the
42686 duplicated multiplcations.
42690 > this.multiply(this)
42695 BigInteger.prototype.square = function() {
42696 // Normally, squaring a
10-digit number would take
100 multiplications.
42697 // Of these
10 are unique diagonals, of the remaining
90 (
100-
10),
45 are repeated.
42698 // This procedure saves (N*(N-
1))/
2 multiplications, (e.g.,
45 of
100 multiplies).
42699 // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org
42701 if (this._s ===
0) {
42704 if (this.isUnit()) {
42708 var digits = this._d;
42709 var length = digits.length;
42710 var imult1 = new Array(length + length +
1);
42711 var product, carry, k;
42714 // Calculate diagonal
42715 for (i =
0; i < length; i++) {
42717 product = digits[i] * digits[i];
42718 carry = (product / BigInteger_base) |
0;
42719 imult1[k] = product % BigInteger_base;
42720 imult1[k +
1] = carry;
42723 // Calculate repeating part
42724 for (i =
0; i < length; i++) {
42727 for (var j = i +
1; j < length; j++, k++) {
42728 product = digits[j] * digits[i] *
2 + imult1[k] + carry;
42729 carry = (product / BigInteger_base) |
0;
42730 imult1[k] = product % BigInteger_base;
42733 var digit = carry + imult1[k];
42734 carry = (digit / BigInteger_base) |
0;
42735 imult1[k] = digit % BigInteger_base;
42736 imult1[k +
1] += carry;
42739 return new BigInteger(imult1,
1, CONSTRUCT);
42744 Divide two
<BigIntegers> and truncate towards zero.
42746 <quotient> throws an exception if *n* is zero.
42750 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
42754 The *this* / *n*, truncated to an integer.
42758 <add>,
<subtract>,
<multiply>,
<divRem>,
<remainder>
42760 BigInteger.prototype.quotient = function(n) {
42761 return this.divRem(n)[
0];
42766 Deprecated synonym for
<quotient>.
42768 BigInteger.prototype.divide = BigInteger.prototype.quotient;
42771 Function: remainder
42772 Calculate the remainder of two
<BigIntegers>.
42774 <remainder> throws an exception if *n* is zero.
42778 n - The remainder after *this* is divided *this* by *n*. Will be
42779 converted to a
<BigInteger>.
42787 <divRem>,
<quotient>
42789 BigInteger.prototype.remainder = function(n) {
42790 return this.divRem(n)[
1];
42795 Calculate the integer quotient and remainder of two
<BigIntegers>.
42797 <divRem> throws an exception if *n* is zero.
42801 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
42805 A two-element array containing the quotient and the remainder.
42809 is exactly equivalent to
42811 > [a.quotient(b), a.remainder(b)]
42813 except it is faster, because they are calculated at the same time.
42817 <quotient>,
<remainder>
42819 BigInteger.prototype.divRem = function(n) {
42822 throw new Error("Divide by zero");
42824 if (this._s ===
0) {
42825 return [ZERO, ZERO];
42827 if (n._d.length ===
1) {
42828 return this.divRemSmall(n._s * n._d[
0]);
42831 // Test for easy cases -- |n1| <= |n2|
42832 switch (this.compareAbs(n)) {
42833 case
0: // n1 == n2
42834 return [this._s === n._s ? ONE : M_ONE, ZERO];
42835 case -
1: // |n1| < |n2|
42836 return [ZERO, this];
42839 var sign = this._s * n._s;
42841 var b_digits = this._d;
42842 var b_index = b_digits.length;
42843 var digits = n._d.length;
42847 var part = new BigInteger([],
0, CONSTRUCT);
42850 part._d.unshift(b_digits[--b_index]);
42851 part = new BigInteger(part._d,
1, CONSTRUCT);
42853 if (part.compareAbs(n) <
0) {
42857 if (part._s ===
0) {
42861 var xlen = part._d.length, ylen = a._d.length;
42862 var highx = part._d[xlen-
1]*BigInteger_base + part._d[xlen-
2];
42863 var highy = a._d[ylen-
1]*BigInteger_base + a._d[ylen-
2];
42864 if (part._d.length
> a._d.length) {
42865 // The length of part._d can either match a._d length,
42866 // or exceed it by one.
42867 highx = (highx+
1)*BigInteger_base;
42869 guess = Math.ceil(highx/highy);
42872 var check = a.multiplySingleDigit(guess);
42873 if (check.compareAbs(part) <=
0) {
42883 var diff = part.subtract(check);
42884 part._d = diff._d.slice();
42887 return [new BigInteger(quot.reverse(), sign, CONSTRUCT),
42888 new BigInteger(part._d, this._s, CONSTRUCT)];
42891 // Throws an exception if n is outside of (-BigInteger.base, -
1] or
42892 // [
1, BigInteger.base). It's not necessary to call this, since the
42893 // other division functions will call it if they are able to.
42894 BigInteger.prototype.divRemSmall = function(n) {
42898 throw new Error("Divide by zero");
42901 var n_s = n <
0 ? -
1 :
1;
42902 var sign = this._s * n_s;
42905 if (n <
1 || n
>= BigInteger_base) {
42906 throw new Error("Argument out of range");
42909 if (this._s ===
0) {
42910 return [ZERO, ZERO];
42913 if (n ===
1 || n === -
1) {
42914 return [(sign ===
1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];
42917 //
2 <= n < BigInteger_base
42919 // divide a single digit by a single digit
42920 if (this._d.length ===
1) {
42921 var q = new BigInteger([(this._d[
0] / n) |
0],
1, CONSTRUCT);
42922 r = new BigInteger([(this._d[
0] % n) |
0],
1, CONSTRUCT);
42932 var digits = this._d.slice();
42933 var quot = new Array(digits.length);
42939 while (digits.length) {
42940 part = part * BigInteger_base + digits[digits.length -
1];
42944 diff = BigInteger_base * diff + part;
42951 guess = (part / n) |
0;
42954 var check = n * guess;
42955 diff = part - check;
42966 r = new BigInteger([diff],
1, CONSTRUCT);
42970 return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];
42975 Return true iff *this* is divisible by two.
42977 Note that
<BigInteger.ZERO
> is even.
42981 true if *this* is even, false otherwise.
42987 BigInteger.prototype.isEven = function() {
42988 var digits = this._d;
42989 return this._s ===
0 || digits.length ===
0 || (digits[
0] %
2) ===
0;
42994 Return true iff *this* is not divisible by two.
42998 true if *this* is odd, false otherwise.
43004 BigInteger.prototype.isOdd = function() {
43005 return !this.isEven();
43010 Get the sign of a
<BigInteger>.
43020 <isZero>,
<isPositive>,
<isNegative>,
<compare>,
<BigInteger.ZERO
>
43022 BigInteger.prototype.sign = function() {
43027 Function: isPositive
43028 Return true iff *this*
> 0.
43032 true if *this*.compare(
<BigInteger.ZERO
>) ==
1.
43036 <sign>,
<isZero>,
<isNegative>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
43038 BigInteger.prototype.isPositive = function() {
43039 return this._s
> 0;
43043 Function: isNegative
43044 Return true iff *this* <
0.
43048 true if *this*.compare(
<BigInteger.ZERO
>) == -
1.
43052 <sign>,
<isPositive>,
<isZero>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
43054 BigInteger.prototype.isNegative = function() {
43055 return this._s <
0;
43060 Return true iff *this* ==
0.
43064 true if *this*.compare(
<BigInteger.ZERO
>) ==
0.
43068 <sign>,
<isPositive>,
<isNegative>,
<isUnit>,
<BigInteger.ZERO
>
43070 BigInteger.prototype.isZero = function() {
43071 return this._s ===
0;
43076 Multiply a
<BigInteger> by a power of
10.
43078 This is equivalent to, but faster than
43081 > return this.multiply(BigInteger("
1e" + n));
43084 > return this.quotient(BigInteger("
1e" + -n));
43089 n - The power of
10 to multiply *this* by. *n* is converted to a
43090 javascipt number and must be no greater than
<BigInteger.MAX_EXP
>
43091 (
0x7FFFFFFF), or an exception will be thrown.
43095 *this* * (
10 ** *n*), truncated to an integer if necessary.
43101 BigInteger.prototype.exp10 = function(n) {
43106 if (Math.abs(n)
> Number(MAX_EXP)) {
43107 throw new Error("exponent too large in BigInteger.exp10");
43109 // Optimization for this ==
0. This also keeps us from having to trim zeros in the positive n case
43110 if (this._s ===
0) {
43114 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
43116 for (; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
43122 k = k.multiplySingleDigit(Math.pow(
10, n));
43123 return (this._s <
0 ? k.negate() : k);
43124 } else if (-n
>= this._d.length*BigInteger_base_log10) {
43127 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
43129 for (n = -n; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
43132 return (n ==
0) ? k : k.divRemSmall(Math.pow(
10, n))[
0];
43138 Raise a
<BigInteger> to a power.
43140 In this implementation,
0**
0 is
1.
43144 n - The exponent to raise *this* by. *n* must be no greater than
43145 <BigInteger.MAX_EXP
> (
0x7FFFFFFF), or an exception will be thrown.
43149 *this* raised to the *nth* power.
43155 BigInteger.prototype.pow = function(n) {
43156 if (this.isUnit()) {
43161 return BigInteger(n).isOdd() ? this : this.negate();
43169 else if (n._s <
0) {
43170 if (this._s ===
0) {
43171 throw new Error(
"Divide by zero");
43177 if (this._s ===
0) {
43184 if (n.compareAbs(MAX_EXP)
> 0) {
43185 throw new Error(
"exponent too large in BigInteger.pow");
43189 var two = BigInteger.small[
2];
43191 while (n.isPositive()) {
43193 aux = aux.multiply(x);
43199 n = n.quotient(two);
43207 Raise a
<BigInteger> to a power (mod m).
43209 Because it is reduced by a modulus,
<modPow> is not limited by
43210 <BigInteger.MAX_EXP
> like
<pow>.
43214 exponent - The exponent to raise *this* by. Must be positive.
43215 modulus - The modulus.
43219 *this* ^ *exponent* (mod *modulus*).
43225 BigInteger.prototype.modPow = function(exponent, modulus) {
43229 while (exponent.isPositive()) {
43230 if (exponent.isOdd()) {
43231 result = result.multiply(base).remainder(modulus);
43234 exponent = exponent.quotient(BigInteger.small[
2]);
43235 if (exponent.isPositive()) {
43236 base = base.square().remainder(modulus);
43245 Get the natural logarithm of a
<BigInteger> as a native JavaScript number.
43247 This is equivalent to
43249 > Math.log(this.toJSValue())
43251 but handles values outside of the native number range.
43261 BigInteger.prototype.log = function() {
43263 case
0: return -Infinity;
43264 case -
1: return NaN;
43265 default: // Fall through.
43268 var l = this._d.length;
43270 if (l*BigInteger_base_log10 <
30) {
43271 return Math.log(this.valueOf());
43274 var N = Math.ceil(
30/BigInteger_base_log10);
43275 var firstNdigits = this._d.slice(l - N);
43276 return Math.log((new BigInteger(firstNdigits,
1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);
43281 Convert a
<BigInteger> to a native JavaScript integer.
43283 This is called automatically by JavaScipt to convert a
<BigInteger> to a
43288 > parseInt(this.toString(),
10)
43292 <toString>,
<toJSValue>
43294 BigInteger.prototype.valueOf = function() {
43295 return parseInt(this.toString(),
10);
43299 Function: toJSValue
43300 Convert a
<BigInteger> to a native JavaScript integer.
43302 This is the same as valueOf, but more explicitly named.
43306 > parseInt(this.toString(),
10)
43310 <toString>,
<valueOf>
43312 BigInteger.prototype.toJSValue = function() {
43313 return parseInt(this.toString(),
10);
43316 var MAX_EXP = BigInteger(
0x7FFFFFFF);
43317 // Constant: MAX_EXP
43318 // The largest exponent allowed in
<pow> and
<exp10> (
0x7FFFFFFF or
2147483647).
43319 BigInteger.MAX_EXP = MAX_EXP;
43322 function makeUnary(fn) {
43323 return function(a) {
43324 return fn.call(BigInteger(a));
43328 function makeBinary(fn) {
43329 return function(a, b) {
43330 return fn.call(BigInteger(a), BigInteger(b));
43334 function makeTrinary(fn) {
43335 return function(a, b, c) {
43336 return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));
43342 var unary = "toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(",");
43343 var binary = "compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(",");
43344 var trinary = ["modPow"];
43346 for (i =
0; i < unary.length; i++) {
43348 BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);
43351 for (i =
0; i < binary.length; i++) {
43353 BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);
43356 for (i =
0; i < trinary.length; i++) {
43358 BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);
43361 BigInteger.exp10 = function(x, n) {
43362 return BigInteger(x).exp10(n);
43367 exports.BigInteger = BigInteger;
43368 })(typeof exports !== 'undefined' ? exports : this);
43370 <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){
43371 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;
43373 },{}],
2:[function(require,module,exports){
43374 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;
43376 },{"./scoring":
6}],
3:[function(require,module,exports){
43377 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(","),
43378 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(","),
43379 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(","),
43380 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(","),
43381 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;
43383 },{}],
4:[function(require,module,exports){
43384 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;
43386 },{
"./feedback":
2,
"./matching":
5,
"./scoring":
6,
"./time_estimates":
7}],
5:[function(require,module,exports){
43387 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;
43389 },{
"./adjacency_graphs":
1,
"./frequency_lists":
3,
"./scoring":
6}],
6:[function(require,module,exports){
43390 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;
43392 },{"./adjacency_graphs":
1}],
7:[function(require,module,exports){
43393 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;
43397 //# sourceMappingURL=zxcvbn.js.map
43400 * Detects entropy from a string.
43407 * hexadecimal [
0-
9A-F]
43408 * card [A2-
9TJQK][CDHS]
43410 * Automatically uses lowest entropy to avoid issues such as interpretting
0101
43411 * as hexadecimal which would be
16 bits when really it's only
4 bits of binary
43415 window.Entropy = new (function() {
43417 var TWO = new BigInteger(
2);
43419 // matchers returns an array of the matched events for each type of entropy.
43421 // matchers.binary("
010") returns ["
0", "
1", "
0"]
43422 // matchers.binary("a10") returns ["
1", "
0"]
43423 // matchers.hex("a10") returns ["a", "
1", "
0"]
43425 binary: function(str) {
43426 return str.match(/[
0-
1]/gi) || [];
43428 base6: function(str) {
43429 return str.match(/[
0-
5]/gi) || [];
43431 dice: function(str) {
43432 return str.match(/[
1-
6]/gi) || []; // ie dice numbers
43434 base10: function(str) {
43435 return str.match(/[
0-
9]/gi) || [];
43437 hex: function(str) {
43438 return str.match(/[
0-
9A-F]/gi) || [];
43440 card: function(str) {
43441 // Format is NumberSuit, eg
43442 // AH ace of hearts
43443 //
8C eight of clubs
43444 // TD ten of diamonds
43445 // JS jack of spades
43446 // QH queen of hearts
43447 // KC king of clubs
43448 return str.match(/([A2-
9TJQK][CDHS])/gi) || [];
43452 // Convert array of cards from ["ac", "
4d", "ks"]
43453 // to numbers between
0 and
51 [
0,
16,
51]
43454 function convertCardsToInts(cards) {
43456 var values = "a23456789tjqk";
43457 var suits = "cdhs";
43458 for (var i=
0; i
<cards.length; i++) {
43459 var card = cards[i].toLowerCase();
43460 var value = card[
0];
43461 var suit = card[
1];
43462 var asInt =
13 * suits.indexOf(suit) + values.indexOf(value);
43468 this.fromString = function(rawEntropyStr) {
43469 // Find type of entropy being used (binary, hex, dice etc)
43470 var base = getBase(rawEntropyStr);
43471 // Convert dice to base6 entropy (ie
1-
6 to
0-
5)
43472 // This is done by changing all
6s to
0s
43473 if (base.str ==
"dice") {
43476 for (var i=
0; i
<base.parts.length; i++) {
43477 var c = base.parts[i];
43478 if (
"12345".indexOf(c)
> -
1) {
43479 newParts[i] = base.parts[i];
43480 newInts[i] = base.ints[i];
43487 base.str = "base
6 (dice)";
43488 base.ints = newInts;
43489 base.parts = newParts;
43490 base.matcher = matchers.base6;
43492 // Detect empty entropy
43493 if (base.parts.length ==
0) {
43501 // Convert base.ints to BigInteger.
43502 // Due to using unusual bases, eg cards of base52, this is not as simple as
43503 // using BigInteger.parse()
43504 var entropyInt = BigInteger.ZERO;
43505 for (var i=base.ints.length-
1; i
>=
0; i--) {
43506 var thisInt = BigInteger.parse(base.ints[i]);
43507 var power = (base.ints.length -
1) - i;
43508 var additionalEntropy = BigInteger.parse(base.asInt).pow(power).multiply(thisInt);
43509 entropyInt = entropyInt.add(additionalEntropy);
43511 // Convert entropy to binary
43512 var entropyBin = entropyInt.toString(
2);
43513 // If the first integer is small, it must be padded with zeros.
43514 // Otherwise the chance of the first bit being
1 is
100%, which is
43515 // obviously incorrect.
43516 // This is not perfect for non-
2^n bases.
43517 var expectedBits = Math.floor(base.parts.length * Math.log2(base.asInt));
43518 while (entropyBin.length < expectedBits) {
43519 entropyBin = "
0" + entropyBin;
43521 // Calculate the number of bits per event
43522 var bitsPerEvent = Math.log2(base.asInt);
43523 // Cards binary must be handled differently, since they're not replaced
43524 if (base.asInt ==
52) {
43525 var cardEntropy = processCardEntropy(base.parts);
43526 entropyBin = cardEntropy.binaryStr;
43527 bitsPerEvent = cardEntropy.bitsPerEvent;
43529 // Supply a 'filtered' entropy string for display purposes
43530 var entropyClean = base.parts.join("");
43531 var entropyHtml = base.parts.join("");
43532 if (base.asInt ==
52) {
43533 entropyClean = base.parts.join(" ").toUpperCase();
43534 entropyClean = entropyClean.replace(/C/g, "\u2663");
43535 entropyClean = entropyClean.replace(/D/g, "\u2666");
43536 entropyClean = entropyClean.replace(/H/g, "\u2665");
43537 entropyClean = entropyClean.replace(/S/g, "\u2660");
43538 entropyHtml = base.parts.join(" ").toUpperCase();
43539 entropyHtml = entropyHtml.replace(/C/g, "
<span class='card-suit club'
>\u2663
</span>");
43540 entropyHtml = entropyHtml.replace(/D/g, "<span class='card-suit diamond'
>\u2666
</span>");
43541 entropyHtml = entropyHtml.replace(/H/g, "<span class='card-suit heart'
>\u2665
</span>");
43542 entropyHtml = entropyHtml.replace(/S/g, "<span class='card-suit spade'
>\u2660
</span>");
43544 // Return the result
43546 binaryStr: entropyBin,
43547 cleanStr: entropyClean,
43548 cleanHtml: entropyHtml,
43549 bitsPerEvent: bitsPerEvent,
43555 function getSortedDeck() {
43557 var suits = "CDHS
";
43558 var values = "A23456789TJQK
";
43559 for (var i=0; i<suits.length; i++) {
43560 for (var j=0; j<values.length; j++) {
43561 s.push(values[j]+suits[i]);
43567 function getBase(str) {
43568 // Need to get the lowest base for the supplied entropy.
43569 // This prevents interpreting, say, dice rolls as hexadecimal.
43570 var binaryMatches = matchers.binary(str);
43571 var hexMatches = matchers.hex(str);
43572 // Find the lowest base that can be used, whilst ignoring any irrelevant chars
43573 if (binaryMatches.length == hexMatches.length && hexMatches.length > 0) {
43574 var ints = binaryMatches.map(function(i) { return parseInt(i, 2) });
43577 parts: binaryMatches,
43578 matcher: matchers.binary,
43583 var cardMatches = matchers.card(str);
43584 if (cardMatches.length >= hexMatches.length / 2) {
43585 var ints = convertCardsToInts(cardMatches);
43588 parts: cardMatches,
43589 matcher: matchers.card,
43594 var diceMatches = matchers.dice(str);
43595 if (diceMatches.length == hexMatches.length && hexMatches.length
> 0) {
43596 var ints = diceMatches.map(function(i) { return parseInt(i) });
43599 parts: diceMatches,
43600 matcher: matchers.dice,
43605 var base6Matches = matchers.base6(str);
43606 if (base6Matches.length == hexMatches.length && hexMatches.length
> 0) {
43607 var ints = base6Matches.map(function(i) { return parseInt(i) });
43610 parts: base6Matches,
43611 matcher: matchers.base6,
43616 var base10Matches = matchers.base10(str);
43617 if (base10Matches.length == hexMatches.length && hexMatches.length
> 0) {
43618 var ints = base10Matches.map(function(i) { return parseInt(i) });
43621 parts: base10Matches,
43622 matcher: matchers.base10,
43627 var ints = hexMatches.map(function(i) { return parseInt(i,
16) });
43631 matcher: matchers.hex,
43633 str:
"hexadecimal",
43637 // Assume cards are NOT replaced.
43638 // Additional entropy decreases as more cards are used. This means
43639 // total possible entropy is measured using n!, not base^n.
43640 // eg the second last card can be only one of two, not one of fifty two
43641 // so the added entropy for that card is only one bit at most
43642 function processCardEntropy(cards) {
43643 // Track how many instances of each card have been used, and thus
43644 // how many decks are in use.
43645 var cardCounts = {};
43646 var numberOfDecks =
0;
43647 // Work out number of decks by max(duplicates)
43648 for (var i=
0; i
<cards.length; i++) {
43649 // Get the card that was drawn
43650 var cardLower = cards[i];
43651 var card = cardLower.toUpperCase();
43652 // Initialize the count for this card if needed
43653 if (!(card in cardCounts)) {
43654 cardCounts[card] =
0;
43656 cardCounts[card] +=
1;
43657 // See if this is max(duplicates)
43658 if (cardCounts[card]
> numberOfDecks) {
43659 numberOfDecks = cardCounts[card];
43662 // Work out the total number of bits for this many decks
43663 // See http://crypto.stackexchange.com/q/
41886
43664 var gainedBits =
0;
43665 // Equivalent of Math.log2(factorial(
52*numberOfDecks))
43666 // which becomes infinity for numberOfDecks
> 4
43667 for (var i=
1; i<=
52*numberOfDecks; i++) {
43668 gainedBits = gainedBits + Math.log2(i);
43670 var lostBits =
52 * Math.log2(factorial(numberOfDecks));
43671 var maxBits = gainedBits - lostBits;
43672 // Convert the drawn cards to a binary representation.
43673 // The exact technique for doing this is unclear.
43675 // http://crypto.stackexchange.com/a/
41896
43676 //
"I even doubt that this is well defined (only the average entropy
43677 // is, I believe)."
43679 // https://github.com/iancoleman/bip39/issues/
33#issuecomment-
263021856
43680 //
"The binary representation can be the first log(permutations,2) bits
43681 // of the sha-2 hash of the normalized deck string."
43683 // In this specific implementation, the first N bits of the hash of the
43684 // normalized cards string is being used. Uppercase, no spaces; eg
43685 // sha256(
"AH8DQSTC2H")
43686 var totalCards = numberOfDecks *
52;
43687 var percentUsed = cards.length / totalCards;
43688 // Calculate the average number of bits of entropy for the number of
43690 var numberOfBits = Math.floor(maxBits * percentUsed);
43691 // Create a normalized string of the selected cards
43692 var normalizedCards = cards.join(
"").toUpperCase();
43693 // Convert to binary using the SHA256 hash of the normalized cards.
43694 // If the number of bits is more than
256, multiple hashes
43695 // are used until the required number of bits is reached.
43696 var entropyBin =
"";
43697 var iterations =
0;
43698 while (entropyBin.length < numberOfBits) {
43699 var hashedCards = sjcl.hash.sha256.hash(normalizedCards +
":" + iterations);
43700 var hashHex = sjcl.codec.hex.fromBits(hashedCards);
43701 for (var i=
0; i
<hashHex.length; i++) {
43702 var decimal = parseInt(hashHex[i],
16);
43703 var binary = decimal.toString(
2);
43704 while (binary.length <
4) {
43705 binary =
"0" + binary;
43707 entropyBin = entropyBin + binary;
43709 iterations = iterations +
1;
43711 // Truncate to the appropriate number of bits.
43712 entropyBin = entropyBin.substring(
0, numberOfBits);
43713 // Get the number of bits per event
43714 bitsPerEvent = maxBits / totalCards;
43716 binaryStr: entropyBin,
43717 bitsPerEvent: bitsPerEvent,
43721 // Polyfill for Math.log2
43722 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2#Polyfill
43723 Math.log2 = Math.log2 || function(x) {
43724 // The polyfill isn't good enough because of the poor accuracy of
43726 // log2(
8) gave
2.9999999999999996 which when floored causes issues.
43727 // So instead use the BigInteger library to get it right.
43728 return BigInteger.log(x) / BigInteger.log(
2);
43731 // Depends on BigInteger
43732 function factorial(n) {
43736 f = BigInteger.ONE;
43737 for (var i=
1; i<=n; i++) {
43738 f = f.multiply(new BigInteger(i));
43745 <script>(function() {
43747 // mnemonics is populated as required by getLanguage
43748 var mnemonics = { "english": new Mnemonic("english") };
43749 var mnemonic = mnemonics["english"];
43751 var bip32RootKey = null;
43752 var bip32ExtendedKey = null;
43753 var network = bitcoin.networks.bitcoin;
43754 var addressRowTemplate = $("#address-row-template");
43756 var showIndex = true;
43757 var showAddress = true;
43758 var showPubKey = true;
43759 var showPrivKey = true;
43760 var showQr = false;
43762 var entropyChangeTimeoutEvent = null;
43763 var phraseChangeTimeoutEvent = null;
43764 var rootKeyChangedTimeoutEvent = null;
43766 var generationProcesses = [];
43769 DOM.network = $(".network");
43770 DOM.bip32Client = $("#bip32-client");
43771 DOM.phraseNetwork = $("#network-phrase");
43772 DOM.useEntropy = $(".use-entropy");
43773 DOM.entropyContainer = $(".entropy-container");
43774 DOM.entropy = $(".entropy");
43775 DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
43776 DOM.entropyType = DOM.entropyContainer.find(".type");
43777 DOM.entropyCrackTime = DOM.entropyContainer.find(".crack-time");
43778 DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
43779 DOM.entropyBits = DOM.entropyContainer.find(".bits");
43780 DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
43781 DOM.entropyWordCount = DOM.entropyContainer.find(".word-count");
43782 DOM.entropyBinary = DOM.entropyContainer.find(".binary");
43783 DOM.entropyMnemonicLength = DOM.entropyContainer.find(".mnemonic-length");
43784 DOM.phrase = $(".phrase");
43785 DOM.passphrase = $(".passphrase");
43786 DOM.generateContainer = $(".generate-container");
43787 DOM.generate = $(".generate");
43788 DOM.seed = $(".seed");
43789 DOM.rootKey = $(".root-key");
43790 DOM.extendedPrivKey = $(".extended-priv-key");
43791 DOM.extendedPubKey = $(".extended-pub-key");
43792 DOM.bip32tab = $("#bip32-tab");
43793 DOM.bip44tab = $("#bip44-tab");
43794 DOM.bip32panel = $("#bip32");
43795 DOM.bip44panel = $("#bip44");
43796 DOM.bip32path = $("#bip32-path");
43797 DOM.bip44path = $("#bip44-path");
43798 DOM.bip44purpose = $("#bip44 .purpose");
43799 DOM.bip44coin = $("#bip44 .coin");
43800 DOM.bip44account = $("#bip44 .account");
43801 DOM.bip44accountXprv = $("#bip44 .account-xprv");
43802 DOM.bip44accountXpub = $("#bip44 .account-xpub");
43803 DOM.bip44change = $("#bip44 .change");
43804 DOM.generatedStrength = $(".generate-container .strength");
43805 DOM.hardenedAddresses = $(".hardened-addresses");
43806 DOM.addresses = $(".addresses");
43807 DOM.rowsToAdd = $(".rows-to-add");
43808 DOM.more = $(".more");
43809 DOM.feedback = $(".feedback");
43810 DOM.tab = $(".derivation-type a");
43811 DOM.indexToggle = $(".index-toggle");
43812 DOM.addressToggle = $(".address-toggle");
43813 DOM.publicKeyToggle = $(".public-key-toggle");
43814 DOM.privateKeyToggle = $(".private-key-toggle");
43815 DOM.languages = $(".languages a");
43816 DOM.qrContainer = $(".qr-container");
43817 DOM.qrHider = DOM.qrContainer.find(".qr-hider");
43818 DOM.qrImage = DOM.qrContainer.find(".qr-image");
43819 DOM.qrHint = DOM.qrContainer.find(".qr-hint");
43820 DOM.showQrEls = $("[data-show-qr]");
43824 DOM.network.on("change", networkChanged);
43825 DOM.bip32Client.on("change", bip32ClientChanged);
43826 DOM.useEntropy.on("change", setEntropyVisibility);
43827 DOM.entropy.on("input", delayedEntropyChanged);
43828 DOM.entropyMnemonicLength.on("change", entropyChanged);
43829 DOM.phrase.on("input", delayedPhraseChanged);
43830 DOM.passphrase.on("input", delayedPhraseChanged);
43831 DOM.generate.on("click", generateClicked);
43832 DOM.more.on("click", showMore);
43833 DOM.rootKey.on("input", delayedRootKeyChanged);
43834 DOM.bip32path.on("input", calcForDerivationPath);
43835 DOM.bip44purpose.on("input", calcForDerivationPath);
43836 DOM.bip44coin.on("input", calcForDerivationPath);
43837 DOM.bip44account.on("input", calcForDerivationPath);
43838 DOM.bip44change.on("input", calcForDerivationPath);
43839 DOM.tab.on("shown.bs.tab", calcForDerivationPath);
43840 DOM.hardenedAddresses.on("change", calcForDerivationPath);
43841 DOM.indexToggle.on("click", toggleIndexes);
43842 DOM.addressToggle.on("click", toggleAddresses);
43843 DOM.publicKeyToggle.on("click", togglePublicKeys);
43844 DOM.privateKeyToggle.on("click", togglePrivateKeys);
43845 DOM.languages.on("click", languageChanged);
43846 setQrEvents(DOM.showQrEls);
43849 hideValidationError();
43850 populateNetworkSelect();
43851 populateClientSelect();
43856 function networkChanged(e) {
43857 var networkIndex = e.target.value;
43858 networks[networkIndex].onSelect();
43859 if (seed != null) {
43867 function bip32ClientChanged(e) {
43868 var clientIndex = DOM.bip32Client.val();
43869 if (clientIndex == "custom") {
43870 DOM.bip32path.prop("readonly", false);
43873 DOM.bip32path.prop("readonly", true);
43874 clients[clientIndex].onSelect();
43875 if (seed != null) {
43884 function setEntropyVisibility() {
43885 if (isUsingOwnEntropy()) {
43886 DOM.entropyContainer.removeClass("hidden");
43887 DOM.generateContainer.addClass("hidden");
43888 DOM.phrase.prop("readonly", true);
43889 DOM.entropy.focus();
43893 DOM.entropyContainer.addClass("hidden");
43894 DOM.generateContainer.removeClass("hidden");
43895 DOM.phrase.prop("readonly", false);
43900 function delayedPhraseChanged() {
43901 hideValidationError();
43903 if (phraseChangeTimeoutEvent != null) {
43904 clearTimeout(phraseChangeTimeoutEvent);
43906 phraseChangeTimeoutEvent = setTimeout(phraseChanged,
400);
43909 function phraseChanged() {
43911 hideValidationError();
43912 setMnemonicLanguage();
43913 // Get the mnemonic phrase
43914 var phrase = DOM.phrase.val();
43915 var errorText = findPhraseErrors(phrase);
43917 showValidationError(errorText);
43920 // Calculate and display
43921 var passphrase = DOM.passphrase.val();
43922 calcBip32RootKeyFromSeed(phrase, passphrase);
43923 calcForDerivationPath();
43927 function delayedEntropyChanged() {
43928 hideValidationError();
43930 if (entropyChangeTimeoutEvent != null) {
43931 clearTimeout(entropyChangeTimeoutEvent);
43933 entropyChangeTimeoutEvent = setTimeout(entropyChanged,
400);
43936 function entropyChanged() {
43937 // If blank entropy, clear mnemonic, addresses, errors
43938 if (DOM.entropy.val().trim().length ==
0) {
43940 clearEntropyFeedback();
43941 DOM.phrase.val("");
43942 showValidationError("Blank entropy");
43945 // Get the current phrase to detect changes
43946 var phrase = DOM.phrase.val();
43947 // Set the phrase from the entropy
43948 setMnemonicFromEntropy();
43949 // Recalc addresses if the phrase has changed
43950 var newPhrase = DOM.phrase.val();
43951 if (newPhrase != phrase) {
43952 if (newPhrase.length ==
0) {
43964 function delayedRootKeyChanged() {
43965 // Warn if there is an existing mnemonic or passphrase.
43966 if (DOM.phrase.val().length
> 0 || DOM.passphrase.val().length
> 0) {
43967 if (!confirm(
"This will clear existing mnemonic and passphrase")) {
43968 DOM.rootKey.val(bip32RootKey);
43972 hideValidationError();
43974 // Clear existing mnemonic and passphrase
43975 DOM.phrase.val(
"");
43976 DOM.passphrase.val(
"");
43978 if (rootKeyChangedTimeoutEvent != null) {
43979 clearTimeout(rootKeyChangedTimeoutEvent);
43981 rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged,
400);
43984 function rootKeyChanged() {
43986 hideValidationError();
43987 // Validate the root key TODO
43988 var rootKeyBase58 = DOM.rootKey.val();
43989 var errorText = validateRootKey(rootKeyBase58);
43991 showValidationError(errorText);
43994 // Calculate and display
43995 calcBip32RootKeyFromBase58(rootKeyBase58);
43996 calcForDerivationPath();
43999 function calcForDerivationPath() {
44001 clearAddressesList();
44002 hideValidationError();
44003 // Get the derivation path
44004 var derivationPath = getDerivationPath();
44005 var errorText = findDerivationPathErrors(derivationPath);
44007 showValidationError(errorText);
44010 bip32ExtendedKey = calcBip32ExtendedKey(derivationPath);
44011 if (bip44TabSelected()) {
44012 displayBip44Info();
44014 displayBip32Info();
44018 function generateClicked() {
44019 if (isUsingOwnEntropy()) {
44024 setTimeout(function() {
44025 setMnemonicLanguage();
44026 var phrase = generateRandomPhrase();
44034 function languageChanged() {
44035 setTimeout(function() {
44036 setMnemonicLanguage();
44037 if (DOM.phrase.val().length
> 0) {
44038 var newPhrase = convertPhraseToNewLanguage();
44039 DOM.phrase.val(newPhrase);
44043 DOM.generate.trigger(
"click");
44048 function toggleIndexes() {
44049 showIndex = !showIndex;
44050 $(
"td.index span").toggleClass(
"invisible");
44053 function toggleAddresses() {
44054 showAddress = !showAddress;
44055 $(
"td.address span").toggleClass(
"invisible");
44058 function togglePublicKeys() {
44059 showPubKey = !showPubKey;
44060 $(
"td.pubkey span").toggleClass(
"invisible");
44063 function togglePrivateKeys() {
44064 showPrivKey = !showPrivKey;
44065 $(
"td.privkey span").toggleClass(
"invisible");
44070 function generateRandomPhrase() {
44071 if (!hasStrongRandom()) {
44072 var errorText =
"This browser does not support strong randomness";
44073 showValidationError(errorText);
44076 var numWords = parseInt(DOM.generatedStrength.val());
44077 var strength = numWords /
3 *
32;
44078 var words = mnemonic.generate(strength);
44079 DOM.phrase.val(words);
44083 function calcBip32RootKeyFromSeed(phrase, passphrase) {
44084 seed = mnemonic.toSeed(phrase, passphrase);
44085 bip32RootKey = bitcoin.HDNode.fromSeedHex(seed, network);
44088 function calcBip32RootKeyFromBase58(rootKeyBase58) {
44089 bip32RootKey = bitcoin.HDNode.fromBase58(rootKeyBase58, network);
44092 function calcBip32ExtendedKey(path) {
44093 // Check there's a root key to derive from
44094 if (!bip32RootKey) {
44095 return bip32RootKey;
44097 var extendedKey = bip32RootKey;
44098 // Derive the key from the path
44099 var pathBits = path.split(
"/");
44100 for (var i=
0; i
<pathBits.length; i++) {
44101 var bit = pathBits[i];
44102 var index = parseInt(bit);
44103 if (isNaN(index)) {
44106 var hardened = bit[bit.length-
1] ==
"'";
44107 var isPriv =
"privKey" in extendedKey;
44108 var invalidDerivationPath = hardened && !isPriv;
44109 if (invalidDerivationPath) {
44110 extendedKey = null;
44112 else if (hardened) {
44113 extendedKey = extendedKey.deriveHardened(index);
44116 extendedKey = extendedKey.derive(index);
44122 function showValidationError(errorText) {
44128 function hideValidationError() {
44134 function findPhraseErrors(phrase) {
44135 // Preprocess the words
44136 phrase = mnemonic.normalizeString(phrase);
44137 var words = phraseToWordArray(phrase);
44138 // Detect blank phrase
44139 if (words.length ==
0) {
44140 return
"Blank mnemonic";
44143 for (var i=
0; i
<words.length; i++) {
44144 var word = words[i];
44145 var language = getLanguage();
44146 if (WORDLISTS[language].indexOf(word) == -
1) {
44147 console.log(
"Finding closest match to " + word);
44148 var nearestWord = findNearestWord(word);
44149 return word +
" not in wordlist, did you mean " + nearestWord +
"?";
44152 // Check the words are valid
44153 var properPhrase = wordArrayToPhrase(words);
44154 var isValid = mnemonic.check(properPhrase);
44156 return
"Invalid mnemonic";
44161 function validateRootKey(rootKeyBase58) {
44163 bitcoin.HDNode.fromBase58(rootKeyBase58);
44166 return
"Invalid root key";
44171 function getDerivationPath() {
44172 if (bip44TabSelected()) {
44173 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
44174 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
44175 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
44176 var change = parseIntNoNaN(DOM.bip44change.val(),
0);
44178 path += purpose +
"'/";
44179 path += coin +
"'/";
44180 path += account +
"'/";
44182 DOM.bip44path.val(path);
44183 var derivationPath = DOM.bip44path.val();
44184 console.log(
"Using derivation path from BIP44 tab: " + derivationPath);
44185 return derivationPath;
44187 else if (bip32TabSelected()) {
44188 var derivationPath = DOM.bip32path.val();
44189 console.log(
"Using derivation path from BIP32 tab: " + derivationPath);
44190 return derivationPath;
44193 console.log(
"Unknown derivation path");
44197 function findDerivationPathErrors(path) {
44198 // TODO is not perfect but is better than nothing
44200 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#test-vectors
44202 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#extended-keys
44203 var maxDepth =
255; // TODO verify this!!
44204 var maxIndexValue = Math.pow(
2,
31); // TODO verify this!!
44205 if (path[
0] !=
"m") {
44206 return
"First character must be 'm'";
44208 if (path.length
> 1) {
44209 if (path[
1] !=
"/") {
44210 return
"Separator must be '/'";
44212 var indexes = path.split(
"/");
44213 if (indexes.length
> maxDepth) {
44214 return "Derivation depth is " + indexes.length + ", must be less than " + maxDepth;
44216 for (var depth =
1; depth
<indexes.length; depth++) {
44217 var index = indexes[depth];
44218 var invalidChars = index.replace(/^[
0-
9]+'?$/g,
"")
44219 if (invalidChars.length
> 0) {
44220 return
"Invalid characters " + invalidChars +
" found at depth " + depth;
44222 var indexValue = parseInt(index.replace(
"'",
""));
44223 if (isNaN(depth)) {
44224 return
"Invalid number at depth " + depth;
44226 if (indexValue
> maxIndexValue) {
44227 return "Value of " + indexValue + " at depth " + depth + " must be less than " + maxIndexValue;
44231 // Check root key exists or else derivation path is useless!
44232 if (!bip32RootKey) {
44233 return "No root key";
44235 // Check no hardened derivation path when using xpub keys
44236 var hardened = path.indexOf("'")
> -
1;
44237 var isXpubkey = !("privKey" in bip32RootKey);
44238 if (hardened && isXpubkey) {
44239 return "Hardened derivation path is invalid with xpub key";
44244 function displayBip44Info() {
44245 // Get the derivation path for the account
44246 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
44247 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
44248 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
44250 path += purpose + "'/";
44251 path += coin + "'/";
44252 path += account + "'/";
44253 // Calculate the account extended keys
44254 var accountExtendedKey = calcBip32ExtendedKey(path);
44255 var accountXprv = accountExtendedKey.toBase58();
44256 var accountXpub = accountExtendedKey.toBase58(false);
44257 // Display the extended keys
44258 DOM.bip44accountXprv.val(accountXprv);
44259 DOM.bip44accountXpub.val(accountXpub);
44262 function displayBip32Info() {
44264 DOM.seed.val(seed);
44265 var rootKey = bip32RootKey.toBase58();
44266 DOM.rootKey.val(rootKey);
44267 var xprvkeyB58 = "NA";
44268 if (bip32ExtendedKey.privKey) {
44269 xprvkeyB58 = bip32ExtendedKey.toBase58();
44271 var extendedPrivKey = xprvkeyB58;
44272 DOM.extendedPrivKey.val(extendedPrivKey);
44273 var extendedPubKey = bip32ExtendedKey.toBase58(false);
44274 DOM.extendedPubKey.val(extendedPubKey);
44275 // Display the addresses and privkeys
44276 clearAddressesList();
44277 displayAddresses(
0,
20);
44280 function displayAddresses(start, total) {
44281 generationProcesses.push(new (function() {
44285 this.stop = function() {
44286 for (var i=
0; i
<rows.length; i++) {
44287 rows[i].shouldGenerate = false;
44291 for (var i=
0; i
<total; i++) {
44292 var index = i + start;
44293 rows.push(new TableRow(index));
44299 function TableRow(index) {
44302 this.shouldGenerate = true;
44303 var useHardenedAddresses = DOM.hardenedAddresses.prop(
"checked");
44309 function calculateValues() {
44310 setTimeout(function() {
44311 if (!self.shouldGenerate) {
44315 if (useHardenedAddresses) {
44316 key = bip32ExtendedKey.deriveHardened(index);
44319 key = bip32ExtendedKey.derive(index);
44321 var address = key.getAddress().toString();
44322 var privkey =
"NA";
44324 privkey = key.privKey.toWIF(network);
44326 var pubkey = key.pubKey.toHex();
44327 var indexText = getDerivationPath() +
"/" + index;
44328 if (useHardenedAddresses) {
44329 indexText = indexText +
"'";
44331 // Ethereum values are different
44332 if (networks[DOM.network.val()].name ==
"ETH - Ethereum") {
44333 var privKeyBuffer = key.privKey.d.toBuffer();
44334 privkey = privKeyBuffer.toString('hex');
44335 var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
44336 var hexAddress = addressBuffer.toString('hex');
44337 var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
44338 address = ethUtil.addHexPrefix(checksumAddress);
44339 privkey = ethUtil.addHexPrefix(privkey);
44340 pubkey = ethUtil.addHexPrefix(pubkey);
44342 // Ripple values are different
44343 if (networks[DOM.network.val()].name ==
"XRP - Ripple") {
44344 privkey = convertRipplePriv(privkey);
44345 address = convertRippleAdrr(address);
44347 addAddressToList(indexText, address, pubkey, privkey);
44355 function showMore() {
44356 var start = DOM.addresses.children().length;
44357 var rowsToAdd = parseInt(DOM.rowsToAdd.val());
44358 if (isNaN(rowsToAdd)) {
44360 DOM.rowsToAdd.val(
"20");
44362 if (rowsToAdd
> 200) {
44363 var msg =
"Generating " + rowsToAdd +
" rows could take a while. ";
44364 msg +=
"Do you want to continue?";
44365 if (!confirm(msg)) {
44369 displayAddresses(start, rowsToAdd);
44372 function clearDisplay() {
44373 clearAddressesList();
44375 hideValidationError();
44378 function clearAddressesList() {
44379 DOM.addresses.empty();
44383 function stopGenerating() {
44384 while (generationProcesses.length
> 0) {
44385 var generation = generationProcesses.shift();
44390 function clearKey() {
44391 DOM.rootKey.val(
"");
44392 DOM.extendedPrivKey.val(
"");
44393 DOM.extendedPubKey.val(
"");
44396 function addAddressToList(indexText, address, pubkey, privkey) {
44397 var row = $(addressRowTemplate.html());
44399 var indexCell = row.find(
".index span");
44400 var addressCell = row.find(
".address span");
44401 var pubkeyCell = row.find(
".pubkey span");
44402 var privkeyCell = row.find(
".privkey span");
44404 indexCell.text(indexText);
44405 addressCell.text(address);
44406 pubkeyCell.text(pubkey);
44407 privkeyCell.text(privkey);
44410 indexCell.addClass(
"invisible");
44412 if (!showAddress) {
44413 addressCell.addClass(
"invisible");
44416 pubkeyCell.addClass(
"invisible");
44418 if (!showPrivKey) {
44419 privkeyCell.addClass(
"invisible");
44421 DOM.addresses.append(row);
44422 var rowShowQrEls = row.find(
"[data-show-qr]");
44423 setQrEvents(rowShowQrEls);
44426 function hasStrongRandom() {
44427 return 'crypto' in window && window['crypto'] !== null;
44430 function disableForms() {
44431 $(
"form").on(
"submit", function(e) {
44432 e.preventDefault();
44436 function parseIntNoNaN(val, defaultVal) {
44437 var v = parseInt(val);
44444 function showPending() {
44446 .text(
"Calculating...")
44450 function findNearestWord(word) {
44451 var language = getLanguage();
44452 var words = WORDLISTS[language];
44453 var minDistance =
99;
44454 var closestWord = words[
0];
44455 for (var i=
0; i
<words.length; i++) {
44456 var comparedTo = words[i];
44457 if (comparedTo.indexOf(word) ==
0) {
44460 var distance = Levenshtein.get(word, comparedTo);
44461 if (distance < minDistance) {
44462 closestWord = comparedTo;
44463 minDistance = distance;
44466 return closestWord;
44469 function hidePending() {
44475 function populateNetworkSelect() {
44476 for (var i=
0; i
<networks.length; i++) {
44477 var network = networks[i];
44478 var option = $(
"<option>");
44479 option.attr(
"value", i);
44480 option.text(network.name);
44481 DOM.phraseNetwork.append(option);
44485 function populateClientSelect() {
44486 for (var i=
0; i
<clients.length; i++) {
44487 var client = clients[i];
44488 var option = $(
"<option>");
44489 option.attr(
"value", i);
44490 option.text(client.name);
44491 DOM.bip32Client.append(option);
44495 function getLanguage() {
44496 var defaultLanguage =
"english";
44497 // Try to get from existing phrase
44498 var language = getLanguageFromPhrase();
44499 // Try to get from url if not from phrase
44500 if (language.length ==
0) {
44501 language = getLanguageFromUrl();
44503 // Default to English if no other option
44504 if (language.length ==
0) {
44505 language = defaultLanguage;
44510 function getLanguageFromPhrase(phrase) {
44511 // Check if how many words from existing phrase match a language.
44514 phrase = DOM.phrase.val();
44516 if (phrase.length
> 0) {
44517 var words = phraseToWordArray(phrase);
44518 var languageMatches = {};
44519 for (l in WORDLISTS) {
44520 // Track how many words match in this language
44521 languageMatches[l] =
0;
44522 for (var i=
0; i
<words.length; i++) {
44523 var wordInLanguage = WORDLISTS[l].indexOf(words[i])
> -
1;
44524 if (wordInLanguage) {
44525 languageMatches[l]++;
44528 // Find languages with most word matches.
44529 // This is made difficult due to commonalities between Chinese
44530 // simplified vs traditional.
44531 var mostMatches =
0;
44532 var mostMatchedLanguages = [];
44533 for (var l in languageMatches) {
44534 var numMatches = languageMatches[l];
44535 if (numMatches
> mostMatches) {
44536 mostMatches = numMatches;
44537 mostMatchedLanguages = [l];
44539 else if (numMatches == mostMatches) {
44540 mostMatchedLanguages.push(l);
44544 if (mostMatchedLanguages.length
> 0) {
44545 // Use first language and warn if multiple detected
44546 language = mostMatchedLanguages[
0];
44547 if (mostMatchedLanguages.length
> 1) {
44548 console.warn(
"Multiple possible languages");
44549 console.warn(mostMatchedLanguages);
44556 function getLanguageFromUrl() {
44557 for (var language in WORDLISTS) {
44558 if (window.location.hash.indexOf(language)
> -
1) {
44565 function setMnemonicLanguage() {
44566 var language = getLanguage();
44567 // Load the bip39 mnemonic generator for this language if required
44568 if (!(language in mnemonics)) {
44569 mnemonics[language] = new Mnemonic(language);
44571 mnemonic = mnemonics[language];
44574 function convertPhraseToNewLanguage() {
44575 var oldLanguage = getLanguageFromPhrase();
44576 var newLanguage = getLanguageFromUrl();
44577 var oldPhrase = DOM.phrase.val();
44578 var oldWords = phraseToWordArray(oldPhrase);
44580 for (var i=
0; i
<oldWords.length; i++) {
44581 var oldWord = oldWords[i];
44582 var index = WORDLISTS[oldLanguage].indexOf(oldWord);
44583 var newWord = WORDLISTS[newLanguage][index];
44584 newWords.push(newWord);
44586 newPhrase = wordArrayToPhrase(newWords);
44590 // TODO look at jsbip39 - mnemonic.splitWords
44591 function phraseToWordArray(phrase) {
44592 var words = phrase.split(/\s/g);
44594 for (var i=
0; i
<words.length; i++) {
44595 var word = words[i];
44596 if (word.length
> 0) {
44597 noBlanks.push(word);
44603 // TODO look at jsbip39 - mnemonic.joinWords
44604 function wordArrayToPhrase(words) {
44605 var phrase = words.join(
" ");
44606 var language = getLanguageFromPhrase(phrase);
44607 if (language ==
"japanese") {
44608 phrase = words.join(
"\u3000");
44613 function isUsingOwnEntropy() {
44614 return DOM.useEntropy.prop(
"checked");
44617 function setMnemonicFromEntropy() {
44618 clearEntropyFeedback();
44619 // Get entropy value
44620 var entropyStr = DOM.entropy.val();
44621 // Work out minimum base for entropy
44622 var entropy = Entropy.fromString(entropyStr);
44623 if (entropy.binaryStr.length ==
0) {
44626 // Show entropy details
44627 showEntropyFeedback(entropy);
44628 // Use entropy hash if not using raw entropy
44629 var bits = entropy.binaryStr;
44630 var mnemonicLength = DOM.entropyMnemonicLength.val();
44631 if (mnemonicLength !=
"raw") {
44632 // Get bits by hashing entropy with SHA256
44633 var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
44634 var hex = sjcl.codec.hex.fromBits(hash);
44635 bits = BigInteger.parse(hex,
16).toString(
2);
44636 while (bits.length %
256 !=
0) {
44639 // Truncate hash to suit number of words
44640 mnemonicLength = parseInt(mnemonicLength);
44641 var numberOfBits =
32 * mnemonicLength /
3;
44642 bits = bits.substring(
0, numberOfBits);
44644 // Discard trailing entropy
44645 var bitsToUse = Math.floor(bits.length /
32) *
32;
44646 var start = bits.length - bitsToUse;
44647 var binaryStr = bits.substring(start);
44648 // Convert entropy string to numeric array
44649 var entropyArr = [];
44650 for (var i=
0; i
<binaryStr.length /
8; i++) {
44651 var byteAsBits = binaryStr.substring(i*
8, i*
8+
8);
44652 var entropyByte = parseInt(byteAsBits,
2);
44653 entropyArr.push(entropyByte)
44655 // Convert entropy array to mnemonic
44656 var phrase = mnemonic.toMnemonic(entropyArr);
44657 // Set the mnemonic in the UI
44658 DOM.phrase.val(phrase);
44661 function clearEntropyFeedback() {
44662 DOM.entropyCrackTime.text(
"...");
44663 DOM.entropyType.text(
"");
44664 DOM.entropyWordCount.text(
"0");
44665 DOM.entropyEventCount.text(
"0");
44666 DOM.entropyBitsPerEvent.text(
"0");
44667 DOM.entropyBits.text(
"0");
44668 DOM.entropyFiltered.html(
" ");
44669 DOM.entropyBinary.html(
" ");
44672 function showEntropyFeedback(entropy) {
44673 var numberOfBits = entropy.binaryStr.length;
44674 var timeToCrack =
"unknown";
44676 var z = zxcvbn(entropy.base.parts.join(
""));
44677 timeToCrack = z.crack_times_display.offline_fast_hashing_1e10_per_second;
44678 if (z.feedback.warning !=
"") {
44679 timeToCrack = timeToCrack +
" - " + z.feedback.warning;
44683 console.log(
"Error detecting entropy strength with zxcvbn:");
44686 var entropyTypeStr = getEntropyTypeStr(entropy);
44687 var wordCount = Math.floor(numberOfBits /
32) *
3;
44688 var bitsPerEvent = entropy.bitsPerEvent.toFixed(
2);
44689 DOM.entropyFiltered.html(entropy.cleanHtml);
44690 DOM.entropyType.text(entropyTypeStr);
44691 DOM.entropyCrackTime.text(timeToCrack);
44692 DOM.entropyEventCount.text(entropy.base.ints.length);
44693 DOM.entropyBits.text(numberOfBits);
44694 DOM.entropyWordCount.text(wordCount);
44695 DOM.entropyBinary.text(entropy.binaryStr);
44696 DOM.entropyBitsPerEvent.text(bitsPerEvent);
44699 function getEntropyTypeStr(entropy) {
44700 var typeStr = entropy.base.str;
44701 // Add some detail if these are cards
44702 if (entropy.base.asInt ==
52) {
44703 var cardDetail = []; // array of message strings
44704 // Detect duplicates
44706 var dupeTracker = {};
44707 for (var i=
0; i
<entropy.base.parts.length; i++) {
44708 var card = entropy.base.parts[i];
44709 var cardUpper = card.toUpperCase();
44710 if (cardUpper in dupeTracker) {
44713 dupeTracker[cardUpper] = true;
44715 if (dupes.length
> 0) {
44716 var dupeWord =
"duplicates";
44717 if (dupes.length ==
1) {
44718 dupeWord =
"duplicate";
44720 var msg = dupes.length +
" " + dupeWord +
": " + dupes.slice(
0,
3).join(
" ");
44721 if (dupes.length
> 3) {
44724 cardDetail.push(msg);
44726 // Detect full deck
44727 var uniqueCards = [];
44728 for (var uniqueCard in dupeTracker) {
44729 uniqueCards.push(uniqueCard);
44731 if (uniqueCards.length ==
52) {
44732 cardDetail.unshift(
"full deck");
44734 // Detect missing cards
44735 var values =
"A23456789TJQK";
44736 var suits =
"CDHS";
44737 var missingCards = [];
44738 for (var i=
0; i
<suits.length; i++) {
44739 for (var j=
0; j
<values.length; j++) {
44740 var card = values[j] + suits[i];
44741 if (!(card in dupeTracker)) {
44742 missingCards.push(card);
44746 // Display missing cards if six or less, ie clearly going for full deck
44747 if (missingCards.length
> 0 && missingCards.length <=
6) {
44748 var msg = missingCards.length +
" missing: " + missingCards.slice(
0,
3).join(
" ");
44749 if (missingCards.length
> 3) {
44752 cardDetail.push(msg);
44754 // Add card details to typeStr
44755 if (cardDetail.length
> 0) {
44756 typeStr +=
" (" + cardDetail.join(
", ") +
")";
44762 function setQrEvents(els) {
44763 els.on(
"mouseenter", createQr);
44764 els.on(
"mouseleave", destroyQr);
44765 els.on(
"click", toggleQr);
44768 function createQr(e) {
44769 var content = e.target.textContent || e.target.value;
44772 DOM.qrImage.qrcode({width: size, height: size, text: content});
44774 DOM.qrHider.addClass(
"hidden");
44777 DOM.qrHider.removeClass(
"hidden");
44779 DOM.qrContainer.removeClass(
"hidden");
44783 function destroyQr() {
44784 DOM.qrImage.text(
"");
44785 DOM.qrContainer.addClass(
"hidden");
44788 function toggleQr() {
44790 DOM.qrHider.toggleClass(
"hidden");
44791 DOM.qrHint.toggleClass(
"hidden");
44794 function bip44TabSelected() {
44795 return DOM.bip44tab.hasClass(
"active");
44798 function bip32TabSelected() {
44799 return DOM.bip32tab.hasClass(
"active");
44804 name:
"BTC - Bitcoin",
44805 onSelect: function() {
44806 network = bitcoin.networks.bitcoin;
44807 DOM.bip44coin.val(
0);
44811 name:
"BTC - Bitcoin Testnet",
44812 onSelect: function() {
44813 network = bitcoin.networks.testnet;
44814 DOM.bip44coin.val(
1);
44818 name:
"CLAM - Clams",
44819 onSelect: function() {
44820 network = bitcoin.networks.clam;
44821 DOM.bip44coin.val(
23);
44825 name:
"CRW - Crown",
44826 onSelect: function() {
44827 network = bitcoin.networks.crown;
44828 DOM.bip44coin.val(
72);
44832 name:
"DASH - Dash",
44833 onSelect: function() {
44834 network = bitcoin.networks.dash;
44835 DOM.bip44coin.val(
5);
44839 name:
"DASH - Dash Testnet",
44840 onSelect: function() {
44841 network = bitcoin.networks.dashtn;
44842 DOM.bip44coin.val(
1);
44846 name:
"DOGE - Dogecoin",
44847 onSelect: function() {
44848 network = bitcoin.networks.dogecoin;
44849 DOM.bip44coin.val(
3);
44853 name:
"ETH - Ethereum",
44854 onSelect: function() {
44855 network = bitcoin.networks.bitcoin;
44856 DOM.bip44coin.val(
60);
44860 name:
"GAME - GameCredits",
44861 onSelect: function() {
44862 network = bitcoin.networks.game;
44863 DOM.bip44coin.val(
101);
44867 name:
"JBS - Jumbucks",
44868 onSelect: function() {
44869 network = bitcoin.networks.jumbucks;
44870 DOM.bip44coin.val(
26);
44874 name:
"LTC - Litecoin",
44875 onSelect: function() {
44876 network = bitcoin.networks.litecoin;
44877 DOM.bip44coin.val(
2);
44881 name:
"NMC - Namecoin",
44882 onSelect: function() {
44883 network = bitcoin.networks.namecoin;
44884 DOM.bip44coin.val(
7);
44888 name:
"PPC - Peercoin",
44889 onSelect: function() {
44890 network = bitcoin.networks.peercoin;
44891 DOM.bip44coin.val(
6);
44895 name:
"SDC - ShadowCash",
44896 onSelect: function() {
44897 network = bitcoin.networks.shadow;
44898 DOM.bip44coin.val(
35);
44902 name:
"SDC - ShadowCash Testnet",
44903 onSelect: function() {
44904 network = bitcoin.networks.shadowtn;
44905 DOM.bip44coin.val(
1);
44909 name:
"SLM - Slimcoin",
44910 onSelect: function() {
44911 network = bitcoin.networks.slimcoin;
44912 DOM.bip44coin.val(
63);
44916 name:
"SLM - Slimcoin Testnet",
44917 onSelect: function() {
44918 network = bitcoin.networks.slimcointn;
44919 DOM.bip44coin.val(
111);
44923 name:
"VIA - Viacoin",
44924 onSelect: function() {
44925 network = bitcoin.networks.viacoin;
44926 DOM.bip44coin.val(
14);
44930 name:
"VIA - Viacoin Testnet",
44931 onSelect: function() {
44932 network = bitcoin.networks.viacointestnet;
44933 DOM.bip44coin.val(
1);
44937 name:
"XRP - Ripple",
44938 onSelect: function() {
44939 network = bitcoin.networks.bitcoin;
44940 DOM.bip44coin.val(
144);
44947 name:
"Bitcoin Core",
44948 onSelect: function() {
44949 DOM.bip32path.val(
"m/0'/0'");
44950 DOM.hardenedAddresses.prop('checked', true);
44954 name:
"blockchain.info",
44955 onSelect: function() {
44956 DOM.bip32path.val(
"m/44'/0'/0'");
44957 DOM.hardenedAddresses.prop('checked', false);
44961 name:
"MultiBit HD",
44962 onSelect: function() {
44963 DOM.bip32path.val(
"m/0'/0");
44964 DOM.hardenedAddresses.prop('checked', false);