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" />
20 .form-control[readonly] {
33 background-color: orange;
37 border:
2px solid #
555;
39 border-bottom-left-radius:
20px
20px;
40 border-bottom-right-radius:
20px
20px;
44 box-shadow: inset
0 1px
1px rgba(
0,
0,
0,
.0);
45 -webkit-box-shadow: inset
0 1px
1px rgba(
0,
0,
0,
.0);
50 .generate-container .strength {
51 /* override mobile width from bootstrap */
52 width: auto!important;
53 display: inline-block;
58 .languages a:nth-of-type(
1) {
63 font-family: monospace;
65 .entropy-container .filtered,
66 .entropy-container .binary {
67 word-wrap: break-word;
69 .entropy-container li {
93 background-color: #FFF;
94 border:
1px solid #CCC;
106 border-bottom:
1px dashed #
000;
107 text-decoration: none;
112 <div class=
"container">
114 <h1 class=
"text-center">Mnemonic Code Converter
</h1>
117 <div class=
"col-md-12">
119 <form class=
"form-horizontal" role=
"form">
120 <div class=
"form-group">
121 <div class=
"col-sm-2"></div>
122 <div class=
"col-sm-10">
123 <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>
124 <p data-translate-html
>
125 For more info see the
126 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki" target=
"_blank">BIP39 spec
</a>.
130 <div class=
"form-group generate-container">
131 <label class=
"col-sm-2 control-label"></label>
132 <div class=
"col-sm-10">
133 <div class=
"form-inline">
134 <div class=
"input-group-inline">
135 <span data-translate
>Generate a random mnemonic, or enter your own below
</span>:
136 <button class=
"btn generate">Generate
</button>
137 <select id=
"strength" class=
"strength form-control">
138 <option value=
"3">3</option>
139 <option value=
"6">6</option>
140 <option value=
"9">9</option>
141 <option value=
"12">12</option>
142 <option value=
"15" selected
>15</option>
143 <option value=
"18">18</option>
144 <option value=
"21">21</option>
145 <option value=
"24">24</option>
147 <span data-translate
>words
</span>
152 <div class=
"entropy-container hidden">
153 <div class=
"form-group text-danger">
154 <label class=
"col-sm-2 control-label" data-translate
>Warning
</label>
155 <div class=
"col-sm-10 form-control-static">
156 <span data-translate
>Entropy is an advanced feature. Your mnemonic may be insecure if this feature is used incorrectly.
</span>
157 <a href=
"#entropy-notes" data-translate
>Read more
</a>
160 <div class=
"form-group">
161 <label for=
"entropy" class=
"col-sm-2 control-label" data-translate
>Entropy
</label>
162 <div class=
"col-sm-7">
163 <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>
165 <label class=
"col-sm-3 control-label" data-translate
>Strength
</label>
166 <div class=
"strength col-sm-3 form-control-static"></div>
167 <label class=
"col-sm-3 control-label" data-translate
>Event Count
</label>
168 <div class=
"event-count col-sm-3 form-control-static"></div>
171 <label class=
"col-sm-3 control-label" data-translate
>Entropy Type
</label>
172 <div class=
"type col-sm-3 form-control-static"></div>
173 <label class=
"col-sm-3 control-label" data-translate
>Bits Per Event
</label>
174 <div class=
"bits-per-event col-sm-3 form-control-static"></div>
177 <label class=
"col-sm-3 control-label" data-translate
>Word Count
</label>
178 <div class=
"word-count col-sm-3 form-control-static"></div>
179 <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>
180 <div class=
"bits col-sm-3 form-control-static"></div>
182 <label class=
"col-sm-3 control-label" data-translate
>Filtered Entropy
</label>
183 <div class=
"filtered col-sm-9 form-control-static"></div>
184 <label class=
"col-sm-3 control-label" data-translate
>Raw Binary
</label>
185 <div class=
"binary col-sm-9 form-control-static"></div>
186 <label class=
"col-sm-3 control-label" data-translate
>Mnemonic Length
</label>
187 <div class=
"col-sm-9">
188 <select class=
"mnemonic-length form-control">
189 <option value=
"raw" selected data-translate
>Use Raw Entropy (
3 words per
32 bits)
</option>
190 <option value=
"12">12 <span data-translate
>Words
</span></option>
191 <option value=
"15">15 <span data-translate
>Words
</option>
192 <option value=
"18">18 <span data-translate
>Words
</span></option>
193 <option value=
"21">21 <span data-translate
>Words
</span></option>
194 <option value=
"24">24 <span data-translate
>Words
</span></option>
198 <div class=
"col-sm-3">
199 <p data-translate
>Valid entropy values include:
</p>
201 <li><strong data-translate
>Binary
</strong> [
0-
1]
<br>101010011</li>
202 <li><strong data-translate
>Base
6</strong> [
0-
5]
<br>123434014</li>
203 <li><strong data-translate
>Dice
</strong> [
1-
6]
<br>62535634</li>
204 <li><strong data-translate
>Base
10</strong> [
0-
9]
<br>90834528</li>
205 <li><strong data-translate
>Hex
</strong> [
0-
9A-F]
<br>4187a8bfd9
</li>
206 <li><strong data-translate
>Card
</strong> [A2-
9TJQK][CDHS]
<br>ahqs9dtc
</li>
211 <div class=
"form-group">
212 <div class=
"col-sm-2"></div>
213 <div class=
"col-sm-10 checkbox">
215 <input type=
"checkbox" class=
"use-entropy">
216 <span data-translate
>Supply my own source of entropy
</span>
220 <div class=
"form-group">
221 <label class=
"col-sm-2 control-label" data-translate
>Mnemonic Language
</label>
222 <div class=
"col-sm-10 languages">
223 <div class=
"form-control no-border">
224 <a href=
"#english">English
</a>
225 <a href=
"#japanese" title=
"Japanese">日本語
</a>
226 <a href=
"#spanish" title=
"Spanish">Español
</a>
227 <a href=
"#chinese_simplified" title=
"Chinese (Simplified)">中文(简体)
</a>
228 <a href=
"#chinese_traditional" title=
"Chinese (Traditional)">中文(繁體)
</a>
229 <a href=
"#french" title=
"French">Français
</a>
230 <a href=
"#italian" title=
"Italian">Italiano
</a>
234 <div class=
"form-group">
235 <label for=
"phrase" class=
"col-sm-2 control-label" data-translate
>BIP39 Mnemonic
</label>
236 <div class=
"col-sm-10">
237 <textarea id=
"phrase" class=
"phrase form-control" data-show-qr
></textarea>
240 <div class=
"form-group">
241 <label for=
"passphrase" class=
"col-sm-2 control-label" data-translate
>BIP39 Passphrase (optional)
</label>
242 <div class=
"col-sm-10">
243 <textarea id=
"passphrase" class=
"passphrase form-control"></textarea>
246 <div class=
"form-group">
247 <label for=
"seed" class=
"col-sm-2 control-label" data-translate
>BIP39 Seed
</label>
248 <div class=
"col-sm-10">
249 <textarea id=
"seed" class=
"seed form-control" readonly=
"readonly" data-show-qr
></textarea>
252 <div class=
"form-group">
253 <label for=
"network-phrase" class=
"col-sm-2 control-label" data-translate
>Coin
</label>
254 <div class=
"col-sm-10">
255 <select id=
"network-phrase" class=
"network form-control">
256 <!-- populated by javascript -->
260 <div class=
"form-group">
261 <label for=
"root-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Root Key
</label>
262 <div class=
"col-sm-10">
263 <textarea id=
"root-key" class=
"root-key form-control" data-show-qr
></textarea>
273 <div class=
"col-md-12">
274 <h2>Derivation Path
</h2>
275 <ul class=
"derivation-type nav nav-tabs" role=
"tablist">
276 <li id=
"bip44-tab" class=
"active">
277 <a href=
"#bip44" role=
"tab" data-toggle=
"tab">BIP44
</a>
280 <a href=
"#bip32" role=
"tab" data-toggle=
"tab">BIP32
</a>
283 <div class=
"derivation-type tab-content">
284 <div id=
"bip44" class=
"tab-pane active">
285 <form class=
"form-horizontal" role=
"form">
287 <div class=
"col-sm-2"></div>
288 <div class=
"col-sm-10">
289 <p data-translate-html
>
290 For more info see the
291 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">BIP44 spec
</a>.
294 <div class=
"form-group">
295 <label for=
"purpose" class=
"col-sm-2 control-label">
296 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#purpose" target=
"_blank" data-translate
>Purpose
</a>
298 <div class=
"col-sm-10">
299 <input id=
"purpose" type=
"text" class=
"purpose form-control" value=
"44">
302 <div class=
"form-group">
303 <label for=
"coin" class=
"col-sm-2 control-label">
304 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#registered-coin-types" target=
"_blank" data-translate
>Coin
</a>
306 <div class=
"col-sm-10">
307 <input id=
"coin" type=
"text" class=
"coin form-control" value=
"0">
310 <div class=
"form-group">
311 <label for=
"account" class=
"col-sm-2 control-label">
312 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#account" target=
"_blank" data-translate
>Account
</a>
314 <div class=
"col-sm-10">
315 <input id=
"account" type=
"text" class=
"account form-control" value=
"0">
318 <div class=
"form-group">
319 <label for=
"change" class=
"col-sm-2 control-label">
320 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#change" target=
"_blank" data-translate
>External / Internal
</a>
322 <div class=
"col-sm-10">
323 <input id=
"change" type=
"text" class=
"change form-control" value=
"0">
326 <div class=
"form-group">
327 <label class=
"col-sm-2 control-label">
329 <div class=
"col-sm-10">
330 <p data-translate
>The account extended keys can be used for importing to most BIP44 compatible wallets, such as mycelium or electrum.
</p>
333 <div class=
"form-group">
334 <label for=
"account-xprv" class=
"col-sm-2 control-label">
335 <span data-translate
>Account Extended Private Key
</span>
337 <div class=
"col-sm-10">
338 <textarea id=
"account-xprv" type=
"text" class=
"account-xprv form-control" readonly data-show-qr
></textarea>
341 <div class=
"form-group">
342 <label for=
"account-xpub" class=
"col-sm-2 control-label">
343 <span data-translate
>Account Extended Public Key
</span>
345 <div class=
"col-sm-10">
346 <textarea id=
"account-xpub" type=
"text" class=
"account-xpub form-control" readonly data-show-qr
></textarea>
349 <div class=
"form-group">
350 <label class=
"col-sm-2 control-label">
352 <div class=
"col-sm-10">
353 <p data-translate
>The BIP32 derivation path and extended keys are the basis for the derived addresses.
</p>
356 <div class=
"form-group">
357 <label for=
"bip44-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
358 <div class=
"col-sm-10">
359 <input id=
"bip44-path" type=
"text" class=
"path form-control" value=
"m/44'/0'/0'/0" readonly=
"readonly">
364 <div id=
"bip32" class=
"tab-pane">
365 <form class=
"form-horizontal" role=
"form">
367 <div class=
"col-sm-2"></div>
368 <div class=
"col-sm-10">
370 For more info see the
371 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">BIP32 spec
</a>
374 <div class=
"form-group">
375 <label for=
"bip32-client" class=
"col-sm-2 control-label" data-translate
>Client
</label>
376 <div class=
"col-sm-10">
377 <select id=
"bip32-client" class=
"client form-control">
378 <option value=
"custom">Custom derivation path
</option>
379 <!-- populated by javascript -->
383 <div class=
"form-group">
384 <label for=
"bip32-path" class=
"col-sm-2 control-label" data-translate
>BIP32 Derivation Path
</label>
385 <div class=
"col-sm-10">
386 <input id=
"bip32-path" type=
"text" class=
"path form-control" value=
"m/0">
389 <div class=
"form-group">
390 <div class=
"col-sm-2"></div>
391 <label class=
"col-sm-10">
392 <input class=
"hardened-addresses" type=
"checkbox">
393 <span data-translate
>Use hardened addresses
</span>
396 <div class=
"form-group">
397 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Bitcoin Core
</label>
398 <div class=
"col-sm-10">
399 <p class=
"form-control no-border" data-translate-html
>
400 Use path
<code>m/
0'/
0'
</code> with hardened addresses.
402 <p class=
"form-control no-border" data-translate-html
>
403 For more info see the
404 <a href=
"https://github.com/bitcoin/bitcoin/pull/8035" target=
"_blank">Bitcoin Core BIP32 implementation
</a>
408 <div class=
"form-group">
409 <label for=
"core-path" class=
"col-sm-2 control-label" data-translate
>Multibit
</label>
410 <div class=
"col-sm-10">
411 <p class=
"form-control no-border">
412 <span data-translate-html
>Use path
<code>m/
0'/
0</code>.
</span>
414 <p class=
"form-control no-border">
415 <span data-translate
>For more info see
</span>
416 <a href=
"https://multibit.org/" target=
"_blank">MultiBit HD
</a>
420 <div class=
"form-group">
421 <label class=
"col-sm-2 control-label" data-translate
>Block Explorers
</label>
422 <div class=
"col-sm-10">
423 <p class=
"form-control no-border">
424 <span data-translate-html
>Use path
<code>m/
44'/
0'/
0'
</code>.
</span>
425 <span data-translate-html
>Only enter the
<code>xpub
</code> extended key into block explorer search fields, never the
<code>xprv
</code> key.
</span>
427 <p class=
"form-control no-border">
428 <span data-translate
>Can be used with
</span>:
429 <a href=
"https://blockchain.info/" target=
"_blank">blockchain.info
</a>
436 <form class=
"form-horizontal" role=
"form">
437 <div class=
"form-group">
438 <label for=
"extended-priv-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Private Key
</label>
439 <div class=
"col-sm-10">
440 <textarea id=
"extended-priv-key" class=
"extended-priv-key form-control" readonly=
"readonly" data-show-qr
></textarea>
443 <div class=
"form-group">
444 <label for=
"extended-pub-key" class=
"col-sm-2 control-label" data-translate
>BIP32 Extended Public Key
</label>
445 <div class=
"col-sm-10">
446 <textarea id=
"extended-pub-key" class=
"extended-pub-key form-control" readonly=
"readonly" data-show-qr
></textarea>
456 <div class=
"col-md-12">
457 <h2>Derived Addresses
</h2>
458 <p data-translate
>Note these addreses are derived from the BIP32 Extended Key
</p>
459 <table class=
"table table-striped">
462 <div class=
"input-group">
463 <span data-translate
>Path
</span>
464 <button class=
"index-toggle" data-translate
>Toggle
</button>
468 <div class=
"input-group">
469 <span data-translate
>Address
</span>
470 <button class=
"address-toggle" data-translate
>Toggle
</button>
474 <div class=
"input-group">
475 <span data-translate
>Public Key
</span>
476 <button class=
"public-key-toggle" data-translate
>Toggle
</button>
480 <div class=
"input-group">
481 <span data-translate
>Private Key
</span>
482 <button class=
"private-key-toggle" data-translate
>Toggle
</button>
486 <tbody class=
"addresses monospace">
487 <tr><td> </td><td> </td><td> </td><td> </td></tr>
488 <tr><td> </td><td> </td><td> </td><td> </td></tr>
489 <tr><td> </td><td> </td><td> </td><td> </td></tr>
490 <tr><td> </td><td> </td><td> </td><td> </td></tr>
491 <tr><td> </td><td> </td><td> </td><td> </td></tr>
496 <span data-translate
>Show more rows
</span>:
497 <input type=
"number" class=
"rows-to-add" value=
"20">
498 <button class=
"more" data-translate
>Show
</button>
503 <div class=
"col-md-12">
504 <h2 data-translate
>More info
</h2>
505 <h3>BIP39
<span class=
"small" data-translate
>Mnemonic code for generating deterministic keys
</span></h3>
506 <p data-translate-html
>
508 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki">official BIP39 spec
</a>
510 <h3>BIP32
<span class=
"small" data-translate
>Hierarchical Deterministic Wallets
</span></h3>
511 <p data-translate-html
>
513 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target=
"_blank">official BIP32 spec
</a>
515 <p data-translate-html
>
517 <a href=
"http://bip32.org/" target=
"_blank">bip32.org
</a>
519 <h3>BIP44
<span class=
"small" data-translate
>Multi-Account Hierarchy for Deterministic Wallets
</span></h3>
520 <p data-translate-html
>
522 <a href=
"https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki" target=
"_blank">official BIP44 spec
</a>
524 <h3 data-translate
>Private Keys
</h3>
526 <span data-translate-html
>
528 <a href=
"https://web.archive.org/web/20150707020924/https://brainwallet.org/" target=
"_blank">brainwallet.org
</a>.
530 <span data-translate
>Be careful - it can be easy to make mistakes if you don't know what you're doing.
</span>
532 <h3 id=
"entropy-notes" data-translate
>Entropy
</h3>
534 <span data-translate-html
>
535 Entropy values must be sourced from a
536 <a href=
"https://en.wikipedia.org/wiki/Random_number_generation" target=
"_blank">strong source of randomness
</a>.
538 <span data-translate
>This means flipping a fair coin, rolling a fair dice, noise measurements etc.
</span>
539 <span data-translate-html
>
540 Do
<strong>NOT
</strong> use phrases from books, lyrics from songs, your birthday or steet address,
541 keyboard mashing, or anything you
<i>think
</i> is random, because chances are overwhelming it isn't
542 random enough for the needs of this tool.
546 <strong><span data-translate
>Do not store entropy.
</span></strong>
549 <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>
550 <span data-translate
>Instead of storing entropy, store the mnemonic generated from the entropy.
</span>
551 <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>
554 <span data-translate-html
>
555 The random mnemonic generator on this page uses a
556 <a href=
"https://developer.mozilla.org/en-US/docs/Web/API/RandomSource/getRandomValues" target=
"_blank">cryptographically secure random number generator
</a>.
558 <span data-translate
>The built in random generator can generally be trusted more than your own intuition about randomness.
</span>
559 <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>
560 <span data-translate
>In that case you might choose to use your own source of entropy.
</span>
563 <a href=
"https://bitcointalk.org/index.php?topic=311000.msg3345309#msg3345309" target=
"_blank" data-translate
>You are not a good source of entropy.
</a>
565 <h3 data-translate
>License
</h3>
567 <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.
570 <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>
577 <div class=
"col-md-12">
579 <h2 data-translate
>Offline Usage
</h2>
582 You can use this tool without having to be online.
585 In your browser, select file save-as, and save this page
589 Double-click that file to open it in a browser
590 on any offline computer.
593 <span data-translate
>Alternatively, download the file from the repository
</span>
595 <a href=
"https://github.com/iancoleman/bip39">https://github.com/iancoleman/bip39
</a>
604 <div class=
"col-md-12">
606 <h2 data-translate
>This project is
100% open-source code
</h2>
609 <span data-translate
>Get the source code from the repository
</span>
611 <a href=
"https://github.com/iancoleman/bip39" target=
"_blank">
612 https://github.com/iancoleman/bip39
616 <h3 data-translate
>Libraries
</h3>
619 <span>BitcoinJS -
</span>
620 <a href=
"https://github.com/bitcoinjs/bitcoinjs-lib" target=
"_blank">
621 https://github.com/bitcoinjs/bitcoinjs-lib
626 <span>jsBIP39 -
</span>
627 <a href=
"https://github.com/iancoleman/jsbip39" target=
"_blank">
628 https://github.com/iancoleman/jsbip39
634 <a href=
"https://github.com/bitwiseshiftleft/sjcl" target=
"_blank">
635 https://github.com/bitwiseshiftleft/sjcl
640 <span>jQuery -
</span>
641 <a href=
"https://jquery.com/" target=
"_blank">
647 <span>Twitter Bootstrap -
</span>
648 <a href=
"http://getbootstrap.com/" target=
"_blank">
649 http://getbootstrap.com/
658 <div class=
"qr-container hidden">
659 <div class=
"qr-hint bg-primary hidden" data-translate
>Click field to hide QR
</div>
660 <div class=
"qr-hint bg-primary" data-translate
>Click field to show QR
</div>
661 <div class=
"qr-hider hidden">
662 <div class=
"qr-image"></div>
663 <div class=
"qr-warning bg-primary" data-translate
>Caution: Scanner may keep history
</div>
667 <div class=
"feedback-container">
668 <div class=
"feedback">Loading...
</div>
671 <script type=
"text/template" id=
"address-row-template">
673 <td class=
"index"><span></span></td>
674 <td class=
"address"><span data-show-qr
></span></td>
675 <td class=
"pubkey"><span data-show-qr
></span></td>
676 <td class=
"privkey"><span data-show-qr
></span></td>
680 // https://raw.githubusercontent.com/inexorabletash/polyfill/a6bc6ced78160c994f76a909b6ff6bbbab3d43de/es6.js
681 // Required for ethereumjs-utils.js when run in phantomjs-
2.1.1
682 // but is not required in any modern browsers.
683 // For more information, see
684 // https://www.bountysource.com/issues/
38485709-error-rendering-plot-with-phantomjs
686 //----------------------------------------------------------------------
688 // ECMAScript
2015 Polyfills
690 //----------------------------------------------------------------------
695 // Set this to always override native implementations, for testing
696 // the polyfill in browsers with partial/full ES2015 support.
697 var OVERRIDE_NATIVE_FOR_TESTING = false;
699 var undefined = (void
0); // Paranoia
704 return o === global ? undefined : o;
707 function hook(o, p, f) {
709 console.assert(typeof op === 'function', 'Hooking a non-function');
711 var o = strict(this);
712 var r = f.apply(o, arguments);
713 return r !== undefined ? r : op.apply(o, arguments);
717 function isSymbol(s) {
718 return (typeof s === 'symbol') || ('Symbol' in global && s instanceof global.Symbol);
721 function getPropertyDescriptor(target, name) {
722 var desc = Object.getOwnPropertyDescriptor(target, name);
723 var proto = Object.getPrototypeOf(target);
724 while (!desc && proto) {
725 desc = Object.getOwnPropertyDescriptor(proto, name);
726 proto = Object.getPrototypeOf(proto);
731 var enqueue = (function(nativePromise, nativeSetImmediate) {
733 return function(job) { nativePromise.resolve().then(function() { job(); }); };
734 if (nativeSetImmediate)
735 return function(job) { nativeSetImmediate(job); };
736 return function(job) { setTimeout(job,
0); };
737 }(global['Promise'], global['setImmediate']));
739 function define(o, p, v, override) {
740 if (p in o && !override && !OVERRIDE_NATIVE_FOR_TESTING)
743 if (typeof v === 'function') {
744 // Sanity check that functions are appropriately named (where possible)
745 console.assert(isSymbol(p) || !('name' in v) || v.name === p || v.name === p + '_', 'Expected function name "' + p.toString() + '", was "' + v.name + '"');
746 Object.defineProperty(o, p, {
753 Object.defineProperty(o, p, {
762 function set_internal(o, p, v) {
763 Object.defineProperty(o, p, {
771 // Snapshot intrinsic functions
772 var $isNaN = global.isNaN,
773 $parseInt = global.parseInt,
774 $parseFloat = global.parseFloat;
777 LOG10E = Math.LOG10E,
787 random = Math.random,
790 var orig_match = String.prototype.match,
791 orig_replace = String.prototype.replace,
792 orig_search = String.prototype.search,
793 orig_split = String.prototype.split;
795 // These are used for implementing the polyfills, but not exported.
797 // Inspired by https://gist.github.com/
1638059
799 function EphemeronTable() {
800 var secretKey = ObjectCreate(null);
802 function conceal(o) {
803 var oValueOf = o.valueOf, secrets = ObjectCreate(null);
804 Object.defineProperty(o, 'valueOf', {
805 value: (function(secretKey) {
806 return function (k) {
807 return (k === secretKey) ? secrets : oValueOf.apply(o, arguments);
818 var v = typeof o.valueOf === 'function' && o.valueOf(secretKey);
819 return v === o ? null : v;
824 secretKey = ObjectCreate(null);
826 remove: function(key) {
827 var secrets = reveal(key);
828 if (secrets && HasOwnProperty(secrets, 'value')) {
829 delete secrets.value;
834 get: function(key, defaultValue) {
835 var secrets = reveal(key);
836 return (secrets && HasOwnProperty(secrets, 'value')) ? secrets.value : defaultValue;
839 var secrets = reveal(key);
840 return Boolean(secrets && HasOwnProperty(secrets, 'value'));
842 set: function(key, value) {
843 var secrets = reveal(key) || conceal(key);
844 secrets.value = value;
849 var empty = Object.create(null);
851 //----------------------------------------------------------------------
854 // http://www.ecma-international.org/ecma-
262/
6.0/
856 //----------------------------------------------------------------------
858 // ---------------------------------------
859 //
19.4 Symbol Objects
860 // ---------------------------------------
862 // NOTE: Symbols are defined here - out of spec order - since we need the
863 // properties and prototype to be populated for other polyfills.
865 // NOTE: Not secure, nor is obj[$$symbol] hidden from Object.keys()
869 var secret = Object.create(null);
871 symbolForKey = function(k) {
875 var GlobalSymbolRegistry = [];
877 function unique(bits) {
878 return Array(bits +
1).join('x').replace(/x/g, function() {
879 return random() <
0.5 ? '\u200C' : '\u200D'; // JWNJ / ZWJ
883 //
19.4.1 The Symbol Constructor
884 //
19.4.1.1 Symbol ( description=undefined )
885 function Symbol(description) {
886 if (!(this instanceof Symbol)) return new Symbol(description, secret);
887 if (this instanceof Symbol && arguments[
1] !== secret) throw TypeError();
889 var descString = description === undefined ? undefined : String(description);
891 set_internal(this, '[[SymbolData]]', unique(
128));
892 set_internal(this, '[[Description]]', descString);
894 symbolMap[this] = this;
898 if (!('Symbol' in global) || OVERRIDE_NATIVE_FOR_TESTING)
899 global.Symbol = Symbol;
901 //
19.4.2 Properties of the Symbol Constructor
903 //
19.4.2.1 Symbol.for (key)
904 define(Symbol, 'for', function for_(key) {
905 var stringKey = String(key);
906 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
907 var e = GlobalSymbolRegistry[i];
908 if (SameValue(e['[[key]]'], stringKey)) return e['[[symbol]]'];
910 var newSymbol = Symbol(key);
911 GlobalSymbolRegistry.push({'[[key]]': stringKey, '[[symbol]]': newSymbol});
915 //
19.4.2.2 Symbol.hasInstance
916 //
19.4.2.3 Symbol.isConcatSpreadable
918 //
19.4.2.4 Symbol.iterator
919 define(global.Symbol, 'iterator', global.Symbol('Symbol.iterator'));
921 //
19.4.2.5 Symbol.keyFor (sym)
922 define(Symbol, 'keyFor', function keyFor(sym) {
923 if (!(sym instanceof Symbol)) throw TypeError();
924 for (var i =
0; i < GlobalSymbolRegistry.length; ++i) {
925 var e = GlobalSymbolRegistry[i];
926 if (SameValue(e['[[symbol]]'], sym)) return e['[[key]]'];
931 //
19.4.2.6 Symbol.match
932 define(global.Symbol, 'match', global.Symbol('Symbol.match'));
934 //
19.4.2.7 Symbol.prototype
936 //
19.4.2.8 Symbol.replace
937 define(global.Symbol, 'replace', global.Symbol('Symbol.replace'));
939 //
19.4.2.9 Symbol.search
940 define(global.Symbol, 'search', global.Symbol('Symbol.search'));
942 //
19.4.2.10 Symbol.species
944 //
19.4.2.11 Symbol.search
945 define(global.Symbol, 'split', global.Symbol('Symbol.split'));
947 //
19.4.2.12 Symbol.toPrimitive
949 //
19.4.2.13 Symbol.toStringTag
950 define(global.Symbol, 'toStringTag', global.Symbol('Symbol.toStringTag'));
952 //
19.4.2.14 Symbol.unscopables
954 //
19.4.3 Properties of the Symbol Prototype Object
955 //
19.4.3.1 Symbol.prototype.constructor
957 //
19.4.3.2 Symbol.prototype.toString ( )
958 Object.defineProperty(Symbol.prototype, 'toString', {
959 value: function toString() {
960 var s = strict(this);
961 var desc = s['[[Description]]'];
962 return 'Symbol(' + (desc === undefined ? '' : desc) + s['[[SymbolData]]'] + ')';
964 configurable: true, writeable: true, enumerable: false });
966 //
19.4.3.3 Symbol.prototype.valueOf ( )
967 Object.defineProperty(Symbol.prototype, 'valueOf', {
968 value: function valueOf() {
969 // To prevent automatic string conversion:
972 // Spec has approximately the following:
973 //var s = strict(this);
974 //if (Type(s) === 'symbol') return s;
975 //if (Type(s) !== 'object') throw TypeError();
976 //if (!('[[SymbolData]]' in s)) throw TypeError();
977 //return s['[[SymbolData]]'];
979 configurable: true, writeable: true, enumerable: false });
981 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
982 // (Done later to polyfill partial implementations)
984 //
19.4.4 Properties of Symbol Instances
987 console.assert(typeof global.Symbol() === 'symbol' || symbolForKey(String(global.Symbol('x'))));
989 // Defined here so that other prototypes can reference it
990 //
25.1.2 The %IteratorPrototype% Object
991 var $IteratorPrototype$ = {};
993 //----------------------------------------
994 //
6 ECMAScript Data Types and Values
995 //----------------------------------------
997 //
6.1 ECMAScript Language Types
999 // "Type(x)" is used as shorthand for "the type of x"...
1002 case 'undefined': return 'undefined';
1003 case 'boolean': return 'boolean';
1004 case 'number': return 'number';
1005 case 'string': return 'string';
1006 case 'symbol': return 'symbol';
1008 if (v === null) return 'null';
1009 if (v instanceof global.Symbol) return 'symbol';
1014 //
6.1.5.1 Well-Known Symbols
1015 var $$iterator = global.Symbol.iterator,
1016 $$match = global.Symbol.match,
1017 $$replace = global.Symbol.replace,
1018 $$search = global.Symbol.search,
1019 $$split = global.Symbol.split,
1020 $$toStringTag = global.Symbol.toStringTag;
1022 //----------------------------------------
1023 //
7 Abstract Operations
1024 //----------------------------------------
1026 //----------------------------------------
1027 //
7.1 Type Conversion
1028 //----------------------------------------
1030 //
7.1.1 ToPrimitive ( input [, PreferredType] )
1031 // just use valueOf()
1033 //
7.1.2 ToBoolean ( argument )
1034 // just use Boolean()
1036 //
7.1.3 ToNumber ( argument )
1037 // just use Number()
1039 //
7.1.4 ToInteger ( argument )
1040 function ToInteger(n) {
1042 if ($isNaN(n)) return
0;
1043 if (n ===
0 || n === Infinity || n === -Infinity) return n;
1044 return ((n <
0) ? -
1 :
1) * floor(abs(n));
1047 //
7.1.5 ToInt32 ( argument )
1048 function ToInt32(v) { return v
>> 0; }
1050 //
7.1.6 ToUint32 ( argument )
1051 function ToUint32(v) { return v
>>> 0; }
1053 //
7.1.7 ToInt16 ( argument )
1054 function ToInt16(v) { return (v <<
16)
>> 16; }
1056 //
7.1.8 ToUint16 ( argument )
1057 function ToUint16(v) { return v &
0xFFFF; }
1059 //
7.1.9 ToInt8 ( argument )
1060 function ToInt8(v) { return (v <<
24)
>> 24; }
1062 //
7.1.10 ToUint8 ( argument )
1063 function ToUint8(v) { return v &
0xFF; }
1065 //
7.1.11 ToUint8Clamp ( argument )
1066 function ToUint8Clamp(argument) {
1067 var number = Number(argument);
1068 if ($isNaN(number)) return
0;
1069 if (number <=
0) return
0;
1070 if (number
>=
255) return
255;
1071 var f = floor(number);
1072 if ((f +
0.5) < number) return f +
1;
1073 if (number < (f +
0.5)) return f;
1074 if (f %
2) return f +
1;
1078 //
7.1.12 ToString ( argument )
1079 // just use String()
1081 //
7.1.13 ToObject ( argument )
1082 function ToObject(v) {
1083 if (v === null || v === undefined) throw TypeError();
1087 //
7.1.14 ToPropertyKey ( argument )
1088 function ToPropertyKey(v) {
1092 //
7.1.15 ToLength ( argument )
1093 function ToLength(v) {
1094 var len = ToInteger(v);
1095 if (len <=
0) return
0;
1096 if (len === Infinity) return
0x20000000000000 -
1; //
2^
53-
1
1097 return min(len,
0x20000000000000 -
1); //
2^
53-
1
1100 //
7.1.16 CanonicalNumericIndexString ( argument )
1102 //----------------------------------------
1103 //
7.2 Testing and Comparison Operations
1104 //----------------------------------------
1106 //
7.2.1 RequireObjectCoercible ( argument )
1107 //
7.2.2 IsArray ( argument )
1109 //
7.2.3 IsCallable ( argument )
1110 function IsCallable(o) { return typeof o === 'function'; }
1112 //
7.2.4 IsConstructor ( argument )
1113 function IsConstructor(o) {
1114 // Hacks for Safari
7 TypedArray XXXConstructor objects
1115 if (/Constructor/.test(Object.prototype.toString.call(o))) return true;
1116 if (/Function/.test(Object.prototype.toString.call(o))) return true;
1117 // TODO: Can this be improved on?
1118 return typeof o === 'function';
1121 //
7.2.5 IsExtensible (O)
1122 //
7.2.6 IsInteger ( argument )
1124 //
7.2.7 IsPropertyKey ( argument )
1125 function IsPropertyKey(argument) {
1126 if (Type(argument) === 'string') return true;
1127 if (Type(argument) === 'symbol') return true;
1131 //
7.2.8 IsRegExp ( argument )
1132 //
7.2.5 IsConstructor ( argument )
1134 //
7.2.9 SameValue(x, y)
1135 function SameValue(x, y) {
1136 if (typeof x !== typeof y) return false;
1141 if (x !== x && y !== y) return true;
1142 if (x ===
0 && y ===
0) return
1/x ===
1/y;
1152 //
7.2.10 SameValueZero(x, y)
1153 function SameValueZero(x, y) {
1154 if (typeof x !== typeof y) return false;
1159 if (x !== x && y !== y) return true;
1169 //----------------------------------------
1170 //
7.3 Operations on Objects
1171 //----------------------------------------
1174 // - just use o.p or o[p]
1176 //
7.3.2 GetV (V, P)
1177 function GetV(v, p) {
1178 var o = ToObject(v);
1182 //
7.3.3 Set (O, P, V, Throw)
1183 // - just use o.p = v or o[p] = v
1188 //
7.3.9 GetMethod (O, P)
1189 function GetMethod(o, p) {
1190 var func = GetV(o, p);
1191 if (func === undefined || func === null) return undefined;
1192 if (!IsCallable(func)) throw TypeError();
1196 //
7.3.10 HasProperty (O, P)
1197 function HasProperty(o, p) {
1199 if (Object.prototype.hasOwnProperty.call(o, p)) return true;
1200 if (Type(o) !== 'object') return false;
1201 o = Object.getPrototypeOf(o);
1206 //
7.3.11 HasOwnProperty (O, P)
1207 function HasOwnProperty(o, p) {
1208 return Object.prototype.hasOwnProperty.call(o, p);
1211 //----------------------------------------
1212 //
7.4 Operations on Iterator Objects
1213 //----------------------------------------
1215 //
7.4.1 GetIterator ( obj, method )
1216 function GetIterator(obj, method) {
1217 if (arguments.length <
2)
1218 method = GetMethod(obj, $$iterator);
1219 var iterator = method.call(obj);
1220 if (Type(iterator) !== 'object') throw TypeError();
1224 //
7.4.2 IteratorNext ( iterator, value )
1225 function IteratorNext(iterator, value) {
1226 if (arguments.length <
2)
1227 var result = iterator.next();
1229 result = iterator.next(value);
1230 if (Type(result) !== 'object') throw TypeError();
1234 //
7.4.3 IteratorComplete ( iterResult )
1235 function IteratorComplete(iterResult) {
1236 console.assert(Type(iterResult) === 'object');
1237 return Boolean(iterResult.done);
1240 //
7.4.4 IteratorValue ( iterResult )
1241 function IteratorValue(iterResult) {
1242 console.assert(Type(iterResult) === 'object');
1243 return iterResult.value;
1246 //
7.4.5 IteratorStep ( iterator )
1247 function IteratorStep( iterator, value ) {
1248 var result = IteratorNext(iterator, value);
1249 var done = result['done'];
1250 if (Boolean(done) === true) return false;
1254 //
7.4.6 IteratorClose( iterator, completion )
1255 function IteratorClose( iterator, completion ) {
1256 console.assert(Type(iterator) === 'object');
1257 var _return = GetMethod(iterator, 'return');
1258 if (_return === undefined) return completion;
1260 var innerResult = _return[iterator]();
1262 // TODO: If completion.[[type]] is throw, return completion
1265 if (Type(innerResult) !== 'object') throw TypeError();
1269 //
7.4.7 CreateIterResultObject (value, done)
1270 function CreateIterResultObject(value, done) {
1271 console.assert(Type(done) === 'boolean');
1273 obj["value"] = value;
1278 //
7.4.8 CreateListIterator (list)
1279 //
7.4.8.1 ListIterator next( )
1280 //
7.4.9 CreateCompoundIterator ( iterator1, iterator2 )
1281 //
7.4.9.1 CompoundIterator next( )
1283 //----------------------------------------
1284 //
8 Executable Code and Execution Contexts
1285 //----------------------------------------
1287 //----------------------------------------
1288 //
8.4 Jobs and Job Queues
1289 //----------------------------------------
1291 //
8.4.1 EnqueueJob ( queueName, job, arguments)
1292 function EnqueueJob(queueName, job, args) {
1293 var fn = function() { job.apply(undefined, args); };
1297 //
8.4.2 NextJob result
1298 function NextJob(result) {
1302 //----------------------------------------
1303 //
9 Ordinary and Exotic Objects Behaviors
1304 //----------------------------------------
1306 //
9.1.11 [[Enumerate]] ()
1307 function Enumerate(obj) {
1309 if (Object(obj) !== obj) return e;
1310 var visited = new Set;
1311 while (obj !== null) {
1312 Object.getOwnPropertyNames(obj).forEach(function(name) {
1313 if (!visited.has(name)) {
1314 var desc = Object.getOwnPropertyDescriptor(obj, name);
1317 if (desc.enumerable) e.push(name);
1321 obj = Object.getPrototypeOf(obj);
1323 return e[$$iterator]();
1326 //
9.1.12 [[OwnPropertyKeys]] ( )
1327 function OwnPropertyKeys(o) {
1328 return Object.getOwnPropertyNames(o);
1331 //
9.1.13 ObjectCreate(proto, internalSlotsList)
1332 function ObjectCreate(proto, internalSlotsList) {
1333 return Object.create(proto, internalSlotsList);
1336 // ---------------------------------------
1337 //
19 Fundamental Objects
1338 // ---------------------------------------
1340 // ---------------------------------------
1341 //
19.1 Object Objects
1342 // ---------------------------------------
1344 //
19.1.1 The Object Constructor
1345 //
19.1.1.1 Object ( [ value ] )
1346 //
19.1.2 Properties of the Object Constructor
1347 //
19.1.2.1 Object.assign ( target, ...sources )
1350 function assign(target, /*...*/sources) {
1351 var to = ToObject(target);
1352 if (arguments.length <
2) return to;
1354 var sourcesIndex =
1;
1355 while (sourcesIndex < arguments.length) {
1356 var nextSource = arguments[sourcesIndex++];
1357 if (nextSource === undefined || nextSource === null) {
1360 var from = ToObject(nextSource);
1361 keys = OwnPropertyKeys(from);
1363 for (var keysIndex =
0; keysIndex < keys.length; ++keysIndex) {
1364 var nextKey = keys[keysIndex];
1365 var desc = Object.getOwnPropertyDescriptor(from, nextKey);
1366 if (desc !== undefined && desc.enumerable) {
1367 var propValue = from[nextKey];
1368 to[nextKey] = propValue;
1375 //
19.1.2.2 Object.create ( O [ , Properties ] )
1376 //
19.1.2.3 Object.defineProperties ( O, Properties )
1377 //
19.1.2.4 Object.defineProperty ( O, P, Attributes )
1378 //
19.1.2.5 Object.freeze ( O )
1379 //
19.1.2.6 Object.getOwnPropertyDescriptor ( O, P )
1382 var nativeSymbols = (typeof global.Symbol() === 'symbol'),
1383 $getOwnPropertyNames = Object.getOwnPropertyNames,
1384 $keys = Object.keys,
1385 $window_names = (typeof window === 'object' ? $getOwnPropertyNames(window) : []);
1387 function isStringKey(k) { return !symbolForKey(k); }
1389 //
19.1.2.7 Object.getOwnPropertyNames ( O )
1391 Object, 'getOwnPropertyNames',
1392 function getOwnPropertyNames(o) {
1393 if (Object.prototype.toString.call(o) === '[object Window]') {
1394 // Workaround for cross-realm calling by IE itself.
1395 // https://github.com/inexorabletash/polyfill/issues/
96
1397 return $getOwnPropertyNames(o).filter(isStringKey);
1399 return $window_names.slice();
1402 return $getOwnPropertyNames(o).filter(isStringKey);
1405 //
19.1.2.8 Object.getOwnPropertySymbols ( O )
1407 Object, 'getOwnPropertySymbols',
1408 function getOwnPropertySymbols(o) {
1409 return $getOwnPropertyNames(o).filter(symbolForKey).map(symbolForKey);
1412 //
19.1.2.14 Object.keys ( O )
1416 return $keys(o).filter(isStringKey);
1420 //
19.1.2.9 Object.getPrototypeOf ( O )
1421 //
19.1.2.10 Object.is ( value1, value2 )
1424 function is(value1, value2) {
1425 return SameValue(value1, value2);
1428 //
19.1.2.11 Object.isExtensible ( O )
1429 //
19.1.2.12 Object.isFrozen ( O )
1430 //
19.1.2.13 Object.isSealed ( O )
1432 //
19.1.2.14 Object.keys ( O )
1435 //
19.1.2.15 Object.preventExtensions ( O )
1436 //
19.1.2.16 Object.prototype
1437 //
19.1.2.17 Object.seal ( O )
1439 //
19.1.2.18 Object.setPrototypeOf ( O, proto )
1441 Object, 'setPrototypeOf',
1442 function setPrototypeOf(o, proto) {
1443 if (Type(o) !== 'object') throw TypeError();
1444 if (Type(proto) !== 'object' && Type(proto) !== 'null') throw TypeError();
1445 o.__proto__ = proto;
1450 //
19.1.3 Properties of the Object Prototype Object
1451 //
19.1.3.1 Object.prototype.constructor
1452 //
19.1.3.2 Object.prototype.hasOwnProperty ( V )
1453 //
19.1.3.3 Object.prototype.isPrototypeOf ( V )
1454 //
19.1.3.4 Object.prototype.propertyIsEnumerable ( V )
1455 //
19.1.3.5 Object.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1456 //
19.1.3.6 Object.prototype.toString ( )
1457 hook(Object.prototype, 'toString',
1459 var o = strict(this);
1460 if (o === Object(o) && $$toStringTag in o) {
1461 return '[object ' + o[$$toStringTag] + ']';
1466 //
19.1.3.7 Object.prototype.valueOf ( )
1467 //
19.1.4 Properties of Object Instances
1469 // ---------------------------------------
1470 //
19.2 Function Objects
1471 // ---------------------------------------
1473 //
19.2.1 The Function Constructor
1474 //
19.2.1.1 Function ( p1, p2, … , pn, body )
1475 //
19.2.2 Properties of the Function Constructor
1476 //
19.2.2.1 Function.length
1477 //
19.2.2.2 Function.prototype
1478 //
19.2.3 Properties of the Function Prototype Object
1479 //
19.2.3.1 Function.prototype.apply ( thisArg, argArray )
1480 //
19.2.3.2 Function.prototype.bind ( thisArg , ...args)
1481 //
19.2.3.3 Function.prototype.call (thisArg , ...args)
1482 //
19.2.3.4 Function.prototype.constructor
1483 //
19.2.3.5 Function.prototype.toString ( )
1484 //
19.2.3.6 Function.prototype[@@hasInstance] ( V )
1485 //
19.2.4 Function Instances
1488 //
19.2.4.3 prototype
1490 // (No polyfillable changes from ES5)
1492 // ---------------------------------------
1493 //
19.3 Boolean Objects
1494 // ---------------------------------------
1496 //
19.3.1 The Boolean Constructor
1497 //
19.3.1.1 Boolean ( value )
1498 //
19.3.2 Properties of the Boolean Constructor
1499 //
19.3.2.1 Boolean.prototype
1500 //
19.3.3 Properties of the Boolean Prototype Object
1501 //
19.3.3.1 Boolean.prototype.constructor
1502 //
19.3.3.2 Boolean.prototype.toString ( )
1503 //
19.3.3.3 Boolean.prototype.valueOf ( )
1504 //
19.3.4 Properties of Boolean Instances
1506 // (No polyfillable changes from ES5)
1508 // ---------------------------------------
1509 //
19.4 Symbol Objects
1510 // ---------------------------------------
1512 // Moved earlier in this script, so that other polyfills can depend on them.
1514 //
19.4.3.4 Symbol.prototype [ @@toStringTag ]
1515 define(global.Symbol.prototype, global.Symbol.toStringTag, 'Symbol');
1517 // ---------------------------------------
1518 //
19.5 Error Objects
1519 // ---------------------------------------
1521 //
19.5.1 The Error Constructor
1522 //
19.5.1.1 Error ( message )
1523 //
19.5.1.2 new Error( ...argumentsList )
1524 //
19.5.2 Properties of the Error Constructor
1525 //
19.5.2.1 Error.prototype
1526 //
19.5.3 Properties of the Error Prototype Object
1527 //
19.5.3.1 Error.prototype.constructor
1528 //
19.5.3.2 Error.prototype.message
1529 //
19.5.3.3 Error.prototype.name
1530 //
19.5.3.4 Error.prototype.toString ( )
1531 //
19.5.4 Properties of Error Instances
1532 //
19.5.5 Native Error Types Used in This Standard
1533 //
19.5.5.1 EvalError
1534 //
19.5.5.2 RangeError
1535 //
19.5.5.3 ReferenceError
1536 //
19.5.5.4 SyntaxError
1537 //
19.5.5.5 TypeError
1538 //
19.5.5.6 URIError
1539 //
19.5.6 NativeError Object Structure
1540 //
19.5.6.1 NativeError Constructors
1541 //
19.5.6.1.1 NativeError ( message )
1542 //
19.5.6.1.2 new NativeError ( ...argumentsList )
1543 //
19.5.6.2 Properties of the NativeError Constructors
1544 //
19.5.6.2.1 NativeError.prototype
1545 //
19.5.6.3 Properties of the NativeError Prototype Objects
1546 //
19.5.6.4 Properties of NativeError Instances
1548 // (No polyfillable changes from ES5)
1550 // ---------------------------------------
1551 //
20 Numbers and Dates
1552 // ---------------------------------------
1554 // ---------------------------------------
1555 //
20.1 Number Objects
1556 // ---------------------------------------
1558 //
20.1.1 The Number Constructor
1559 //
20.1.1.1 Number ( [ value ] )
1560 //
20.1.1.2 new Number ( ...argumentsList )
1561 //
20.1.2 Properties of the Number Constructor
1563 //
20.1.2.1 Number.EPSILON
1568 for (next =
1;
1 + next !==
1; next = next /
2)
1573 //
20.1.2.2 Number.isFinite ( number )
1576 function isFinite(number) {
1577 if (Type(number) !== 'number') return false;
1578 if (number !== number || number === +Infinity || number === -Infinity) return false;
1582 //
20.1.2.3 Number.isInteger ( number )
1584 Number, 'isInteger',
1585 function isInteger(number) {
1586 if (Type(number) !== 'number') return false;
1587 if (number !== number || number === +Infinity || number === -Infinity) return false;
1588 var integer = ToInteger(number);
1589 if (integer !== number) return false;
1593 //
20.1.2.4 Number.isNaN ( number )
1596 function isNaN(number) {
1597 if (Type(number) !== 'number') return false;
1598 if (number !== number) return true;
1602 //
20.1.2.5 Number.isSafeInteger ( number )
1604 Number, 'isSafeInteger',
1605 function isSafeInteger(number) {
1606 if (Type(number) !== 'number') return false;
1607 if (number !== number || number === +Infinity || number === -Infinity) return false;
1608 var integer = ToInteger(number);
1609 if (integer !== number) return false;
1610 if (abs(integer) <= (
0x20000000000000 -
1)) //
2^
53-
1
1615 //
20.1.2.6 Number.MAX_SAFE_INTEGER
1617 Number, 'MAX_SAFE_INTEGER',
1618 9007199254740991); //
2^
53-
1
1620 //
20.1.2.7 Number.MAX_VALUE
1622 //
20.1.2.8 Number.MIN_SAFE_INTEGER
1624 Number, 'MIN_SAFE_INTEGER',
1625 -
9007199254740991); // -
2^
53+
1
1627 //
20.1.2.9 Number.MIN_VALUE
1628 //
20.1.2.10 Number.NaN
1629 //
20.1.2.11 Number.NEGATIVE_INFINITY
1631 //
20.1.2.12 Number.parseFloat ( string )
1632 define(Number, 'parseFloat', $parseFloat);
1634 //
20.1.2.13 Number.parseInt ( string, radix )
1635 define(Number, 'parseInt', $parseInt);
1637 //
20.1.2.14 Number.POSITIVE_INFINITY
1638 //
20.1.2.15 Number.prototype
1640 //
20.1.3 Properties of the Number Prototype Object
1641 //
20.1.3.1 Number.prototype.constructor
1642 //
20.1.3.2 Number.prototype.toExponential ( fractionDigits )
1643 //
20.1.3.3 Number.prototype.toFixed ( fractionDigits )
1644 //
20.1.3.4 Number.prototype.toLocaleString( [ reserved1 [ , reserved2 ] ])
1645 //
20.1.3.5 Number.prototype.toPrecision ( precision )
1646 //
20.1.3.6 Number.prototype.toString ( [ radix ] )
1647 //
20.1.3.7 Number.prototype.valueOf ( )
1648 //
20.1.4 Properties of Number Instances
1650 // ---------------------------------------
1651 //
20.2 The Math Object
1652 // ---------------------------------------
1654 //
20.2.1 Value Properties of the Math Object
1656 //
20.2.1.2 Math.LN10
1657 //
20.2.1.3 Math.LN2
1658 //
20.2.1.4 Math.LOG10E
1659 //
20.2.1.5 Math.LOG2E
1661 //
20.2.1.7 Math.SQRT1_2
1662 //
20.2.1.8 Math.SQRT2
1664 //
20.2.1.9 Math [ @@toStringTag ]
1665 define(Math, $$toStringTag, 'Math');
1667 //
20.2.2 Function Properties of the Math Object
1668 //
20.2.2.1 Math.abs ( x )
1669 //
20.2.2.2 Math.acos ( x )
1671 //
20.2.2.3 Math.acosh(x)
1676 return log(x + sqrt(x * x -
1));
1679 //
20.2.2.4 Math.asin ( x )
1681 //
20.2.2.5 Math.asinh( x )
1686 if (SameValue(x, -
0)) {
1689 var s = sqrt(x * x +
1);
1690 return (s === -x) ? log(
0) : log(x + s);
1693 //
20.2.2.6 Math.atan ( x )
1695 //
20.2.2.7 Math.atanh( x )
1700 return (x ===
0) ? x : log((
1 + x) / (
1 - x)) /
2;
1703 //
20.2.2.8 Math.atan2 ( y, x )
1705 //
20.2.2.9 Math.cbrt ( x )
1713 var r = pow(abs(x),
1/
3);
1715 return r + (r * (t-r) / (
2*r + t));
1718 //
20.2.2.10 Math.ceil ( x )
1720 //
20.2.2.11 Math.clz32 ( x )
1725 return (x &
0xf0) ? (x &
0x80 ?
0 : x &
0x40 ?
1 : x &
0x20 ?
2 :
3) :
1726 (x &
0x08 ?
4 : x &
0x04 ?
5 : x &
0x02 ?
6 : x &
0x01 ?
7 :
8);
1729 return x &
0xff000000 ? clz8(x
>> 24) :
1730 x &
0xff0000 ? clz8(x
>> 16) +
8 :
1731 x &
0xff00 ? clz8(x
>> 8) +
16 : clz8(x) +
24;
1736 //
20.2.2.12 Math.cos ( x )
1738 //
20.2.2.13 Math.cosh ( x )
1743 return (pow(E, x) + pow(E, -x)) /
2;
1746 //
20.2.2.14 Math.exp ( x )
1748 //
20.2.2.15 Math.expm1 ( x )
1753 // from: http://www.johndcook.com/cpp_log1p.html
1754 if (SameValue(x, -
0)) {
1756 } else if (abs(x) <
1e-5) {
1757 return x +
0.5 * x * x; // two terms of Taylor expansion
1763 //
20.2.2.16 Math.floor ( x )
1765 //
20.2.2.17 Math.fround ( x )
1768 function fround(x) {
1772 if (
1/x === +Infinity ||
1/x === -Infinity || x === +Infinity || x === -Infinity) {
1775 return (new Float32Array([x]))[
0];
1778 //
20.2.2.18 Math.hypot ( value1 [, value2 [ ... ] ] )
1783 var m =
0, sawNaN = false;
1784 for (var i =
0; i < arguments.length; ++i) {
1785 var n = abs(Number(arguments[i]));
1786 if (n === Infinity) return n;
1787 if (n !== n) sawNaN = true;
1791 if (sawNaN) return NaN;
1792 if (m ===
0) return +
0;
1794 for (i =
0; i < values.length; ++i) {
1795 var r = values[i] / m;
1798 return m * sqrt(sum);
1801 //
20.2.2.19 Math.imul ( x, y )
1804 function imul(x, y) {
1805 var a = ToUint32(x);
1806 var b = ToUint32(y);
1807 // (slow but accurate)
1808 var ah = (a
>>> 16) &
0xffff;
1809 var al = a &
0xffff;
1810 var bh = (b
>>> 16) &
0xffff;
1811 var bl = b &
0xffff;
1812 return ((al * bl) + (((ah * bl + al * bh) <<
16)
>>> 0)|
0);
1813 }, ('imul' in Math && Math.imul(
1,
0x80000000) ===
0) // Safari
7 bug
1816 //
20.2.2.20 Math.log ( x )
1818 //
20.2.2.21 Math.log1p ( x )
1823 // from: http://www.johndcook.com/cpp_expm1.html
1826 } else if (SameValue(x, -
0)) {
1828 } else if (abs(x)
> 1e-4) {
1831 return (-
0.5 * x +
1) * x;
1835 //
20.2.2.22 Math.log10 ( x )
1840 return log(x) * LOG10E;
1843 //
20.2.2.23 Math.log2 ( x )
1848 return log(x) * LOG2E;
1851 //
20.2.2.24 Math.max ( value1, value2 , ...values )
1852 //
20.2.2.25 Math.min ( value1, value2 , ...values )
1853 //
20.2.2.26 Math.pow ( x, y )
1854 //
20.2.2.27 Math.random ( )
1855 //
20.2.2.28 Math.round ( x )
1857 //
20.2.2.29 Math.sign(x)
1862 return x <
0 ? -
1 : x
> 0 ?
1 : x;
1865 //
20.2.2.30 Math.sin ( x )
1867 //
20.2.2.31 Math.sinh( x )
1872 return SameValue(x, -
0) ? x : (pow(E, x) - pow(E, -x)) /
2;
1875 //
20.2.2.32 Math.sqrt ( x )
1876 //
20.2.2.33 Math.tan ( x )
1878 //
20.2.2.34 Math.tanh ( x )
1883 var n = pow(E,
2 * x) -
1,
1884 d = pow(E,
2 * x) +
1;
1885 if (SameValue(x, -
0))
1887 return (n === d) ?
1 : n / d; // Handle Infinity/Infinity
1890 //
20.2.2.35 Math.trunc ( x )
1895 return $isNaN(x) ? NaN :
1896 x <
0 ? ceil(x) : floor(x);
1899 // ---------------------------------------
1900 //
20.3 Date Objects
1901 // ---------------------------------------
1903 //
20.3.1 Overview of Date Objects and Definitions of Abstract Operations
1904 //
20.3.1.1 Time Values and Time Range
1905 //
20.3.1.2 Day Number and Time within Day
1906 //
20.3.1.3 Year Number
1907 //
20.3.1.4 Month Number
1908 //
20.3.1.5 Date Number
1909 //
20.3.1.6 Week Day
1910 //
20.3.1.7 Local Time Zone Adjustment
1911 //
20.3.1.8 Daylight Saving Time Adjustment
1912 //
20.3.1.9 Local Time
1913 //
20.3.1.10 Hours, Minutes, Second, and Milliseconds
1914 //
20.3.1.11 MakeTime (hour, min, sec, ms)
1915 //
20.3.1.12 MakeDay (year, month, date)
1916 //
20.3.1.13 MakeDate (day, time)
1917 //
20.3.1.14 TimeClip (time)
1918 //
20.3.1.15 Date Time String Format
1919 //
20.3.1.15.1 Extended years
1920 //
20.3.2 The Date Constructor
1921 //
20.3.2.1 Date ( year, month [, date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
1922 //
20.3.2.2 Date ( value )
1923 //
20.3.2.3 Date ( )
1924 //
20.3.3 Properties of the Date Constructor
1925 //
20.3.3.1 Date.now ( )
1926 //
20.3.3.2 Date.parse (string)
1927 //
20.3.3.3 Date.prototype
1928 //
20.3.3.4 Date.UTC ( year, month [ , date [ , hours [ , minutes [ , seconds [ , ms ] ] ] ] ] )
1929 //
20.3.4 Properties of the Date Prototype Object
1930 //
20.3.4.1 Date.prototype.constructor
1931 //
20.3.4.2 Date.prototype.getDate ( )
1932 //
20.3.4.3 Date.prototype.getDay ( )
1933 //
20.3.4.4 Date.prototype.getFullYear ( )
1934 //
20.3.4.5 Date.prototype.getHours ( )
1935 //
20.3.4.6 Date.prototype.getMilliseconds ( )
1936 //
20.3.4.7 Date.prototype.getMinutes ( )
1937 //
20.3.4.8 Date.prototype.getMonth ( )
1938 //
20.3.4.9 Date.prototype.getSeconds ( )
1939 //
20.3.4.10 Date.prototype.getTime ( )
1940 //
20.3.4.11 Date.prototype.getTimezoneOffset ( )
1941 //
20.3.4.12 Date.prototype.getUTCDate ( )
1942 //
20.3.4.13 Date.prototype.getUTCDay ( )
1943 //
20.3.4.14 Date.prototype.getUTCFullYear ( )
1944 //
20.3.4.15 Date.prototype.getUTCHours ( )
1945 //
20.3.4.16 Date.prototype.getUTCMilliseconds ( )
1946 //
20.3.4.17 Date.prototype.getUTCMinutes ( )
1947 //
20.3.4.18 Date.prototype.getUTCMonth ( )
1948 //
20.3.4.19 Date.prototype.getUTCSeconds ( )
1949 //
20.3.4.20 Date.prototype.setDate ( date )
1950 //
20.3.4.21 Date.prototype.setFullYear ( year [ , month [ , date ] ] )
1951 //
20.3.4.22 Date.prototype.setHours ( hour [ , min [ , sec [ , ms ] ] ] )
1952 //
20.3.4.23 Date.prototype.setMilliseconds ( ms )
1953 //
20.3.4.24 Date.prototype.setMinutes ( min [ , sec [ , ms ] ] )
1954 //
20.3.4.25 Date.prototype.setMonth ( month [ , date ] )
1955 //
20.3.4.26 Date.prototype.setSeconds ( sec [ , ms ] )
1956 //
20.3.4.27 Date.prototype.setTime ( time )
1957 //
20.3.4.28 Date.prototype.setUTCDate ( date )
1958 //
20.3.4.29 Date.prototype.setUTCFullYear ( year [ , month [ , date ] ] )
1959 //
20.3.4.30 Date.prototype.setUTCHours ( hour [ , min [ , sec [ , ms ] ] ] )
1960 //
20.3.4.31 Date.prototype.setUTCMilliseconds ( ms )
1961 //
20.3.4.32 Date.prototype.setUTCMinutes ( min [ , sec [, ms ] ] )
1962 //
20.3.4.33 Date.prototype.setUTCMonth ( month [ , date ] )
1963 //
20.3.4.34 Date.prototype.setUTCSeconds ( sec [ , ms ] )
1964 //
20.3.4.35 Date.prototype.toDateString ( )
1965 //
20.3.4.36 Date.prototype.toISOString ( )
1966 //
20.3.4.37 Date.prototype.toJSON ( key )
1967 //
20.3.4.38 Date.prototype.toLocaleDateString ( [ reserved1 [ , reserved2 ] ] )
1968 //
20.3.4.39 Date.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
1969 //
20.3.4.40 Date.prototype.toLocaleTimeString ( [ reserved1 [ , reserved2 ] ] )
1970 //
20.3.4.41 Date.prototype.toString ( )
1971 //
20.3.4.42 Date.prototype.toTimeString ( )
1972 //
20.3.4.43 Date.prototype.toUTCString ( )
1973 //
20.3.4.44 Date.prototype.valueOf ( )
1974 //
20.3.4.45 Date.prototype [ @@toPrimitive ] ( hint )
1975 //
20.3.5 Properties of Date Instances
1977 // (No polyfillable changes from ES5)
1979 // ---------------------------------------
1980 //
21 Text Processing
1981 // ---------------------------------------
1983 var string_regexp_dispatch = (function() {
1984 var faux = {}, secret = Symbol();
1985 faux[Symbol.match] = function() { return secret; };
1986 return (
"").match(faux) === secret;
1989 //
21.1 String Objects
1990 //
21.1.1 The String Constructor
1991 //
21.1.1.1 String ( value )
1992 //
21.1.2 Properties of the String Constructor
1993 //
21.1.2.1 String.fromCharCode ( ...codeUnits )
1995 //
21.1.2.2 String.fromCodePoint ( ...codePoints )
1997 String, 'fromCodePoint',
1998 function fromCodePoint(/*...codePoints*/) {
1999 var codePoints = arguments,
2000 length = codePoints.length,
2003 while (nextIndex < length) {
2004 var next = codePoints[nextIndex];
2005 var nextCP = Number(next);
2006 if (!SameValue(nextCP, ToInteger(nextCP)) ||
2007 nextCP <
0 || nextCP
> 0x10FFFF) {
2008 throw RangeError('Invalid code point ' + nextCP);
2010 if (nextCP <
0x10000) {
2011 elements.push(String.fromCharCode(nextCP));
2014 elements.push(String.fromCharCode((nextCP
>> 10) +
0xD800));
2015 elements.push(String.fromCharCode((nextCP %
0x400) +
0xDC00));
2019 return elements.join('');
2022 //
21.1.2.3 String.prototype
2024 //
21.1.2.4 String.raw ( template , ...substitutions )
2027 function raw(template /*, ...substitutions*/) {
2028 var substitutions = [].slice.call(arguments,
1);
2030 var cooked = Object(template);
2031 var rawValue = cooked['raw'];
2032 var raw = Object(rawValue);
2033 var len = raw['length'];
2034 var literalSegments = ToLength(len);
2035 if (literalSegments <=
0) return '';
2036 var stringElements = [];
2039 var next = raw[nextIndex];
2040 var nextSeg = String(next);
2041 stringElements.push(nextSeg);
2042 if (nextIndex +
1 === literalSegments)
2043 return stringElements.join('');
2044 next = substitutions[nextIndex];
2045 var nextSub = String(next);
2046 stringElements.push(nextSub);
2047 nextIndex = nextIndex +
1;
2051 // See https://githib.com/inexorabletash/uate for a more useful version.
2053 //
21.1.3 Properties of the String Prototype Object
2054 //
21.1.3.1 String.prototype.charAt ( pos )
2055 //
21.1.3.2 String.prototype.charCodeAt ( pos )
2057 //
21.1.3.3 String.prototype.codePointAt ( pos )
2059 String.prototype, 'codePointAt',
2060 function codePointAt(pos) {
2061 var o = strict(this);
2063 var position = ToInteger(pos);
2064 var size = s.length;
2065 if (position <
0 || position
>= size) return undefined;
2066 var first = s.charCodeAt(position);
2067 if (first <
0xD800 || first
> 0xDBFF || position +
1 === size) return first;
2068 var second = s.charCodeAt(position +
1);
2069 if (second <
0xDC00 || second
> 0xDFFF) return first;
2070 return ((first -
0xD800) *
1024) + (second -
0xDC00) +
0x10000;
2073 //
21.1.3.4 String.prototype.concat ( ...args )
2074 //
21.1.3.5 String.prototype.constructor
2076 //
21.1.3.6 String.prototype.endsWith ( searchString [ , endPosition] )
2078 String.prototype, 'endsWith',
2079 function endsWith(searchString) {
2080 var endPosition = arguments[
1];
2082 var o = strict(this);
2084 var searchStr = String(searchString);
2086 var pos = (endPosition === undefined) ? len : ToInteger(endPosition);
2087 var end = min(max(pos,
0), len);
2088 var searchLength = searchStr.length;
2089 var start = end - searchLength;
2090 if (start <
0) return false;
2091 if (s.substring(start, start + searchLength) === searchStr) return true;
2095 //
21.1.3.7 String.prototype.includes ( searchString [ , position ] )
2097 String.prototype, 'includes',
2098 function includes(searchString) {
2099 var position = arguments[
1];
2101 var o = strict(this);
2103 var searchStr = String(searchString);
2104 var pos = ToInteger(position);
2106 var start = min(max(pos,
0), len);
2107 return s.indexOf(searchStr, start) !== -
1;
2110 //
21.1.3.8 String.prototype.indexOf ( searchString [ , position ] )
2111 //
21.1.3.9 String.prototype.lastIndexOf ( searchString [ , position ] )
2112 //
21.1.3.10 String.prototype.localeCompare ( that [, reserved1 [ , reserved2 ] ] )
2113 //
21.1.3.11 String.prototype.match ( regexp )
2115 String.prototype, 'match',
2116 function match(regexp) {
2117 var o = strict(this);
2119 if (HasProperty(regexp, $$match)) var rx = regexp;
2120 else rx = new RegExp(regexp);
2121 return rx[$$match](s);
2122 }, !string_regexp_dispatch);
2124 //
21.1.3.12 String.prototype.normalize ( [ form ] )
2126 // Not practical due to table sizes; if needed, pull in:
2127 // https://github.com/walling/unorm/
2129 //
21.1.3.13 String.prototype.repeat ( count )
2131 String.prototype, 'repeat',
2132 function repeat(count) {
2133 var o = strict(this);
2135 var n = ToInteger(count);
2136 if (n <
0) throw RangeError();
2137 if (n === Infinity) throw RangeError();
2138 var t = new Array(n +
1).join(s);
2142 //
21.1.3.14 String.prototype.replace (searchValue, replaceValue )
2144 String.prototype, 'replace',
2145 function replace(searchValue, replaceValue) {
2146 var o = strict(this);
2147 if (HasProperty(searchValue, $$replace))
2148 return searchValue[$$replace](o, replaceValue);
2149 return orig_replace.call(o, searchValue, replaceValue);
2150 }, !string_regexp_dispatch);
2152 //
21.1.3.15 String.prototype.search ( regexp )
2154 String.prototype, 'search',
2155 function search(regexp) {
2156 var o = strict(this);
2157 var string = String(o);
2158 if (HasProperty(regexp, $$search)) var rx = regexp;
2159 else rx = new RegExp(regexp);
2160 return rx[$$search](string);
2161 }, !string_regexp_dispatch);
2163 //
21.1.3.16 String.prototype.slice ( start, end )
2164 //
21.1.3.17 String.prototype.split ( separator, limit )
2166 String.prototype, 'split',
2167 function split(separator, limit) {
2168 var o = strict(this);
2169 if (HasProperty(separator, $$split))
2170 return separator[$$split](o, limit);
2171 return orig_split.call(o, separator, limit);
2172 }, !string_regexp_dispatch);
2174 //
21.1.3.18 String.prototype.startsWith ( searchString [, position ] )
2176 String.prototype, 'startsWith',
2177 function startsWith(searchString) {
2178 var position = arguments[
1];
2180 var o = strict(this);
2182 var searchStr = String(searchString);
2183 var pos = ToInteger(position);
2185 var start = min(max(pos,
0), len);
2186 var searchLength = searchStr.length;
2187 if (searchLength + start
> len) return false;
2188 if (s.substring(start, start + searchLength) === searchStr) return true;
2192 //
21.1.3.19 String.prototype.substring ( start, end )
2193 //
21.1.3.20 String.prototype.toLocaleLowerCase ( [ reserved1 [ , reserved2 ] ] )
2194 //
21.1.3.21 String.prototype.toLocaleUpperCase ([ reserved1 [ , reserved2 ] ] )
2195 //
21.1.3.22 String.prototype.toLowerCase ( )
2196 //
21.1.3.23 String.prototype.toString ( )
2197 //
21.1.3.24 String.prototype.toUpperCase ( )
2198 //
21.1.3.25 String.prototype.trim ( )
2199 //
21.1.3.26 String.prototype.valueOf ( )
2201 //
21.1.3.27 String.prototype [ @@iterator ]( )
2203 String.prototype, $$iterator,
2204 function entries() {
2205 return CreateStringIterator(this, 'value');
2208 //
21.1.4 Properties of String Instances
2211 //
21.1.5 String Iterator Objects
2213 function StringIterator() {}
2215 //
21.1.5.1 CreateStringIterator Abstract Operation
2216 function CreateStringIterator(string, kind) {
2217 var s = String(string);
2218 var iterator = new StringIterator;
2219 set_internal(iterator, '[[IteratedString]]', s);
2220 set_internal(iterator, '[[StringIteratorNextIndex]]',
0);
2221 set_internal(iterator, '[[StringIterationKind]]', kind);
2225 //
21.1.5.2 The %StringIteratorPrototype% Object
2226 var $StringIteratorPrototype$ = Object.create($IteratorPrototype$);
2227 StringIterator.prototype = $StringIteratorPrototype$;
2229 //
21.1.5.2.1 %StringIteratorPrototype%.next ( )
2231 $StringIteratorPrototype$, 'next',
2233 var o = ToObject(this);
2234 var s = String(o['[[IteratedString]]']),
2235 index = o['[[StringIteratorNextIndex]]'],
2238 set_internal(o, '[[StringIteratorNextIndex]]', Infinity);
2239 return CreateIterResultObject(undefined, true);
2241 var cp = s.codePointAt(index);
2242 set_internal(o, '[[StringIteratorNextIndex]]', index + (cp
> 0xFFFF ?
2 :
1));
2243 return CreateIterResultObject(String.fromCodePoint(cp), false);
2246 //
21.1.5.2.2 %StringIteratorPrototype% [ @@toStringTag ]
2247 define($StringIteratorPrototype$, $$toStringTag, 'String Iterator');
2249 //
21.1.5.3 Properties of String Iterator Instances
2251 // ---------------------------------------
2252 //
21.2 RegExp (Regular Expression) Objects
2253 // ---------------------------------------
2256 //
21.2.2 Pattern Semantics
2257 //
21.2.2.1 Notation
2259 //
21.2.2.3 Disjunction
2260 //
21.2.2.4 Alternative
2262 //
21.2.2.6 Assertion
2263 //
21.2.2.7 Quantifier
2265 //
21.2.2.9 AtomEscape
2266 //
21.2.2.10 CharacterEscape
2267 //
21.2.2.11 DecimalEscape
2268 //
21.2.2.12 CharacterClassEscape
2269 //
21.2.2.13 CharacterClass
2270 //
21.2.2.14 ClassRanges
2271 //
21.2.2.15 NonemptyClassRanges
2272 //
21.2.2.16 NonemptyClassRangesNoDash
2273 //
21.2.2.17 ClassAtom
2274 //
21.2.2.18 ClassAtomNoDash
2275 //
21.2.2.19 ClassEscape
2276 //
21.2.3 The RegExp Constructor
2277 //
21.2.3.1 RegExp ( pattern, flags )
2278 //
21.2.3.2 new RegExp( ...argumentsList )
2279 //
21.2.3.3 Abstract Operations for the RegExp Constructor
2280 //
21.2.4 Properties of the RegExp Constructor
2281 //
21.2.4.1 RegExp.prototype
2282 //
21.2.5 Properties of the RegExp Prototype Object
2283 //
21.2.5.1 RegExp.prototype.constructor
2284 //
21.2.5.2 RegExp.prototype.exec ( string )
2286 //
21.2.5.3 get RegExp.prototype.flags
2287 if (!('flags' in RegExp.prototype)) {
2288 Object.defineProperty(
2289 RegExp.prototype, 'flags', {
2291 var s = String(this);
2292 return s.substring(s.lastIndexOf('/') +
1);
2297 //
21.2.5.4 get RegExp.prototype.global
2298 //
21.2.5.5 get RegExp.prototype.ignoreCase
2300 //
21.2.5.6 RegExp.prototype [ @@match ] ( string )
2301 define(RegExp.prototype, $$match, function(string) {
2302 var o = strict(this);
2303 return orig_match.call(string, o);
2306 //
21.2.5.7 get RegExp.prototype.multiline
2308 //
21.2.5.8 RegExp.prototype [ @@replace ] ( string, replaceValue )
2309 define(RegExp.prototype, $$replace, function(string, replaceValue) {
2310 var o = strict(this);
2311 return orig_replace.call(string, o, replaceValue);
2314 //
21.2.5.9 RegExp.prototype [ @@search ] ( string )
2315 define(RegExp.prototype, $$search, function(string) {
2316 var o = strict(this);
2317 return orig_search.call(string, o);
2320 //
21.2.5.10 get RegExp.prototype.source
2322 //
21.2.5.11 RegExp.prototype [ @@split ] ( string, limit )
2323 define(RegExp.prototype, $$split, function(string, limit) {
2324 var o = strict(this);
2325 return orig_split.call(string, o, limit);
2328 //
21.2.5.12 get RegExp.prototype.sticky
2329 //
21.2.5.13 RegExp.prototype.test( S )
2330 //
21.2.5.14 RegExp.prototype.toString ( )
2331 //
21.2.5.15 get RegExp.prototype.unicode
2333 //
21.2.6 Properties of RegExp Instances
2334 //
21.2.6.1 lastIndex
2336 // (No polyfillable changes from ES5)
2338 // ---------------------------------------
2339 //
22 Indexed Collections
2340 // ---------------------------------------
2342 // ---------------------------------------
2343 //
22.1 Array Objects
2344 // ---------------------------------------
2346 //
22.1.1 The Array Constructor
2347 //
22.1.1.1 Array ( )
2348 //
22.1.1.2 Array (len)
2349 //
22.1.1.3 Array (...items )
2351 //
22.1.2 Properties of the Array Constructor
2353 //
22.1.2.1 Array.from ( items [ , mapfn [ , thisArg ] ] )
2356 function from(items) {
2357 var mapfn = arguments[
1];
2358 var thisArg = arguments[
2];
2360 var c = strict(this);
2361 if (mapfn === undefined) {
2362 var mapping = false;
2364 if (!IsCallable(mapfn)) throw TypeError();
2368 var usingIterator = GetMethod(items, $$iterator);
2369 if (usingIterator !== undefined) {
2370 if (IsConstructor(c)) {
2375 var iterator = GetIterator(items, usingIterator);
2378 var next = IteratorStep(iterator);
2379 if (next === false) {
2383 var nextValue = IteratorValue(next);
2385 var mappedValue = mapfn.call(t, nextValue);
2387 mappedValue = nextValue;
2392 var arrayLike = ToObject(items);
2393 var lenValue = arrayLike.length;
2394 var len = ToLength(lenValue);
2395 if (IsConstructor(c)) {
2402 var kValue = arrayLike[k];
2404 mappedValue = mapfn.call(t, kValue, k);
2406 mappedValue = kValue;
2414 //
22.1.2.2 Array.isArray ( arg )
2416 //
22.1.2.3 Array.of ( ...items )
2420 var items = arguments;
2422 var lenValue = items.length;
2423 var len = ToUint32(lenValue);
2424 var c = strict(this), a;
2425 if (IsConstructor(c)) {
2440 //
22.1.2.4 Array.prototype
2441 //
22.1.2.5 get Array [ @@species ]
2442 //
22.1.3 Properties of the Array Prototype Object
2443 //
22.1.3.1 Array.prototype.concat ( ...arguments )
2444 //
22.1.3.1.1 Runtime Semantics: IsConcatSpreadable ( O )
2445 //
22.1.3.2 Array.prototype.constructor
2446 //
22.1.3.3 Array.prototype.copyWithin (target, start [ , end ] )
2448 Array.prototype, 'copyWithin',
2449 function copyWithin(target, start/*, end*/) {
2450 var end = arguments[
2];
2452 var o = ToObject(this);
2453 var lenVal = o.length;
2454 var len = ToLength(lenVal);
2456 var relativeTarget = ToInteger(target);
2458 if (relativeTarget <
0)
2459 to = max(len + relativeTarget,
0);
2461 to = min(relativeTarget, len);
2462 var relativeStart = ToInteger(start);
2464 if (relativeStart <
0)
2465 from = max(len + relativeStart,
0);
2467 from = min(relativeStart, len);
2469 if (end === undefined)
2472 relativeEnd = ToInteger(end);
2474 if (relativeEnd <
0)
2475 final = max(len + relativeEnd,
0);
2477 final = min(relativeEnd, len);
2478 var count = min(final - from, len - to);
2480 if (from < to && to < from + count) {
2482 from = from + count -
1;
2483 to = to + count -
1;
2488 var fromKey = String(from);
2489 var toKey = String(to);
2490 var fromPresent = HasProperty(o, fromKey);
2492 var fromVal = o[fromKey];
2497 from = from + direction;
2498 to = to + direction;
2504 //
22.1.3.4 Array.prototype.entries ( )
2505 var nativeArrayIteratorMethods =
2506 ('entries' in Array.prototype && 'next' in [].entries());
2509 Array.prototype, 'entries',
2510 function entries() {
2511 return CreateArrayIterator(this, 'key+value');
2512 }, !nativeArrayIteratorMethods);
2514 //
22.1.3.5 Array.prototype.every ( callbackfn [ , thisArg] )
2516 //
22.1.3.6 Array.prototype.fill (value [ , start [ , end ] ] )
2518 Array.prototype, 'fill',
2519 function fill(value/*, start, end*/) {
2520 var start = arguments[
1],
2523 var o = ToObject(this);
2524 var lenVal = o.length;
2525 var len = ToLength(lenVal);
2527 var relativeStart = ToInteger(start);
2529 if (relativeStart <
0)
2530 k = max((len + relativeStart),
0);
2532 k = min(relativeStart, len);
2534 if (end === undefined)
2537 relativeEnd = ToInteger(end);
2539 if (relativeEnd <
0)
2540 final = max((len + relativeEnd),
0);
2542 final = min(relativeEnd, len);
2551 //
22.1.3.7 Array.prototype.filter ( callbackfn [ , thisArg ] )
2553 //
22.1.3.8 Array.prototype.find ( predicate [ , thisArg ] )
2555 Array.prototype, 'find',
2556 function find(predicate) {
2557 var o = ToObject(this);
2558 var lenValue = o.length;
2559 var len = ToInteger(lenValue);
2560 if (!IsCallable(predicate)) throw TypeError();
2561 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2565 var kPresent = HasProperty(o, pk);
2568 var testResult = predicate.call(t, kValue, k, o);
2569 if (Boolean(testResult)) {
2578 //
22.1.3.9 Array.prototype.findIndex ( predicate [ , thisArg ] )
2580 Array.prototype, 'findIndex',
2581 function findIndex(predicate) {
2582 var o = ToObject(this);
2583 var lenValue = o.length;
2584 var len = ToLength(lenValue);
2585 if (!IsCallable(predicate)) throw TypeError();
2586 var t = arguments.length
> 1 ? arguments[
1] : undefined;
2590 var kPresent = HasProperty(o, pk);
2593 var testResult = predicate.call(t, kValue, k, o);
2594 if (Boolean(testResult)) {
2603 //
22.1.3.10 Array.prototype.forEach ( callbackfn [ , thisArg ] )
2604 //
22.1.3.11 Array.prototype.indexOf ( searchElement [ , fromIndex ] )
2605 //
22.1.3.12 Array.prototype.join (separator)
2607 //
22.1.3.13 Array.prototype.keys ( )
2609 Array.prototype, 'keys',
2611 return CreateArrayIterator(this, 'key');
2612 }, !nativeArrayIteratorMethods);
2614 //
22.1.3.14 Array.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2615 //
22.1.3.15 Array.prototype.map ( callbackfn [ , thisArg ] )
2616 //
22.1.3.16 Array.prototype.pop ( )
2617 //
22.1.3.17 Array.prototype.push ( ...items )
2618 //
22.1.3.18 Array.prototype.reduce ( callbackfn [ , initialValue ] )
2619 //
22.1.3.19 Array.prototype.reduceRight ( callbackfn [ , initialValue ] )
2620 //
22.1.3.20 Array.prototype.reverse ( )
2621 //
22.1.3.21 Array.prototype.shift ( )
2622 //
22.1.3.22 Array.prototype.slice (start, end)
2623 //
22.1.3.23 Array.prototype.some ( callbackfn [ , thisArg ] )
2624 //
22.1.3.24 Array.prototype.sort (comparefn)
2625 //
22.1.3.25 Array.prototype.splice (start, deleteCount , ...items )
2626 //
22.1.3.26 Array.prototype.toLocaleString ( [ reserved1 [ , reserved2 ] ] )
2627 //
22.1.3.27 Array.prototype.toString ( )
2628 //
22.1.3.28 Array.prototype.unshift ( ...items )
2630 //
22.1.3.29 Array.prototype.values ( )
2632 Array.prototype, 'values',
2634 return CreateArrayIterator(this, 'value');
2635 }, !nativeArrayIteratorMethods);
2637 //
22.1.3.30 Array.prototype [ @@iterator ] ( )
2639 Array.prototype, $$iterator,
2640 Array.prototype.values
2643 //
22.1.3.31 Array.prototype [ @@unscopables ]
2644 //
22.1.4 Properties of Array Instances
2647 //
22.1.5 Array Iterator Objects
2648 function ArrayIterator() {}
2650 //
22.1.5.1 CreateArrayIterator Abstract Operation
2651 function CreateArrayIterator(array, kind) {
2652 var o = ToObject(array);
2653 var iterator = new ArrayIterator;
2654 set_internal(iterator, '[[IteratedObject]]', o);
2655 set_internal(iterator, '[[ArrayIteratorNextIndex]]',
0);
2656 set_internal(iterator, '[[ArrayIterationKind]]', kind);
2660 //
22.1.5.2 The %ArrayIteratorPrototype% Object
2661 var $ArrayIteratorPrototype$ = Object.create($IteratorPrototype$);
2662 ArrayIterator.prototype = $ArrayIteratorPrototype$;
2664 //
22.1.5.2.1 %ArrayIteratorPrototype%. next( )
2666 $ArrayIteratorPrototype$, 'next',
2668 var o = strict(this);
2669 if (Type(o) !== 'object') throw TypeError();
2670 var a = o['[[IteratedObject]]'],
2671 index = o['[[ArrayIteratorNextIndex]]'],
2672 itemKind = o['[[ArrayIterationKind]]'],
2673 lenValue = a.length,
2674 len = ToUint32(lenValue),
2677 if (itemKind.indexOf('sparse') !== -
1) {
2679 while (!found && index < len) {
2680 elementKey = String(index);
2681 found = HasProperty(a, elementKey);
2688 set_internal(o, '[[ArrayIteratorNextIndex]]', Infinity);
2689 return CreateIterResultObject(undefined, true);
2692 set_internal(o, '[[ArrayIteratorNextIndex]]', index +
1);
2693 if (itemKind.indexOf('value') !== -
1)
2694 elementValue = a[elementKey];
2695 if (itemKind.indexOf('key+value') !== -
1)
2696 return CreateIterResultObject([elementKey, elementValue], false);
2697 if (itemKind.indexOf('key') !== -
1)
2698 return CreateIterResultObject(elementKey, false);
2699 if (itemKind === 'value')
2700 return CreateIterResultObject(elementValue, false);
2701 throw Error('Internal error');
2704 //
22.1.5.2.2 %ArrayIteratorPrototype% [ @@toStringTag ]
2705 define($ArrayIteratorPrototype$, $$toStringTag, 'Array Iterator');
2707 //
22.1.5.3 Properties of Array Iterator Instances
2710 // ---------------------------------------
2711 //
22.2 TypedArray Objects
2712 // ---------------------------------------
2714 // See typedarray.js for TypedArray polyfill
2716 ['Int8Array', 'Uint8Array', 'Uint8ClampedArray',
2717 'Int16Array', 'Uint16Array',
2718 'Int32Array', 'Uint32Array',
2719 'Float32Array', 'Float64Array'].forEach(function ($TypedArrayName$) {
2720 if (!($TypedArrayName$ in global))
2722 var $TypedArray$ = global[$TypedArrayName$];
2724 //
22.2.1 The %TypedArray% Intrinsic Object
2725 //
22.2.1.1 %TypedArray% ( length )
2726 //
22.2.1.2 %TypedArray% ( typedArray )
2727 //
22.2.1.3 %TypedArray% ( object )
2728 //
22.2.1.4 %TypedArray% ( buffer [ , byteOffset [ , length ] ] )
2729 //
22.2.1.5 %TypedArray% ( all other argument combinations )
2730 //
22.2.2 Properties of the %TypedArray% Intrinsic Object
2732 //
22.2.2.1 %TypedArray%.from ( source [ , mapfn [ , thisArg ] ] )
2734 $TypedArray$, 'from',
2735 function from(source) {
2736 var mapfn = arguments[
1];
2737 var thisArg = arguments[
2];
2739 var c = strict(this);
2740 if (!IsConstructor(c)) throw TypeError();
2741 if (mapfn === undefined) {
2742 var mapping = false;
2744 if (IsCallable(mapfn)) throw TypeError();
2748 var usingIterator = GetMethod(source, $$iterator);
2749 if (usingIterator !== undefined) {
2750 var iterator = GetIterator(source, usingIterator);
2753 while (next !== false) {
2754 next = IteratorStep(iterator);
2755 if (next !== false) {
2756 var nextValue = IteratorValue(next);
2757 values.push(nextValue);
2760 var len = values.length;
2761 var newObj = new c(len);
2764 var kValue = values.shift();
2766 var mappedValue = mapfn.call(t, kValue);
2768 mappedValue = kValue;
2770 newObj[k] = mappedValue;
2773 console.assert(values.length ===
0);
2776 var arrayLike = ToObject(source);
2777 var lenValue = arrayLike.length;
2778 len = ToLength(lenValue);
2779 newObj = new c(len);
2782 kValue = arrayLike[k];
2784 mappedValue = mapfn.call(t, kValue, k);
2786 mappedValue = kValue;
2788 newObj[k] = mappedValue;
2794 //
22.2.2.2 %TypedArray%.of ( ...items )
2798 var items = arguments;
2800 var len = items.length;
2801 var c = strict(this);
2802 var newObj = new c(len);
2805 newObj[k] = items[k];
2811 //
22.2.2.3 %TypedArray%.prototype
2812 //
22.2.2.4 get %TypedArray% [ @@species ]
2813 //
22.2.3 Properties of the %TypedArrayPrototype% Object
2814 //
22.2.3.1 get %TypedArray%.prototype.buffer
2815 //
22.2.3.2 get %TypedArray%.prototype.byteLength
2816 //
22.2.3.3 get %TypedArray%.prototype.byteOffset
2817 //
22.2.3.4 %TypedArray%.prototype.constructor
2819 //
22.2.3.5 %TypedArray%.prototype.copyWithin (target, start [, end ] )
2820 define($TypedArray$.prototype, 'copyWithin', Array.prototype.copyWithin);
2822 //
22.2.3.6 %TypedArray%.prototype.entries ( )
2823 define($TypedArray$.prototype, 'entries', Array.prototype.entries);
2825 //
22.2.3.7 %TypedArray%.prototype.every ( callbackfn [ , thisArg ] )
2826 define($TypedArray$.prototype, 'every', Array.prototype.every);
2828 //
22.2.3.8 %TypedArray%.prototype.fill (value [ , start [ , end ] ] )
2830 $TypedArray$.prototype, 'fill',
2831 //Array.prototype.fill // Doesn't work in Safari
7
2832 function fill(value/*, start, end*/) {
2833 var start = arguments[
1],
2836 var o = ToObject(this);
2837 var lenVal = o.length;
2838 var len = ToLength(lenVal);
2840 var relativeStart = ToInteger(start);
2842 if (relativeStart <
0) k = max((len + relativeStart),
0);
2843 else k = min(relativeStart, len);
2845 if (end === undefined) relativeEnd = len;
2846 else relativeEnd = ToInteger(end);
2848 if (relativeEnd <
0) final = max((len + relativeEnd),
0);
2849 else final = min(relativeEnd, len);
2858 //
22.2.3.9 %TypedArray%.prototype.filter ( callbackfn [ , thisArg ] )
2860 $TypedArray$.prototype, 'filter',
2861 function filter(callbackfn) {
2862 var thisArg = arguments[
1];
2864 var o = ToObject(this);
2865 var lenVal = o.length;
2866 var len = ToLength(lenVal);
2867 if (!IsCallable(callbackfn)) throw TypeError();
2869 var c = o.constructor;
2875 var selected = callbackfn.call(t, kValue, k, o);
2882 var a = new c(captured);
2884 for (var i =
0; i < kept.length; ++i) {
2892 //
22.2.3.10 %TypedArray%.prototype.find (predicate [ , thisArg ] )
2893 define($TypedArray$.prototype, 'find', Array.prototype.find);
2895 //
22.2.3.11 %TypedArray%.prototype.findIndex ( predicate [ , thisArg ] )
2896 define($TypedArray$.prototype, 'findIndex', Array.prototype.findIndex);
2898 //
22.2.3.12 %TypedArray%.prototype.forEach ( callbackfn [ , thisArg ] )
2899 define($TypedArray$.prototype, 'forEach', Array.prototype.forEach);
2901 //
22.2.3.13 %TypedArray%.prototype.indexOf (searchElement [ , fromIndex ] )
2902 define($TypedArray$.prototype, 'indexOf', Array.prototype.indexOf);
2904 //
22.2.3.14 %TypedArray%.prototype.join ( separator )
2905 define($TypedArray$.prototype, 'join', Array.prototype.join);
2907 //
22.2.3.15 %TypedArray%.prototype.keys ( )
2908 define($TypedArray$.prototype, 'keys', Array.prototype.keys);
2910 //
22.2.3.16 %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
2911 define($TypedArray$.prototype, 'lastIndexOf', Array.prototype.lastIndexOf);
2913 //
22.2.3.17 get %TypedArray%.prototype.length
2915 //
22.2.3.18 %TypedArray%.prototype.map ( callbackfn [ , thisArg ] )
2917 $TypedArray$.prototype, 'map',
2918 function map(callbackfn) {
2919 var thisArg = arguments[
1];
2921 var o = ToObject(this);
2922 var lenValue = o.length;
2923 var len = ToLength(lenValue);
2924 if (!IsCallable(callbackfn)) throw TypeError();
2927 var c = o.constructor;
2928 if (IsConstructor(c))
2930 if (a === undefined)
2934 var kPresent = HasProperty(o, k);
2937 var mappedValue = callbackfn.call(t, kValue, k, o);
2945 //
22.2.3.19 %TypedArray%.prototype.reduce ( callbackfn [, initialValue] )
2946 define($TypedArray$.prototype, 'reduce', Array.prototype.reduce);
2948 //
22.2.3.20 %TypedArray%.prototype.reduceRight ( callbackfn [, initialValue] )
2949 define($TypedArray$.prototype, 'reduceRight', Array.prototype.reduceRight);
2951 //
22.2.3.21 %TypedArray%.prototype.reverse ( )
2952 define($TypedArray$.prototype, 'reverse', Array.prototype.reverse);
2954 //
22.2.3.22 %TypedArray%.prototype.set ( overloaded [ , offset ])
2955 //
22.2.3.22.1 %TypedArray%.prototype.set (array [ , offset ] )
2956 //
22.2.3.22.2 %TypedArray%.prototype.set(typedArray [, offset ] )
2958 //
22.2.3.23 %TypedArray%.prototype.slice ( start, end )
2960 $TypedArray$.prototype, 'slice',
2961 function slice(start, end) {
2962 var o = ToObject(this);
2963 var lenVal = o.length;
2964 var len = ToLength(lenVal);
2965 var relativeStart = ToInteger(start);
2966 var k = (relativeStart <
0) ? max(len + relativeStart,
0) : min(relativeStart, len);
2967 var relativeEnd = (end === undefined) ? len : ToInteger(end);
2968 var final = (relativeEnd <
0) ? max(len + relativeEnd,
0) : min(relativeEnd, len);
2969 var count = final - k;
2970 var c = o.constructor;
2971 if (IsConstructor(c)) {
2972 var a = new c(count);
2986 //
22.2.3.24 %TypedArray%.prototype.some ( callbackfn [ , thisArg ] )
2987 define($TypedArray$.prototype, 'some', Array.prototype.some);
2989 //
22.2.3.25 %TypedArray%.prototype.sort ( comparefn )
2991 $TypedArray$.prototype, 'sort',
2993 var comparefn = arguments[
0];
2995 function sortCompare(x, y) {
2996 console.assert(Type(x) === 'number' && Type(y) === 'number');
2997 if (x !== x && y !== y) return +
0;
2998 if (x !== x) return
1;
2999 if (y !== y) return -
1;
3000 if (comparefn !== undefined) {
3001 return comparefn(x, y);
3003 if (x < y) return -
1;
3004 if (x
> y) return
1;
3007 return Array.prototype.sort.call(this, sortCompare);
3010 //
22.2.3.26 %TypedArray%.prototype.subarray( [ begin [ , end ] ] )
3011 //
22.2.3.27 %TypedArray%.prototype.toLocaleString ([ reserved1 [ , reserved2 ] ])
3012 //
22.2.3.28 %TypedArray%.prototype.toString ( )
3014 //
22.2.3.29 %TypedArray%.prototype.values ( )
3015 define($TypedArray$.prototype, 'values', Array.prototype.values);
3017 //
22.2.3.30 %TypedArray%.prototype [ @@iterator ] ( )
3019 $TypedArray$.prototype, $$iterator,
3020 $TypedArray$.prototype.values
3023 //
22.2.3.31 get %TypedArray%.prototype [ @@toStringTag ]
3024 define($TypedArray$.prototype, $$toStringTag, $TypedArrayName$);
3026 //
22.2.4 The TypedArray Constructors
3027 //
22.2.4.1TypedArray( ... argumentsList)
3028 //
22.2.5 Properties of the TypedArray Constructors
3029 //
22.2.5.1 TypedArray.BYTES_PER_ELEMENT
3030 //
22.2.5.2 TypedArray.prototype
3031 //
22.2.6 Properties of TypedArray Prototype Objects
3032 //
22.2.6.1 TypedArray.prototype.BYTES_PER_ELEMENT
3033 //
22.2.6.2 TypedArray.prototype.constructor
3034 //
22.2.7 Properties of TypedArray Instances
3037 // ---------------------------------------
3038 //
23 Keyed Collection
3039 // ---------------------------------------
3041 // ---------------------------------------
3043 // ---------------------------------------
3046 //
23.1.1 The Map Constructor
3048 //
23.1.1.1 Map ( [ iterable ] )
3050 function Map(/*iterable*/) {
3051 var map = strict(this);
3052 var iterable = arguments[
0];
3054 if (Type(map) !== 'object') throw TypeError();
3055 if ('[[MapData]]' in map) throw TypeError();
3057 if (iterable !== undefined) {
3058 var adder = map['set'];
3059 if (!IsCallable(adder)) throw TypeError();
3060 var iter = GetIterator(ToObject(iterable));
3062 set_internal(map, '[[MapData]]', { keys: [], values: [] });
3063 if (iter === undefined) return map;
3065 var next = IteratorStep(iter);
3068 var nextItem = IteratorValue(next);
3069 if (Type(nextItem) !== 'object') throw TypeError();
3070 var k = nextItem[
0];
3071 var v = nextItem[
1];
3072 adder.call(map, k, v);
3078 if (!('Map' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3079 (function() { try { new global.Map([]); return false; } catch (_) { return true; } }()) ||
3080 (function() { try { return !new global.Map().entries().next; } catch (_) { return true; } }()) ||
3081 (new global.Map([['a',
1]]).size !==
1))
3085 function MapDataIndexOf(mapData, key) {
3087 if (key === key) return mapData.keys.indexOf(key);
3088 // Slow case for NaN
3089 for (i =
0; i < mapData.keys.length; i +=
1)
3090 if (SameValueZero(mapData.keys[i], key)) return i;
3094 //
23.1.1.2 new Map ( ... argumentsList )
3095 //
23.1.2 Properties of the Map Constructor
3096 //
23.1.2.1 Map.prototype
3097 var $MapPrototype$ = {};
3098 Map.prototype = $MapPrototype$;
3100 //
23.1.2.2 get Map [ @@species ]
3102 //
23.1.3 Properties of the Map Prototype Object
3103 //
23.1.3.1 Map.prototype.clear ()
3105 Map.prototype, 'clear',
3107 var m = strict(this);
3108 if (Type(m) !== 'object') throw TypeError();
3109 if (!('[[MapData]]' in m)) throw TypeError();
3110 if (m['[[MapData]]'] === undefined) throw TypeError();
3111 var entries = m['[[MapData]]'];
3112 entries.keys.length =
0;
3113 entries.values.length =
0;
3117 //
23.1.3.2 Map.prototype.constructor
3119 //
23.1.3.3 Map.prototype.delete ( key )
3121 Map.prototype, 'delete',
3122 function delete_(key) {
3123 var m = strict(this);
3124 if (Type(m) !== 'object') throw TypeError();
3125 if (!('[[MapData]]' in m)) throw TypeError();
3126 if (m['[[MapData]]'] === undefined) throw TypeError();
3127 var entries = m['[[MapData]]'];
3128 var i = MapDataIndexOf(entries, key);
3129 if (i <
0) return false;
3130 entries.keys[i] = empty;
3131 entries.values[i] = empty;
3135 //
23.1.3.4 Map.prototype.entries ( )
3137 Map.prototype, 'entries',
3138 function entries() {
3139 var m = strict(this);
3140 if (Type(m) !== 'object') throw TypeError();
3141 return CreateMapIterator(m, 'key+value');
3144 //
23.1.3.5 Map.prototype.forEach ( callbackfn [ , thisArg ] )
3146 Map.prototype, 'forEach',
3147 function forEach(callbackfn /*, thisArg*/) {
3148 var thisArg = arguments[
1];
3150 var m = strict(this);
3151 if (Type(m) !== 'object') throw TypeError();
3152 if (!('[[MapData]]' in m)) throw TypeError();
3153 if (m['[[MapData]]'] === undefined) throw TypeError();
3154 var entries = m['[[MapData]]'];
3156 if (!IsCallable(callbackfn)) {
3157 throw TypeError('First argument to forEach is not callable.');
3159 for (var i =
0; i < entries.keys.length; ++i) {
3160 if (entries.keys[i] !== empty) {
3161 callbackfn.call(thisArg, entries.values[i], entries.keys[i], m);
3167 //
23.1.3.6 Map.prototype.get ( key )
3169 Map.prototype, 'get',
3171 var m = strict(this);
3172 if (Type(m) !== 'object') throw TypeError();
3173 if (!('[[MapData]]' in m)) throw TypeError();
3174 if (m['[[MapData]]'] === undefined) throw TypeError();
3175 var entries = m['[[MapData]]'];
3176 var i = MapDataIndexOf(entries, key);
3177 if (i
>=
0) return entries.values[i];
3181 //
23.1.3.7 Map.prototype.has ( key )
3183 Map.prototype, 'has',
3185 var m = strict(this);
3186 if (Type(m) !== 'object') throw TypeError();
3187 if (!('[[MapData]]' in m)) throw TypeError();
3188 if (m['[[MapData]]'] === undefined) throw TypeError();
3189 var entries = m['[[MapData]]'];
3190 if (MapDataIndexOf(entries, key)
>=
0) return true;
3194 //
23.1.3.8 Map.prototype.keys ( )
3196 Map.prototype, 'keys',
3198 var m = strict(this);
3199 if (Type(m) !== 'object') throw TypeError();
3200 return CreateMapIterator(m, 'key');
3203 //
23.1.3.9 Map.prototype.set ( key , value )
3205 Map.prototype, 'set',
3206 function set(key, value) {
3207 var m = strict(this);
3208 if (Type(m) !== 'object') throw TypeError();
3209 if (!('[[MapData]]' in m)) throw TypeError();
3210 if (m['[[MapData]]'] === undefined) throw TypeError();
3211 var entries = m['[[MapData]]'];
3212 var i = MapDataIndexOf(entries, key);
3213 if (i <
0) i = entries.keys.length;
3214 if (SameValue(key, -
0)) key =
0;
3215 entries.keys[i] = key;
3216 entries.values[i] = value;
3220 //
23.1.3.10 get Map.prototype.size
3221 Object.defineProperty(
3222 Map.prototype, 'size', {
3224 var m = strict(this);
3225 if (Type(m) !== 'object') throw TypeError();
3226 if (!('[[MapData]]' in m)) throw TypeError();
3227 if (m['[[MapData]]'] === undefined) throw TypeError();
3228 var entries = m['[[MapData]]'];
3230 for (var i =
0; i < entries.keys.length; ++i) {
3231 if (entries.keys[i] !== empty)
3238 //
23.1.3.11 Map.prototype.values ( )
3240 Map.prototype, 'values',
3242 var m = strict(this);
3243 if (Type(m) !== 'object') throw TypeError();
3244 return CreateMapIterator(m, 'value');
3247 //
23.1.3.12 Map.prototype [ @@iterator ]( )
3249 Map.prototype, $$iterator,
3251 var m = strict(this);
3252 if (Type(m) !== 'object') throw TypeError();
3253 return CreateMapIterator(m, 'key+value');
3256 //
23.1.3.13 Map.prototype [ @@toStringTag ]
3257 define(global.Map.prototype, $$toStringTag, 'Map');
3259 //
23.1.4 Properties of Map Instances
3260 //
23.1.5 Map Iterator Objects
3263 function MapIterator() {}
3265 //
23.1.5.1 CreateMapIterator Abstract Operation
3266 function CreateMapIterator(map, kind) {
3267 if (Type(map) !== 'object') throw TypeError();
3268 if (!('[[MapData]]' in map)) throw TypeError();
3269 if (map['[[MapData]]'] === undefined) throw TypeError();
3270 var iterator = new MapIterator;
3271 set_internal(iterator, '[[Map]]', map);
3272 set_internal(iterator, '[[MapNextIndex]]',
0);
3273 set_internal(iterator, '[[MapIterationKind]]', kind);
3277 //
23.1.5.2 The %MapIteratorPrototype% Object
3278 var $MapIteratorPrototype$ = Object.create($IteratorPrototype$);
3279 MapIterator.prototype = $MapIteratorPrototype$;
3281 //
23.1.5.2.1 %MapIteratorPrototype%.next ( )
3283 $MapIteratorPrototype$, 'next',
3285 var o = strict(this);
3286 if (Type(o) !== 'object') throw TypeError();
3287 var m = o['[[Map]]'],
3288 index = o['[[MapNextIndex]]'],
3289 itemKind = o['[[MapIterationKind]]'],
3290 entries = m['[[MapData]]'];
3291 while (index < entries.keys.length) {
3292 var e = {key: entries.keys[index], value: entries.values[index]};
3294 set_internal(o, '[[MapNextIndex]]', index);
3295 if (e.key !== empty) {
3296 if (itemKind === 'key') {
3297 return CreateIterResultObject(e.key, false);
3298 } else if (itemKind === 'value') {
3299 return CreateIterResultObject(e.value, false);
3301 return CreateIterResultObject([e.key, e.value], false);
3305 return CreateIterResultObject(undefined, true);
3308 //
23.1.5.2.2 %MapIteratorPrototype% [ @@toStringTag ]
3309 define($MapIteratorPrototype$, $$toStringTag, 'Map Iterator');
3311 //
23.1.5.3 Properties of Map Iterator Instances
3314 // ---------------------------------------
3316 // ---------------------------------------
3319 //
23.2.1 The Set Constructor
3320 //
23.2.1.1 Set ( [ iterable ] )
3323 function Set(/*iterable*/) {
3324 var set = strict(this);
3325 var iterable = arguments[
0];
3327 if (Type(set) !== 'object') throw TypeError();
3328 if ('[[SetData]]' in set) throw TypeError();
3330 if (iterable !== undefined) {
3331 var adder = set['add'];
3332 if (!IsCallable(adder)) throw TypeError();
3333 var iter = GetIterator(ToObject(iterable));
3335 set_internal(set, '[[SetData]]', []);
3336 if (iter === undefined) return set;
3338 var next = IteratorStep(iter);
3341 var nextValue = IteratorValue(next);
3342 adder.call(set, nextValue);
3348 if (!('Set' in global) || OVERRIDE_NATIVE_FOR_TESTING ||
3349 (function() { try { return !new global.Set().entries().next; } catch (_) { return true; } }()) ||
3350 (new global.Set([
1]).size !==
1))
3353 function SetDataIndexOf(setData, key) {
3356 return setData.indexOf(key);
3357 // Slow case for NaN
3358 for (i =
0; i < setData.length; i +=
1)
3359 if (SameValueZero(setData[i], key)) return i;
3363 //
23.2.1.2 new Set ( ...argumentsList )
3364 //
23.2.2 Properties of the Set Constructor
3366 //
23.2.2.1 Set.prototype
3367 var $SetPrototype$ = {};
3368 Set.prototype = $SetPrototype$;
3370 //
23.2.2.2 get Set [ @@species ]
3371 //
23.2.3 Properties of the Set Prototype Object
3373 //
23.2.3.1 Set.prototype.add (value )
3375 Set.prototype, 'add',
3376 function add(value) {
3377 var s = strict(this);
3378 if (Type(s) !== 'object') throw TypeError();
3379 if (!('[[SetData]]' in s)) throw TypeError();
3380 if (s['[[SetData]]'] === undefined) throw TypeError();
3381 if (SameValue(value, -
0)) value =
0;
3382 var entries = s['[[SetData]]'];
3383 var i = SetDataIndexOf(entries, value);
3384 if (i <
0) i = s['[[SetData]]'].length;
3385 s['[[SetData]]'][i] = value;
3390 //
23.2.3.2 Set.prototype.clear ()
3392 Set.prototype, 'clear',
3394 var s = strict(this);
3395 if (Type(s) !== 'object') throw TypeError();
3396 if (!('[[SetData]]' in s)) throw TypeError();
3397 if (s['[[SetData]]'] === undefined) throw TypeError();
3398 var entries = s['[[SetData]]'];
3403 //
23.2.3.3 Set.prototype.constructor
3404 //
23.2.3.4 Set.prototype.delete ( value )
3406 Set.prototype, 'delete',
3407 function delete_(value) {
3408 var s = strict(this);
3409 if (Type(s) !== 'object') throw TypeError();
3410 if (!('[[SetData]]' in s)) throw TypeError();
3411 if (s['[[SetData]]'] === undefined) throw TypeError();
3412 var entries = s['[[SetData]]'];
3413 var i = SetDataIndexOf(entries, value);
3414 if (i <
0) return false;
3419 //
23.2.3.5 Set.prototype.entries ( )
3421 Set.prototype, 'entries',
3422 function entries() {
3423 var s = strict(this);
3424 if (Type(s) !== 'object') throw TypeError();
3425 return CreateSetIterator(s, 'key+value');
3428 //
23.2.3.6 Set.prototype.forEach ( callbackfn [ , thisArg ] )
3430 Set.prototype, 'forEach',
3431 function forEach(callbackfn/*, thisArg*/) {
3432 var thisArg = arguments[
1];
3434 var s = strict(this);
3435 if (Type(s) !== 'object') throw TypeError();
3436 if (!('[[SetData]]' in s)) throw TypeError();
3437 if (s['[[SetData]]'] === undefined) throw TypeError();
3438 var entries = s['[[SetData]]'];
3440 if (!IsCallable(callbackfn)) {
3441 throw TypeError('First argument to forEach is not callable.');
3443 for (var i =
0; i < entries.length; ++i) {
3444 if (entries[i] !== empty) {
3445 callbackfn.call(thisArg, entries[i], entries[i], s);
3450 //
23.2.3.7 Set.prototype.has ( value )
3452 Set.prototype, 'has',
3454 var s = strict(this);
3455 if (Type(s) !== 'object') throw TypeError();
3456 if (!('[[SetData]]' in s)) throw TypeError();
3457 if (s['[[SetData]]'] === undefined) throw TypeError();
3458 var entries = s['[[SetData]]'];
3459 return SetDataIndexOf(entries, key) !== -
1;
3462 //
23.2.3.8 Set.prototype.keys ( )
3463 // See Set.prototype.values
3465 //
23.2.3.9 get Set.prototype.size
3466 Object.defineProperty(
3467 Set.prototype, 'size', {
3469 var s = strict(this);
3470 if (Type(s) !== 'object') throw TypeError();
3471 if (!('[[SetData]]' in s)) throw TypeError();
3472 if (s['[[SetData]]'] === undefined) throw TypeError();
3473 var entries = s['[[SetData]]'];
3475 for (var i =
0; i < entries.length; ++i) {
3476 if (entries[i] !== empty)
3483 //
23.2.3.10 Set.prototype.values ( )
3485 Set.prototype, 'values',
3487 var s = strict(this);
3488 if (Type(s) !== 'object') throw TypeError();
3489 return CreateSetIterator(s, 'value');
3491 // NOTE: function name is still 'values':
3492 Set.prototype.keys = Set.prototype.values;
3494 //
23.2.3.11 Set.prototype [@@iterator ] ( )
3496 Set.prototype, $$iterator,
3498 var s = strict(this);
3499 if (Type(s) !== 'object') throw TypeError();
3500 return CreateSetIterator(s);
3503 //
23.2.3.12 Set.prototype [ @@toStringTag ]
3504 define(global.Set.prototype, $$toStringTag, 'Set');
3506 //
23.2.4 Properties of Set Instances
3507 //
23.2.5 Set Iterator Objects
3509 function SetIterator() {}
3511 //
23.2.5.1 CreateSetIterator Abstract Operation
3512 function CreateSetIterator(set, kind) {
3513 if (Type(set) !== 'object') throw TypeError();
3514 if (!('[[SetData]]' in set)) throw TypeError();
3515 if (set['[[SetData]]'] === undefined) throw TypeError();
3516 var iterator = new SetIterator;
3517 set_internal(iterator, '[[IteratedSet]]', set);
3518 set_internal(iterator, '[[SetNextIndex]]',
0);
3519 set_internal(iterator, '[[SetIterationKind]]', kind);
3523 //
23.2.5.2 The %SetIteratorPrototype% Object
3524 var $SetIteratorPrototype$ = Object.create($IteratorPrototype$);
3525 SetIterator.prototype = $SetIteratorPrototype$;
3527 //
23.2.5.2.1 %SetIteratorPrototype%.next( )
3529 $SetIteratorPrototype$, 'next',
3531 var o = strict(this);
3532 if (Type(o) !== 'object') throw TypeError();
3533 var s = o['[[IteratedSet]]'],
3534 index = o['[[SetNextIndex]]'],
3535 itemKind = o['[[SetIterationKind]]'],
3536 entries = s['[[SetData]]'];
3537 while (index < entries.length) {
3538 var e = entries[index];
3540 set_internal(o, '[[SetNextIndex]]', index);
3542 if (itemKind === 'key+value')
3543 return CreateIterResultObject([e, e], false);
3544 return CreateIterResultObject(e, false);
3547 return CreateIterResultObject(undefined, true);
3550 //
23.2.5.2.2 %SetIteratorPrototype% [ @@toStringTag ]
3551 define($SetIteratorPrototype$, $$toStringTag, 'Set Iterator');
3553 //
23.2.5.3 Properties of Set Iterator Instances
3557 // ---------------------------------------
3558 //
23.3 WeakMap Objects
3559 // ---------------------------------------
3562 //
23.3.1 The WeakMap Constructor
3563 //
23.3.1.1 WeakMap ( [ iterable ] )
3565 function WeakMap(/*iterable*/) {
3566 var map = strict(this);
3567 var iterable = arguments[
0];
3569 if (Type(map) !== 'object') throw TypeError();
3570 if ('[[WeakMapData]]' in map) throw TypeError();
3572 if (iterable !== undefined) {
3573 var adder = map['set'];
3574 if (!IsCallable(adder)) throw TypeError();
3575 var iter = GetIterator(ToObject(iterable));
3577 set_internal(map, '[[WeakMapData]]', new EphemeronTable);
3578 if (iter === undefined) return map;
3580 var next = IteratorStep(iter);
3583 var nextValue = IteratorValue(next);
3584 if (Type(nextValue) !== 'object') throw TypeError();
3585 var k = nextValue[
0];
3586 var v = nextValue[
1];
3587 adder.call(map, k, v);
3593 if (!('WeakMap' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3594 global.WeakMap = WeakMap;
3596 //
23.3.2 Properties of the WeakMap Constructor
3597 //
23.3.2.1 WeakMap.prototype
3598 var $WeakMapPrototype$ = {};
3599 WeakMap.prototype = $WeakMapPrototype$;
3603 //
23.3.2.2 WeakMap[ @@create ] ( )
3604 //
23.3.3 Properties of the WeakMap Prototype Object
3606 //
23.3.3.1 WeakMap.prototype.constructor
3608 //
23.3.3.2 WeakMap.prototype.delete ( key )
3610 WeakMap.prototype, 'delete',
3611 function delete_(key) {
3612 var M = strict(this);
3613 if (Type(M) !== 'object') throw TypeError();
3614 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3615 if (Type(key) !== 'object') throw TypeError('Expected object');
3616 return M['[[WeakMapData]]'].remove(key);
3619 //
23.3.3.3 WeakMap.prototype.get ( key )
3621 WeakMap.prototype, 'get',
3622 function get(key, defaultValue) {
3623 var M = strict(this);
3624 if (Type(M) !== 'object') throw TypeError();
3625 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3626 if (Type(key) !== 'object') throw TypeError('Expected object');
3627 return M['[[WeakMapData]]'].get(key, defaultValue);
3630 //
23.3.3.4 WeakMap.prototype.has ( key )
3632 WeakMap.prototype, 'has',
3634 var M = strict(this);
3635 if (Type(M) !== 'object') throw TypeError();
3636 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3637 if (Type(key) !== 'object') throw TypeError('Expected object');
3638 return M['[[WeakMapData]]'].has(key);
3641 //
23.3.3.5 WeakMap.prototype.set ( key , value )
3643 WeakMap.prototype, 'set',
3644 function set(key, value) {
3645 var M = strict(this);
3646 if (Type(M) !== 'object') throw TypeError();
3647 if (M['[[WeakMapData]]'] === undefined) throw TypeError();
3648 if (Type(key) !== 'object') throw TypeError('Expected object');
3649 M['[[WeakMapData]]'].set(key, value);
3653 //
23.3.3.6 WeakMap.prototype [ @@toStringTag ]
3654 define(global.WeakMap.prototype, $$toStringTag, 'WeakMap');
3656 //
23.3.4 Properties of WeakMap Instances
3658 // Polyfills for incomplete native implementations:
3660 var wm = new global.WeakMap();
3661 var orig = global.WeakMap.prototype.set;
3662 define(global.WeakMap.prototype, 'set', function set() {
3663 orig.apply(this, arguments);
3665 }, wm.set({},
0) !== wm);
3669 // ---------------------------------------
3670 //
23.4 WeakSet Objects
3671 // ---------------------------------------
3674 //
23.4.1 The WeakSet Constructor
3675 //
23.4.1.1 WeakSet ( [ iterable ] )
3677 function WeakSet(/*iterable*/) {
3678 var set = strict(this);
3679 var iterable = arguments[
0];
3681 if (Type(set) !== 'object') throw TypeError();
3682 if ('[[WeakSetData]]' in set) throw TypeError();
3684 if (iterable !== undefined) {
3685 var adder = set['add'];
3686 if (!IsCallable(adder)) throw TypeError();
3687 var iter = GetIterator(ToObject(iterable));
3689 set_internal(set, '[[WeakSetData]]', new EphemeronTable);
3690 if (iter === undefined) return set;
3692 var next = IteratorStep(iter);
3695 var nextValue = IteratorValue(next);
3696 adder.call(set, nextValue);
3702 if (!('WeakSet' in global) || OVERRIDE_NATIVE_FOR_TESTING)
3703 global.WeakSet = WeakSet;
3705 //
23.4.2 Properties of the WeakSet Constructor
3706 //
23.4.2.1 WeakSet.prototype
3707 var $WeakSetPrototype$ = {};
3708 WeakSet.prototype = $WeakSetPrototype$;
3710 //
23.4.3 Properties of the WeakSet Prototype Object
3711 //
23.4.3.1 WeakSet.prototype.add (value )
3713 WeakSet.prototype, 'add',
3714 function add(value) {
3715 var S = strict(this);
3716 if (Type(S) !== 'object') throw TypeError();
3717 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3718 if (Type(value) !== 'object') throw TypeError('Expected object');
3719 S['[[WeakSetData]]'].set(value, true);
3723 //
23.4.3.2 WeakSet.prototype.constructor
3724 //
23.4.3.3 WeakSet.prototype.delete ( value )
3726 WeakSet.prototype, 'delete',
3727 function delete_(value) {
3728 var S = strict(this);
3729 if (Type(S) !== 'object') throw TypeError();
3730 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3731 if (Type(value) !== 'object') throw TypeError('Expected object');
3732 return S['[[WeakSetData]]'].remove(value);
3735 //
23.4.3.4 WeakSet.prototype.has ( value )
3737 WeakSet.prototype, 'has',
3739 var S = strict(this);
3740 if (Type(S) !== 'object') throw TypeError();
3741 if (S['[[WeakSetData]]'] === undefined) throw TypeError();
3742 if (Type(key) !== 'object') throw TypeError('Expected object');
3743 return S['[[WeakSetData]]'].has(key);
3746 //
23.4.3.5 WeakSet.prototype [ @@toStringTag ]
3747 define(global.WeakSet.prototype, $$toStringTag, 'WeakSet');
3749 //
23.4.4 Properties of WeakSet Instances
3751 // Polyfills for incomplete native implementations:
3753 var ws = new global.WeakSet();
3754 var orig = global.WeakSet.prototype.add;
3755 define(global.WeakSet.prototype, 'add', function add() {
3756 orig.apply(this, arguments);
3758 }, ws.add({}) !== ws);
3762 // ---------------------------------------
3763 //
24 Structured Data
3764 // ---------------------------------------
3766 // ---------------------------------------
3767 //
24.1 ArrayBuffer Objects
3768 // ---------------------------------------
3770 // See typedarray.js for TypedArray polyfill
3773 if (!('ArrayBuffer' in global))
3776 //
24.1.1 Abstract Operations For ArrayBuffer Objects
3777 //
24.1.1.1 AllocateArrayBuffer( constructor, byteLength )
3778 //
24.1.1.2 IsDetachedBuffer( arrayBuffer )
3779 //
24.1.1.3 DetachArrayBuffer( arrayBuffer )
3780 //
24.1.1.4 CloneArrayBuffer( srcBuffer, srcByteOffset [, cloneConstructor] )
3781 //
24.1.1.5 GetValueFromBuffer ( arrayBuffer, byteIndex, type, isLittleEndian )
3782 //
24.1.1.6 SetValueInBuffer ( arrayBuffer, byteIndex, type, value, isLittleEndian )
3783 //
24.1.2 The ArrayBuffer Constructor
3784 //
24.1.2.1 ArrayBuffer( length )
3785 //
24.1.3 Properties of the ArrayBuffer Constructor
3787 //
24.1.3.1 ArrayBuffer.isView ( arg )
3789 ArrayBuffer, 'isView',
3790 function isView(arg) {
3791 if (Type(arg) !== 'object') return false;
3792 if ('buffer' in arg && arg.buffer instanceof ArrayBuffer) return true;
3796 //
24.1.3.2 ArrayBuffer.prototype
3797 //
24.1.3.3 get ArrayBuffer [ @@species ]
3798 //
24.1.4 Properties of the ArrayBuffer Prototype Object
3799 //
24.1.4.1 get ArrayBuffer.prototype.byteLength
3800 //
24.1.4.2 ArrayBuffer.prototype.constructor
3801 //
24.1.4.3 ArrayBuffer.prototype.slice ( start , end)
3803 //
24.1.4.4 ArrayBuffer.prototype [ @@toStringTag ]
3804 define(ArrayBuffer.prototype, $$toStringTag, 'ArrayBuffer');
3806 //
24.1.5 Properties of the ArrayBuffer Instances
3809 // ---------------------------------------
3810 //
24.2 DataView Objects
3811 // ---------------------------------------
3813 // See typedarray.js for TypedArray polyfill
3816 if (!('DataView' in global))
3819 //
24.2.1 Abstract Operations For DataView Objects
3820 //
24.2.1.1 GetViewValue(view, requestIndex, isLittleEndian, type)
3821 //
24.2.1.2 SetViewValue(view, requestIndex, isLittleEndian, type, value)
3822 //
24.2.2 The DataView Constructor
3823 //
24.2.2.1 DataView (buffer [ , byteOffset [ , byteLength ] ] )
3824 //
24.2.3 Properties of the DataView Constructor
3825 //
24.2.3.1 DataView.prototype
3826 //
24.2.4 Properties of the DataView Prototype Object
3827 //
24.2.4.1 get DataView.prototype.buffer
3828 //
24.2.4.2 get DataView.prototype.byteLength
3829 //
24.2.4.3 get DataView.prototype.byteOffset
3830 //
24.2.4.4 DataView.prototype.constructor
3831 //
24.2.4.5 DataView.prototype.getFloat32 ( byteOffset [ , littleEndian ] )
3832 //
24.2.4.6 DataView.prototype.getFloat64 ( byteOffset [ , littleEndian ] )
3833 //
24.2.4.7 DataView.prototype.getInt8 ( byteOffset )
3834 //
24.2.4.8 DataView.prototype.getInt16 ( byteOffset [ , littleEndian ] )
3835 //
24.2.4.9 DataView.prototype.getInt32 ( byteOffset [ , littleEndian ] )
3836 //
24.2.4.10 DataView.prototype.getUint8 ( byteOffset )
3837 //
24.2.4.11 DataView.prototype.getUint16 ( byteOffset [ , littleEndian ] )
3838 //
24.2.4.12 DataView.prototype.getUint32 ( byteOffset [ , littleEndian ] )
3839 //
24.2.4.13 DataView.prototype.setFloat32 ( byteOffset, value [ , littleEndian ] )
3840 //
24.2.4.14 DataView.prototype.setFloat64 ( byteOffset, value [ , littleEndian ] )
3841 //
24.2.4.15 DataView.prototype.setInt8 ( byteOffset, value )
3842 //
24.2.4.16 DataView.prototype.setInt16 ( byteOffset, value [ , littleEndian ] )
3843 //
24.2.4.17 DataView.prototype.setInt32 ( byteOffset, value [ , littleEndian ] )
3844 //
24.2.4.18 DataView.prototype.setUint8 ( byteOffset, value )
3845 //
24.2.4.19 DataView.prototype.setUint16 ( byteOffset, value [ , littleEndian ] )
3846 //
24.2.4.20 DataView.prototype.setUint32 ( byteOffset, value [ , littleEndian ] )
3848 //
24.2.4.21 DataView.prototype[ @@toStringTag ]
3849 define(DataView.prototype, $$toStringTag, 'DataView');
3851 //
24.2.5 Properties of DataView Instances
3854 // ---------------------------------------
3855 //
24.3 The JSON Object
3856 // ---------------------------------------
3858 //
24.3.1 JSON.parse ( text [ , reviver ] )
3859 //
24.3.2 JSON.stringify ( value [ , replacer [ , space ] ] )
3860 //
24.3.3 JSON [ @@toStringTag ]
3861 define(JSON, $$toStringTag, 'JSON');
3863 // ---------------------------------------
3865 // ---------------------------------------
3867 //
25.1.1 Common Iteration Interfaces
3868 //
25.1.1.1 The Iterable Interface
3869 //
25.1.1.2 The Iterator Interface
3870 //
25.1.1.3 The IteratorResult Interface
3872 //
25.1.2 The %IteratorPrototype% Object
3873 // Defined earlier, so other prototypes can reference it.
3874 //
25.1.2.1 %IteratorPrototype% [ @@iterator ] ( )
3875 define($IteratorPrototype$, $$iterator, function() {
3880 // ---------------------------------------
3881 //
25.4 Promise Objects
3882 // ---------------------------------------
3885 //
25.4 Promise Objects
3887 //
25.4.1 Promise Abstract Operations
3889 //
25.4.1.1 PromiseCapability Records
3890 //
25.4.1.1.1 IfAbruptRejectPromise ( value, capability )
3892 function IfAbruptRejectPromise(value, capability) {
3893 var rejectResult = capability['[[Reject]]'].call(undefined, value);
3894 return capability['[[Promise]]'];
3897 //
25.4.1.2 PromiseReaction Records
3899 //
25.4.1.3 CreateResolvingFunctions ( promise )
3901 function CreateResolvingFunctions(promise) {
3902 var alreadyResolved = {'[[value]]': false};
3903 var resolve = PromiseResolveFunction();
3904 set_internal(resolve, '[[Promise]]', promise);
3905 set_internal(resolve, '[[AlreadyResolved]]', alreadyResolved);
3906 var reject = PromiseRejectFunction();
3907 set_internal(reject, '[[Promise]]', promise);
3908 set_internal(reject, '[[AlreadyResolved]]', alreadyResolved);
3909 return { '[[Resolve]]': resolve, '[[Reject]]': reject};
3912 //
25.4.1.3.1 Promise Reject Functions
3914 function PromiseRejectFunction() {
3915 var F = function(reason) {
3916 console.assert(Type(F['[[Promise]]']) === 'object');
3917 var promise = F['[[Promise]]'];
3918 var alreadyResolved = F['[[AlreadyResolved]]'];
3919 if (alreadyResolved['[[value]]']) return undefined;
3920 set_internal(alreadyResolved, '[[value]]', true);
3921 return RejectPromise(promise, reason);
3926 //
25.4.1.3.2 Promise Resolve Functions
3928 function PromiseResolveFunction() {
3929 var F = function(resolution) {
3930 console.assert(Type(F['[[Promise]]']) === 'object');
3931 var promise = F['[[Promise]]'];
3932 var alreadyResolved = F['[[AlreadyResolved]]'];
3933 if (alreadyResolved['[[value]]']) return undefined;
3934 set_internal(alreadyResolved, '[[value]]', true);
3936 if (SameValue(resolution, promise)) {
3937 var selfResolutionError = TypeError();
3938 return RejectPromise(promise, selfResolutionError);
3940 if (Type(resolution) !== 'object')
3941 return FulfillPromise(promise, resolution);
3943 var then = resolution['then'];
3945 return RejectPromise(promise, then);
3947 if (!IsCallable(then))
3948 return FulfillPromise(promise, resolution);
3949 EnqueueJob('PromiseJobs', PromiseResolveThenableJob, [promise, resolution, then]);
3955 //
25.4.1.4 FulfillPromise ( promise, value )
3957 function FulfillPromise(promise, value) {
3958 console.assert(promise['[[PromiseState]]'] === 'pending');
3959 var reactions = promise['[[PromiseFulfillReactions]]'];
3960 set_internal(promise, '[[PromiseResult]]', value);
3961 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
3962 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
3963 set_internal(promise, '[[PromiseState]]', 'fulfilled');
3964 return TriggerPromiseReactions(reactions, value);
3967 //
25.4.1.5 NewPromiseCapability ( C )
3969 function NewPromiseCapability(c) {
3970 // To keep Promise hermetic, this doesn't look much like the spec.
3971 return CreatePromiseCapabilityRecord(undefined, c);
3974 //
25.4.1.5.1 CreatePromiseCapabilityRecord ( promise, constructor )
3976 function CreatePromiseCapabilityRecord(promise, constructor) {
3977 // To keep Promise hermetic, this doesn't look much like the spec.
3978 console.assert(IsConstructor(constructor));
3979 var promiseCapability = {};
3980 set_internal(promiseCapability, '[[Promise]]', promise);
3981 set_internal(promiseCapability, '[[Resolve]]', undefined);
3982 set_internal(promiseCapability, '[[Reject]]', undefined);
3983 var executor = GetCapabilitiesExecutor();
3984 set_internal(executor, '[[Capability]]', promiseCapability);
3986 // NOTE: Differs from spec; object is constructed here
3987 var constructorResult = promise = new constructor(executor);
3988 set_internal(promiseCapability, '[[Promise]]', promise);
3990 if (!IsCallable(promiseCapability['[[Resolve]]'])) throw TypeError();
3991 if (!IsCallable(promiseCapability['[[Reject]]'])) throw TypeError();
3992 if (Type(constructorResult) === 'object' && !SameValue(promise, constructorResult)) throw TypeError();
3993 return promiseCapability;
3996 //
25.4.1.5.2 GetCapabilitiesExecutor Functions
3998 function GetCapabilitiesExecutor() {
3999 var F = function(resolve, reject) {
4000 console.assert(F['[[Capability]]']);
4001 var promiseCapability = F['[[Capability]]'];
4002 if (promiseCapability['[[Resolve]]'] !== undefined) throw TypeError();
4003 if (promiseCapability['[[Reject]]'] !== undefined) throw TypeError();
4004 set_internal(promiseCapability, '[[Resolve]]', resolve);
4005 set_internal(promiseCapability, '[[Reject]]', reject);
4011 //
25.4.1.6 IsPromise ( x )
4013 function IsPromise(x) {
4014 if (Type(x) !== 'object') return false;
4015 if (!('[[PromiseState]]' in x)) return false;
4016 if (x['[[PromiseState]]'] === undefined) return false;
4020 //
25.4.1.7 RejectPromise ( promise, reason )
4022 function RejectPromise(promise, reason) {
4023 console.assert(promise['[[PromiseState]]'] === 'pending');
4024 var reactions = promise['[[PromiseRejectReactions]]'];
4025 set_internal(promise, '[[PromiseResult]]', reason);
4026 set_internal(promise, '[[PromiseFulfillReactions]]', undefined);
4027 set_internal(promise, '[[PromiseRejectReactions]]', undefined);
4028 set_internal(promise, '[[PromiseState]]', 'rejected');
4029 return TriggerPromiseReactions(reactions, reason);
4032 //
25.4.1.8 TriggerPromiseReactions ( reactions, argument )
4034 function TriggerPromiseReactions(reactions, argument) {
4035 for (var i =
0, len = reactions.length; i < len; ++i)
4036 EnqueueJob('PromiseJobs', PromiseReactionJob, [reactions[i], argument]);
4040 //
25.4.2 Promise Jobs
4042 //
25.4.2.1 PromiseReactionJob ( reaction, argument )
4044 function PromiseReactionJob(reaction, argument) {
4045 var promiseCapability = reaction['[[Capabilities]]'];
4046 var handler = reaction['[[Handler]]'];
4047 var handlerResult, status;
4049 if (handler === 'Identity') handlerResult = argument;
4050 else if (handler === 'Thrower') throw argument;
4051 else handlerResult = handler.call(undefined, argument);
4052 } catch (handlerResult) {
4053 status = promiseCapability['[[Reject]]'].call(undefined, handlerResult);
4054 NextJob(status); return;
4056 status = promiseCapability['[[Resolve]]'].call(undefined, handlerResult);
4060 //
25.4.2.2 PromiseResolveThenableJob ( promiseToResolve, thenable, then)
4062 function PromiseResolveThenableJob(promiseToResolve, thenable, then) {
4063 // SPEC BUG: promise vs. promiseToResolve
4064 var resolvingFunctions = CreateResolvingFunctions(promiseToResolve);
4066 var thenCallResult = then.call(thenable, resolvingFunctions['[[Resolve]]'],
4067 resolvingFunctions['[[Reject]]']);
4068 } catch (thenCallResult) {
4069 var status = resolvingFunctions['[[Reject]]'].call(undefined, thenCallResult);
4070 NextJob(status); return;
4072 NextJob(thenCallResult);
4075 //
25.4.3 The Promise Constructor
4077 //
25.4.3.1 Promise ( executor )
4079 function Promise(executor) {
4080 var config = { configurable: false, enumerable: false, writable: true, value: undefined };
4081 Object.defineProperty(this, '[[PromiseState]]', config);
4082 Object.defineProperty(this, '[[PromiseConstructor]]', config);
4083 Object.defineProperty(this, '[[PromiseResult]]', config);
4084 Object.defineProperty(this, '[[PromiseFulfillReactions]]', config);
4085 Object.defineProperty(this, '[[PromiseRejectReactions]]', config);
4088 if (Type(promise) !== 'object') throw new TypeError();
4089 if (!('[[PromiseState]]' in promise)) throw TypeError();
4090 if (promise['[[PromiseState]]'] !== undefined) throw TypeError();
4091 if (!IsCallable(executor)) throw TypeError();
4093 set_internal(promise, '[[PromiseConstructor]]', Promise);
4095 return InitializePromise(promise, executor);
4098 //
25.4.3.1.1 InitializePromise ( promise, executor )
4100 function InitializePromise(promise, executor) {
4101 console.assert('[[PromiseState]]' in promise);
4102 console.assert(IsCallable(executor));
4103 set_internal(promise, '[[PromiseState]]', 'pending');
4104 set_internal(promise, '[[PromiseFulfillReactions]]', []);
4105 set_internal(promise, '[[PromiseRejectReactions]]', []);
4106 var resolvingFunctions = CreateResolvingFunctions(promise);
4108 var completion = executor.call(undefined, resolvingFunctions['[[Resolve]]'],
4109 resolvingFunctions['[[Reject]]']);
4110 } catch (completion) {
4111 var status = resolvingFunctions['[[Reject]]'].call(undefined, completion);
4116 //
25.4.4 Properties of the Promise Constructor
4117 //
25.4.4.1 Promise.all ( iterable )
4119 define(Promise, 'all', function all(iterable) {
4120 var c = strict(this);
4121 var promiseCapability = NewPromiseCapability(c);
4123 var iterator = GetIterator(iterable);
4125 promiseCapability['[[Reject]]'].call(undefined, value);
4126 return promiseCapability['[[Promise]]'];
4129 var remainingElementsCount = { value:
1 };
4133 var next = IteratorStep(iterator);
4135 promiseCapability['[[Reject]]'].call(undefined, value);
4136 return promiseCapability['[[Promise]]'];
4139 remainingElementsCount.value -=
1;
4140 if (remainingElementsCount.value ===
0) {
4141 var resolveResult = promiseCapability['[[Resolve]]'].apply(undefined, values);
4145 return promiseCapability['[[Promise]]'];
4148 var nextValue = IteratorValue(next);
4150 promiseCapability['[[Reject]]'].call(undefined, value);
4151 return promiseCapability['[[Promise]]'];
4154 var nextPromise = c.resolve(nextValue);
4156 promiseCapability['[[Reject]]'].call(undefined, value);
4157 return promiseCapability['[[Promise]]'];
4159 var resolveElement = PromiseAllResolveElementFunction();
4160 set_internal(resolveElement, '[[AlreadyCalled]]', { value: false });
4161 set_internal(resolveElement, '[[Index]]', index);
4162 set_internal(resolveElement, '[[Values]]', values);
4163 set_internal(resolveElement, '[[Capabilities]]', promiseCapability);
4164 set_internal(resolveElement, '[[RemainingElements]]', remainingElementsCount);
4165 remainingElementsCount.value +=
1;
4167 var result = nextPromise.then(resolveElement, promiseCapability['[[Reject]]']);
4169 promiseCapability['[[Reject]]'].call(undefined, value);
4170 return promiseCapability['[[Promise]]'];
4176 //
25.4.4.1.1 Promise.all Resolve Element Functions
4178 function PromiseAllResolveElementFunction() {
4179 var F = function(x) {
4180 var alreadyCalled = F['[[AlreadyCalled]]'];
4181 if (alreadyCalled.value) return undefined;
4182 alreadyCalled.value = true;
4183 var index = F['[[Index]]'];
4184 var values = F['[[Values]]'];
4185 var promiseCapability = F['[[Capabilities]]'];
4186 var remainingElementsCount = F['[[RemainingElements]]'];
4190 promiseCapability['[[Reject]]'].call(undefined, result);
4191 return promiseCapability['[[Promise]]'];
4193 remainingElementsCount.value -=
1;
4194 if (remainingElementsCount.value ===
0)
4195 return promiseCapability['[[Resolve]]'].call(undefined, values);
4201 //
25.4.4.2 Promise.prototype
4203 Promise.prototype = {};
4205 //
25.4.4.3 Promise.race ( iterable )
4207 define(Promise, 'race', function race(iterable) {
4208 var c = strict(this);
4209 var promiseCapability = NewPromiseCapability(c);
4211 var iterator = GetIterator(iterable);
4213 promiseCapability['[[Reject]]'].call(undefined, value);
4214 return promiseCapability['[[Promise]]'];
4218 var next = IteratorStep(iterator);
4220 promiseCapability['[[Reject]]'].call(undefined, value);
4221 return promiseCapability['[[Promise]]'];
4223 if (!next) return promiseCapability['[[Promise]]'];
4225 var nextValue = IteratorValue(next);
4227 promiseCapability['[[Reject]]'].call(undefined, value);
4228 return promiseCapability['[[Promise]]'];
4231 var nextPromise = c.resolve(nextValue);
4233 promiseCapability['[[Reject]]'].call(undefined, value);
4234 return promiseCapability['[[Promise]]'];
4237 nextPromise.then(promiseCapability['[[Resolve]]'], promiseCapability['[[Reject]]']);
4239 promiseCapability['[[Reject]]'].call(undefined, value);
4240 return promiseCapability['[[Promise]]'];
4245 //
25.4.4.4 Promise.reject ( r )
4247 define(Promise, 'reject', function reject(r) {
4248 var c = strict(this);
4249 var promiseCapability = NewPromiseCapability(c);
4250 var rejectResult = promiseCapability['[[Reject]]'].call(undefined, r);
4251 return promiseCapability['[[Promise]]'];
4254 //
25.4.4.5 Promise.resolve ( x )
4256 define(Promise, 'resolve', function resolve(x) {
4257 var c = strict(this);
4259 var constructor = x['[[PromiseConstructor]]'];
4260 if (SameValue(constructor, c)) return x;
4262 var promiseCapability = NewPromiseCapability(c);
4263 var resolveResult = promiseCapability['[[Resolve]]'].call(undefined, x);
4264 return promiseCapability['[[Promise]]'];
4267 //
25.4.4.6 Promise [ @@create ] ( )
4268 //
25.4.4.6.1 AllocatePromise ( constructor )
4269 //
25.4.5 Properties of the Promise Prototype Object
4270 //
25.4.5.1 Promise.prototype.catch ( onRejected )
4272 define(Promise.prototype, 'catch', function catch_(onRejected) {
4274 return promise.then(undefined, onRejected);
4277 //
25.4.5.2 Promise.prototype.constructor
4279 Promise.prototype.constructor = Promise;
4281 //
25.4.5.3 Promise.prototype.then ( onFulfilled , onRejected )
4283 define(Promise.prototype, 'then', function then(onFulfilled, onRejected) {
4285 if (!IsPromise(promise)) throw TypeError();
4286 if (!IsCallable(onFulfilled)) onFulfilled = 'Identity';
4287 if (!IsCallable(onRejected)) onRejected = 'Thrower';
4288 var c = promise.constructor;
4289 var promiseCapability = NewPromiseCapability(c);
4290 var fulfillReaction = { '[[Capabilities]]': promiseCapability,
4291 '[[Handler]]': onFulfilled };
4292 var rejectReaction = { '[[Capabilities]]': promiseCapability,
4293 '[[Handler]]': onRejected };
4294 if (promise['[[PromiseState]]'] === 'pending') {
4295 promise['[[PromiseFulfillReactions]]'].push(fulfillReaction);
4296 promise['[[PromiseRejectReactions]]'].push(rejectReaction);
4297 } else if (promise['[[PromiseState]]'] === 'fulfilled') {
4298 var value = promise['[[PromiseResult]]'];
4299 EnqueueJob('PromiseJobs', PromiseReactionJob, [fulfillReaction, value]);
4300 } else if (promise['[[PromiseState]]'] === 'rejected') {
4301 var reason = promise['[[PromiseResult]]'];
4302 EnqueueJob('PromiseJobs', PromiseReactionJob, [rejectReaction, reason]);
4304 return promiseCapability['[[Promise]]'];
4307 //
25.4.6 Properties of Promise Instances
4309 if (!('Promise' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4310 global.Promise = Promise;
4312 // Patch early Promise.cast vs. Promise.resolve implementations
4313 if ('cast' in global.Promise) global.Promise.resolve = global.Promise.cast;
4316 //
25.4.5.1 Promise.prototype [ @@toStringTag ]
4317 define(Promise.prototype, $$toStringTag, 'Promise');
4319 // ---------------------------------------
4321 // ---------------------------------------
4324 //
26.1 The Reflect Object
4325 if (!('Reflect' in global) || OVERRIDE_NATIVE_FOR_TESTING)
4326 global.Reflect = {};
4328 //
26.1.1 Reflect.apply ( target, thisArgument, argumentsList )
4331 function apply(target, thisArgument, argumentsList) {
4332 if (!IsCallable(target)) throw TypeError();
4333 return Function.prototype.apply.call(target, thisArgument, argumentsList);
4336 //
26.1.2 Reflect.construct ( target, argumentsList [, newTarget] )
4338 Reflect, 'construct',
4339 function construct(target, argumentsList) {
4340 return __cons(target, argumentsList);
4343 //
26.1.3 Reflect.defineProperty ( target, propertyKey, attributes )
4345 Reflect, 'defineProperty',
4346 function defineProperty(target, propertyKey, attributes) {
4348 Object.defineProperty(target, propertyKey, attributes);
4355 //
26.1.4 Reflect.deleteProperty ( target, propertyKey )
4357 Reflect, 'deleteProperty',
4358 function deleteProperty(target,name) {
4360 delete target[name];
4361 return !HasOwnProperty(target, name);
4367 //
26.1.5 Reflect.enumerate ( target )
4369 Reflect, 'enumerate',
4370 function enumerate(target) {
4371 target = ToObject(target);
4372 var iterator = Enumerate(target);
4376 //
26.1.6 Reflect.get ( target, propertyKey [ , receiver ])
4379 function get(target, name, receiver) {
4380 target = ToObject(target);
4381 name = String(name);
4382 receiver = (receiver === undefined) ? target : ToObject(receiver);
4383 var desc = getPropertyDescriptor(target, name);
4384 if (desc && 'get' in desc)
4385 return Function.prototype.call.call(desc['get'], receiver);
4386 return target[name];
4389 //
26.1.7 Reflect.getOwnPropertyDescriptor ( target, propertyKey )
4391 Reflect, 'getOwnPropertyDescriptor',
4392 Object.getOwnPropertyDescriptor);
4394 //
26.1.8 Reflect.getPrototypeOf ( target )
4396 Reflect, 'getPrototypeOf',
4397 Object.getPrototypeOf);
4399 //
26.1.9 Reflect.has ( target, propertyKey )
4402 function has(target,name) {
4403 return String(name) in ToObject(target);
4406 //
26.1.10 Reflect.isExtensible (target)
4408 Reflect, 'isExtensible',
4409 Object.isExtensible);
4411 //
26.1.11 Reflect.ownKeys ( target )
4414 function ownKeys(target) {
4415 var obj = ToObject(target);
4416 return Object.getOwnPropertyNames(obj);
4419 //
26.1.12 Reflect.preventExtensions ( target )
4421 Reflect, 'preventExtensions',
4422 function preventExtensions(target) {
4423 try { Object.preventExtensions(target); return true; } catch (_) { return false; }
4426 //
26.1.13 Reflect.set ( target, propertyKey, V [ , receiver ] )
4429 function set(target, name, value, receiver) {
4430 target = ToObject(target);
4431 name = String(name);
4432 receiver = (receiver === undefined) ? target : ToObject(receiver);
4433 var desc = getPropertyDescriptor(target, name);
4435 if (desc && 'set' in desc)
4436 Function.prototype.call.call(desc['set'], receiver, value);
4438 target[name] = value;
4445 //
26.1.14 Reflect.setPrototypeOf ( target, proto )
4447 Reflect, 'setPrototypeOf',
4448 function setPrototypeOf(target, proto) {
4450 target.__proto__ = proto;
4451 return Reflect.getPrototypeOf(target) === proto;
4459 // ---------------------------------------
4460 //
26.2 Proxy Objects
4461 // ---------------------------------------
4463 // Not polyfillable.
4467 // This helper is defined outside the main scope so that the use of
4468 // 'eval' does not taint the scope for minifiers.
4469 function __cons(t, a) {
4470 return eval('new t(' + a.map(function(_, i) { return 'a[' + i + ']'; }).join(',') + ')');
4473 <script>/*! jQuery v2.1
.1 | (c)
2005,
2014 jQuery Foundation, Inc. | jquery.org/license */
4474 !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)
4475 },_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))
4476 },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});
4479 * Bootstrap v3.2.0 (http://getbootstrap.com)
4480 * Copyright 2011-2014 Twitter, Inc.
4481 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
4483 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>
4484 <script>(function() {
4488 * Extend an Object with another Object's properties.
4490 * The source objects are specified as additional arguments.
4492 * @param dst Object the object to extend.
4494 * @return Object the final object.
4496 var _extend = function(dst) {
4497 var sources = Array.prototype.slice.call(arguments,
1);
4498 for (var i=
0; i
<sources.length; ++i) {
4499 var src = sources[i];
4500 for (var p in src) {
4501 if (src.hasOwnProperty(p)) dst[p] = src[p];
4509 * Defer execution of given function.
4510 * @param {Function} func
4512 var _defer = function(func) {
4513 if (typeof setImmediate === 'function') {
4514 return setImmediate(func);
4516 return setTimeout(func,
0);
4521 * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance.
4525 * Calculate levenshtein distance of the two strings.
4527 * @param str1 String the first string.
4528 * @param str2 String the second string.
4529 * @return Integer the levenshtein distance (
0 and above).
4531 get: function(str1, str2) {
4533 if (str1 === str2) return
0;
4534 if (str1.length ===
0) return str2.length;
4535 if (str2.length ===
0) return str1.length;
4538 var prevRow = new Array(str2.length +
1),
4539 curCol, nextCol, i, j, tmp;
4541 // initialise previous row
4542 for (i=
0; i
<prevRow.length; ++i) {
4546 // calculate current row distance from previous row
4547 for (i=
0; i
<str1.length; ++i) {
4550 for (j=
0; j
<str2.length; ++j) {
4554 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
4557 if (nextCol
> tmp) {
4561 tmp = prevRow[j +
1] +
1;
4562 if (nextCol
> tmp) {
4566 // copy current col value into previous (in preparation for next iteration)
4567 prevRow[j] = curCol;
4570 // copy last col value into previous (in preparation for next iteration)
4571 prevRow[j] = nextCol;
4578 * Asynchronously calculate levenshtein distance of the two strings.
4580 * @param str1 String the first string.
4581 * @param str2 String the second string.
4582 * @param cb Function callback function with signature: function(Error err, int distance)
4583 * @param [options] Object additional options.
4584 * @param [options.progress] Function progress callback with signature: function(percentComplete)
4586 getAsync: function(str1, str2, cb, options) {
4587 options = _extend({}, {
4592 if (str1 === str2) return cb(null,
0);
4593 if (str1.length ===
0) return cb(null, str2.length);
4594 if (str2.length ===
0) return cb(null, str1.length);
4597 var prevRow = new Array(str2.length +
1),
4600 startTime, currentTime;
4602 // initialise previous row
4603 for (i=
0; i
<prevRow.length; ++i) {
4611 var __calculate = function() {
4613 startTime = new Date().valueOf();
4614 currentTime = startTime;
4616 // keep going until one second has elapsed
4617 while (currentTime - startTime <
1000) {
4618 // reached end of current row?
4619 if (str2.length <= (++j)) {
4620 // copy current into previous (in preparation for next iteration)
4621 prevRow[j] = nextCol;
4623 // if already done all chars
4624 if (str1.length <= (++i)) {
4625 return cb(null, nextCol);
4627 // else if we have more left to do
4638 nextCol = prevRow[j] + ( (str1.charAt(i) === str2.charAt(j)) ?
0 :
1 );
4641 if (nextCol
> tmp) {
4645 tmp = prevRow[j +
1] +
1;
4646 if (nextCol
> tmp) {
4650 // copy current into previous (in preparation for next iteration)
4651 prevRow[j] = curCol;
4654 currentTime = new Date().valueOf();
4657 // send a progress update?
4658 if (null !== options.progress) {
4660 options.progress.call(null, (i *
100.0/ str1.length));
4662 return cb('Progress callback: ' + err.toString());
4667 _defer(__calculate);
4676 if (typeof define !== "undefined" && define !== null && define.amd) {
4682 else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) {
4683 module.exports = Levenshtein;
4686 else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') {
4687 self.Levenshtein = Levenshtein;
4689 // browser main thread
4690 else if (typeof window !== "undefined" && window !== null) {
4691 window.Levenshtein = Levenshtein;
4696 <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},
4697 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;
4698 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-
4699 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]=
4700 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},
4701 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=
4702 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-
4703 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,
4704 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=
4705 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&&
4706 (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,
4707 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)-
4708 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:"+
4709 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:"+
4710 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+
4711 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),
4712 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>
4713 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],
4714 [
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,
4715 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,
4716 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,
4717 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,
4718 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,
4719 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*
4720 (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,
4721 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),
4722 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",
4723 d+
"px").css(
"background-color",a.isDark(e,i)?h.foreground:h.background).appendTo(f)}}a=c;$(a).appendTo(this)})}})($);
4725 <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){
4726 // (public) Constructor
4727 function BigInteger(a, b, c) {
4728 if (!(this instanceof BigInteger))
4729 return new BigInteger(a, b, c)
4732 if (
"number" == typeof a) this.fromNumber(a, b, c)
4733 else if (b == null &&
"string" != typeof a) this.fromString(a,
256)
4734 else this.fromString(a, b)
4738 var proto = BigInteger.prototype
4740 // duck-typed isBigInteger
4741 proto.__bigi = require('../package.json').version
4742 BigInteger.isBigInteger = function (obj, check_ver) {
4743 return obj && obj.__bigi && (!check_ver || obj.__bigi === proto.__bigi)
4749 // am: Compute w_j += (x*this_i), propagate carries,
4750 // c is initial carry, returns final carry.
4751 // c <
3*dvalue, x <
2*dvalue, this_i < dvalue
4752 // We need to select the fastest one that works in this environment.
4754 // am1: use a single mult and divide to get the high bits,
4755 // max digit bits should be
26 because
4756 // max internal value =
2*dvalue^
2-
2*dvalue (<
2^
53)
4757 function am1(i, x, w, j, c, n) {
4759 var v = x * this[i++] + w[j] + c
4760 c = Math.floor(v /
0x4000000)
4761 w[j++] = v &
0x3ffffff
4765 // am2 avoids a big mult-and-extract completely.
4766 // Max digit bits should be <=
30 because we do bitwise ops
4767 // on values up to
2*hdvalue^
2-hdvalue-
1 (<
2^
31)
4768 function am2(i, x, w, j, c, n) {
4769 var xl = x &
0x7fff,
4772 var l = this[i] &
0x7fff
4773 var h = this[i++]
>> 15
4774 var m = xh * l + h * xl
4775 l = xl * l + ((m &
0x7fff) <<
15) + w[j] + (c &
0x3fffffff)
4776 c = (l
>>> 30) + (m
>>> 15) + xh * h + (c
>>> 30)
4777 w[j++] = l &
0x3fffffff
4781 // Alternately, set max digit bits to
28 since some
4782 // browsers slow down when dealing with
32-bit numbers.
4783 function am3(i, x, w, j, c, n) {
4784 var xl = x &
0x3fff,
4787 var l = this[i] &
0x3fff
4788 var h = this[i++]
>> 14
4789 var m = xh * l + h * xl
4790 l = xl * l + ((m &
0x3fff) <<
14) + w[j] + c
4791 c = (l
>> 28) + (m
>> 14) + xh * h
4792 w[j++] = l &
0xfffffff
4798 BigInteger.prototype.am = am1
4801 BigInteger.prototype.DB = dbits
4802 BigInteger.prototype.DM = ((
1 << dbits) -
1)
4803 var DV = BigInteger.prototype.DV = (
1 << dbits)
4806 BigInteger.prototype.FV = Math.pow(
2, BI_FP)
4807 BigInteger.prototype.F1 = BI_FP - dbits
4808 BigInteger.prototype.F2 =
2 * dbits - BI_FP
4810 // Digit conversions
4811 var BI_RM =
"0123456789abcdefghijklmnopqrstuvwxyz"
4812 var BI_RC = new Array()
4814 rr =
"0".charCodeAt(
0)
4815 for (vv =
0; vv <=
9; ++vv) BI_RC[rr++] = vv
4816 rr =
"a".charCodeAt(
0)
4817 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
4818 rr =
"A".charCodeAt(
0)
4819 for (vv =
10; vv <
36; ++vv) BI_RC[rr++] = vv
4821 function int2char(n) {
4822 return BI_RM.charAt(n)
4825 function intAt(s, i) {
4826 var c = BI_RC[s.charCodeAt(i)]
4827 return (c == null) ? -
1 : c
4830 // (protected) copy this to r
4831 function bnpCopyTo(r) {
4832 for (var i = this.t -
1; i
>=
0; --i) r[i] = this[i]
4837 // (protected) set from integer value x, -DV <= x < DV
4838 function bnpFromInt(x) {
4840 this.s = (x <
0) ? -
1 :
0
4841 if (x
> 0) this[
0] = x
4842 else if (x < -
1) this[
0] = x + DV
4846 // return bigint initialized to value
4848 var r = new BigInteger()
4853 // (protected) set from string and radix
4854 function bnpFromString(s, b) {
4859 else if (b ==
8) k =
3
4860 else if (b ==
256) k =
8; // byte array
4861 else if (b ==
2) k =
1
4862 else if (b ==
32) k =
5
4863 else if (b ==
4) k =
2
4865 self.fromRadix(s, b)
4874 var x = (k ==
8) ? s[i] &
0xff : intAt(s, i)
4876 if (s.charAt(i) == "-") mi = true
4882 else if (sh + k
> self.DB) {
4883 self[self.t -
1] |= (x & ((
1 << (self.DB - sh)) -
1)) << sh
4884 self[self.t++] = (x
>> (self.DB - sh))
4886 self[self.t -
1] |= x << sh
4888 if (sh
>= self.DB) sh -= self.DB
4890 if (k ==
8 && (s[
0] &
0x80) !=
0) {
4892 if (sh
> 0) self[self.t -
1] |= ((
1 << (self.DB - sh)) -
1) << sh
4895 if (mi) BigInteger.ZERO.subTo(self, self)
4898 // (protected) clamp off excess high words
4899 function bnpClamp() {
4900 var c = this.s & this.DM
4901 while (this.t
> 0 && this[this.t -
1] == c)--this.t
4904 // (public) return string representation in given radix
4905 function bnToString(b) {
4907 if (self.s <
0) return
"-" + self.negate()
4911 else if (b ==
8) k =
3
4912 else if (b ==
2) k =
1
4913 else if (b ==
32) k =
5
4914 else if (b ==
4) k =
2
4915 else return self.toRadix(b)
4916 var km = (
1 << k) -
1,
4920 var p = self.DB - (i * self.DB) % k
4922 if (p < self.DB && (d = self[i]
>> p)
> 0) {
4928 d = (self[i] & ((
1 << p) -
1)) << (k - p)
4929 d |= self[--i]
>> (p += self.DB - k)
4931 d = (self[i]
>> (p -= k)) & km
4938 if (m) r += int2char(d)
4945 function bnNegate() {
4946 var r = new BigInteger()
4947 BigInteger.ZERO.subTo(this, r)
4953 return (this.s <
0) ? this.negate() : this
4956 // (public) return + if this
> a, - if this < a,
0 if equal
4957 function bnCompareTo(a) {
4958 var r = this.s - a.s
4959 if (r !=
0) return r
4962 if (r !=
0) return (this.s <
0) ? -r : r
4964 if ((r = this[i] - a[i]) !=
0) return r
4968 // returns bit length of the integer x
4972 if ((t = x
>>> 16) !=
0) {
4976 if ((t = x
>> 8) !=
0) {
4980 if ((t = x
>> 4) !=
0) {
4984 if ((t = x
>> 2) !=
0) {
4988 if ((t = x
>> 1) !=
0) {
4995 // (public) return the number of bits in
"this"
4996 function bnBitLength() {
4997 if (this.t <=
0) return
0
4998 return this.DB * (this.t -
1) + nbits(this[this.t -
1] ^ (this.s & this.DM))
5001 // (public) return the number of bytes in
"this"
5002 function bnByteLength() {
5003 return this.bitLength()
>> 3
5006 // (protected) r = this << n*DB
5007 function bnpDLShiftTo(n, r) {
5009 for (i = this.t -
1; i
>=
0; --i) r[i + n] = this[i]
5010 for (i = n -
1; i
>=
0; --i) r[i] =
0
5015 // (protected) r = this
>> n*DB
5016 function bnpDRShiftTo(n, r) {
5017 for (var i = n; i < this.t; ++i) r[i - n] = this[i]
5018 r.t = Math.max(this.t - n,
0)
5022 // (protected) r = this << n
5023 function bnpLShiftTo(n, r) {
5025 var bs = n % self.DB
5026 var cbs = self.DB - bs
5027 var bm = (
1 << cbs) -
1
5028 var ds = Math.floor(n / self.DB),
5029 c = (self.s << bs) & self.DM,
5031 for (i = self.t -
1; i
>=
0; --i) {
5032 r[i + ds +
1] = (self[i]
>> cbs) | c
5033 c = (self[i] & bm) << bs
5035 for (i = ds -
1; i
>=
0; --i) r[i] =
0
5037 r.t = self.t + ds +
1
5042 // (protected) r = this
>> n
5043 function bnpRShiftTo(n, r) {
5046 var ds = Math.floor(n / self.DB)
5051 var bs = n % self.DB
5052 var cbs = self.DB - bs
5053 var bm = (
1 << bs) -
1
5054 r[
0] = self[ds]
>> bs
5055 for (var i = ds +
1; i < self.t; ++i) {
5056 r[i - ds -
1] |= (self[i] & bm) << cbs
5057 r[i - ds] = self[i]
>> bs
5059 if (bs
> 0) r[self.t - ds -
1] |= (self.s & bm) << cbs
5064 // (protected) r = this - a
5065 function bnpSubTo(a, r) {
5069 m = Math.min(a.t, self.t)
5072 r[i++] = c & self.DM
5077 while (i < self.t) {
5079 r[i++] = c & self.DM
5087 r[i++] = c & self.DM
5092 r.s = (c <
0) ? -
1 :
0
5093 if (c < -
1) r[i++] = self.DV + c
5094 else if (c
> 0) r[i++] = c
5099 // (protected) r = this * a, r != this,a (HAC
14.12)
5100 //
"this" should be the larger one if appropriate.
5101 function bnpMultiplyTo(a, r) {
5106 while (--i
>=
0) r[i] =
0
5107 for (i =
0; i < y.t; ++i) r[i + x.t] = x.am(
0, y[i], r, i,
0, x.t)
5110 if (this.s != a.s) BigInteger.ZERO.subTo(r, r)
5113 // (protected) r = this^
2, r != this (HAC
14.16)
5114 function bnpSquareTo(r) {
5116 var i = r.t =
2 * x.t
5117 while (--i
>=
0) r[i] =
0
5118 for (i =
0; i < x.t -
1; ++i) {
5119 var c = x.am(i, x[i], r,
2 * i,
0,
1)
5120 if ((r[i + x.t] += x.am(i +
1,
2 * x[i], r,
2 * i +
1, c, x.t - i -
1))
>= x.DV) {
5125 if (r.t
> 0) r[r.t -
1] += x.am(i, x[i], r,
2 * i,
0,
1)
5130 // (protected) divide this by m, quotient and remainder to q, r (HAC
14.20)
5131 // r != q, this != m. q or r may be null.
5132 function bnpDivRemTo(m, q, r) {
5135 if (pm.t <=
0) return
5138 if (q != null) q.fromInt(
0)
5139 if (r != null) self.copyTo(r)
5142 if (r == null) r = new BigInteger()
5143 var y = new BigInteger(),
5146 var nsh = self.DB - nbits(pm[pm.t -
1]); // normalize modulus
5157 var yt = y0 * (
1 << self.F1) + ((ys
> 1) ? y[ys -
2]
>> self.F2 :
0)
5158 var d1 = self.FV / yt,
5159 d2 = (
1 << self.F1) / yt,
5163 t = (q == null) ? new BigInteger() : q
5165 if (r.compareTo(t)
>=
0) {
5169 BigInteger.ONE.dlShiftTo(ys, t)
5170 t.subTo(y, y); // "negative" y so we can replace sub with am later
5171 while (y.t < ys) y[y.t++] =
0
5173 // Estimate quotient digit
5174 var qd = (r[--i] == y0) ? self.DM : Math.floor(r[i] * d1 + (r[i -
1] + e) * d2)
5175 if ((r[i] += y.am(
0, qd, r, j,
0, ys)) < qd) { // Try it out
5178 while (r[i] < --qd) r.subTo(t, r)
5183 if (ts != ms) BigInteger.ZERO.subTo(q, q)
5187 if (nsh
> 0) r.rShiftTo(nsh, r); // Denormalize remainder
5188 if (ts <
0) BigInteger.ZERO.subTo(r, r)
5191 // (public) this mod a
5193 var r = new BigInteger()
5195 .divRemTo(a, null, r)
5196 if (this.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) a.subTo(r, r)
5200 // Modular reduction using
"classic" algorithm
5201 function Classic(m) {
5205 function cConvert(x) {
5206 if (x.s <
0 || x.compareTo(this.m)
>=
0) return x.mod(this.m)
5210 function cRevert(x) {
5214 function cReduce(x) {
5215 x.divRemTo(this.m, null, x)
5218 function cMulTo(x, y, r) {
5223 function cSqrTo(x, r) {
5228 Classic.prototype.convert = cConvert
5229 Classic.prototype.revert = cRevert
5230 Classic.prototype.reduce = cReduce
5231 Classic.prototype.mulTo = cMulTo
5232 Classic.prototype.sqrTo = cSqrTo
5234 // (protected) return "-
1/this %
2^DB"; useful for Mont. reduction
5238 // xy(
2-xy) = (
1+km)(
1-km)
5239 // x[y(
2-xy)] =
1-k^
2m^
2
5240 // x[y(
2-xy)] ==
1 (mod m^
2)
5241 // if y is
1/x mod m, then y(
2-xy) is
1/x mod m^
2
5242 // should reduce x and y(
2-xy) by m^
2 at each step to keep size bounded.
5243 // JS multiply "overflows" differently from C/C++, so care is needed here.
5244 function bnpInvDigit() {
5245 if (this.t <
1) return
0
5247 if ((x &
1) ==
0) return
0
5248 var y = x &
3; // y ==
1/x mod
2^
2
5249 y = (y * (
2 - (x &
0xf) * y)) &
0xf; // y ==
1/x mod
2^
4
5250 y = (y * (
2 - (x &
0xff) * y)) &
0xff; // y ==
1/x mod
2^
8
5251 y = (y * (
2 - (((x &
0xffff) * y) &
0xffff))) &
0xffff; // y ==
1/x mod
2^
16
5252 // last step - calculate inverse mod DV directly
5253 // assumes
16 < DB <=
32 and assumes ability to handle
48-bit ints
5254 y = (y * (
2 - x * y % this.DV)) % this.DV; // y ==
1/x mod
2^dbits
5255 // we really want the negative inverse, and -DV < y < DV
5256 return (y
> 0) ? this.DV - y : -y
5259 // Montgomery reduction
5260 function Montgomery(m) {
5262 this.mp = m.invDigit()
5263 this.mpl = this.mp &
0x7fff
5264 this.mph = this.mp
>> 15
5265 this.um = (
1 << (m.DB -
15)) -
1
5270 function montConvert(x) {
5271 var r = new BigInteger()
5273 .dlShiftTo(this.m.t, r)
5274 r.divRemTo(this.m, null, r)
5275 if (x.s <
0 && r.compareTo(BigInteger.ZERO)
> 0) this.m.subTo(r, r)
5280 function montRevert(x) {
5281 var r = new BigInteger()
5287 // x = x/R mod m (HAC
14.32)
5288 function montReduce(x) {
5289 while (x.t <= this.mt2) // pad x so am has enough room later
5291 for (var i =
0; i < this.m.t; ++i) {
5292 // faster way of calculating u0 = x[i]*mp mod DV
5293 var j = x[i] &
0x7fff
5294 var u0 = (j * this.mpl + (((j * this.mph + (x[i]
>> 15) * this.mpl) & this.um) <<
15)) & x.DM
5295 // use am to combine the multiply-shift-add into one call
5297 x[j] += this.m.am(
0, u0, x, i,
0, this.m.t)
5299 while (x[j]
>= x.DV) {
5305 x.drShiftTo(this.m.t, x)
5306 if (x.compareTo(this.m)
>=
0) x.subTo(this.m, x)
5309 // r = "x^
2/R mod m"; x != r
5310 function montSqrTo(x, r) {
5315 // r = "xy/R mod m"; x,y != r
5316 function montMulTo(x, y, r) {
5321 Montgomery.prototype.convert = montConvert
5322 Montgomery.prototype.revert = montRevert
5323 Montgomery.prototype.reduce = montReduce
5324 Montgomery.prototype.mulTo = montMulTo
5325 Montgomery.prototype.sqrTo = montSqrTo
5327 // (protected) true iff this is even
5328 function bnpIsEven() {
5329 return ((this.t
> 0) ? (this[
0] &
1) : this.s) ==
0
5332 // (protected) this^e, e <
2^
32, doing sqr and mul with
"r" (HAC
14.79)
5333 function bnpExp(e, z) {
5334 if (e
> 0xffffffff || e <
1) return BigInteger.ONE
5335 var r = new BigInteger(),
5336 r2 = new BigInteger(),
5337 g = z.convert(this),
5342 if ((e & (
1 << i))
> 0) z.mulTo(r2, g, r)
5352 // (public) this^e % m,
0 <= e <
2^
32
5353 function bnModPowInt(e, m) {
5355 if (e <
256 || m.isEven()) z = new Classic(m)
5356 else z = new Montgomery(m)
5357 return this.exp(e, z)
5361 proto.copyTo = bnpCopyTo
5362 proto.fromInt = bnpFromInt
5363 proto.fromString = bnpFromString
5364 proto.clamp = bnpClamp
5365 proto.dlShiftTo = bnpDLShiftTo
5366 proto.drShiftTo = bnpDRShiftTo
5367 proto.lShiftTo = bnpLShiftTo
5368 proto.rShiftTo = bnpRShiftTo
5369 proto.subTo = bnpSubTo
5370 proto.multiplyTo = bnpMultiplyTo
5371 proto.squareTo = bnpSquareTo
5372 proto.divRemTo = bnpDivRemTo
5373 proto.invDigit = bnpInvDigit
5374 proto.isEven = bnpIsEven
5378 proto.toString = bnToString
5379 proto.negate = bnNegate
5381 proto.compareTo = bnCompareTo
5382 proto.bitLength = bnBitLength
5383 proto.byteLength = bnByteLength
5385 proto.modPowInt = bnModPowInt
5388 function bnClone() {
5389 var r = new BigInteger()
5394 // (public) return value as integer
5395 function bnIntValue() {
5397 if (this.t ==
1) return this[
0] - this.DV
5398 else if (this.t ==
0) return -
1
5399 } else if (this.t ==
1) return this[
0]
5400 else if (this.t ==
0) return
0
5401 // assumes
16 < DB <
32
5402 return ((this[
1] & ((
1 << (
32 - this.DB)) -
1)) << this.DB) | this[
0]
5405 // (public) return value as byte
5406 function bnByteValue() {
5407 return (this.t ==
0) ? this.s : (this[
0] <<
24)
>> 24
5410 // (public) return value as short (assumes DB
>=
16)
5411 function bnShortValue() {
5412 return (this.t ==
0) ? this.s : (this[
0] <<
16)
>> 16
5415 // (protected) return x s.t. r^x < DV
5416 function bnpChunkSize(r) {
5417 return Math.floor(Math.LN2 * this.DB / Math.log(r))
5420 // (public)
0 if this ==
0,
1 if this
> 0
5421 function bnSigNum() {
5422 if (this.s <
0) return -
1
5423 else if (this.t <=
0 || (this.t ==
1 && this[
0] <=
0)) return
0
5427 // (protected) convert to radix string
5428 function bnpToRadix(b) {
5429 if (b == null) b =
10
5430 if (this.signum() ==
0 || b <
2 || b
> 36) return
"0"
5431 var cs = this.chunkSize(b)
5432 var a = Math.pow(b, cs)
5434 y = new BigInteger(),
5435 z = new BigInteger(),
5437 this.divRemTo(d, y, z)
5438 while (y.signum()
> 0) {
5439 r = (a + z.intValue())
5448 // (protected) convert from radix string
5449 function bnpFromRadix(s, b) {
5452 if (b == null) b =
10
5453 var cs = self.chunkSize(b)
5454 var d = Math.pow(b, cs),
5458 for (var i =
0; i < s.length; ++i) {
5461 if (s.charAt(i) ==
"-" && self.signum() ==
0) mi = true
5467 self.dAddOffset(w,
0)
5473 self.dMultiply(Math.pow(b, j))
5474 self.dAddOffset(w,
0)
5476 if (mi) BigInteger.ZERO.subTo(self, self)
5479 // (protected) alternate constructor
5480 function bnpFromNumber(a, b, c) {
5482 if (
"number" == typeof b) {
5483 // new BigInteger(int,int,RNG)
5484 if (a <
2) self.fromInt(
1)
5486 self.fromNumber(a, c)
5487 if (!self.testBit(a -
1)) // force MSB set
5488 self.bitwiseTo(BigInteger.ONE.shiftLeft(a -
1), op_or, self)
5489 if (self.isEven()) self.dAddOffset(
1,
0); // force odd
5490 while (!self.isProbablePrime(b)) {
5491 self.dAddOffset(
2,
0)
5492 if (self.bitLength()
> a) self.subTo(BigInteger.ONE.shiftLeft(a -
1), self)
5496 // new BigInteger(int,RNG)
5497 var x = new Array(),
5499 x.length = (a
>> 3) +
1
5501 if (t
> 0) x[
0] &= ((
1 << t) -
1)
5503 self.fromString(x,
256)
5507 // (public) convert to bigendian byte array
5508 function bnToByteArray() {
5513 var p = self.DB - (i * self.DB) %
8,
5516 if (p < self.DB && (d = self[i]
>> p) != (self.s & self.DM)
>> p)
5517 r[k++] = d | (self.s << (self.DB - p))
5520 d = (self[i] & ((
1 << p) -
1)) << (
8 - p)
5521 d |= self[--i]
>> (p += self.DB -
8)
5523 d = (self[i]
>> (p -=
8)) &
0xff
5529 if ((d &
0x80) !=
0) d |= -
256
5530 if (k ===
0 && (self.s &
0x80) != (d &
0x80))++k
5531 if (k
> 0 || d != self.s) r[k++] = d
5537 function bnEquals(a) {
5538 return (this.compareTo(a) ==
0)
5542 return (this.compareTo(a) <
0) ? this : a
5546 return (this.compareTo(a)
> 0) ? this : a
5549 // (protected) r = this op a (bitwise)
5550 function bnpBitwiseTo(a, op, r) {
5552 var i, f, m = Math.min(a.t, self.t)
5553 for (i =
0; i < m; ++i) r[i] = op(self[i], a[i])
5556 for (i = m; i < self.t; ++i) r[i] = op(self[i], f)
5559 f = self.s & self.DM
5560 for (i = m; i < a.t; ++i) r[i] = op(f, a[i])
5563 r.s = op(self.s, a.s)
5567 // (public) this & a
5568 function op_and(x, y) {
5573 var r = new BigInteger()
5574 this.bitwiseTo(a, op_and, r)
5578 // (public) this | a
5579 function op_or(x, y) {
5584 var r = new BigInteger()
5585 this.bitwiseTo(a, op_or, r)
5589 // (public) this ^ a
5590 function op_xor(x, y) {
5595 var r = new BigInteger()
5596 this.bitwiseTo(a, op_xor, r)
5600 // (public) this & ~a
5601 function op_andnot(x, y) {
5605 function bnAndNot(a) {
5606 var r = new BigInteger()
5607 this.bitwiseTo(a, op_andnot, r)
5613 var r = new BigInteger()
5614 for (var i =
0; i < this.t; ++i) r[i] = this.DM & ~this[i]
5620 // (public) this << n
5621 function bnShiftLeft(n) {
5622 var r = new BigInteger()
5623 if (n <
0) this.rShiftTo(-n, r)
5624 else this.lShiftTo(n, r)
5628 // (public) this
>> n
5629 function bnShiftRight(n) {
5630 var r = new BigInteger()
5631 if (n <
0) this.lShiftTo(-n, r)
5632 else this.rShiftTo(n, r)
5636 // return index of lowest
1-bit in x, x <
2^
31
5638 if (x ==
0) return -
1
5640 if ((x &
0xffff) ==
0) {
5644 if ((x &
0xff) ==
0) {
5648 if ((x &
0xf) ==
0) {
5656 if ((x &
1) ==
0)++r
5660 // (public) returns index of lowest
1-bit (or -
1 if none)
5661 function bnGetLowestSetBit() {
5662 for (var i =
0; i < this.t; ++i)
5663 if (this[i] !=
0) return i * this.DB + lbit(this[i])
5664 if (this.s <
0) return this.t * this.DB
5668 // return number of
1 bits in x
5678 // (public) return number of set bits
5679 function bnBitCount() {
5681 x = this.s & this.DM
5682 for (var i =
0; i < this.t; ++i) r += cbit(this[i] ^ x)
5686 // (public) true iff nth bit is set
5687 function bnTestBit(n) {
5688 var j = Math.floor(n / this.DB)
5689 if (j
>= this.t) return (this.s !=
0)
5690 return ((this[j] & (
1 << (n % this.DB))) !=
0)
5693 // (protected) this op (
1<
<n)
5694 function bnpChangeBit(n, op) {
5695 var r = BigInteger.ONE.shiftLeft(n)
5696 this.bitwiseTo(r, op, r)
5700 // (public) this | (
1<
<n)
5701 function bnSetBit(n) {
5702 return this.changeBit(n, op_or)
5705 // (public) this & ~(
1<
<n)
5706 function bnClearBit(n) {
5707 return this.changeBit(n, op_andnot)
5710 // (public) this ^ (
1<
<n)
5711 function bnFlipBit(n) {
5712 return this.changeBit(n, op_xor)
5715 // (protected) r = this + a
5716 function bnpAddTo(a, r) {
5721 m = Math.min(a.t, self.t)
5724 r[i++] = c & self.DM
5729 while (i < self.t) {
5731 r[i++] = c & self.DM
5739 r[i++] = c & self.DM
5744 r.s = (c <
0) ? -
1 :
0
5745 if (c
> 0) r[i++] = c
5746 else if (c < -
1) r[i++] = self.DV + c
5751 // (public) this + a
5753 var r = new BigInteger()
5758 // (public) this - a
5759 function bnSubtract(a) {
5760 var r = new BigInteger()
5765 // (public) this * a
5766 function bnMultiply(a) {
5767 var r = new BigInteger()
5768 this.multiplyTo(a, r)
5773 function bnSquare() {
5774 var r = new BigInteger()
5779 // (public) this / a
5780 function bnDivide(a) {
5781 var r = new BigInteger()
5782 this.divRemTo(a, r, null)
5786 // (public) this % a
5787 function bnRemainder(a) {
5788 var r = new BigInteger()
5789 this.divRemTo(a, null, r)
5793 // (public) [this/a,this%a]
5794 function bnDivideAndRemainder(a) {
5795 var q = new BigInteger(),
5796 r = new BigInteger()
5797 this.divRemTo(a, q, r)
5798 return new Array(q, r)
5801 // (protected) this *= n, this
>=
0,
1 < n < DV
5802 function bnpDMultiply(n) {
5803 this[this.t] = this.am(
0, n -
1, this,
0,
0, this.t)
5808 // (protected) this += n << w words, this
>=
0
5809 function bnpDAddOffset(n, w) {
5811 while (this.t <= w) this[this.t++] =
0
5813 while (this[w]
>= this.DV) {
5815 if (++w
>= this.t) this[this.t++] =
0
5821 function NullExp() {}
5827 function nMulTo(x, y, r) {
5831 function nSqrTo(x, r) {
5835 NullExp.prototype.convert = nNop
5836 NullExp.prototype.revert = nNop
5837 NullExp.prototype.mulTo = nMulTo
5838 NullExp.prototype.sqrTo = nSqrTo
5842 return this.exp(e, new NullExp())
5845 // (protected) r = lower n words of "this * a", a.t <= n
5846 // "this" should be the larger one if appropriate.
5847 function bnpMultiplyLowerTo(a, n, r) {
5848 var i = Math.min(this.t + a.t, n)
5849 r.s =
0; // assumes a,this
>=
0
5851 while (i
> 0) r[--i] =
0
5853 for (j = r.t - this.t; i < j; ++i) r[i + this.t] = this.am(
0, a[i], r, i,
0, this.t)
5854 for (j = Math.min(a.t, n); i < j; ++i) this.am(
0, a[i], r, i,
0, n - i)
5858 // (protected) r =
"this * a" without lower n words, n
> 0
5859 //
"this" should be the larger one if appropriate.
5860 function bnpMultiplyUpperTo(a, n, r) {
5862 var i = r.t = this.t + a.t - n
5863 r.s =
0; // assumes a,this
>=
0
5864 while (--i
>=
0) r[i] =
0
5865 for (i = Math.max(n - this.t,
0); i < a.t; ++i)
5866 r[this.t + i - n] = this.am(n - i, a[i], r,
0,
0, this.t + i - n)
5871 // Barrett modular reduction
5872 function Barrett(m) {
5874 this.r2 = new BigInteger()
5875 this.q3 = new BigInteger()
5876 BigInteger.ONE.dlShiftTo(
2 * m.t, this.r2)
5877 this.mu = this.r2.divide(m)
5881 function barrettConvert(x) {
5882 if (x.s <
0 || x.t
> 2 * this.m.t) return x.mod(this.m)
5883 else if (x.compareTo(this.m) <
0) return x
5885 var r = new BigInteger()
5892 function barrettRevert(x) {
5896 // x = x mod m (HAC
14.42)
5897 function barrettReduce(x) {
5899 x.drShiftTo(self.m.t -
1, self.r2)
5900 if (x.t
> self.m.t +
1) {
5904 self.mu.multiplyUpperTo(self.r2, self.m.t +
1, self.q3)
5905 self.m.multiplyLowerTo(self.q3, self.m.t +
1, self.r2)
5906 while (x.compareTo(self.r2) <
0) x.dAddOffset(
1, self.m.t +
1)
5908 while (x.compareTo(self.m)
>=
0) x.subTo(self.m, x)
5911 // r = x^
2 mod m; x != r
5912 function barrettSqrTo(x, r) {
5917 // r = x*y mod m; x,y != r
5918 function barrettMulTo(x, y, r) {
5923 Barrett.prototype.convert = barrettConvert
5924 Barrett.prototype.revert = barrettRevert
5925 Barrett.prototype.reduce = barrettReduce
5926 Barrett.prototype.mulTo = barrettMulTo
5927 Barrett.prototype.sqrTo = barrettSqrTo
5929 // (public) this^e % m (HAC
14.85)
5930 function bnModPow(e, m) {
5931 var i = e.bitLength(),
5934 if (i <=
0) return r
5935 else if (i <
18) k =
1
5936 else if (i <
48) k =
3
5937 else if (i <
144) k =
4
5938 else if (i <
768) k =
5
5942 else if (m.isEven())
5945 z = new Montgomery(m)
5948 var g = new Array(),
5952 g[
1] = z.convert(this)
5954 var g2 = new BigInteger()
5957 g[n] = new BigInteger()
5958 z.mulTo(g2, g[n -
2], g[n])
5965 r2 = new BigInteger(),
5969 if (i
>= k1) w = (e[j]
>> (i - k1)) & km
5971 w = (e[j] & ((
1 << (i +
1)) -
1)) << (k1 - i)
5972 if (j
> 0) w |= e[j -
1]
>> (this.DB + i - k1)
5976 while ((w &
1) ==
0) {
5984 if (is1) { // ret ==
1, don't bother squaring or multiplying it
5993 if (n
> 0) z.sqrTo(r, r2)
5999 z.mulTo(r2, g[w], r)
6002 while (j
>=
0 && (e[j] & (
1 << i)) ==
0) {
6016 // (public) gcd(this,a) (HAC
14.54)
6018 var x = (this.s <
0) ? this.negate() : this.clone()
6019 var y = (a.s <
0) ? a.negate() : a.clone()
6020 if (x.compareTo(y) <
0) {
6025 var i = x.getLowestSetBit(),
6026 g = y.getLowestSetBit()
6033 while (x.signum()
> 0) {
6034 if ((i = x.getLowestSetBit())
> 0) x.rShiftTo(i, x)
6035 if ((i = y.getLowestSetBit())
> 0) y.rShiftTo(i, y)
6036 if (x.compareTo(y)
>=
0) {
6044 if (g
> 0) y.lShiftTo(g, y)
6048 // (protected) this % n, n <
2^
26
6049 function bnpModInt(n) {
6050 if (n <=
0) return
0
6051 var d = this.DV % n,
6052 r = (this.s <
0) ? n -
1 :
0
6054 if (d ==
0) r = this[
0] % n
6056 for (var i = this.t -
1; i
>=
0; --i) r = (d * r + this[i]) % n
6060 // (public)
1/this % m (HAC
14.61)
6061 function bnModInverse(m) {
6063 if ((this.isEven() && ac) || m.signum() ==
0) return BigInteger.ZERO
6070 while (u.signum() !=
0) {
6071 while (u.isEven()) {
6074 if (!a.isEven() || !b.isEven()) {
6079 } else if (!b.isEven()) b.subTo(m, b)
6082 while (v.isEven()) {
6085 if (!c.isEven() || !d.isEven()) {
6090 } else if (!d.isEven()) d.subTo(m, d)
6093 if (u.compareTo(v)
>=
0) {
6095 if (ac) a.subTo(c, a)
6099 if (ac) c.subTo(a, c)
6103 if (v.compareTo(BigInteger.ONE) !=
0) return BigInteger.ZERO
6104 if (d.compareTo(m)
>=
0) return d.subtract(m)
6105 if (d.signum() <
0) d.addTo(m, d)
6107 if (d.signum() <
0) return d.add(m)
6112 2,
3,
5,
7,
11,
13,
17,
19,
23,
29,
31,
37,
41,
43,
47,
53,
59,
61,
67,
71,
6113 73,
79,
83,
89,
97,
101,
103,
107,
109,
113,
127,
131,
137,
139,
149,
151,
6114 157,
163,
167,
173,
179,
181,
191,
193,
197,
199,
211,
223,
227,
229,
233,
6115 239,
241,
251,
257,
263,
269,
271,
277,
281,
283,
293,
307,
311,
313,
317,
6116 331,
337,
347,
349,
353,
359,
367,
373,
379,
383,
389,
397,
401,
409,
419,
6117 421,
431,
433,
439,
443,
449,
457,
461,
463,
467,
479,
487,
491,
499,
503,
6118 509,
521,
523,
541,
547,
557,
563,
569,
571,
577,
587,
593,
599,
601,
607,
6119 613,
617,
619,
631,
641,
643,
647,
653,
659,
661,
673,
677,
683,
691,
701,
6120 709,
719,
727,
733,
739,
743,
751,
757,
761,
769,
773,
787,
797,
809,
811,
6121 821,
823,
827,
829,
839,
853,
857,
859,
863,
877,
881,
883,
887,
907,
911,
6122 919,
929,
937,
941,
947,
953,
967,
971,
977,
983,
991,
997
6125 var lplim = (
1 <<
26) / lowprimes[lowprimes.length -
1]
6127 // (public) test primality with certainty
>=
1-
.5^t
6128 function bnIsProbablePrime(t) {
6129 var i, x = this.abs()
6130 if (x.t ==
1 && x[
0] <= lowprimes[lowprimes.length -
1]) {
6131 for (i =
0; i < lowprimes.length; ++i)
6132 if (x[
0] == lowprimes[i]) return true
6135 if (x.isEven()) return false
6137 while (i < lowprimes.length) {
6138 var m = lowprimes[i],
6140 while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
6142 while (i < j) if (m % lowprimes[i++] ==
0) return false
6144 return x.millerRabin(t)
6147 // (protected) true if probably prime (HAC
4.24, Miller-Rabin)
6148 function bnpMillerRabin(t) {
6149 var n1 = this.subtract(BigInteger.ONE)
6150 var k = n1.getLowestSetBit()
6151 if (k <=
0) return false
6152 var r = n1.shiftRight(k)
6154 if (t
> lowprimes.length) t = lowprimes.length
6155 var a = new BigInteger(null)
6157 for (var i =
0; i < t; ++i) {
6159 j = lowprimes[Math.floor(Math.random() * lowprimes.length)]
6160 if (bases.indexOf(j) == -
1) break
6164 var y = a.modPow(r, this)
6165 if (y.compareTo(BigInteger.ONE) !=
0 && y.compareTo(n1) !=
0) {
6167 while (j++ < k && y.compareTo(n1) !=
0) {
6168 y = y.modPowInt(
2, this)
6169 if (y.compareTo(BigInteger.ONE) ==
0) return false
6171 if (y.compareTo(n1) !=
0) return false
6178 proto.chunkSize = bnpChunkSize
6179 proto.toRadix = bnpToRadix
6180 proto.fromRadix = bnpFromRadix
6181 proto.fromNumber = bnpFromNumber
6182 proto.bitwiseTo = bnpBitwiseTo
6183 proto.changeBit = bnpChangeBit
6184 proto.addTo = bnpAddTo
6185 proto.dMultiply = bnpDMultiply
6186 proto.dAddOffset = bnpDAddOffset
6187 proto.multiplyLowerTo = bnpMultiplyLowerTo
6188 proto.multiplyUpperTo = bnpMultiplyUpperTo
6189 proto.modInt = bnpModInt
6190 proto.millerRabin = bnpMillerRabin
6193 proto.clone = bnClone
6194 proto.intValue = bnIntValue
6195 proto.byteValue = bnByteValue
6196 proto.shortValue = bnShortValue
6197 proto.signum = bnSigNum
6198 proto.toByteArray = bnToByteArray
6199 proto.equals = bnEquals
6205 proto.andNot = bnAndNot
6207 proto.shiftLeft = bnShiftLeft
6208 proto.shiftRight = bnShiftRight
6209 proto.getLowestSetBit = bnGetLowestSetBit
6210 proto.bitCount = bnBitCount
6211 proto.testBit = bnTestBit
6212 proto.setBit = bnSetBit
6213 proto.clearBit = bnClearBit
6214 proto.flipBit = bnFlipBit
6216 proto.subtract = bnSubtract
6217 proto.multiply = bnMultiply
6218 proto.divide = bnDivide
6219 proto.remainder = bnRemainder
6220 proto.divideAndRemainder = bnDivideAndRemainder
6221 proto.modPow = bnModPow
6222 proto.modInverse = bnModInverse
6225 proto.isProbablePrime = bnIsProbablePrime
6227 // JSBN-specific extension
6228 proto.square = bnSquare
6231 BigInteger.ZERO = nbv(
0)
6232 BigInteger.ONE = nbv(
1)
6233 BigInteger.valueOf = nbv
6235 module.exports = BigInteger
6237 },{"../package.json":
4}],
2:[function(require,module,exports){
6239 // FIXME: Kind of a weird way to throw exceptions, consider removing
6240 var assert = require('assert')
6241 var BigInteger = require('./bigi')
6244 * Turns a byte array into a big integer.
6246 * This function will interpret a byte array as a big integer in big
6249 BigInteger.fromByteArrayUnsigned = function(byteArray) {
6250 // BigInteger expects a DER integer conformant byte array
6251 if (byteArray[
0] &
0x80) {
6252 return new BigInteger([
0].concat(byteArray))
6255 return new BigInteger(byteArray)
6259 * Returns a byte array representation of the big integer.
6261 * This returns the absolute of the contained value in big endian
6262 * form. A value of zero results in an empty array.
6264 BigInteger.prototype.toByteArrayUnsigned = function() {
6265 var byteArray = this.toByteArray()
6266 return byteArray[
0] ===
0 ? byteArray.slice(
1) : byteArray
6269 BigInteger.fromDERInteger = function(byteArray) {
6270 return new BigInteger(byteArray)
6274 * Converts BigInteger to a DER integer representation.
6276 * The format for this value uses the most significant bit as a sign
6277 * bit. If the most significant bit is already set and the integer is
6278 * positive, a
0x00 is prepended.
6294 * -
62300 =
> 0xff0ca4
6296 BigInteger.prototype.toDERInteger = BigInteger.prototype.toByteArray
6298 BigInteger.fromBuffer = function(buffer) {
6299 // BigInteger expects a DER integer conformant byte array
6300 if (buffer[
0] &
0x80) {
6301 var byteArray = Array.prototype.slice.call(buffer)
6303 return new BigInteger([
0].concat(byteArray))
6306 return new BigInteger(buffer)
6309 BigInteger.fromHex = function(hex) {
6310 if (hex === '') return BigInteger.ZERO
6312 assert.equal(hex, hex.match(/^[A-Fa-f0-
9]+/), 'Invalid hex string')
6313 assert.equal(hex.length %
2,
0, 'Incomplete hex')
6314 return new BigInteger(hex,
16)
6317 BigInteger.prototype.toBuffer = function(size) {
6318 var byteArray = this.toByteArrayUnsigned()
6321 var padding = size - byteArray.length
6322 while (zeros.length < padding) zeros.push(
0)
6324 return new Buffer(zeros.concat(byteArray))
6327 BigInteger.prototype.toHex = function(size) {
6328 return this.toBuffer(size).toString('hex')
6331 }).call(this,require(
"buffer").Buffer)
6332 },{
"./bigi":
1,
"assert":
5,
"buffer":
7}],
3:[function(require,module,exports){
6333 var BigInteger = require('./bigi')
6336 require('./convert')
6338 module.exports = BigInteger
6339 },{
"./bigi":
1,
"./convert":
2}],
4:[function(require,module,exports){
6343 "description":
"Big integers.",
6361 "devDependencies": {
6364 "coveralls":
"^2.10.0",
6365 "istanbul":
"^0.2.11"
6368 "url":
"https://github.com/cryptocoinjs/bigi",
6371 "main":
"./lib/index.js",
6373 "test":
"_mocha -- test/*.js",
6374 "jshint":
"jshint --config jshint.json lib/*.js ; true",
6376 "coverage":
"istanbul cover ./node_modules/.bin/_mocha -- --reporter list test/*.js",
6377 "coveralls":
"npm run-script coverage && node ./node_modules/.bin/coveralls < coverage/lcov.info"
6381 "files":
"test/*.js",
6387 "safari/6.0..latest",
6388 "iphone/6.0..latest",
6389 "android-browser/4.2..latest"
6393 "url":
"https://github.com/cryptocoinjs/bigi/issues"
6395 "homepage":
"https://github.com/cryptocoinjs/bigi",
6396 "_id":
"bigi@1.4.0",
6398 "shasum":
"90ac1aeac0a531216463bdb58f42c1e05c8407ac",
6399 "tarball":
"http://registry.npmjs.org/bigi/-/bigi-1.4.0.tgz"
6401 "_from":
"bigi@^1.4.0",
6402 "_npmVersion":
"1.4.3",
6405 "email":
"jprichardson@gmail.com"
6410 "email":
"jprichardson@gmail.com"
6413 "name":
"midnightlightning",
6414 "email":
"boydb@midnightdesign.ws"
6417 "name":
"sidazhang",
6418 "email":
"sidazhang89@gmail.com"
6422 "email":
"npm@shesek.info"
6426 "_shasum":
"90ac1aeac0a531216463bdb58f42c1e05c8407ac",
6427 "_resolved":
"https://registry.npmjs.org/bigi/-/bigi-1.4.0.tgz"
6430 },{}],
5:[function(require,module,exports){
6431 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
6433 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
6435 // Originally from narwhal.js (http://narwhaljs.org)
6436 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
6438 // Permission is hereby granted, free of charge, to any person obtaining a copy
6439 // of this software and associated documentation files (the 'Software'), to
6440 // deal in the Software without restriction, including without limitation the
6441 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
6442 // sell copies of the Software, and to permit persons to whom the Software is
6443 // furnished to do so, subject to the following conditions:
6445 // The above copyright notice and this permission notice shall be included in
6446 // all copies or substantial portions of the Software.
6448 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
6449 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
6450 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
6451 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
6452 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
6453 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
6455 // when used in node, this will actually load the util module we depend on
6456 // versus loading the builtin util module as happens otherwise
6457 // this is a bug in node module loading as far as I am concerned
6458 var util = require('util/');
6460 var pSlice = Array.prototype.slice;
6461 var hasOwn = Object.prototype.hasOwnProperty;
6463 //
1. The assert module provides functions that throw
6464 // AssertionError's when particular conditions are not met. The
6465 // assert module must conform to the following interface.
6467 var assert = module.exports = ok;
6469 //
2. The AssertionError is defined in assert.
6470 // new assert.AssertionError({ message: message,
6472 // expected: expected })
6474 assert.AssertionError = function AssertionError(options) {
6475 this.name = 'AssertionError';
6476 this.actual = options.actual;
6477 this.expected = options.expected;
6478 this.operator = options.operator;
6479 if (options.message) {
6480 this.message = options.message;
6481 this.generatedMessage = false;
6483 this.message = getMessage(this);
6484 this.generatedMessage = true;
6486 var stackStartFunction = options.stackStartFunction || fail;
6488 if (Error.captureStackTrace) {
6489 Error.captureStackTrace(this, stackStartFunction);
6492 // non v8 browsers so we can have a stacktrace
6493 var err = new Error();
6495 var out = err.stack;
6497 // try to strip useless frames
6498 var fn_name = stackStartFunction.name;
6499 var idx = out.indexOf('\n' + fn_name);
6501 // once we have located the function frame
6502 // we need to strip out everything before it (and its line)
6503 var next_line = out.indexOf('\n', idx +
1);
6504 out = out.substring(next_line +
1);
6512 // assert.AssertionError instanceof Error
6513 util.inherits(assert.AssertionError, Error);
6515 function replacer(key, value) {
6516 if (util.isUndefined(value)) {
6519 if (util.isNumber(value) && !isFinite(value)) {
6520 return value.toString();
6522 if (util.isFunction(value) || util.isRegExp(value)) {
6523 return value.toString();
6528 function truncate(s, n) {
6529 if (util.isString(s)) {
6530 return s.length < n ? s : s.slice(
0, n);
6536 function getMessage(self) {
6537 return truncate(JSON.stringify(self.actual, replacer),
128) + ' ' +
6538 self.operator + ' ' +
6539 truncate(JSON.stringify(self.expected, replacer),
128);
6542 // At present only the three keys mentioned above are used and
6543 // understood by the spec. Implementations or sub modules can pass
6544 // other keys to the AssertionError's constructor - they will be
6547 //
3. All of the following functions must throw an AssertionError
6548 // when a corresponding condition is not met, with a message that
6549 // may be undefined if not provided. All assertion methods provide
6550 // both the actual and expected values to the assertion error for
6551 // display purposes.
6553 function fail(actual, expected, message, operator, stackStartFunction) {
6554 throw new assert.AssertionError({
6559 stackStartFunction: stackStartFunction
6563 // EXTENSION! allows for well behaved errors defined elsewhere.
6566 //
4. Pure assertion tests whether a value is truthy, as determined
6568 // assert.ok(guard, message_opt);
6569 // This statement is equivalent to assert.equal(true, !!guard,
6570 // message_opt);. To test strictly for the value true, use
6571 // assert.strictEqual(true, guard, message_opt);.
6573 function ok(value, message) {
6574 if (!value) fail(value, true, message, '==', assert.ok);
6578 //
5. The equality assertion tests shallow, coercive equality with
6580 // assert.equal(actual, expected, message_opt);
6582 assert.equal = function equal(actual, expected, message) {
6583 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
6586 //
6. The non-equality assertion tests for whether two objects are not equal
6587 // with != assert.notEqual(actual, expected, message_opt);
6589 assert.notEqual = function notEqual(actual, expected, message) {
6590 if (actual == expected) {
6591 fail(actual, expected, message, '!=', assert.notEqual);
6595 //
7. The equivalence assertion tests a deep equality relation.
6596 // assert.deepEqual(actual, expected, message_opt);
6598 assert.deepEqual = function deepEqual(actual, expected, message) {
6599 if (!_deepEqual(actual, expected)) {
6600 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
6604 function _deepEqual(actual, expected) {
6605 //
7.1. All identical values are equivalent, as determined by ===.
6606 if (actual === expected) {
6609 } else if (util.isBuffer(actual) && util.isBuffer(expected)) {
6610 if (actual.length != expected.length) return false;
6612 for (var i =
0; i < actual.length; i++) {
6613 if (actual[i] !== expected[i]) return false;
6618 //
7.2. If the expected value is a Date object, the actual value is
6619 // equivalent if it is also a Date object that refers to the same time.
6620 } else if (util.isDate(actual) && util.isDate(expected)) {
6621 return actual.getTime() === expected.getTime();
6623 //
7.3 If the expected value is a RegExp object, the actual value is
6624 // equivalent if it is also a RegExp object with the same source and
6625 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
6626 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
6627 return actual.source === expected.source &&
6628 actual.global === expected.global &&
6629 actual.multiline === expected.multiline &&
6630 actual.lastIndex === expected.lastIndex &&
6631 actual.ignoreCase === expected.ignoreCase;
6633 //
7.4. Other pairs that do not both pass typeof value == 'object',
6634 // equivalence is determined by ==.
6635 } else if (!util.isObject(actual) && !util.isObject(expected)) {
6636 return actual == expected;
6638 //
7.5 For all other Object pairs, including Array objects, equivalence is
6639 // determined by having the same number of owned properties (as verified
6640 // with Object.prototype.hasOwnProperty.call), the same set of keys
6641 // (although not necessarily the same order), equivalent values for every
6642 // corresponding key, and an identical 'prototype' property. Note: this
6643 // accounts for both named and indexed properties on Arrays.
6645 return objEquiv(actual, expected);
6649 function isArguments(object) {
6650 return Object.prototype.toString.call(object) == '[object Arguments]';
6653 function objEquiv(a, b) {
6654 if (util.isNullOrUndefined(a) || util.isNullOrUndefined(b))
6656 // an identical 'prototype' property.
6657 if (a.prototype !== b.prototype) return false;
6658 // if one is a primitive, the other must be same
6659 if (util.isPrimitive(a) || util.isPrimitive(b)) {
6662 var aIsArgs = isArguments(a),
6663 bIsArgs = isArguments(b);
6664 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
6669 return _deepEqual(a, b);
6671 var ka = objectKeys(a),
6674 // having the same number of owned properties (keys incorporates
6676 if (ka.length != kb.length)
6678 //the same set of keys (although not necessarily the same order),
6682 for (i = ka.length -
1; i
>=
0; i--) {
6686 //equivalent values for every corresponding key, and
6687 //~~~possibly expensive deep test
6688 for (i = ka.length -
1; i
>=
0; i--) {
6690 if (!_deepEqual(a[key], b[key])) return false;
6695 //
8. The non-equivalence assertion tests for any deep inequality.
6696 // assert.notDeepEqual(actual, expected, message_opt);
6698 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
6699 if (_deepEqual(actual, expected)) {
6700 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
6704 //
9. The strict equality assertion tests strict equality, as determined by ===.
6705 // assert.strictEqual(actual, expected, message_opt);
6707 assert.strictEqual = function strictEqual(actual, expected, message) {
6708 if (actual !== expected) {
6709 fail(actual, expected, message, '===', assert.strictEqual);
6713 //
10. The strict non-equality assertion tests for strict inequality, as
6714 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
6716 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
6717 if (actual === expected) {
6718 fail(actual, expected, message, '!==', assert.notStrictEqual);
6722 function expectedException(actual, expected) {
6723 if (!actual || !expected) {
6727 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
6728 return expected.test(actual);
6729 } else if (actual instanceof expected) {
6731 } else if (expected.call({}, actual) === true) {
6738 function _throws(shouldThrow, block, expected, message) {
6741 if (util.isString(expected)) {
6752 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
6753 (message ? ' ' + message : '.');
6755 if (shouldThrow && !actual) {
6756 fail(actual, expected, 'Missing expected exception' + message);
6759 if (!shouldThrow && expectedException(actual, expected)) {
6760 fail(actual, expected, 'Got unwanted exception' + message);
6763 if ((shouldThrow && actual && expected &&
6764 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
6769 //
11. Expected to throw an error:
6770 // assert.throws(block, Error_opt, message_opt);
6772 assert.throws = function(block, /*optional*/error, /*optional*/message) {
6773 _throws.apply(this, [true].concat(pSlice.call(arguments)));
6776 // EXTENSION! This is annoying to write outside this module.
6777 assert.doesNotThrow = function(block, /*optional*/message) {
6778 _throws.apply(this, [false].concat(pSlice.call(arguments)));
6781 assert.ifError = function(err) { if (err) {throw err;}};
6783 var objectKeys = Object.keys || function (obj) {
6785 for (var key in obj) {
6786 if (hasOwn.call(obj, key)) keys.push(key);
6791 },{"util/":
29}],
6:[function(require,module,exports){
6793 },{}],
7:[function(require,module,exports){
6795 * The buffer module from node.js, for the browser.
6797 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
6801 var base64 = require('base64-js')
6802 var ieee754 = require('ieee754')
6803 var isArray = require('is-array')
6805 exports.Buffer = Buffer
6806 exports.SlowBuffer = SlowBuffer
6807 exports.INSPECT_MAX_BYTES =
50
6808 Buffer.poolSize =
8192 // not used by this implementation
6813 * If `Buffer.TYPED_ARRAY_SUPPORT`:
6814 * === true Use Uint8Array implementation (fastest)
6815 * === false Use Object implementation (most compatible, even IE6)
6817 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
6818 * Opera
11.6+, iOS
4.2+.
6820 * Due to various browser bugs, sometimes the Object implementation will be used even
6821 * when the browser supports typed arrays.
6825 * - Firefox
4-
29 lacks support for adding new properties to `Uint8Array` instances,
6826 * See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438.
6828 * - Safari
5-
7 lacks support for changing the `Object.prototype.constructor` property
6831 * - Chrome
9-
10 is missing the `TypedArray.prototype.subarray` function.
6833 * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
6834 * incorrect length in some situations.
6836 * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
6837 * get the Object implementation, which is slower but behaves correctly.
6839 Buffer.TYPED_ARRAY_SUPPORT = (function () {
6842 var arr = new Uint8Array(
1)
6843 arr.foo = function () { return
42 }
6844 arr.constructor = Bar
6845 return arr.foo() ===
42 && // typed array instances can be augmented
6846 arr.constructor === Bar && // constructor can be set
6847 typeof arr.subarray === 'function' && // chrome
9-
10 lack `subarray`
6848 arr.subarray(
1,
1).byteLength ===
0 // ie10 has broken `subarray`
6854 function kMaxLength () {
6855 return Buffer.TYPED_ARRAY_SUPPORT
6864 * The Buffer constructor returns instances of `Uint8Array` that are augmented
6865 * with function properties for all the node `Buffer` API functions. We use
6866 * `Uint8Array` so that square bracket notation works as expected -- it returns
6869 * By augmenting the instances, we can avoid modifying the `Uint8Array`
6872 function Buffer (arg) {
6873 if (!(this instanceof Buffer)) {
6874 // Avoid going through an ArgumentsAdaptorTrampoline in the common case.
6875 if (arguments.length
> 1) return new Buffer(arg, arguments[
1])
6876 return new Buffer(arg)
6880 this.parent = undefined
6883 if (typeof arg === 'number') {
6884 return fromNumber(this, arg)
6887 // Slightly less common case.
6888 if (typeof arg === 'string') {
6889 return fromString(this, arg, arguments.length
> 1 ? arguments[
1] : 'utf8')
6893 return fromObject(this, arg)
6896 function fromNumber (that, length) {
6897 that = allocate(that, length <
0 ?
0 : checked(length) |
0)
6898 if (!Buffer.TYPED_ARRAY_SUPPORT) {
6899 for (var i =
0; i < length; i++) {
6906 function fromString (that, string, encoding) {
6907 if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8'
6909 // Assumption: byteLength() return value is always < kMaxLength.
6910 var length = byteLength(string, encoding) |
0
6911 that = allocate(that, length)
6913 that.write(string, encoding)
6917 function fromObject (that, object) {
6918 if (Buffer.isBuffer(object)) return fromBuffer(that, object)
6920 if (isArray(object)) return fromArray(that, object)
6922 if (object == null) {
6923 throw new TypeError('must start with number, buffer, array or string')
6926 if (typeof ArrayBuffer !== 'undefined') {
6927 if (object.buffer instanceof ArrayBuffer) {
6928 return fromTypedArray(that, object)
6930 if (object instanceof ArrayBuffer) {
6931 return fromArrayBuffer(that, object)
6935 if (object.length) return fromArrayLike(that, object)
6937 return fromJsonObject(that, object)
6940 function fromBuffer (that, buffer) {
6941 var length = checked(buffer.length) |
0
6942 that = allocate(that, length)
6943 buffer.copy(that,
0,
0, length)
6947 function fromArray (that, array) {
6948 var length = checked(array.length) |
0
6949 that = allocate(that, length)
6950 for (var i =
0; i < length; i +=
1) {
6951 that[i] = array[i] &
255
6956 // Duplicate of fromArray() to keep fromArray() monomorphic.
6957 function fromTypedArray (that, array) {
6958 var length = checked(array.length) |
0
6959 that = allocate(that, length)
6960 // Truncating the elements is probably not what people expect from typed
6961 // arrays with BYTES_PER_ELEMENT
> 1 but it's compatible with the behavior
6962 // of the old Buffer constructor.
6963 for (var i =
0; i < length; i +=
1) {
6964 that[i] = array[i] &
255
6969 function fromArrayBuffer (that, array) {
6970 if (Buffer.TYPED_ARRAY_SUPPORT) {
6971 // Return an augmented `Uint8Array` instance, for best performance
6973 that = Buffer._augment(new Uint8Array(array))
6975 // Fallback: Return an object instance of the Buffer class
6976 that = fromTypedArray(that, new Uint8Array(array))
6981 function fromArrayLike (that, array) {
6982 var length = checked(array.length) |
0
6983 that = allocate(that, length)
6984 for (var i =
0; i < length; i +=
1) {
6985 that[i] = array[i] &
255
6990 // Deserialize { type: 'Buffer', data: [
1,
2,
3,...] } into a Buffer object.
6991 // Returns a zero-length buffer for inputs that don't conform to the spec.
6992 function fromJsonObject (that, object) {
6996 if (object.type === 'Buffer' && isArray(object.data)) {
6998 length = checked(array.length) |
0
7000 that = allocate(that, length)
7002 for (var i =
0; i < length; i +=
1) {
7003 that[i] = array[i] &
255
7008 function allocate (that, length) {
7009 if (Buffer.TYPED_ARRAY_SUPPORT) {
7010 // Return an augmented `Uint8Array` instance, for best performance
7011 that = Buffer._augment(new Uint8Array(length))
7013 // Fallback: Return an object instance of the Buffer class
7014 that.length = length
7015 that._isBuffer = true
7018 var fromPool = length !==
0 && length <= Buffer.poolSize
>>> 1
7019 if (fromPool) that.parent = rootParent
7024 function checked (length) {
7025 // Note: cannot use `length < kMaxLength` here because that fails when
7026 // length is NaN (which is otherwise coerced to zero.)
7027 if (length
>= kMaxLength()) {
7028 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
7029 'size:
0x' + kMaxLength().toString(
16) + ' bytes')
7034 function SlowBuffer (subject, encoding) {
7035 if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding)
7037 var buf = new Buffer(subject, encoding)
7042 Buffer.isBuffer = function isBuffer (b) {
7043 return !!(b != null && b._isBuffer)
7046 Buffer.compare = function compare (a, b) {
7047 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
7048 throw new TypeError('Arguments must be Buffers')
7051 if (a === b) return
0
7057 var len = Math.min(x, y)
7059 if (a[i] !== b[i]) break
7069 if (x < y) return -
1
7074 Buffer.isEncoding = function isEncoding (encoding) {
7075 switch (String(encoding).toLowerCase()) {
7093 Buffer.concat = function concat (list, length) {
7094 if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.')
7096 if (list.length ===
0) {
7097 return new Buffer(
0)
7101 if (length === undefined) {
7103 for (i =
0; i < list.length; i++) {
7104 length += list[i].length
7108 var buf = new Buffer(length)
7110 for (i =
0; i < list.length; i++) {
7118 function byteLength (string, encoding) {
7119 if (typeof string !== 'string') string = '' + string
7121 var len = string.length
7122 if (len ===
0) return
0
7124 // Use a for loop to avoid recursion
7125 var loweredCase = false
7136 return utf8ToBytes(string).length
7145 return base64ToBytes(string).length
7147 if (loweredCase) return utf8ToBytes(string).length // assume utf8
7148 encoding = ('' + encoding).toLowerCase()
7153 Buffer.byteLength = byteLength
7155 // pre-set for values that may exist in the future
7156 Buffer.prototype.length = undefined
7157 Buffer.prototype.parent = undefined
7159 function slowToString (encoding, start, end) {
7160 var loweredCase = false
7163 end = end === undefined || end === Infinity ? this.length : end |
0
7165 if (!encoding) encoding = 'utf8'
7166 if (start <
0) start =
0
7167 if (end
> this.length) end = this.length
7168 if (end <= start) return ''
7173 return hexSlice(this, start, end)
7177 return utf8Slice(this, start, end)
7180 return asciiSlice(this, start, end)
7183 return binarySlice(this, start, end)
7186 return base64Slice(this, start, end)
7192 return utf16leSlice(this, start, end)
7195 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
7196 encoding = (encoding + '').toLowerCase()
7202 Buffer.prototype.toString = function toString () {
7203 var length = this.length |
0
7204 if (length ===
0) return ''
7205 if (arguments.length ===
0) return utf8Slice(this,
0, length)
7206 return slowToString.apply(this, arguments)
7209 Buffer.prototype.equals = function equals (b) {
7210 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
7211 if (this === b) return true
7212 return Buffer.compare(this, b) ===
0
7215 Buffer.prototype.inspect = function inspect () {
7217 var max = exports.INSPECT_MAX_BYTES
7218 if (this.length
> 0) {
7219 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
7220 if (this.length
> max) str += ' ... '
7222 return '
<Buffer ' + str + '
>'
7225 Buffer.prototype.compare = function compare (b) {
7226 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
7227 if (this === b) return
0
7228 return Buffer.compare(this, b)
7231 Buffer.prototype.indexOf = function indexOf (val, byteOffset) {
7232 if (byteOffset
> 0x7fffffff) byteOffset =
0x7fffffff
7233 else if (byteOffset < -
0x80000000) byteOffset = -
0x80000000
7236 if (this.length ===
0) return -
1
7237 if (byteOffset
>= this.length) return -
1
7239 // Negative offsets start from the end of the buffer
7240 if (byteOffset <
0) byteOffset = Math.max(this.length + byteOffset,
0)
7242 if (typeof val === 'string') {
7243 if (val.length ===
0) return -
1 // special case: looking for empty string always fails
7244 return String.prototype.indexOf.call(this, val, byteOffset)
7246 if (Buffer.isBuffer(val)) {
7247 return arrayIndexOf(this, val, byteOffset)
7249 if (typeof val === 'number') {
7250 if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') {
7251 return Uint8Array.prototype.indexOf.call(this, val, byteOffset)
7253 return arrayIndexOf(this, [ val ], byteOffset)
7256 function arrayIndexOf (arr, val, byteOffset) {
7258 for (var i =
0; byteOffset + i < arr.length; i++) {
7259 if (arr[byteOffset + i] === val[foundIndex === -
1 ?
0 : i - foundIndex]) {
7260 if (foundIndex === -
1) foundIndex = i
7261 if (i - foundIndex +
1 === val.length) return byteOffset + foundIndex
7269 throw new TypeError('val must be string, number or Buffer')
7272 // `get` is deprecated
7273 Buffer.prototype.get = function get (offset) {
7274 console.log('.get() is deprecated. Access using array indexes instead.')
7275 return this.readUInt8(offset)
7278 // `set` is deprecated
7279 Buffer.prototype.set = function set (v, offset) {
7280 console.log('.set() is deprecated. Access using array indexes instead.')
7281 return this.writeUInt8(v, offset)
7284 function hexWrite (buf, string, offset, length) {
7285 offset = Number(offset) ||
0
7286 var remaining = buf.length - offset
7290 length = Number(length)
7291 if (length
> remaining) {
7296 // must be an even number of digits
7297 var strLen = string.length
7298 if (strLen %
2 !==
0) throw new Error('Invalid hex string')
7300 if (length
> strLen /
2) {
7303 for (var i =
0; i < length; i++) {
7304 var parsed = parseInt(string.substr(i *
2,
2),
16)
7305 if (isNaN(parsed)) throw new Error('Invalid hex string')
7306 buf[offset + i] = parsed
7311 function utf8Write (buf, string, offset, length) {
7312 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
7315 function asciiWrite (buf, string, offset, length) {
7316 return blitBuffer(asciiToBytes(string), buf, offset, length)
7319 function binaryWrite (buf, string, offset, length) {
7320 return asciiWrite(buf, string, offset, length)
7323 function base64Write (buf, string, offset, length) {
7324 return blitBuffer(base64ToBytes(string), buf, offset, length)
7327 function ucs2Write (buf, string, offset, length) {
7328 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
7331 Buffer.prototype.write = function write (string, offset, length, encoding) {
7332 // Buffer#write(string)
7333 if (offset === undefined) {
7335 length = this.length
7337 // Buffer#write(string, encoding)
7338 } else if (length === undefined && typeof offset === 'string') {
7340 length = this.length
7342 // Buffer#write(string, offset[, length][, encoding])
7343 } else if (isFinite(offset)) {
7345 if (isFinite(length)) {
7347 if (encoding === undefined) encoding = 'utf8'
7352 // legacy write(string, encoding, offset, length) - remove in v0.13
7360 var remaining = this.length - offset
7361 if (length === undefined || length
> remaining) length = remaining
7363 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
7364 throw new RangeError('attempt to write outside buffer bounds')
7367 if (!encoding) encoding = 'utf8'
7369 var loweredCase = false
7373 return hexWrite(this, string, offset, length)
7377 return utf8Write(this, string, offset, length)
7380 return asciiWrite(this, string, offset, length)
7383 return binaryWrite(this, string, offset, length)
7386 // Warning: maxLength not taken into account in base64Write
7387 return base64Write(this, string, offset, length)
7393 return ucs2Write(this, string, offset, length)
7396 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
7397 encoding = ('' + encoding).toLowerCase()
7403 Buffer.prototype.toJSON = function toJSON () {
7406 data: Array.prototype.slice.call(this._arr || this,
0)
7410 function base64Slice (buf, start, end) {
7411 if (start ===
0 && end === buf.length) {
7412 return base64.fromByteArray(buf)
7414 return base64.fromByteArray(buf.slice(start, end))
7418 function utf8Slice (buf, start, end) {
7419 end = Math.min(buf.length, end)
7424 var bytesPerSequence
7430 for (; i < end; i += bytesPerSequence) {
7434 if (firstByte
> 0xEF) {
7435 bytesPerSequence =
4
7436 } else if (firstByte
> 0xDF) {
7437 bytesPerSequence =
3
7438 } else if (firstByte
> 0xBF) {
7439 bytesPerSequence =
2
7441 bytesPerSequence =
1
7444 if (i + bytesPerSequence <= end) {
7445 switch (bytesPerSequence) {
7447 if (firstByte <
0x80) {
7448 codePoint = firstByte
7452 secondByte = buf[i +
1]
7453 if ((secondByte &
0xC0) ===
0x80) {
7454 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
7455 if (tempCodePoint
> 0x7F) {
7456 codePoint = tempCodePoint
7461 secondByte = buf[i +
1]
7462 thirdByte = buf[i +
2]
7463 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
7464 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
7465 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
7466 codePoint = tempCodePoint
7471 secondByte = buf[i +
1]
7472 thirdByte = buf[i +
2]
7473 fourthByte = buf[i +
3]
7474 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
7475 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
7476 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
7477 codePoint = tempCodePoint
7483 if (codePoint ===
0xFFFD) {
7484 // we generated an invalid codePoint so make sure to only advance by
1 byte
7485 bytesPerSequence =
1
7486 } else if (codePoint
> 0xFFFF) {
7487 // encode to utf16 (surrogate pair dance)
7488 codePoint -=
0x10000
7489 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
7490 codePoint =
0xDC00 | codePoint &
0x3FF
7496 return String.fromCharCode.apply(String, res)
7499 function asciiSlice (buf, start, end) {
7501 end = Math.min(buf.length, end)
7503 for (var i = start; i < end; i++) {
7504 ret += String.fromCharCode(buf[i] &
0x7F)
7509 function binarySlice (buf, start, end) {
7511 end = Math.min(buf.length, end)
7513 for (var i = start; i < end; i++) {
7514 ret += String.fromCharCode(buf[i])
7519 function hexSlice (buf, start, end) {
7520 var len = buf.length
7522 if (!start || start <
0) start =
0
7523 if (!end || end <
0 || end
> len) end = len
7526 for (var i = start; i < end; i++) {
7527 out += toHex(buf[i])
7532 function utf16leSlice (buf, start, end) {
7533 var bytes = buf.slice(start, end)
7535 for (var i =
0; i < bytes.length; i +=
2) {
7536 res += String.fromCharCode(bytes[i] + bytes[i +
1] *
256)
7541 Buffer.prototype.slice = function slice (start, end) {
7542 var len = this.length
7544 end = end === undefined ? len : ~~end
7548 if (start <
0) start =
0
7549 } else if (start
> len) {
7555 if (end <
0) end =
0
7556 } else if (end
> len) {
7560 if (end < start) end = start
7563 if (Buffer.TYPED_ARRAY_SUPPORT) {
7564 newBuf = Buffer._augment(this.subarray(start, end))
7566 var sliceLen = end - start
7567 newBuf = new Buffer(sliceLen, undefined)
7568 for (var i =
0; i < sliceLen; i++) {
7569 newBuf[i] = this[i + start]
7573 if (newBuf.length) newBuf.parent = this.parent || this
7579 * Need to make sure that buffer isn't trying to write out of bounds.
7581 function checkOffset (offset, ext, length) {
7582 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
7583 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
7586 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
7588 byteLength = byteLength |
0
7589 if (!noAssert) checkOffset(offset, byteLength, this.length)
7591 var val = this[offset]
7594 while (++i < byteLength && (mul *=
0x100)) {
7595 val += this[offset + i] * mul
7601 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
7603 byteLength = byteLength |
0
7605 checkOffset(offset, byteLength, this.length)
7608 var val = this[offset + --byteLength]
7610 while (byteLength
> 0 && (mul *=
0x100)) {
7611 val += this[offset + --byteLength] * mul
7617 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
7618 if (!noAssert) checkOffset(offset,
1, this.length)
7622 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
7623 if (!noAssert) checkOffset(offset,
2, this.length)
7624 return this[offset] | (this[offset +
1] <<
8)
7627 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
7628 if (!noAssert) checkOffset(offset,
2, this.length)
7629 return (this[offset] <<
8) | this[offset +
1]
7632 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
7633 if (!noAssert) checkOffset(offset,
4, this.length)
7635 return ((this[offset]) |
7636 (this[offset +
1] <<
8) |
7637 (this[offset +
2] <<
16)) +
7638 (this[offset +
3] *
0x1000000)
7641 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
7642 if (!noAssert) checkOffset(offset,
4, this.length)
7644 return (this[offset] *
0x1000000) +
7645 ((this[offset +
1] <<
16) |
7646 (this[offset +
2] <<
8) |
7650 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
7652 byteLength = byteLength |
0
7653 if (!noAssert) checkOffset(offset, byteLength, this.length)
7655 var val = this[offset]
7658 while (++i < byteLength && (mul *=
0x100)) {
7659 val += this[offset + i] * mul
7663 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
7668 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
7670 byteLength = byteLength |
0
7671 if (!noAssert) checkOffset(offset, byteLength, this.length)
7675 var val = this[offset + --i]
7676 while (i
> 0 && (mul *=
0x100)) {
7677 val += this[offset + --i] * mul
7681 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
7686 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
7687 if (!noAssert) checkOffset(offset,
1, this.length)
7688 if (!(this[offset] &
0x80)) return (this[offset])
7689 return ((
0xff - this[offset] +
1) * -
1)
7692 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
7693 if (!noAssert) checkOffset(offset,
2, this.length)
7694 var val = this[offset] | (this[offset +
1] <<
8)
7695 return (val &
0x8000) ? val |
0xFFFF0000 : val
7698 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
7699 if (!noAssert) checkOffset(offset,
2, this.length)
7700 var val = this[offset +
1] | (this[offset] <<
8)
7701 return (val &
0x8000) ? val |
0xFFFF0000 : val
7704 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
7705 if (!noAssert) checkOffset(offset,
4, this.length)
7707 return (this[offset]) |
7708 (this[offset +
1] <<
8) |
7709 (this[offset +
2] <<
16) |
7710 (this[offset +
3] <<
24)
7713 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
7714 if (!noAssert) checkOffset(offset,
4, this.length)
7716 return (this[offset] <<
24) |
7717 (this[offset +
1] <<
16) |
7718 (this[offset +
2] <<
8) |
7722 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
7723 if (!noAssert) checkOffset(offset,
4, this.length)
7724 return ieee754.read(this, offset, true,
23,
4)
7727 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
7728 if (!noAssert) checkOffset(offset,
4, this.length)
7729 return ieee754.read(this, offset, false,
23,
4)
7732 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
7733 if (!noAssert) checkOffset(offset,
8, this.length)
7734 return ieee754.read(this, offset, true,
52,
8)
7737 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
7738 if (!noAssert) checkOffset(offset,
8, this.length)
7739 return ieee754.read(this, offset, false,
52,
8)
7742 function checkInt (buf, value, offset, ext, max, min) {
7743 if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance')
7744 if (value
> max || value < min) throw new RangeError('value is out of bounds')
7745 if (offset + ext
> buf.length) throw new RangeError('index out of range')
7748 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
7751 byteLength = byteLength |
0
7752 if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(
2,
8 * byteLength),
0)
7756 this[offset] = value &
0xFF
7757 while (++i < byteLength && (mul *=
0x100)) {
7758 this[offset + i] = (value / mul) &
0xFF
7761 return offset + byteLength
7764 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
7767 byteLength = byteLength |
0
7768 if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(
2,
8 * byteLength),
0)
7770 var i = byteLength -
1
7772 this[offset + i] = value &
0xFF
7773 while (--i
>=
0 && (mul *=
0x100)) {
7774 this[offset + i] = (value / mul) &
0xFF
7777 return offset + byteLength
7780 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
7783 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
7784 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
7785 this[offset] = value
7789 function objectWriteUInt16 (buf, value, offset, littleEndian) {
7790 if (value <
0) value =
0xffff + value +
1
7791 for (var i =
0, j = Math.min(buf.length - offset,
2); i < j; i++) {
7792 buf[offset + i] = (value & (
0xff << (
8 * (littleEndian ? i :
1 - i))))
>>>
7793 (littleEndian ? i :
1 - i) *
8
7797 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
7800 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
7801 if (Buffer.TYPED_ARRAY_SUPPORT) {
7802 this[offset] = value
7803 this[offset +
1] = (value
>>> 8)
7805 objectWriteUInt16(this, value, offset, true)
7810 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
7813 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
7814 if (Buffer.TYPED_ARRAY_SUPPORT) {
7815 this[offset] = (value
>>> 8)
7816 this[offset +
1] = value
7818 objectWriteUInt16(this, value, offset, false)
7823 function objectWriteUInt32 (buf, value, offset, littleEndian) {
7824 if (value <
0) value =
0xffffffff + value +
1
7825 for (var i =
0, j = Math.min(buf.length - offset,
4); i < j; i++) {
7826 buf[offset + i] = (value
>>> (littleEndian ? i :
3 - i) *
8) &
0xff
7830 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
7833 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
7834 if (Buffer.TYPED_ARRAY_SUPPORT) {
7835 this[offset +
3] = (value
>>> 24)
7836 this[offset +
2] = (value
>>> 16)
7837 this[offset +
1] = (value
>>> 8)
7838 this[offset] = value
7840 objectWriteUInt32(this, value, offset, true)
7845 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
7848 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
7849 if (Buffer.TYPED_ARRAY_SUPPORT) {
7850 this[offset] = (value
>>> 24)
7851 this[offset +
1] = (value
>>> 16)
7852 this[offset +
2] = (value
>>> 8)
7853 this[offset +
3] = value
7855 objectWriteUInt32(this, value, offset, false)
7860 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
7864 var limit = Math.pow(
2,
8 * byteLength -
1)
7866 checkInt(this, value, offset, byteLength, limit -
1, -limit)
7871 var sub = value <
0 ?
1 :
0
7872 this[offset] = value &
0xFF
7873 while (++i < byteLength && (mul *=
0x100)) {
7874 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
7877 return offset + byteLength
7880 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
7884 var limit = Math.pow(
2,
8 * byteLength -
1)
7886 checkInt(this, value, offset, byteLength, limit -
1, -limit)
7889 var i = byteLength -
1
7891 var sub = value <
0 ?
1 :
0
7892 this[offset + i] = value &
0xFF
7893 while (--i
>=
0 && (mul *=
0x100)) {
7894 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
7897 return offset + byteLength
7900 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
7903 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
7904 if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
7905 if (value <
0) value =
0xff + value +
1
7906 this[offset] = value
7910 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
7913 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
7914 if (Buffer.TYPED_ARRAY_SUPPORT) {
7915 this[offset] = value
7916 this[offset +
1] = (value
>>> 8)
7918 objectWriteUInt16(this, value, offset, true)
7923 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
7926 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
7927 if (Buffer.TYPED_ARRAY_SUPPORT) {
7928 this[offset] = (value
>>> 8)
7929 this[offset +
1] = value
7931 objectWriteUInt16(this, value, offset, false)
7936 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
7939 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
7940 if (Buffer.TYPED_ARRAY_SUPPORT) {
7941 this[offset] = value
7942 this[offset +
1] = (value
>>> 8)
7943 this[offset +
2] = (value
>>> 16)
7944 this[offset +
3] = (value
>>> 24)
7946 objectWriteUInt32(this, value, offset, true)
7951 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
7954 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
7955 if (value <
0) value =
0xffffffff + value +
1
7956 if (Buffer.TYPED_ARRAY_SUPPORT) {
7957 this[offset] = (value
>>> 24)
7958 this[offset +
1] = (value
>>> 16)
7959 this[offset +
2] = (value
>>> 8)
7960 this[offset +
3] = value
7962 objectWriteUInt32(this, value, offset, false)
7967 function checkIEEE754 (buf, value, offset, ext, max, min) {
7968 if (value
> max || value < min) throw new RangeError('value is out of bounds')
7969 if (offset + ext
> buf.length) throw new RangeError('index out of range')
7970 if (offset <
0) throw new RangeError('index out of range')
7973 function writeFloat (buf, value, offset, littleEndian, noAssert) {
7975 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
7977 ieee754.write(buf, value, offset, littleEndian,
23,
4)
7981 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
7982 return writeFloat(this, value, offset, true, noAssert)
7985 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
7986 return writeFloat(this, value, offset, false, noAssert)
7989 function writeDouble (buf, value, offset, littleEndian, noAssert) {
7991 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
7993 ieee754.write(buf, value, offset, littleEndian,
52,
8)
7997 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
7998 return writeDouble(this, value, offset, true, noAssert)
8001 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
8002 return writeDouble(this, value, offset, false, noAssert)
8005 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
8006 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
8007 if (!start) start =
0
8008 if (!end && end !==
0) end = this.length
8009 if (targetStart
>= target.length) targetStart = target.length
8010 if (!targetStart) targetStart =
0
8011 if (end
> 0 && end < start) end = start
8013 // Copy
0 bytes; we're done
8014 if (end === start) return
0
8015 if (target.length ===
0 || this.length ===
0) return
0
8017 // Fatal error conditions
8018 if (targetStart <
0) {
8019 throw new RangeError('targetStart out of bounds')
8021 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
8022 if (end <
0) throw new RangeError('sourceEnd out of bounds')
8025 if (end
> this.length) end = this.length
8026 if (target.length - targetStart < end - start) {
8027 end = target.length - targetStart + start
8030 var len = end - start
8033 if (this === target && start < targetStart && targetStart < end) {
8034 // descending copy from end
8035 for (i = len -
1; i
>=
0; i--) {
8036 target[i + targetStart] = this[i + start]
8038 } else if (len <
1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
8039 // ascending copy from start
8040 for (i =
0; i < len; i++) {
8041 target[i + targetStart] = this[i + start]
8044 target._set(this.subarray(start, start + len), targetStart)
8050 // fill(value, start=
0, end=buffer.length)
8051 Buffer.prototype.fill = function fill (value, start, end) {
8052 if (!value) value =
0
8053 if (!start) start =
0
8054 if (!end) end = this.length
8056 if (end < start) throw new RangeError('end < start')
8058 // Fill
0 bytes; we're done
8059 if (end === start) return
8060 if (this.length ===
0) return
8062 if (start <
0 || start
>= this.length) throw new RangeError('start out of bounds')
8063 if (end <
0 || end
> this.length) throw new RangeError('end out of bounds')
8066 if (typeof value === 'number') {
8067 for (i = start; i < end; i++) {
8071 var bytes = utf8ToBytes(value.toString())
8072 var len = bytes.length
8073 for (i = start; i < end; i++) {
8074 this[i] = bytes[i % len]
8082 * Creates a new `ArrayBuffer` with the *copied* memory of the buffer instance.
8083 * Added in Node
0.12. Only available in browsers that support ArrayBuffer.
8085 Buffer.prototype.toArrayBuffer = function toArrayBuffer () {
8086 if (typeof Uint8Array !== 'undefined') {
8087 if (Buffer.TYPED_ARRAY_SUPPORT) {
8088 return (new Buffer(this)).buffer
8090 var buf = new Uint8Array(this.length)
8091 for (var i =
0, len = buf.length; i < len; i +=
1) {
8097 throw new TypeError('Buffer.toArrayBuffer not supported in this browser')
8104 var BP = Buffer.prototype
8107 * Augment a Uint8Array *instance* (not the Uint8Array class!) with Buffer methods
8109 Buffer._augment = function _augment (arr) {
8110 arr.constructor = Buffer
8111 arr._isBuffer = true
8113 // save reference to original Uint8Array set method before overwriting
8120 arr.write = BP.write
8121 arr.toString = BP.toString
8122 arr.toLocaleString = BP.toString
8123 arr.toJSON = BP.toJSON
8124 arr.equals = BP.equals
8125 arr.compare = BP.compare
8126 arr.indexOf = BP.indexOf
8128 arr.slice = BP.slice
8129 arr.readUIntLE = BP.readUIntLE
8130 arr.readUIntBE = BP.readUIntBE
8131 arr.readUInt8 = BP.readUInt8
8132 arr.readUInt16LE = BP.readUInt16LE
8133 arr.readUInt16BE = BP.readUInt16BE
8134 arr.readUInt32LE = BP.readUInt32LE
8135 arr.readUInt32BE = BP.readUInt32BE
8136 arr.readIntLE = BP.readIntLE
8137 arr.readIntBE = BP.readIntBE
8138 arr.readInt8 = BP.readInt8
8139 arr.readInt16LE = BP.readInt16LE
8140 arr.readInt16BE = BP.readInt16BE
8141 arr.readInt32LE = BP.readInt32LE
8142 arr.readInt32BE = BP.readInt32BE
8143 arr.readFloatLE = BP.readFloatLE
8144 arr.readFloatBE = BP.readFloatBE
8145 arr.readDoubleLE = BP.readDoubleLE
8146 arr.readDoubleBE = BP.readDoubleBE
8147 arr.writeUInt8 = BP.writeUInt8
8148 arr.writeUIntLE = BP.writeUIntLE
8149 arr.writeUIntBE = BP.writeUIntBE
8150 arr.writeUInt16LE = BP.writeUInt16LE
8151 arr.writeUInt16BE = BP.writeUInt16BE
8152 arr.writeUInt32LE = BP.writeUInt32LE
8153 arr.writeUInt32BE = BP.writeUInt32BE
8154 arr.writeIntLE = BP.writeIntLE
8155 arr.writeIntBE = BP.writeIntBE
8156 arr.writeInt8 = BP.writeInt8
8157 arr.writeInt16LE = BP.writeInt16LE
8158 arr.writeInt16BE = BP.writeInt16BE
8159 arr.writeInt32LE = BP.writeInt32LE
8160 arr.writeInt32BE = BP.writeInt32BE
8161 arr.writeFloatLE = BP.writeFloatLE
8162 arr.writeFloatBE = BP.writeFloatBE
8163 arr.writeDoubleLE = BP.writeDoubleLE
8164 arr.writeDoubleBE = BP.writeDoubleBE
8166 arr.inspect = BP.inspect
8167 arr.toArrayBuffer = BP.toArrayBuffer
8172 var INVALID_BASE64_RE = /[^+\/
0-
9A-Za-z-_]/g
8174 function base64clean (str) {
8175 // Node strips out invalid characters like \n and \t from the string, base64-js does not
8176 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
8177 // Node converts strings with length <
2 to ''
8178 if (str.length <
2) return ''
8179 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
8180 while (str.length %
4 !==
0) {
8186 function stringtrim (str) {
8187 if (str.trim) return str.trim()
8188 return str.replace(/^\s+|\s+$/g, '')
8191 function toHex (n) {
8192 if (n <
16) return '
0' + n.toString(
16)
8193 return n.toString(
16)
8196 function utf8ToBytes (string, units) {
8197 units = units || Infinity
8199 var length = string.length
8200 var leadSurrogate = null
8203 for (var i =
0; i < length; i++) {
8204 codePoint = string.charCodeAt(i)
8206 // is surrogate component
8207 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
8208 // last char was a lead
8209 if (!leadSurrogate) {
8211 if (codePoint
> 0xDBFF) {
8213 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
8216 } else if (i +
1 === length) {
8218 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
8223 leadSurrogate = codePoint
8229 if (codePoint <
0xDC00) {
8230 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
8231 leadSurrogate = codePoint
8235 // valid surrogate pair
8236 codePoint = leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00 |
0x10000
8238 } else if (leadSurrogate) {
8239 // valid bmp char, but last char was a lead
8240 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
8243 leadSurrogate = null
8246 if (codePoint <
0x80) {
8247 if ((units -=
1) <
0) break
8248 bytes.push(codePoint)
8249 } else if (codePoint <
0x800) {
8250 if ((units -=
2) <
0) break
8252 codePoint
>> 0x6 |
0xC0,
8253 codePoint &
0x3F |
0x80
8255 } else if (codePoint <
0x10000) {
8256 if ((units -=
3) <
0) break
8258 codePoint
>> 0xC |
0xE0,
8259 codePoint
>> 0x6 &
0x3F |
0x80,
8260 codePoint &
0x3F |
0x80
8262 } else if (codePoint <
0x110000) {
8263 if ((units -=
4) <
0) break
8265 codePoint
>> 0x12 |
0xF0,
8266 codePoint
>> 0xC &
0x3F |
0x80,
8267 codePoint
>> 0x6 &
0x3F |
0x80,
8268 codePoint &
0x3F |
0x80
8271 throw new Error('Invalid code point')
8278 function asciiToBytes (str) {
8280 for (var i =
0; i < str.length; i++) {
8281 // Node's code seems to be doing this and not &
0x7F..
8282 byteArray.push(str.charCodeAt(i) &
0xFF)
8287 function utf16leToBytes (str, units) {
8290 for (var i =
0; i < str.length; i++) {
8291 if ((units -=
2) <
0) break
8293 c = str.charCodeAt(i)
8303 function base64ToBytes (str) {
8304 return base64.toByteArray(base64clean(str))
8307 function blitBuffer (src, dst, offset, length) {
8308 for (var i =
0; i < length; i++) {
8309 if ((i + offset
>= dst.length) || (i
>= src.length)) break
8310 dst[i + offset] = src[i]
8315 },{"base64-js":
8,"ieee754":
9,"is-array":
10}],
8:[function(require,module,exports){
8316 var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
8318 ;(function (exports) {
8321 var Arr = (typeof Uint8Array !== 'undefined')
8325 var PLUS = '+'.charCodeAt(
0)
8326 var SLASH = '/'.charCodeAt(
0)
8327 var NUMBER = '
0'.charCodeAt(
0)
8328 var LOWER = 'a'.charCodeAt(
0)
8329 var UPPER = 'A'.charCodeAt(
0)
8330 var PLUS_URL_SAFE = '-'.charCodeAt(
0)
8331 var SLASH_URL_SAFE = '_'.charCodeAt(
0)
8333 function decode (elt) {
8334 var code = elt.charCodeAt(
0)
8335 if (code === PLUS ||
8336 code === PLUS_URL_SAFE)
8338 if (code === SLASH ||
8339 code === SLASH_URL_SAFE)
8342 return -
1 //no match
8343 if (code < NUMBER +
10)
8344 return code - NUMBER +
26 +
26
8345 if (code < UPPER +
26)
8347 if (code < LOWER +
26)
8348 return code - LOWER +
26
8351 function b64ToByteArray (b64) {
8352 var i, j, l, tmp, placeHolders, arr
8354 if (b64.length %
4 > 0) {
8355 throw new Error('Invalid string. Length must be a multiple of
4')
8358 // the number of equal signs (place holders)
8359 // if there are two placeholders, than the two characters before it
8360 // represent one byte
8361 // if there is only one, then the three characters before it represent
2 bytes
8362 // this is just a cheap hack to not do indexOf twice
8363 var len = b64.length
8364 placeHolders = '=' === b64.charAt(len -
2) ?
2 : '=' === b64.charAt(len -
1) ?
1 :
0
8366 // base64 is
4/
3 + up to two characters of the original data
8367 arr = new Arr(b64.length *
3 /
4 - placeHolders)
8369 // if there are placeholders, only get up to the last complete
4 chars
8370 l = placeHolders
> 0 ? b64.length -
4 : b64.length
8378 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
8379 tmp = (decode(b64.charAt(i)) <<
18) | (decode(b64.charAt(i +
1)) <<
12) | (decode(b64.charAt(i +
2)) <<
6) | decode(b64.charAt(i +
3))
8380 push((tmp &
0xFF0000)
>> 16)
8381 push((tmp &
0xFF00)
>> 8)
8385 if (placeHolders ===
2) {
8386 tmp = (decode(b64.charAt(i)) <<
2) | (decode(b64.charAt(i +
1))
>> 4)
8388 } else if (placeHolders ===
1) {
8389 tmp = (decode(b64.charAt(i)) <<
10) | (decode(b64.charAt(i +
1)) <<
4) | (decode(b64.charAt(i +
2))
>> 2)
8390 push((tmp
>> 8) &
0xFF)
8397 function uint8ToBase64 (uint8) {
8399 extraBytes = uint8.length %
3, // if we have
1 byte left, pad
2 bytes
8403 function encode (num) {
8404 return lookup.charAt(num)
8407 function tripletToBase64 (num) {
8408 return encode(num
>> 18 &
0x3F) + encode(num
>> 12 &
0x3F) + encode(num
>> 6 &
0x3F) + encode(num &
0x3F)
8411 // go through the array every three bytes, we'll deal with trailing stuff later
8412 for (i =
0, length = uint8.length - extraBytes; i < length; i +=
3) {
8413 temp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
8414 output += tripletToBase64(temp)
8417 // pad the end with zeros, but make sure to not forget the extra bytes
8418 switch (extraBytes) {
8420 temp = uint8[uint8.length -
1]
8421 output += encode(temp
>> 2)
8422 output += encode((temp <<
4) &
0x3F)
8426 temp = (uint8[uint8.length -
2] <<
8) + (uint8[uint8.length -
1])
8427 output += encode(temp
>> 10)
8428 output += encode((temp
>> 4) &
0x3F)
8429 output += encode((temp <<
2) &
0x3F)
8437 exports.toByteArray = b64ToByteArray
8438 exports.fromByteArray = uint8ToBase64
8439 }(typeof exports === 'undefined' ? (this.base64js = {}) : exports))
8441 },{}],
9:[function(require,module,exports){
8442 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
8444 var eLen = nBytes *
8 - mLen -
1
8445 var eMax = (
1 << eLen) -
1
8446 var eBias = eMax
>> 1
8448 var i = isLE ? (nBytes -
1) :
0
8449 var d = isLE ? -
1 :
1
8450 var s = buffer[offset + i]
8454 e = s & ((
1 << (-nBits)) -
1)
8457 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
8459 m = e & ((
1 << (-nBits)) -
1)
8462 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
8466 } else if (e === eMax) {
8467 return m ? NaN : ((s ? -
1 :
1) * Infinity)
8469 m = m + Math.pow(
2, mLen)
8472 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
8475 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
8477 var eLen = nBytes *
8 - mLen -
1
8478 var eMax = (
1 << eLen) -
1
8479 var eBias = eMax
>> 1
8480 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
8481 var i = isLE ?
0 : (nBytes -
1)
8482 var d = isLE ?
1 : -
1
8483 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
8485 value = Math.abs(value)
8487 if (isNaN(value) || value === Infinity) {
8488 m = isNaN(value) ?
1 :
0
8491 e = Math.floor(Math.log(value) / Math.LN2)
8492 if (value * (c = Math.pow(
2, -e)) <
1) {
8496 if (e + eBias
>=
1) {
8499 value += rt * Math.pow(
2,
1 - eBias)
8501 if (value * c
>=
2) {
8506 if (e + eBias
>= eMax) {
8509 } else if (e + eBias
>=
1) {
8510 m = (value * c -
1) * Math.pow(
2, mLen)
8513 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
8518 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
8522 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
8524 buffer[offset + i - d] |= s *
128
8527 },{}],
10:[function(require,module,exports){
8533 var isArray = Array.isArray;
8539 var str = Object.prototype.toString;
8542 * Whether or not the given `val`
8549 * isArray(arguments);
8554 * @param {mixed} val
8558 module.exports = isArray || function (val) {
8559 return !! val && '[object Array]' == str.call(val);
8562 },{}],
11:[function(require,module,exports){
8563 // Copyright Joyent, Inc. and other Node contributors.
8565 // Permission is hereby granted, free of charge, to any person obtaining a
8566 // copy of this software and associated documentation files (the
8567 // "Software"), to deal in the Software without restriction, including
8568 // without limitation the rights to use, copy, modify, merge, publish,
8569 // distribute, sublicense, and/or sell copies of the Software, and to permit
8570 // persons to whom the Software is furnished to do so, subject to the
8571 // following conditions:
8573 // The above copyright notice and this permission notice shall be included
8574 // in all copies or substantial portions of the Software.
8576 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
8577 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
8578 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
8579 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
8580 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
8581 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
8582 // USE OR OTHER DEALINGS IN THE SOFTWARE.
8584 function EventEmitter() {
8585 this._events = this._events || {};
8586 this._maxListeners = this._maxListeners || undefined;
8588 module.exports = EventEmitter;
8590 // Backwards-compat with node
0.10.x
8591 EventEmitter.EventEmitter = EventEmitter;
8593 EventEmitter.prototype._events = undefined;
8594 EventEmitter.prototype._maxListeners = undefined;
8596 // By default EventEmitters will print a warning if more than
10 listeners are
8597 // added to it. This is a useful default which helps finding memory leaks.
8598 EventEmitter.defaultMaxListeners =
10;
8600 // Obviously not all Emitters should be limited to
10. This function allows
8601 // that to be increased. Set to zero for unlimited.
8602 EventEmitter.prototype.setMaxListeners = function(n) {
8603 if (!isNumber(n) || n <
0 || isNaN(n))
8604 throw TypeError('n must be a positive number');
8605 this._maxListeners = n;
8609 EventEmitter.prototype.emit = function(type) {
8610 var er, handler, len, args, i, listeners;
8615 // If there is no 'error' event listener then throw.
8616 if (type === 'error') {
8617 if (!this._events.error ||
8618 (isObject(this._events.error) && !this._events.error.length)) {
8620 if (er instanceof Error) {
8621 throw er; // Unhandled 'error' event
8623 throw TypeError('Uncaught, unspecified "error" event.');
8627 handler = this._events[type];
8629 if (isUndefined(handler))
8632 if (isFunction(handler)) {
8633 switch (arguments.length) {
8639 handler.call(this, arguments[
1]);
8642 handler.call(this, arguments[
1], arguments[
2]);
8646 len = arguments.length;
8647 args = new Array(len -
1);
8648 for (i =
1; i < len; i++)
8649 args[i -
1] = arguments[i];
8650 handler.apply(this, args);
8652 } else if (isObject(handler)) {
8653 len = arguments.length;
8654 args = new Array(len -
1);
8655 for (i =
1; i < len; i++)
8656 args[i -
1] = arguments[i];
8658 listeners = handler.slice();
8659 len = listeners.length;
8660 for (i =
0; i < len; i++)
8661 listeners[i].apply(this, args);
8667 EventEmitter.prototype.addListener = function(type, listener) {
8670 if (!isFunction(listener))
8671 throw TypeError('listener must be a function');
8676 // To avoid recursion in the case that type === "newListener"! Before
8677 // adding it to the listeners, first emit "newListener".
8678 if (this._events.newListener)
8679 this.emit('newListener', type,
8680 isFunction(listener.listener) ?
8681 listener.listener : listener);
8683 if (!this._events[type])
8684 // Optimize the case of one listener. Don't need the extra array object.
8685 this._events[type] = listener;
8686 else if (isObject(this._events[type]))
8687 // If we've already got an array, just append.
8688 this._events[type].push(listener);
8690 // Adding the second element, need to change to array.
8691 this._events[type] = [this._events[type], listener];
8693 // Check for listener leak
8694 if (isObject(this._events[type]) && !this._events[type].warned) {
8696 if (!isUndefined(this._maxListeners)) {
8697 m = this._maxListeners;
8699 m = EventEmitter.defaultMaxListeners;
8702 if (m && m
> 0 && this._events[type].length
> m) {
8703 this._events[type].warned = true;
8704 console.error('(node) warning: possible EventEmitter memory ' +
8705 'leak detected. %d listeners added. ' +
8706 'Use emitter.setMaxListeners() to increase limit.',
8707 this._events[type].length);
8708 if (typeof console.trace === 'function') {
8709 // not supported in IE
10
8718 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
8720 EventEmitter.prototype.once = function(type, listener) {
8721 if (!isFunction(listener))
8722 throw TypeError('listener must be a function');
8727 this.removeListener(type, g);
8731 listener.apply(this, arguments);
8735 g.listener = listener;
8741 // emits a 'removeListener' event iff the listener was removed
8742 EventEmitter.prototype.removeListener = function(type, listener) {
8743 var list, position, length, i;
8745 if (!isFunction(listener))
8746 throw TypeError('listener must be a function');
8748 if (!this._events || !this._events[type])
8751 list = this._events[type];
8752 length = list.length;
8755 if (list === listener ||
8756 (isFunction(list.listener) && list.listener === listener)) {
8757 delete this._events[type];
8758 if (this._events.removeListener)
8759 this.emit('removeListener', type, listener);
8761 } else if (isObject(list)) {
8762 for (i = length; i--
> 0;) {
8763 if (list[i] === listener ||
8764 (list[i].listener && list[i].listener === listener)) {
8773 if (list.length ===
1) {
8775 delete this._events[type];
8777 list.splice(position,
1);
8780 if (this._events.removeListener)
8781 this.emit('removeListener', type, listener);
8787 EventEmitter.prototype.removeAllListeners = function(type) {
8793 // not listening for removeListener, no need to emit
8794 if (!this._events.removeListener) {
8795 if (arguments.length ===
0)
8797 else if (this._events[type])
8798 delete this._events[type];
8802 // emit removeListener for all listeners on all events
8803 if (arguments.length ===
0) {
8804 for (key in this._events) {
8805 if (key === 'removeListener') continue;
8806 this.removeAllListeners(key);
8808 this.removeAllListeners('removeListener');
8813 listeners = this._events[type];
8815 if (isFunction(listeners)) {
8816 this.removeListener(type, listeners);
8819 while (listeners.length)
8820 this.removeListener(type, listeners[listeners.length -
1]);
8822 delete this._events[type];
8827 EventEmitter.prototype.listeners = function(type) {
8829 if (!this._events || !this._events[type])
8831 else if (isFunction(this._events[type]))
8832 ret = [this._events[type]];
8834 ret = this._events[type].slice();
8838 EventEmitter.listenerCount = function(emitter, type) {
8840 if (!emitter._events || !emitter._events[type])
8842 else if (isFunction(emitter._events[type]))
8845 ret = emitter._events[type].length;
8849 function isFunction(arg) {
8850 return typeof arg === 'function';
8853 function isNumber(arg) {
8854 return typeof arg === 'number';
8857 function isObject(arg) {
8858 return typeof arg === 'object' && arg !== null;
8861 function isUndefined(arg) {
8862 return arg === void
0;
8865 },{}],
12:[function(require,module,exports){
8866 if (typeof Object.create === 'function') {
8867 // implementation from standard node.js 'util' module
8868 module.exports = function inherits(ctor, superCtor) {
8869 ctor.super_ = superCtor
8870 ctor.prototype = Object.create(superCtor.prototype, {
8880 // old school shim for old browsers
8881 module.exports = function inherits(ctor, superCtor) {
8882 ctor.super_ = superCtor
8883 var TempCtor = function () {}
8884 TempCtor.prototype = superCtor.prototype
8885 ctor.prototype = new TempCtor()
8886 ctor.prototype.constructor = ctor
8890 },{}],
13:[function(require,module,exports){
8891 module.exports = Array.isArray || function (arr) {
8892 return Object.prototype.toString.call(arr) == '[object Array]';
8895 },{}],
14:[function(require,module,exports){
8896 // shim for using process in browser
8898 var process = module.exports = {};
8900 var draining = false;
8902 var queueIndex = -
1;
8904 function cleanUpNextTick() {
8906 if (currentQueue.length) {
8907 queue = currentQueue.concat(queue);
8916 function drainQueue() {
8920 var timeout = setTimeout(cleanUpNextTick);
8923 var len = queue.length;
8925 currentQueue = queue;
8927 while (++queueIndex < len) {
8928 currentQueue[queueIndex].run();
8933 currentQueue = null;
8935 clearTimeout(timeout);
8938 process.nextTick = function (fun) {
8939 var args = new Array(arguments.length -
1);
8940 if (arguments.length
> 1) {
8941 for (var i =
1; i < arguments.length; i++) {
8942 args[i -
1] = arguments[i];
8945 queue.push(new Item(fun, args));
8946 if (queue.length ===
1 && !draining) {
8947 setTimeout(drainQueue,
0);
8951 // v8 likes predictible objects
8952 function Item(fun, array) {
8956 Item.prototype.run = function () {
8957 this.fun.apply(null, this.array);
8959 process.title = 'browser';
8960 process.browser = true;
8963 process.version = ''; // empty string to avoid regexp issues
8964 process.versions = {};
8969 process.addListener = noop;
8970 process.once = noop;
8972 process.removeListener = noop;
8973 process.removeAllListeners = noop;
8974 process.emit = noop;
8976 process.binding = function (name) {
8977 throw new Error('process.binding is not supported');
8981 process.cwd = function () { return '/' };
8982 process.chdir = function (dir) {
8983 throw new Error('process.chdir is not supported');
8985 process.umask = function() { return
0; };
8987 },{}],
15:[function(require,module,exports){
8988 module.exports = require(
"./lib/_stream_duplex.js")
8990 },{
"./lib/_stream_duplex.js":
16}],
16:[function(require,module,exports){
8991 (function (process){
8992 // Copyright Joyent, Inc. and other Node contributors.
8994 // Permission is hereby granted, free of charge, to any person obtaining a
8995 // copy of this software and associated documentation files (the
8996 //
"Software"), to deal in the Software without restriction, including
8997 // without limitation the rights to use, copy, modify, merge, publish,
8998 // distribute, sublicense, and/or sell copies of the Software, and to permit
8999 // persons to whom the Software is furnished to do so, subject to the
9000 // following conditions:
9002 // The above copyright notice and this permission notice shall be included
9003 // in all copies or substantial portions of the Software.
9005 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9006 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9007 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9008 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9009 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9010 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9011 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9013 // a duplex stream is just a stream that is both readable and writable.
9014 // Since JS doesn't have multiple prototypal inheritance, this class
9015 // prototypally inherits from Readable, and then parasitically from
9018 module.exports = Duplex;
9021 var objectKeys = Object.keys || function (obj) {
9023 for (var key in obj) keys.push(key);
9030 var util = require('core-util-is');
9031 util.inherits = require('inherits');
9034 var Readable = require('./_stream_readable');
9035 var Writable = require('./_stream_writable');
9037 util.inherits(Duplex, Readable);
9039 forEach(objectKeys(Writable.prototype), function(method) {
9040 if (!Duplex.prototype[method])
9041 Duplex.prototype[method] = Writable.prototype[method];
9044 function Duplex(options) {
9045 if (!(this instanceof Duplex))
9046 return new Duplex(options);
9048 Readable.call(this, options);
9049 Writable.call(this, options);
9051 if (options && options.readable === false)
9052 this.readable = false;
9054 if (options && options.writable === false)
9055 this.writable = false;
9057 this.allowHalfOpen = true;
9058 if (options && options.allowHalfOpen === false)
9059 this.allowHalfOpen = false;
9061 this.once('end', onend);
9064 // the no-half-open enforcer
9066 // if we allow half-open state, or if the writable side ended,
9068 if (this.allowHalfOpen || this._writableState.ended)
9071 // no more data can be written.
9072 // But allow more writes to happen in this tick.
9073 process.nextTick(this.end.bind(this));
9076 function forEach (xs, f) {
9077 for (var i =
0, l = xs.length; i < l; i++) {
9082 }).call(this,require('_process'))
9083 },{"./_stream_readable":
18,"./_stream_writable":
20,"_process":
14,"core-util-is":
21,"inherits":
12}],
17:[function(require,module,exports){
9084 // Copyright Joyent, Inc. and other Node contributors.
9086 // Permission is hereby granted, free of charge, to any person obtaining a
9087 // copy of this software and associated documentation files (the
9088 // "Software"), to deal in the Software without restriction, including
9089 // without limitation the rights to use, copy, modify, merge, publish,
9090 // distribute, sublicense, and/or sell copies of the Software, and to permit
9091 // persons to whom the Software is furnished to do so, subject to the
9092 // following conditions:
9094 // The above copyright notice and this permission notice shall be included
9095 // in all copies or substantial portions of the Software.
9097 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9098 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9099 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9100 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9101 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9102 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9103 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9105 // a passthrough stream.
9106 // basically just the most minimal sort of Transform stream.
9107 // Every written chunk gets output as-is.
9109 module.exports = PassThrough;
9111 var Transform = require('./_stream_transform');
9114 var util = require('core-util-is');
9115 util.inherits = require('inherits');
9118 util.inherits(PassThrough, Transform);
9120 function PassThrough(options) {
9121 if (!(this instanceof PassThrough))
9122 return new PassThrough(options);
9124 Transform.call(this, options);
9127 PassThrough.prototype._transform = function(chunk, encoding, cb) {
9131 },{"./_stream_transform":
19,"core-util-is":
21,"inherits":
12}],
18:[function(require,module,exports){
9132 (function (process){
9133 // Copyright Joyent, Inc. and other Node contributors.
9135 // Permission is hereby granted, free of charge, to any person obtaining a
9136 // copy of this software and associated documentation files (the
9137 // "Software"), to deal in the Software without restriction, including
9138 // without limitation the rights to use, copy, modify, merge, publish,
9139 // distribute, sublicense, and/or sell copies of the Software, and to permit
9140 // persons to whom the Software is furnished to do so, subject to the
9141 // following conditions:
9143 // The above copyright notice and this permission notice shall be included
9144 // in all copies or substantial portions of the Software.
9146 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9147 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9148 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
9149 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
9150 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
9151 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
9152 // USE OR OTHER DEALINGS IN THE SOFTWARE.
9154 module.exports = Readable;
9157 var isArray = require('isarray');
9162 var Buffer = require('buffer').Buffer;
9165 Readable.ReadableState = ReadableState;
9167 var EE = require('events').EventEmitter;
9170 if (!EE.listenerCount) EE.listenerCount = function(emitter, type) {
9171 return emitter.listeners(type).length;
9175 var Stream = require('stream');
9178 var util = require('core-util-is');
9179 util.inherits = require('inherits');
9186 var debug = require('util');
9187 if (debug && debug.debuglog) {
9188 debug = debug.debuglog('stream');
9190 debug = function () {};
9195 util.inherits(Readable, Stream);
9197 function ReadableState(options, stream) {
9198 var Duplex = require('./_stream_duplex');
9200 options = options || {};
9202 // the point at which it stops calling _read() to fill the buffer
9203 // Note:
0 is a valid value, means "don't call _read preemptively ever"
9204 var hwm = options.highWaterMark;
9205 var defaultHwm = options.objectMode ?
16 :
16 *
1024;
9206 this.highWaterMark = (hwm || hwm ===
0) ? hwm : defaultHwm;
9209 this.highWaterMark = ~~this.highWaterMark;
9214 this.pipesCount =
0;
9215 this.flowing = null;
9217 this.endEmitted = false;
9218 this.reading = false;
9220 // a flag to be able to tell if the onwrite cb is called immediately,
9221 // or on a later tick. We set this to true at first, because any
9222 // actions that shouldn't happen until "later" should generally also
9223 // not happen before the first write call.
9226 // whenever we return null, then we set a flag to say
9227 // that we're awaiting a 'readable' event emission.
9228 this.needReadable = false;
9229 this.emittedReadable = false;
9230 this.readableListening = false;
9233 // object stream flag. Used to make read(n) ignore n and to
9234 // make all the buffer merging and length checks go away
9235 this.objectMode = !!options.objectMode;
9237 if (stream instanceof Duplex)
9238 this.objectMode = this.objectMode || !!options.readableObjectMode;
9240 // Crypto is kind of old and crusty. Historically, its default string
9241 // encoding is 'binary' so we have to make this configurable.
9242 // Everything else in the universe uses 'utf8', though.
9243 this.defaultEncoding = options.defaultEncoding || 'utf8';
9245 // when piping, we only care about 'readable' events that happen
9246 // after read()ing all the bytes and not getting any pushback.
9247 this.ranOut = false;
9249 // the number of writers that are awaiting a drain event in .pipe()s
9250 this.awaitDrain =
0;
9252 // if true, a maybeReadMore has been scheduled
9253 this.readingMore = false;
9255 this.decoder = null;
9256 this.encoding = null;
9257 if (options.encoding) {
9259 StringDecoder = require('string_decoder/').StringDecoder;
9260 this.decoder = new StringDecoder(options.encoding);
9261 this.encoding = options.encoding;
9265 function Readable(options) {
9266 var Duplex = require('./_stream_duplex');
9268 if (!(this instanceof Readable))
9269 return new Readable(options);
9271 this._readableState = new ReadableState(options, this);
9274 this.readable = true;
9279 // Manually shove something into the read() buffer.
9280 // This returns true if the highWaterMark has not been hit yet,
9281 // similar to how Writable.write() returns true if you should
9282 // write() some more.
9283 Readable.prototype.push = function(chunk, encoding) {
9284 var state = this._readableState;
9286 if (util.isString(chunk) && !state.objectMode) {
9287 encoding = encoding || state.defaultEncoding;
9288 if (encoding !== state.encoding) {
9289 chunk = new Buffer(chunk, encoding);
9294 return readableAddChunk(this, state, chunk, encoding, false);
9297 // Unshift should *always* be something directly out of read()
9298 Readable.prototype.unshift = function(chunk) {
9299 var state = this._readableState;
9300 return readableAddChunk(this, state, chunk, '', true);
9303 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
9304 var er = chunkInvalid(state, chunk);
9306 stream.emit('error', er);
9307 } else if (util.isNullOrUndefined(chunk)) {
9308 state.reading = false;
9310 onEofChunk(stream, state);
9311 } else if (state.objectMode || chunk && chunk.length
> 0) {
9312 if (state.ended && !addToFront) {
9313 var e = new Error('stream.push() after EOF');
9314 stream.emit('error', e);
9315 } else if (state.endEmitted && addToFront) {
9316 var e = new Error('stream.unshift() after end event');
9317 stream.emit('error', e);
9319 if (state.decoder && !addToFront && !encoding)
9320 chunk = state.decoder.write(chunk);
9323 state.reading = false;
9325 // if we want the data now, just emit it.
9326 if (state.flowing && state.length ===
0 && !state.sync) {
9327 stream.emit('data', chunk);
9330 // update the buffer info.
9331 state.length += state.objectMode ?
1 : chunk.length;
9333 state.buffer.unshift(chunk);
9335 state.buffer.push(chunk);
9337 if (state.needReadable)
9338 emitReadable(stream);
9341 maybeReadMore(stream, state);
9343 } else if (!addToFront) {
9344 state.reading = false;
9347 return needMoreData(state);
9352 // if it's past the high water mark, we can push in some more.
9353 // Also, if we have no data yet, we can stand some
9354 // more bytes. This is to work around cases where hwm=
0,
9355 // such as the repl. Also, if the push() triggered a
9356 // readable event, and the user called read(largeNumber) such that
9357 // needReadable was set, then we ought to push more, so that another
9358 // 'readable' event will be triggered.
9359 function needMoreData(state) {
9360 return !state.ended &&
9361 (state.needReadable ||
9362 state.length < state.highWaterMark ||
9363 state.length ===
0);
9366 // backwards compatibility.
9367 Readable.prototype.setEncoding = function(enc) {
9369 StringDecoder = require('string_decoder/').StringDecoder;
9370 this._readableState.decoder = new StringDecoder(enc);
9371 this._readableState.encoding = enc;
9375 // Don't raise the hwm
> 128MB
9376 var MAX_HWM =
0x800000;
9377 function roundUpToNextPowerOf2(n) {
9381 // Get the next highest power of
2
9383 for (var p =
1; p <
32; p <<=
1) n |= n
>> p;
9389 function howMuchToRead(n, state) {
9390 if (state.length ===
0 && state.ended)
9393 if (state.objectMode)
9394 return n ===
0 ?
0 :
1;
9396 if (isNaN(n) || util.isNull(n)) {
9397 // only flow one buffer at a time
9398 if (state.flowing && state.buffer.length)
9399 return state.buffer[
0].length;
9401 return state.length;
9407 // If we're asking for more than the target buffer level,
9408 // then raise the water mark. Bump up to the next highest
9409 // power of
2, to prevent increasing it excessively in tiny
9411 if (n
> state.highWaterMark)
9412 state.highWaterMark = roundUpToNextPowerOf2(n);
9414 // don't have that much. return null, unless we've ended.
9415 if (n
> state.length) {
9417 state.needReadable = true;
9420 return state.length;
9426 // you can override either this method, or the async _read(n) below.
9427 Readable.prototype.read = function(n) {
9429 var state = this._readableState;
9432 if (!util.isNumber(n) || n
> 0)
9433 state.emittedReadable = false;
9435 // if we're doing read(
0) to trigger a readable event, but we
9436 // already have a bunch of data in the buffer, then just trigger
9437 // the 'readable' event and move on.
9439 state.needReadable &&
9440 (state.length
>= state.highWaterMark || state.ended)) {
9441 debug('read: emitReadable', state.length, state.ended);
9442 if (state.length ===
0 && state.ended)
9449 n = howMuchToRead(n, state);
9451 // if we've ended, and we're now clear, then finish it up.
9452 if (n ===
0 && state.ended) {
9453 if (state.length ===
0)
9458 // All the actual chunk generation logic needs to be
9459 // *below* the call to _read. The reason is that in certain
9460 // synthetic stream cases, such as passthrough streams, _read
9461 // may be a completely synchronous operation which may change
9462 // the state of the read buffer, providing enough data when
9463 // before there was *not* enough.
9465 // So, the steps are:
9466 //
1. Figure out what the state of things will be after we do
9467 // a read from the buffer.
9469 //
2. If that resulting state will trigger a _read, then call _read.
9470 // Note that this may be asynchronous, or synchronous. Yes, it is
9471 // deeply ugly to write APIs this way, but that still doesn't mean
9472 // that the Readable class should behave improperly, as streams are
9473 // designed to be sync/async agnostic.
9474 // Take note if the _read call is sync or async (ie, if the read call
9475 // has returned yet), so that we know whether or not it's safe to emit
9478 //
3. Actually pull the requested chunks out of the buffer and return.
9480 // if we need a readable event, then we need to do some reading.
9481 var doRead = state.needReadable;
9482 debug('need readable', doRead);
9484 // if we currently have less than the highWaterMark, then also read some
9485 if (state.length ===
0 || state.length - n < state.highWaterMark) {
9487 debug('length less than watermark', doRead);
9490 // however, if we've ended, then there's no point, and if we're already
9491 // reading, then it's unnecessary.
9492 if (state.ended || state.reading) {
9494 debug('reading or ended', doRead);
9499 state.reading = true;
9501 // if the length is currently zero, then we *need* a readable event.
9502 if (state.length ===
0)
9503 state.needReadable = true;
9504 // call internal read method
9505 this._read(state.highWaterMark);
9509 // If _read pushed data synchronously, then `reading` will be false,
9510 // and we need to re-evaluate how much data we can return to the user.
9511 if (doRead && !state.reading)
9512 n = howMuchToRead(nOrig, state);
9516 ret = fromList(n, state);
9520 if (util.isNull(ret)) {
9521 state.needReadable = true;
9527 // If we have nothing in the buffer, then we want to know
9528 // as soon as we *do* get something into the buffer.
9529 if (state.length ===
0 && !state.ended)
9530 state.needReadable = true;
9532 // If we tried to read() past the EOF, then emit end on the next tick.
9533 if (nOrig !== n && state.ended && state.length ===
0)
9536 if (!util.isNull(ret))
9537 this.emit('data', ret);
9542 function chunkInvalid(state, chunk) {
9544 if (!util.isBuffer(chunk) &&
9545 !util.isString(chunk) &&
9546 !util.isNullOrUndefined(chunk) &&
9547 !state.objectMode) {
9548 er = new TypeError('Invalid non-string/buffer chunk');
9554 function onEofChunk(stream, state) {
9555 if (state.decoder && !state.ended) {
9556 var chunk = state.decoder.end();
9557 if (chunk && chunk.length) {
9558 state.buffer.push(chunk);
9559 state.length += state.objectMode ?
1 : chunk.length;
9564 // emit 'readable' now to make sure it gets picked up.
9565 emitReadable(stream);
9568 // Don't emit readable right away in sync mode, because this can trigger
9569 // another read() call =
> stack overflow. This way, it might trigger
9570 // a nextTick recursion warning, but that's not so bad.
9571 function emitReadable(stream) {
9572 var state = stream._readableState;
9573 state.needReadable = false;
9574 if (!state.emittedReadable) {
9575 debug('emitReadable', state.flowing);
9576 state.emittedReadable = true;
9578 process.nextTick(function() {
9579 emitReadable_(stream);
9582 emitReadable_(stream);
9586 function emitReadable_(stream) {
9587 debug('emit readable');
9588 stream.emit('readable');
9593 // at this point, the user has presumably seen the 'readable' event,
9594 // and called read() to consume some data. that may have triggered
9595 // in turn another _read(n) call, in which case reading = true if
9596 // it's in progress.
9597 // However, if we're not ended, or reading, and the length < hwm,
9598 // then go ahead and try to read some more preemptively.
9599 function maybeReadMore(stream, state) {
9600 if (!state.readingMore) {
9601 state.readingMore = true;
9602 process.nextTick(function() {
9603 maybeReadMore_(stream, state);
9608 function maybeReadMore_(stream, state) {
9609 var len = state.length;
9610 while (!state.reading && !state.flowing && !state.ended &&
9611 state.length < state.highWaterMark) {
9612 debug('maybeReadMore read
0');
9614 if (len === state.length)
9615 // didn't get any data, stop spinning.
9620 state.readingMore = false;
9623 // abstract method. to be overridden in specific implementation classes.
9624 // call cb(er, data) where data is <= n in length.
9625 // for virtual (non-string, non-buffer) streams, "length" is somewhat
9626 // arbitrary, and perhaps not very meaningful.
9627 Readable.prototype._read = function(n) {
9628 this.emit('error', new Error('not implemented'));
9631 Readable.prototype.pipe = function(dest, pipeOpts) {
9633 var state = this._readableState;
9635 switch (state.pipesCount) {
9640 state.pipes = [state.pipes, dest];
9643 state.pipes.push(dest);
9646 state.pipesCount +=
1;
9647 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
9649 var doEnd = (!pipeOpts || pipeOpts.end !== false) &&
9650 dest !== process.stdout &&
9651 dest !== process.stderr;
9653 var endFn = doEnd ? onend : cleanup;
9654 if (state.endEmitted)
9655 process.nextTick(endFn);
9657 src.once('end', endFn);
9659 dest.on('unpipe', onunpipe);
9660 function onunpipe(readable) {
9662 if (readable === src) {
9672 // when the dest drains, it reduces the awaitDrain counter
9673 // on the source. This would be more elegant with a .once()
9674 // handler in flow(), but adding and removing repeatedly is
9676 var ondrain = pipeOnDrain(src);
9677 dest.on('drain', ondrain);
9679 function cleanup() {
9681 // cleanup event handlers once the pipe is broken
9682 dest.removeListener('close', onclose);
9683 dest.removeListener('finish', onfinish);
9684 dest.removeListener('drain', ondrain);
9685 dest.removeListener('error', onerror);
9686 dest.removeListener('unpipe', onunpipe);
9687 src.removeListener('end', onend);
9688 src.removeListener('end', cleanup);
9689 src.removeListener('data', ondata);
9691 // if the reader is waiting for a drain event from this
9692 // specific writer, then it would cause it to never start
9694 // So, if this is awaiting a drain, then we just call it now.
9695 // If we don't know, then assume that we are waiting for one.
9696 if (state.awaitDrain &&
9697 (!dest._writableState || dest._writableState.needDrain))
9701 src.on('data', ondata);
9702 function ondata(chunk) {
9704 var ret = dest.write(chunk);
9705 if (false === ret) {
9706 debug('false write response, pause',
9707 src._readableState.awaitDrain);
9708 src._readableState.awaitDrain++;
9713 // if the dest has an error, then stop piping into it.
9714 // however, don't suppress the throwing behavior for this.
9715 function onerror(er) {
9716 debug('onerror', er);
9718 dest.removeListener('error', onerror);
9719 if (EE.listenerCount(dest, 'error') ===
0)
9720 dest.emit('error', er);
9722 // This is a brutally ugly hack to make sure that our error handler
9723 // is attached before any userland ones. NEVER DO THIS.
9724 if (!dest._events || !dest._events.error)
9725 dest.on('error', onerror);
9726 else if (isArray(dest._events.error))
9727 dest._events.error.unshift(onerror);
9729 dest._events.error = [onerror, dest._events.error];
9733 // Both close and finish should trigger unpipe, but only once.
9734 function onclose() {
9735 dest.removeListener('finish', onfinish);
9738 dest.once('close', onclose);
9739 function onfinish() {
9741 dest.removeListener('close', onclose);
9744 dest.once('finish', onfinish);
9751 // tell the dest that it's being piped to
9752 dest.emit('pipe', src);
9754 // start the flow if it hasn't been started already.
9755 if (!state.flowing) {
9756 debug('pipe resume');
9763 function pipeOnDrain(src) {
9765 var state = src._readableState;
9766 debug('pipeOnDrain', state.awaitDrain);
9767 if (state.awaitDrain)
9769 if (state.awaitDrain ===
0 && EE.listenerCount(src, 'data')) {
9770 state.flowing = true;
9777 Readable.prototype.unpipe = function(dest) {
9778 var state = this._readableState;
9780 // if we're not piping anywhere, then do nothing.
9781 if (state.pipesCount ===
0)
9784 // just one destination. most common case.
9785 if (state.pipesCount ===
1) {
9786 // passed in one, but it's not the right one.
9787 if (dest && dest !== state.pipes)
9795 state.pipesCount =
0;
9796 state.flowing = false;
9798 dest.emit('unpipe', this);
9802 // slow case. multiple pipe destinations.
9806 var dests = state.pipes;
9807 var len = state.pipesCount;
9809 state.pipesCount =
0;
9810 state.flowing = false;
9812 for (var i =
0; i < len; i++)
9813 dests[i].emit('unpipe', this);
9817 // try to find the right one.
9818 var i = indexOf(state.pipes, dest);
9822 state.pipes.splice(i,
1);
9823 state.pipesCount -=
1;
9824 if (state.pipesCount ===
1)
9825 state.pipes = state.pipes[
0];
9827 dest.emit('unpipe', this);
9832 // set up data events if they are asked for
9833 // Ensure readable listeners eventually get something
9834 Readable.prototype.on = function(ev, fn) {
9835 var res = Stream.prototype.on.call(this, ev, fn);
9837 // If listening to data, and it has not explicitly been paused,
9838 // then call resume to start the flow of data on the next tick.
9839 if (ev === 'data' && false !== this._readableState.flowing) {
9843 if (ev === 'readable' && this.readable) {
9844 var state = this._readableState;
9845 if (!state.readableListening) {
9846 state.readableListening = true;
9847 state.emittedReadable = false;
9848 state.needReadable = true;
9849 if (!state.reading) {
9851 process.nextTick(function() {
9852 debug('readable nexttick read
0');
9855 } else if (state.length) {
9856 emitReadable(this, state);
9863 Readable.prototype.addListener = Readable.prototype.on;
9865 // pause() and resume() are remnants of the legacy readable stream API
9866 // If the user uses them, then switch into old mode.
9867 Readable.prototype.resume = function() {
9868 var state = this._readableState;
9869 if (!state.flowing) {
9871 state.flowing = true;
9872 if (!state.reading) {
9873 debug('resume read
0');
9876 resume(this, state);
9881 function resume(stream, state) {
9882 if (!state.resumeScheduled) {
9883 state.resumeScheduled = true;
9884 process.nextTick(function() {
9885 resume_(stream, state);
9890 function resume_(stream, state) {
9891 state.resumeScheduled = false;
9892 stream.emit('resume');
9894 if (state.flowing && !state.reading)
9898 Readable.prototype.pause = function() {
9899 debug('call pause flowing=%j', this._readableState.flowing);
9900 if (false !== this._readableState.flowing) {
9902 this._readableState.flowing = false;
9908 function flow(stream) {
9909 var state = stream._readableState;
9910 debug('flow', state.flowing);
9911 if (state.flowing) {
9913 var chunk = stream.read();
9914 } while (null !== chunk && state.flowing);
9918 // wrap an old-style stream as the async data source.
9919 // This is *not* part of the readable stream interface.
9920 // It is an ugly unfortunate mess of history.
9921 Readable.prototype.wrap = function(stream) {
9922 var state = this._readableState;
9926 stream.on('end', function() {
9927 debug('wrapped end');
9928 if (state.decoder && !state.ended) {
9929 var chunk = state.decoder.end();
9930 if (chunk && chunk.length)
9937 stream.on('data', function(chunk) {
9938 debug('wrapped data');
9940 chunk = state.decoder.write(chunk);
9941 if (!chunk || !state.objectMode && !chunk.length)
9944 var ret = self.push(chunk);
9951 // proxy all the other methods.
9952 // important when wrapping filters and duplexes.
9953 for (var i in stream) {
9954 if (util.isFunction(stream[i]) && util.isUndefined(this[i])) {
9955 this[i] = function(method) { return function() {
9956 return stream[method].apply(stream, arguments);
9961 // proxy certain important events.
9962 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
9963 forEach(events, function(ev) {
9964 stream.on(ev, self.emit.bind(self, ev));
9967 // when we try to consume some more bytes, simply unpause the
9968 // underlying stream.
9969 self._read = function(n) {
9970 debug('wrapped _read', n);
9982 // exposed for testing purposes only.
9983 Readable._fromList = fromList;
9985 // Pluck off n bytes from an array of buffers.
9986 // Length is the combined lengths of all the buffers in the list.
9987 function fromList(n, state) {
9988 var list = state.buffer;
9989 var length = state.length;
9990 var stringMode = !!state.decoder;
9991 var objectMode = !!state.objectMode;
9994 // nothing in the list, definitely empty.
9995 if (list.length ===
0)
10000 else if (objectMode)
10001 ret = list.shift();
10002 else if (!n || n
>= length) {
10003 // read it all, truncate the array.
10005 ret = list.join('');
10007 ret = Buffer.concat(list, length);
10010 // read just some of it.
10011 if (n < list[
0].length) {
10012 // just take a part of the first list item.
10013 // slice is the same for buffers and strings.
10015 ret = buf.slice(
0, n);
10016 list[
0] = buf.slice(n);
10017 } else if (n === list[
0].length) {
10018 // first list is a perfect match
10019 ret = list.shift();
10022 // we have enough to cover it, but it spans past the first buffer.
10026 ret = new Buffer(n);
10029 for (var i =
0, l = list.length; i < l && c < n; i++) {
10031 var cpy = Math.min(n - c, buf.length);
10034 ret += buf.slice(
0, cpy);
10036 buf.copy(ret, c,
0, cpy);
10038 if (cpy < buf.length)
10039 list[
0] = buf.slice(cpy);
10051 function endReadable(stream) {
10052 var state = stream._readableState;
10054 // If we get here before consuming all the bytes, then that is a
10055 // bug in node. Should never happen.
10056 if (state.length
> 0)
10057 throw new Error('endReadable called on non-empty stream');
10059 if (!state.endEmitted) {
10060 state.ended = true;
10061 process.nextTick(function() {
10062 // Check that we didn't get one last unshift.
10063 if (!state.endEmitted && state.length ===
0) {
10064 state.endEmitted = true;
10065 stream.readable = false;
10066 stream.emit('end');
10072 function forEach (xs, f) {
10073 for (var i =
0, l = xs.length; i < l; i++) {
10078 function indexOf (xs, x) {
10079 for (var i =
0, l = xs.length; i < l; i++) {
10080 if (xs[i] === x) return i;
10085 }).call(this,require('_process'))
10086 },{
"./_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){
10087 // Copyright Joyent, Inc. and other Node contributors.
10089 // Permission is hereby granted, free of charge, to any person obtaining a
10090 // copy of this software and associated documentation files (the
10091 //
"Software"), to deal in the Software without restriction, including
10092 // without limitation the rights to use, copy, modify, merge, publish,
10093 // distribute, sublicense, and/or sell copies of the Software, and to permit
10094 // persons to whom the Software is furnished to do so, subject to the
10095 // following conditions:
10097 // The above copyright notice and this permission notice shall be included
10098 // in all copies or substantial portions of the Software.
10100 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10101 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10102 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10103 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10104 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10105 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10106 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10109 // a transform stream is a readable/writable stream where you do
10110 // something with the data. Sometimes it's called a
"filter",
10111 // but that's not a great name for it, since that implies a thing where
10112 // some bits pass through, and others are simply ignored. (That would
10113 // be a valid example of a transform, of course.)
10115 // While the output is causally related to the input, it's not a
10116 // necessarily symmetric or synchronous transformation. For example,
10117 // a zlib stream might take multiple plain-text writes(), and then
10118 // emit a single compressed chunk some time in the future.
10120 // Here's how this works:
10122 // The Transform stream has all the aspects of the readable and writable
10123 // stream classes. When you write(chunk), that calls _write(chunk,cb)
10124 // internally, and returns false if there's a lot of pending writes
10125 // buffered up. When you call read(), that calls _read(n) until
10126 // there's enough pending readable data buffered up.
10128 // In a transform stream, the written data is placed in a buffer. When
10129 // _read(n) is called, it transforms the queued up data, calling the
10130 // buffered _write cb's as it consumes chunks. If consuming a single
10131 // written chunk would result in multiple output chunks, then the first
10132 // outputted bit calls the readcb, and subsequent chunks just go into
10133 // the read buffer, and will cause it to emit 'readable' if necessary.
10135 // This way, back-pressure is actually determined by the reading side,
10136 // since _read has to be called to start processing a new chunk. However,
10137 // a pathological inflate type of transform can cause excessive buffering
10138 // here. For example, imagine a stream where every byte of input is
10139 // interpreted as an integer from
0-
255, and then results in that many
10140 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
10141 //
1kb of data being output. In this case, you could write a very small
10142 // amount of input, and end up with a very large amount of output. In
10143 // such a pathological inflating mechanism, there'd be no way to tell
10144 // the system to stop doing the transform. A single
4MB write could
10145 // cause the system to run out of memory.
10147 // However, even in such a pathological case, only a single written chunk
10148 // would be consumed, and then the rest would wait (un-transformed) until
10149 // the results of the previous transformed chunk were consumed.
10151 module.exports = Transform;
10153 var Duplex = require('./_stream_duplex');
10156 var util = require('core-util-is');
10157 util.inherits = require('inherits');
10160 util.inherits(Transform, Duplex);
10163 function TransformState(options, stream) {
10164 this.afterTransform = function(er, data) {
10165 return afterTransform(stream, er, data);
10168 this.needTransform = false;
10169 this.transforming = false;
10170 this.writecb = null;
10171 this.writechunk = null;
10174 function afterTransform(stream, er, data) {
10175 var ts = stream._transformState;
10176 ts.transforming = false;
10178 var cb = ts.writecb;
10181 return stream.emit('error', new Error('no writecb in Transform class'));
10183 ts.writechunk = null;
10186 if (!util.isNullOrUndefined(data))
10192 var rs = stream._readableState;
10193 rs.reading = false;
10194 if (rs.needReadable || rs.length < rs.highWaterMark) {
10195 stream._read(rs.highWaterMark);
10200 function Transform(options) {
10201 if (!(this instanceof Transform))
10202 return new Transform(options);
10204 Duplex.call(this, options);
10206 this._transformState = new TransformState(options, this);
10208 // when the writable side finishes, then flush out anything remaining.
10211 // start out asking for a readable event once data is transformed.
10212 this._readableState.needReadable = true;
10214 // we have implemented the _read method, and done the other things
10215 // that Readable wants before the first _read call, so unset the
10216 // sync guard flag.
10217 this._readableState.sync = false;
10219 this.once('prefinish', function() {
10220 if (util.isFunction(this._flush))
10221 this._flush(function(er) {
10229 Transform.prototype.push = function(chunk, encoding) {
10230 this._transformState.needTransform = false;
10231 return Duplex.prototype.push.call(this, chunk, encoding);
10234 // This is the part where you do stuff!
10235 // override this function in implementation classes.
10236 // 'chunk' is an input chunk.
10238 // Call `push(newChunk)` to pass along transformed output
10239 // to the readable side. You may call 'push' zero or more times.
10241 // Call `cb(err)` when you are done with this chunk. If you pass
10242 // an error, then that'll put the hurt on the whole operation. If you
10243 // never call cb(), then you'll never get another chunk.
10244 Transform.prototype._transform = function(chunk, encoding, cb) {
10245 throw new Error('not implemented');
10248 Transform.prototype._write = function(chunk, encoding, cb) {
10249 var ts = this._transformState;
10251 ts.writechunk = chunk;
10252 ts.writeencoding = encoding;
10253 if (!ts.transforming) {
10254 var rs = this._readableState;
10255 if (ts.needTransform ||
10257 rs.length < rs.highWaterMark)
10258 this._read(rs.highWaterMark);
10262 // Doesn't matter what the args are here.
10263 // _transform does all the work.
10264 // That we got here means that the readable side wants more data.
10265 Transform.prototype._read = function(n) {
10266 var ts = this._transformState;
10268 if (!util.isNull(ts.writechunk) && ts.writecb && !ts.transforming) {
10269 ts.transforming = true;
10270 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
10272 // mark that we need a transform, so that any data that comes in
10273 // will get processed, now that we've asked for it.
10274 ts.needTransform = true;
10279 function done(stream, er) {
10281 return stream.emit('error', er);
10283 // if there's nothing in the write buffer, then that means
10284 // that nothing more will ever be provided
10285 var ws = stream._writableState;
10286 var ts = stream._transformState;
10289 throw new Error('calling transform done when ws.length !=
0');
10291 if (ts.transforming)
10292 throw new Error('calling transform done when still transforming');
10294 return stream.push(null);
10297 },{"./_stream_duplex":
16,"core-util-is":
21,"inherits":
12}],
20:[function(require,module,exports){
10298 (function (process){
10299 // Copyright Joyent, Inc. and other Node contributors.
10301 // Permission is hereby granted, free of charge, to any person obtaining a
10302 // copy of this software and associated documentation files (the
10303 // "Software"), to deal in the Software without restriction, including
10304 // without limitation the rights to use, copy, modify, merge, publish,
10305 // distribute, sublicense, and/or sell copies of the Software, and to permit
10306 // persons to whom the Software is furnished to do so, subject to the
10307 // following conditions:
10309 // The above copyright notice and this permission notice shall be included
10310 // in all copies or substantial portions of the Software.
10312 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10313 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10314 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10315 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10316 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10317 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10318 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10320 // A bit simpler than readable streams.
10321 // Implement an async ._write(chunk, cb), and it'll handle all
10322 // the drain event emission and buffering.
10324 module.exports = Writable;
10327 var Buffer = require('buffer').Buffer;
10330 Writable.WritableState = WritableState;
10334 var util = require('core-util-is');
10335 util.inherits = require('inherits');
10338 var Stream = require('stream');
10340 util.inherits(Writable, Stream);
10342 function WriteReq(chunk, encoding, cb) {
10343 this.chunk = chunk;
10344 this.encoding = encoding;
10345 this.callback = cb;
10348 function WritableState(options, stream) {
10349 var Duplex = require('./_stream_duplex');
10351 options = options || {};
10353 // the point at which write() starts returning false
10354 // Note:
0 is a valid value, means that we always return false if
10355 // the entire buffer is not flushed immediately on write()
10356 var hwm = options.highWaterMark;
10357 var defaultHwm = options.objectMode ?
16 :
16 *
1024;
10358 this.highWaterMark = (hwm || hwm ===
0) ? hwm : defaultHwm;
10360 // object stream flag to indicate whether or not this stream
10361 // contains buffers or objects.
10362 this.objectMode = !!options.objectMode;
10364 if (stream instanceof Duplex)
10365 this.objectMode = this.objectMode || !!options.writableObjectMode;
10368 this.highWaterMark = ~~this.highWaterMark;
10370 this.needDrain = false;
10371 // at the start of calling end()
10372 this.ending = false;
10373 // when end() has been called, and returned
10374 this.ended = false;
10375 // when 'finish' is emitted
10376 this.finished = false;
10378 // should we decode strings into buffers before passing to _write?
10379 // this is here so that some node-core streams can optimize string
10380 // handling at a lower level.
10381 var noDecode = options.decodeStrings === false;
10382 this.decodeStrings = !noDecode;
10384 // Crypto is kind of old and crusty. Historically, its default string
10385 // encoding is 'binary' so we have to make this configurable.
10386 // Everything else in the universe uses 'utf8', though.
10387 this.defaultEncoding = options.defaultEncoding || 'utf8';
10389 // not an actual buffer we keep track of, but a measurement
10390 // of how much we're waiting to get pushed to some underlying
10394 // a flag to see when we're in the middle of a write.
10395 this.writing = false;
10397 // when true all writes will be buffered until .uncork() call
10400 // a flag to be able to tell if the onwrite cb is called immediately,
10401 // or on a later tick. We set this to true at first, because any
10402 // actions that shouldn't happen until "later" should generally also
10403 // not happen before the first write call.
10406 // a flag to know if we're processing previously buffered items, which
10407 // may call the _write() callback in the same tick, so that we don't
10408 // end up in an overlapped onwrite situation.
10409 this.bufferProcessing = false;
10411 // the callback that's passed to _write(chunk,cb)
10412 this.onwrite = function(er) {
10413 onwrite(stream, er);
10416 // the callback that the user supplies to write(chunk,encoding,cb)
10417 this.writecb = null;
10419 // the amount that is being written when _write is called.
10424 // number of pending user-supplied write callbacks
10425 // this must be
0 before 'finish' can be emitted
10426 this.pendingcb =
0;
10428 // emit prefinish if the only thing we're waiting for is _write cbs
10429 // This is relevant for synchronous Transform streams
10430 this.prefinished = false;
10432 // True if the error was already emitted and should not be thrown again
10433 this.errorEmitted = false;
10436 function Writable(options) {
10437 var Duplex = require('./_stream_duplex');
10439 // Writable ctor is applied to Duplexes, though they're not
10440 // instanceof Writable, they're instanceof Readable.
10441 if (!(this instanceof Writable) && !(this instanceof Duplex))
10442 return new Writable(options);
10444 this._writableState = new WritableState(options, this);
10447 this.writable = true;
10452 // Otherwise people can pipe Writable streams, which is just wrong.
10453 Writable.prototype.pipe = function() {
10454 this.emit('error', new Error('Cannot pipe. Not readable.'));
10458 function writeAfterEnd(stream, state, cb) {
10459 var er = new Error('write after end');
10460 // TODO: defer error events consistently everywhere, not just the cb
10461 stream.emit('error', er);
10462 process.nextTick(function() {
10467 // If we get something that is not a buffer, string, null, or undefined,
10468 // and we're not in objectMode, then that's an error.
10469 // Otherwise stream chunks are all considered to be of length=
1, and the
10470 // watermarks determine how many objects to keep in the buffer, rather than
10471 // how many bytes or characters.
10472 function validChunk(stream, state, chunk, cb) {
10474 if (!util.isBuffer(chunk) &&
10475 !util.isString(chunk) &&
10476 !util.isNullOrUndefined(chunk) &&
10477 !state.objectMode) {
10478 var er = new TypeError('Invalid non-string/buffer chunk');
10479 stream.emit('error', er);
10480 process.nextTick(function() {
10488 Writable.prototype.write = function(chunk, encoding, cb) {
10489 var state = this._writableState;
10492 if (util.isFunction(encoding)) {
10497 if (util.isBuffer(chunk))
10498 encoding = 'buffer';
10499 else if (!encoding)
10500 encoding = state.defaultEncoding;
10502 if (!util.isFunction(cb))
10503 cb = function() {};
10506 writeAfterEnd(this, state, cb);
10507 else if (validChunk(this, state, chunk, cb)) {
10509 ret = writeOrBuffer(this, state, chunk, encoding, cb);
10515 Writable.prototype.cork = function() {
10516 var state = this._writableState;
10521 Writable.prototype.uncork = function() {
10522 var state = this._writableState;
10524 if (state.corked) {
10527 if (!state.writing &&
10530 !state.bufferProcessing &&
10531 state.buffer.length)
10532 clearBuffer(this, state);
10536 function decodeChunk(state, chunk, encoding) {
10537 if (!state.objectMode &&
10538 state.decodeStrings !== false &&
10539 util.isString(chunk)) {
10540 chunk = new Buffer(chunk, encoding);
10545 // if we're already writing something, then just put this
10546 // in the queue, and wait our turn. Otherwise, call _write
10547 // If we return false, then we need a drain event, so set that flag.
10548 function writeOrBuffer(stream, state, chunk, encoding, cb) {
10549 chunk = decodeChunk(state, chunk, encoding);
10550 if (util.isBuffer(chunk))
10551 encoding = 'buffer';
10552 var len = state.objectMode ?
1 : chunk.length;
10554 state.length += len;
10556 var ret = state.length < state.highWaterMark;
10557 // we must ensure that previous needDrain will not be reset to false.
10559 state.needDrain = true;
10561 if (state.writing || state.corked)
10562 state.buffer.push(new WriteReq(chunk, encoding, cb));
10564 doWrite(stream, state, false, len, chunk, encoding, cb);
10569 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
10570 state.writelen = len;
10571 state.writecb = cb;
10572 state.writing = true;
10575 stream._writev(chunk, state.onwrite);
10577 stream._write(chunk, encoding, state.onwrite);
10578 state.sync = false;
10581 function onwriteError(stream, state, sync, er, cb) {
10583 process.nextTick(function() {
10592 stream._writableState.errorEmitted = true;
10593 stream.emit('error', er);
10596 function onwriteStateUpdate(state) {
10597 state.writing = false;
10598 state.writecb = null;
10599 state.length -= state.writelen;
10600 state.writelen =
0;
10603 function onwrite(stream, er) {
10604 var state = stream._writableState;
10605 var sync = state.sync;
10606 var cb = state.writecb;
10608 onwriteStateUpdate(state);
10611 onwriteError(stream, state, sync, er, cb);
10613 // Check if we're actually ready to finish, but don't emit yet
10614 var finished = needFinish(stream, state);
10618 !state.bufferProcessing &&
10619 state.buffer.length) {
10620 clearBuffer(stream, state);
10624 process.nextTick(function() {
10625 afterWrite(stream, state, finished, cb);
10628 afterWrite(stream, state, finished, cb);
10633 function afterWrite(stream, state, finished, cb) {
10635 onwriteDrain(stream, state);
10638 finishMaybe(stream, state);
10641 // Must force callback to be called on nextTick, so that we don't
10642 // emit 'drain' before the write() consumer gets the 'false' return
10643 // value, and has a chance to attach a 'drain' listener.
10644 function onwriteDrain(stream, state) {
10645 if (state.length ===
0 && state.needDrain) {
10646 state.needDrain = false;
10647 stream.emit('drain');
10652 // if there's something in the buffer waiting, then process it
10653 function clearBuffer(stream, state) {
10654 state.bufferProcessing = true;
10656 if (stream._writev && state.buffer.length
> 1) {
10657 // Fast case, write everything using _writev()
10659 for (var c =
0; c < state.buffer.length; c++)
10660 cbs.push(state.buffer[c].callback);
10662 // count the one we are adding, as well.
10663 // TODO(isaacs) clean this up
10665 doWrite(stream, state, true, state.length, state.buffer, '', function(err) {
10666 for (var i =
0; i < cbs.length; i++) {
10675 // Slow case, write chunks one-by-one
10676 for (var c =
0; c < state.buffer.length; c++) {
10677 var entry = state.buffer[c];
10678 var chunk = entry.chunk;
10679 var encoding = entry.encoding;
10680 var cb = entry.callback;
10681 var len = state.objectMode ?
1 : chunk.length;
10683 doWrite(stream, state, false, len, chunk, encoding, cb);
10685 // if we didn't call the onwrite immediately, then
10686 // it means that we need to wait until it does.
10687 // also, that means that the chunk and cb are currently
10688 // being processed, so move the buffer counter past them.
10689 if (state.writing) {
10695 if (c < state.buffer.length)
10696 state.buffer = state.buffer.slice(c);
10698 state.buffer.length =
0;
10701 state.bufferProcessing = false;
10704 Writable.prototype._write = function(chunk, encoding, cb) {
10705 cb(new Error('not implemented'));
10709 Writable.prototype._writev = null;
10711 Writable.prototype.end = function(chunk, encoding, cb) {
10712 var state = this._writableState;
10714 if (util.isFunction(chunk)) {
10718 } else if (util.isFunction(encoding)) {
10723 if (!util.isNullOrUndefined(chunk))
10724 this.write(chunk, encoding);
10726 // .end() fully uncorks
10727 if (state.corked) {
10732 // ignore unnecessary end() calls.
10733 if (!state.ending && !state.finished)
10734 endWritable(this, state, cb);
10738 function needFinish(stream, state) {
10739 return (state.ending &&
10740 state.length ===
0 &&
10745 function prefinish(stream, state) {
10746 if (!state.prefinished) {
10747 state.prefinished = true;
10748 stream.emit('prefinish');
10752 function finishMaybe(stream, state) {
10753 var need = needFinish(stream, state);
10755 if (state.pendingcb ===
0) {
10756 prefinish(stream, state);
10757 state.finished = true;
10758 stream.emit('finish');
10760 prefinish(stream, state);
10765 function endWritable(stream, state, cb) {
10766 state.ending = true;
10767 finishMaybe(stream, state);
10769 if (state.finished)
10770 process.nextTick(cb);
10772 stream.once('finish', cb);
10774 state.ended = true;
10777 }).call(this,require('_process'))
10778 },{
"./_stream_duplex":
16,
"_process":
14,
"buffer":
7,
"core-util-is":
21,
"inherits":
12,
"stream":
26}],
21:[function(require,module,exports){
10779 (function (Buffer){
10780 // Copyright Joyent, Inc. and other Node contributors.
10782 // Permission is hereby granted, free of charge, to any person obtaining a
10783 // copy of this software and associated documentation files (the
10784 //
"Software"), to deal in the Software without restriction, including
10785 // without limitation the rights to use, copy, modify, merge, publish,
10786 // distribute, sublicense, and/or sell copies of the Software, and to permit
10787 // persons to whom the Software is furnished to do so, subject to the
10788 // following conditions:
10790 // The above copyright notice and this permission notice shall be included
10791 // in all copies or substantial portions of the Software.
10793 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10794 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10795 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10796 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10797 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10798 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10799 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10801 // NOTE: These type checking functions intentionally don't use `instanceof`
10802 // because it is fragile and can be easily faked with `Object.create()`.
10803 function isArray(ar) {
10804 return Array.isArray(ar);
10806 exports.isArray = isArray;
10808 function isBoolean(arg) {
10809 return typeof arg === 'boolean';
10811 exports.isBoolean = isBoolean;
10813 function isNull(arg) {
10814 return arg === null;
10816 exports.isNull = isNull;
10818 function isNullOrUndefined(arg) {
10819 return arg == null;
10821 exports.isNullOrUndefined = isNullOrUndefined;
10823 function isNumber(arg) {
10824 return typeof arg === 'number';
10826 exports.isNumber = isNumber;
10828 function isString(arg) {
10829 return typeof arg === 'string';
10831 exports.isString = isString;
10833 function isSymbol(arg) {
10834 return typeof arg === 'symbol';
10836 exports.isSymbol = isSymbol;
10838 function isUndefined(arg) {
10839 return arg === void
0;
10841 exports.isUndefined = isUndefined;
10843 function isRegExp(re) {
10844 return isObject(re) && objectToString(re) === '[object RegExp]';
10846 exports.isRegExp = isRegExp;
10848 function isObject(arg) {
10849 return typeof arg === 'object' && arg !== null;
10851 exports.isObject = isObject;
10853 function isDate(d) {
10854 return isObject(d) && objectToString(d) === '[object Date]';
10856 exports.isDate = isDate;
10858 function isError(e) {
10859 return isObject(e) &&
10860 (objectToString(e) === '[object Error]' || e instanceof Error);
10862 exports.isError = isError;
10864 function isFunction(arg) {
10865 return typeof arg === 'function';
10867 exports.isFunction = isFunction;
10869 function isPrimitive(arg) {
10870 return arg === null ||
10871 typeof arg === 'boolean' ||
10872 typeof arg === 'number' ||
10873 typeof arg === 'string' ||
10874 typeof arg === 'symbol' || // ES6 symbol
10875 typeof arg === 'undefined';
10877 exports.isPrimitive = isPrimitive;
10879 function isBuffer(arg) {
10880 return Buffer.isBuffer(arg);
10882 exports.isBuffer = isBuffer;
10884 function objectToString(o) {
10885 return Object.prototype.toString.call(o);
10887 }).call(this,require(
"buffer").Buffer)
10888 },{
"buffer":
7}],
22:[function(require,module,exports){
10889 module.exports = require(
"./lib/_stream_passthrough.js")
10891 },{
"./lib/_stream_passthrough.js":
17}],
23:[function(require,module,exports){
10892 exports = module.exports = require('./lib/_stream_readable.js');
10893 exports.Stream = require('stream');
10894 exports.Readable = exports;
10895 exports.Writable = require('./lib/_stream_writable.js');
10896 exports.Duplex = require('./lib/_stream_duplex.js');
10897 exports.Transform = require('./lib/_stream_transform.js');
10898 exports.PassThrough = require('./lib/_stream_passthrough.js');
10900 },{
"./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){
10901 module.exports = require(
"./lib/_stream_transform.js")
10903 },{
"./lib/_stream_transform.js":
19}],
25:[function(require,module,exports){
10904 module.exports = require(
"./lib/_stream_writable.js")
10906 },{
"./lib/_stream_writable.js":
20}],
26:[function(require,module,exports){
10907 // Copyright Joyent, Inc. and other Node contributors.
10909 // Permission is hereby granted, free of charge, to any person obtaining a
10910 // copy of this software and associated documentation files (the
10911 //
"Software"), to deal in the Software without restriction, including
10912 // without limitation the rights to use, copy, modify, merge, publish,
10913 // distribute, sublicense, and/or sell copies of the Software, and to permit
10914 // persons to whom the Software is furnished to do so, subject to the
10915 // following conditions:
10917 // The above copyright notice and this permission notice shall be included
10918 // in all copies or substantial portions of the Software.
10920 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10921 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
10922 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
10923 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
10924 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
10925 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
10926 // USE OR OTHER DEALINGS IN THE SOFTWARE.
10928 module.exports = Stream;
10930 var EE = require('events').EventEmitter;
10931 var inherits = require('inherits');
10933 inherits(Stream, EE);
10934 Stream.Readable = require('readable-stream/readable.js');
10935 Stream.Writable = require('readable-stream/writable.js');
10936 Stream.Duplex = require('readable-stream/duplex.js');
10937 Stream.Transform = require('readable-stream/transform.js');
10938 Stream.PassThrough = require('readable-stream/passthrough.js');
10940 // Backwards-compat with node
0.4.x
10941 Stream.Stream = Stream;
10945 // old-style streams. Note that the pipe method (the only relevant
10946 // part of this class) is overridden in the Readable class.
10948 function Stream() {
10952 Stream.prototype.pipe = function(dest, options) {
10955 function ondata(chunk) {
10956 if (dest.writable) {
10957 if (false === dest.write(chunk) && source.pause) {
10963 source.on('data', ondata);
10965 function ondrain() {
10966 if (source.readable && source.resume) {
10971 dest.on('drain', ondrain);
10973 // If the 'end' option is not supplied, dest.end() will be called when
10974 // source gets the 'end' or 'close' events. Only dest.end() once.
10975 if (!dest._isStdio && (!options || options.end !== false)) {
10976 source.on('end', onend);
10977 source.on('close', onclose);
10980 var didOnEnd = false;
10982 if (didOnEnd) return;
10989 function onclose() {
10990 if (didOnEnd) return;
10993 if (typeof dest.destroy === 'function') dest.destroy();
10996 // don't leave dangling pipes when there are errors.
10997 function onerror(er) {
10999 if (EE.listenerCount(this, 'error') ===
0) {
11000 throw er; // Unhandled stream error in pipe.
11004 source.on('error', onerror);
11005 dest.on('error', onerror);
11007 // remove all the event listeners that were added.
11008 function cleanup() {
11009 source.removeListener('data', ondata);
11010 dest.removeListener('drain', ondrain);
11012 source.removeListener('end', onend);
11013 source.removeListener('close', onclose);
11015 source.removeListener('error', onerror);
11016 dest.removeListener('error', onerror);
11018 source.removeListener('end', cleanup);
11019 source.removeListener('close', cleanup);
11021 dest.removeListener('close', cleanup);
11024 source.on('end', cleanup);
11025 source.on('close', cleanup);
11027 dest.on('close', cleanup);
11029 dest.emit('pipe', source);
11031 // Allow for unix-like usage: A.pipe(B).pipe(C)
11035 },{
"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){
11036 // Copyright Joyent, Inc. and other Node contributors.
11038 // Permission is hereby granted, free of charge, to any person obtaining a
11039 // copy of this software and associated documentation files (the
11040 //
"Software"), to deal in the Software without restriction, including
11041 // without limitation the rights to use, copy, modify, merge, publish,
11042 // distribute, sublicense, and/or sell copies of the Software, and to permit
11043 // persons to whom the Software is furnished to do so, subject to the
11044 // following conditions:
11046 // The above copyright notice and this permission notice shall be included
11047 // in all copies or substantial portions of the Software.
11049 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11050 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11051 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11052 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11053 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11054 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11055 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11057 var Buffer = require('buffer').Buffer;
11059 var isBufferEncoding = Buffer.isEncoding
11060 || function(encoding) {
11061 switch (encoding && encoding.toLowerCase()) {
11062 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;
11063 default: return false;
11068 function assertEncoding(encoding) {
11069 if (encoding && !isBufferEncoding(encoding)) {
11070 throw new Error('Unknown encoding: ' + encoding);
11074 // StringDecoder provides an interface for efficiently splitting a series of
11075 // buffers into a series of JS strings without breaking apart multi-byte
11076 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
11078 // @TODO Handling all encodings inside a single object makes it very difficult
11079 // to reason about this code, so it should be split up in the future.
11080 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
11081 // points as used by CESU-
8.
11082 var StringDecoder = exports.StringDecoder = function(encoding) {
11083 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
11084 assertEncoding(encoding);
11085 switch (this.encoding) {
11087 // CESU-
8 represents each of Surrogate Pair by
3-bytes
11088 this.surrogateSize =
3;
11092 // UTF-
16 represents each of Surrogate Pair by
2-bytes
11093 this.surrogateSize =
2;
11094 this.detectIncompleteChar = utf16DetectIncompleteChar;
11097 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
11098 this.surrogateSize =
3;
11099 this.detectIncompleteChar = base64DetectIncompleteChar;
11102 this.write = passThroughWrite;
11106 // Enough space to store all bytes of a single character. UTF-
8 needs
4
11107 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
11108 this.charBuffer = new Buffer(
6);
11109 // Number of bytes received for the current incomplete multi-byte character.
11110 this.charReceived =
0;
11111 // Number of bytes expected for the current incomplete multi-byte character.
11112 this.charLength =
0;
11116 // write decodes the given buffer and returns it as JS string that is
11117 // guaranteed to not contain any partial multi-byte characters. Any partial
11118 // character found at the end of the buffer is buffered up, and will be
11119 // returned when calling write again with the remaining bytes.
11121 // Note: Converting a Buffer containing an orphan surrogate to a String
11122 // currently works, but converting a String to a Buffer (via `new Buffer`, or
11123 // Buffer#write) will replace incomplete surrogates with the unicode
11124 // replacement character. See https://codereview.chromium.org/
121173009/ .
11125 StringDecoder.prototype.write = function(buffer) {
11127 // if our last write ended with an incomplete multibyte character
11128 while (this.charLength) {
11129 // determine how many remaining bytes this buffer has to offer for this char
11130 var available = (buffer.length
>= this.charLength - this.charReceived) ?
11131 this.charLength - this.charReceived :
11134 // add the new bytes to the char buffer
11135 buffer.copy(this.charBuffer, this.charReceived,
0, available);
11136 this.charReceived += available;
11138 if (this.charReceived < this.charLength) {
11139 // still not enough chars in this buffer? wait for more ...
11143 // remove bytes belonging to the current character from the buffer
11144 buffer = buffer.slice(available, buffer.length);
11146 // get the character that was split
11147 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
11149 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
11150 var charCode = charStr.charCodeAt(charStr.length -
1);
11151 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
11152 this.charLength += this.surrogateSize;
11156 this.charReceived = this.charLength =
0;
11158 // if there are no more bytes in this buffer, just emit our char
11159 if (buffer.length ===
0) {
11165 // determine and set charLength / charReceived
11166 this.detectIncompleteChar(buffer);
11168 var end = buffer.length;
11169 if (this.charLength) {
11170 // buffer the incomplete character bytes we got
11171 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
11172 end -= this.charReceived;
11175 charStr += buffer.toString(this.encoding,
0, end);
11177 var end = charStr.length -
1;
11178 var charCode = charStr.charCodeAt(end);
11179 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
11180 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
11181 var size = this.surrogateSize;
11182 this.charLength += size;
11183 this.charReceived += size;
11184 this.charBuffer.copy(this.charBuffer, size,
0, size);
11185 buffer.copy(this.charBuffer,
0,
0, size);
11186 return charStr.substring(
0, end);
11189 // or just emit the charStr
11193 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
11194 // the end of the given buffer. If so, it sets this.charLength to the byte
11195 // length that character, and sets this.charReceived to the number of bytes
11196 // that are available for this character.
11197 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
11198 // determine how many bytes we have to check at the end of this buffer
11199 var i = (buffer.length
>=
3) ?
3 : buffer.length;
11201 // Figure out if one of the last i bytes of our buffer announces an
11202 // incomplete char.
11203 for (; i
> 0; i--) {
11204 var c = buffer[buffer.length - i];
11206 // See http://en.wikipedia.org/wiki/UTF-
8#Description
11209 if (i ==
1 && c
>> 5 ==
0x06) {
11210 this.charLength =
2;
11215 if (i <=
2 && c
>> 4 ==
0x0E) {
11216 this.charLength =
3;
11221 if (i <=
3 && c
>> 3 ==
0x1E) {
11222 this.charLength =
4;
11226 this.charReceived = i;
11229 StringDecoder.prototype.end = function(buffer) {
11231 if (buffer && buffer.length)
11232 res = this.write(buffer);
11234 if (this.charReceived) {
11235 var cr = this.charReceived;
11236 var buf = this.charBuffer;
11237 var enc = this.encoding;
11238 res += buf.slice(
0, cr).toString(enc);
11244 function passThroughWrite(buffer) {
11245 return buffer.toString(this.encoding);
11248 function utf16DetectIncompleteChar(buffer) {
11249 this.charReceived = buffer.length %
2;
11250 this.charLength = this.charReceived ?
2 :
0;
11253 function base64DetectIncompleteChar(buffer) {
11254 this.charReceived = buffer.length %
3;
11255 this.charLength = this.charReceived ?
3 :
0;
11258 },{
"buffer":
7}],
28:[function(require,module,exports){
11259 module.exports = function isBuffer(arg) {
11260 return arg && typeof arg === 'object'
11261 && typeof arg.copy === 'function'
11262 && typeof arg.fill === 'function'
11263 && typeof arg.readUInt8 === 'function';
11265 },{}],
29:[function(require,module,exports){
11266 (function (process,global){
11267 // Copyright Joyent, Inc. and other Node contributors.
11269 // Permission is hereby granted, free of charge, to any person obtaining a
11270 // copy of this software and associated documentation files (the
11271 //
"Software"), to deal in the Software without restriction, including
11272 // without limitation the rights to use, copy, modify, merge, publish,
11273 // distribute, sublicense, and/or sell copies of the Software, and to permit
11274 // persons to whom the Software is furnished to do so, subject to the
11275 // following conditions:
11277 // The above copyright notice and this permission notice shall be included
11278 // in all copies or substantial portions of the Software.
11280 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
11281 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11282 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
11283 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
11284 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
11285 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
11286 // USE OR OTHER DEALINGS IN THE SOFTWARE.
11288 var formatRegExp = /%[sdj%]/g;
11289 exports.format = function(f) {
11290 if (!isString(f)) {
11292 for (var i =
0; i < arguments.length; i++) {
11293 objects.push(inspect(arguments[i]));
11295 return objects.join(' ');
11299 var args = arguments;
11300 var len = args.length;
11301 var str = String(f).replace(formatRegExp, function(x) {
11302 if (x === '%%') return '%';
11303 if (i
>= len) return x;
11305 case '%s': return String(args[i++]);
11306 case '%d': return Number(args[i++]);
11309 return JSON.stringify(args[i++]);
11311 return '[Circular]';
11317 for (var x = args[i]; i < len; x = args[++i]) {
11318 if (isNull(x) || !isObject(x)) {
11321 str += ' ' + inspect(x);
11328 // Mark that a method should not be used.
11329 // Returns a modified function which warns once by default.
11330 // If --no-deprecation is set, then it is a no-op.
11331 exports.deprecate = function(fn, msg) {
11332 // Allow for deprecating things in the process of starting up.
11333 if (isUndefined(global.process)) {
11334 return function() {
11335 return exports.deprecate(fn, msg).apply(this, arguments);
11339 if (process.noDeprecation === true) {
11343 var warned = false;
11344 function deprecated() {
11346 if (process.throwDeprecation) {
11347 throw new Error(msg);
11348 } else if (process.traceDeprecation) {
11349 console.trace(msg);
11351 console.error(msg);
11355 return fn.apply(this, arguments);
11364 exports.debuglog = function(set) {
11365 if (isUndefined(debugEnviron))
11366 debugEnviron = process.env.NODE_DEBUG || '';
11367 set = set.toUpperCase();
11368 if (!debugs[set]) {
11369 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
11370 var pid = process.pid;
11371 debugs[set] = function() {
11372 var msg = exports.format.apply(exports, arguments);
11373 console.error('%s %d: %s', set, pid, msg);
11376 debugs[set] = function() {};
11379 return debugs[set];
11384 * Echos the value of a value. Trys to print the value out
11385 * in the best way possible given the different types.
11387 * @param {Object} obj The object to print out.
11388 * @param {Object} opts Optional options object that alters the output.
11390 /* legacy: obj, showHidden, depth, colors*/
11391 function inspect(obj, opts) {
11395 stylize: stylizeNoColor
11398 if (arguments.length
>=
3) ctx.depth = arguments[
2];
11399 if (arguments.length
>=
4) ctx.colors = arguments[
3];
11400 if (isBoolean(opts)) {
11402 ctx.showHidden = opts;
11404 // got an "options" object
11405 exports._extend(ctx, opts);
11407 // set default options
11408 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
11409 if (isUndefined(ctx.depth)) ctx.depth =
2;
11410 if (isUndefined(ctx.colors)) ctx.colors = false;
11411 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
11412 if (ctx.colors) ctx.stylize = stylizeWithColor;
11413 return formatValue(ctx, obj, ctx.depth);
11415 exports.inspect = inspect;
11418 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
11421 'italic' : [
3,
23],
11422 'underline' : [
4,
24],
11423 'inverse' : [
7,
27],
11424 'white' : [
37,
39],
11426 'black' : [
30,
39],
11429 'green' : [
32,
39],
11430 'magenta' : [
35,
39],
11432 'yellow' : [
33,
39]
11435 // Don't use 'blue' not visible on cmd.exe
11438 'number': 'yellow',
11439 'boolean': 'yellow',
11440 'undefined': 'grey',
11444 // "name": intentionally not styling
11449 function stylizeWithColor(str, styleType) {
11450 var style = inspect.styles[styleType];
11453 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
11454 '\u001b[' + inspect.colors[style][
1] + 'm';
11461 function stylizeNoColor(str, styleType) {
11466 function arrayToHash(array) {
11469 array.forEach(function(val, idx) {
11477 function formatValue(ctx, value, recurseTimes) {
11478 // Provide a hook for user-specified inspect functions.
11479 // Check that value is an object with an inspect function on it
11480 if (ctx.customInspect &&
11482 isFunction(value.inspect) &&
11483 // Filter out the util module, it's inspect function is special
11484 value.inspect !== exports.inspect &&
11485 // Also filter out any prototype objects using the circular check.
11486 !(value.constructor && value.constructor.prototype === value)) {
11487 var ret = value.inspect(recurseTimes, ctx);
11488 if (!isString(ret)) {
11489 ret = formatValue(ctx, ret, recurseTimes);
11494 // Primitive types cannot have properties
11495 var primitive = formatPrimitive(ctx, value);
11500 // Look up the keys of the object.
11501 var keys = Object.keys(value);
11502 var visibleKeys = arrayToHash(keys);
11504 if (ctx.showHidden) {
11505 keys = Object.getOwnPropertyNames(value);
11508 // IE doesn't make error fields non-enumerable
11509 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
11511 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
11512 return formatError(value);
11515 // Some type of object without properties can be shortcutted.
11516 if (keys.length ===
0) {
11517 if (isFunction(value)) {
11518 var name = value.name ? ': ' + value.name : '';
11519 return ctx.stylize('[Function' + name + ']', 'special');
11521 if (isRegExp(value)) {
11522 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
11524 if (isDate(value)) {
11525 return ctx.stylize(Date.prototype.toString.call(value), 'date');
11527 if (isError(value)) {
11528 return formatError(value);
11532 var base = '', array = false, braces = ['{', '}'];
11534 // Make Array say that they are Array
11535 if (isArray(value)) {
11537 braces = ['[', ']'];
11540 // Make functions say that they are functions
11541 if (isFunction(value)) {
11542 var n = value.name ? ': ' + value.name : '';
11543 base = ' [Function' + n + ']';
11546 // Make RegExps say that they are RegExps
11547 if (isRegExp(value)) {
11548 base = ' ' + RegExp.prototype.toString.call(value);
11551 // Make dates with properties first say the date
11552 if (isDate(value)) {
11553 base = ' ' + Date.prototype.toUTCString.call(value);
11556 // Make error with message first say the error
11557 if (isError(value)) {
11558 base = ' ' + formatError(value);
11561 if (keys.length ===
0 && (!array || value.length ==
0)) {
11562 return braces[
0] + base + braces[
1];
11565 if (recurseTimes <
0) {
11566 if (isRegExp(value)) {
11567 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
11569 return ctx.stylize('[Object]', 'special');
11573 ctx.seen.push(value);
11577 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
11579 output = keys.map(function(key) {
11580 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
11586 return reduceToSingleString(output, base, braces);
11590 function formatPrimitive(ctx, value) {
11591 if (isUndefined(value))
11592 return ctx.stylize('undefined', 'undefined');
11593 if (isString(value)) {
11594 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
11595 .replace(/'/g, "\\'")
11596 .replace(/\\"/g, '"') + '\'';
11597 return ctx.stylize(simple, 'string');
11599 if (isNumber(value))
11600 return ctx.stylize('' + value, 'number');
11601 if (isBoolean(value))
11602 return ctx.stylize('' + value, 'boolean');
11603 // For some reason typeof null is "object", so special case here.
11605 return ctx.stylize('null', 'null');
11609 function formatError(value) {
11610 return '[' + Error.prototype.toString.call(value) + ']';
11614 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
11616 for (var i =
0, l = value.length; i < l; ++i) {
11617 if (hasOwnProperty(value, String(i))) {
11618 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
11624 keys.forEach(function(key) {
11625 if (!key.match(/^\d+$/)) {
11626 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
11634 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
11635 var name, str, desc;
11636 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
11639 str = ctx.stylize('[Getter/Setter]', 'special');
11641 str = ctx.stylize('[Getter]', 'special');
11645 str = ctx.stylize('[Setter]', 'special');
11648 if (!hasOwnProperty(visibleKeys, key)) {
11649 name = '[' + key + ']';
11652 if (ctx.seen.indexOf(desc.value) <
0) {
11653 if (isNull(recurseTimes)) {
11654 str = formatValue(ctx, desc.value, null);
11656 str = formatValue(ctx, desc.value, recurseTimes -
1);
11658 if (str.indexOf('\n')
> -
1) {
11660 str = str.split('\n').map(function(line) {
11662 }).join('\n').substr(
2);
11664 str = '\n' + str.split('\n').map(function(line) {
11670 str = ctx.stylize('[Circular]', 'special');
11673 if (isUndefined(name)) {
11674 if (array && key.match(/^\d+$/)) {
11677 name = JSON.stringify('' + key);
11678 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
11679 name = name.substr(
1, name.length -
2);
11680 name = ctx.stylize(name, 'name');
11682 name = name.replace(/'/g, "\\'")
11683 .replace(/\\"/g, '"')
11684 .replace(/(^"|"$)/g, "'");
11685 name = ctx.stylize(name, 'string');
11689 return name + ': ' + str;
11693 function reduceToSingleString(output, base, braces) {
11694 var numLinesEst =
0;
11695 var length = output.reduce(function(prev, cur) {
11697 if (cur.indexOf('\n')
>=
0) numLinesEst++;
11698 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
11703 (base === '' ? '' : base + '\n ') +
11705 output.join(',\n ') +
11710 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
11714 // NOTE: These type checking functions intentionally don't use `instanceof`
11715 // because it is fragile and can be easily faked with `Object.create()`.
11716 function isArray(ar) {
11717 return Array.isArray(ar);
11719 exports.isArray = isArray;
11721 function isBoolean(arg) {
11722 return typeof arg === 'boolean';
11724 exports.isBoolean = isBoolean;
11726 function isNull(arg) {
11727 return arg === null;
11729 exports.isNull = isNull;
11731 function isNullOrUndefined(arg) {
11732 return arg == null;
11734 exports.isNullOrUndefined = isNullOrUndefined;
11736 function isNumber(arg) {
11737 return typeof arg === 'number';
11739 exports.isNumber = isNumber;
11741 function isString(arg) {
11742 return typeof arg === 'string';
11744 exports.isString = isString;
11746 function isSymbol(arg) {
11747 return typeof arg === 'symbol';
11749 exports.isSymbol = isSymbol;
11751 function isUndefined(arg) {
11752 return arg === void
0;
11754 exports.isUndefined = isUndefined;
11756 function isRegExp(re) {
11757 return isObject(re) && objectToString(re) === '[object RegExp]';
11759 exports.isRegExp = isRegExp;
11761 function isObject(arg) {
11762 return typeof arg === 'object' && arg !== null;
11764 exports.isObject = isObject;
11766 function isDate(d) {
11767 return isObject(d) && objectToString(d) === '[object Date]';
11769 exports.isDate = isDate;
11771 function isError(e) {
11772 return isObject(e) &&
11773 (objectToString(e) === '[object Error]' || e instanceof Error);
11775 exports.isError = isError;
11777 function isFunction(arg) {
11778 return typeof arg === 'function';
11780 exports.isFunction = isFunction;
11782 function isPrimitive(arg) {
11783 return arg === null ||
11784 typeof arg === 'boolean' ||
11785 typeof arg === 'number' ||
11786 typeof arg === 'string' ||
11787 typeof arg === 'symbol' || // ES6 symbol
11788 typeof arg === 'undefined';
11790 exports.isPrimitive = isPrimitive;
11792 exports.isBuffer = require('./support/isBuffer');
11794 function objectToString(o) {
11795 return Object.prototype.toString.call(o);
11800 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
11804 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
11805 'Oct', 'Nov', 'Dec'];
11808 function timestamp() {
11809 var d = new Date();
11810 var time = [pad(d.getHours()),
11811 pad(d.getMinutes()),
11812 pad(d.getSeconds())].join(':');
11813 return [d.getDate(), months[d.getMonth()], time].join(' ');
11817 // log is just a thin wrapper to console.log that prepends a timestamp
11818 exports.log = function() {
11819 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
11824 * Inherit the prototype methods from one constructor into another.
11826 * The Function.prototype.inherits from lang.js rewritten as a standalone
11827 * function (not on Function.prototype). NOTE: If this file is to be loaded
11828 * during bootstrapping this function needs to be rewritten using some native
11829 * functions as prototype setup using normal JavaScript does not work as
11830 * expected during bootstrapping (see mirror.js in r114903).
11832 * @param {function} ctor Constructor function which needs to inherit the
11834 * @param {function} superCtor Constructor function to inherit prototype from.
11836 exports.inherits = require('inherits');
11838 exports._extend = function(origin, add) {
11839 // Don't do anything if add isn't an object
11840 if (!add || !isObject(add)) return origin;
11842 var keys = Object.keys(add);
11843 var i = keys.length;
11845 origin[keys[i]] = add[keys[i]];
11850 function hasOwnProperty(obj, prop) {
11851 return Object.prototype.hasOwnProperty.call(obj, prop);
11854 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
11855 },{
"./support/isBuffer":
28,
"_process":
14,
"inherits":
12}],
30:[function(require,module,exports){
11856 // Base58 encoding/decoding
11857 // Originally written by Mike Hearn for BitcoinJ
11858 // Copyright (c)
2011 Google Inc
11859 // Ported to JavaScript by Stefan Thomas
11860 // Merged Buffer refactorings from base58-native by Stephen Pair
11861 // Copyright (c)
2013 BitPay Inc
11863 var ALPHABET = '
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
11864 var ALPHABET_MAP = {}
11865 for(var i =
0; i < ALPHABET.length; i++) {
11866 ALPHABET_MAP[ALPHABET.charAt(i)] = i
11870 function encode(buffer) {
11871 if (buffer.length ===
0) return ''
11873 var i, j, digits = [
0]
11874 for (i =
0; i < buffer.length; i++) {
11875 for (j =
0; j < digits.length; j++) digits[j] <<=
8
11877 digits[
0] += buffer[i]
11880 for (j =
0; j < digits.length; ++j) {
11883 carry = (digits[j] / BASE) |
0
11888 digits.push(carry % BASE)
11890 carry = (carry / BASE) |
0
11894 // deal with leading zeros
11895 for (i =
0; buffer[i] ===
0 && i < buffer.length -
1; i++) digits.push(
0)
11897 // convert digits to a string
11898 var stringOutput =
""
11899 for (var i = digits.length -
1; i
>=
0; i--) {
11900 stringOutput = stringOutput + ALPHABET[digits[i]]
11902 return stringOutput
11905 function decode(string) {
11906 if (string.length ===
0) return []
11908 var i, j, bytes = [
0]
11909 for (i =
0; i < string.length; i++) {
11911 if (!(c in ALPHABET_MAP)) throw new Error('Non-base58 character')
11913 for (j =
0; j < bytes.length; j++) bytes[j] *= BASE
11914 bytes[
0] += ALPHABET_MAP[c]
11917 for (j =
0; j < bytes.length; ++j) {
11920 carry = bytes[j]
>> 8
11925 bytes.push(carry &
0xff)
11931 // deal with leading zeros
11932 for (i =
0; string[i] === '
1' && i < string.length -
1; i++) bytes.push(
0)
11934 return bytes.reverse()
11942 },{}],
31:[function(require,module,exports){
11943 (function (Buffer){
11946 var base58 = require('bs58')
11947 var createHash = require('create-hash')
11949 // SHA256(SHA256(buffer))
11950 function sha256x2 (buffer) {
11951 buffer = createHash('sha256').update(buffer).digest()
11952 return createHash('sha256').update(buffer).digest()
11955 // Encode a buffer as a base58-check encoded string
11956 function encode (payload) {
11957 var checksum = sha256x2(payload).slice(
0,
4)
11959 return base58.encode(Buffer.concat([
11965 // Decode a base58-check encoded string to a buffer
11966 function decode (string) {
11967 var buffer = new Buffer(base58.decode(string))
11969 var payload = buffer.slice(
0, -
4)
11970 var checksum = buffer.slice(-
4)
11971 var newChecksum = sha256x2(payload).slice(
0,
4)
11973 for (var i =
0; i < newChecksum.length; ++i) {
11974 if (newChecksum[i] === checksum[i]) continue
11976 throw new Error('Invalid checksum')
11987 }).call(this,require("buffer").Buffer)
11988 },{"bs58":
30,"buffer":
7,"create-hash":
32}],
32:[function(require,module,exports){
11989 (function (Buffer){
11991 var inherits = require('inherits')
11992 var md5 = require('./md5')
11993 var rmd160 = require('ripemd160')
11994 var sha = require('sha.js')
11996 var Transform = require('stream').Transform
11998 function HashNoConstructor(hash) {
11999 Transform.call(this)
12005 inherits(HashNoConstructor, Transform)
12007 HashNoConstructor.prototype._transform = function (data, _, next) {
12008 this.buffers.push(data)
12013 HashNoConstructor.prototype._flush = function (next) {
12014 this.push(this.digest())
12018 HashNoConstructor.prototype.update = function (data, enc) {
12019 if (typeof data === 'string') {
12020 data = new Buffer(data, enc)
12023 this.buffers.push(data)
12027 HashNoConstructor.prototype.digest = function (enc) {
12028 var buf = Buffer.concat(this.buffers)
12029 var r = this._hash(buf)
12030 this.buffers = null
12032 return enc ? r.toString(enc) : r
12035 function Hash(hash) {
12036 Transform.call(this)
12041 inherits(Hash, Transform)
12043 Hash.prototype._transform = function (data, enc, next) {
12044 if (enc) data = new Buffer(data, enc)
12046 this._hash.update(data)
12051 Hash.prototype._flush = function (next) {
12052 this.push(this._hash.digest())
12058 Hash.prototype.update = function (data, enc) {
12059 if (typeof data === 'string') {
12060 data = new Buffer(data, enc)
12063 this._hash.update(data)
12067 Hash.prototype.digest = function (enc) {
12068 var outData = this._hash.digest()
12070 return enc ? outData.toString(enc) : outData
12073 module.exports = function createHash (alg) {
12074 if ('md5' === alg) return new HashNoConstructor(md5)
12075 if ('rmd160' === alg) return new HashNoConstructor(rmd160)
12077 return new Hash(sha(alg))
12080 }).call(this,require("buffer").Buffer)
12081 },{"./md5":
34,"buffer":
7,"inherits":
35,"ripemd160":
36,"sha.js":
38,"stream":
26}],
33:[function(require,module,exports){
12082 (function (Buffer){
12085 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
12088 function toArray(buf, bigEndian) {
12089 if ((buf.length % intSize) !==
0) {
12090 var len = buf.length + (intSize - (buf.length % intSize));
12091 buf = Buffer.concat([buf, zeroBuffer], len);
12095 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
12096 for (var i =
0; i < buf.length; i += intSize) {
12097 arr.push(fn.call(buf, i));
12102 function toBuffer(arr, size, bigEndian) {
12103 var buf = new Buffer(size);
12104 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
12105 for (var i =
0; i < arr.length; i++) {
12106 fn.call(buf, arr[i], i *
4, true);
12111 function hash(buf, fn, hashSize, bigEndian) {
12112 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
12113 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
12114 return toBuffer(arr, hashSize, bigEndian);
12116 exports.hash = hash;
12117 }).call(this,require("buffer").Buffer)
12118 },{"buffer":
7}],
34:[function(require,module,exports){
12121 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
12122 * Digest Algorithm, as defined in RFC
1321.
12123 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
12124 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
12125 * Distributed under the BSD License
12126 * See http://pajhome.org.uk/crypt/md5 for more info.
12129 var helpers = require('./helpers');
12132 * Calculate the MD5 of an array of little-endian words, and a bit length
12134 function core_md5(x, len)
12136 /* append padding */
12137 x[len
>> 5] |=
0x80 << ((len) %
32);
12138 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
12140 var a =
1732584193;
12141 var b = -
271733879;
12142 var c = -
1732584194;
12145 for(var i =
0; i < x.length; i +=
16)
12152 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
12153 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
12154 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
12155 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
12156 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
12157 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
12158 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
12159 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
12160 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
12161 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
12162 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
12163 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
12164 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
12165 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
12166 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
12167 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
12169 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
12170 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
12171 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
12172 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
12173 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
12174 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
12175 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
12176 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
12177 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
12178 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
12179 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
12180 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
12181 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
12182 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
12183 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
12184 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
12186 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
12187 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
12188 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
12189 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
12190 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
12191 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
12192 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
12193 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
12194 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
12195 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
12196 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
12197 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
12198 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
12199 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
12200 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
12201 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
12203 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
12204 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
12205 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
12206 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
12207 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
12208 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
12209 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
12210 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
12211 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
12212 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
12213 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
12214 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
12215 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
12216 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
12217 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
12218 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
12220 a = safe_add(a, olda);
12221 b = safe_add(b, oldb);
12222 c = safe_add(c, oldc);
12223 d = safe_add(d, oldd);
12225 return Array(a, b, c, d);
12230 * These functions implement the four basic operations the algorithm uses.
12232 function md5_cmn(q, a, b, x, s, t)
12234 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
12236 function md5_ff(a, b, c, d, x, s, t)
12238 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
12240 function md5_gg(a, b, c, d, x, s, t)
12242 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
12244 function md5_hh(a, b, c, d, x, s, t)
12246 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
12248 function md5_ii(a, b, c, d, x, s, t)
12250 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
12254 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
12255 * to work around bugs in some JS interpreters.
12257 function safe_add(x, y)
12259 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
12260 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
12261 return (msw <<
16) | (lsw &
0xFFFF);
12265 * Bitwise rotate a
32-bit number to the left.
12267 function bit_rol(num, cnt)
12269 return (num << cnt) | (num
>>> (
32 - cnt));
12272 module.exports = function md5(buf) {
12273 return helpers.hash(buf, core_md5,
16);
12275 },{"./helpers":
33}],
35:[function(require,module,exports){
12276 arguments[
4][
12][
0].apply(exports,arguments)
12277 },{"dup":
12}],
36:[function(require,module,exports){
12278 (function (Buffer){
12281 code.google.com/p/crypto-js
12282 (c)
2009-
2013 by Jeff Mott. All rights reserved.
12283 code.google.com/p/crypto-js/wiki/License
12286 (c)
2012 by Cédric Mesnil. All rights reserved.
12288 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
12290 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
12291 - 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.
12293 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.
12298 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
12299 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
12300 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
12301 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
12302 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
12306 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
12307 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
12308 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
12309 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
12310 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
12314 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
12315 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
12316 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
12317 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
12318 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
12322 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
12323 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
12324 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
12325 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
12326 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
12329 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
12330 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
12332 function bytesToWords (bytes) {
12334 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
12335 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
12340 function wordsToBytes (words) {
12342 for (var b =
0; b < words.length *
32; b +=
8) {
12343 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
12348 function processBlock (H, M, offset) {
12350 for (var i =
0; i <
16; i++) {
12351 var offset_i = offset + i
12352 var M_offset_i = M[offset_i]
12356 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
12357 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
12361 // Working variables
12362 var al, bl, cl, dl, el
12363 var ar, br, cr, dr, er
12373 for (i =
0; i <
80; i +=
1) {
12374 t = (al + M[offset + zl[i]]) |
0
12376 t += f1(bl, cl, dl) + hl[
0]
12377 } else if (i <
32) {
12378 t += f2(bl, cl, dl) + hl[
1]
12379 } else if (i <
48) {
12380 t += f3(bl, cl, dl) + hl[
2]
12381 } else if (i <
64) {
12382 t += f4(bl, cl, dl) + hl[
3]
12383 } else {// if (i
<80) {
12384 t += f5(bl, cl, dl) + hl[
4]
12395 t = (ar + M[offset + zr[i]]) |
0
12397 t += f5(br, cr, dr) + hr[
0]
12398 } else if (i <
32) {
12399 t += f4(br, cr, dr) + hr[
1]
12400 } else if (i <
48) {
12401 t += f3(br, cr, dr) + hr[
2]
12402 } else if (i <
64) {
12403 t += f2(br, cr, dr) + hr[
3]
12404 } else {// if (i
<80) {
12405 t += f1(br, cr, dr) + hr[
4]
12418 // intermediate hash value
12419 t = (H[
1] + cl + dr) |
0
12420 H[
1] = (H[
2] + dl + er) |
0
12421 H[
2] = (H[
3] + el + ar) |
0
12422 H[
3] = (H[
4] + al + br) |
0
12423 H[
4] = (H[
0] + bl + cr) |
0
12427 function f1 (x, y, z) {
12428 return ((x) ^ (y) ^ (z))
12431 function f2 (x, y, z) {
12432 return (((x) & (y)) | ((~x) & (z)))
12435 function f3 (x, y, z) {
12436 return (((x) | (~(y))) ^ (z))
12439 function f4 (x, y, z) {
12440 return (((x) & (z)) | ((y) & (~(z))))
12443 function f5 (x, y, z) {
12444 return ((x) ^ ((y) | (~(z))))
12447 function rotl (x, n) {
12448 return (x << n) | (x
>>> (
32 - n))
12451 function ripemd160 (message) {
12452 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
12454 if (typeof message === 'string') {
12455 message = new Buffer(message, 'utf8')
12458 var m = bytesToWords(message)
12460 var nBitsLeft = message.length *
8
12461 var nBitsTotal = message.length *
8
12464 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
12465 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
12466 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
12467 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
12470 for (var i =
0; i < m.length; i +=
16) {
12471 processBlock(H, m, i)
12475 for (i =
0; i <
5; i++) {
12480 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
12481 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
12484 var digestbytes = wordsToBytes(H)
12485 return new Buffer(digestbytes)
12488 module.exports = ripemd160
12490 }).call(this,require(
"buffer").Buffer)
12491 },{
"buffer":
7}],
37:[function(require,module,exports){
12492 (function (Buffer){
12493 // prototype class for hash functions
12494 function Hash (blockSize, finalSize) {
12495 this._block = new Buffer(blockSize)
12496 this._finalSize = finalSize
12497 this._blockSize = blockSize
12502 Hash.prototype.update = function (data, enc) {
12503 if (typeof data === 'string') {
12504 enc = enc || 'utf8'
12505 data = new Buffer(data, enc)
12508 var l = this._len += data.length
12509 var s = this._s ||
0
12511 var buffer = this._block
12514 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
12517 for (var i =
0; i < ch; i++) {
12518 buffer[(s % this._blockSize) + i] = data[i + f]
12524 if ((s % this._blockSize) ===
0) {
12525 this._update(buffer)
12533 Hash.prototype.digest = function (enc) {
12534 // Suppose the length of the message M, in bits, is l
12535 var l = this._len *
8
12537 // Append the bit
1 to the end of the message
12538 this._block[this._len % this._blockSize] =
0x80
12540 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
12541 this._block.fill(
0, this._len % this._blockSize +
1)
12543 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
12544 this._update(this._block)
12545 this._block.fill(
0)
12548 // to this append the block which is equal to the number l written in binary
12549 // TODO: handle case where l is
> Math.pow(
2,
29)
12550 this._block.writeInt32BE(l, this._blockSize -
4)
12552 var hash = this._update(this._block) || this._hash()
12554 return enc ? hash.toString(enc) : hash
12557 Hash.prototype._update = function () {
12558 throw new Error('_update must be implemented by subclass')
12561 module.exports = Hash
12563 }).call(this,require("buffer").Buffer)
12564 },{"buffer":
7}],
38:[function(require,module,exports){
12565 var exports = module.exports = function SHA (algorithm) {
12566 algorithm = algorithm.toLowerCase()
12568 var Algorithm = exports[algorithm]
12569 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
12571 return new Algorithm()
12574 exports.sha = require('./sha')
12575 exports.sha1 = require('./sha1')
12576 exports.sha224 = require('./sha224')
12577 exports.sha256 = require('./sha256')
12578 exports.sha384 = require('./sha384')
12579 exports.sha512 = require('./sha512')
12581 },{"./sha":
39,"./sha1":
40,"./sha224":
41,"./sha256":
42,"./sha384":
43,"./sha512":
44}],
39:[function(require,module,exports){
12582 (function (Buffer){
12584 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
12585 * in FIPS PUB
180-
1
12586 * This source code is derived from sha1.js of the same repository.
12587 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
12588 * operation was added.
12591 var inherits = require('inherits')
12592 var Hash = require('./hash')
12594 var W = new Array(
80)
12600 Hash.call(this,
64,
56)
12603 inherits(Sha, Hash)
12605 Sha.prototype.init = function () {
12606 this._a =
0x67452301 |
0
12607 this._b =
0xefcdab89 |
0
12608 this._c =
0x98badcfe |
0
12609 this._d =
0x10325476 |
0
12610 this._e =
0xc3d2e1f0 |
0
12616 * Bitwise rotate a
32-bit number to the left.
12618 function rol (num, cnt) {
12619 return (num << cnt) | (num
>>> (
32 - cnt))
12622 Sha.prototype._update = function (M) {
12634 * SHA-
1 has a bitwise rotate left operation. But, SHA is not
12635 * function calcW() { return rol(W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16],
1) }
12637 function calcW () { return W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16] }
12638 function loop (w, f) {
12641 var t = rol(a,
5) + f + e + w + k
12652 while (j <
16) loop(M.readInt32BE(j *
4), (b & c) | ((~b) & d))
12653 while (j <
20) loop(calcW(), (b & c) | ((~b) & d))
12655 while (j <
40) loop(calcW(), b ^ c ^ d)
12657 while (j <
60) loop(calcW(), (b & c) | (b & d) | (c & d))
12659 while (j <
80) loop(calcW(), b ^ c ^ d)
12661 this._a = (a + this._a) |
0
12662 this._b = (b + this._b) |
0
12663 this._c = (c + this._c) |
0
12664 this._d = (d + this._d) |
0
12665 this._e = (e + this._e) |
0
12668 Sha.prototype._hash = function () {
12669 var H = new Buffer(
20)
12671 H.writeInt32BE(this._a |
0,
0)
12672 H.writeInt32BE(this._b |
0,
4)
12673 H.writeInt32BE(this._c |
0,
8)
12674 H.writeInt32BE(this._d |
0,
12)
12675 H.writeInt32BE(this._e |
0,
16)
12680 module.exports = Sha
12683 }).call(this,require("buffer").Buffer)
12684 },{"./hash":
37,"buffer":
7,"inherits":
35}],
40:[function(require,module,exports){
12685 (function (Buffer){
12687 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
12688 * in FIPS PUB
180-
1
12689 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
12690 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
12691 * Distributed under the BSD License
12692 * See http://pajhome.org.uk/crypt/md5 for details.
12695 var inherits = require('inherits')
12696 var Hash = require('./hash')
12698 var W = new Array(
80)
12704 Hash.call(this,
64,
56)
12707 inherits(Sha1, Hash)
12709 Sha1.prototype.init = function () {
12710 this._a =
0x67452301 |
0
12711 this._b =
0xefcdab89 |
0
12712 this._c =
0x98badcfe |
0
12713 this._d =
0x10325476 |
0
12714 this._e =
0xc3d2e1f0 |
0
12720 * Bitwise rotate a
32-bit number to the left.
12722 function rol (num, cnt) {
12723 return (num << cnt) | (num
>>> (
32 - cnt))
12726 Sha1.prototype._update = function (M) {
12737 function calcW () { return rol(W[j -
3] ^ W[j -
8] ^ W[j -
14] ^ W[j -
16],
1) }
12738 function loop (w, f) {
12741 var t = rol(a,
5) + f + e + w + k
12752 while (j <
16) loop(M.readInt32BE(j *
4), (b & c) | ((~b) & d))
12753 while (j <
20) loop(calcW(), (b & c) | ((~b) & d))
12755 while (j <
40) loop(calcW(), b ^ c ^ d)
12757 while (j <
60) loop(calcW(), (b & c) | (b & d) | (c & d))
12759 while (j <
80) loop(calcW(), b ^ c ^ d)
12761 this._a = (a + this._a) |
0
12762 this._b = (b + this._b) |
0
12763 this._c = (c + this._c) |
0
12764 this._d = (d + this._d) |
0
12765 this._e = (e + this._e) |
0
12768 Sha1.prototype._hash = function () {
12769 var H = new Buffer(
20)
12771 H.writeInt32BE(this._a |
0,
0)
12772 H.writeInt32BE(this._b |
0,
4)
12773 H.writeInt32BE(this._c |
0,
8)
12774 H.writeInt32BE(this._d |
0,
12)
12775 H.writeInt32BE(this._e |
0,
16)
12780 module.exports = Sha1
12782 }).call(this,require("buffer").Buffer)
12783 },{"./hash":
37,"buffer":
7,"inherits":
35}],
41:[function(require,module,exports){
12784 (function (Buffer){
12786 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
12788 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
12789 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
12793 var inherits = require('inherits')
12794 var Sha256 = require('./sha256')
12795 var Hash = require('./hash')
12797 var W = new Array(
64)
12799 function Sha224 () {
12802 this._w = W // new Array(
64)
12804 Hash.call(this,
64,
56)
12807 inherits(Sha224, Sha256)
12809 Sha224.prototype.init = function () {
12810 this._a =
0xc1059ed8 |
0
12811 this._b =
0x367cd507 |
0
12812 this._c =
0x3070dd17 |
0
12813 this._d =
0xf70e5939 |
0
12814 this._e =
0xffc00b31 |
0
12815 this._f =
0x68581511 |
0
12816 this._g =
0x64f98fa7 |
0
12817 this._h =
0xbefa4fa4 |
0
12822 Sha224.prototype._hash = function () {
12823 var H = new Buffer(
28)
12825 H.writeInt32BE(this._a,
0)
12826 H.writeInt32BE(this._b,
4)
12827 H.writeInt32BE(this._c,
8)
12828 H.writeInt32BE(this._d,
12)
12829 H.writeInt32BE(this._e,
16)
12830 H.writeInt32BE(this._f,
20)
12831 H.writeInt32BE(this._g,
24)
12836 module.exports = Sha224
12838 }).call(this,require("buffer").Buffer)
12839 },{"./hash":
37,"./sha256":
42,"buffer":
7,"inherits":
35}],
42:[function(require,module,exports){
12840 (function (Buffer){
12842 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
12844 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
12845 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
12849 var inherits = require('inherits')
12850 var Hash = require('./hash')
12853 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
12854 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
12855 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
12856 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
12857 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
12858 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
12859 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
12860 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
12861 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
12862 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
12863 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
12864 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
12865 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
12866 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
12867 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
12868 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
12871 var W = new Array(
64)
12873 function Sha256 () {
12876 this._w = W // new Array(
64)
12878 Hash.call(this,
64,
56)
12881 inherits(Sha256, Hash)
12883 Sha256.prototype.init = function () {
12884 this._a =
0x6a09e667 |
0
12885 this._b =
0xbb67ae85 |
0
12886 this._c =
0x3c6ef372 |
0
12887 this._d =
0xa54ff53a |
0
12888 this._e =
0x510e527f |
0
12889 this._f =
0x9b05688c |
0
12890 this._g =
0x1f83d9ab |
0
12891 this._h =
0x5be0cd19 |
0
12896 function S (X, n) {
12897 return (X
>>> n) | (X << (
32 - n))
12900 function R (X, n) {
12904 function Ch (x, y, z) {
12905 return ((x & y) ^ ((~x) & z))
12908 function Maj (x, y, z) {
12909 return ((x & y) ^ (x & z) ^ (y & z))
12912 function Sigma0256 (x) {
12913 return (S(x,
2) ^ S(x,
13) ^ S(x,
22))
12916 function Sigma1256 (x) {
12917 return (S(x,
6) ^ S(x,
11) ^ S(x,
25))
12920 function Gamma0256 (x) {
12921 return (S(x,
7) ^ S(x,
18) ^ R(x,
3))
12924 function Gamma1256 (x) {
12925 return (S(x,
17) ^ S(x,
19) ^ R(x,
10))
12928 Sha256.prototype._update = function (M) {
12931 var a = this._a |
0
12932 var b = this._b |
0
12933 var c = this._c |
0
12934 var d = this._d |
0
12935 var e = this._e |
0
12936 var f = this._f |
0
12937 var g = this._g |
0
12938 var h = this._h |
0
12942 function calcW () { return Gamma1256(W[j -
2]) + W[j -
7] + Gamma0256(W[j -
15]) + W[j -
16] }
12943 function loop (w) {
12946 var T1 = h + Sigma1256(e) + Ch(e, f, g) + K[j] + w
12947 var T2 = Sigma0256(a) + Maj(a, b, c)
12961 while (j <
16) loop(M.readInt32BE(j *
4))
12962 while (j <
64) loop(calcW())
12964 this._a = (a + this._a) |
0
12965 this._b = (b + this._b) |
0
12966 this._c = (c + this._c) |
0
12967 this._d = (d + this._d) |
0
12968 this._e = (e + this._e) |
0
12969 this._f = (f + this._f) |
0
12970 this._g = (g + this._g) |
0
12971 this._h = (h + this._h) |
0
12974 Sha256.prototype._hash = function () {
12975 var H = new Buffer(
32)
12977 H.writeInt32BE(this._a,
0)
12978 H.writeInt32BE(this._b,
4)
12979 H.writeInt32BE(this._c,
8)
12980 H.writeInt32BE(this._d,
12)
12981 H.writeInt32BE(this._e,
16)
12982 H.writeInt32BE(this._f,
20)
12983 H.writeInt32BE(this._g,
24)
12984 H.writeInt32BE(this._h,
28)
12989 module.exports = Sha256
12991 }).call(this,require("buffer").Buffer)
12992 },{"./hash":
37,"buffer":
7,"inherits":
35}],
43:[function(require,module,exports){
12993 (function (Buffer){
12994 var inherits = require('inherits')
12995 var SHA512 = require('./sha512')
12996 var Hash = require('./hash')
12998 var W = new Array(
160)
13000 function Sha384 () {
13004 Hash.call(this,
128,
112)
13007 inherits(Sha384, SHA512)
13009 Sha384.prototype.init = function () {
13010 this._a =
0xcbbb9d5d |
0
13011 this._b =
0x629a292a |
0
13012 this._c =
0x9159015a |
0
13013 this._d =
0x152fecd8 |
0
13014 this._e =
0x67332667 |
0
13015 this._f =
0x8eb44a87 |
0
13016 this._g =
0xdb0c2e0d |
0
13017 this._h =
0x47b5481d |
0
13019 this._al =
0xc1059ed8 |
0
13020 this._bl =
0x367cd507 |
0
13021 this._cl =
0x3070dd17 |
0
13022 this._dl =
0xf70e5939 |
0
13023 this._el =
0xffc00b31 |
0
13024 this._fl =
0x68581511 |
0
13025 this._gl =
0x64f98fa7 |
0
13026 this._hl =
0xbefa4fa4 |
0
13031 Sha384.prototype._hash = function () {
13032 var H = new Buffer(
48)
13034 function writeInt64BE (h, l, offset) {
13035 H.writeInt32BE(h, offset)
13036 H.writeInt32BE(l, offset +
4)
13039 writeInt64BE(this._a, this._al,
0)
13040 writeInt64BE(this._b, this._bl,
8)
13041 writeInt64BE(this._c, this._cl,
16)
13042 writeInt64BE(this._d, this._dl,
24)
13043 writeInt64BE(this._e, this._el,
32)
13044 writeInt64BE(this._f, this._fl,
40)
13049 module.exports = Sha384
13051 }).call(this,require("buffer").Buffer)
13052 },{"./hash":
37,"./sha512":
44,"buffer":
7,"inherits":
35}],
44:[function(require,module,exports){
13053 (function (Buffer){
13054 var inherits = require('inherits')
13055 var Hash = require('./hash')
13058 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
13059 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
13060 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
13061 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
13062 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
13063 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
13064 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
13065 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
13066 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
13067 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
13068 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
13069 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
13070 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
13071 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
13072 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
13073 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
13074 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
13075 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
13076 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
13077 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
13078 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
13079 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
13080 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
13081 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
13082 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
13083 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
13084 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
13085 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
13086 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
13087 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
13088 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
13089 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
13090 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
13091 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
13092 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
13093 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
13094 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
13095 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
13096 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
13097 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
13100 var W = new Array(
160)
13102 function Sha512 () {
13106 Hash.call(this,
128,
112)
13109 inherits(Sha512, Hash)
13111 Sha512.prototype.init = function () {
13112 this._a =
0x6a09e667 |
0
13113 this._b =
0xbb67ae85 |
0
13114 this._c =
0x3c6ef372 |
0
13115 this._d =
0xa54ff53a |
0
13116 this._e =
0x510e527f |
0
13117 this._f =
0x9b05688c |
0
13118 this._g =
0x1f83d9ab |
0
13119 this._h =
0x5be0cd19 |
0
13121 this._al =
0xf3bcc908 |
0
13122 this._bl =
0x84caa73b |
0
13123 this._cl =
0xfe94f82b |
0
13124 this._dl =
0x5f1d36f1 |
0
13125 this._el =
0xade682d1 |
0
13126 this._fl =
0x2b3e6c1f |
0
13127 this._gl =
0xfb41bd6b |
0
13128 this._hl =
0x137e2179 |
0
13133 function S (X, Xl, n) {
13134 return (X
>>> n) | (Xl << (
32 - n))
13137 function Ch (x, y, z) {
13138 return ((x & y) ^ ((~x) & z))
13141 function Maj (x, y, z) {
13142 return ((x & y) ^ (x & z) ^ (y & z))
13145 Sha512.prototype._update = function (M) {
13148 var a = this._a |
0
13149 var b = this._b |
0
13150 var c = this._c |
0
13151 var d = this._d |
0
13152 var e = this._e |
0
13153 var f = this._f |
0
13154 var g = this._g |
0
13155 var h = this._h |
0
13157 var al = this._al |
0
13158 var bl = this._bl |
0
13159 var cl = this._cl |
0
13160 var dl = this._dl |
0
13161 var el = this._el |
0
13162 var fl = this._fl |
0
13163 var gl = this._gl |
0
13164 var hl = this._hl |
0
13168 function calcW () {
13169 var x = W[j -
15 *
2]
13170 var xl = W[j -
15 *
2 +
1]
13171 var gamma0 = S(x, xl,
1) ^ S(x, xl,
8) ^ (x
>>> 7)
13172 var gamma0l = S(xl, x,
1) ^ S(xl, x,
8) ^ S(xl, x,
7)
13175 xl = W[j -
2 *
2 +
1]
13176 var gamma1 = S(x, xl,
19) ^ S(xl, x,
29) ^ (x
>>> 6)
13177 var gamma1l = S(xl, x,
19) ^ S(x, xl,
29) ^ S(xl, x,
6)
13179 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
13180 var Wi7 = W[j -
7 *
2]
13181 var Wi7l = W[j -
7 *
2 +
1]
13183 var Wi16 = W[j -
16 *
2]
13184 var Wi16l = W[j -
16 *
2 +
1]
13186 Wil = gamma0l + Wi7l
13187 Wi = gamma0 + Wi7 + ((Wil
>>> 0) < (gamma0l
>>> 0) ?
1 :
0)
13188 Wil = Wil + gamma1l
13189 Wi = Wi + gamma1 + ((Wil
>>> 0) < (gamma1l
>>> 0) ?
1 :
0)
13191 Wi = Wi + Wi16 + ((Wil
>>> 0) < (Wi16l
>>> 0) ?
1 :
0)
13198 var maj = Maj(a, b, c)
13199 var majl = Maj(al, bl, cl)
13201 var sigma0h = S(a, al,
28) ^ S(al, a,
2) ^ S(al, a,
7)
13202 var sigma0l = S(al, a,
28) ^ S(a, al,
2) ^ S(a, al,
7)
13203 var sigma1h = S(e, el,
14) ^ S(e, el,
18) ^ S(el, e,
9)
13204 var sigma1l = S(el, e,
14) ^ S(el, e,
18) ^ S(e, el,
9)
13206 // t1 = h + sigma1 + ch + K[i] + W[i]
13210 var ch = Ch(e, f, g)
13211 var chl = Ch(el, fl, gl)
13213 var t1l = hl + sigma1l
13214 var t1 = h + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0)
13216 t1 = t1 + ch + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0)
13218 t1 = t1 + Ki + ((t1l
>>> 0) < (Kil
>>> 0) ?
1 :
0)
13220 t1 = t1 + Wi + ((t1l
>>> 0) < (Wil
>>> 0) ?
1 :
0)
13222 // t2 = sigma0 + maj
13223 var t2l = sigma0l + majl
13224 var t2 = sigma0h + maj + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0)
13232 el = (dl + t1l) |
0
13233 e = (d + t1 + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0
13240 al = (t1l + t2l) |
0
13241 a = (t1 + t2 + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0
13248 Wi = M.readInt32BE(j *
4)
13249 Wil = M.readInt32BE(j *
4 +
4)
13259 this._al = (this._al + al) |
0
13260 this._bl = (this._bl + bl) |
0
13261 this._cl = (this._cl + cl) |
0
13262 this._dl = (this._dl + dl) |
0
13263 this._el = (this._el + el) |
0
13264 this._fl = (this._fl + fl) |
0
13265 this._gl = (this._gl + gl) |
0
13266 this._hl = (this._hl + hl) |
0
13268 this._a = (this._a + a + ((this._al
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0
13269 this._b = (this._b + b + ((this._bl
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0
13270 this._c = (this._c + c + ((this._cl
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0
13271 this._d = (this._d + d + ((this._dl
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0
13272 this._e = (this._e + e + ((this._el
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0
13273 this._f = (this._f + f + ((this._fl
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0
13274 this._g = (this._g + g + ((this._gl
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0
13275 this._h = (this._h + h + ((this._hl
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0
13278 Sha512.prototype._hash = function () {
13279 var H = new Buffer(
64)
13281 function writeInt64BE (h, l, offset) {
13282 H.writeInt32BE(h, offset)
13283 H.writeInt32BE(l, offset +
4)
13286 writeInt64BE(this._a, this._al,
0)
13287 writeInt64BE(this._b, this._bl,
8)
13288 writeInt64BE(this._c, this._cl,
16)
13289 writeInt64BE(this._d, this._dl,
24)
13290 writeInt64BE(this._e, this._el,
32)
13291 writeInt64BE(this._f, this._fl,
40)
13292 writeInt64BE(this._g, this._gl,
48)
13293 writeInt64BE(this._h, this._hl,
56)
13298 module.exports = Sha512
13300 }).call(this,require(
"buffer").Buffer)
13301 },{
"./hash":
37,
"buffer":
7,
"inherits":
35}],
45:[function(require,module,exports){
13302 (function (Buffer){
13304 var createHash = require('create-hash/browser');
13305 var inherits = require('inherits')
13307 var Transform = require('stream').Transform
13309 var ZEROS = new Buffer(
128)
13312 function Hmac(alg, key) {
13313 Transform.call(this)
13315 if (typeof key === 'string') {
13316 key = new Buffer(key)
13319 var blocksize = (alg === 'sha512' || alg === 'sha384') ?
128 :
64
13324 if (key.length
> blocksize) {
13325 key = createHash(alg).update(key).digest()
13327 } else if (key.length < blocksize) {
13328 key = Buffer.concat([key, ZEROS], blocksize)
13331 var ipad = this._ipad = new Buffer(blocksize)
13332 var opad = this._opad = new Buffer(blocksize)
13334 for (var i =
0; i < blocksize; i++) {
13335 ipad[i] = key[i] ^
0x36
13336 opad[i] = key[i] ^
0x5C
13339 this._hash = createHash(alg).update(ipad)
13342 inherits(Hmac, Transform)
13344 Hmac.prototype.update = function (data, enc) {
13345 this._hash.update(data, enc)
13350 Hmac.prototype._transform = function (data, _, next) {
13351 this._hash.update(data)
13356 Hmac.prototype._flush = function (next) {
13357 this.push(this.digest())
13362 Hmac.prototype.digest = function (enc) {
13363 var h = this._hash.digest()
13365 return createHash(this._alg).update(this._opad).update(h).digest(enc)
13368 module.exports = function createHmac(alg, key) {
13369 return new Hmac(alg, key)
13372 }).call(this,require("buffer").Buffer)
13373 },{"buffer":
7,"create-hash/browser":
32,"inherits":
46,"stream":
26}],
46:[function(require,module,exports){
13374 arguments[
4][
12][
0].apply(exports,arguments)
13375 },{"dup":
12}],
47:[function(require,module,exports){
13376 var assert = require('assert')
13377 var BigInteger = require('bigi')
13379 var Point = require('./point')
13381 function Curve(p, a, b, Gx, Gy, n, h) {
13385 this.G = Point.fromAffine(this, Gx, Gy)
13389 this.infinity = new Point(this, null, null, BigInteger.ZERO)
13392 this.pOverFour = p.add(BigInteger.ONE).shiftRight(
2)
13395 Curve.prototype.pointFromX = function(isOdd, x) {
13396 var alpha = x.pow(
3).add(this.a.multiply(x)).add(this.b).mod(this.p)
13397 var beta = alpha.modPow(this.pOverFour, this.p) // XXX: not compatible with all curves
13400 if (beta.isEven() ^ !isOdd) {
13401 y = this.p.subtract(y) // -y % p
13404 return Point.fromAffine(this, x, y)
13407 Curve.prototype.isInfinity = function(Q) {
13408 if (Q === this.infinity) return true
13410 return Q.z.signum() ===
0 && Q.y.signum() !==
0
13413 Curve.prototype.isOnCurve = function(Q) {
13414 if (this.isInfinity(Q)) return true
13422 // Check that xQ and yQ are integers in the interval [
0, p -
1]
13423 if (x.signum() <
0 || x.compareTo(p)
>=
0) return false
13424 if (y.signum() <
0 || y.compareTo(p)
>=
0) return false
13426 // and check that y^
2 = x^
3 + ax + b (mod p)
13427 var lhs = y.square().mod(p)
13428 var rhs = x.pow(
3).add(a.multiply(x)).add(b).mod(p)
13429 return lhs.equals(rhs)
13433 * Validate an elliptic curve point.
13435 * See SEC
1, section
3.2.2.1: Elliptic Curve Public Key Validation Primitive
13437 Curve.prototype.validate = function(Q) {
13439 assert(!this.isInfinity(Q), 'Point is at infinity')
13440 assert(this.isOnCurve(Q), 'Point is not on the curve')
13442 // Check nQ = O (where Q is a scalar multiple of G)
13443 var nQ = Q.multiply(this.n)
13444 assert(this.isInfinity(nQ), 'Point is not a scalar multiple of G')
13449 module.exports = Curve
13451 },{"./point":
51,"assert":
5,"bigi":
3}],
48:[function(require,module,exports){
13454 "p": "fffffffdffffffffffffffffffffffff",
13455 "a": "fffffffdfffffffffffffffffffffffc",
13456 "b": "e87579c11079f43dd824993c2cee5ed3",
13457 "n": "fffffffe0000000075a30d1b9038a115",
13459 "Gx": "
161ff7528b899b2d0c28607ca52c5b86",
13460 "Gy": "cf5ac8395bafeb13c02da292dded7a83"
13463 "p": "fffffffffffffffffffffffffffffffeffffac73",
13466 "n": "
0100000000000000000001b8fa16dfab9aca16b6b3",
13468 "Gx": "
3b4c382ce37aa192a4019e763036f4f5dd4d7ebb",
13469 "Gy": "
938cf935318fdced6bc28286531733c3f03c4fee"
13472 "p": "ffffffffffffffffffffffffffffffff7fffffff",
13473 "a": "ffffffffffffffffffffffffffffffff7ffffffc",
13474 "b": "
1c97befc54bd7a8b65acf89f81d4d4adc565fa45",
13475 "n": "
0100000000000000000001f4c8f927aed3ca752257",
13477 "Gx": "
4a96b5688ef573284664698968c38bb913cbfc82",
13478 "Gy": "
23a628553168947d59dcc912042351377ac5fb32"
13481 "p": "fffffffffffffffffffffffffffffffffffffffeffffee37",
13484 "n": "fffffffffffffffffffffffe26f2fc170f69466a74defd8d",
13486 "Gx": "db4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d",
13487 "Gy": "
9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d"
13490 "p": "fffffffffffffffffffffffffffffffeffffffffffffffff",
13491 "a": "fffffffffffffffffffffffffffffffefffffffffffffffc",
13492 "b": "
64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1",
13493 "n": "ffffffffffffffffffffffff99def836146bc9b1b4d22831",
13495 "Gx": "
188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012",
13496 "Gy": "
07192b95ffc8da78631011ed6b24cdd573f977a11e794811"
13499 "p": "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f",
13502 "n": "fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",
13504 "Gx": "
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
13505 "Gy": "
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"
13508 "p": "ffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
13509 "a": "ffffffff00000001000000000000000000000000fffffffffffffffffffffffc",
13510 "b": "
5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b",
13511 "n": "ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551",
13513 "Gx": "
6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296",
13514 "Gy": "
4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"
13518 },{}],
49:[function(require,module,exports){
13519 var Point = require('./point')
13520 var Curve = require('./curve')
13522 var getCurveByName = require('./names')
13527 getCurveByName: getCurveByName
13530 },{"./curve":
47,"./names":
50,"./point":
51}],
50:[function(require,module,exports){
13531 var BigInteger = require('bigi')
13533 var curves = require('./curves')
13534 var Curve = require('./curve')
13536 function getCurveByName(name) {
13537 var curve = curves[name]
13538 if (!curve) return null
13540 var p = new BigInteger(curve.p,
16)
13541 var a = new BigInteger(curve.a,
16)
13542 var b = new BigInteger(curve.b,
16)
13543 var n = new BigInteger(curve.n,
16)
13544 var h = new BigInteger(curve.h,
16)
13545 var Gx = new BigInteger(curve.Gx,
16)
13546 var Gy = new BigInteger(curve.Gy,
16)
13548 return new Curve(p, a, b, Gx, Gy, n, h)
13551 module.exports = getCurveByName
13553 },{"./curve":
47,"./curves":
48,"bigi":
3}],
51:[function(require,module,exports){
13554 (function (Buffer){
13555 var assert = require('assert')
13556 var BigInteger = require('bigi')
13558 var THREE = BigInteger.valueOf(
3)
13560 function Point(curve, x, y, z) {
13561 assert.notStrictEqual(z, undefined, 'Missing Z coordinate')
13569 this.compressed = true
13572 Object.defineProperty(Point.prototype, 'zInv', {
13574 if (this._zInv === null) {
13575 this._zInv = this.z.modInverse(this.curve.p)
13582 Object.defineProperty(Point.prototype, 'affineX', {
13584 return this.x.multiply(this.zInv).mod(this.curve.p)
13588 Object.defineProperty(Point.prototype, 'affineY', {
13590 return this.y.multiply(this.zInv).mod(this.curve.p)
13594 Point.fromAffine = function(curve, x, y) {
13595 return new Point(curve, x, y, BigInteger.ONE)
13598 Point.prototype.equals = function(other) {
13599 if (other === this) return true
13600 if (this.curve.isInfinity(this)) return this.curve.isInfinity(other)
13601 if (this.curve.isInfinity(other)) return this.curve.isInfinity(this)
13603 // u = Y2 * Z1 - Y1 * Z2
13604 var u = other.y.multiply(this.z).subtract(this.y.multiply(other.z)).mod(this.curve.p)
13606 if (u.signum() !==
0) return false
13608 // v = X2 * Z1 - X1 * Z2
13609 var v = other.x.multiply(this.z).subtract(this.x.multiply(other.z)).mod(this.curve.p)
13611 return v.signum() ===
0
13614 Point.prototype.negate = function() {
13615 var y = this.curve.p.subtract(this.y)
13617 return new Point(this.curve, this.x, y, this.z)
13620 Point.prototype.add = function(b) {
13621 if (this.curve.isInfinity(this)) return b
13622 if (this.curve.isInfinity(b)) return this
13629 // u = Y2 * Z1 - Y1 * Z2
13630 var u = y2.multiply(this.z).subtract(y1.multiply(b.z)).mod(this.curve.p)
13631 // v = X2 * Z1 - X1 * Z2
13632 var v = x2.multiply(this.z).subtract(x1.multiply(b.z)).mod(this.curve.p)
13634 if (v.signum() ===
0) {
13635 if (u.signum() ===
0) {
13636 return this.twice() // this == b, so double
13639 return this.curve.infinity // this = -b, so infinity
13642 var v2 = v.square()
13643 var v3 = v2.multiply(v)
13644 var x1v2 = x1.multiply(v2)
13645 var zu2 = u.square().multiply(this.z)
13647 // x3 = v * (z2 * (z1 * u^
2 -
2 * x1 * v^
2) - v^
3)
13648 var x3 = zu2.subtract(x1v2.shiftLeft(
1)).multiply(b.z).subtract(v3).multiply(v).mod(this.curve.p)
13649 // y3 = z2 * (
3 * x1 * u * v^
2 - y1 * v^
3 - z1 * u^
3) + u * v^
3
13650 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)
13651 // z3 = v^
3 * z1 * z2
13652 var z3 = v3.multiply(this.z).multiply(b.z).mod(this.curve.p)
13654 return new Point(this.curve, x3, y3, z3)
13657 Point.prototype.twice = function() {
13658 if (this.curve.isInfinity(this)) return this
13659 if (this.y.signum() ===
0) return this.curve.infinity
13664 var y1z1 = y1.multiply(this.z)
13665 var y1sqz1 = y1z1.multiply(y1).mod(this.curve.p)
13666 var a = this.curve.a
13668 // w =
3 * x1^
2 + a * z1^
2
13669 var w = x1.square().multiply(THREE)
13671 if (a.signum() !==
0) {
13672 w = w.add(this.z.square().multiply(a))
13675 w = w.mod(this.curve.p)
13676 // x3 =
2 * y1 * z1 * (w^
2 -
8 * x1 * y1^
2 * z1)
13677 var x3 = w.square().subtract(x1.shiftLeft(
3).multiply(y1sqz1)).shiftLeft(
1).multiply(y1z1).mod(this.curve.p)
13678 // y3 =
4 * y1^
2 * z1 * (
3 * w * x1 -
2 * y1^
2 * z1) - w^
3
13679 var y3 = w.multiply(THREE).multiply(x1).subtract(y1sqz1.shiftLeft(
1)).shiftLeft(
2).multiply(y1sqz1).subtract(w.pow(
3)).mod(this.curve.p)
13680 // z3 =
8 * (y1 * z1)^
3
13681 var z3 = y1z1.pow(
3).shiftLeft(
3).mod(this.curve.p)
13683 return new Point(this.curve, x3, y3, z3)
13686 // Simple NAF (Non-Adjacent Form) multiplication algorithm
13687 // TODO: modularize the multiplication algorithm
13688 Point.prototype.multiply = function(k) {
13689 if (this.curve.isInfinity(this)) return this
13690 if (k.signum() ===
0) return this.curve.infinity
13693 var h = e.multiply(THREE)
13695 var neg = this.negate()
13698 for (var i = h.bitLength() -
2; i
> 0; --i) {
13701 var hBit = h.testBit(i)
13702 var eBit = e.testBit(i)
13704 if (hBit != eBit) {
13705 R = R.add(hBit ? this : neg)
13712 // Compute this*j + x*k (simultaneous multiplication)
13713 Point.prototype.multiplyTwo = function(j, x, k) {
13716 if (j.bitLength()
> k.bitLength())
13717 i = j.bitLength() -
1
13719 i = k.bitLength() -
1
13721 var R = this.curve.infinity
13722 var both = this.add(x)
13727 var jBit = j.testBit(i)
13728 var kBit = k.testBit(i)
13749 Point.prototype.getEncoded = function(compressed) {
13750 if (compressed == undefined) compressed = this.compressed
13751 if (this.curve.isInfinity(this)) return new Buffer('
00', 'hex') // Infinity point encoded is simply '
00'
13753 var x = this.affineX
13754 var y = this.affineY
13758 // Determine size of q in bytes
13759 var byteLength = Math.floor((this.curve.p.bitLength() +
7) /
8)
13763 buffer = new Buffer(
1 + byteLength)
13764 buffer.writeUInt8(y.isEven() ?
0x02 :
0x03,
0)
13768 buffer = new Buffer(
1 + byteLength + byteLength)
13769 buffer.writeUInt8(
0x04,
0)
13771 y.toBuffer(byteLength).copy(buffer,
1 + byteLength)
13774 x.toBuffer(byteLength).copy(buffer,
1)
13779 Point.decodeFrom = function(curve, buffer) {
13780 var type = buffer.readUInt8(
0)
13781 var compressed = (type !==
4)
13783 var byteLength = Math.floor((curve.p.bitLength() +
7) /
8)
13784 var x = BigInteger.fromBuffer(buffer.slice(
1,
1 + byteLength))
13788 assert.equal(buffer.length, byteLength +
1, 'Invalid sequence length')
13789 assert(type ===
0x02 || type ===
0x03, 'Invalid sequence tag')
13791 var isOdd = (type ===
0x03)
13792 Q = curve.pointFromX(isOdd, x)
13795 assert.equal(buffer.length,
1 + byteLength + byteLength, 'Invalid sequence length')
13797 var y = BigInteger.fromBuffer(buffer.slice(
1 + byteLength))
13798 Q = Point.fromAffine(curve, x, y)
13801 Q.compressed = compressed
13805 Point.prototype.toString = function () {
13806 if (this.curve.isInfinity(this)) return '(INFINITY)'
13808 return '(' + this.affineX.toString() + ',' + this.affineY.toString() + ')'
13811 module.exports = Point
13813 }).call(this,require("buffer").Buffer)
13814 },{"assert":
5,"bigi":
3,"buffer":
7}],
52:[function(require,module,exports){
13815 (function (process,global,Buffer){
13818 var crypto = global.crypto || global.msCrypto
13819 if(crypto && crypto.getRandomValues) {
13820 module.exports = randomBytes;
13822 module.exports = oldBrowser;
13824 function randomBytes(size, cb) {
13825 var bytes = new Buffer(size); //in browserify, this is an extended Uint8Array
13826 /* This will not work in older browsers.
13827 * See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
13830 crypto.getRandomValues(bytes);
13831 if (typeof cb === 'function') {
13832 return process.nextTick(function () {
13838 function oldBrowser() {
13840 'secure random number generation not supported by this browser\n'+
13841 'use chrome, FireFox or Internet Explorer
11'
13845 }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer)
13846 },{"_process":
14,"buffer":
7}],
53:[function(require,module,exports){
13847 (function (Buffer){
13850 function getFunctionName(fn) {
13851 return fn.name || fn.toString().match(/function (.*?)\s*\(/)[
1];
13854 function getTypeTypeName(type) {
13855 if (nativeTypes.Function(type)) {
13856 type = type.toJSON ? type.toJSON() : getFunctionName(type);
13858 if (nativeTypes.Object(type)) return JSON.stringify(type);
13863 function getValueTypeName(value) {
13864 if (nativeTypes.Null(value)) return '';
13866 return getFunctionName(value.constructor);
13869 function tfErrorString(type, value) {
13870 var typeTypeName = getTypeTypeName(type);
13871 var valueTypeName = getValueTypeName(value);
13873 return 'Expected ' + typeTypeName + ', got ' + (valueTypeName && valueTypeName + ' ') + JSON.stringify(value);
13876 function tfPropertyErrorString(type, name, value) {
13877 return tfErrorString('property \"' + name + '\" of type ' + getTypeTypeName(type), value);
13880 var nativeTypes = {
13881 Array: (function (_Array) {
13882 function Array(_x) {
13883 return _Array.apply(this, arguments);
13886 Array.toString = function () {
13887 return _Array.toString();
13891 })(function (value) {
13892 return value !== null && value !== undefined && value.constructor === Array;
13894 Boolean: function Boolean(value) {
13895 return typeof value === 'boolean';
13897 Buffer: (function (_Buffer) {
13898 function Buffer(_x2) {
13899 return _Buffer.apply(this, arguments);
13902 Buffer.toString = function () {
13903 return _Buffer.toString();
13907 })(function (value) {
13908 return Buffer.isBuffer(value);
13910 Function: function Function(value) {
13911 return typeof value === 'function';
13913 Null: function Null(value) {
13914 return value === undefined || value === null;
13916 Number: function Number(value) {
13917 return typeof value === 'number';
13919 Object: function Object(value) {
13920 return typeof value === 'object';
13922 String: function String(value) {
13923 return typeof value === 'string';
13930 function tJSON(type) {
13931 return type && type.toJSON ? type.toJSON() : type;
13934 function sJSON(type) {
13935 var json = tJSON(type);
13936 return nativeTypes.Object(json) ? JSON.stringify(json) : json;
13940 arrayOf: function arrayOf(type) {
13941 function arrayOf(value, strict) {
13943 return nativeTypes.Array(value) && value.every(function (x) {
13944 return typeforce(type, x, strict);
13950 arrayOf.toJSON = function () {
13951 return [tJSON(type)];
13957 maybe: function maybe(type) {
13958 function maybe(value, strict) {
13959 return nativeTypes.Null(value) || typeforce(type, value, strict);
13961 maybe.toJSON = function () {
13962 return '?' + sJSON(type);
13968 object: function object(type) {
13969 function object(value, strict) {
13970 typeforce(nativeTypes.Object, value, strict);
13972 var propertyName, propertyType, propertyValue;
13975 for (propertyName in type) {
13976 propertyType = type[propertyName];
13977 propertyValue = value[propertyName];
13979 typeforce(propertyType, propertyValue, strict);
13982 throw new TypeError(tfPropertyErrorString(propertyType, propertyName, propertyValue));
13986 for (propertyName in value) {
13987 if (type[propertyName]) continue;
13989 throw new TypeError('Unexpected property "' + propertyName + '"');
13995 object.toJSON = function () {
14002 oneOf: function oneOf() {
14003 for (var _len = arguments.length, types = Array(_len), _key =
0; _key < _len; _key++) {
14004 types[_key] = arguments[_key];
14007 function oneOf(value, strict) {
14008 return types.some(function (type) {
14010 return typeforce(type, value, strict);
14016 oneOf.toJSON = function () {
14017 return types.map(sJSON).join('|');
14023 quacksLike: function quacksLike(type) {
14024 function quacksLike(value, strict) {
14025 return type === getValueTypeName(value);
14027 quacksLike.toJSON = function () {
14034 tuple: function tuple() {
14035 for (var _len2 = arguments.length, types = Array(_len2), _key2 =
0; _key2 < _len2; _key2++) {
14036 types[_key2] = arguments[_key2];
14039 function tuple(value, strict) {
14040 return types.every(function (type, i) {
14041 return typeforce(type, value[i], strict);
14044 tuple.toJSON = function () {
14045 return '(' + types.map(sJSON).join(', ') + ')';
14051 value: function value(expected) {
14052 function value(actual) {
14053 return actual === expected;
14055 value.toJSON = function () {
14063 function compile(type) {
14064 if (nativeTypes.String(type)) {
14065 if (type[
0] === '?') return otherTypes.maybe(compile(type.slice(
1)));
14067 return nativeTypes[type] || otherTypes.quacksLike(type);
14068 } else if (type && nativeTypes.Object(type)) {
14069 if (nativeTypes.Array(type)) return otherTypes.arrayOf(compile(type[
0]));
14073 for (var propertyName in type) {
14074 compiled[propertyName] = compile(type[propertyName]);
14077 return otherTypes.object(compiled);
14078 } else if (nativeTypes.Function(type)) {
14082 return otherTypes.value(type);
14085 function typeforce(_x3, _x4, _x5) {
14088 _function: while (_again) {
14094 if (nativeTypes.Function(type)) {
14095 if (type(value, strict)) return true;
14097 throw new TypeError(tfErrorString(type, value));
14101 _x3 = compile(type);
14105 continue _function;
14109 // assign all types to typeforce function
14111 Object.keys(nativeTypes).forEach(function (typeName) {
14112 var nativeType = nativeTypes[typeName];
14113 nativeType.toJSON = function () {
14117 typeforce[typeName] = nativeType;
14120 for (typeName in otherTypes) {
14121 typeforce[typeName] = otherTypes[typeName];
14124 module.exports = typeforce;
14125 module.exports.compile = compile;
14126 }).call(this,require("buffer").Buffer)
14127 },{"buffer":
7}],
54:[function(require,module,exports){
14128 (function (Buffer){
14129 var assert = require('assert')
14130 var base58check = require('bs58check')
14131 var typeForce = require('typeforce')
14132 var networks = require('./networks')
14133 var scripts = require('./scripts')
14135 function findScriptTypeByVersion (version) {
14136 for (var networkName in networks) {
14137 var network = networks[networkName]
14139 if (version === network.pubKeyHash) return 'pubkeyhash'
14140 if (version === network.scriptHash) return 'scripthash'
14144 function Address (hash, version) {
14145 typeForce('Buffer', hash)
14147 assert.strictEqual(hash.length,
20, 'Invalid hash length')
14148 assert.strictEqual(version &
0xff, version, 'Invalid version byte')
14151 this.version = version
14154 Address.fromBase58Check = function (string) {
14155 var payload = base58check.decode(string)
14156 var version = payload.readUInt8(
0)
14157 var hash = payload.slice(
1)
14159 return new Address(hash, version)
14162 Address.fromOutputScript = function (script, network) {
14163 network = network || networks.bitcoin
14165 if (scripts.isPubKeyHashOutput(script)) return new Address(script.chunks[
2], network.pubKeyHash)
14166 if (scripts.isScriptHashOutput(script)) return new Address(script.chunks[
1], network.scriptHash)
14168 assert(false, script.toASM() + ' has no matching Address')
14171 Address.prototype.toBase58Check = function () {
14172 var payload = new Buffer(
21)
14173 payload.writeUInt8(this.version,
0)
14174 this.hash.copy(payload,
1)
14176 return base58check.encode(payload)
14179 Address.prototype.toOutputScript = function () {
14180 var scriptType = findScriptTypeByVersion(this.version)
14182 if (scriptType === 'pubkeyhash') return scripts.pubKeyHashOutput(this.hash)
14183 if (scriptType === 'scripthash') return scripts.scriptHashOutput(this.hash)
14185 assert(false, this.toString() + ' has no matching Script')
14188 Address.prototype.toString = Address.prototype.toBase58Check
14190 module.exports = Address
14192 }).call(this,require("buffer").Buffer)
14193 },{"./networks":
66,"./scripts":
69,"assert":
5,"bs58check":
31,"buffer":
7,"typeforce":
53}],
55:[function(require,module,exports){
14194 var bs58check = require('bs58check')
14196 function decode () {
14197 console.warn('bs58check will be removed in
2.0.0. require("bs58check") instead.')
14199 return bs58check.decode.apply(undefined, arguments)
14202 function encode () {
14203 console.warn('bs58check will be removed in
2.0.0. require("bs58check") instead.')
14205 return bs58check.encode.apply(undefined, arguments)
14213 },{"bs58check":
31}],
56:[function(require,module,exports){
14214 (function (Buffer){
14215 var assert = require('assert')
14216 var bufferutils = require('./bufferutils')
14217 var crypto = require('./crypto')
14219 var Transaction = require('./transaction')
14221 function Block () {
14223 this.prevHash = null
14224 this.merkleRoot = null
14230 Block.fromBuffer = function (buffer) {
14231 assert(buffer.length
>=
80, 'Buffer too small (<
80 bytes)')
14234 function readSlice (n) {
14236 return buffer.slice(offset - n, offset)
14239 function readUInt32 () {
14240 var i = buffer.readUInt32LE(offset)
14245 var block = new Block()
14246 block.version = readUInt32()
14247 block.prevHash = readSlice(
32)
14248 block.merkleRoot = readSlice(
32)
14249 block.timestamp = readUInt32()
14250 block.bits = readUInt32()
14251 block.nonce = readUInt32()
14253 if (buffer.length ===
80) return block
14255 function readVarInt () {
14256 var vi = bufferutils.readVarInt(buffer, offset)
14261 // FIXME: poor performance
14262 function readTransaction () {
14263 var tx = Transaction.fromBuffer(buffer.slice(offset), true)
14265 offset += tx.toBuffer().length
14269 var nTransactions = readVarInt()
14270 block.transactions = []
14272 for (var i =
0; i < nTransactions; ++i) {
14273 var tx = readTransaction()
14274 block.transactions.push(tx)
14280 Block.fromHex = function (hex) {
14281 return Block.fromBuffer(new Buffer(hex, 'hex'))
14284 Block.prototype.getHash = function () {
14285 return crypto.hash256(this.toBuffer(true))
14288 Block.prototype.getId = function () {
14289 return bufferutils.reverse(this.getHash()).toString('hex')
14292 Block.prototype.getUTCDate = function () {
14293 var date = new Date(
0) // epoch
14294 date.setUTCSeconds(this.timestamp)
14299 Block.prototype.toBuffer = function (headersOnly) {
14300 var buffer = new Buffer(
80)
14303 function writeSlice (slice) {
14304 slice.copy(buffer, offset)
14305 offset += slice.length
14308 function writeUInt32 (i) {
14309 buffer.writeUInt32LE(i, offset)
14313 writeUInt32(this.version)
14314 writeSlice(this.prevHash)
14315 writeSlice(this.merkleRoot)
14316 writeUInt32(this.timestamp)
14317 writeUInt32(this.bits)
14318 writeUInt32(this.nonce)
14320 if (headersOnly || !this.transactions) return buffer
14322 var txLenBuffer = bufferutils.varIntBuffer(this.transactions.length)
14323 var txBuffers = this.transactions.map(function (tx) {
14324 return tx.toBuffer()
14327 return Buffer.concat([buffer, txLenBuffer].concat(txBuffers))
14330 Block.prototype.toHex = function (headersOnly) {
14331 return this.toBuffer(headersOnly).toString('hex')
14334 module.exports = Block
14336 }).call(this,require("buffer").Buffer)
14337 },{"./bufferutils":
57,"./crypto":
58,"./transaction":
70,"assert":
5,"buffer":
7}],
57:[function(require,module,exports){
14338 (function (Buffer){
14339 var assert = require('assert')
14340 var opcodes = require('./opcodes')
14342 // https://github.com/feross/buffer/blob/master/index.js#L1127
14343 function verifuint (value, max) {
14344 assert(typeof value === 'number', 'cannot write a non-number as a number')
14345 assert(value
>=
0, 'specified a negative value for writing an unsigned value')
14346 assert(value <= max, 'value is larger than maximum value for type')
14347 assert(Math.floor(value) === value, 'value has a fractional component')
14350 function pushDataSize (i) {
14351 return i < opcodes.OP_PUSHDATA1 ?
1
14357 function readPushDataInt (buffer, offset) {
14358 var opcode = buffer.readUInt8(offset)
14362 if (opcode < opcodes.OP_PUSHDATA1) {
14367 } else if (opcode === opcodes.OP_PUSHDATA1) {
14368 if (offset +
2 > buffer.length) return null
14369 number = buffer.readUInt8(offset +
1)
14373 } else if (opcode === opcodes.OP_PUSHDATA2) {
14374 if (offset +
3 > buffer.length) return null
14375 number = buffer.readUInt16LE(offset +
1)
14380 if (offset +
5 > buffer.length) return null
14381 assert.equal(opcode, opcodes.OP_PUSHDATA4, 'Unexpected opcode')
14383 number = buffer.readUInt32LE(offset +
1)
14394 function readUInt64LE (buffer, offset) {
14395 var a = buffer.readUInt32LE(offset)
14396 var b = buffer.readUInt32LE(offset +
4)
14399 verifuint(b + a,
0x001fffffffffffff)
14404 function readVarInt (buffer, offset) {
14405 var t = buffer.readUInt8(offset)
14414 } else if (t <
254) {
14415 number = buffer.readUInt16LE(offset +
1)
14419 } else if (t <
255) {
14420 number = buffer.readUInt32LE(offset +
1)
14425 number = readUInt64LE(buffer, offset +
1)
14435 function writePushDataInt (buffer, number, offset) {
14436 var size = pushDataSize(number)
14440 buffer.writeUInt8(number, offset)
14443 } else if (size ===
2) {
14444 buffer.writeUInt8(opcodes.OP_PUSHDATA1, offset)
14445 buffer.writeUInt8(number, offset +
1)
14448 } else if (size ===
3) {
14449 buffer.writeUInt8(opcodes.OP_PUSHDATA2, offset)
14450 buffer.writeUInt16LE(number, offset +
1)
14454 buffer.writeUInt8(opcodes.OP_PUSHDATA4, offset)
14455 buffer.writeUInt32LE(number, offset +
1)
14461 function writeUInt64LE (buffer, value, offset) {
14462 verifuint(value,
0x001fffffffffffff)
14464 buffer.writeInt32LE(value & -
1, offset)
14465 buffer.writeUInt32LE(Math.floor(value /
0x100000000), offset +
4)
14468 function varIntSize (i) {
14471 : i <
0x100000000 ?
5
14475 function writeVarInt (buffer, number, offset) {
14476 var size = varIntSize(number)
14480 buffer.writeUInt8(number, offset)
14483 } else if (size ===
3) {
14484 buffer.writeUInt8(
253, offset)
14485 buffer.writeUInt16LE(number, offset +
1)
14488 } else if (size ===
5) {
14489 buffer.writeUInt8(
254, offset)
14490 buffer.writeUInt32LE(number, offset +
1)
14494 buffer.writeUInt8(
255, offset)
14495 writeUInt64LE(buffer, number, offset +
1)
14501 function varIntBuffer (i) {
14502 var size = varIntSize(i)
14503 var buffer = new Buffer(size)
14504 writeVarInt(buffer, i,
0)
14509 function reverse (buffer) {
14510 var buffer2 = new Buffer(buffer)
14511 Array.prototype.reverse.call(buffer2)
14516 pushDataSize: pushDataSize,
14517 readPushDataInt: readPushDataInt,
14518 readUInt64LE: readUInt64LE,
14519 readVarInt: readVarInt,
14521 varIntBuffer: varIntBuffer,
14522 varIntSize: varIntSize,
14523 writePushDataInt: writePushDataInt,
14524 writeUInt64LE: writeUInt64LE,
14525 writeVarInt: writeVarInt
14528 }).call(this,require("buffer").Buffer)
14529 },{"./opcodes":
67,"assert":
5,"buffer":
7}],
58:[function(require,module,exports){
14530 var createHash = require('create-hash')
14532 function hash160 (buffer) {
14533 return ripemd160(sha256(buffer))
14536 function hash256 (buffer) {
14537 return sha256(sha256(buffer))
14540 function ripemd160 (buffer) {
14541 return createHash('rmd160').update(buffer).digest()
14544 function sha1 (buffer) {
14545 return createHash('sha1').update(buffer).digest()
14548 function sha256 (buffer) {
14549 return createHash('sha256').update(buffer).digest()
14552 // FIXME: Name not consistent with others
14553 var createHmac = require('create-hmac')
14555 function HmacSHA256 (buffer, secret) {
14556 console.warn('Hmac* functions are deprecated for removal in
2.0.0, use node crypto instead')
14557 return createHmac('sha256', secret).update(buffer).digest()
14560 function HmacSHA512 (buffer, secret) {
14561 console.warn('Hmac* functions are deprecated for removal in
2.0.0, use node crypto instead')
14562 return createHmac('sha512', secret).update(buffer).digest()
14566 ripemd160: ripemd160,
14571 HmacSHA256: HmacSHA256,
14572 HmacSHA512: HmacSHA512
14575 },{"create-hash":
32,"create-hmac":
45}],
59:[function(require,module,exports){
14576 (function (Buffer){
14577 var assert = require('assert')
14578 var createHmac = require('create-hmac')
14579 var typeForce = require('typeforce')
14581 var BigInteger = require('bigi')
14582 var ECSignature = require('./ecsignature')
14584 var ZERO = new Buffer([
0])
14585 var ONE = new Buffer([
1])
14587 // https://tools.ietf.org/html/rfc6979#section-
3.2
14588 function deterministicGenerateK (curve, hash, d, checkSig) {
14589 typeForce('Buffer', hash)
14590 typeForce('BigInteger', d)
14592 // FIXME: remove/uncomment for
2.0.0
14593 // typeForce('Function', checkSig)
14595 if (typeof checkSig !== 'function') {
14596 console.warn('deterministicGenerateK requires a checkSig callback in
2.0.0, see #
337 for more information')
14598 checkSig = function (k) {
14601 var e = BigInteger.fromBuffer(hash)
14603 var Q = G.multiply(k)
14605 if (curve.isInfinity(Q))
14608 var r = Q.affineX.mod(n)
14609 if (r.signum() ===
0)
14612 var s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
14613 if (s.signum() ===
0)
14621 assert.equal(hash.length,
32, 'Hash must be
256 bit')
14623 var x = d.toBuffer(
32)
14624 var k = new Buffer(
32)
14625 var v = new Buffer(
32)
14627 // Step A, ignored as hash already provided
14635 k = createHmac('sha256', k)
14643 v = createHmac('sha256', k).update(v).digest()
14646 k = createHmac('sha256', k)
14654 v = createHmac('sha256', k).update(v).digest()
14656 // Step H1/H2a, ignored as tlen === qlen (
256 bit)
14658 v = createHmac('sha256', k).update(v).digest()
14660 var T = BigInteger.fromBuffer(v)
14662 // Step H3, repeat until T is within the interval [
1, n -
1] and is suitable for ECDSA
14663 while ((T.signum() <=
0) || (T.compareTo(curve.n)
>=
0) || !checkSig(T)) {
14664 k = createHmac('sha256', k)
14669 v = createHmac('sha256', k).update(v).digest()
14671 // Step H1/H2a, again, ignored as tlen === qlen (
256 bit)
14673 v = createHmac('sha256', k).update(v).digest()
14674 T = BigInteger.fromBuffer(v)
14680 function sign (curve, hash, d) {
14683 var e = BigInteger.fromBuffer(hash)
14687 deterministicGenerateK(curve, hash, d, function (k) {
14688 var Q = G.multiply(k)
14690 if (curve.isInfinity(Q))
14693 r = Q.affineX.mod(n)
14694 if (r.signum() ===
0)
14697 s = k.modInverse(n).multiply(e.add(d.multiply(r))).mod(n)
14698 if (s.signum() ===
0)
14704 var N_OVER_TWO = n.shiftRight(
1)
14706 // enforce low S values, see bip62: 'low s values in signatures'
14707 if (s.compareTo(N_OVER_TWO)
> 0) {
14711 return new ECSignature(r, s)
14714 function verifyRaw (curve, e, signature, Q) {
14718 var r = signature.r
14719 var s = signature.s
14721 //
1.4.1 Enforce r and s are both integers in the interval [
1, n −
1]
14722 if (r.signum() <=
0 || r.compareTo(n)
>=
0) return false
14723 if (s.signum() <=
0 || s.compareTo(n)
>=
0) return false
14726 var c = s.modInverse(n)
14728 //
1.4.4 Compute u1 = es^−
1 mod n
14729 // u2 = rs^−
1 mod n
14730 var u1 = e.multiply(c).mod(n)
14731 var u2 = r.multiply(c).mod(n)
14733 //
1.4.5 Compute R = (xR, yR) = u1G + u2Q
14734 var R = G.multiplyTwo(u1, Q, u2)
14735 var v = R.affineX.mod(n)
14737 //
1.4.5 (cont.) Enforce R is not at infinity
14738 if (curve.isInfinity(R)) return false
14740 //
1.4.8 If v = r, output "valid", and if v != r, output "invalid"
14744 function verify (curve, hash, signature, Q) {
14745 //
1.4.2 H = Hash(M), already done by the user
14747 var e = BigInteger.fromBuffer(hash)
14749 return verifyRaw(curve, e, signature, Q)
14753 * Recover a public key from a signature.
14755 * See SEC
1: Elliptic Curve Cryptography, section
4.1.6, "Public
14756 * Key Recovery Operation".
14758 * http://www.secg.org/download/aid-
780/sec1-v2.pdf
14760 function recoverPubKey (curve, e, signature, i) {
14761 assert.strictEqual(i &
3, i, 'Recovery param is more than two bits')
14766 var r = signature.r
14767 var s = signature.s
14769 assert(r.signum()
> 0 && r.compareTo(n) <
0, 'Invalid r value')
14770 assert(s.signum()
> 0 && s.compareTo(n) <
0, 'Invalid s value')
14772 // A set LSB signifies that the y-coordinate is odd
14775 // The more significant bit specifies whether we should use the
14776 // first or second candidate key.
14777 var isSecondKey = i
>> 1
14779 //
1.1 Let x = r + jn
14780 var x = isSecondKey ? r.add(n) : r
14781 var R = curve.pointFromX(isYOdd, x)
14783 //
1.4 Check that nR is at infinity
14784 var nR = R.multiply(n)
14785 assert(curve.isInfinity(nR), 'nR is not a valid curve point')
14787 // Compute -e from e
14788 var eNeg = e.negate().mod(n)
14790 //
1.6.1 Compute Q = r^-
1 (sR - eG)
14791 // Q = r^-
1 (sR + -eG)
14792 var rInv = r.modInverse(n)
14794 var Q = R.multiplyTwo(s, G, eNeg).multiply(rInv)
14801 * Calculate pubkey extraction parameter.
14803 * When extracting a pubkey from a signature, we have to
14804 * distinguish four different cases. Rather than putting this
14805 * burden on the verifier, Bitcoin includes a
2-bit value with the
14808 * This function simply tries all four cases and returns the value
14809 * that resulted in a successful pubkey recovery.
14811 function calcPubKeyRecoveryParam (curve, e, signature, Q) {
14812 for (var i =
0; i <
4; i++) {
14813 var Qprime = recoverPubKey(curve, e, signature, i)
14816 if (Qprime.equals(Q)) {
14821 throw new Error('Unable to find valid recovery factor')
14825 calcPubKeyRecoveryParam: calcPubKeyRecoveryParam,
14826 deterministicGenerateK: deterministicGenerateK,
14827 recoverPubKey: recoverPubKey,
14830 verifyRaw: verifyRaw
14833 }).call(this,require(
"buffer").Buffer)
14834 },{
"./ecsignature":
62,
"assert":
5,
"bigi":
3,
"buffer":
7,
"create-hmac":
45,
"typeforce":
53}],
60:[function(require,module,exports){
14835 (function (Buffer){
14836 var assert = require('assert')
14837 var base58check = require('bs58check')
14838 var ecdsa = require('./ecdsa')
14839 var networks = require('./networks')
14840 var randomBytes = require('randombytes')
14841 var typeForce = require('typeforce')
14843 var BigInteger = require('bigi')
14844 var ECPubKey = require('./ecpubkey')
14846 var ecurve = require('ecurve')
14847 var secp256k1 = ecurve.getCurveByName('secp256k1')
14849 function ECKey (d, compressed) {
14850 assert(d.signum()
> 0, 'Private key must be greater than
0')
14851 assert(d.compareTo(ECKey.curve.n) <
0, 'Private key must be less than the curve order')
14853 var Q = ECKey.curve.G.multiply(d)
14856 this.pub = new ECPubKey(Q, compressed)
14860 ECKey.curve = secp256k1
14862 // Static constructors
14863 ECKey.fromWIF = function (string) {
14864 var payload = base58check.decode(string)
14865 var compressed = false
14867 // Ignore the version byte
14868 payload = payload.slice(
1)
14870 if (payload.length ===
33) {
14871 assert.strictEqual(payload[
32],
0x01, 'Invalid compression flag')
14873 // Truncate the compression flag
14874 payload = payload.slice(
0, -
1)
14878 assert.equal(payload.length,
32, 'Invalid WIF payload length')
14880 var d = BigInteger.fromBuffer(payload)
14881 return new ECKey(d, compressed)
14884 ECKey.makeRandom = function (compressed, rng) {
14885 rng = rng || randomBytes
14887 var buffer = rng(
32)
14888 typeForce('Buffer', buffer)
14889 assert.equal(buffer.length,
32, 'Expected
256-bit Buffer from RNG')
14891 var d = BigInteger.fromBuffer(buffer)
14892 d = d.mod(ECKey.curve.n)
14894 return new ECKey(d, compressed)
14897 // Export functions
14898 ECKey.prototype.toWIF = function (network) {
14899 network = network || networks.bitcoin
14901 var bufferLen = this.pub.compressed ?
34 :
33
14902 var buffer = new Buffer(bufferLen)
14904 buffer.writeUInt8(network.wif,
0)
14905 this.d.toBuffer(
32).copy(buffer,
1)
14907 if (this.pub.compressed) {
14908 buffer.writeUInt8(
0x01,
33)
14911 return base58check.encode(buffer)
14915 ECKey.prototype.sign = function (hash) {
14916 return ecdsa.sign(ECKey.curve, hash, this.d)
14919 module.exports = ECKey
14921 }).call(this,require(
"buffer").Buffer)
14922 },{
"./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){
14923 (function (Buffer){
14924 var crypto = require('./crypto')
14925 var ecdsa = require('./ecdsa')
14926 var typeForce = require('typeforce')
14927 var networks = require('./networks')
14929 var Address = require('./address')
14931 var ecurve = require('ecurve')
14932 var secp256k1 = ecurve.getCurveByName('secp256k1')
14934 function ECPubKey (Q, compressed) {
14935 if (compressed === undefined) {
14939 typeForce('Point', Q)
14940 typeForce('Boolean', compressed)
14942 this.compressed = compressed
14947 ECPubKey.curve = secp256k1
14949 // Static constructors
14950 ECPubKey.fromBuffer = function (buffer) {
14951 var Q = ecurve.Point.decodeFrom(ECPubKey.curve, buffer)
14952 return new ECPubKey(Q, Q.compressed)
14955 ECPubKey.fromHex = function (hex) {
14956 return ECPubKey.fromBuffer(new Buffer(hex, 'hex'))
14960 ECPubKey.prototype.getAddress = function (network) {
14961 network = network || networks.bitcoin
14963 return new Address(crypto.hash160(this.toBuffer()), network.pubKeyHash)
14966 ECPubKey.prototype.verify = function (hash, signature) {
14967 return ecdsa.verify(ECPubKey.curve, hash, signature, this.Q)
14970 // Export functions
14971 ECPubKey.prototype.toBuffer = function () {
14972 return this.Q.getEncoded(this.compressed)
14975 ECPubKey.prototype.toHex = function () {
14976 return this.toBuffer().toString('hex')
14979 module.exports = ECPubKey
14981 }).call(this,require(
"buffer").Buffer)
14982 },{
"./address":
54,
"./crypto":
58,
"./ecdsa":
59,
"./networks":
66,
"buffer":
7,
"ecurve":
49,
"typeforce":
53}],
62:[function(require,module,exports){
14983 (function (Buffer){
14984 var assert = require('assert')
14985 var typeForce = require('typeforce')
14987 var BigInteger = require('bigi')
14989 function ECSignature (r, s) {
14990 typeForce('BigInteger', r)
14991 typeForce('BigInteger', s)
14997 ECSignature.parseCompact = function (buffer) {
14998 assert.equal(buffer.length,
65, 'Invalid signature length')
14999 var i = buffer.readUInt8(
0) -
27
15002 assert.equal(i, i &
7, 'Invalid signature parameter')
15003 var compressed = !!(i &
4)
15005 // Recovery param only
15008 var r = BigInteger.fromBuffer(buffer.slice(
1,
33))
15009 var s = BigInteger.fromBuffer(buffer.slice(
33))
15012 compressed: compressed,
15014 signature: new ECSignature(r, s)
15018 ECSignature.fromDER = function (buffer) {
15019 assert.equal(buffer.readUInt8(
0),
0x30, 'Not a DER sequence')
15020 assert.equal(buffer.readUInt8(
1), buffer.length -
2, 'Invalid sequence length')
15021 assert.equal(buffer.readUInt8(
2),
0x02, 'Expected a DER integer')
15023 var rLen = buffer.readUInt8(
3)
15024 assert(rLen
> 0, 'R length is zero')
15026 var offset =
4 + rLen
15027 assert.equal(buffer.readUInt8(offset),
0x02, 'Expected a DER integer (
2)')
15029 var sLen = buffer.readUInt8(offset +
1)
15030 assert(sLen
> 0, 'S length is zero')
15032 var rB = buffer.slice(
4, offset)
15033 var sB = buffer.slice(offset +
2)
15036 if (rLen
> 1 && rB.readUInt8(
0) ===
0x00) {
15037 assert(rB.readUInt8(
1) &
0x80, 'R value excessively padded')
15040 if (sLen
> 1 && sB.readUInt8(
0) ===
0x00) {
15041 assert(sB.readUInt8(
1) &
0x80, 'S value excessively padded')
15044 assert.equal(offset, buffer.length, 'Invalid DER encoding')
15045 var r = BigInteger.fromDERInteger(rB)
15046 var s = BigInteger.fromDERInteger(sB)
15048 assert(r.signum()
>=
0, 'R value is negative')
15049 assert(s.signum()
>=
0, 'S value is negative')
15051 return new ECSignature(r, s)
15054 // BIP62:
1 byte hashType flag (only
0x01,
0x02,
0x03,
0x81,
0x82 and
0x83 are allowed)
15055 ECSignature.parseScriptSignature = function (buffer) {
15056 var hashType = buffer.readUInt8(buffer.length -
1)
15057 var hashTypeMod = hashType & ~
0x80
15059 assert(hashTypeMod
> 0x00 && hashTypeMod <
0x04, 'Invalid hashType ' + hashType)
15062 signature: ECSignature.fromDER(buffer.slice(
0, -
1)),
15067 ECSignature.prototype.toCompact = function (i, compressed) {
15074 var buffer = new Buffer(
65)
15075 buffer.writeUInt8(i,
0)
15077 this.r.toBuffer(
32).copy(buffer,
1)
15078 this.s.toBuffer(
32).copy(buffer,
33)
15083 ECSignature.prototype.toDER = function () {
15084 var rBa = this.r.toDERInteger()
15085 var sBa = this.s.toDERInteger()
15090 sequence.push(
0x02, rBa.length)
15091 sequence = sequence.concat(rBa)
15094 sequence.push(
0x02, sBa.length)
15095 sequence = sequence.concat(sBa)
15098 sequence.unshift(
0x30, sequence.length)
15100 return new Buffer(sequence)
15103 ECSignature.prototype.toScriptSignature = function (hashType) {
15104 var hashTypeMod = hashType & ~
0x80
15105 assert(hashTypeMod
> 0x00 && hashTypeMod <
0x04, 'Invalid hashType ' + hashType)
15107 var hashTypeBuffer = new Buffer(
1)
15108 hashTypeBuffer.writeUInt8(hashType,
0)
15110 return Buffer.concat([this.toDER(), hashTypeBuffer])
15113 module.exports = ECSignature
15115 }).call(this,require(
"buffer").Buffer)
15116 },{
"assert":
5,
"bigi":
3,
"buffer":
7,
"typeforce":
53}],
63:[function(require,module,exports){
15117 (function (Buffer){
15118 var assert = require('assert')
15119 var base58check = require('bs58check')
15120 var bcrypto = require('./crypto')
15121 var createHmac = require('create-hmac')
15122 var typeForce = require('typeforce')
15123 var networks = require('./networks')
15125 var BigInteger = require('bigi')
15126 var ECKey = require('./eckey')
15127 var ECPubKey = require('./ecpubkey')
15129 var ecurve = require('ecurve')
15130 var curve = ecurve.getCurveByName('secp256k1')
15132 function findBIP32NetworkByVersion (version) {
15133 for (var name in networks) {
15134 var network = networks[name]
15136 if (version === network.bip32.private || version === network.bip32.public) {
15141 assert(false, 'Could not find network for ' + version.toString(
16))
15144 function HDNode (K, chainCode, network) {
15145 network = network || networks.bitcoin
15147 typeForce('Buffer', chainCode)
15149 assert.equal(chainCode.length,
32, 'Expected chainCode length of
32, got ' + chainCode.length)
15150 assert(network.bip32, 'Unknown BIP32 constants for network')
15152 this.chainCode = chainCode
15155 this.parentFingerprint =
0x00000000
15156 this.network = network
15158 if (K instanceof BigInteger) {
15159 this.privKey = new ECKey(K, true)
15160 this.pubKey = this.privKey.pub
15161 } else if (K instanceof ECKey) {
15162 assert(K.pub.compressed, 'ECKey must be compressed')
15164 this.pubKey = K.pub
15165 } else if (K instanceof ECPubKey) {
15166 assert(K.compressed, 'ECPubKey must be compressed')
15169 this.pubKey = new ECPubKey(K, true)
15173 HDNode.MASTER_SECRET = new Buffer('Bitcoin seed')
15174 HDNode.HIGHEST_BIT =
0x80000000
15177 HDNode.fromSeedBuffer = function (seed, network) {
15178 typeForce('Buffer', seed)
15180 assert(seed.length
>=
16, 'Seed should be at least
128 bits')
15181 assert(seed.length <=
64, 'Seed should be at most
512 bits')
15183 var I = createHmac('sha512', HDNode.MASTER_SECRET).update(seed).digest()
15184 var IL = I.slice(
0,
32)
15185 var IR = I.slice(
32)
15187 // In case IL is
0 or
>= n, the master key is invalid
15188 // This is handled by `new ECKey` in the HDNode constructor
15189 var pIL = BigInteger.fromBuffer(IL)
15191 return new HDNode(pIL, IR, network)
15194 HDNode.fromSeedHex = function (hex, network) {
15195 return HDNode.fromSeedBuffer(new Buffer(hex, 'hex'), network)
15198 HDNode.fromBase58 = function (string, network) {
15199 return HDNode.fromBuffer(base58check.decode(string), network, true)
15202 // FIXME: remove in
2.x.y
15203 HDNode.fromBuffer = function (buffer, network, __ignoreDeprecation) {
15204 if (!__ignoreDeprecation) {
15205 console.warn('HDNode.fromBuffer() is deprecated for removal in
2.x.y, use fromBase58 instead')
15208 assert.strictEqual(buffer.length, HDNode.LENGTH, 'Invalid buffer length')
15210 //
4 byte: version bytes
15211 var version = buffer.readUInt32BE(
0)
15214 assert(version === network.bip32.private || version === network.bip32.public, "Network doesn't match")
15218 network = findBIP32NetworkByVersion(version)
15221 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ...
15222 var depth = buffer.readUInt8(
4)
15224 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
15225 var parentFingerprint = buffer.readUInt32BE(
5)
15227 assert.strictEqual(parentFingerprint,
0x00000000, 'Invalid parent fingerprint')
15230 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
15231 // This is encoded in MSB order. (
0x00000000 if master key)
15232 var index = buffer.readUInt32BE(
9)
15233 assert(depth
> 0 || index ===
0, 'Invalid index')
15235 //
32 bytes: the chain code
15236 var chainCode = buffer.slice(
13,
45)
15239 //
33 bytes: private key data (
0x00 + k)
15240 if (version === network.bip32.private) {
15241 assert.strictEqual(buffer.readUInt8(
45),
0x00, 'Invalid private key')
15242 data = buffer.slice(
46,
78)
15243 var d = BigInteger.fromBuffer(data)
15244 hd = new HDNode(d, chainCode, network)
15246 //
33 bytes: public key data (
0x02 + X or
0x03 + X)
15248 data = buffer.slice(
45,
78)
15249 var Q = ecurve.Point.decodeFrom(curve, data)
15250 assert.equal(Q.compressed, true, 'Invalid public key')
15252 // Verify that the X coordinate in the public point corresponds to a point on the curve.
15253 // If not, the extended public key is invalid.
15256 hd = new HDNode(Q, chainCode, network)
15261 hd.parentFingerprint = parentFingerprint
15266 // FIXME: remove in
2.x.y
15267 HDNode.fromHex = function (hex, network) {
15268 return HDNode.fromBuffer(new Buffer(hex, 'hex'), network)
15271 HDNode.prototype.getIdentifier = function () {
15272 return bcrypto.hash160(this.pubKey.toBuffer())
15275 HDNode.prototype.getFingerprint = function () {
15276 return this.getIdentifier().slice(
0,
4)
15279 HDNode.prototype.getAddress = function () {
15280 return this.pubKey.getAddress(this.network)
15283 HDNode.prototype.neutered = function () {
15284 var neutered = new HDNode(this.pubKey.Q, this.chainCode, this.network)
15285 neutered.depth = this.depth
15286 neutered.index = this.index
15287 neutered.parentFingerprint = this.parentFingerprint
15292 HDNode.prototype.toBase58 = function (isPrivate) {
15293 return base58check.encode(this.toBuffer(isPrivate, true))
15296 // FIXME: remove in
2.x.y
15297 HDNode.prototype.toBuffer = function (isPrivate, __ignoreDeprecation) {
15298 if (isPrivate === undefined) {
15299 isPrivate = !!this.privKey
15301 // FIXME: remove in
2.x.y
15303 console.warn('isPrivate flag is deprecated, please use the .neutered() method instead')
15306 if (!__ignoreDeprecation) {
15307 console.warn('HDNode.toBuffer() is deprecated for removal in
2.x.y, use toBase58 instead')
15311 var version = isPrivate ? this.network.bip32.private : this.network.bip32.public
15312 var buffer = new Buffer(HDNode.LENGTH)
15314 //
4 bytes: version bytes
15315 buffer.writeUInt32BE(version,
0)
15318 //
1 byte: depth:
0x00 for master nodes,
0x01 for level-
1 descendants, ....
15319 buffer.writeUInt8(this.depth,
4)
15321 //
4 bytes: the fingerprint of the parent's key (
0x00000000 if master key)
15322 buffer.writeUInt32BE(this.parentFingerprint,
5)
15324 //
4 bytes: child number. This is the number i in xi = xpar/i, with xi the key being serialized.
15325 // This is encoded in Big endian. (
0x00000000 if master key)
15326 buffer.writeUInt32BE(this.index,
9)
15328 //
32 bytes: the chain code
15329 this.chainCode.copy(buffer,
13)
15331 //
33 bytes: the public key or private key data
15333 // FIXME: remove in
2.x.y
15334 assert(this.privKey, 'Missing private key')
15336 //
0x00 + k for private keys
15337 buffer.writeUInt8(
0,
45)
15338 this.privKey.d.toBuffer(
32).copy(buffer,
46)
15340 // X9.62 encoding for public keys
15341 this.pubKey.toBuffer().copy(buffer,
45)
15347 // FIXME: remove in
2.x.y
15348 HDNode.prototype.toHex = function (isPrivate) {
15349 return this.toBuffer(isPrivate).toString('hex')
15352 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#child-key-derivation-ckd-functions
15353 HDNode.prototype.derive = function (index) {
15354 var isHardened = index
>= HDNode.HIGHEST_BIT
15355 var indexBuffer = new Buffer(
4)
15356 indexBuffer.writeUInt32BE(index,
0)
15362 assert(this.privKey, 'Could not derive hardened child key')
15364 // data =
0x00 || ser256(kpar) || ser32(index)
15365 data = Buffer.concat([
15366 this.privKey.d.toBuffer(
33),
15372 // data = serP(point(kpar)) || ser32(index)
15373 // = serP(Kpar) || ser32(index)
15374 data = Buffer.concat([
15375 this.pubKey.toBuffer(),
15380 var I = createHmac('sha512', this.chainCode).update(data).digest()
15381 var IL = I.slice(
0,
32)
15382 var IR = I.slice(
32)
15384 var pIL = BigInteger.fromBuffer(IL)
15386 // In case parse256(IL)
>= n, proceed with the next value for i
15387 if (pIL.compareTo(curve.n)
>=
0) {
15388 return this.derive(index +
1)
15391 // Private parent key -
> private child key
15393 if (this.privKey) {
15394 // ki = parse256(IL) + kpar (mod n)
15395 var ki = pIL.add(this.privKey.d).mod(curve.n)
15397 // In case ki ==
0, proceed with the next value for i
15398 if (ki.signum() ===
0) {
15399 return this.derive(index +
1)
15402 hd = new HDNode(ki, IR, this.network)
15404 // Public parent key -
> public child key
15406 // Ki = point(parse256(IL)) + Kpar
15408 var Ki = curve.G.multiply(pIL).add(this.pubKey.Q)
15410 // In case Ki is the point at infinity, proceed with the next value for i
15411 if (curve.isInfinity(Ki)) {
15412 return this.derive(index +
1)
15415 hd = new HDNode(Ki, IR, this.network)
15418 hd.depth = this.depth +
1
15420 hd.parentFingerprint = this.getFingerprint().readUInt32BE(
0)
15425 HDNode.prototype.deriveHardened = function (index) {
15426 // Only derives hardened private keys by default
15427 return this.derive(index + HDNode.HIGHEST_BIT)
15430 HDNode.prototype.toString = HDNode.prototype.toBase58
15432 module.exports = HDNode
15434 }).call(this,require("buffer").Buffer)
15435 },{"./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){
15437 Address: require('./address'),
15438 base58check: require('./base58check'),
15439 Block: require('./block'),
15440 bufferutils: require('./bufferutils'),
15441 crypto: require('./crypto'),
15442 ecdsa: require('./ecdsa'),
15443 ECKey: require('./eckey'),
15444 ECPubKey: require('./ecpubkey'),
15445 ECSignature: require('./ecsignature'),
15446 Message: require('./message'),
15447 opcodes: require('./opcodes'),
15448 HDNode: require('./hdnode'),
15449 Script: require('./script'),
15450 scripts: require('./scripts'),
15451 Transaction: require('./transaction'),
15452 TransactionBuilder: require('./transaction_builder'),
15453 networks: require('./networks'),
15454 Wallet: require('./wallet')
15457 },{"./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){
15458 (function (Buffer){
15459 var bufferutils = require('./bufferutils')
15460 var crypto = require('./crypto')
15461 var ecdsa = require('./ecdsa')
15462 var networks = require('./networks')
15464 var BigInteger = require('bigi')
15465 var ECPubKey = require('./ecpubkey')
15466 var ECSignature = require('./ecsignature')
15468 var ecurve = require('ecurve')
15469 var ecparams = ecurve.getCurveByName('secp256k1')
15471 function magicHash (message, network) {
15472 var magicPrefix = new Buffer(network.magicPrefix)
15473 var messageBuffer = new Buffer(message)
15474 var lengthBuffer = bufferutils.varIntBuffer(messageBuffer.length)
15476 var buffer = Buffer.concat([magicPrefix, lengthBuffer, messageBuffer])
15477 return crypto.hash256(buffer)
15480 function sign (privKey, message, network) {
15481 network = network || networks.bitcoin
15483 var hash = magicHash(message, network)
15484 var signature = privKey.sign(hash)
15485 var e = BigInteger.fromBuffer(hash)
15486 var i = ecdsa.calcPubKeyRecoveryParam(ecparams, e, signature, privKey.pub.Q)
15488 return signature.toCompact(i, privKey.pub.compressed)
15491 // TODO: network could be implied from address
15492 function verify (address, signature, message, network) {
15493 if (!Buffer.isBuffer(signature)) {
15494 signature = new Buffer(signature, 'base64')
15497 network = network || networks.bitcoin
15499 var hash = magicHash(message, network)
15500 var parsed = ECSignature.parseCompact(signature)
15501 var e = BigInteger.fromBuffer(hash)
15502 var Q = ecdsa.recoverPubKey(ecparams, e, parsed.signature, parsed.i)
15504 var pubKey = new ECPubKey(Q, parsed.compressed)
15505 return pubKey.getAddress(network).toString() === address.toString()
15509 magicHash: magicHash,
15514 }).call(this,require("buffer").Buffer)
15515 },{"./bufferutils":
57,"./crypto":
58,"./ecdsa":
59,"./ecpubkey":
61,"./ecsignature":
62,"./networks":
66,"bigi":
3,"buffer":
7,"ecurve":
49}],
66:[function(require,module,exports){
15516 // https://en.bitcoin.it/wiki/List_of_address_prefixes
15517 // Dogecoin BIP32 is a proposed standard: https://bitcointalk.org/index.php?topic=
409731
15521 magicPrefix: '\x18Bitcoin Signed Message:\n',
15523 public:
0x0488b21e,
15524 private:
0x0488ade4
15529 dustThreshold:
546, // https://github.com/bitcoin/bitcoin/blob/v0.9
.2/src/core.h#L151-L162
15530 feePerKb:
10000, // https://github.com/bitcoin/bitcoin/blob/v0.9
.2/src/main.cpp#L53
15531 estimateFee: estimateFee('bitcoin')
15534 magicPrefix: '\x18Bitcoin Signed Message:\n',
15536 public:
0x043587cf,
15537 private:
0x04358394
15542 dustThreshold:
546,
15544 estimateFee: estimateFee('testnet')
15547 magicPrefix: '\x19Litecoin Signed Message:\n',
15549 public:
0x019da462,
15550 private:
0x019d9cfe
15555 dustThreshold:
0, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.cpp#L360-L365
15556 dustSoftThreshold:
100000, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.h#L53
15557 feePerKb:
100000, // https://github.com/litecoin-project/litecoin/blob/v0.8
.7.2/src/main.cpp#L56
15558 estimateFee: estimateFee('litecoin')
15561 magicPrefix: '\x19Dogecoin Signed Message:\n',
15563 public:
0x02facafd,
15564 private:
0x02fac398
15569 dustThreshold:
0, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/core.h#L155-L160
15570 dustSoftThreshold:
100000000, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/main.h#L62
15571 feePerKb:
100000000, // https://github.com/dogecoin/dogecoin/blob/v1.7
.1/src/main.cpp#L58
15572 estimateFee: estimateFee('dogecoin')
15575 magicPrefix: '\x18Viacoin Signed Message:\n',
15577 public:
0x0488b21e,
15578 private:
0x0488ade4
15583 dustThreshold:
560,
15584 dustSoftThreshold:
100000,
15585 feePerKb:
100000, //
15586 estimateFee: estimateFee('viacoin')
15589 magicPrefix: '\x18Viacoin Signed Message:\n',
15591 public:
0x043587cf,
15592 private:
0x04358394
15597 dustThreshold:
560,
15598 dustSoftThreshold:
100000,
15600 estimateFee: estimateFee('viacointestnet')
15603 magicPrefix: '\x19Gamerscoin Signed Message:\n',
15605 public:
0x019da462,
15606 private:
0x019d9cfe
15611 dustThreshold:
0, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L358-L363
15612 dustSoftThreshold:
100000, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L51
15613 feePerKb:
100000, // https://github.com/gamers-coin/gamers-coinv3/blob/master/src/main.cpp#L54
15614 estimateFee: estimateFee('gamerscoin')
15617 magicPrefix: '\x19Jumbucks Signed Message:\n',
15619 public:
0x037a689a,
15620 private:
0x037a6460
15626 dustSoftThreshold:
10000,
15628 estimateFee: estimateFee('jumbucks')
15631 magicPrefix: '\x18Zetacoin Signed Message:\n',
15633 public:
0x0488b21e,
15634 private:
0x0488ade4
15639 dustThreshold:
546, // https://github.com/zetacoin/zetacoin/blob/master/src/core.h#L159
15640 feePerKb:
10000, // https://github.com/zetacoin/zetacoin/blob/master/src/main.cpp#L54
15641 estimateFee: estimateFee('zetacoin')
15645 function estimateFee (type) {
15646 return function (tx) {
15647 var network = networks[type]
15648 var baseFee = network.feePerKb
15649 var byteSize = tx.toBuffer().length
15651 var fee = baseFee * Math.ceil(byteSize /
1000)
15652 if (network.dustSoftThreshold === undefined) return fee
15654 tx.outs.forEach(function (e) {
15655 if (e.value < network.dustSoftThreshold) {
15664 module.exports = networks
15666 },{}],
67:[function(require,module,exports){
15707 OP_TOALTSTACK:
107,
15708 OP_FROMALTSTACK:
108,
15740 OP_EQUALVERIFY:
136,
15765 OP_NUMEQUALVERIFY:
157,
15766 OP_NUMNOTEQUAL:
158,
15768 OP_GREATERTHAN:
160,
15769 OP_LESSTHANOREQUAL:
161,
15770 OP_GREATERTHANOREQUAL:
162,
15782 OP_CODESEPARATOR:
171,
15784 OP_CHECKSIGVERIFY:
173,
15785 OP_CHECKMULTISIG:
174,
15786 OP_CHECKMULTISIGVERIFY:
175,
15800 // template matching params
15801 OP_PUBKEYHASH:
253,
15803 OP_INVALIDOPCODE:
255
15806 },{}],
68:[function(require,module,exports){
15807 (function (Buffer){
15808 var assert = require('assert')
15809 var bufferutils = require('./bufferutils')
15810 var crypto = require('./crypto')
15811 var typeForce = require('typeforce')
15812 var opcodes = require('./opcodes')
15814 function Script (buffer, chunks) {
15815 typeForce('Buffer', buffer)
15816 typeForce('Array', chunks)
15818 this.buffer = buffer
15819 this.chunks = chunks
15822 Script.fromASM = function (asm) {
15823 var strChunks = asm.split(' ')
15824 var chunks = strChunks.map(function (strChunk) {
15826 if (strChunk in opcodes) {
15827 return opcodes[strChunk]
15831 return new Buffer(strChunk, 'hex')
15835 return Script.fromChunks(chunks)
15838 Script.fromBuffer = function (buffer) {
15842 while (i < buffer.length) {
15843 var opcode = buffer.readUInt8(i)
15846 if ((opcode
> opcodes.OP_0) && (opcode <= opcodes.OP_PUSHDATA4)) {
15847 var d = bufferutils.readPushDataInt(buffer, i)
15849 // did reading a pushDataInt fail? return non-chunked script
15850 if (d === null) return new Script(buffer, [])
15853 // attempt to read too much data?
15854 if (i + d.number
> buffer.length) return new Script(buffer, [])
15856 var data = buffer.slice(i, i + d.number)
15863 chunks.push(opcode)
15869 return new Script(buffer, chunks)
15872 Script.fromChunks = function (chunks) {
15873 typeForce('Array', chunks)
15875 var bufferSize = chunks.reduce(function (accum, chunk) {
15877 if (Buffer.isBuffer(chunk)) {
15878 return accum + bufferutils.pushDataSize(chunk.length) + chunk.length
15885 var buffer = new Buffer(bufferSize)
15888 chunks.forEach(function (chunk) {
15890 if (Buffer.isBuffer(chunk)) {
15891 offset += bufferutils.writePushDataInt(buffer, chunk.length, offset)
15893 chunk.copy(buffer, offset)
15894 offset += chunk.length
15898 buffer.writeUInt8(chunk, offset)
15903 assert.equal(offset, buffer.length, 'Could not decode chunks')
15904 return new Script(buffer, chunks)
15907 Script.fromHex = function (hex) {
15908 return Script.fromBuffer(new Buffer(hex, 'hex'))
15911 Script.EMPTY = Script.fromChunks([])
15913 Script.prototype.getHash = function () {
15914 return crypto.hash160(this.buffer)
15917 // FIXME: doesn't work for data chunks, maybe time to use buffertools.compare...
15918 Script.prototype.without = function (needle) {
15919 return Script.fromChunks(this.chunks.filter(function (op) {
15920 return op !== needle
15924 var reverseOps = []
15925 for (var op in opcodes) {
15926 var code = opcodes[op]
15927 reverseOps[code] = op
15930 Script.prototype.toASM = function () {
15931 return this.chunks.map(function (chunk) {
15933 if (Buffer.isBuffer(chunk)) {
15934 return chunk.toString('hex')
15938 return reverseOps[chunk]
15943 Script.prototype.toBuffer = function () {
15947 Script.prototype.toHex = function () {
15948 return this.toBuffer().toString('hex')
15951 module.exports = Script
15953 }).call(this,require("buffer").Buffer)
15954 },{"./bufferutils":
57,"./crypto":
58,"./opcodes":
67,"assert":
5,"buffer":
7,"typeforce":
53}],
69:[function(require,module,exports){
15955 (function (Buffer){
15956 var assert = require('assert')
15957 var ops = require('./opcodes')
15958 var typeForce = require('typeforce')
15960 var ecurve = require('ecurve')
15961 var curve = ecurve.getCurveByName('secp256k1')
15963 var ECSignature = require('./ecsignature')
15964 var Script = require('./script')
15966 function isCanonicalPubKey (buffer) {
15967 if (!Buffer.isBuffer(buffer)) return false
15970 ecurve.Point.decodeFrom(curve, buffer)
15972 if (!(e.message.match(/Invalid sequence (length|tag)/)))
15981 function isCanonicalSignature (buffer) {
15982 if (!Buffer.isBuffer(buffer)) return false
15985 ECSignature.parseScriptSignature(buffer)
15987 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/))) {
15997 function isPubKeyHashInput (script) {
15998 return script.chunks.length ===
2 &&
15999 isCanonicalSignature(script.chunks[
0]) &&
16000 isCanonicalPubKey(script.chunks[
1])
16003 function isPubKeyHashOutput (script) {
16004 return script.chunks.length ===
5 &&
16005 script.chunks[
0] === ops.OP_DUP &&
16006 script.chunks[
1] === ops.OP_HASH160 &&
16007 Buffer.isBuffer(script.chunks[
2]) &&
16008 script.chunks[
2].length ===
20 &&
16009 script.chunks[
3] === ops.OP_EQUALVERIFY &&
16010 script.chunks[
4] === ops.OP_CHECKSIG
16013 function isPubKeyInput (script) {
16014 return script.chunks.length ===
1 &&
16015 isCanonicalSignature(script.chunks[
0])
16018 function isPubKeyOutput (script) {
16019 return script.chunks.length ===
2 &&
16020 isCanonicalPubKey(script.chunks[
0]) &&
16021 script.chunks[
1] === ops.OP_CHECKSIG
16024 function isScriptHashInput (script, allowIncomplete) {
16025 if (script.chunks.length <
2) return false
16027 var lastChunk = script.chunks[script.chunks.length -
1]
16028 if (!Buffer.isBuffer(lastChunk)) return false
16030 var scriptSig = Script.fromChunks(script.chunks.slice(
0, -
1))
16031 var redeemScript = Script.fromBuffer(lastChunk)
16033 // is redeemScript a valid script?
16034 if (redeemScript.chunks.length ===
0) return false
16036 return classifyInput(scriptSig, allowIncomplete) === classifyOutput(redeemScript)
16039 function isScriptHashOutput (script) {
16040 return script.chunks.length ===
3 &&
16041 script.chunks[
0] === ops.OP_HASH160 &&
16042 Buffer.isBuffer(script.chunks[
1]) &&
16043 script.chunks[
1].length ===
20 &&
16044 script.chunks[
2] === ops.OP_EQUAL
16047 // allowIncomplete is to account for combining signatures
16048 // See https://github.com/bitcoin/bitcoin/blob/f425050546644a36b0b8e0eb2f6934a3e0f6f80f/src/script/sign.cpp#L195-L197
16049 function isMultisigInput (script, allowIncomplete) {
16050 if (script.chunks.length <
2) return false
16051 if (script.chunks[
0] !== ops.OP_0) return false
16053 if (allowIncomplete) {
16054 return script.chunks.slice(
1).every(function (chunk) {
16055 return chunk === ops.OP_0 || isCanonicalSignature(chunk)
16059 return script.chunks.slice(
1).every(isCanonicalSignature)
16062 function isMultisigOutput (script) {
16063 if (script.chunks.length <
4) return false
16064 if (script.chunks[script.chunks.length -
1] !== ops.OP_CHECKMULTISIG) return false
16066 var mOp = script.chunks[
0]
16067 if (mOp === ops.OP_0) return false
16068 if (mOp < ops.OP_1) return false
16069 if (mOp
> ops.OP_16) return false
16071 var nOp = script.chunks[script.chunks.length -
2]
16072 if (nOp === ops.OP_0) return false
16073 if (nOp < ops.OP_1) return false
16074 if (nOp
> ops.OP_16) return false
16076 var m = mOp - (ops.OP_1 -
1)
16077 var n = nOp - (ops.OP_1 -
1)
16078 if (n < m) return false
16080 var pubKeys = script.chunks.slice(
1, -
2)
16081 if (n < pubKeys.length) return false
16083 return pubKeys.every(isCanonicalPubKey)
16086 function isNullDataOutput (script) {
16087 return script.chunks[
0] === ops.OP_RETURN
16090 function classifyOutput (script) {
16091 typeForce('Script', script)
16093 if (isPubKeyHashOutput(script)) {
16094 return 'pubkeyhash'
16095 } else if (isScriptHashOutput(script)) {
16096 return 'scripthash'
16097 } else if (isMultisigOutput(script)) {
16099 } else if (isPubKeyOutput(script)) {
16101 } else if (isNullDataOutput(script)) {
16105 return 'nonstandard'
16108 function classifyInput (script, allowIncomplete) {
16109 typeForce('Script', script)
16111 if (isPubKeyHashInput(script)) {
16112 return 'pubkeyhash'
16113 } else if (isMultisigInput(script, allowIncomplete)) {
16115 } else if (isScriptHashInput(script, allowIncomplete)) {
16116 return 'scripthash'
16117 } else if (isPubKeyInput(script)) {
16121 return 'nonstandard'
16124 // Standard Script Templates
16125 // {pubKey} OP_CHECKSIG
16126 function pubKeyOutput (pubKey) {
16127 return Script.fromChunks([
16133 // OP_DUP OP_HASH160 {pubKeyHash} OP_EQUALVERIFY OP_CHECKSIG
16134 function pubKeyHashOutput (hash) {
16135 typeForce('Buffer', hash)
16137 return Script.fromChunks([
16141 ops.OP_EQUALVERIFY,
16146 // OP_HASH160 {scriptHash} OP_EQUAL
16147 function scriptHashOutput (hash) {
16148 typeForce('Buffer', hash)
16150 return Script.fromChunks([
16157 // m [pubKeys ...] n OP_CHECKMULTISIG
16158 function multisigOutput (m, pubKeys) {
16159 typeForce(['ECPubKey'], pubKeys)
16161 assert(pubKeys.length
>= m, 'Not enough pubKeys provided')
16163 var pubKeyBuffers = pubKeys.map(function (pubKey) {
16164 return pubKey.toBuffer()
16166 var n = pubKeys.length
16168 return Script.fromChunks([].concat(
16169 (ops.OP_1 -
1) + m,
16171 (ops.OP_1 -
1) + n,
16172 ops.OP_CHECKMULTISIG
16177 function pubKeyInput (signature) {
16178 typeForce('Buffer', signature)
16180 return Script.fromChunks([signature])
16183 // {signature} {pubKey}
16184 function pubKeyHashInput (signature, pubKey) {
16185 typeForce('Buffer', signature)
16187 return Script.fromChunks([signature, pubKey.toBuffer()])
16190 //
<scriptSig> {serialized scriptPubKey script}
16191 function scriptHashInput (scriptSig, scriptPubKey) {
16192 return Script.fromChunks([].concat(
16194 scriptPubKey.toBuffer()
16198 // OP_0 [signatures ...]
16199 function multisigInput (signatures, scriptPubKey) {
16200 if (scriptPubKey) {
16201 assert(isMultisigOutput(scriptPubKey))
16203 var mOp = scriptPubKey.chunks[
0]
16204 var nOp = scriptPubKey.chunks[scriptPubKey.chunks.length -
2]
16205 var m = mOp - (ops.OP_1 -
1)
16206 var n = nOp - (ops.OP_1 -
1)
16208 assert(signatures.length
>= m, 'Not enough signatures provided')
16209 assert(signatures.length <= n, 'Too many signatures provided')
16212 return Script.fromChunks([].concat(ops.OP_0, signatures))
16215 function nullDataOutput (data) {
16216 return Script.fromChunks([ops.OP_RETURN, data])
16220 isCanonicalPubKey: isCanonicalPubKey,
16221 isCanonicalSignature: isCanonicalSignature,
16222 isPubKeyHashInput: isPubKeyHashInput,
16223 isPubKeyHashOutput: isPubKeyHashOutput,
16224 isPubKeyInput: isPubKeyInput,
16225 isPubKeyOutput: isPubKeyOutput,
16226 isScriptHashInput: isScriptHashInput,
16227 isScriptHashOutput: isScriptHashOutput,
16228 isMultisigInput: isMultisigInput,
16229 isMultisigOutput: isMultisigOutput,
16230 isNullDataOutput: isNullDataOutput,
16231 classifyOutput: classifyOutput,
16232 classifyInput: classifyInput,
16233 pubKeyOutput: pubKeyOutput,
16234 pubKeyHashOutput: pubKeyHashOutput,
16235 scriptHashOutput: scriptHashOutput,
16236 multisigOutput: multisigOutput,
16237 pubKeyInput: pubKeyInput,
16238 pubKeyHashInput: pubKeyHashInput,
16239 scriptHashInput: scriptHashInput,
16240 multisigInput: multisigInput,
16241 dataOutput: function (data) {
16242 console.warn('dataOutput is deprecated, use nullDataOutput by
2.0.0')
16243 return nullDataOutput(data)
16245 nullDataOutput: nullDataOutput
16248 }).call(this,require("buffer").Buffer)
16249 },{"./ecsignature":
62,"./opcodes":
67,"./script":
68,"assert":
5,"buffer":
7,"ecurve":
49,"typeforce":
53}],
70:[function(require,module,exports){
16250 (function (Buffer){
16251 var assert = require('assert')
16252 var bufferutils = require('./bufferutils')
16253 var crypto = require('./crypto')
16254 var typeForce = require('typeforce')
16255 var opcodes = require('./opcodes')
16256 var scripts = require('./scripts')
16258 var Address = require('./address')
16259 var ECSignature = require('./ecsignature')
16260 var Script = require('./script')
16262 function Transaction () {
16269 Transaction.DEFAULT_SEQUENCE =
0xffffffff
16270 Transaction.SIGHASH_ALL =
0x01
16271 Transaction.SIGHASH_NONE =
0x02
16272 Transaction.SIGHASH_SINGLE =
0x03
16273 Transaction.SIGHASH_ANYONECANPAY =
0x80
16275 Transaction.fromBuffer = function (buffer, __disableAssert) {
16277 function readSlice (n) {
16279 return buffer.slice(offset - n, offset)
16282 function readUInt32 () {
16283 var i = buffer.readUInt32LE(offset)
16288 function readUInt64 () {
16289 var i = bufferutils.readUInt64LE(buffer, offset)
16294 function readVarInt () {
16295 var vi = bufferutils.readVarInt(buffer, offset)
16300 function readScript () {
16301 return Script.fromBuffer(readSlice(readVarInt()))
16304 function readGenerationScript () {
16305 return new Script(readSlice(readVarInt()), [])
16308 var tx = new Transaction()
16309 tx.version = readUInt32()
16311 var vinLen = readVarInt()
16312 for (var i =
0; i < vinLen; ++i) {
16313 var hash = readSlice(
32)
16315 if (Transaction.isCoinbaseHash(hash)) {
16318 index: readUInt32(),
16319 script: readGenerationScript(),
16320 sequence: readUInt32()
16325 index: readUInt32(),
16326 script: readScript(),
16327 sequence: readUInt32()
16332 var voutLen = readVarInt()
16333 for (i =
0; i < voutLen; ++i) {
16335 value: readUInt64(),
16336 script: readScript()
16340 tx.locktime = readUInt32()
16342 if (!__disableAssert) {
16343 assert.equal(offset, buffer.length, 'Transaction has unexpected data')
16349 Transaction.fromHex = function (hex) {
16350 return Transaction.fromBuffer(new Buffer(hex, 'hex'))
16353 Transaction.isCoinbaseHash = function (buffer) {
16354 return Array.prototype.every.call(buffer, function (x) {
16360 * Create a new txIn.
16362 * Can be called with any of:
16364 * - A transaction and an index
16365 * - A transaction hash and an index
16367 * Note that this method does not sign the created input.
16369 Transaction.prototype.addInput = function (hash, index, sequence, script) {
16370 if (sequence === undefined || sequence === null) {
16371 sequence = Transaction.DEFAULT_SEQUENCE
16374 script = script || Script.EMPTY
16376 if (typeof hash === 'string') {
16377 // TxId hex is big-endian, we need little-endian
16378 hash = bufferutils.reverse(new Buffer(hash, 'hex'))
16379 } else if (hash instanceof Transaction) {
16380 hash = hash.getHash()
16383 typeForce('Buffer', hash)
16384 typeForce('Number', index)
16385 typeForce('Number', sequence)
16386 typeForce('Script', script)
16388 assert.equal(hash.length,
32, 'Expected hash length of
32, got ' + hash.length)
16390 // Add the input and return the input's index
16391 return (this.ins.push({
16400 * Create a new txOut.
16402 * Can be called with:
16404 * - A base58 address string and a value
16405 * - An Address object and a value
16406 * - A scriptPubKey Script and a value
16408 Transaction.prototype.addOutput = function (scriptPubKey, value) {
16409 // Attempt to get a valid address if it's a base58 address string
16410 if (typeof scriptPubKey === 'string') {
16411 scriptPubKey = Address.fromBase58Check(scriptPubKey)
16414 // Attempt to get a valid script if it's an Address object
16415 if (scriptPubKey instanceof Address) {
16416 scriptPubKey = scriptPubKey.toOutputScript()
16419 typeForce('Script', scriptPubKey)
16420 typeForce('Number', value)
16422 // Add the output and return the output's index
16423 return (this.outs.push({
16424 script: scriptPubKey,
16429 Transaction.prototype.clone = function () {
16430 var newTx = new Transaction()
16431 newTx.version = this.version
16432 newTx.locktime = this.locktime
16434 newTx.ins = this.ins.map(function (txIn) {
16438 script: txIn.script,
16439 sequence: txIn.sequence
16443 newTx.outs = this.outs.map(function (txOut) {
16445 script: txOut.script,
16454 * Hash transaction for signing a specific input.
16456 * Bitcoin uses a different hash for each signed transaction input. This
16457 * method copies the transaction, makes the necessary changes based on the
16458 * hashType, serializes and finally hashes the result. This hash can then be
16459 * used to sign the transaction input in question.
16461 Transaction.prototype.hashForSignature = function (inIndex, prevOutScript, hashType) {
16462 // FIXME: remove in
2.x.y
16463 if (arguments[
0] instanceof Script) {
16464 console.warn('hashForSignature(prevOutScript, inIndex, ...) has been deprecated. Use hashForSignature(inIndex, prevOutScript, ...)')
16466 // swap the arguments (must be stored in tmp, arguments is special)
16467 var tmp = arguments[
0]
16468 inIndex = arguments[
1]
16469 prevOutScript = tmp
16472 typeForce('Number', inIndex)
16473 typeForce('Script', prevOutScript)
16474 typeForce('Number', hashType)
16476 assert(inIndex
>=
0, 'Invalid vin index')
16477 assert(inIndex < this.ins.length, 'Invalid vin index')
16479 var txTmp = this.clone()
16480 var hashScript = prevOutScript.without(opcodes.OP_CODESEPARATOR)
16482 // Blank out other inputs' signatures
16483 txTmp.ins.forEach(function (txIn) {
16484 txIn.script = Script.EMPTY
16486 txTmp.ins[inIndex].script = hashScript
16488 var hashTypeModifier = hashType &
0x1f
16490 if (hashTypeModifier === Transaction.SIGHASH_NONE) {
16491 assert(false, 'SIGHASH_NONE not yet supported')
16492 } else if (hashTypeModifier === Transaction.SIGHASH_SINGLE) {
16493 assert(false, 'SIGHASH_SINGLE not yet supported')
16496 if (hashType & Transaction.SIGHASH_ANYONECANPAY) {
16497 assert(false, 'SIGHASH_ANYONECANPAY not yet supported')
16500 var hashTypeBuffer = new Buffer(
4)
16501 hashTypeBuffer.writeInt32LE(hashType,
0)
16503 var buffer = Buffer.concat([txTmp.toBuffer(), hashTypeBuffer])
16504 return crypto.hash256(buffer)
16507 Transaction.prototype.getHash = function () {
16508 return crypto.hash256(this.toBuffer())
16511 Transaction.prototype.getId = function () {
16512 // TxHash is little-endian, we need big-endian
16513 return bufferutils.reverse(this.getHash()).toString('hex')
16516 Transaction.prototype.toBuffer = function () {
16517 function scriptSize (script) {
16518 var length = script.buffer.length
16520 return bufferutils.varIntSize(length) + length
16523 var buffer = new Buffer(
16525 bufferutils.varIntSize(this.ins.length) +
16526 bufferutils.varIntSize(this.outs.length) +
16527 this.ins.reduce(function (sum, input) { return sum +
40 + scriptSize(input.script) },
0) +
16528 this.outs.reduce(function (sum, output) { return sum +
8 + scriptSize(output.script) },
0)
16532 function writeSlice (slice) {
16533 slice.copy(buffer, offset)
16534 offset += slice.length
16537 function writeUInt32 (i) {
16538 buffer.writeUInt32LE(i, offset)
16542 function writeUInt64 (i) {
16543 bufferutils.writeUInt64LE(buffer, i, offset)
16547 function writeVarInt (i) {
16548 var n = bufferutils.writeVarInt(buffer, i, offset)
16552 writeUInt32(this.version)
16553 writeVarInt(this.ins.length)
16555 this.ins.forEach(function (txIn) {
16556 writeSlice(txIn.hash)
16557 writeUInt32(txIn.index)
16558 writeVarInt(txIn.script.buffer.length)
16559 writeSlice(txIn.script.buffer)
16560 writeUInt32(txIn.sequence)
16563 writeVarInt(this.outs.length)
16564 this.outs.forEach(function (txOut) {
16565 writeUInt64(txOut.value)
16566 writeVarInt(txOut.script.buffer.length)
16567 writeSlice(txOut.script.buffer)
16570 writeUInt32(this.locktime)
16575 Transaction.prototype.toHex = function () {
16576 return this.toBuffer().toString('hex')
16579 Transaction.prototype.setInputScript = function (index, script) {
16580 typeForce('Number', index)
16581 typeForce('Script', script)
16583 this.ins[index].script = script
16586 // FIXME: remove in
2.x.y
16587 Transaction.prototype.sign = function (index, privKey, hashType) {
16588 console.warn('Transaction.prototype.sign is deprecated. Use TransactionBuilder instead.')
16590 var prevOutScript = privKey.pub.getAddress().toOutputScript()
16591 var signature = this.signInput(index, prevOutScript, privKey, hashType)
16593 var scriptSig = scripts.pubKeyHashInput(signature, privKey.pub)
16594 this.setInputScript(index, scriptSig)
16597 // FIXME: remove in
2.x.y
16598 Transaction.prototype.signInput = function (index, prevOutScript, privKey, hashType) {
16599 console.warn('Transaction.prototype.signInput is deprecated. Use TransactionBuilder instead.')
16601 hashType = hashType || Transaction.SIGHASH_ALL
16603 var hash = this.hashForSignature(index, prevOutScript, hashType)
16604 var signature = privKey.sign(hash)
16606 return signature.toScriptSignature(hashType)
16609 // FIXME: remove in
2.x.y
16610 Transaction.prototype.validateInput = function (index, prevOutScript, pubKey, buffer) {
16611 console.warn('Transaction.prototype.validateInput is deprecated. Use TransactionBuilder instead.')
16613 var parsed = ECSignature.parseScriptSignature(buffer)
16614 var hash = this.hashForSignature(index, prevOutScript, parsed.hashType)
16616 return pubKey.verify(hash, parsed.signature)
16619 module.exports = Transaction
16621 }).call(this,require("buffer").Buffer)
16622 },{"./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){
16623 (function (Buffer){
16624 var assert = require('assert')
16625 var ops = require('./opcodes')
16626 var scripts = require('./scripts')
16628 var ECPubKey = require('./ecpubkey')
16629 var ECSignature = require('./ecsignature')
16630 var Script = require('./script')
16631 var Transaction = require('./transaction')
16633 function extractInput (txIn) {
16635 var scriptSig = txIn.script
16637 var prevOutType = scripts.classifyInput(scriptSig, true)
16640 // Re-classify if scriptHash
16641 if (prevOutType === 'scripthash') {
16642 redeemScript = Script.fromBuffer(scriptSig.chunks.slice(-
1)[
0])
16643 prevOutScript = scripts.scriptHashOutput(redeemScript.getHash())
16645 scriptSig = Script.fromChunks(scriptSig.chunks.slice(
0, -
1))
16646 scriptType = scripts.classifyInput(scriptSig, true)
16648 scriptType = prevOutType
16651 // Extract hashType, pubKeys and signatures
16652 var hashType, parsed, pubKeys, signatures
16654 switch (scriptType) {
16655 case 'pubkeyhash': {
16656 parsed = ECSignature.parseScriptSignature(scriptSig.chunks[
0])
16657 hashType = parsed.hashType
16658 pubKeys = [ECPubKey.fromBuffer(scriptSig.chunks[
1])]
16659 signatures = [parsed.signature]
16660 prevOutScript = pubKeys[
0].getAddress().toOutputScript()
16666 parsed = ECSignature.parseScriptSignature(scriptSig.chunks[
0])
16667 hashType = parsed.hashType
16668 signatures = [parsed.signature]
16670 if (redeemScript) {
16671 pubKeys = [ECPubKey.fromBuffer(redeemScript.chunks[
0])]
16678 signatures = scriptSig.chunks.slice(
1).map(function (chunk) {
16679 if (chunk === ops.OP_0) return chunk
16681 var parsed = ECSignature.parseScriptSignature(chunk)
16682 hashType = parsed.hashType
16684 return parsed.signature
16687 if (redeemScript) {
16688 pubKeys = redeemScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
16696 hashType: hashType,
16697 prevOutScript: prevOutScript,
16698 prevOutType: prevOutType,
16700 redeemScript: redeemScript,
16701 scriptType: scriptType,
16702 signatures: signatures
16706 function TransactionBuilder () {
16707 this.prevTxMap = {}
16708 this.prevOutScripts = {}
16709 this.prevOutTypes = {}
16712 this.tx = new Transaction()
16715 TransactionBuilder.fromTransaction = function (transaction) {
16716 var txb = new TransactionBuilder()
16718 // Copy other transaction fields
16719 txb.tx.version = transaction.version
16720 txb.tx.locktime = transaction.locktime
16722 // Extract/add inputs
16723 transaction.ins.forEach(function (txIn) {
16724 txb.addInput(txIn.hash, txIn.index, txIn.sequence)
16727 // Extract/add outputs
16728 transaction.outs.forEach(function (txOut) {
16729 txb.addOutput(txOut.script, txOut.value)
16732 // Extract/add signatures
16733 txb.inputs = transaction.ins.map(function (txIn) {
16734 // TODO: remove me after testcase added
16735 assert(!Transaction.isCoinbaseHash(txIn.hash), 'coinbase inputs not supported')
16737 // Ignore empty scripts
16738 if (txIn.script.buffer.length ===
0) return {}
16740 return extractInput(txIn)
16746 TransactionBuilder.prototype.addInput = function (prevTx, index, sequence, prevOutScript) {
16750 if (typeof prevTx === 'string') {
16751 prevOutHash = new Buffer(prevTx, 'hex')
16753 // TxId hex is big-endian, we want little-endian hash
16754 Array.prototype.reverse.call(prevOutHash)
16757 } else if (prevTx instanceof Transaction) {
16758 prevOutHash = prevTx.getHash()
16759 prevOutScript = prevTx.outs[index].script
16763 prevOutHash = prevTx
16767 if (prevOutScript) {
16768 var prevOutType = scripts.classifyOutput(prevOutScript)
16770 // if we can, extract pubKey information
16771 switch (prevOutType) {
16773 input.pubKeys = prevOutScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
16778 input.pubKeys = prevOutScript.chunks.slice(
0,
1).map(ECPubKey.fromBuffer)
16783 if (prevOutType !== 'scripthash') {
16784 input.scriptType = prevOutType
16787 input.prevOutScript = prevOutScript
16788 input.prevOutType = prevOutType
16791 assert(this.inputs.every(function (input2) {
16792 if (input2.hashType === undefined) return true
16794 return input2.hashType & Transaction.SIGHASH_ANYONECANPAY
16795 }), 'No, this would invalidate signatures')
16797 var prevOut = prevOutHash.toString('hex') + ':' + index
16798 assert(!(prevOut in this.prevTxMap), 'Transaction is already an input')
16800 var vin = this.tx.addInput(prevOutHash, index, sequence)
16801 this.inputs[vin] = input
16802 this.prevTxMap[prevOut] = vin
16807 TransactionBuilder.prototype.addOutput = function (scriptPubKey, value) {
16808 assert(this.inputs.every(function (input) {
16809 if (input.hashType === undefined) return true
16811 return (input.hashType &
0x1f) === Transaction.SIGHASH_SINGLE
16812 }), 'No, this would invalidate signatures')
16814 return this.tx.addOutput(scriptPubKey, value)
16817 TransactionBuilder.prototype.build = function () {
16818 return this.__build(false)
16820 TransactionBuilder.prototype.buildIncomplete = function () {
16821 return this.__build(true)
16824 var canSignTypes = {
16825 'pubkeyhash': true,
16830 TransactionBuilder.prototype.__build = function (allowIncomplete) {
16831 if (!allowIncomplete) {
16832 assert(this.tx.ins.length
> 0, 'Transaction has no inputs')
16833 assert(this.tx.outs.length
> 0, 'Transaction has no outputs')
16836 var tx = this.tx.clone()
16838 // Create script signatures from signature meta-data
16839 this.inputs.forEach(function (input, index) {
16840 var scriptType = input.scriptType
16843 if (!allowIncomplete) {
16844 assert(!!scriptType, 'Transaction is not complete')
16845 assert(scriptType in canSignTypes, scriptType + ' not supported')
16846 assert(input.signatures, 'Transaction is missing signatures')
16849 if (input.signatures) {
16850 switch (scriptType) {
16851 case 'pubkeyhash': {
16852 var pkhSignature = input.signatures[
0].toScriptSignature(input.hashType)
16853 scriptSig = scripts.pubKeyHashInput(pkhSignature, input.pubKeys[
0])
16858 // Array.prototype.map is sparse-compatible
16859 var msSignatures = input.signatures.map(function (signature) {
16860 return signature && signature.toScriptSignature(input.hashType)
16863 // fill in blanks with OP_0
16864 if (allowIncomplete) {
16865 for (var i =
0; i < msSignatures.length; ++i) {
16866 if (msSignatures[i]) continue
16868 msSignatures[i] = ops.OP_0
16871 // Array.prototype.filter returns non-sparse array
16872 msSignatures = msSignatures.filter(function (x) { return x })
16875 var redeemScript = allowIncomplete ? undefined : input.redeemScript
16876 scriptSig = scripts.multisigInput(msSignatures, redeemScript)
16881 var pkSignature = input.signatures[
0].toScriptSignature(input.hashType)
16882 scriptSig = scripts.pubKeyInput(pkSignature)
16888 // did we build a scriptSig?
16890 // wrap as scriptHash if necessary
16891 if (input.prevOutType === 'scripthash') {
16892 scriptSig = scripts.scriptHashInput(scriptSig, input.redeemScript)
16895 tx.setInputScript(index, scriptSig)
16902 TransactionBuilder.prototype.sign = function (index, privKey, redeemScript, hashType) {
16903 assert(index in this.inputs, 'No input at index: ' + index)
16904 hashType = hashType || Transaction.SIGHASH_ALL
16906 var input = this.inputs[index]
16907 var canSign = input.hashType &&
16908 input.prevOutScript &&
16909 input.prevOutType &&
16911 input.scriptType &&
16914 // are we almost ready to sign?
16916 // if redeemScript was provided, enforce consistency
16917 if (redeemScript) {
16918 assert.deepEqual(input.redeemScript, redeemScript, 'Inconsistent redeemScript')
16921 assert.equal(input.hashType, hashType, 'Inconsistent hashType')
16925 // must be pay-to-scriptHash?
16926 if (redeemScript) {
16927 // if we have a prevOutScript, enforce scriptHash equality to the redeemScript
16928 if (input.prevOutScript) {
16929 assert.equal(input.prevOutType, 'scripthash', 'PrevOutScript must be P2SH')
16931 var scriptHash = input.prevOutScript.chunks[
1]
16932 assert.deepEqual(scriptHash, redeemScript.getHash(), 'RedeemScript does not match ' + scriptHash.toString('hex'))
16935 var scriptType = scripts.classifyOutput(redeemScript)
16936 assert(scriptType in canSignTypes, 'RedeemScript not supported (' + scriptType + ')')
16939 switch (scriptType) {
16941 pubKeys = redeemScript.chunks.slice(
1, -
2).map(ECPubKey.fromBuffer)
16945 case 'pubkeyhash': {
16946 var pkh1 = redeemScript.chunks[
2]
16947 var pkh2 = privKey.pub.getAddress().hash
16949 assert.deepEqual(pkh1, pkh2, 'privateKey cannot sign for this input')
16950 pubKeys = [privKey.pub]
16955 pubKeys = redeemScript.chunks.slice(
0,
1).map(ECPubKey.fromBuffer)
16960 if (!input.prevOutScript) {
16961 input.prevOutScript = scripts.scriptHashOutput(redeemScript.getHash())
16962 input.prevOutType = 'scripthash'
16965 input.pubKeys = pubKeys
16966 input.redeemScript = redeemScript
16967 input.scriptType = scriptType
16969 // cannot be pay-to-scriptHash
16971 assert.notEqual(input.prevOutType, 'scripthash', 'PrevOutScript is P2SH, missing redeemScript')
16973 // can we otherwise sign this?
16974 if (input.scriptType) {
16975 assert(input.pubKeys, input.scriptType + ' not supported')
16977 // we know nothin' Jon Snow, assume pubKeyHash
16979 input.prevOutScript = privKey.pub.getAddress().toOutputScript()
16980 input.prevOutType = 'pubkeyhash'
16981 input.pubKeys = [privKey.pub]
16982 input.scriptType = input.prevOutType
16986 input.hashType = hashType
16987 input.signatures = input.signatures || []
16990 var signatureScript = input.redeemScript || input.prevOutScript
16991 var signatureHash = this.tx.hashForSignature(index, signatureScript, hashType)
16993 // enforce signature order matches public keys
16994 if (input.scriptType === 'multisig' && input.redeemScript && input.signatures.length !== input.pubKeys.length) {
16995 // maintain a local copy of unmatched signatures
16996 var unmatched = input.signatures.slice()
16998 input.signatures = input.pubKeys.map(function (pubKey) {
17001 // check for any matching signatures
17002 unmatched.some(function (signature, i) {
17003 if (!pubKey.verify(signatureHash, signature)) return false
17006 // remove matched signature from unmatched
17007 unmatched.splice(i,
1)
17012 return match || undefined
17016 // enforce in order signing of public keys
17017 assert(input.pubKeys.some(function (pubKey, i) {
17018 if (!privKey.pub.Q.equals(pubKey.Q)) return false
17020 assert(!input.signatures[i], 'Signature already exists')
17021 var signature = privKey.sign(signatureHash)
17022 input.signatures[i] = signature
17025 }, this), 'privateKey cannot sign for this input')
17028 module.exports = TransactionBuilder
17030 }).call(this,require(
"buffer").Buffer)
17031 },{
"./ecpubkey":
61,
"./ecsignature":
62,
"./opcodes":
67,
"./script":
68,
"./scripts":
69,
"./transaction":
70,
"assert":
5,
"buffer":
7}],
72:[function(require,module,exports){
17032 (function (Buffer){
17033 var assert = require('assert')
17034 var bufferutils = require('./bufferutils')
17035 var typeForce = require('typeforce')
17036 var networks = require('./networks')
17037 var randomBytes = require('randombytes')
17039 var Address = require('./address')
17040 var HDNode = require('./hdnode')
17041 var TransactionBuilder = require('./transaction_builder')
17042 var Script = require('./script')
17044 function Wallet (seed, network) {
17045 console.warn('Wallet is deprecated and will be removed in
2.0.0, see #
296')
17047 seed = seed || randomBytes(
32)
17048 network = network || networks.bitcoin
17050 // Stored in a closure to make accidental serialization less likely
17051 var masterKey = HDNode.fromSeedBuffer(seed, network)
17053 // HD first-level child derivation method should be hardened
17054 // See https://bitcointalk.org/index.php?topic=
405179.msg4415254#msg4415254
17055 var accountZero = masterKey.deriveHardened(
0)
17056 var externalAccount = accountZero.derive(
0)
17057 var internalAccount = accountZero.derive(
1)
17059 this.addresses = []
17060 this.changeAddresses = []
17061 this.network = network
17064 // FIXME: remove in
2.0.0
17065 this.unspentMap = {}
17067 // FIXME: remove in
2.0.0
17069 this.newMasterKey = function (seed) {
17070 console.warn('newMasterKey is deprecated, please make a new Wallet instance instead')
17072 seed = seed || randomBytes(
32)
17073 masterKey = HDNode.fromSeedBuffer(seed, network)
17075 accountZero = masterKey.deriveHardened(
0)
17076 externalAccount = accountZero.derive(
0)
17077 internalAccount = accountZero.derive(
1)
17080 me.changeAddresses = []
17086 this.getMasterKey = function () {
17089 this.getAccountZero = function () {
17092 this.getExternalAccount = function () {
17093 return externalAccount
17095 this.getInternalAccount = function () {
17096 return internalAccount
17100 Wallet.prototype.createTransaction = function (to, value, options) {
17101 // FIXME: remove in
2.0.0
17102 if (typeof options !== 'object') {
17103 if (options !== undefined) {
17104 console.warn('Non options object parameters are deprecated, use options object instead')
17107 fixedFee: arguments[
2],
17108 changeAddress: arguments[
3]
17113 options = options || {}
17115 assert(value
> this.network.dustThreshold, value + ' must be above dust threshold (' + this.network.dustThreshold + ' Satoshis)')
17117 var changeAddress = options.changeAddress
17118 var fixedFee = options.fixedFee
17119 var minConf = options.minConf === undefined ?
0 : options.minConf // FIXME: change minConf:
1 by default in
2.0.0
17121 // filter by minConf, then pending and sort by descending value
17122 var unspents = this.unspents.filter(function (unspent) {
17123 return unspent.confirmations
>= minConf
17124 }).filter(function (unspent) {
17125 return !unspent.pending
17126 }).sort(function (o1, o2) {
17127 return o2.value - o1.value
17132 var subTotal = value
17134 var txb = new TransactionBuilder()
17135 txb.addOutput(to, value)
17137 for (var i =
0; i < unspents.length; ++i) {
17138 var unspent = unspents[i]
17139 addresses.push(unspent.address)
17141 txb.addInput(unspent.txHash, unspent.index)
17143 var fee = fixedFee === undefined ? estimatePaddedFee(txb.buildIncomplete(), this.network) : fixedFee
17145 accum += unspent.value
17146 subTotal = value + fee
17148 if (accum
>= subTotal) {
17149 var change = accum - subTotal
17151 if (change
> this.network.dustThreshold) {
17152 txb.addOutput(changeAddress || this.getChangeAddress(), change)
17159 assert(accum
>= subTotal, 'Not enough funds (incl. fee): ' + accum + ' < ' + subTotal)
17161 return this.signWith(txb, addresses).build()
17164 // FIXME: remove in
2.0.0
17165 Wallet.prototype.processPendingTx = function (tx) {
17166 this.__processTx(tx, true)
17169 // FIXME: remove in
2.0.0
17170 Wallet.prototype.processConfirmedTx = function (tx) {
17171 this.__processTx(tx, false)
17174 // FIXME: remove in
2.0.0
17175 Wallet.prototype.__processTx = function (tx, isPending) {
17176 console.warn('processTransaction is considered harmful, see issue #
260 for more information')
17178 var txId = tx.getId()
17179 var txHash = tx.getHash()
17181 tx.outs.forEach(function (txOut, i) {
17185 address = Address.fromOutputScript(txOut.script, this.network).toString()
17187 if (!(e.message.match(/has no matching Address/)))
17191 var myAddresses = this.addresses.concat(this.changeAddresses)
17192 if (myAddresses.indexOf(address)
> -
1) {
17193 var lookup = txId + ':' + i
17194 if (lookup in this.unspentMap) return
17196 // its unique, add it
17199 confirmations:
0, // no way to determine this without more information
17203 value: txOut.value,
17207 this.unspentMap[lookup] = unspent
17208 this.unspents.push(unspent)
17212 tx.ins.forEach(function (txIn) {
17213 // copy and convert to big-endian hex
17214 var txInId = bufferutils.reverse(txIn.hash).toString('hex')
17216 var lookup = txInId + ':' + txIn.index
17217 if (!(lookup in this.unspentMap)) return
17219 var unspent = this.unspentMap[lookup]
17222 unspent.pending = true
17223 unspent.spent = true
17225 delete this.unspentMap[lookup]
17227 this.unspents = this.unspents.filter(function (unspent2) {
17228 return unspent !== unspent2
17234 Wallet.prototype.generateAddress = function () {
17235 var k = this.addresses.length
17236 var address = this.getExternalAccount().derive(k).getAddress()
17238 this.addresses.push(address.toString())
17240 return this.getReceiveAddress()
17243 Wallet.prototype.generateChangeAddress = function () {
17244 var k = this.changeAddresses.length
17245 var address = this.getInternalAccount().derive(k).getAddress()
17247 this.changeAddresses.push(address.toString())
17249 return this.getChangeAddress()
17252 Wallet.prototype.getAddress = function () {
17253 if (this.addresses.length ===
0) {
17254 this.generateAddress()
17257 return this.addresses[this.addresses.length -
1]
17260 Wallet.prototype.getBalance = function (minConf) {
17261 minConf = minConf ||
0
17263 return this.unspents.filter(function (unspent) {
17264 return unspent.confirmations
>= minConf
17266 // FIXME: remove spent filter in
2.0.0
17267 }).filter(function (unspent) {
17268 return !unspent.spent
17269 }).reduce(function (accum, unspent) {
17270 return accum + unspent.value
17274 Wallet.prototype.getChangeAddress = function () {
17275 if (this.changeAddresses.length ===
0) {
17276 this.generateChangeAddress()
17279 return this.changeAddresses[this.changeAddresses.length -
1]
17282 Wallet.prototype.getInternalPrivateKey = function (index) {
17283 return this.getInternalAccount().derive(index).privKey
17286 Wallet.prototype.getPrivateKey = function (index) {
17287 return this.getExternalAccount().derive(index).privKey
17290 Wallet.prototype.getPrivateKeyForAddress = function (address) {
17293 if ((index = this.addresses.indexOf(address))
> -
1) {
17294 return this.getPrivateKey(index)
17297 if ((index = this.changeAddresses.indexOf(address))
> -
1) {
17298 return this.getInternalPrivateKey(index)
17301 assert(false, 'Unknown address. Make sure the address is from the keychain and has been generated')
17304 Wallet.prototype.getUnspentOutputs = function (minConf) {
17305 minConf = minConf ||
0
17307 return this.unspents.filter(function (unspent) {
17308 return unspent.confirmations
>= minConf
17310 // FIXME: remove spent filter in
2.0.0
17311 }).filter(function (unspent) {
17312 return !unspent.spent
17313 }).map(function (unspent) {
17315 address: unspent.address,
17316 confirmations: unspent.confirmations,
17317 index: unspent.index,
17318 txId: unspent.txId,
17319 value: unspent.value,
17321 // FIXME: remove in
2.0.0
17322 hash: unspent.txId,
17323 pending: unspent.pending
17328 Wallet.prototype.setUnspentOutputs = function (unspents) {
17329 this.unspentMap = {}
17330 this.unspents = unspents.map(function (unspent) {
17331 // FIXME: remove unspent.hash in
2.0.0
17332 var txId = unspent.txId || unspent.hash
17333 var index = unspent.index
17335 // FIXME: remove in
2.0.0
17336 if (unspent.hash !== undefined) {
17337 console.warn('unspent.hash is deprecated, use unspent.txId instead')
17340 // FIXME: remove in
2.0.0
17341 if (index === undefined) {
17342 console.warn('unspent.outputIndex is deprecated, use unspent.index instead')
17343 index = unspent.outputIndex
17346 typeForce('String', txId)
17347 typeForce('Number', index)
17348 typeForce('Number', unspent.value)
17350 assert.equal(txId.length,
64, 'Expected valid txId, got ' + txId)
17351 assert.doesNotThrow(function () {
17352 Address.fromBase58Check(unspent.address)
17353 }, 'Expected Base58 Address, got ' + unspent.address)
17354 assert(isFinite(index), 'Expected finite index, got ' + index)
17356 // FIXME: remove branch in
2.0.0
17357 if (unspent.confirmations !== undefined) {
17358 typeForce('Number', unspent.confirmations)
17361 var txHash = bufferutils.reverse(new Buffer(txId, 'hex'))
17364 address: unspent.address,
17365 confirmations: unspent.confirmations ||
0,
17369 value: unspent.value,
17371 // FIXME: remove in
2.0.0
17372 pending: unspent.pending || false
17375 // FIXME: remove in
2.0.0
17376 this.unspentMap[txId + ':' + index] = unspent
17382 Wallet.prototype.signWith = function (tx, addresses) {
17383 addresses.forEach(function (address, i) {
17384 var privKey = this.getPrivateKeyForAddress(address)
17386 tx.sign(i, privKey)
17392 function estimatePaddedFee (tx, network) {
17393 var tmpTx = tx.clone()
17394 tmpTx.addOutput(Script.EMPTY, network.dustSoftThreshold ||
0)
17396 return network.estimateFee(tmpTx)
17399 // FIXME:
1.0.0 shims, remove in
2.0.0
17400 Wallet.prototype.getReceiveAddress = Wallet.prototype.getAddress
17401 Wallet.prototype.createTx = Wallet.prototype.createTransaction
17403 module.exports = Wallet
17405 }).call(this,require("buffer").Buffer)
17406 },{"./address":
54,"./bufferutils":
57,"./hdnode":
63,"./networks":
66,"./script":
68,"./transaction_builder":
71,"assert":
5,"buffer":
7,"randombytes":
52,"typeforce":
53}]},{},[
64])(
64)
17408 <script>bitcoin.networks.shadow = {
17409 magicPrefix: '\x19ShadowCash Signed Message:\n',
17411 public:
0xEE80286A,
17412 private:
0xEE8031E8
17419 estimateFee: function() { return "unused in this app" },
17422 bitcoin.networks.shadowtn = {
17423 magicPrefix: '\x19ShadowCash Signed Message:\n',
17425 public:
0x76C0FDFB,
17426 private:
0x76C1077A
17433 estimateFee: function() { return "unused in this app" },
17436 bitcoin.networks.clam = {
17438 public:
0xa8c26d64,
17439 private:
0xa8c17826
17445 bitcoin.networks.dash = {
17447 public:
0x0488b21e,
17448 private:
0x0488ade4
17455 bitcoin.networks.namecoin = {
17457 public:
0x0488b21e,
17458 private:
0x0488ade4
17461 //scriptHash:
0x10,
17465 bitcoin.networks.peercoin = {
17467 public:
0x0488b21e,
17468 private:
0x0488ade4
17471 //scriptHash:
0x10,
17476 <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){
17477 (function (global){
17480 // compare and isBuffer taken from https://github.com/feross/buffer/blob/
680e9e5e488f22aac27599a57dc844a6315928dd/index.js
17481 // original notice:
17484 * The buffer module from node.js, for the browser.
17486 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
17489 function compare(a, b) {
17497 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
17498 if (a[i] !== b[i]) {
17513 function isBuffer(b) {
17514 if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {
17515 return global.Buffer.isBuffer(b);
17517 return !!(b != null && b._isBuffer);
17520 // based on node assert, original notice:
17522 // http://wiki.commonjs.org/wiki/Unit_Testing/
1.0
17524 // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
17526 // Originally from narwhal.js (http://narwhaljs.org)
17527 // Copyright (c)
2009 Thomas Robinson
<280north.com
>
17529 // Permission is hereby granted, free of charge, to any person obtaining a copy
17530 // of this software and associated documentation files (the 'Software'), to
17531 // deal in the Software without restriction, including without limitation the
17532 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
17533 // sell copies of the Software, and to permit persons to whom the Software is
17534 // furnished to do so, subject to the following conditions:
17536 // The above copyright notice and this permission notice shall be included in
17537 // all copies or substantial portions of the Software.
17539 // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17540 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17541 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17542 // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
17543 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
17544 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
17546 var util = require('util/');
17547 var hasOwn = Object.prototype.hasOwnProperty;
17548 var pSlice = Array.prototype.slice;
17549 var functionsHaveNames = (function () {
17550 return function foo() {}.name === 'foo';
17552 function pToString (obj) {
17553 return Object.prototype.toString.call(obj);
17555 function isView(arrbuf) {
17556 if (isBuffer(arrbuf)) {
17559 if (typeof global.ArrayBuffer !== 'function') {
17562 if (typeof ArrayBuffer.isView === 'function') {
17563 return ArrayBuffer.isView(arrbuf);
17568 if (arrbuf instanceof DataView) {
17571 if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {
17576 //
1. The assert module provides functions that throw
17577 // AssertionError's when particular conditions are not met. The
17578 // assert module must conform to the following interface.
17580 var assert = module.exports = ok;
17582 //
2. The AssertionError is defined in assert.
17583 // new assert.AssertionError({ message: message,
17585 // expected: expected })
17587 var regex = /\s*function\s+([^\(\s]*)\s*/;
17588 // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
17589 function getName(func) {
17590 if (!util.isFunction(func)) {
17593 if (functionsHaveNames) {
17596 var str = func.toString();
17597 var match = str.match(regex);
17598 return match && match[
1];
17600 assert.AssertionError = function AssertionError(options) {
17601 this.name = 'AssertionError';
17602 this.actual = options.actual;
17603 this.expected = options.expected;
17604 this.operator = options.operator;
17605 if (options.message) {
17606 this.message = options.message;
17607 this.generatedMessage = false;
17609 this.message = getMessage(this);
17610 this.generatedMessage = true;
17612 var stackStartFunction = options.stackStartFunction || fail;
17613 if (Error.captureStackTrace) {
17614 Error.captureStackTrace(this, stackStartFunction);
17616 // non v8 browsers so we can have a stacktrace
17617 var err = new Error();
17619 var out = err.stack;
17621 // try to strip useless frames
17622 var fn_name = getName(stackStartFunction);
17623 var idx = out.indexOf('\n' + fn_name);
17625 // once we have located the function frame
17626 // we need to strip out everything before it (and its line)
17627 var next_line = out.indexOf('\n', idx +
1);
17628 out = out.substring(next_line +
1);
17636 // assert.AssertionError instanceof Error
17637 util.inherits(assert.AssertionError, Error);
17639 function truncate(s, n) {
17640 if (typeof s === 'string') {
17641 return s.length < n ? s : s.slice(
0, n);
17646 function inspect(something) {
17647 if (functionsHaveNames || !util.isFunction(something)) {
17648 return util.inspect(something);
17650 var rawname = getName(something);
17651 var name = rawname ? ': ' + rawname : '';
17652 return '[Function' + name + ']';
17654 function getMessage(self) {
17655 return truncate(inspect(self.actual),
128) + ' ' +
17656 self.operator + ' ' +
17657 truncate(inspect(self.expected),
128);
17660 // At present only the three keys mentioned above are used and
17661 // understood by the spec. Implementations or sub modules can pass
17662 // other keys to the AssertionError's constructor - they will be
17665 //
3. All of the following functions must throw an AssertionError
17666 // when a corresponding condition is not met, with a message that
17667 // may be undefined if not provided. All assertion methods provide
17668 // both the actual and expected values to the assertion error for
17669 // display purposes.
17671 function fail(actual, expected, message, operator, stackStartFunction) {
17672 throw new assert.AssertionError({
17675 expected: expected,
17676 operator: operator,
17677 stackStartFunction: stackStartFunction
17681 // EXTENSION! allows for well behaved errors defined elsewhere.
17682 assert.fail = fail;
17684 //
4. Pure assertion tests whether a value is truthy, as determined
17686 // assert.ok(guard, message_opt);
17687 // This statement is equivalent to assert.equal(true, !!guard,
17688 // message_opt);. To test strictly for the value true, use
17689 // assert.strictEqual(true, guard, message_opt);.
17691 function ok(value, message) {
17692 if (!value) fail(value, true, message, '==', assert.ok);
17696 //
5. The equality assertion tests shallow, coercive equality with
17698 // assert.equal(actual, expected, message_opt);
17700 assert.equal = function equal(actual, expected, message) {
17701 if (actual != expected) fail(actual, expected, message, '==', assert.equal);
17704 //
6. The non-equality assertion tests for whether two objects are not equal
17705 // with != assert.notEqual(actual, expected, message_opt);
17707 assert.notEqual = function notEqual(actual, expected, message) {
17708 if (actual == expected) {
17709 fail(actual, expected, message, '!=', assert.notEqual);
17713 //
7. The equivalence assertion tests a deep equality relation.
17714 // assert.deepEqual(actual, expected, message_opt);
17716 assert.deepEqual = function deepEqual(actual, expected, message) {
17717 if (!_deepEqual(actual, expected, false)) {
17718 fail(actual, expected, message, 'deepEqual', assert.deepEqual);
17722 assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {
17723 if (!_deepEqual(actual, expected, true)) {
17724 fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);
17728 function _deepEqual(actual, expected, strict, memos) {
17729 //
7.1. All identical values are equivalent, as determined by ===.
17730 if (actual === expected) {
17732 } else if (isBuffer(actual) && isBuffer(expected)) {
17733 return compare(actual, expected) ===
0;
17735 //
7.2. If the expected value is a Date object, the actual value is
17736 // equivalent if it is also a Date object that refers to the same time.
17737 } else if (util.isDate(actual) && util.isDate(expected)) {
17738 return actual.getTime() === expected.getTime();
17740 //
7.3 If the expected value is a RegExp object, the actual value is
17741 // equivalent if it is also a RegExp object with the same source and
17742 // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).
17743 } else if (util.isRegExp(actual) && util.isRegExp(expected)) {
17744 return actual.source === expected.source &&
17745 actual.global === expected.global &&
17746 actual.multiline === expected.multiline &&
17747 actual.lastIndex === expected.lastIndex &&
17748 actual.ignoreCase === expected.ignoreCase;
17750 //
7.4. Other pairs that do not both pass typeof value == 'object',
17751 // equivalence is determined by ==.
17752 } else if ((actual === null || typeof actual !== 'object') &&
17753 (expected === null || typeof expected !== 'object')) {
17754 return strict ? actual === expected : actual == expected;
17756 // If both values are instances of typed arrays, wrap their underlying
17757 // ArrayBuffers in a Buffer each to increase performance
17758 // This optimization requires the arrays to have the same type as checked by
17759 // Object.prototype.toString (aka pToString). Never perform binary
17760 // comparisons for Float*Arrays, though, since e.g. +
0 === -
0 but their
17761 // bit patterns are not identical.
17762 } else if (isView(actual) && isView(expected) &&
17763 pToString(actual) === pToString(expected) &&
17764 !(actual instanceof Float32Array ||
17765 actual instanceof Float64Array)) {
17766 return compare(new Uint8Array(actual.buffer),
17767 new Uint8Array(expected.buffer)) ===
0;
17769 //
7.5 For all other Object pairs, including Array objects, equivalence is
17770 // determined by having the same number of owned properties (as verified
17771 // with Object.prototype.hasOwnProperty.call), the same set of keys
17772 // (although not necessarily the same order), equivalent values for every
17773 // corresponding key, and an identical 'prototype' property. Note: this
17774 // accounts for both named and indexed properties on Arrays.
17775 } else if (isBuffer(actual) !== isBuffer(expected)) {
17778 memos = memos || {actual: [], expected: []};
17780 var actualIndex = memos.actual.indexOf(actual);
17781 if (actualIndex !== -
1) {
17782 if (actualIndex === memos.expected.indexOf(expected)) {
17787 memos.actual.push(actual);
17788 memos.expected.push(expected);
17790 return objEquiv(actual, expected, strict, memos);
17794 function isArguments(object) {
17795 return Object.prototype.toString.call(object) == '[object Arguments]';
17798 function objEquiv(a, b, strict, actualVisitedObjects) {
17799 if (a === null || a === undefined || b === null || b === undefined)
17801 // if one is a primitive, the other must be same
17802 if (util.isPrimitive(a) || util.isPrimitive(b))
17804 if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b))
17806 var aIsArgs = isArguments(a);
17807 var bIsArgs = isArguments(b);
17808 if ((aIsArgs && !bIsArgs) || (!aIsArgs && bIsArgs))
17811 a = pSlice.call(a);
17812 b = pSlice.call(b);
17813 return _deepEqual(a, b, strict);
17815 var ka = objectKeys(a);
17816 var kb = objectKeys(b);
17818 // having the same number of owned properties (keys incorporates
17820 if (ka.length !== kb.length)
17822 //the same set of keys (although not necessarily the same order),
17825 //~~~cheap key test
17826 for (i = ka.length -
1; i
>=
0; i--) {
17827 if (ka[i] !== kb[i])
17830 //equivalent values for every corresponding key, and
17831 //~~~possibly expensive deep test
17832 for (i = ka.length -
1; i
>=
0; i--) {
17834 if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects))
17840 //
8. The non-equivalence assertion tests for any deep inequality.
17841 // assert.notDeepEqual(actual, expected, message_opt);
17843 assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
17844 if (_deepEqual(actual, expected, false)) {
17845 fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);
17849 assert.notDeepStrictEqual = notDeepStrictEqual;
17850 function notDeepStrictEqual(actual, expected, message) {
17851 if (_deepEqual(actual, expected, true)) {
17852 fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);
17857 //
9. The strict equality assertion tests strict equality, as determined by ===.
17858 // assert.strictEqual(actual, expected, message_opt);
17860 assert.strictEqual = function strictEqual(actual, expected, message) {
17861 if (actual !== expected) {
17862 fail(actual, expected, message, '===', assert.strictEqual);
17866 //
10. The strict non-equality assertion tests for strict inequality, as
17867 // determined by !==. assert.notStrictEqual(actual, expected, message_opt);
17869 assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
17870 if (actual === expected) {
17871 fail(actual, expected, message, '!==', assert.notStrictEqual);
17875 function expectedException(actual, expected) {
17876 if (!actual || !expected) {
17880 if (Object.prototype.toString.call(expected) == '[object RegExp]') {
17881 return expected.test(actual);
17885 if (actual instanceof expected) {
17889 // Ignore. The instanceof check doesn't work for arrow functions.
17892 if (Error.isPrototypeOf(expected)) {
17896 return expected.call({}, actual) === true;
17899 function _tryBlock(block) {
17909 function _throws(shouldThrow, block, expected, message) {
17912 if (typeof block !== 'function') {
17913 throw new TypeError('"block" argument must be a function');
17916 if (typeof expected === 'string') {
17917 message = expected;
17921 actual = _tryBlock(block);
17923 message = (expected && expected.name ? ' (' + expected.name + ').' : '.') +
17924 (message ? ' ' + message : '.');
17926 if (shouldThrow && !actual) {
17927 fail(actual, expected, 'Missing expected exception' + message);
17930 var userProvidedMessage = typeof message === 'string';
17931 var isUnwantedException = !shouldThrow && util.isError(actual);
17932 var isUnexpectedException = !shouldThrow && actual && !expected;
17934 if ((isUnwantedException &&
17935 userProvidedMessage &&
17936 expectedException(actual, expected)) ||
17937 isUnexpectedException) {
17938 fail(actual, expected, 'Got unwanted exception' + message);
17941 if ((shouldThrow && actual && expected &&
17942 !expectedException(actual, expected)) || (!shouldThrow && actual)) {
17947 //
11. Expected to throw an error:
17948 // assert.throws(block, Error_opt, message_opt);
17950 assert.throws = function(block, /*optional*/error, /*optional*/message) {
17951 _throws(true, block, error, message);
17954 // EXTENSION! This is annoying to write outside this module.
17955 assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
17956 _throws(false, block, error, message);
17959 assert.ifError = function(err) { if (err) throw err; };
17961 var objectKeys = Object.keys || function (obj) {
17963 for (var key in obj) {
17964 if (hasOwn.call(obj, key)) keys.push(key);
17969 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
17970 },{"util/":
30}],
2:[function(require,module,exports){
17973 exports.byteLength = byteLength
17974 exports.toByteArray = toByteArray
17975 exports.fromByteArray = fromByteArray
17979 var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
17981 var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
17982 for (var i =
0, len = code.length; i < len; ++i) {
17983 lookup[i] = code[i]
17984 revLookup[code.charCodeAt(i)] = i
17987 revLookup['-'.charCodeAt(
0)] =
62
17988 revLookup['_'.charCodeAt(
0)] =
63
17990 function placeHoldersCount (b64) {
17991 var len = b64.length
17993 throw new Error('Invalid string. Length must be a multiple of
4')
17996 // the number of equal signs (place holders)
17997 // if there are two placeholders, than the two characters before it
17998 // represent one byte
17999 // if there is only one, then the three characters before it represent
2 bytes
18000 // this is just a cheap hack to not do indexOf twice
18001 return b64[len -
2] === '=' ?
2 : b64[len -
1] === '=' ?
1 :
0
18004 function byteLength (b64) {
18005 // base64 is
4/
3 + up to two characters of the original data
18006 return b64.length *
3 /
4 - placeHoldersCount(b64)
18009 function toByteArray (b64) {
18010 var i, j, l, tmp, placeHolders, arr
18011 var len = b64.length
18012 placeHolders = placeHoldersCount(b64)
18014 arr = new Arr(len *
3 /
4 - placeHolders)
18016 // if there are placeholders, only get up to the last complete
4 chars
18017 l = placeHolders
> 0 ? len -
4 : len
18021 for (i =
0, j =
0; i < l; i +=
4, j +=
3) {
18022 tmp = (revLookup[b64.charCodeAt(i)] <<
18) | (revLookup[b64.charCodeAt(i +
1)] <<
12) | (revLookup[b64.charCodeAt(i +
2)] <<
6) | revLookup[b64.charCodeAt(i +
3)]
18023 arr[L++] = (tmp
>> 16) &
0xFF
18024 arr[L++] = (tmp
>> 8) &
0xFF
18025 arr[L++] = tmp &
0xFF
18028 if (placeHolders ===
2) {
18029 tmp = (revLookup[b64.charCodeAt(i)] <<
2) | (revLookup[b64.charCodeAt(i +
1)]
>> 4)
18030 arr[L++] = tmp &
0xFF
18031 } else if (placeHolders ===
1) {
18032 tmp = (revLookup[b64.charCodeAt(i)] <<
10) | (revLookup[b64.charCodeAt(i +
1)] <<
4) | (revLookup[b64.charCodeAt(i +
2)]
>> 2)
18033 arr[L++] = (tmp
>> 8) &
0xFF
18034 arr[L++] = tmp &
0xFF
18040 function tripletToBase64 (num) {
18041 return lookup[num
>> 18 &
0x3F] + lookup[num
>> 12 &
0x3F] + lookup[num
>> 6 &
0x3F] + lookup[num &
0x3F]
18044 function encodeChunk (uint8, start, end) {
18047 for (var i = start; i < end; i +=
3) {
18048 tmp = (uint8[i] <<
16) + (uint8[i +
1] <<
8) + (uint8[i +
2])
18049 output.push(tripletToBase64(tmp))
18051 return output.join('')
18054 function fromByteArray (uint8) {
18056 var len = uint8.length
18057 var extraBytes = len %
3 // if we have
1 byte left, pad
2 bytes
18060 var maxChunkLength =
16383 // must be multiple of
3
18062 // go through the array every three bytes, we'll deal with trailing stuff later
18063 for (var i =
0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
18064 parts.push(encodeChunk(uint8, i, (i + maxChunkLength)
> len2 ? len2 : (i + maxChunkLength)))
18067 // pad the end with zeros, but make sure to not forget the extra bytes
18068 if (extraBytes ===
1) {
18069 tmp = uint8[len -
1]
18070 output += lookup[tmp
>> 2]
18071 output += lookup[(tmp <<
4) &
0x3F]
18073 } else if (extraBytes ===
2) {
18074 tmp = (uint8[len -
2] <<
8) + (uint8[len -
1])
18075 output += lookup[tmp
>> 10]
18076 output += lookup[(tmp
>> 4) &
0x3F]
18077 output += lookup[(tmp <<
2) &
0x3F]
18083 return parts.join('')
18086 },{}],
3:[function(require,module,exports){
18088 },{}],
4:[function(require,module,exports){
18089 (function (global){
18092 var buffer = require('buffer');
18093 var Buffer = buffer.Buffer;
18094 var SlowBuffer = buffer.SlowBuffer;
18095 var MAX_LEN = buffer.kMaxLength ||
2147483647;
18096 exports.alloc = function alloc(size, fill, encoding) {
18097 if (typeof Buffer.alloc === 'function') {
18098 return Buffer.alloc(size, fill, encoding);
18100 if (typeof encoding === 'number') {
18101 throw new TypeError('encoding must not be number');
18103 if (typeof size !== 'number') {
18104 throw new TypeError('size must be a number');
18106 if (size
> MAX_LEN) {
18107 throw new RangeError('size is too large');
18109 var enc = encoding;
18111 if (_fill === undefined) {
18115 var buf = new Buffer(size);
18116 if (typeof _fill === 'string') {
18117 var fillBuf = new Buffer(_fill, enc);
18118 var flen = fillBuf.length;
18120 while (++i < size) {
18121 buf[i] = fillBuf[i % flen];
18128 exports.allocUnsafe = function allocUnsafe(size) {
18129 if (typeof Buffer.allocUnsafe === 'function') {
18130 return Buffer.allocUnsafe(size);
18132 if (typeof size !== 'number') {
18133 throw new TypeError('size must be a number');
18135 if (size
> MAX_LEN) {
18136 throw new RangeError('size is too large');
18138 return new Buffer(size);
18140 exports.from = function from(value, encodingOrOffset, length) {
18141 if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
18142 return Buffer.from(value, encodingOrOffset, length);
18144 if (typeof value === 'number') {
18145 throw new TypeError('"value" argument must not be a number');
18147 if (typeof value === 'string') {
18148 return new Buffer(value, encodingOrOffset);
18150 if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
18151 var offset = encodingOrOffset;
18152 if (arguments.length ===
1) {
18153 return new Buffer(value);
18155 if (typeof offset === 'undefined') {
18159 if (typeof len === 'undefined') {
18160 len = value.byteLength - offset;
18162 if (offset
>= value.byteLength) {
18163 throw new RangeError('\'offset\' is out of bounds');
18165 if (len
> value.byteLength - offset) {
18166 throw new RangeError('\'length\' is out of bounds');
18168 return new Buffer(value.slice(offset, offset + len));
18170 if (Buffer.isBuffer(value)) {
18171 var out = new Buffer(value.length);
18172 value.copy(out,
0,
0, value.length);
18176 if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
18177 return new Buffer(value);
18179 if (value.type === 'Buffer' && Array.isArray(value.data)) {
18180 return new Buffer(value.data);
18184 throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
18186 exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
18187 if (typeof Buffer.allocUnsafeSlow === 'function') {
18188 return Buffer.allocUnsafeSlow(size);
18190 if (typeof size !== 'number') {
18191 throw new TypeError('size must be a number');
18193 if (size
>= MAX_LEN) {
18194 throw new RangeError('size is too large');
18196 return new SlowBuffer(size);
18199 }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
18200 },{"buffer":
5}],
5:[function(require,module,exports){
18202 * The buffer module from node.js, for the browser.
18204 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
18207 /* eslint-disable no-proto */
18211 var base64 = require('base64-js')
18212 var ieee754 = require('ieee754')
18214 exports.Buffer = Buffer
18215 exports.SlowBuffer = SlowBuffer
18216 exports.INSPECT_MAX_BYTES =
50
18218 var K_MAX_LENGTH =
0x7fffffff
18219 exports.kMaxLength = K_MAX_LENGTH
18222 * If `Buffer.TYPED_ARRAY_SUPPORT`:
18223 * === true Use Uint8Array implementation (fastest)
18224 * === false Print warning and recommend using `buffer` v4.x which has an Object
18225 * implementation (most compatible, even IE6)
18227 * Browsers that support typed arrays are IE
10+, Firefox
4+, Chrome
7+, Safari
5.1+,
18228 * Opera
11.6+, iOS
4.2+.
18230 * We report that the browser does not support typed arrays if the are not subclassable
18231 * using __proto__. Firefox
4-
29 lacks support for adding new properties to `Uint8Array`
18232 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=
695438). IE
10 lacks support
18233 * for __proto__ and has a buggy typed array implementation.
18235 Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()
18237 if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&
18238 typeof console.error === 'function') {
18240 'This browser lacks typed array (Uint8Array) support which is required by ' +
18241 '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'
18245 function typedArraySupport () {
18246 // Can typed array instances can be augmented?
18248 var arr = new Uint8Array(
1)
18249 arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return
42 }}
18250 return arr.foo() ===
42
18256 function createBuffer (length) {
18257 if (length
> K_MAX_LENGTH) {
18258 throw new RangeError('Invalid typed array length')
18260 // Return an augmented `Uint8Array` instance
18261 var buf = new Uint8Array(length)
18262 buf.__proto__ = Buffer.prototype
18267 * The Buffer constructor returns instances of `Uint8Array` that have their
18268 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
18269 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
18270 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
18271 * returns a single octet.
18273 * The `Uint8Array` prototype remains unmodified.
18276 function Buffer (arg, encodingOrOffset, length) {
18278 if (typeof arg === 'number') {
18279 if (typeof encodingOrOffset === 'string') {
18281 'If encoding is specified then the first argument must be a string'
18284 return allocUnsafe(arg)
18286 return from(arg, encodingOrOffset, length)
18289 // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/
97
18290 if (typeof Symbol !== 'undefined' && Symbol.species &&
18291 Buffer[Symbol.species] === Buffer) {
18292 Object.defineProperty(Buffer, Symbol.species, {
18294 configurable: true,
18300 Buffer.poolSize =
8192 // not used by this implementation
18302 function from (value, encodingOrOffset, length) {
18303 if (typeof value === 'number') {
18304 throw new TypeError('"value" argument must not be a number')
18307 if (value instanceof ArrayBuffer) {
18308 return fromArrayBuffer(value, encodingOrOffset, length)
18311 if (typeof value === 'string') {
18312 return fromString(value, encodingOrOffset)
18315 return fromObject(value)
18319 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
18320 * if value is a number.
18321 * Buffer.from(str[, encoding])
18322 * Buffer.from(array)
18323 * Buffer.from(buffer)
18324 * Buffer.from(arrayBuffer[, byteOffset[, length]])
18326 Buffer.from = function (value, encodingOrOffset, length) {
18327 return from(value, encodingOrOffset, length)
18330 // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
18331 // https://github.com/feross/buffer/pull/
148
18332 Buffer.prototype.__proto__ = Uint8Array.prototype
18333 Buffer.__proto__ = Uint8Array
18335 function assertSize (size) {
18336 if (typeof size !== 'number') {
18337 throw new TypeError('"size" argument must be a number')
18338 } else if (size <
0) {
18339 throw new RangeError('"size" argument must not be negative')
18343 function alloc (size, fill, encoding) {
18346 return createBuffer(size)
18348 if (fill !== undefined) {
18349 // Only pay attention to encoding if it's a string. This
18350 // prevents accidentally sending in a number that would
18351 // be interpretted as a start offset.
18352 return typeof encoding === 'string'
18353 ? createBuffer(size).fill(fill, encoding)
18354 : createBuffer(size).fill(fill)
18356 return createBuffer(size)
18360 * Creates a new filled Buffer instance.
18361 * alloc(size[, fill[, encoding]])
18363 Buffer.alloc = function (size, fill, encoding) {
18364 return alloc(size, fill, encoding)
18367 function allocUnsafe (size) {
18369 return createBuffer(size <
0 ?
0 : checked(size) |
0)
18373 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
18375 Buffer.allocUnsafe = function (size) {
18376 return allocUnsafe(size)
18379 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
18381 Buffer.allocUnsafeSlow = function (size) {
18382 return allocUnsafe(size)
18385 function fromString (string, encoding) {
18386 if (typeof encoding !== 'string' || encoding === '') {
18390 if (!Buffer.isEncoding(encoding)) {
18391 throw new TypeError('"encoding" must be a valid string encoding')
18394 var length = byteLength(string, encoding) |
0
18395 var buf = createBuffer(length)
18397 var actual = buf.write(string, encoding)
18399 if (actual !== length) {
18400 // Writing a hex string, for example, that contains invalid characters will
18401 // cause everything after the first invalid character to be ignored. (e.g.
18402 // 'abxxcd' will be treated as 'ab')
18403 buf = buf.slice(
0, actual)
18409 function fromArrayLike (array) {
18410 var length = array.length <
0 ?
0 : checked(array.length) |
0
18411 var buf = createBuffer(length)
18412 for (var i =
0; i < length; i +=
1) {
18413 buf[i] = array[i] &
255
18418 function fromArrayBuffer (array, byteOffset, length) {
18419 if (byteOffset <
0 || array.byteLength < byteOffset) {
18420 throw new RangeError('\'offset\' is out of bounds')
18423 if (array.byteLength < byteOffset + (length ||
0)) {
18424 throw new RangeError('\'length\' is out of bounds')
18428 if (byteOffset === undefined && length === undefined) {
18429 buf = new Uint8Array(array)
18430 } else if (length === undefined) {
18431 buf = new Uint8Array(array, byteOffset)
18433 buf = new Uint8Array(array, byteOffset, length)
18436 // Return an augmented `Uint8Array` instance
18437 buf.__proto__ = Buffer.prototype
18441 function fromObject (obj) {
18442 if (Buffer.isBuffer(obj)) {
18443 var len = checked(obj.length) |
0
18444 var buf = createBuffer(len)
18446 if (buf.length ===
0) {
18450 obj.copy(buf,
0,
0, len)
18455 if (ArrayBuffer.isView(obj) || 'length' in obj) {
18456 if (typeof obj.length !== 'number' || isnan(obj.length)) {
18457 return createBuffer(
0)
18459 return fromArrayLike(obj)
18462 if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
18463 return fromArrayLike(obj.data)
18467 throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
18470 function checked (length) {
18471 // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
18472 // length is NaN (which is otherwise coerced to zero.)
18473 if (length
>= K_MAX_LENGTH) {
18474 throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
18475 'size:
0x' + K_MAX_LENGTH.toString(
16) + ' bytes')
18480 function SlowBuffer (length) {
18481 if (+length != length) { // eslint-disable-line eqeqeq
18484 return Buffer.alloc(+length)
18487 Buffer.isBuffer = function isBuffer (b) {
18488 return b != null && b._isBuffer === true
18491 Buffer.compare = function compare (a, b) {
18492 if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
18493 throw new TypeError('Arguments must be Buffers')
18496 if (a === b) return
0
18501 for (var i =
0, len = Math.min(x, y); i < len; ++i) {
18502 if (a[i] !== b[i]) {
18509 if (x < y) return -
1
18510 if (y < x) return
1
18514 Buffer.isEncoding = function isEncoding (encoding) {
18515 switch (String(encoding).toLowerCase()) {
18533 Buffer.concat = function concat (list, length) {
18534 if (!Array.isArray(list)) {
18535 throw new TypeError('"list" argument must be an Array of Buffers')
18538 if (list.length ===
0) {
18539 return Buffer.alloc(
0)
18543 if (length === undefined) {
18545 for (i =
0; i < list.length; ++i) {
18546 length += list[i].length
18550 var buffer = Buffer.allocUnsafe(length)
18552 for (i =
0; i < list.length; ++i) {
18554 if (!Buffer.isBuffer(buf)) {
18555 throw new TypeError('"list" argument must be an Array of Buffers')
18557 buf.copy(buffer, pos)
18563 function byteLength (string, encoding) {
18564 if (Buffer.isBuffer(string)) {
18565 return string.length
18567 if (ArrayBuffer.isView(string) || string instanceof ArrayBuffer) {
18568 return string.byteLength
18570 if (typeof string !== 'string') {
18571 string = '' + string
18574 var len = string.length
18575 if (len ===
0) return
0
18577 // Use a for loop to avoid recursion
18578 var loweredCase = false
18580 switch (encoding) {
18588 return utf8ToBytes(string).length
18597 return base64ToBytes(string).length
18599 if (loweredCase) return utf8ToBytes(string).length // assume utf8
18600 encoding = ('' + encoding).toLowerCase()
18605 Buffer.byteLength = byteLength
18607 function slowToString (encoding, start, end) {
18608 var loweredCase = false
18610 // No need to verify that
"this.length <= MAX_UINT32" since it's a read-only
18611 // property of a typed array.
18613 // This behaves neither like String nor Uint8Array in that we set start/end
18614 // to their upper/lower bounds if the value passed is out of range.
18615 // undefined is handled specially as per ECMA-
262 6th Edition,
18616 // Section
13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
18617 if (start === undefined || start <
0) {
18620 // Return early if start
> this.length. Done here to prevent potential uint32
18621 // coercion fail below.
18622 if (start
> this.length) {
18626 if (end === undefined || end
> this.length) {
18634 // Force coersion to uint32. This will also coerce falsey/NaN values to
0.
18638 if (end <= start) {
18642 if (!encoding) encoding = 'utf8'
18645 switch (encoding) {
18647 return hexSlice(this, start, end)
18651 return utf8Slice(this, start, end)
18654 return asciiSlice(this, start, end)
18658 return latin1Slice(this, start, end)
18661 return base64Slice(this, start, end)
18667 return utf16leSlice(this, start, end)
18670 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
18671 encoding = (encoding + '').toLowerCase()
18677 // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
18678 // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
18679 // reliably in a browserify context because there could be multiple different
18680 // copies of the 'buffer' package in use. This method works even for Buffer
18681 // instances that were created from another copy of the `buffer` package.
18682 // See: https://github.com/feross/buffer/issues/
154
18683 Buffer.prototype._isBuffer = true
18685 function swap (b, n, m) {
18691 Buffer.prototype.swap16 = function swap16 () {
18692 var len = this.length
18693 if (len %
2 !==
0) {
18694 throw new RangeError('Buffer size must be a multiple of
16-bits')
18696 for (var i =
0; i < len; i +=
2) {
18697 swap(this, i, i +
1)
18702 Buffer.prototype.swap32 = function swap32 () {
18703 var len = this.length
18704 if (len %
4 !==
0) {
18705 throw new RangeError('Buffer size must be a multiple of
32-bits')
18707 for (var i =
0; i < len; i +=
4) {
18708 swap(this, i, i +
3)
18709 swap(this, i +
1, i +
2)
18714 Buffer.prototype.swap64 = function swap64 () {
18715 var len = this.length
18716 if (len %
8 !==
0) {
18717 throw new RangeError('Buffer size must be a multiple of
64-bits')
18719 for (var i =
0; i < len; i +=
8) {
18720 swap(this, i, i +
7)
18721 swap(this, i +
1, i +
6)
18722 swap(this, i +
2, i +
5)
18723 swap(this, i +
3, i +
4)
18728 Buffer.prototype.toString = function toString () {
18729 var length = this.length
18730 if (length ===
0) return ''
18731 if (arguments.length ===
0) return utf8Slice(this,
0, length)
18732 return slowToString.apply(this, arguments)
18735 Buffer.prototype.equals = function equals (b) {
18736 if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
18737 if (this === b) return true
18738 return Buffer.compare(this, b) ===
0
18741 Buffer.prototype.inspect = function inspect () {
18743 var max = exports.INSPECT_MAX_BYTES
18744 if (this.length
> 0) {
18745 str = this.toString('hex',
0, max).match(/.{
2}/g).join(' ')
18746 if (this.length
> max) str += ' ... '
18748 return '
<Buffer ' + str + '
>'
18751 Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
18752 if (!Buffer.isBuffer(target)) {
18753 throw new TypeError('Argument must be a Buffer')
18756 if (start === undefined) {
18759 if (end === undefined) {
18760 end = target ? target.length :
0
18762 if (thisStart === undefined) {
18765 if (thisEnd === undefined) {
18766 thisEnd = this.length
18769 if (start <
0 || end
> target.length || thisStart <
0 || thisEnd
> this.length) {
18770 throw new RangeError('out of range index')
18773 if (thisStart
>= thisEnd && start
>= end) {
18776 if (thisStart
>= thisEnd) {
18779 if (start
>= end) {
18788 if (this === target) return
0
18790 var x = thisEnd - thisStart
18791 var y = end - start
18792 var len = Math.min(x, y)
18794 var thisCopy = this.slice(thisStart, thisEnd)
18795 var targetCopy = target.slice(start, end)
18797 for (var i =
0; i < len; ++i) {
18798 if (thisCopy[i] !== targetCopy[i]) {
18805 if (x < y) return -
1
18806 if (y < x) return
1
18810 // Finds either the first index of `val` in `buffer` at offset
>= `byteOffset`,
18811 // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
18814 // - buffer - a Buffer to search
18815 // - val - a string, Buffer, or number
18816 // - byteOffset - an index into `buffer`; will be clamped to an int32
18817 // - encoding - an optional encoding, relevant is val is a string
18818 // - dir - true for indexOf, false for lastIndexOf
18819 function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
18820 // Empty buffer means no match
18821 if (buffer.length ===
0) return -
1
18823 // Normalize byteOffset
18824 if (typeof byteOffset === 'string') {
18825 encoding = byteOffset
18827 } else if (byteOffset
> 0x7fffffff) {
18828 byteOffset =
0x7fffffff
18829 } else if (byteOffset < -
0x80000000) {
18830 byteOffset = -
0x80000000
18832 byteOffset = +byteOffset // Coerce to Number.
18833 if (isNaN(byteOffset)) {
18834 // byteOffset: it it's undefined, null, NaN,
"foo", etc, search whole buffer
18835 byteOffset = dir ?
0 : (buffer.length -
1)
18838 // Normalize byteOffset: negative offsets start from the end of the buffer
18839 if (byteOffset <
0) byteOffset = buffer.length + byteOffset
18840 if (byteOffset
>= buffer.length) {
18842 else byteOffset = buffer.length -
1
18843 } else if (byteOffset <
0) {
18844 if (dir) byteOffset =
0
18849 if (typeof val === 'string') {
18850 val = Buffer.from(val, encoding)
18853 // Finally, search either indexOf (if dir is true) or lastIndexOf
18854 if (Buffer.isBuffer(val)) {
18855 // Special case: looking for empty string/buffer always fails
18856 if (val.length ===
0) {
18859 return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
18860 } else if (typeof val === 'number') {
18861 val = val &
0xFF // Search for a byte value [
0-
255]
18862 if (typeof Uint8Array.prototype.indexOf === 'function') {
18864 return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
18866 return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
18869 return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
18872 throw new TypeError('val must be string, number or Buffer')
18875 function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
18877 var arrLength = arr.length
18878 var valLength = val.length
18880 if (encoding !== undefined) {
18881 encoding = String(encoding).toLowerCase()
18882 if (encoding === 'ucs2' || encoding === 'ucs-
2' ||
18883 encoding === 'utf16le' || encoding === 'utf-
16le') {
18884 if (arr.length <
2 || val.length <
2) {
18894 function read (buf, i) {
18895 if (indexSize ===
1) {
18898 return buf.readUInt16BE(i * indexSize)
18904 var foundIndex = -
1
18905 for (i = byteOffset; i < arrLength; i++) {
18906 if (read(arr, i) === read(val, foundIndex === -
1 ?
0 : i - foundIndex)) {
18907 if (foundIndex === -
1) foundIndex = i
18908 if (i - foundIndex +
1 === valLength) return foundIndex * indexSize
18910 if (foundIndex !== -
1) i -= i - foundIndex
18915 if (byteOffset + valLength
> arrLength) byteOffset = arrLength - valLength
18916 for (i = byteOffset; i
>=
0; i--) {
18918 for (var j =
0; j < valLength; j++) {
18919 if (read(arr, i + j) !== read(val, j)) {
18924 if (found) return i
18931 Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
18932 return this.indexOf(val, byteOffset, encoding) !== -
1
18935 Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
18936 return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
18939 Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
18940 return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
18943 function hexWrite (buf, string, offset, length) {
18944 offset = Number(offset) ||
0
18945 var remaining = buf.length - offset
18949 length = Number(length)
18950 if (length
> remaining) {
18955 // must be an even number of digits
18956 var strLen = string.length
18957 if (strLen %
2 !==
0) throw new TypeError('Invalid hex string')
18959 if (length
> strLen /
2) {
18960 length = strLen /
2
18962 for (var i =
0; i < length; ++i) {
18963 var parsed = parseInt(string.substr(i *
2,
2),
16)
18964 if (isNaN(parsed)) return i
18965 buf[offset + i] = parsed
18970 function utf8Write (buf, string, offset, length) {
18971 return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
18974 function asciiWrite (buf, string, offset, length) {
18975 return blitBuffer(asciiToBytes(string), buf, offset, length)
18978 function latin1Write (buf, string, offset, length) {
18979 return asciiWrite(buf, string, offset, length)
18982 function base64Write (buf, string, offset, length) {
18983 return blitBuffer(base64ToBytes(string), buf, offset, length)
18986 function ucs2Write (buf, string, offset, length) {
18987 return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
18990 Buffer.prototype.write = function write (string, offset, length, encoding) {
18991 // Buffer#write(string)
18992 if (offset === undefined) {
18994 length = this.length
18996 // Buffer#write(string, encoding)
18997 } else if (length === undefined && typeof offset === 'string') {
18999 length = this.length
19001 // Buffer#write(string, offset[, length][, encoding])
19002 } else if (isFinite(offset)) {
19003 offset = offset
>>> 0
19004 if (isFinite(length)) {
19005 length = length
>>> 0
19006 if (encoding === undefined) encoding = 'utf8'
19013 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
19017 var remaining = this.length - offset
19018 if (length === undefined || length
> remaining) length = remaining
19020 if ((string.length
> 0 && (length <
0 || offset <
0)) || offset
> this.length) {
19021 throw new RangeError('Attempt to write outside buffer bounds')
19024 if (!encoding) encoding = 'utf8'
19026 var loweredCase = false
19028 switch (encoding) {
19030 return hexWrite(this, string, offset, length)
19034 return utf8Write(this, string, offset, length)
19037 return asciiWrite(this, string, offset, length)
19041 return latin1Write(this, string, offset, length)
19044 // Warning: maxLength not taken into account in base64Write
19045 return base64Write(this, string, offset, length)
19051 return ucs2Write(this, string, offset, length)
19054 if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
19055 encoding = ('' + encoding).toLowerCase()
19061 Buffer.prototype.toJSON = function toJSON () {
19064 data: Array.prototype.slice.call(this._arr || this,
0)
19068 function base64Slice (buf, start, end) {
19069 if (start ===
0 && end === buf.length) {
19070 return base64.fromByteArray(buf)
19072 return base64.fromByteArray(buf.slice(start, end))
19076 function utf8Slice (buf, start, end) {
19077 end = Math.min(buf.length, end)
19082 var firstByte = buf[i]
19083 var codePoint = null
19084 var bytesPerSequence = (firstByte
> 0xEF) ?
4
19085 : (firstByte
> 0xDF) ?
3
19086 : (firstByte
> 0xBF) ?
2
19089 if (i + bytesPerSequence <= end) {
19090 var secondByte, thirdByte, fourthByte, tempCodePoint
19092 switch (bytesPerSequence) {
19094 if (firstByte <
0x80) {
19095 codePoint = firstByte
19099 secondByte = buf[i +
1]
19100 if ((secondByte &
0xC0) ===
0x80) {
19101 tempCodePoint = (firstByte &
0x1F) <<
0x6 | (secondByte &
0x3F)
19102 if (tempCodePoint
> 0x7F) {
19103 codePoint = tempCodePoint
19108 secondByte = buf[i +
1]
19109 thirdByte = buf[i +
2]
19110 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80) {
19111 tempCodePoint = (firstByte &
0xF) <<
0xC | (secondByte &
0x3F) <<
0x6 | (thirdByte &
0x3F)
19112 if (tempCodePoint
> 0x7FF && (tempCodePoint <
0xD800 || tempCodePoint
> 0xDFFF)) {
19113 codePoint = tempCodePoint
19118 secondByte = buf[i +
1]
19119 thirdByte = buf[i +
2]
19120 fourthByte = buf[i +
3]
19121 if ((secondByte &
0xC0) ===
0x80 && (thirdByte &
0xC0) ===
0x80 && (fourthByte &
0xC0) ===
0x80) {
19122 tempCodePoint = (firstByte &
0xF) <<
0x12 | (secondByte &
0x3F) <<
0xC | (thirdByte &
0x3F) <<
0x6 | (fourthByte &
0x3F)
19123 if (tempCodePoint
> 0xFFFF && tempCodePoint <
0x110000) {
19124 codePoint = tempCodePoint
19130 if (codePoint === null) {
19131 // we did not generate a valid codePoint so insert a
19132 // replacement char (U+FFFD) and advance only
1 byte
19134 bytesPerSequence =
1
19135 } else if (codePoint
> 0xFFFF) {
19136 // encode to utf16 (surrogate pair dance)
19137 codePoint -=
0x10000
19138 res.push(codePoint
>>> 10 &
0x3FF |
0xD800)
19139 codePoint =
0xDC00 | codePoint &
0x3FF
19142 res.push(codePoint)
19143 i += bytesPerSequence
19146 return decodeCodePointsArray(res)
19149 // Based on http://stackoverflow.com/a/
22747272/
680742, the browser with
19150 // the lowest limit is Chrome, with
0x10000 args.
19151 // We go
1 magnitude less, for safety
19152 var MAX_ARGUMENTS_LENGTH =
0x1000
19154 function decodeCodePointsArray (codePoints) {
19155 var len = codePoints.length
19156 if (len <= MAX_ARGUMENTS_LENGTH) {
19157 return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
19160 // Decode in chunks to avoid
"call stack size exceeded".
19164 res += String.fromCharCode.apply(
19166 codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
19172 function asciiSlice (buf, start, end) {
19174 end = Math.min(buf.length, end)
19176 for (var i = start; i < end; ++i) {
19177 ret += String.fromCharCode(buf[i] &
0x7F)
19182 function latin1Slice (buf, start, end) {
19184 end = Math.min(buf.length, end)
19186 for (var i = start; i < end; ++i) {
19187 ret += String.fromCharCode(buf[i])
19192 function hexSlice (buf, start, end) {
19193 var len = buf.length
19195 if (!start || start <
0) start =
0
19196 if (!end || end <
0 || end
> len) end = len
19199 for (var i = start; i < end; ++i) {
19200 out += toHex(buf[i])
19205 function utf16leSlice (buf, start, end) {
19206 var bytes = buf.slice(start, end)
19208 for (var i =
0; i < bytes.length; i +=
2) {
19209 res += String.fromCharCode(bytes[i] + (bytes[i +
1] *
256))
19214 Buffer.prototype.slice = function slice (start, end) {
19215 var len = this.length
19217 end = end === undefined ? len : ~~end
19221 if (start <
0) start =
0
19222 } else if (start
> len) {
19228 if (end <
0) end =
0
19229 } else if (end
> len) {
19233 if (end < start) end = start
19235 var newBuf = this.subarray(start, end)
19236 // Return an augmented `Uint8Array` instance
19237 newBuf.__proto__ = Buffer.prototype
19242 * Need to make sure that buffer isn't trying to write out of bounds.
19244 function checkOffset (offset, ext, length) {
19245 if ((offset %
1) !==
0 || offset <
0) throw new RangeError('offset is not uint')
19246 if (offset + ext
> length) throw new RangeError('Trying to access beyond buffer length')
19249 Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
19250 offset = offset
>>> 0
19251 byteLength = byteLength
>>> 0
19252 if (!noAssert) checkOffset(offset, byteLength, this.length)
19254 var val = this[offset]
19257 while (++i < byteLength && (mul *=
0x100)) {
19258 val += this[offset + i] * mul
19264 Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
19265 offset = offset
>>> 0
19266 byteLength = byteLength
>>> 0
19268 checkOffset(offset, byteLength, this.length)
19271 var val = this[offset + --byteLength]
19273 while (byteLength
> 0 && (mul *=
0x100)) {
19274 val += this[offset + --byteLength] * mul
19280 Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
19281 offset = offset
>>> 0
19282 if (!noAssert) checkOffset(offset,
1, this.length)
19283 return this[offset]
19286 Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
19287 offset = offset
>>> 0
19288 if (!noAssert) checkOffset(offset,
2, this.length)
19289 return this[offset] | (this[offset +
1] <<
8)
19292 Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
19293 offset = offset
>>> 0
19294 if (!noAssert) checkOffset(offset,
2, this.length)
19295 return (this[offset] <<
8) | this[offset +
1]
19298 Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
19299 offset = offset
>>> 0
19300 if (!noAssert) checkOffset(offset,
4, this.length)
19302 return ((this[offset]) |
19303 (this[offset +
1] <<
8) |
19304 (this[offset +
2] <<
16)) +
19305 (this[offset +
3] *
0x1000000)
19308 Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
19309 offset = offset
>>> 0
19310 if (!noAssert) checkOffset(offset,
4, this.length)
19312 return (this[offset] *
0x1000000) +
19313 ((this[offset +
1] <<
16) |
19314 (this[offset +
2] <<
8) |
19318 Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
19319 offset = offset
>>> 0
19320 byteLength = byteLength
>>> 0
19321 if (!noAssert) checkOffset(offset, byteLength, this.length)
19323 var val = this[offset]
19326 while (++i < byteLength && (mul *=
0x100)) {
19327 val += this[offset + i] * mul
19331 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
19336 Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
19337 offset = offset
>>> 0
19338 byteLength = byteLength
>>> 0
19339 if (!noAssert) checkOffset(offset, byteLength, this.length)
19343 var val = this[offset + --i]
19344 while (i
> 0 && (mul *=
0x100)) {
19345 val += this[offset + --i] * mul
19349 if (val
>= mul) val -= Math.pow(
2,
8 * byteLength)
19354 Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
19355 offset = offset
>>> 0
19356 if (!noAssert) checkOffset(offset,
1, this.length)
19357 if (!(this[offset] &
0x80)) return (this[offset])
19358 return ((
0xff - this[offset] +
1) * -
1)
19361 Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
19362 offset = offset
>>> 0
19363 if (!noAssert) checkOffset(offset,
2, this.length)
19364 var val = this[offset] | (this[offset +
1] <<
8)
19365 return (val &
0x8000) ? val |
0xFFFF0000 : val
19368 Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
19369 offset = offset
>>> 0
19370 if (!noAssert) checkOffset(offset,
2, this.length)
19371 var val = this[offset +
1] | (this[offset] <<
8)
19372 return (val &
0x8000) ? val |
0xFFFF0000 : val
19375 Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
19376 offset = offset
>>> 0
19377 if (!noAssert) checkOffset(offset,
4, this.length)
19379 return (this[offset]) |
19380 (this[offset +
1] <<
8) |
19381 (this[offset +
2] <<
16) |
19382 (this[offset +
3] <<
24)
19385 Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
19386 offset = offset
>>> 0
19387 if (!noAssert) checkOffset(offset,
4, this.length)
19389 return (this[offset] <<
24) |
19390 (this[offset +
1] <<
16) |
19391 (this[offset +
2] <<
8) |
19395 Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
19396 offset = offset
>>> 0
19397 if (!noAssert) checkOffset(offset,
4, this.length)
19398 return ieee754.read(this, offset, true,
23,
4)
19401 Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
19402 offset = offset
>>> 0
19403 if (!noAssert) checkOffset(offset,
4, this.length)
19404 return ieee754.read(this, offset, false,
23,
4)
19407 Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
19408 offset = offset
>>> 0
19409 if (!noAssert) checkOffset(offset,
8, this.length)
19410 return ieee754.read(this, offset, true,
52,
8)
19413 Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
19414 offset = offset
>>> 0
19415 if (!noAssert) checkOffset(offset,
8, this.length)
19416 return ieee754.read(this, offset, false,
52,
8)
19419 function checkInt (buf, value, offset, ext, max, min) {
19420 if (!Buffer.isBuffer(buf)) throw new TypeError('
"buffer" argument must be a Buffer instance')
19421 if (value
> max || value < min) throw new RangeError('"value" argument is out of bounds')
19422 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
19425 Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
19427 offset = offset
>>> 0
19428 byteLength = byteLength
>>> 0
19430 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
19431 checkInt(this, value, offset, byteLength, maxBytes,
0)
19436 this[offset] = value &
0xFF
19437 while (++i < byteLength && (mul *=
0x100)) {
19438 this[offset + i] = (value / mul) &
0xFF
19441 return offset + byteLength
19444 Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
19446 offset = offset
>>> 0
19447 byteLength = byteLength
>>> 0
19449 var maxBytes = Math.pow(
2,
8 * byteLength) -
1
19450 checkInt(this, value, offset, byteLength, maxBytes,
0)
19453 var i = byteLength -
1
19455 this[offset + i] = value &
0xFF
19456 while (--i
>=
0 && (mul *=
0x100)) {
19457 this[offset + i] = (value / mul) &
0xFF
19460 return offset + byteLength
19463 Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
19465 offset = offset
>>> 0
19466 if (!noAssert) checkInt(this, value, offset,
1,
0xff,
0)
19467 this[offset] = (value &
0xff)
19471 Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
19473 offset = offset
>>> 0
19474 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
19475 this[offset] = (value &
0xff)
19476 this[offset +
1] = (value
>>> 8)
19480 Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
19482 offset = offset
>>> 0
19483 if (!noAssert) checkInt(this, value, offset,
2,
0xffff,
0)
19484 this[offset] = (value
>>> 8)
19485 this[offset +
1] = (value &
0xff)
19489 Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
19491 offset = offset
>>> 0
19492 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
19493 this[offset +
3] = (value
>>> 24)
19494 this[offset +
2] = (value
>>> 16)
19495 this[offset +
1] = (value
>>> 8)
19496 this[offset] = (value &
0xff)
19500 Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
19502 offset = offset
>>> 0
19503 if (!noAssert) checkInt(this, value, offset,
4,
0xffffffff,
0)
19504 this[offset] = (value
>>> 24)
19505 this[offset +
1] = (value
>>> 16)
19506 this[offset +
2] = (value
>>> 8)
19507 this[offset +
3] = (value &
0xff)
19511 Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
19513 offset = offset
>>> 0
19515 var limit = Math.pow(
2, (
8 * byteLength) -
1)
19517 checkInt(this, value, offset, byteLength, limit -
1, -limit)
19523 this[offset] = value &
0xFF
19524 while (++i < byteLength && (mul *=
0x100)) {
19525 if (value <
0 && sub ===
0 && this[offset + i -
1] !==
0) {
19528 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
19531 return offset + byteLength
19534 Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
19536 offset = offset
>>> 0
19538 var limit = Math.pow(
2, (
8 * byteLength) -
1)
19540 checkInt(this, value, offset, byteLength, limit -
1, -limit)
19543 var i = byteLength -
1
19546 this[offset + i] = value &
0xFF
19547 while (--i
>=
0 && (mul *=
0x100)) {
19548 if (value <
0 && sub ===
0 && this[offset + i +
1] !==
0) {
19551 this[offset + i] = ((value / mul)
>> 0) - sub &
0xFF
19554 return offset + byteLength
19557 Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
19559 offset = offset
>>> 0
19560 if (!noAssert) checkInt(this, value, offset,
1,
0x7f, -
0x80)
19561 if (value <
0) value =
0xff + value +
1
19562 this[offset] = (value &
0xff)
19566 Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
19568 offset = offset
>>> 0
19569 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
19570 this[offset] = (value &
0xff)
19571 this[offset +
1] = (value
>>> 8)
19575 Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
19577 offset = offset
>>> 0
19578 if (!noAssert) checkInt(this, value, offset,
2,
0x7fff, -
0x8000)
19579 this[offset] = (value
>>> 8)
19580 this[offset +
1] = (value &
0xff)
19584 Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
19586 offset = offset
>>> 0
19587 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
19588 this[offset] = (value &
0xff)
19589 this[offset +
1] = (value
>>> 8)
19590 this[offset +
2] = (value
>>> 16)
19591 this[offset +
3] = (value
>>> 24)
19595 Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
19597 offset = offset
>>> 0
19598 if (!noAssert) checkInt(this, value, offset,
4,
0x7fffffff, -
0x80000000)
19599 if (value <
0) value =
0xffffffff + value +
1
19600 this[offset] = (value
>>> 24)
19601 this[offset +
1] = (value
>>> 16)
19602 this[offset +
2] = (value
>>> 8)
19603 this[offset +
3] = (value &
0xff)
19607 function checkIEEE754 (buf, value, offset, ext, max, min) {
19608 if (offset + ext
> buf.length) throw new RangeError('Index out of range')
19609 if (offset <
0) throw new RangeError('Index out of range')
19612 function writeFloat (buf, value, offset, littleEndian, noAssert) {
19614 offset = offset
>>> 0
19616 checkIEEE754(buf, value, offset,
4,
3.4028234663852886e+38, -
3.4028234663852886e+38)
19618 ieee754.write(buf, value, offset, littleEndian,
23,
4)
19622 Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
19623 return writeFloat(this, value, offset, true, noAssert)
19626 Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
19627 return writeFloat(this, value, offset, false, noAssert)
19630 function writeDouble (buf, value, offset, littleEndian, noAssert) {
19632 offset = offset
>>> 0
19634 checkIEEE754(buf, value, offset,
8,
1.7976931348623157E+308, -
1.7976931348623157E+308)
19636 ieee754.write(buf, value, offset, littleEndian,
52,
8)
19640 Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
19641 return writeDouble(this, value, offset, true, noAssert)
19644 Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
19645 return writeDouble(this, value, offset, false, noAssert)
19648 // copy(targetBuffer, targetStart=
0, sourceStart=
0, sourceEnd=buffer.length)
19649 Buffer.prototype.copy = function copy (target, targetStart, start, end) {
19650 if (!start) start =
0
19651 if (!end && end !==
0) end = this.length
19652 if (targetStart
>= target.length) targetStart = target.length
19653 if (!targetStart) targetStart =
0
19654 if (end
> 0 && end < start) end = start
19656 // Copy
0 bytes; we're done
19657 if (end === start) return
0
19658 if (target.length ===
0 || this.length ===
0) return
0
19660 // Fatal error conditions
19661 if (targetStart <
0) {
19662 throw new RangeError('targetStart out of bounds')
19664 if (start <
0 || start
>= this.length) throw new RangeError('sourceStart out of bounds')
19665 if (end <
0) throw new RangeError('sourceEnd out of bounds')
19668 if (end
> this.length) end = this.length
19669 if (target.length - targetStart < end - start) {
19670 end = target.length - targetStart + start
19673 var len = end - start
19676 if (this === target && start < targetStart && targetStart < end) {
19677 // descending copy from end
19678 for (i = len -
1; i
>=
0; --i) {
19679 target[i + targetStart] = this[i + start]
19681 } else if (len <
1000) {
19682 // ascending copy from start
19683 for (i =
0; i < len; ++i) {
19684 target[i + targetStart] = this[i + start]
19687 Uint8Array.prototype.set.call(
19689 this.subarray(start, start + len),
19698 // buffer.fill(number[, offset[, end]])
19699 // buffer.fill(buffer[, offset[, end]])
19700 // buffer.fill(string[, offset[, end]][, encoding])
19701 Buffer.prototype.fill = function fill (val, start, end, encoding) {
19702 // Handle string cases:
19703 if (typeof val === 'string') {
19704 if (typeof start === 'string') {
19708 } else if (typeof end === 'string') {
19712 if (val.length ===
1) {
19713 var code = val.charCodeAt(
0)
19718 if (encoding !== undefined && typeof encoding !== 'string') {
19719 throw new TypeError('encoding must be a string')
19721 if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
19722 throw new TypeError('Unknown encoding: ' + encoding)
19724 } else if (typeof val === 'number') {
19728 // Invalid ranges are not set to a default, so can range check early.
19729 if (start <
0 || this.length < start || this.length < end) {
19730 throw new RangeError('Out of range index')
19733 if (end <= start) {
19737 start = start
>>> 0
19738 end = end === undefined ? this.length : end
>>> 0
19743 if (typeof val === 'number') {
19744 for (i = start; i < end; ++i) {
19748 var bytes = Buffer.isBuffer(val)
19750 : new Buffer(val, encoding)
19751 var len = bytes.length
19752 for (i =
0; i < end - start; ++i) {
19753 this[i + start] = bytes[i % len]
19760 // HELPER FUNCTIONS
19761 // ================
19763 var INVALID_BASE64_RE = /[^+/
0-
9A-Za-z-_]/g
19765 function base64clean (str) {
19766 // Node strips out invalid characters like \n and \t from the string, base64-js does not
19767 str = stringtrim(str).replace(INVALID_BASE64_RE, '')
19768 // Node converts strings with length <
2 to ''
19769 if (str.length <
2) return ''
19770 // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
19771 while (str.length %
4 !==
0) {
19777 function stringtrim (str) {
19778 if (str.trim) return str.trim()
19779 return str.replace(/^\s+|\s+$/g, '')
19782 function toHex (n) {
19783 if (n <
16) return '
0' + n.toString(
16)
19784 return n.toString(
16)
19787 function utf8ToBytes (string, units) {
19788 units = units || Infinity
19790 var length = string.length
19791 var leadSurrogate = null
19794 for (var i =
0; i < length; ++i) {
19795 codePoint = string.charCodeAt(i)
19797 // is surrogate component
19798 if (codePoint
> 0xD7FF && codePoint <
0xE000) {
19799 // last char was a lead
19800 if (!leadSurrogate) {
19802 if (codePoint
> 0xDBFF) {
19803 // unexpected trail
19804 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
19806 } else if (i +
1 === length) {
19808 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
19813 leadSurrogate = codePoint
19818 //
2 leads in a row
19819 if (codePoint <
0xDC00) {
19820 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
19821 leadSurrogate = codePoint
19825 // valid surrogate pair
19826 codePoint = (leadSurrogate -
0xD800 <<
10 | codePoint -
0xDC00) +
0x10000
19827 } else if (leadSurrogate) {
19828 // valid bmp char, but last char was a lead
19829 if ((units -=
3)
> -
1) bytes.push(
0xEF,
0xBF,
0xBD)
19832 leadSurrogate = null
19835 if (codePoint <
0x80) {
19836 if ((units -=
1) <
0) break
19837 bytes.push(codePoint)
19838 } else if (codePoint <
0x800) {
19839 if ((units -=
2) <
0) break
19841 codePoint
>> 0x6 |
0xC0,
19842 codePoint &
0x3F |
0x80
19844 } else if (codePoint <
0x10000) {
19845 if ((units -=
3) <
0) break
19847 codePoint
>> 0xC |
0xE0,
19848 codePoint
>> 0x6 &
0x3F |
0x80,
19849 codePoint &
0x3F |
0x80
19851 } else if (codePoint <
0x110000) {
19852 if ((units -=
4) <
0) break
19854 codePoint
>> 0x12 |
0xF0,
19855 codePoint
>> 0xC &
0x3F |
0x80,
19856 codePoint
>> 0x6 &
0x3F |
0x80,
19857 codePoint &
0x3F |
0x80
19860 throw new Error('Invalid code point')
19867 function asciiToBytes (str) {
19869 for (var i =
0; i < str.length; ++i) {
19870 // Node's code seems to be doing this and not &
0x7F..
19871 byteArray.push(str.charCodeAt(i) &
0xFF)
19876 function utf16leToBytes (str, units) {
19879 for (var i =
0; i < str.length; ++i) {
19880 if ((units -=
2) <
0) break
19882 c = str.charCodeAt(i)
19892 function base64ToBytes (str) {
19893 return base64.toByteArray(base64clean(str))
19896 function blitBuffer (src, dst, offset, length) {
19897 for (var i =
0; i < length; ++i) {
19898 if ((i + offset
>= dst.length) || (i
>= src.length)) break
19899 dst[i + offset] = src[i]
19904 function isnan (val) {
19905 return val !== val // eslint-disable-line no-self-compare
19908 },{"base64-js":
2,"ieee754":
8}],
6:[function(require,module,exports){
19909 (function (Buffer){
19910 // Copyright Joyent, Inc. and other Node contributors.
19912 // Permission is hereby granted, free of charge, to any person obtaining a
19913 // copy of this software and associated documentation files (the
19914 // "Software"), to deal in the Software without restriction, including
19915 // without limitation the rights to use, copy, modify, merge, publish,
19916 // distribute, sublicense, and/or sell copies of the Software, and to permit
19917 // persons to whom the Software is furnished to do so, subject to the
19918 // following conditions:
19920 // The above copyright notice and this permission notice shall be included
19921 // in all copies or substantial portions of the Software.
19923 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19924 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19925 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
19926 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
19927 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19928 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
19929 // USE OR OTHER DEALINGS IN THE SOFTWARE.
19931 // NOTE: These type checking functions intentionally don't use `instanceof`
19932 // because it is fragile and can be easily faked with `Object.create()`.
19934 function isArray(arg) {
19935 if (Array.isArray) {
19936 return Array.isArray(arg);
19938 return objectToString(arg) === '[object Array]';
19940 exports.isArray = isArray;
19942 function isBoolean(arg) {
19943 return typeof arg === 'boolean';
19945 exports.isBoolean = isBoolean;
19947 function isNull(arg) {
19948 return arg === null;
19950 exports.isNull = isNull;
19952 function isNullOrUndefined(arg) {
19953 return arg == null;
19955 exports.isNullOrUndefined = isNullOrUndefined;
19957 function isNumber(arg) {
19958 return typeof arg === 'number';
19960 exports.isNumber = isNumber;
19962 function isString(arg) {
19963 return typeof arg === 'string';
19965 exports.isString = isString;
19967 function isSymbol(arg) {
19968 return typeof arg === 'symbol';
19970 exports.isSymbol = isSymbol;
19972 function isUndefined(arg) {
19973 return arg === void
0;
19975 exports.isUndefined = isUndefined;
19977 function isRegExp(re) {
19978 return objectToString(re) === '[object RegExp]';
19980 exports.isRegExp = isRegExp;
19982 function isObject(arg) {
19983 return typeof arg === 'object' && arg !== null;
19985 exports.isObject = isObject;
19987 function isDate(d) {
19988 return objectToString(d) === '[object Date]';
19990 exports.isDate = isDate;
19992 function isError(e) {
19993 return (objectToString(e) === '[object Error]' || e instanceof Error);
19995 exports.isError = isError;
19997 function isFunction(arg) {
19998 return typeof arg === 'function';
20000 exports.isFunction = isFunction;
20002 function isPrimitive(arg) {
20003 return arg === null ||
20004 typeof arg === 'boolean' ||
20005 typeof arg === 'number' ||
20006 typeof arg === 'string' ||
20007 typeof arg === 'symbol' || // ES6 symbol
20008 typeof arg === 'undefined';
20010 exports.isPrimitive = isPrimitive;
20012 exports.isBuffer = Buffer.isBuffer;
20014 function objectToString(o) {
20015 return Object.prototype.toString.call(o);
20018 }).call(this,{"isBuffer":require("../../is-buffer/index.js")})
20019 },{"../../is-buffer/index.js":
10}],
7:[function(require,module,exports){
20020 // Copyright Joyent, Inc. and other Node contributors.
20022 // Permission is hereby granted, free of charge, to any person obtaining a
20023 // copy of this software and associated documentation files (the
20024 // "Software"), to deal in the Software without restriction, including
20025 // without limitation the rights to use, copy, modify, merge, publish,
20026 // distribute, sublicense, and/or sell copies of the Software, and to permit
20027 // persons to whom the Software is furnished to do so, subject to the
20028 // following conditions:
20030 // The above copyright notice and this permission notice shall be included
20031 // in all copies or substantial portions of the Software.
20033 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20034 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20035 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
20036 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
20037 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
20038 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20039 // USE OR OTHER DEALINGS IN THE SOFTWARE.
20041 function EventEmitter() {
20042 this._events = this._events || {};
20043 this._maxListeners = this._maxListeners || undefined;
20045 module.exports = EventEmitter;
20047 // Backwards-compat with node
0.10.x
20048 EventEmitter.EventEmitter = EventEmitter;
20050 EventEmitter.prototype._events = undefined;
20051 EventEmitter.prototype._maxListeners = undefined;
20053 // By default EventEmitters will print a warning if more than
10 listeners are
20054 // added to it. This is a useful default which helps finding memory leaks.
20055 EventEmitter.defaultMaxListeners =
10;
20057 // Obviously not all Emitters should be limited to
10. This function allows
20058 // that to be increased. Set to zero for unlimited.
20059 EventEmitter.prototype.setMaxListeners = function(n) {
20060 if (!isNumber(n) || n <
0 || isNaN(n))
20061 throw TypeError('n must be a positive number');
20062 this._maxListeners = n;
20066 EventEmitter.prototype.emit = function(type) {
20067 var er, handler, len, args, i, listeners;
20072 // If there is no 'error' event listener then throw.
20073 if (type === 'error') {
20074 if (!this._events.error ||
20075 (isObject(this._events.error) && !this._events.error.length)) {
20077 if (er instanceof Error) {
20078 throw er; // Unhandled 'error' event
20080 // At least give some kind of context to the user
20081 var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
20088 handler = this._events[type];
20090 if (isUndefined(handler))
20093 if (isFunction(handler)) {
20094 switch (arguments.length) {
20097 handler.call(this);
20100 handler.call(this, arguments[
1]);
20103 handler.call(this, arguments[
1], arguments[
2]);
20107 args = Array.prototype.slice.call(arguments,
1);
20108 handler.apply(this, args);
20110 } else if (isObject(handler)) {
20111 args = Array.prototype.slice.call(arguments,
1);
20112 listeners = handler.slice();
20113 len = listeners.length;
20114 for (i =
0; i < len; i++)
20115 listeners[i].apply(this, args);
20121 EventEmitter.prototype.addListener = function(type, listener) {
20124 if (!isFunction(listener))
20125 throw TypeError('listener must be a function');
20130 // To avoid recursion in the case that type === "newListener"! Before
20131 // adding it to the listeners, first emit "newListener".
20132 if (this._events.newListener)
20133 this.emit('newListener', type,
20134 isFunction(listener.listener) ?
20135 listener.listener : listener);
20137 if (!this._events[type])
20138 // Optimize the case of one listener. Don't need the extra array object.
20139 this._events[type] = listener;
20140 else if (isObject(this._events[type]))
20141 // If we've already got an array, just append.
20142 this._events[type].push(listener);
20144 // Adding the second element, need to change to array.
20145 this._events[type] = [this._events[type], listener];
20147 // Check for listener leak
20148 if (isObject(this._events[type]) && !this._events[type].warned) {
20149 if (!isUndefined(this._maxListeners)) {
20150 m = this._maxListeners;
20152 m = EventEmitter.defaultMaxListeners;
20155 if (m && m
> 0 && this._events[type].length
> m) {
20156 this._events[type].warned = true;
20157 console.error('(node) warning: possible EventEmitter memory ' +
20158 'leak detected. %d listeners added. ' +
20159 'Use emitter.setMaxListeners() to increase limit.',
20160 this._events[type].length);
20161 if (typeof console.trace === 'function') {
20162 // not supported in IE
10
20171 EventEmitter.prototype.on = EventEmitter.prototype.addListener;
20173 EventEmitter.prototype.once = function(type, listener) {
20174 if (!isFunction(listener))
20175 throw TypeError('listener must be a function');
20180 this.removeListener(type, g);
20184 listener.apply(this, arguments);
20188 g.listener = listener;
20194 // emits a 'removeListener' event iff the listener was removed
20195 EventEmitter.prototype.removeListener = function(type, listener) {
20196 var list, position, length, i;
20198 if (!isFunction(listener))
20199 throw TypeError('listener must be a function');
20201 if (!this._events || !this._events[type])
20204 list = this._events[type];
20205 length = list.length;
20208 if (list === listener ||
20209 (isFunction(list.listener) && list.listener === listener)) {
20210 delete this._events[type];
20211 if (this._events.removeListener)
20212 this.emit('removeListener', type, listener);
20214 } else if (isObject(list)) {
20215 for (i = length; i--
> 0;) {
20216 if (list[i] === listener ||
20217 (list[i].listener && list[i].listener === listener)) {
20226 if (list.length ===
1) {
20228 delete this._events[type];
20230 list.splice(position,
1);
20233 if (this._events.removeListener)
20234 this.emit('removeListener', type, listener);
20240 EventEmitter.prototype.removeAllListeners = function(type) {
20241 var key, listeners;
20246 // not listening for removeListener, no need to emit
20247 if (!this._events.removeListener) {
20248 if (arguments.length ===
0)
20250 else if (this._events[type])
20251 delete this._events[type];
20255 // emit removeListener for all listeners on all events
20256 if (arguments.length ===
0) {
20257 for (key in this._events) {
20258 if (key === 'removeListener') continue;
20259 this.removeAllListeners(key);
20261 this.removeAllListeners('removeListener');
20266 listeners = this._events[type];
20268 if (isFunction(listeners)) {
20269 this.removeListener(type, listeners);
20270 } else if (listeners) {
20272 while (listeners.length)
20273 this.removeListener(type, listeners[listeners.length -
1]);
20275 delete this._events[type];
20280 EventEmitter.prototype.listeners = function(type) {
20282 if (!this._events || !this._events[type])
20284 else if (isFunction(this._events[type]))
20285 ret = [this._events[type]];
20287 ret = this._events[type].slice();
20291 EventEmitter.prototype.listenerCount = function(type) {
20292 if (this._events) {
20293 var evlistener = this._events[type];
20295 if (isFunction(evlistener))
20297 else if (evlistener)
20298 return evlistener.length;
20303 EventEmitter.listenerCount = function(emitter, type) {
20304 return emitter.listenerCount(type);
20307 function isFunction(arg) {
20308 return typeof arg === 'function';
20311 function isNumber(arg) {
20312 return typeof arg === 'number';
20315 function isObject(arg) {
20316 return typeof arg === 'object' && arg !== null;
20319 function isUndefined(arg) {
20320 return arg === void
0;
20323 },{}],
8:[function(require,module,exports){
20324 exports.read = function (buffer, offset, isLE, mLen, nBytes) {
20326 var eLen = nBytes *
8 - mLen -
1
20327 var eMax = (
1 << eLen) -
1
20328 var eBias = eMax
>> 1
20330 var i = isLE ? (nBytes -
1) :
0
20331 var d = isLE ? -
1 :
1
20332 var s = buffer[offset + i]
20336 e = s & ((
1 << (-nBits)) -
1)
20339 for (; nBits
> 0; e = e *
256 + buffer[offset + i], i += d, nBits -=
8) {}
20341 m = e & ((
1 << (-nBits)) -
1)
20344 for (; nBits
> 0; m = m *
256 + buffer[offset + i], i += d, nBits -=
8) {}
20348 } else if (e === eMax) {
20349 return m ? NaN : ((s ? -
1 :
1) * Infinity)
20351 m = m + Math.pow(
2, mLen)
20354 return (s ? -
1 :
1) * m * Math.pow(
2, e - mLen)
20357 exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
20359 var eLen = nBytes *
8 - mLen -
1
20360 var eMax = (
1 << eLen) -
1
20361 var eBias = eMax
>> 1
20362 var rt = (mLen ===
23 ? Math.pow(
2, -
24) - Math.pow(
2, -
77) :
0)
20363 var i = isLE ?
0 : (nBytes -
1)
20364 var d = isLE ?
1 : -
1
20365 var s = value <
0 || (value ===
0 &&
1 / value <
0) ?
1 :
0
20367 value = Math.abs(value)
20369 if (isNaN(value) || value === Infinity) {
20370 m = isNaN(value) ?
1 :
0
20373 e = Math.floor(Math.log(value) / Math.LN2)
20374 if (value * (c = Math.pow(
2, -e)) <
1) {
20378 if (e + eBias
>=
1) {
20381 value += rt * Math.pow(
2,
1 - eBias)
20383 if (value * c
>=
2) {
20388 if (e + eBias
>= eMax) {
20391 } else if (e + eBias
>=
1) {
20392 m = (value * c -
1) * Math.pow(
2, mLen)
20395 m = value * Math.pow(
2, eBias -
1) * Math.pow(
2, mLen)
20400 for (; mLen
>=
8; buffer[offset + i] = m &
0xff, i += d, m /=
256, mLen -=
8) {}
20402 e = (e << mLen) | m
20404 for (; eLen
> 0; buffer[offset + i] = e &
0xff, i += d, e /=
256, eLen -=
8) {}
20406 buffer[offset + i - d] |= s *
128
20409 },{}],
9:[function(require,module,exports){
20410 if (typeof Object.create === 'function') {
20411 // implementation from standard node.js 'util' module
20412 module.exports = function inherits(ctor, superCtor) {
20413 ctor.super_ = superCtor
20414 ctor.prototype = Object.create(superCtor.prototype, {
20424 // old school shim for old browsers
20425 module.exports = function inherits(ctor, superCtor) {
20426 ctor.super_ = superCtor
20427 var TempCtor = function () {}
20428 TempCtor.prototype = superCtor.prototype
20429 ctor.prototype = new TempCtor()
20430 ctor.prototype.constructor = ctor
20434 },{}],
10:[function(require,module,exports){
20436 * Determine if an object is a Buffer
20438 * @author Feross Aboukhadijeh
<feross@feross.org
> <http://feross.org
>
20442 // The _isBuffer check is for Safari
5-
7 support, because it's missing
20443 // Object.prototype.constructor. Remove this eventually
20444 module.exports = function (obj) {
20445 return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
20448 function isBuffer (obj) {
20449 return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
20452 // For Node v0.10 support. Remove this eventually.
20453 function isSlowBuffer (obj) {
20454 return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(
0,
0))
20457 },{}],
11:[function(require,module,exports){
20458 var toString = {}.toString;
20460 module.exports = Array.isArray || function (arr) {
20461 return toString.call(arr) == '[object Array]';
20464 },{}],
12:[function(require,module,exports){
20465 (function (process){
20468 if (!process.version ||
20469 process.version.indexOf('v0.') ===
0 ||
20470 process.version.indexOf('v1.') ===
0 && process.version.indexOf('v1.8.') !==
0) {
20471 module.exports = nextTick;
20473 module.exports = process.nextTick;
20476 function nextTick(fn, arg1, arg2, arg3) {
20477 if (typeof fn !== 'function') {
20478 throw new TypeError('"callback" argument must be a function');
20480 var len = arguments.length;
20485 return process.nextTick(fn);
20487 return process.nextTick(function afterTickOne() {
20488 fn.call(null, arg1);
20491 return process.nextTick(function afterTickTwo() {
20492 fn.call(null, arg1, arg2);
20495 return process.nextTick(function afterTickThree() {
20496 fn.call(null, arg1, arg2, arg3);
20499 args = new Array(len -
1);
20501 while (i < args.length) {
20502 args[i++] = arguments[i];
20504 return process.nextTick(function afterTick() {
20505 fn.apply(null, args);
20510 }).call(this,require('_process'))
20511 },{"_process":
13}],
13:[function(require,module,exports){
20512 // shim for using process in browser
20513 var process = module.exports = {};
20515 // cached from whatever global is present so that test runners that stub it
20516 // don't break things. But we need to wrap it in a try catch in case it is
20517 // wrapped in strict mode code which doesn't define any globals. It's inside a
20518 // function because try/catches deoptimize in certain engines.
20520 var cachedSetTimeout;
20521 var cachedClearTimeout;
20523 function defaultSetTimout() {
20524 throw new Error('setTimeout has not been defined');
20526 function defaultClearTimeout () {
20527 throw new Error('clearTimeout has not been defined');
20531 if (typeof setTimeout === 'function') {
20532 cachedSetTimeout = setTimeout;
20534 cachedSetTimeout = defaultSetTimout;
20537 cachedSetTimeout = defaultSetTimout;
20540 if (typeof clearTimeout === 'function') {
20541 cachedClearTimeout = clearTimeout;
20543 cachedClearTimeout = defaultClearTimeout;
20546 cachedClearTimeout = defaultClearTimeout;
20549 function runTimeout(fun) {
20550 if (cachedSetTimeout === setTimeout) {
20551 //normal enviroments in sane situations
20552 return setTimeout(fun,
0);
20554 // if setTimeout wasn't available but was latter defined
20555 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
20556 cachedSetTimeout = setTimeout;
20557 return setTimeout(fun,
0);
20560 // when when somebody has screwed with setTimeout but no I.E. maddness
20561 return cachedSetTimeout(fun,
0);
20564 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
20565 return cachedSetTimeout.call(null, fun,
0);
20567 // 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
20568 return cachedSetTimeout.call(this, fun,
0);
20574 function runClearTimeout(marker) {
20575 if (cachedClearTimeout === clearTimeout) {
20576 //normal enviroments in sane situations
20577 return clearTimeout(marker);
20579 // if clearTimeout wasn't available but was latter defined
20580 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
20581 cachedClearTimeout = clearTimeout;
20582 return clearTimeout(marker);
20585 // when when somebody has screwed with setTimeout but no I.E. maddness
20586 return cachedClearTimeout(marker);
20589 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
20590 return cachedClearTimeout.call(null, marker);
20592 // 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.
20593 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
20594 return cachedClearTimeout.call(this, marker);
20602 var draining = false;
20604 var queueIndex = -
1;
20606 function cleanUpNextTick() {
20607 if (!draining || !currentQueue) {
20611 if (currentQueue.length) {
20612 queue = currentQueue.concat(queue);
20616 if (queue.length) {
20621 function drainQueue() {
20625 var timeout = runTimeout(cleanUpNextTick);
20628 var len = queue.length;
20630 currentQueue = queue;
20632 while (++queueIndex < len) {
20633 if (currentQueue) {
20634 currentQueue[queueIndex].run();
20638 len = queue.length;
20640 currentQueue = null;
20642 runClearTimeout(timeout);
20645 process.nextTick = function (fun) {
20646 var args = new Array(arguments.length -
1);
20647 if (arguments.length
> 1) {
20648 for (var i =
1; i < arguments.length; i++) {
20649 args[i -
1] = arguments[i];
20652 queue.push(new Item(fun, args));
20653 if (queue.length ===
1 && !draining) {
20654 runTimeout(drainQueue);
20658 // v8 likes predictible objects
20659 function Item(fun, array) {
20661 this.array = array;
20663 Item.prototype.run = function () {
20664 this.fun.apply(null, this.array);
20666 process.title = 'browser';
20667 process.browser = true;
20670 process.version = ''; // empty string to avoid regexp issues
20671 process.versions = {};
20676 process.addListener = noop;
20677 process.once = noop;
20678 process.off = noop;
20679 process.removeListener = noop;
20680 process.removeAllListeners = noop;
20681 process.emit = noop;
20683 process.binding = function (name) {
20684 throw new Error('process.binding is not supported');
20687 process.cwd = function () { return '/' };
20688 process.chdir = function (dir) {
20689 throw new Error('process.chdir is not supported');
20691 process.umask = function() { return
0; };
20693 },{}],
14:[function(require,module,exports){
20694 module.exports = require(
"./lib/_stream_duplex.js")
20696 },{
"./lib/_stream_duplex.js":
15}],
15:[function(require,module,exports){
20697 // a duplex stream is just a stream that is both readable and writable.
20698 // Since JS doesn't have multiple prototypal inheritance, this class
20699 // prototypally inherits from Readable, and then parasitically from
20706 var objectKeys = Object.keys || function (obj) {
20708 for (var key in obj) {
20714 module.exports = Duplex;
20717 var processNextTick = require('process-nextick-args');
20721 var util = require('core-util-is');
20722 util.inherits = require('inherits');
20725 var Readable = require('./_stream_readable');
20726 var Writable = require('./_stream_writable');
20728 util.inherits(Duplex, Readable);
20730 var keys = objectKeys(Writable.prototype);
20731 for (var v =
0; v < keys.length; v++) {
20732 var method = keys[v];
20733 if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
20736 function Duplex(options) {
20737 if (!(this instanceof Duplex)) return new Duplex(options);
20739 Readable.call(this, options);
20740 Writable.call(this, options);
20742 if (options && options.readable === false) this.readable = false;
20744 if (options && options.writable === false) this.writable = false;
20746 this.allowHalfOpen = true;
20747 if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;
20749 this.once('end', onend);
20752 // the no-half-open enforcer
20754 // if we allow half-open state, or if the writable side ended,
20756 if (this.allowHalfOpen || this._writableState.ended) return;
20758 // no more data can be written.
20759 // But allow more writes to happen in this tick.
20760 processNextTick(onEndNT, this);
20763 function onEndNT(self) {
20767 function forEach(xs, f) {
20768 for (var i =
0, l = xs.length; i < l; i++) {
20772 },{"./_stream_readable":
17,"./_stream_writable":
19,"core-util-is":
6,"inherits":
9,"process-nextick-args":
12}],
16:[function(require,module,exports){
20773 // a passthrough stream.
20774 // basically just the most minimal sort of Transform stream.
20775 // Every written chunk gets output as-is.
20779 module.exports = PassThrough;
20781 var Transform = require('./_stream_transform');
20784 var util = require('core-util-is');
20785 util.inherits = require('inherits');
20788 util.inherits(PassThrough, Transform);
20790 function PassThrough(options) {
20791 if (!(this instanceof PassThrough)) return new PassThrough(options);
20793 Transform.call(this, options);
20796 PassThrough.prototype._transform = function (chunk, encoding, cb) {
20799 },{"./_stream_transform":
18,"core-util-is":
6,"inherits":
9}],
17:[function(require,module,exports){
20800 (function (process){
20803 module.exports = Readable;
20806 var processNextTick = require('process-nextick-args');
20810 var isArray = require('isarray');
20817 Readable.ReadableState = ReadableState;
20820 var EE = require('events').EventEmitter;
20822 var EElistenerCount = function (emitter, type) {
20823 return emitter.listeners(type).length;
20831 Stream = require('st' + 'ream');
20832 } catch (_) {} finally {
20833 if (!Stream) Stream = require('events').EventEmitter;
20838 var Buffer = require('buffer').Buffer;
20840 var bufferShim = require('buffer-shims');
20844 var util = require('core-util-is');
20845 util.inherits = require('inherits');
20849 var debugUtil = require('util');
20850 var debug = void
0;
20851 if (debugUtil && debugUtil.debuglog) {
20852 debug = debugUtil.debuglog('stream');
20854 debug = function () {};
20858 var BufferList = require('./internal/streams/BufferList');
20861 util.inherits(Readable, Stream);
20863 function prependListener(emitter, event, fn) {
20864 // Sadly this is not cacheable as some libraries bundle their own
20865 // event emitter implementation with them.
20866 if (typeof emitter.prependListener === 'function') {
20867 return emitter.prependListener(event, fn);
20869 // This is a hack to make sure that our error handler is attached before any
20870 // userland ones. NEVER DO THIS. This is here only because this code needs
20871 // to continue to work with older versions of Node.js that do not include
20872 // the prependListener() method. The goal is to eventually remove this hack.
20873 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]];
20877 function ReadableState(options, stream) {
20878 Duplex = Duplex || require('./_stream_duplex');
20880 options = options || {};
20882 // object stream flag. Used to make read(n) ignore n and to
20883 // make all the buffer merging and length checks go away
20884 this.objectMode = !!options.objectMode;
20886 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
20888 // the point at which it stops calling _read() to fill the buffer
20889 // Note:
0 is a valid value, means "don't call _read preemptively ever"
20890 var hwm = options.highWaterMark;
20891 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
20892 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
20895 this.highWaterMark = ~ ~this.highWaterMark;
20897 // A linked list is used to store data chunks instead of an array because the
20898 // linked list can remove elements from the beginning faster than
20900 this.buffer = new BufferList();
20903 this.pipesCount =
0;
20904 this.flowing = null;
20905 this.ended = false;
20906 this.endEmitted = false;
20907 this.reading = false;
20909 // a flag to be able to tell if the onwrite cb is called immediately,
20910 // or on a later tick. We set this to true at first, because any
20911 // actions that shouldn't happen until "later" should generally also
20912 // not happen before the first write call.
20915 // whenever we return null, then we set a flag to say
20916 // that we're awaiting a 'readable' event emission.
20917 this.needReadable = false;
20918 this.emittedReadable = false;
20919 this.readableListening = false;
20920 this.resumeScheduled = false;
20922 // Crypto is kind of old and crusty. Historically, its default string
20923 // encoding is 'binary' so we have to make this configurable.
20924 // Everything else in the universe uses 'utf8', though.
20925 this.defaultEncoding = options.defaultEncoding || 'utf8';
20927 // when piping, we only care about 'readable' events that happen
20928 // after read()ing all the bytes and not getting any pushback.
20929 this.ranOut = false;
20931 // the number of writers that are awaiting a drain event in .pipe()s
20932 this.awaitDrain =
0;
20934 // if true, a maybeReadMore has been scheduled
20935 this.readingMore = false;
20937 this.decoder = null;
20938 this.encoding = null;
20939 if (options.encoding) {
20940 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
20941 this.decoder = new StringDecoder(options.encoding);
20942 this.encoding = options.encoding;
20946 function Readable(options) {
20947 Duplex = Duplex || require('./_stream_duplex');
20949 if (!(this instanceof Readable)) return new Readable(options);
20951 this._readableState = new ReadableState(options, this);
20954 this.readable = true;
20956 if (options && typeof options.read === 'function') this._read = options.read;
20961 // Manually shove something into the read() buffer.
20962 // This returns true if the highWaterMark has not been hit yet,
20963 // similar to how Writable.write() returns true if you should
20964 // write() some more.
20965 Readable.prototype.push = function (chunk, encoding) {
20966 var state = this._readableState;
20968 if (!state.objectMode && typeof chunk === 'string') {
20969 encoding = encoding || state.defaultEncoding;
20970 if (encoding !== state.encoding) {
20971 chunk = bufferShim.from(chunk, encoding);
20976 return readableAddChunk(this, state, chunk, encoding, false);
20979 // Unshift should *always* be something directly out of read()
20980 Readable.prototype.unshift = function (chunk) {
20981 var state = this._readableState;
20982 return readableAddChunk(this, state, chunk, '', true);
20985 Readable.prototype.isPaused = function () {
20986 return this._readableState.flowing === false;
20989 function readableAddChunk(stream, state, chunk, encoding, addToFront) {
20990 var er = chunkInvalid(state, chunk);
20992 stream.emit('error', er);
20993 } else if (chunk === null) {
20994 state.reading = false;
20995 onEofChunk(stream, state);
20996 } else if (state.objectMode || chunk && chunk.length
> 0) {
20997 if (state.ended && !addToFront) {
20998 var e = new Error('stream.push() after EOF');
20999 stream.emit('error', e);
21000 } else if (state.endEmitted && addToFront) {
21001 var _e = new Error('stream.unshift() after end event');
21002 stream.emit('error', _e);
21005 if (state.decoder && !addToFront && !encoding) {
21006 chunk = state.decoder.write(chunk);
21007 skipAdd = !state.objectMode && chunk.length ===
0;
21010 if (!addToFront) state.reading = false;
21012 // Don't add to the buffer if we've decoded to an empty string chunk and
21013 // we're not in object mode
21015 // if we want the data now, just emit it.
21016 if (state.flowing && state.length ===
0 && !state.sync) {
21017 stream.emit('data', chunk);
21020 // update the buffer info.
21021 state.length += state.objectMode ?
1 : chunk.length;
21022 if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
21024 if (state.needReadable) emitReadable(stream);
21028 maybeReadMore(stream, state);
21030 } else if (!addToFront) {
21031 state.reading = false;
21034 return needMoreData(state);
21037 // if it's past the high water mark, we can push in some more.
21038 // Also, if we have no data yet, we can stand some
21039 // more bytes. This is to work around cases where hwm=
0,
21040 // such as the repl. Also, if the push() triggered a
21041 // readable event, and the user called read(largeNumber) such that
21042 // needReadable was set, then we ought to push more, so that another
21043 // 'readable' event will be triggered.
21044 function needMoreData(state) {
21045 return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length ===
0);
21048 // backwards compatibility.
21049 Readable.prototype.setEncoding = function (enc) {
21050 if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
21051 this._readableState.decoder = new StringDecoder(enc);
21052 this._readableState.encoding = enc;
21056 // Don't raise the hwm
> 8MB
21057 var MAX_HWM =
0x800000;
21058 function computeNewHighWaterMark(n) {
21059 if (n
>= MAX_HWM) {
21062 // Get the next highest power of
2 to prevent increasing hwm excessively in
21075 // This function is designed to be inlinable, so please take care when making
21076 // changes to the function body.
21077 function howMuchToRead(n, state) {
21078 if (n <=
0 || state.length ===
0 && state.ended) return
0;
21079 if (state.objectMode) return
1;
21081 // Only flow one buffer at a time
21082 if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;
21084 // If we're asking for more than the current hwm, then raise the hwm.
21085 if (n
> state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
21086 if (n <= state.length) return n;
21087 // Don't have enough
21088 if (!state.ended) {
21089 state.needReadable = true;
21092 return state.length;
21095 // you can override either this method, or the async _read(n) below.
21096 Readable.prototype.read = function (n) {
21098 n = parseInt(n,
10);
21099 var state = this._readableState;
21102 if (n !==
0) state.emittedReadable = false;
21104 // if we're doing read(
0) to trigger a readable event, but we
21105 // already have a bunch of data in the buffer, then just trigger
21106 // the 'readable' event and move on.
21107 if (n ===
0 && state.needReadable && (state.length
>= state.highWaterMark || state.ended)) {
21108 debug('read: emitReadable', state.length, state.ended);
21109 if (state.length ===
0 && state.ended) endReadable(this);else emitReadable(this);
21113 n = howMuchToRead(n, state);
21115 // if we've ended, and we're now clear, then finish it up.
21116 if (n ===
0 && state.ended) {
21117 if (state.length ===
0) endReadable(this);
21121 // All the actual chunk generation logic needs to be
21122 // *below* the call to _read. The reason is that in certain
21123 // synthetic stream cases, such as passthrough streams, _read
21124 // may be a completely synchronous operation which may change
21125 // the state of the read buffer, providing enough data when
21126 // before there was *not* enough.
21128 // So, the steps are:
21129 //
1. Figure out what the state of things will be after we do
21130 // a read from the buffer.
21132 //
2. If that resulting state will trigger a _read, then call _read.
21133 // Note that this may be asynchronous, or synchronous. Yes, it is
21134 // deeply ugly to write APIs this way, but that still doesn't mean
21135 // that the Readable class should behave improperly, as streams are
21136 // designed to be sync/async agnostic.
21137 // Take note if the _read call is sync or async (ie, if the read call
21138 // has returned yet), so that we know whether or not it's safe to emit
21141 //
3. Actually pull the requested chunks out of the buffer and return.
21143 // if we need a readable event, then we need to do some reading.
21144 var doRead = state.needReadable;
21145 debug('need readable', doRead);
21147 // if we currently have less than the highWaterMark, then also read some
21148 if (state.length ===
0 || state.length - n < state.highWaterMark) {
21150 debug('length less than watermark', doRead);
21153 // however, if we've ended, then there's no point, and if we're already
21154 // reading, then it's unnecessary.
21155 if (state.ended || state.reading) {
21157 debug('reading or ended', doRead);
21158 } else if (doRead) {
21160 state.reading = true;
21162 // if the length is currently zero, then we *need* a readable event.
21163 if (state.length ===
0) state.needReadable = true;
21164 // call internal read method
21165 this._read(state.highWaterMark);
21166 state.sync = false;
21167 // If _read pushed data synchronously, then `reading` will be false,
21168 // and we need to re-evaluate how much data we can return to the user.
21169 if (!state.reading) n = howMuchToRead(nOrig, state);
21173 if (n
> 0) ret = fromList(n, state);else ret = null;
21175 if (ret === null) {
21176 state.needReadable = true;
21182 if (state.length ===
0) {
21183 // If we have nothing in the buffer, then we want to know
21184 // as soon as we *do* get something into the buffer.
21185 if (!state.ended) state.needReadable = true;
21187 // If we tried to read() past the EOF, then emit end on the next tick.
21188 if (nOrig !== n && state.ended) endReadable(this);
21191 if (ret !== null) this.emit('data', ret);
21196 function chunkInvalid(state, chunk) {
21198 if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
21199 er = new TypeError('Invalid non-string/buffer chunk');
21204 function onEofChunk(stream, state) {
21205 if (state.ended) return;
21206 if (state.decoder) {
21207 var chunk = state.decoder.end();
21208 if (chunk && chunk.length) {
21209 state.buffer.push(chunk);
21210 state.length += state.objectMode ?
1 : chunk.length;
21213 state.ended = true;
21215 // emit 'readable' now to make sure it gets picked up.
21216 emitReadable(stream);
21219 // Don't emit readable right away in sync mode, because this can trigger
21220 // another read() call =
> stack overflow. This way, it might trigger
21221 // a nextTick recursion warning, but that's not so bad.
21222 function emitReadable(stream) {
21223 var state = stream._readableState;
21224 state.needReadable = false;
21225 if (!state.emittedReadable) {
21226 debug('emitReadable', state.flowing);
21227 state.emittedReadable = true;
21228 if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
21232 function emitReadable_(stream) {
21233 debug('emit readable');
21234 stream.emit('readable');
21238 // at this point, the user has presumably seen the 'readable' event,
21239 // and called read() to consume some data. that may have triggered
21240 // in turn another _read(n) call, in which case reading = true if
21241 // it's in progress.
21242 // However, if we're not ended, or reading, and the length < hwm,
21243 // then go ahead and try to read some more preemptively.
21244 function maybeReadMore(stream, state) {
21245 if (!state.readingMore) {
21246 state.readingMore = true;
21247 processNextTick(maybeReadMore_, stream, state);
21251 function maybeReadMore_(stream, state) {
21252 var len = state.length;
21253 while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {
21254 debug('maybeReadMore read
0');
21256 if (len === state.length)
21257 // didn't get any data, stop spinning.
21258 break;else len = state.length;
21260 state.readingMore = false;
21263 // abstract method. to be overridden in specific implementation classes.
21264 // call cb(er, data) where data is <= n in length.
21265 // for virtual (non-string, non-buffer) streams, "length" is somewhat
21266 // arbitrary, and perhaps not very meaningful.
21267 Readable.prototype._read = function (n) {
21268 this.emit('error', new Error('_read() is not implemented'));
21271 Readable.prototype.pipe = function (dest, pipeOpts) {
21273 var state = this._readableState;
21275 switch (state.pipesCount) {
21277 state.pipes = dest;
21280 state.pipes = [state.pipes, dest];
21283 state.pipes.push(dest);
21286 state.pipesCount +=
1;
21287 debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
21289 var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
21291 var endFn = doEnd ? onend : cleanup;
21292 if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
21294 dest.on('unpipe', onunpipe);
21295 function onunpipe(readable) {
21297 if (readable === src) {
21307 // when the dest drains, it reduces the awaitDrain counter
21308 // on the source. This would be more elegant with a .once()
21309 // handler in flow(), but adding and removing repeatedly is
21311 var ondrain = pipeOnDrain(src);
21312 dest.on('drain', ondrain);
21314 var cleanedUp = false;
21315 function cleanup() {
21317 // cleanup event handlers once the pipe is broken
21318 dest.removeListener('close', onclose);
21319 dest.removeListener('finish', onfinish);
21320 dest.removeListener('drain', ondrain);
21321 dest.removeListener('error', onerror);
21322 dest.removeListener('unpipe', onunpipe);
21323 src.removeListener('end', onend);
21324 src.removeListener('end', cleanup);
21325 src.removeListener('data', ondata);
21329 // if the reader is waiting for a drain event from this
21330 // specific writer, then it would cause it to never start
21332 // So, if this is awaiting a drain, then we just call it now.
21333 // If we don't know, then assume that we are waiting for one.
21334 if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();
21337 // If the user pushes more data while we're writing to dest then we'll end up
21338 // in ondata again. However, we only want to increase awaitDrain once because
21339 // dest will only emit one 'drain' event for the multiple writes.
21340 // =
> Introduce a guard on increasing awaitDrain.
21341 var increasedAwaitDrain = false;
21342 src.on('data', ondata);
21343 function ondata(chunk) {
21345 increasedAwaitDrain = false;
21346 var ret = dest.write(chunk);
21347 if (false === ret && !increasedAwaitDrain) {
21348 // If the user unpiped during `dest.write()`, it is possible
21349 // to get stuck in a permanently paused state if that write
21350 // also returned false.
21351 // =
> Check whether `dest` is still a piping destination.
21352 if ((state.pipesCount ===
1 && state.pipes === dest || state.pipesCount
> 1 && indexOf(state.pipes, dest) !== -
1) && !cleanedUp) {
21353 debug('false write response, pause', src._readableState.awaitDrain);
21354 src._readableState.awaitDrain++;
21355 increasedAwaitDrain = true;
21361 // if the dest has an error, then stop piping into it.
21362 // however, don't suppress the throwing behavior for this.
21363 function onerror(er) {
21364 debug('onerror', er);
21366 dest.removeListener('error', onerror);
21367 if (EElistenerCount(dest, 'error') ===
0) dest.emit('error', er);
21370 // Make sure our error handler is attached before userland ones.
21371 prependListener(dest, 'error', onerror);
21373 // Both close and finish should trigger unpipe, but only once.
21374 function onclose() {
21375 dest.removeListener('finish', onfinish);
21378 dest.once('close', onclose);
21379 function onfinish() {
21381 dest.removeListener('close', onclose);
21384 dest.once('finish', onfinish);
21386 function unpipe() {
21391 // tell the dest that it's being piped to
21392 dest.emit('pipe', src);
21394 // start the flow if it hasn't been started already.
21395 if (!state.flowing) {
21396 debug('pipe resume');
21403 function pipeOnDrain(src) {
21404 return function () {
21405 var state = src._readableState;
21406 debug('pipeOnDrain', state.awaitDrain);
21407 if (state.awaitDrain) state.awaitDrain--;
21408 if (state.awaitDrain ===
0 && EElistenerCount(src, 'data')) {
21409 state.flowing = true;
21415 Readable.prototype.unpipe = function (dest) {
21416 var state = this._readableState;
21418 // if we're not piping anywhere, then do nothing.
21419 if (state.pipesCount ===
0) return this;
21421 // just one destination. most common case.
21422 if (state.pipesCount ===
1) {
21423 // passed in one, but it's not the right one.
21424 if (dest && dest !== state.pipes) return this;
21426 if (!dest) dest = state.pipes;
21429 state.pipes = null;
21430 state.pipesCount =
0;
21431 state.flowing = false;
21432 if (dest) dest.emit('unpipe', this);
21436 // slow case. multiple pipe destinations.
21440 var dests = state.pipes;
21441 var len = state.pipesCount;
21442 state.pipes = null;
21443 state.pipesCount =
0;
21444 state.flowing = false;
21446 for (var i =
0; i < len; i++) {
21447 dests[i].emit('unpipe', this);
21451 // try to find the right one.
21452 var index = indexOf(state.pipes, dest);
21453 if (index === -
1) return this;
21455 state.pipes.splice(index,
1);
21456 state.pipesCount -=
1;
21457 if (state.pipesCount ===
1) state.pipes = state.pipes[
0];
21459 dest.emit('unpipe', this);
21464 // set up data events if they are asked for
21465 // Ensure readable listeners eventually get something
21466 Readable.prototype.on = function (ev, fn) {
21467 var res = Stream.prototype.on.call(this, ev, fn);
21469 if (ev === 'data') {
21470 // Start flowing on next tick if stream isn't explicitly paused
21471 if (this._readableState.flowing !== false) this.resume();
21472 } else if (ev === 'readable') {
21473 var state = this._readableState;
21474 if (!state.endEmitted && !state.readableListening) {
21475 state.readableListening = state.needReadable = true;
21476 state.emittedReadable = false;
21477 if (!state.reading) {
21478 processNextTick(nReadingNextTick, this);
21479 } else if (state.length) {
21480 emitReadable(this, state);
21487 Readable.prototype.addListener = Readable.prototype.on;
21489 function nReadingNextTick(self) {
21490 debug('readable nexttick read
0');
21494 // pause() and resume() are remnants of the legacy readable stream API
21495 // If the user uses them, then switch into old mode.
21496 Readable.prototype.resume = function () {
21497 var state = this._readableState;
21498 if (!state.flowing) {
21500 state.flowing = true;
21501 resume(this, state);
21506 function resume(stream, state) {
21507 if (!state.resumeScheduled) {
21508 state.resumeScheduled = true;
21509 processNextTick(resume_, stream, state);
21513 function resume_(stream, state) {
21514 if (!state.reading) {
21515 debug('resume read
0');
21519 state.resumeScheduled = false;
21520 state.awaitDrain =
0;
21521 stream.emit('resume');
21523 if (state.flowing && !state.reading) stream.read(
0);
21526 Readable.prototype.pause = function () {
21527 debug('call pause flowing=%j', this._readableState.flowing);
21528 if (false !== this._readableState.flowing) {
21530 this._readableState.flowing = false;
21531 this.emit('pause');
21536 function flow(stream) {
21537 var state = stream._readableState;
21538 debug('flow', state.flowing);
21539 while (state.flowing && stream.read() !== null) {}
21542 // wrap an old-style stream as the async data source.
21543 // This is *not* part of the readable stream interface.
21544 // It is an ugly unfortunate mess of history.
21545 Readable.prototype.wrap = function (stream) {
21546 var state = this._readableState;
21547 var paused = false;
21550 stream.on('end', function () {
21551 debug('wrapped end');
21552 if (state.decoder && !state.ended) {
21553 var chunk = state.decoder.end();
21554 if (chunk && chunk.length) self.push(chunk);
21560 stream.on('data', function (chunk) {
21561 debug('wrapped data');
21562 if (state.decoder) chunk = state.decoder.write(chunk);
21564 // don't skip over falsy values in objectMode
21565 if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
21567 var ret = self.push(chunk);
21574 // proxy all the other methods.
21575 // important when wrapping filters and duplexes.
21576 for (var i in stream) {
21577 if (this[i] === undefined && typeof stream[i] === 'function') {
21578 this[i] = function (method) {
21579 return function () {
21580 return stream[method].apply(stream, arguments);
21586 // proxy certain important events.
21587 var events = ['error', 'close', 'destroy', 'pause', 'resume'];
21588 forEach(events, function (ev) {
21589 stream.on(ev, self.emit.bind(self, ev));
21592 // when we try to consume some more bytes, simply unpause the
21593 // underlying stream.
21594 self._read = function (n) {
21595 debug('wrapped _read', n);
21605 // exposed for testing purposes only.
21606 Readable._fromList = fromList;
21608 // Pluck off n bytes from an array of buffers.
21609 // Length is the combined lengths of all the buffers in the list.
21610 // This function is designed to be inlinable, so please take care when making
21611 // changes to the function body.
21612 function fromList(n, state) {
21613 // nothing buffered
21614 if (state.length ===
0) return null;
21617 if (state.objectMode) ret = state.buffer.shift();else if (!n || n
>= state.length) {
21618 // read it all, truncate the list
21619 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);
21620 state.buffer.clear();
21622 // read part of list
21623 ret = fromListPartial(n, state.buffer, state.decoder);
21629 // Extracts only enough buffered data to satisfy the amount requested.
21630 // This function is designed to be inlinable, so please take care when making
21631 // changes to the function body.
21632 function fromListPartial(n, list, hasStrings) {
21634 if (n < list.head.data.length) {
21635 // slice is the same for buffers and strings
21636 ret = list.head.data.slice(
0, n);
21637 list.head.data = list.head.data.slice(n);
21638 } else if (n === list.head.data.length) {
21639 // first chunk is a perfect match
21640 ret = list.shift();
21642 // result spans more than one buffer
21643 ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);
21648 // Copies a specified amount of characters from the list of buffered data
21650 // This function is designed to be inlinable, so please take care when making
21651 // changes to the function body.
21652 function copyFromBufferString(n, list) {
21657 while (p = p.next) {
21659 var nb = n
> str.length ? str.length : n;
21660 if (nb === str.length) ret += str;else ret += str.slice(
0, n);
21663 if (nb === str.length) {
21665 if (p.next) list.head = p.next;else list.head = list.tail = null;
21668 p.data = str.slice(nb);
21678 // Copies a specified amount of bytes from the list of buffered data chunks.
21679 // This function is designed to be inlinable, so please take care when making
21680 // changes to the function body.
21681 function copyFromBuffer(n, list) {
21682 var ret = bufferShim.allocUnsafe(n);
21686 n -= p.data.length;
21687 while (p = p.next) {
21689 var nb = n
> buf.length ? buf.length : n;
21690 buf.copy(ret, ret.length - n,
0, nb);
21693 if (nb === buf.length) {
21695 if (p.next) list.head = p.next;else list.head = list.tail = null;
21698 p.data = buf.slice(nb);
21708 function endReadable(stream) {
21709 var state = stream._readableState;
21711 // If we get here before consuming all the bytes, then that is a
21712 // bug in node. Should never happen.
21713 if (state.length
> 0) throw new Error('
"endReadable()" called on non-empty stream');
21715 if (!state.endEmitted) {
21716 state.ended = true;
21717 processNextTick(endReadableNT, state, stream);
21721 function endReadableNT(state, stream) {
21722 // Check that we didn't get one last unshift.
21723 if (!state.endEmitted && state.length ===
0) {
21724 state.endEmitted = true;
21725 stream.readable = false;
21726 stream.emit('end');
21730 function forEach(xs, f) {
21731 for (var i =
0, l = xs.length; i < l; i++) {
21736 function indexOf(xs, x) {
21737 for (var i =
0, l = xs.length; i < l; i++) {
21738 if (xs[i] === x) return i;
21742 }).call(this,require('_process'))
21743 },{
"./_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){
21744 // a transform stream is a readable/writable stream where you do
21745 // something with the data. Sometimes it's called a
"filter",
21746 // but that's not a great name for it, since that implies a thing where
21747 // some bits pass through, and others are simply ignored. (That would
21748 // be a valid example of a transform, of course.)
21750 // While the output is causally related to the input, it's not a
21751 // necessarily symmetric or synchronous transformation. For example,
21752 // a zlib stream might take multiple plain-text writes(), and then
21753 // emit a single compressed chunk some time in the future.
21755 // Here's how this works:
21757 // The Transform stream has all the aspects of the readable and writable
21758 // stream classes. When you write(chunk), that calls _write(chunk,cb)
21759 // internally, and returns false if there's a lot of pending writes
21760 // buffered up. When you call read(), that calls _read(n) until
21761 // there's enough pending readable data buffered up.
21763 // In a transform stream, the written data is placed in a buffer. When
21764 // _read(n) is called, it transforms the queued up data, calling the
21765 // buffered _write cb's as it consumes chunks. If consuming a single
21766 // written chunk would result in multiple output chunks, then the first
21767 // outputted bit calls the readcb, and subsequent chunks just go into
21768 // the read buffer, and will cause it to emit 'readable' if necessary.
21770 // This way, back-pressure is actually determined by the reading side,
21771 // since _read has to be called to start processing a new chunk. However,
21772 // a pathological inflate type of transform can cause excessive buffering
21773 // here. For example, imagine a stream where every byte of input is
21774 // interpreted as an integer from
0-
255, and then results in that many
21775 // bytes of output. Writing the
4 bytes {ff,ff,ff,ff} would result in
21776 //
1kb of data being output. In this case, you could write a very small
21777 // amount of input, and end up with a very large amount of output. In
21778 // such a pathological inflating mechanism, there'd be no way to tell
21779 // the system to stop doing the transform. A single
4MB write could
21780 // cause the system to run out of memory.
21782 // However, even in such a pathological case, only a single written chunk
21783 // would be consumed, and then the rest would wait (un-transformed) until
21784 // the results of the previous transformed chunk were consumed.
21788 module.exports = Transform;
21790 var Duplex = require('./_stream_duplex');
21793 var util = require('core-util-is');
21794 util.inherits = require('inherits');
21797 util.inherits(Transform, Duplex);
21799 function TransformState(stream) {
21800 this.afterTransform = function (er, data) {
21801 return afterTransform(stream, er, data);
21804 this.needTransform = false;
21805 this.transforming = false;
21806 this.writecb = null;
21807 this.writechunk = null;
21808 this.writeencoding = null;
21811 function afterTransform(stream, er, data) {
21812 var ts = stream._transformState;
21813 ts.transforming = false;
21815 var cb = ts.writecb;
21817 if (!cb) return stream.emit('error', new Error('no writecb in Transform class'));
21819 ts.writechunk = null;
21822 if (data !== null && data !== undefined) stream.push(data);
21826 var rs = stream._readableState;
21827 rs.reading = false;
21828 if (rs.needReadable || rs.length < rs.highWaterMark) {
21829 stream._read(rs.highWaterMark);
21833 function Transform(options) {
21834 if (!(this instanceof Transform)) return new Transform(options);
21836 Duplex.call(this, options);
21838 this._transformState = new TransformState(this);
21842 // start out asking for a readable event once data is transformed.
21843 this._readableState.needReadable = true;
21845 // we have implemented the _read method, and done the other things
21846 // that Readable wants before the first _read call, so unset the
21847 // sync guard flag.
21848 this._readableState.sync = false;
21851 if (typeof options.transform === 'function') this._transform = options.transform;
21853 if (typeof options.flush === 'function') this._flush = options.flush;
21856 // When the writable side finishes, then flush out anything remaining.
21857 this.once('prefinish', function () {
21858 if (typeof this._flush === 'function') this._flush(function (er, data) {
21859 done(stream, er, data);
21860 });else done(stream);
21864 Transform.prototype.push = function (chunk, encoding) {
21865 this._transformState.needTransform = false;
21866 return Duplex.prototype.push.call(this, chunk, encoding);
21869 // This is the part where you do stuff!
21870 // override this function in implementation classes.
21871 // 'chunk' is an input chunk.
21873 // Call `push(newChunk)` to pass along transformed output
21874 // to the readable side. You may call 'push' zero or more times.
21876 // Call `cb(err)` when you are done with this chunk. If you pass
21877 // an error, then that'll put the hurt on the whole operation. If you
21878 // never call cb(), then you'll never get another chunk.
21879 Transform.prototype._transform = function (chunk, encoding, cb) {
21880 throw new Error('_transform() is not implemented');
21883 Transform.prototype._write = function (chunk, encoding, cb) {
21884 var ts = this._transformState;
21886 ts.writechunk = chunk;
21887 ts.writeencoding = encoding;
21888 if (!ts.transforming) {
21889 var rs = this._readableState;
21890 if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);
21894 // Doesn't matter what the args are here.
21895 // _transform does all the work.
21896 // That we got here means that the readable side wants more data.
21897 Transform.prototype._read = function (n) {
21898 var ts = this._transformState;
21900 if (ts.writechunk !== null && ts.writecb && !ts.transforming) {
21901 ts.transforming = true;
21902 this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
21904 // mark that we need a transform, so that any data that comes in
21905 // will get processed, now that we've asked for it.
21906 ts.needTransform = true;
21910 function done(stream, er, data) {
21911 if (er) return stream.emit('error', er);
21913 if (data !== null && data !== undefined) stream.push(data);
21915 // if there's nothing in the write buffer, then that means
21916 // that nothing more will ever be provided
21917 var ws = stream._writableState;
21918 var ts = stream._transformState;
21920 if (ws.length) throw new Error('Calling transform done when ws.length !=
0');
21922 if (ts.transforming) throw new Error('Calling transform done when still transforming');
21924 return stream.push(null);
21926 },{"./_stream_duplex":
15,"core-util-is":
6,"inherits":
9}],
19:[function(require,module,exports){
21927 (function (process){
21928 // A bit simpler than readable streams.
21929 // Implement an async ._write(chunk, encoding, cb), and it'll handle all
21930 // the drain event emission and buffering.
21934 module.exports = Writable;
21937 var processNextTick = require('process-nextick-args');
21941 var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(
0,
5))
> -
1 ? setImmediate : processNextTick;
21948 Writable.WritableState = WritableState;
21951 var util = require('core-util-is');
21952 util.inherits = require('inherits');
21956 var internalUtil = {
21957 deprecate: require('util-deprecate')
21965 Stream = require('st' + 'ream');
21966 } catch (_) {} finally {
21967 if (!Stream) Stream = require('events').EventEmitter;
21972 var Buffer = require('buffer').Buffer;
21974 var bufferShim = require('buffer-shims');
21977 util.inherits(Writable, Stream);
21981 function WriteReq(chunk, encoding, cb) {
21982 this.chunk = chunk;
21983 this.encoding = encoding;
21984 this.callback = cb;
21988 function WritableState(options, stream) {
21989 Duplex = Duplex || require('./_stream_duplex');
21991 options = options || {};
21993 // object stream flag to indicate whether or not this stream
21994 // contains buffers or objects.
21995 this.objectMode = !!options.objectMode;
21997 if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
21999 // the point at which write() starts returning false
22000 // Note:
0 is a valid value, means that we always return false if
22001 // the entire buffer is not flushed immediately on write()
22002 var hwm = options.highWaterMark;
22003 var defaultHwm = this.objectMode ?
16 :
16 *
1024;
22004 this.highWaterMark = hwm || hwm ===
0 ? hwm : defaultHwm;
22007 this.highWaterMark = ~ ~this.highWaterMark;
22009 // drain event flag.
22010 this.needDrain = false;
22011 // at the start of calling end()
22012 this.ending = false;
22013 // when end() has been called, and returned
22014 this.ended = false;
22015 // when 'finish' is emitted
22016 this.finished = false;
22018 // should we decode strings into buffers before passing to _write?
22019 // this is here so that some node-core streams can optimize string
22020 // handling at a lower level.
22021 var noDecode = options.decodeStrings === false;
22022 this.decodeStrings = !noDecode;
22024 // Crypto is kind of old and crusty. Historically, its default string
22025 // encoding is 'binary' so we have to make this configurable.
22026 // Everything else in the universe uses 'utf8', though.
22027 this.defaultEncoding = options.defaultEncoding || 'utf8';
22029 // not an actual buffer we keep track of, but a measurement
22030 // of how much we're waiting to get pushed to some underlying
22034 // a flag to see when we're in the middle of a write.
22035 this.writing = false;
22037 // when true all writes will be buffered until .uncork() call
22040 // a flag to be able to tell if the onwrite cb is called immediately,
22041 // or on a later tick. We set this to true at first, because any
22042 // actions that shouldn't happen until "later" should generally also
22043 // not happen before the first write call.
22046 // a flag to know if we're processing previously buffered items, which
22047 // may call the _write() callback in the same tick, so that we don't
22048 // end up in an overlapped onwrite situation.
22049 this.bufferProcessing = false;
22051 // the callback that's passed to _write(chunk,cb)
22052 this.onwrite = function (er) {
22053 onwrite(stream, er);
22056 // the callback that the user supplies to write(chunk,encoding,cb)
22057 this.writecb = null;
22059 // the amount that is being written when _write is called.
22062 this.bufferedRequest = null;
22063 this.lastBufferedRequest = null;
22065 // number of pending user-supplied write callbacks
22066 // this must be
0 before 'finish' can be emitted
22067 this.pendingcb =
0;
22069 // emit prefinish if the only thing we're waiting for is _write cbs
22070 // This is relevant for synchronous Transform streams
22071 this.prefinished = false;
22073 // True if the error was already emitted and should not be thrown again
22074 this.errorEmitted = false;
22076 // count buffered requests
22077 this.bufferedRequestCount =
0;
22079 // allocate the first CorkedRequest, there is always
22080 // one allocated and free to use, and we maintain at most two
22081 this.corkedRequestsFree = new CorkedRequest(this);
22084 WritableState.prototype.getBuffer = function getBuffer() {
22085 var current = this.bufferedRequest;
22089 current = current.next;
22096 Object.defineProperty(WritableState.prototype, 'buffer', {
22097 get: internalUtil.deprecate(function () {
22098 return this.getBuffer();
22099 }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
22104 // Test _writableState for inheritance to account for Duplex streams,
22105 // whose prototype chain only points to Readable.
22106 var realHasInstance;
22107 if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {
22108 realHasInstance = Function.prototype[Symbol.hasInstance];
22109 Object.defineProperty(Writable, Symbol.hasInstance, {
22110 value: function (object) {
22111 if (realHasInstance.call(this, object)) return true;
22113 return object && object._writableState instanceof WritableState;
22117 realHasInstance = function (object) {
22118 return object instanceof this;
22122 function Writable(options) {
22123 Duplex = Duplex || require('./_stream_duplex');
22125 // Writable ctor is applied to Duplexes, too.
22126 // `realHasInstance` is necessary because using plain `instanceof`
22127 // would return false, as no `_writableState` property is attached.
22129 // Trying to use the custom `instanceof` for Writable here will also break the
22130 // Node.js LazyTransform implementation, which has a non-trivial getter for
22131 // `_writableState` that would lead to infinite recursion.
22132 if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {
22133 return new Writable(options);
22136 this._writableState = new WritableState(options, this);
22139 this.writable = true;
22142 if (typeof options.write === 'function') this._write = options.write;
22144 if (typeof options.writev === 'function') this._writev = options.writev;
22150 // Otherwise people can pipe Writable streams, which is just wrong.
22151 Writable.prototype.pipe = function () {
22152 this.emit('error', new Error('Cannot pipe, not readable'));
22155 function writeAfterEnd(stream, cb) {
22156 var er = new Error('write after end');
22157 // TODO: defer error events consistently everywhere, not just the cb
22158 stream.emit('error', er);
22159 processNextTick(cb, er);
22162 // If we get something that is not a buffer, string, null, or undefined,
22163 // and we're not in objectMode, then that's an error.
22164 // Otherwise stream chunks are all considered to be of length=
1, and the
22165 // watermarks determine how many objects to keep in the buffer, rather than
22166 // how many bytes or characters.
22167 function validChunk(stream, state, chunk, cb) {
22170 // Always throw error if a null is written
22171 // if we are not in object mode then throw
22172 // if it is not a buffer, string, or undefined.
22173 if (chunk === null) {
22174 er = new TypeError('May not write null values to stream');
22175 } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
22176 er = new TypeError('Invalid non-string/buffer chunk');
22179 stream.emit('error', er);
22180 processNextTick(cb, er);
22186 Writable.prototype.write = function (chunk, encoding, cb) {
22187 var state = this._writableState;
22190 if (typeof encoding === 'function') {
22195 if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
22197 if (typeof cb !== 'function') cb = nop;
22199 if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
22201 ret = writeOrBuffer(this, state, chunk, encoding, cb);
22207 Writable.prototype.cork = function () {
22208 var state = this._writableState;
22213 Writable.prototype.uncork = function () {
22214 var state = this._writableState;
22216 if (state.corked) {
22219 if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);
22223 Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
22224 // node::ParseEncoding() requires lower case.
22225 if (typeof encoding === 'string') encoding = encoding.toLowerCase();
22226 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);
22227 this._writableState.defaultEncoding = encoding;
22231 function decodeChunk(state, chunk, encoding) {
22232 if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
22233 chunk = bufferShim.from(chunk, encoding);
22238 // if we're already writing something, then just put this
22239 // in the queue, and wait our turn. Otherwise, call _write
22240 // If we return false, then we need a drain event, so set that flag.
22241 function writeOrBuffer(stream, state, chunk, encoding, cb) {
22242 chunk = decodeChunk(state, chunk, encoding);
22244 if (Buffer.isBuffer(chunk)) encoding = 'buffer';
22245 var len = state.objectMode ?
1 : chunk.length;
22247 state.length += len;
22249 var ret = state.length < state.highWaterMark;
22250 // we must ensure that previous needDrain will not be reset to false.
22251 if (!ret) state.needDrain = true;
22253 if (state.writing || state.corked) {
22254 var last = state.lastBufferedRequest;
22255 state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
22257 last.next = state.lastBufferedRequest;
22259 state.bufferedRequest = state.lastBufferedRequest;
22261 state.bufferedRequestCount +=
1;
22263 doWrite(stream, state, false, len, chunk, encoding, cb);
22269 function doWrite(stream, state, writev, len, chunk, encoding, cb) {
22270 state.writelen = len;
22271 state.writecb = cb;
22272 state.writing = true;
22274 if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
22275 state.sync = false;
22278 function onwriteError(stream, state, sync, er, cb) {
22280 if (sync) processNextTick(cb, er);else cb(er);
22282 stream._writableState.errorEmitted = true;
22283 stream.emit('error', er);
22286 function onwriteStateUpdate(state) {
22287 state.writing = false;
22288 state.writecb = null;
22289 state.length -= state.writelen;
22290 state.writelen =
0;
22293 function onwrite(stream, er) {
22294 var state = stream._writableState;
22295 var sync = state.sync;
22296 var cb = state.writecb;
22298 onwriteStateUpdate(state);
22300 if (er) onwriteError(stream, state, sync, er, cb);else {
22301 // Check if we're actually ready to finish, but don't emit yet
22302 var finished = needFinish(state);
22304 if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {
22305 clearBuffer(stream, state);
22310 asyncWrite(afterWrite, stream, state, finished, cb);
22313 afterWrite(stream, state, finished, cb);
22318 function afterWrite(stream, state, finished, cb) {
22319 if (!finished) onwriteDrain(stream, state);
22322 finishMaybe(stream, state);
22325 // Must force callback to be called on nextTick, so that we don't
22326 // emit 'drain' before the write() consumer gets the 'false' return
22327 // value, and has a chance to attach a 'drain' listener.
22328 function onwriteDrain(stream, state) {
22329 if (state.length ===
0 && state.needDrain) {
22330 state.needDrain = false;
22331 stream.emit('drain');
22335 // if there's something in the buffer waiting, then process it
22336 function clearBuffer(stream, state) {
22337 state.bufferProcessing = true;
22338 var entry = state.bufferedRequest;
22340 if (stream._writev && entry && entry.next) {
22341 // Fast case, write everything using _writev()
22342 var l = state.bufferedRequestCount;
22343 var buffer = new Array(l);
22344 var holder = state.corkedRequestsFree;
22345 holder.entry = entry;
22349 buffer[count] = entry;
22350 entry = entry.next;
22354 doWrite(stream, state, true, state.length, buffer, '', holder.finish);
22356 // doWrite is almost always async, defer these to save a bit of time
22357 // as the hot path ends with doWrite
22359 state.lastBufferedRequest = null;
22361 state.corkedRequestsFree = holder.next;
22362 holder.next = null;
22364 state.corkedRequestsFree = new CorkedRequest(state);
22367 // Slow case, write chunks one-by-one
22369 var chunk = entry.chunk;
22370 var encoding = entry.encoding;
22371 var cb = entry.callback;
22372 var len = state.objectMode ?
1 : chunk.length;
22374 doWrite(stream, state, false, len, chunk, encoding, cb);
22375 entry = entry.next;
22376 // if we didn't call the onwrite immediately, then
22377 // it means that we need to wait until it does.
22378 // also, that means that the chunk and cb are currently
22379 // being processed, so move the buffer counter past them.
22380 if (state.writing) {
22385 if (entry === null) state.lastBufferedRequest = null;
22388 state.bufferedRequestCount =
0;
22389 state.bufferedRequest = entry;
22390 state.bufferProcessing = false;
22393 Writable.prototype._write = function (chunk, encoding, cb) {
22394 cb(new Error('_write() is not implemented'));
22397 Writable.prototype._writev = null;
22399 Writable.prototype.end = function (chunk, encoding, cb) {
22400 var state = this._writableState;
22402 if (typeof chunk === 'function') {
22406 } else if (typeof encoding === 'function') {
22411 if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);
22413 // .end() fully uncorks
22414 if (state.corked) {
22419 // ignore unnecessary end() calls.
22420 if (!state.ending && !state.finished) endWritable(this, state, cb);
22423 function needFinish(state) {
22424 return state.ending && state.length ===
0 && state.bufferedRequest === null && !state.finished && !state.writing;
22427 function prefinish(stream, state) {
22428 if (!state.prefinished) {
22429 state.prefinished = true;
22430 stream.emit('prefinish');
22434 function finishMaybe(stream, state) {
22435 var need = needFinish(state);
22437 if (state.pendingcb ===
0) {
22438 prefinish(stream, state);
22439 state.finished = true;
22440 stream.emit('finish');
22442 prefinish(stream, state);
22448 function endWritable(stream, state, cb) {
22449 state.ending = true;
22450 finishMaybe(stream, state);
22452 if (state.finished) processNextTick(cb);else stream.once('finish', cb);
22454 state.ended = true;
22455 stream.writable = false;
22458 // It seems a linked list but it is not
22459 // there will be only
2 of these for each stream
22460 function CorkedRequest(state) {
22466 this.finish = function (err) {
22467 var entry = _this.entry;
22468 _this.entry = null;
22470 var cb = entry.callback;
22473 entry = entry.next;
22475 if (state.corkedRequestsFree) {
22476 state.corkedRequestsFree.next = _this;
22478 state.corkedRequestsFree = _this;
22482 }).call(this,require('_process'))
22483 },{"./_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){
22486 var Buffer = require('buffer').Buffer;
22488 var bufferShim = require('buffer-shims');
22491 module.exports = BufferList;
22493 function BufferList() {
22499 BufferList.prototype.push = function (v) {
22500 var entry = { data: v, next: null };
22501 if (this.length
> 0) this.tail.next = entry;else this.head = entry;
22506 BufferList.prototype.unshift = function (v) {
22507 var entry = { data: v, next: this.head };
22508 if (this.length ===
0) this.tail = entry;
22513 BufferList.prototype.shift = function () {
22514 if (this.length ===
0) return;
22515 var ret = this.head.data;
22516 if (this.length ===
1) this.head = this.tail = null;else this.head = this.head.next;
22521 BufferList.prototype.clear = function () {
22522 this.head = this.tail = null;
22526 BufferList.prototype.join = function (s) {
22527 if (this.length ===
0) return '';
22529 var ret = '' + p.data;
22530 while (p = p.next) {
22535 BufferList.prototype.concat = function (n) {
22536 if (this.length ===
0) return bufferShim.alloc(
0);
22537 if (this.length ===
1) return this.head.data;
22538 var ret = bufferShim.allocUnsafe(n
>>> 0);
22542 p.data.copy(ret, i);
22543 i += p.data.length;
22548 },{
"buffer":
5,
"buffer-shims":
4}],
21:[function(require,module,exports){
22549 module.exports = require(
"./lib/_stream_passthrough.js")
22551 },{
"./lib/_stream_passthrough.js":
16}],
22:[function(require,module,exports){
22552 (function (process){
22553 var Stream = (function (){
22555 return require('st' + 'ream'); // hack to fix a circular dependency issue when used with browserify
22558 exports = module.exports = require('./lib/_stream_readable.js');
22559 exports.Stream = Stream || exports;
22560 exports.Readable = exports;
22561 exports.Writable = require('./lib/_stream_writable.js');
22562 exports.Duplex = require('./lib/_stream_duplex.js');
22563 exports.Transform = require('./lib/_stream_transform.js');
22564 exports.PassThrough = require('./lib/_stream_passthrough.js');
22566 if (!process.browser && process.env.READABLE_STREAM === 'disable' && Stream) {
22567 module.exports = Stream;
22570 }).call(this,require('_process'))
22571 },{
"./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){
22572 module.exports = require(
"./lib/_stream_transform.js")
22574 },{
"./lib/_stream_transform.js":
18}],
24:[function(require,module,exports){
22575 module.exports = require(
"./lib/_stream_writable.js")
22577 },{
"./lib/_stream_writable.js":
19}],
25:[function(require,module,exports){
22578 // Copyright Joyent, Inc. and other Node contributors.
22580 // Permission is hereby granted, free of charge, to any person obtaining a
22581 // copy of this software and associated documentation files (the
22582 //
"Software"), to deal in the Software without restriction, including
22583 // without limitation the rights to use, copy, modify, merge, publish,
22584 // distribute, sublicense, and/or sell copies of the Software, and to permit
22585 // persons to whom the Software is furnished to do so, subject to the
22586 // following conditions:
22588 // The above copyright notice and this permission notice shall be included
22589 // in all copies or substantial portions of the Software.
22591 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22592 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22593 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
22594 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
22595 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22596 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22597 // USE OR OTHER DEALINGS IN THE SOFTWARE.
22599 module.exports = Stream;
22601 var EE = require('events').EventEmitter;
22602 var inherits = require('inherits');
22604 inherits(Stream, EE);
22605 Stream.Readable = require('readable-stream/readable.js');
22606 Stream.Writable = require('readable-stream/writable.js');
22607 Stream.Duplex = require('readable-stream/duplex.js');
22608 Stream.Transform = require('readable-stream/transform.js');
22609 Stream.PassThrough = require('readable-stream/passthrough.js');
22611 // Backwards-compat with node
0.4.x
22612 Stream.Stream = Stream;
22616 // old-style streams. Note that the pipe method (the only relevant
22617 // part of this class) is overridden in the Readable class.
22619 function Stream() {
22623 Stream.prototype.pipe = function(dest, options) {
22626 function ondata(chunk) {
22627 if (dest.writable) {
22628 if (false === dest.write(chunk) && source.pause) {
22634 source.on('data', ondata);
22636 function ondrain() {
22637 if (source.readable && source.resume) {
22642 dest.on('drain', ondrain);
22644 // If the 'end' option is not supplied, dest.end() will be called when
22645 // source gets the 'end' or 'close' events. Only dest.end() once.
22646 if (!dest._isStdio && (!options || options.end !== false)) {
22647 source.on('end', onend);
22648 source.on('close', onclose);
22651 var didOnEnd = false;
22653 if (didOnEnd) return;
22660 function onclose() {
22661 if (didOnEnd) return;
22664 if (typeof dest.destroy === 'function') dest.destroy();
22667 // don't leave dangling pipes when there are errors.
22668 function onerror(er) {
22670 if (EE.listenerCount(this, 'error') ===
0) {
22671 throw er; // Unhandled stream error in pipe.
22675 source.on('error', onerror);
22676 dest.on('error', onerror);
22678 // remove all the event listeners that were added.
22679 function cleanup() {
22680 source.removeListener('data', ondata);
22681 dest.removeListener('drain', ondrain);
22683 source.removeListener('end', onend);
22684 source.removeListener('close', onclose);
22686 source.removeListener('error', onerror);
22687 dest.removeListener('error', onerror);
22689 source.removeListener('end', cleanup);
22690 source.removeListener('close', cleanup);
22692 dest.removeListener('close', cleanup);
22695 source.on('end', cleanup);
22696 source.on('close', cleanup);
22698 dest.on('close', cleanup);
22700 dest.emit('pipe', source);
22702 // Allow for unix-like usage: A.pipe(B).pipe(C)
22706 },{
"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){
22707 // Copyright Joyent, Inc. and other Node contributors.
22709 // Permission is hereby granted, free of charge, to any person obtaining a
22710 // copy of this software and associated documentation files (the
22711 //
"Software"), to deal in the Software without restriction, including
22712 // without limitation the rights to use, copy, modify, merge, publish,
22713 // distribute, sublicense, and/or sell copies of the Software, and to permit
22714 // persons to whom the Software is furnished to do so, subject to the
22715 // following conditions:
22717 // The above copyright notice and this permission notice shall be included
22718 // in all copies or substantial portions of the Software.
22720 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22721 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22722 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
22723 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
22724 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22725 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22726 // USE OR OTHER DEALINGS IN THE SOFTWARE.
22728 var Buffer = require('buffer').Buffer;
22730 var isBufferEncoding = Buffer.isEncoding
22731 || function(encoding) {
22732 switch (encoding && encoding.toLowerCase()) {
22733 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;
22734 default: return false;
22739 function assertEncoding(encoding) {
22740 if (encoding && !isBufferEncoding(encoding)) {
22741 throw new Error('Unknown encoding: ' + encoding);
22745 // StringDecoder provides an interface for efficiently splitting a series of
22746 // buffers into a series of JS strings without breaking apart multi-byte
22747 // characters. CESU-
8 is handled as part of the UTF-
8 encoding.
22749 // @TODO Handling all encodings inside a single object makes it very difficult
22750 // to reason about this code, so it should be split up in the future.
22751 // @TODO There should be a utf8-strict encoding that rejects invalid UTF-
8 code
22752 // points as used by CESU-
8.
22753 var StringDecoder = exports.StringDecoder = function(encoding) {
22754 this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');
22755 assertEncoding(encoding);
22756 switch (this.encoding) {
22758 // CESU-
8 represents each of Surrogate Pair by
3-bytes
22759 this.surrogateSize =
3;
22763 // UTF-
16 represents each of Surrogate Pair by
2-bytes
22764 this.surrogateSize =
2;
22765 this.detectIncompleteChar = utf16DetectIncompleteChar;
22768 // Base-
64 stores
3 bytes in
4 chars, and pads the remainder.
22769 this.surrogateSize =
3;
22770 this.detectIncompleteChar = base64DetectIncompleteChar;
22773 this.write = passThroughWrite;
22777 // Enough space to store all bytes of a single character. UTF-
8 needs
4
22778 // bytes, but CESU-
8 may require up to
6 (
3 bytes per surrogate).
22779 this.charBuffer = new Buffer(
6);
22780 // Number of bytes received for the current incomplete multi-byte character.
22781 this.charReceived =
0;
22782 // Number of bytes expected for the current incomplete multi-byte character.
22783 this.charLength =
0;
22787 // write decodes the given buffer and returns it as JS string that is
22788 // guaranteed to not contain any partial multi-byte characters. Any partial
22789 // character found at the end of the buffer is buffered up, and will be
22790 // returned when calling write again with the remaining bytes.
22792 // Note: Converting a Buffer containing an orphan surrogate to a String
22793 // currently works, but converting a String to a Buffer (via `new Buffer`, or
22794 // Buffer#write) will replace incomplete surrogates with the unicode
22795 // replacement character. See https://codereview.chromium.org/
121173009/ .
22796 StringDecoder.prototype.write = function(buffer) {
22798 // if our last write ended with an incomplete multibyte character
22799 while (this.charLength) {
22800 // determine how many remaining bytes this buffer has to offer for this char
22801 var available = (buffer.length
>= this.charLength - this.charReceived) ?
22802 this.charLength - this.charReceived :
22805 // add the new bytes to the char buffer
22806 buffer.copy(this.charBuffer, this.charReceived,
0, available);
22807 this.charReceived += available;
22809 if (this.charReceived < this.charLength) {
22810 // still not enough chars in this buffer? wait for more ...
22814 // remove bytes belonging to the current character from the buffer
22815 buffer = buffer.slice(available, buffer.length);
22817 // get the character that was split
22818 charStr = this.charBuffer.slice(
0, this.charLength).toString(this.encoding);
22820 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
22821 var charCode = charStr.charCodeAt(charStr.length -
1);
22822 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
22823 this.charLength += this.surrogateSize;
22827 this.charReceived = this.charLength =
0;
22829 // if there are no more bytes in this buffer, just emit our char
22830 if (buffer.length ===
0) {
22836 // determine and set charLength / charReceived
22837 this.detectIncompleteChar(buffer);
22839 var end = buffer.length;
22840 if (this.charLength) {
22841 // buffer the incomplete character bytes we got
22842 buffer.copy(this.charBuffer,
0, buffer.length - this.charReceived, end);
22843 end -= this.charReceived;
22846 charStr += buffer.toString(this.encoding,
0, end);
22848 var end = charStr.length -
1;
22849 var charCode = charStr.charCodeAt(end);
22850 // CESU-
8: lead surrogate (D800-DBFF) is also the incomplete character
22851 if (charCode
>=
0xD800 && charCode <=
0xDBFF) {
22852 var size = this.surrogateSize;
22853 this.charLength += size;
22854 this.charReceived += size;
22855 this.charBuffer.copy(this.charBuffer, size,
0, size);
22856 buffer.copy(this.charBuffer,
0,
0, size);
22857 return charStr.substring(
0, end);
22860 // or just emit the charStr
22864 // detectIncompleteChar determines if there is an incomplete UTF-
8 character at
22865 // the end of the given buffer. If so, it sets this.charLength to the byte
22866 // length that character, and sets this.charReceived to the number of bytes
22867 // that are available for this character.
22868 StringDecoder.prototype.detectIncompleteChar = function(buffer) {
22869 // determine how many bytes we have to check at the end of this buffer
22870 var i = (buffer.length
>=
3) ?
3 : buffer.length;
22872 // Figure out if one of the last i bytes of our buffer announces an
22873 // incomplete char.
22874 for (; i
> 0; i--) {
22875 var c = buffer[buffer.length - i];
22877 // See http://en.wikipedia.org/wiki/UTF-
8#Description
22880 if (i ==
1 && c
>> 5 ==
0x06) {
22881 this.charLength =
2;
22886 if (i <=
2 && c
>> 4 ==
0x0E) {
22887 this.charLength =
3;
22892 if (i <=
3 && c
>> 3 ==
0x1E) {
22893 this.charLength =
4;
22897 this.charReceived = i;
22900 StringDecoder.prototype.end = function(buffer) {
22902 if (buffer && buffer.length)
22903 res = this.write(buffer);
22905 if (this.charReceived) {
22906 var cr = this.charReceived;
22907 var buf = this.charBuffer;
22908 var enc = this.encoding;
22909 res += buf.slice(
0, cr).toString(enc);
22915 function passThroughWrite(buffer) {
22916 return buffer.toString(this.encoding);
22919 function utf16DetectIncompleteChar(buffer) {
22920 this.charReceived = buffer.length %
2;
22921 this.charLength = this.charReceived ?
2 :
0;
22924 function base64DetectIncompleteChar(buffer) {
22925 this.charReceived = buffer.length %
3;
22926 this.charLength = this.charReceived ?
3 :
0;
22929 },{
"buffer":
5}],
27:[function(require,module,exports){
22930 (function (global){
22936 module.exports = deprecate;
22939 * Mark that a method should not be used.
22940 * Returns a modified function which warns once by default.
22942 * If `localStorage.noDeprecation = true` is set, then it is a no-op.
22944 * If `localStorage.throwDeprecation = true` is set, then deprecated functions
22945 * will throw an Error when invoked.
22947 * If `localStorage.traceDeprecation = true` is set, then deprecated functions
22948 * will invoke `console.trace()` instead of `console.error()`.
22950 * @param {Function} fn - the function to deprecate
22951 * @param {String} msg - the string to print to the console when `fn` is invoked
22952 * @returns {Function} a new
"deprecated" version of `fn`
22956 function deprecate (fn, msg) {
22957 if (config('noDeprecation')) {
22961 var warned = false;
22962 function deprecated() {
22964 if (config('throwDeprecation')) {
22965 throw new Error(msg);
22966 } else if (config('traceDeprecation')) {
22967 console.trace(msg);
22973 return fn.apply(this, arguments);
22980 * Checks `localStorage` for boolean values for the given `name`.
22982 * @param {String} name
22983 * @returns {Boolean}
22987 function config (name) {
22988 // accessing global.localStorage can trigger a DOMException in sandboxed iframes
22990 if (!global.localStorage) return false;
22994 var val = global.localStorage[name];
22995 if (null == val) return false;
22996 return String(val).toLowerCase() === 'true';
22999 }).call(this,typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
23000 },{}],
28:[function(require,module,exports){
23001 arguments[
4][
9][
0].apply(exports,arguments)
23002 },{
"dup":
9}],
29:[function(require,module,exports){
23003 module.exports = function isBuffer(arg) {
23004 return arg && typeof arg === 'object'
23005 && typeof arg.copy === 'function'
23006 && typeof arg.fill === 'function'
23007 && typeof arg.readUInt8 === 'function';
23009 },{}],
30:[function(require,module,exports){
23010 (function (process,global){
23011 // Copyright Joyent, Inc. and other Node contributors.
23013 // Permission is hereby granted, free of charge, to any person obtaining a
23014 // copy of this software and associated documentation files (the
23015 //
"Software"), to deal in the Software without restriction, including
23016 // without limitation the rights to use, copy, modify, merge, publish,
23017 // distribute, sublicense, and/or sell copies of the Software, and to permit
23018 // persons to whom the Software is furnished to do so, subject to the
23019 // following conditions:
23021 // The above copyright notice and this permission notice shall be included
23022 // in all copies or substantial portions of the Software.
23024 // THE SOFTWARE IS PROVIDED
"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23025 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23026 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
23027 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
23028 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
23029 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
23030 // USE OR OTHER DEALINGS IN THE SOFTWARE.
23032 var formatRegExp = /%[sdj%]/g;
23033 exports.format = function(f) {
23034 if (!isString(f)) {
23036 for (var i =
0; i < arguments.length; i++) {
23037 objects.push(inspect(arguments[i]));
23039 return objects.join(' ');
23043 var args = arguments;
23044 var len = args.length;
23045 var str = String(f).replace(formatRegExp, function(x) {
23046 if (x === '%%') return '%';
23047 if (i
>= len) return x;
23049 case '%s': return String(args[i++]);
23050 case '%d': return Number(args[i++]);
23053 return JSON.stringify(args[i++]);
23055 return '[Circular]';
23061 for (var x = args[i]; i < len; x = args[++i]) {
23062 if (isNull(x) || !isObject(x)) {
23065 str += ' ' + inspect(x);
23072 // Mark that a method should not be used.
23073 // Returns a modified function which warns once by default.
23074 // If --no-deprecation is set, then it is a no-op.
23075 exports.deprecate = function(fn, msg) {
23076 // Allow for deprecating things in the process of starting up.
23077 if (isUndefined(global.process)) {
23078 return function() {
23079 return exports.deprecate(fn, msg).apply(this, arguments);
23083 if (process.noDeprecation === true) {
23087 var warned = false;
23088 function deprecated() {
23090 if (process.throwDeprecation) {
23091 throw new Error(msg);
23092 } else if (process.traceDeprecation) {
23093 console.trace(msg);
23095 console.error(msg);
23099 return fn.apply(this, arguments);
23108 exports.debuglog = function(set) {
23109 if (isUndefined(debugEnviron))
23110 debugEnviron = process.env.NODE_DEBUG || '';
23111 set = set.toUpperCase();
23112 if (!debugs[set]) {
23113 if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) {
23114 var pid = process.pid;
23115 debugs[set] = function() {
23116 var msg = exports.format.apply(exports, arguments);
23117 console.error('%s %d: %s', set, pid, msg);
23120 debugs[set] = function() {};
23123 return debugs[set];
23128 * Echos the value of a value. Trys to print the value out
23129 * in the best way possible given the different types.
23131 * @param {Object} obj The object to print out.
23132 * @param {Object} opts Optional options object that alters the output.
23134 /* legacy: obj, showHidden, depth, colors*/
23135 function inspect(obj, opts) {
23139 stylize: stylizeNoColor
23142 if (arguments.length
>=
3) ctx.depth = arguments[
2];
23143 if (arguments.length
>=
4) ctx.colors = arguments[
3];
23144 if (isBoolean(opts)) {
23146 ctx.showHidden = opts;
23148 // got an "options" object
23149 exports._extend(ctx, opts);
23151 // set default options
23152 if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
23153 if (isUndefined(ctx.depth)) ctx.depth =
2;
23154 if (isUndefined(ctx.colors)) ctx.colors = false;
23155 if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
23156 if (ctx.colors) ctx.stylize = stylizeWithColor;
23157 return formatValue(ctx, obj, ctx.depth);
23159 exports.inspect = inspect;
23162 // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics
23165 'italic' : [
3,
23],
23166 'underline' : [
4,
24],
23167 'inverse' : [
7,
27],
23168 'white' : [
37,
39],
23170 'black' : [
30,
39],
23173 'green' : [
32,
39],
23174 'magenta' : [
35,
39],
23176 'yellow' : [
33,
39]
23179 // Don't use 'blue' not visible on cmd.exe
23182 'number': 'yellow',
23183 'boolean': 'yellow',
23184 'undefined': 'grey',
23188 // "name": intentionally not styling
23193 function stylizeWithColor(str, styleType) {
23194 var style = inspect.styles[styleType];
23197 return '\u001b[' + inspect.colors[style][
0] + 'm' + str +
23198 '\u001b[' + inspect.colors[style][
1] + 'm';
23205 function stylizeNoColor(str, styleType) {
23210 function arrayToHash(array) {
23213 array.forEach(function(val, idx) {
23221 function formatValue(ctx, value, recurseTimes) {
23222 // Provide a hook for user-specified inspect functions.
23223 // Check that value is an object with an inspect function on it
23224 if (ctx.customInspect &&
23226 isFunction(value.inspect) &&
23227 // Filter out the util module, it's inspect function is special
23228 value.inspect !== exports.inspect &&
23229 // Also filter out any prototype objects using the circular check.
23230 !(value.constructor && value.constructor.prototype === value)) {
23231 var ret = value.inspect(recurseTimes, ctx);
23232 if (!isString(ret)) {
23233 ret = formatValue(ctx, ret, recurseTimes);
23238 // Primitive types cannot have properties
23239 var primitive = formatPrimitive(ctx, value);
23244 // Look up the keys of the object.
23245 var keys = Object.keys(value);
23246 var visibleKeys = arrayToHash(keys);
23248 if (ctx.showHidden) {
23249 keys = Object.getOwnPropertyNames(value);
23252 // IE doesn't make error fields non-enumerable
23253 // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs
.94).aspx
23255 && (keys.indexOf('message')
>=
0 || keys.indexOf('description')
>=
0)) {
23256 return formatError(value);
23259 // Some type of object without properties can be shortcutted.
23260 if (keys.length ===
0) {
23261 if (isFunction(value)) {
23262 var name = value.name ? ': ' + value.name : '';
23263 return ctx.stylize('[Function' + name + ']', 'special');
23265 if (isRegExp(value)) {
23266 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
23268 if (isDate(value)) {
23269 return ctx.stylize(Date.prototype.toString.call(value), 'date');
23271 if (isError(value)) {
23272 return formatError(value);
23276 var base = '', array = false, braces = ['{', '}'];
23278 // Make Array say that they are Array
23279 if (isArray(value)) {
23281 braces = ['[', ']'];
23284 // Make functions say that they are functions
23285 if (isFunction(value)) {
23286 var n = value.name ? ': ' + value.name : '';
23287 base = ' [Function' + n + ']';
23290 // Make RegExps say that they are RegExps
23291 if (isRegExp(value)) {
23292 base = ' ' + RegExp.prototype.toString.call(value);
23295 // Make dates with properties first say the date
23296 if (isDate(value)) {
23297 base = ' ' + Date.prototype.toUTCString.call(value);
23300 // Make error with message first say the error
23301 if (isError(value)) {
23302 base = ' ' + formatError(value);
23305 if (keys.length ===
0 && (!array || value.length ==
0)) {
23306 return braces[
0] + base + braces[
1];
23309 if (recurseTimes <
0) {
23310 if (isRegExp(value)) {
23311 return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
23313 return ctx.stylize('[Object]', 'special');
23317 ctx.seen.push(value);
23321 output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
23323 output = keys.map(function(key) {
23324 return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
23330 return reduceToSingleString(output, base, braces);
23334 function formatPrimitive(ctx, value) {
23335 if (isUndefined(value))
23336 return ctx.stylize('undefined', 'undefined');
23337 if (isString(value)) {
23338 var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
23339 .replace(/'/g, "\\'")
23340 .replace(/\\"/g, '"') + '\'';
23341 return ctx.stylize(simple, 'string');
23343 if (isNumber(value))
23344 return ctx.stylize('' + value, 'number');
23345 if (isBoolean(value))
23346 return ctx.stylize('' + value, 'boolean');
23347 // For some reason typeof null is "object", so special case here.
23349 return ctx.stylize('null', 'null');
23353 function formatError(value) {
23354 return '[' + Error.prototype.toString.call(value) + ']';
23358 function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
23360 for (var i =
0, l = value.length; i < l; ++i) {
23361 if (hasOwnProperty(value, String(i))) {
23362 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
23368 keys.forEach(function(key) {
23369 if (!key.match(/^\d+$/)) {
23370 output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
23378 function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
23379 var name, str, desc;
23380 desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };
23383 str = ctx.stylize('[Getter/Setter]', 'special');
23385 str = ctx.stylize('[Getter]', 'special');
23389 str = ctx.stylize('[Setter]', 'special');
23392 if (!hasOwnProperty(visibleKeys, key)) {
23393 name = '[' + key + ']';
23396 if (ctx.seen.indexOf(desc.value) <
0) {
23397 if (isNull(recurseTimes)) {
23398 str = formatValue(ctx, desc.value, null);
23400 str = formatValue(ctx, desc.value, recurseTimes -
1);
23402 if (str.indexOf('\n')
> -
1) {
23404 str = str.split('\n').map(function(line) {
23406 }).join('\n').substr(
2);
23408 str = '\n' + str.split('\n').map(function(line) {
23414 str = ctx.stylize('[Circular]', 'special');
23417 if (isUndefined(name)) {
23418 if (array && key.match(/^\d+$/)) {
23421 name = JSON.stringify('' + key);
23422 if (name.match(/^"([a-zA-Z_][a-zA-Z_0-
9]*)"$/)) {
23423 name = name.substr(
1, name.length -
2);
23424 name = ctx.stylize(name, 'name');
23426 name = name.replace(/'/g, "\\'")
23427 .replace(/\\"/g, '"')
23428 .replace(/(^"|"$)/g, "'");
23429 name = ctx.stylize(name, 'string');
23433 return name + ': ' + str;
23437 function reduceToSingleString(output, base, braces) {
23438 var numLinesEst =
0;
23439 var length = output.reduce(function(prev, cur) {
23441 if (cur.indexOf('\n')
>=
0) numLinesEst++;
23442 return prev + cur.replace(/\u001b\[\d\d?m/g, '').length +
1;
23447 (base === '' ? '' : base + '\n ') +
23449 output.join(',\n ') +
23454 return braces[
0] + base + ' ' + output.join(', ') + ' ' + braces[
1];
23458 // NOTE: These type checking functions intentionally don't use `instanceof`
23459 // because it is fragile and can be easily faked with `Object.create()`.
23460 function isArray(ar) {
23461 return Array.isArray(ar);
23463 exports.isArray = isArray;
23465 function isBoolean(arg) {
23466 return typeof arg === 'boolean';
23468 exports.isBoolean = isBoolean;
23470 function isNull(arg) {
23471 return arg === null;
23473 exports.isNull = isNull;
23475 function isNullOrUndefined(arg) {
23476 return arg == null;
23478 exports.isNullOrUndefined = isNullOrUndefined;
23480 function isNumber(arg) {
23481 return typeof arg === 'number';
23483 exports.isNumber = isNumber;
23485 function isString(arg) {
23486 return typeof arg === 'string';
23488 exports.isString = isString;
23490 function isSymbol(arg) {
23491 return typeof arg === 'symbol';
23493 exports.isSymbol = isSymbol;
23495 function isUndefined(arg) {
23496 return arg === void
0;
23498 exports.isUndefined = isUndefined;
23500 function isRegExp(re) {
23501 return isObject(re) && objectToString(re) === '[object RegExp]';
23503 exports.isRegExp = isRegExp;
23505 function isObject(arg) {
23506 return typeof arg === 'object' && arg !== null;
23508 exports.isObject = isObject;
23510 function isDate(d) {
23511 return isObject(d) && objectToString(d) === '[object Date]';
23513 exports.isDate = isDate;
23515 function isError(e) {
23516 return isObject(e) &&
23517 (objectToString(e) === '[object Error]' || e instanceof Error);
23519 exports.isError = isError;
23521 function isFunction(arg) {
23522 return typeof arg === 'function';
23524 exports.isFunction = isFunction;
23526 function isPrimitive(arg) {
23527 return arg === null ||
23528 typeof arg === 'boolean' ||
23529 typeof arg === 'number' ||
23530 typeof arg === 'string' ||
23531 typeof arg === 'symbol' || // ES6 symbol
23532 typeof arg === 'undefined';
23534 exports.isPrimitive = isPrimitive;
23536 exports.isBuffer = require('./support/isBuffer');
23538 function objectToString(o) {
23539 return Object.prototype.toString.call(o);
23544 return n <
10 ? '
0' + n.toString(
10) : n.toString(
10);
23548 var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',
23549 'Oct', 'Nov', 'Dec'];
23552 function timestamp() {
23553 var d = new Date();
23554 var time = [pad(d.getHours()),
23555 pad(d.getMinutes()),
23556 pad(d.getSeconds())].join(':');
23557 return [d.getDate(), months[d.getMonth()], time].join(' ');
23561 // log is just a thin wrapper to console.log that prepends a timestamp
23562 exports.log = function() {
23563 console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));
23568 * Inherit the prototype methods from one constructor into another.
23570 * The Function.prototype.inherits from lang.js rewritten as a standalone
23571 * function (not on Function.prototype). NOTE: If this file is to be loaded
23572 * during bootstrapping this function needs to be rewritten using some native
23573 * functions as prototype setup using normal JavaScript does not work as
23574 * expected during bootstrapping (see mirror.js in r114903).
23576 * @param {function} ctor Constructor function which needs to inherit the
23578 * @param {function} superCtor Constructor function to inherit prototype from.
23580 exports.inherits = require('inherits');
23582 exports._extend = function(origin, add) {
23583 // Don't do anything if add isn't an object
23584 if (!add || !isObject(add)) return origin;
23586 var keys = Object.keys(add);
23587 var i = keys.length;
23589 origin[keys[i]] = add[keys[i]];
23594 function hasOwnProperty(obj, prop) {
23595 return Object.prototype.hasOwnProperty.call(obj, prop);
23598 }).call(this,require('_process'),typeof global !==
"undefined" ? global : typeof self !==
"undefined" ? self : typeof window !==
"undefined" ? window : {})
23599 },{
"./support/isBuffer":
29,
"_process":
13,
"inherits":
28}],
31:[function(require,module,exports){
23600 (function (Buffer){
23601 const createKeccakHash = require('keccak')
23602 const secp256k1 = require('secp256k1')
23603 const assert = require('assert')
23604 const rlp = require('rlp')
23605 const BN = require('bn.js')
23606 const createHash = require('create-hash')
23607 Object.assign(exports, require('ethjs-util'))
23610 * the max integer that this VM can handle (a ```BN```)
23611 * @var {BN} MAX_INTEGER
23613 exports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff',
16)
23616 *
2^
256 (a ```BN```)
23617 * @var {BN} TWO_POW256
23619 exports.TWO_POW256 = new BN('
10000000000000000000000000000000000000000000000000000000000000000',
16)
23622 * SHA3-
256 hash of null (a ```String```)
23623 * @var {String} SHA3_NULL_S
23625 exports.SHA3_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
23628 * SHA3-
256 hash of null (a ```Buffer```)
23629 * @var {Buffer} SHA3_NULL
23631 exports.SHA3_NULL = Buffer.from(exports.SHA3_NULL_S, 'hex')
23634 * SHA3-
256 of an RLP of an empty array (a ```String```)
23635 * @var {String} SHA3_RLP_ARRAY_S
23637 exports.SHA3_RLP_ARRAY_S = '
1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347'
23640 * SHA3-
256 of an RLP of an empty array (a ```Buffer```)
23641 * @var {Buffer} SHA3_RLP_ARRAY
23643 exports.SHA3_RLP_ARRAY = Buffer.from(exports.SHA3_RLP_ARRAY_S, 'hex')
23646 * SHA3-
256 hash of the RLP of null (a ```String```)
23647 * @var {String} SHA3_RLP_S
23649 exports.SHA3_RLP_S = '
56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421'
23652 * SHA3-
256 hash of the RLP of null (a ```Buffer```)
23653 * @var {Buffer} SHA3_RLP
23655 exports.SHA3_RLP = Buffer.from(exports.SHA3_RLP_S, 'hex')
23658 * [`BN`](https://github.com/indutny/bn.js)
23664 * [`rlp`](https://github.com/ethereumjs/rlp)
23670 * [`secp256k1`](https://github.com/cryptocoinjs/secp256k1-node/)
23673 exports.secp256k1 = secp256k1
23676 * Returns a buffer filled with
0s
23678 * @param {Number} bytes the number of bytes the buffer should be
23681 exports.zeros = function (bytes) {
23682 return Buffer.allocUnsafe(bytes).fill(
0)
23686 * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
23687 * Or it truncates the beginning if it exceeds.
23688 * @method lsetLength
23689 * @param {Buffer|Array} msg the value to pad
23690 * @param {Number} length the number of bytes the output should be
23691 * @param {Boolean} [right=false] whether to start padding form the left or right
23692 * @return {Buffer|Array}
23694 exports.setLengthLeft = exports.setLength = function (msg, length, right) {
23695 var buf = exports.zeros(length)
23696 msg = exports.toBuffer(msg)
23698 if (msg.length < length) {
23702 return msg.slice(
0, length)
23704 if (msg.length < length) {
23705 msg.copy(buf, length - msg.length)
23708 return msg.slice(-length)
23713 * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.
23714 * Or it truncates the beginning if it exceeds.
23715 * @param {Buffer|Array} msg the value to pad
23716 * @param {Number} length the number of bytes the output should be
23717 * @return {Buffer|Array}
23719 exports.setLengthRight = function (msg, length) {
23720 return exports.setLength(msg, length, true)
23724 * Trims leading zeros from a `Buffer` or an `Array`
23725 * @param {Buffer|Array|String} a
23726 * @return {Buffer|Array|String}
23728 exports.unpad = exports.stripZeros = function (a) {
23729 a = exports.stripHexPrefix(a)
23731 while (a.length
> 0 && first.toString() === '
0') {
23738 * 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.
23739 * @param {*} v the value
23741 exports.toBuffer = function (v) {
23742 if (!Buffer.isBuffer(v)) {
23743 if (Array.isArray(v)) {
23745 } else if (typeof v === 'string') {
23746 if (exports.isHexPrefixed(v)) {
23747 v = Buffer.from(exports.padToEven(exports.stripHexPrefix(v)), 'hex')
23751 } else if (typeof v === 'number') {
23752 v = exports.intToBuffer(v)
23753 } else if (v === null || v === undefined) {
23754 v = Buffer.allocUnsafe(
0)
23755 } else if (v.toArray) {
23756 // converts a BN to a Buffer
23757 v = Buffer.from(v.toArray())
23759 throw new Error('invalid type')
23766 * Converts a `Buffer` to a `Number`
23767 * @param {Buffer} buf
23769 * @throws If the input number exceeds
53 bits.
23771 exports.bufferToInt = function (buf) {
23772 return new BN(exports.toBuffer(buf)).toNumber()
23776 * Converts a `Buffer` into a hex `String`
23777 * @param {Buffer} buf
23780 exports.bufferToHex = function (buf) {
23781 buf = exports.toBuffer(buf)
23782 return '
0x' + buf.toString('hex')
23786 * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes
256-bit numbers.
23787 * @param {Buffer} num
23790 exports.fromSigned = function (num) {
23791 return new BN(num).fromTwos(
256)
23795 * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes
256-bit numbers.
23799 exports.toUnsigned = function (num) {
23800 return Buffer.from(num.toTwos(
256).toArray())
23804 * Creates SHA-
3 hash of the input
23805 * @param {Buffer|Array|String|Number} a the input data
23806 * @param {Number} [bits=
256] the SHA width
23809 exports.sha3 = function (a, bits) {
23810 a = exports.toBuffer(a)
23811 if (!bits) bits =
256
23813 return createKeccakHash('keccak' + bits).update(a).digest()
23817 * Creates SHA256 hash of the input
23818 * @param {Buffer|Array|String|Number} a the input data
23821 exports.sha256 = function (a) {
23822 a = exports.toBuffer(a)
23823 return createHash('sha256').update(a).digest()
23827 * Creates RIPEMD160 hash of the input
23828 * @param {Buffer|Array|String|Number} a the input data
23829 * @param {Boolean} padded whether it should be padded to
256 bits or not
23832 exports.ripemd160 = function (a, padded) {
23833 a = exports.toBuffer(a)
23834 var hash = createHash('rmd160').update(a).digest()
23835 if (padded === true) {
23836 return exports.setLength(hash,
32)
23843 * Creates SHA-
3 hash of the RLP encoded version of the input
23844 * @param {Buffer|Array|String|Number} a the input data
23847 exports.rlphash = function (a) {
23848 return exports.sha3(rlp.encode(a))
23852 * Checks if the private key satisfies the rules of the curve secp256k1.
23853 * @param {Buffer} privateKey
23854 * @return {Boolean}
23856 exports.isValidPrivate = function (privateKey) {
23857 return secp256k1.privateKeyVerify(privateKey)
23861 * Checks if the public key satisfies the rules of the curve secp256k1
23862 * and the requirements of Ethereum.
23863 * @param {Buffer} publicKey The two points of an uncompressed key, unless sanitize is enabled
23864 * @param {Boolean} [sanitize=false] Accept public keys in other formats
23865 * @return {Boolean}
23867 exports.isValidPublic = function (publicKey, sanitize) {
23868 if (publicKey.length ===
64) {
23869 // Convert to SEC1 for secp256k1
23870 return secp256k1.publicKeyVerify(Buffer.concat([ Buffer.from([
4]), publicKey ]))
23877 return secp256k1.publicKeyVerify(publicKey)
23881 * Returns the ethereum address of a given public key.
23882 * Accepts
"Ethereum public keys" and SEC1 encoded keys.
23883 * @param {Buffer} pubKey The two points of an uncompressed key, unless sanitize is enabled
23884 * @param {Boolean} [sanitize=false] Accept public keys in other formats
23887 exports.pubToAddress = exports.publicToAddress = function (pubKey, sanitize) {
23888 pubKey = exports.toBuffer(pubKey)
23889 if (sanitize && (pubKey.length !==
64)) {
23890 pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(
1)
23892 assert(pubKey.length ===
64)
23893 // Only take the lower
160bits of the hash
23894 return exports.sha3(pubKey).slice(-
20)
23898 * Returns the ethereum public key of a given private key
23899 * @param {Buffer} privateKey A private key must be
256 bits wide
23902 var privateToPublic = exports.privateToPublic = function (privateKey) {
23903 privateKey = exports.toBuffer(privateKey)
23904 // skip the type flag and use the X, Y points
23905 return secp256k1.publicKeyCreate(privateKey, false).slice(
1)
23909 * Converts a public key to the Ethereum format.
23910 * @param {Buffer} publicKey
23913 exports.importPublic = function (publicKey) {
23914 publicKey = exports.toBuffer(publicKey)
23915 if (publicKey.length !==
64) {
23916 publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(
1)
23923 * @param {Buffer} msgHash
23924 * @param {Buffer} privateKey
23927 exports.ecsign = function (msgHash, privateKey) {
23928 var sig = secp256k1.sign(msgHash, privateKey)
23931 ret.r = sig.signature.slice(
0,
32)
23932 ret.s = sig.signature.slice(
32,
64)
23933 ret.v = sig.recovery +
27
23938 * Returns the keccak-
256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
23939 * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
23940 * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
23941 * used to produce the signature.
23943 * @returns {Buffer} hash
23945 exports.hashPersonalMessage = function (message) {
23946 var prefix = exports.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString())
23947 return exports.sha3(Buffer.concat([prefix, message]))
23951 * ECDSA public key recovery from signature
23952 * @param {Buffer} msgHash
23953 * @param {Number} v
23954 * @param {Buffer} r
23955 * @param {Buffer} s
23956 * @return {Buffer} publicKey
23958 exports.ecrecover = function (msgHash, v, r, s) {
23959 var signature = Buffer.concat([exports.setLength(r,
32), exports.setLength(s,
32)],
64)
23960 var recovery = v -
27
23961 if (recovery !==
0 && recovery !==
1) {
23962 throw new Error('Invalid signature v value')
23964 var senderPubKey = secp256k1.recover(msgHash, signature, recovery)
23965 return secp256k1.publicKeyConvert(senderPubKey, false).slice(
1)
23969 * Convert signature parameters into the format of `eth_sign` RPC method
23970 * @param {Number} v
23971 * @param {Buffer} r
23972 * @param {Buffer} s
23973 * @return {String} sig
23975 exports.toRpcSig = function (v, r, s) {
23976 // NOTE: with potential introduction of chainId this might need to be updated
23977 if (v !==
27 && v !==
28) {
23978 throw new Error('Invalid recovery id')
23981 // geth (and the RPC eth_sign method) uses the
65 byte format used by Bitcoin
23982 // FIXME: this might change in the future - https://github.com/ethereum/go-ethereum/issues/
2053
23983 return exports.bufferToHex(Buffer.concat([
23984 exports.setLengthLeft(r,
32),
23985 exports.setLengthLeft(s,
32),
23986 exports.toBuffer(v -
27)
23991 * Convert signature format of the `eth_sign` RPC method to signature parameters
23992 * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/
2053
23993 * @param {String} sig
23996 exports.fromRpcSig = function (sig) {
23997 sig = exports.toBuffer(sig)
23999 // NOTE: with potential introduction of chainId this might need to be updated
24000 if (sig.length !==
65) {
24001 throw new Error('Invalid signature length')
24005 // support both versions of `eth_sign` responses
24012 r: sig.slice(
0,
32),
24013 s: sig.slice(
32,
64)
24018 * Returns the ethereum address of a given private key
24019 * @param {Buffer} privateKey A private key must be
256 bits wide
24022 exports.privateToAddress = function (privateKey) {
24023 return exports.publicToAddress(privateToPublic(privateKey))
24027 * Checks if the address is a valid. Accepts checksummed addresses too
24028 * @param {String} address
24029 * @return {Boolean}
24031 exports.isValidAddress = function (address) {
24032 return /^
0x[
0-
9a-fA-F]{
40}$/i.test(address)
24036 * Returns a checksummed address
24037 * @param {String} address
24040 exports.toChecksumAddress = function (address) {
24041 address = exports.stripHexPrefix(address).toLowerCase()
24042 var hash = exports.sha3(address).toString('hex')
24045 for (var i =
0; i < address.length; i++) {
24046 if (parseInt(hash[i],
16)
>=
8) {
24047 ret += address[i].toUpperCase()
24057 * Checks if the address is a valid checksummed address
24058 * @param {Buffer} address
24059 * @return {Boolean}
24061 exports.isValidChecksumAddress = function (address) {
24062 return exports.isValidAddress(address) && (exports.toChecksumAddress(address) === address)
24066 * Generates an address of a newly created contract
24067 * @param {Buffer} from the address which is creating this new address
24068 * @param {Buffer} nonce the nonce of the from account
24071 exports.generateAddress = function (from, nonce) {
24072 from = exports.toBuffer(from)
24073 nonce = new BN(nonce)
24075 if (nonce.isZero()) {
24076 // in RLP we want to encode null in the case of zero nonce
24077 // read the RLP documentation for an answer if you dare
24080 nonce = Buffer.from(nonce.toArray())
24083 // Only take the lower
160bits of the hash
24084 return exports.rlphash([from, nonce]).slice(-
20)
24088 * Returns true if the supplied address belongs to a precompiled account
24089 * @param {Buffer|String} address
24090 * @return {Boolean}
24092 exports.isPrecompiled = function (address) {
24093 var a = exports.unpad(address)
24094 return a.length ===
1 && a[
0]
> 0 && a[
0] <
5
24098 * Adds
"0x" to a given `String` if it does not already start with
"0x"
24099 * @param {String} str
24102 exports.addHexPrefix = function (str) {
24103 if (typeof str !== 'string') {
24107 return exports.isHexPrefixed(str) ? str : '
0x' + str
24111 * Validate ECDSA signature
24112 * @method isValidSignature
24113 * @param {Buffer} v
24114 * @param {Buffer} r
24115 * @param {Buffer} s
24116 * @param {Boolean} [homestead=true]
24117 * @return {Boolean}
24120 exports.isValidSignature = function (v, r, s, homestead) {
24121 const SECP256K1_N_DIV_2 = new BN('
7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0',
16)
24122 const SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141',
16)
24124 if (r.length !==
32 || s.length !==
32) {
24128 if (v !==
27 && v !==
28) {
24135 if (r.isZero() || r.gt(SECP256K1_N) || s.isZero() || s.gt(SECP256K1_N)) {
24139 if ((homestead === false) && (new BN(s).cmp(SECP256K1_N_DIV_2) ===
1)) {
24147 * Converts a `Buffer` or `Array` to JSON
24148 * @param {Buffer|Array} ba
24149 * @return {Array|String|null}
24151 exports.baToJSON = function (ba) {
24152 if (Buffer.isBuffer(ba)) {
24153 return '
0x' + ba.toString('hex')
24154 } else if (ba instanceof Array) {
24156 for (var i =
0; i < ba.length; i++) {
24157 array.push(exports.baToJSON(ba[i]))
24164 * Defines properties on a `Object`. It make the assumption that underlying data is binary.
24165 * @param {Object} self the `Object` to define properties on
24166 * @param {Array} fields an array fields to define. Fields can contain:
24167 * * `name` - the name of the properties
24168 * * `length` - the number of bytes the field can have
24169 * * `allowLess` - if the field can be less than the length
24171 * @param {*} data data to be validated against the definitions
24173 exports.defineProperties = function (self, fields, data) {
24177 // attach the `toJSON`
24178 self.toJSON = function (label) {
24181 self._fields.forEach(function (field) {
24182 obj[field] = '
0x' + self[field].toString('hex')
24186 return exports.baToJSON(this.raw)
24189 self.serialize = function serialize () {
24190 return rlp.encode(self.raw)
24193 fields.forEach(function (field, i) {
24194 self._fields.push(field.name)
24195 function getter () {
24198 function setter (v) {
24199 v = exports.toBuffer(v)
24201 if (v.toString('hex') === '
00' && !field.allowZero) {
24202 v = Buffer.allocUnsafe(
0)
24205 if (field.allowLess && field.length) {
24206 v = exports.stripZeros(v)
24207 assert(field.length
>= v.length, 'The field ' + field.name + ' must not have more ' + field.length + ' bytes')
24208 } else if (!(field.allowZero && v.length ===
0) && field.length) {
24209 assert(field.length === v.length, 'The field ' + field.name + ' must have byte length of ' + field.length)
24215 Object.defineProperty(self, field.name, {
24217 configurable: true,
24222 if (field.default) {
24223 self[field.name] = field.default
24228 Object.defineProperty(self, field.alias, {
24230 configurable: true,
24237 // if the constuctor is passed data
24239 if (typeof data === 'string') {
24240 data = Buffer.from(exports.stripHexPrefix(data), 'hex')
24243 if (Buffer.isBuffer(data)) {
24244 data = rlp.decode(data)
24247 if (Array.isArray(data)) {
24248 if (data.length
> self._fields.length) {
24249 throw (new Error('wrong number of fields in data'))
24252 // make sure all the items are buffers
24253 data.forEach(function (d, i) {
24254 self[self._fields[i]] = exports.toBuffer(d)
24256 } else if (typeof data === 'object') {
24257 const keys = Object.keys(data)
24258 fields.forEach(function (field) {
24259 if (keys.indexOf(field.name) !== -
1) self[field.name] = data[field.name]
24260 if (keys.indexOf(field.alias) !== -
1) self[field.alias] = data[field.alias]
24263 throw new Error('invalid data')
24268 }).call(this,require("buffer").Buffer)
24269 },{"assert":
1,"bn.js":
33,"buffer":
5,"create-hash":
36,"ethjs-util":
56,"keccak":
65,"rlp":
72,"secp256k1":
73}],
32:[function(require,module,exports){
24270 (function (Buffer){
24271 // Reference https://github.com/bitcoin/bips/blob/master/bip-
0066.mediawiki
24272 // Format:
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
24273 // NOTE: SIGHASH byte ignored AND restricted, truncate before use
24275 function check (buffer) {
24276 if (buffer.length <
8) return false
24277 if (buffer.length
> 72) return false
24278 if (buffer[
0] !==
0x30) return false
24279 if (buffer[
1] !== buffer.length -
2) return false
24280 if (buffer[
2] !==
0x02) return false
24282 var lenR = buffer[
3]
24283 if (lenR ===
0) return false
24284 if (
5 + lenR
>= buffer.length) return false
24285 if (buffer[
4 + lenR] !==
0x02) return false
24287 var lenS = buffer[
5 + lenR]
24288 if (lenS ===
0) return false
24289 if ((
6 + lenR + lenS) !== buffer.length) return false
24291 if (buffer[
4] &
0x80) return false
24292 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) return false
24294 if (buffer[lenR +
6] &
0x80) return false
24295 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) return false
24299 function decode (buffer) {
24300 if (buffer.length <
8) throw new Error('DER sequence length is too short')
24301 if (buffer.length
> 72) throw new Error('DER sequence length is too long')
24302 if (buffer[
0] !==
0x30) throw new Error('Expected DER sequence')
24303 if (buffer[
1] !== buffer.length -
2) throw new Error('DER sequence length is invalid')
24304 if (buffer[
2] !==
0x02) throw new Error('Expected DER integer')
24306 var lenR = buffer[
3]
24307 if (lenR ===
0) throw new Error('R length is zero')
24308 if (
5 + lenR
>= buffer.length) throw new Error('R length is too long')
24309 if (buffer[
4 + lenR] !==
0x02) throw new Error('Expected DER integer (
2)')
24311 var lenS = buffer[
5 + lenR]
24312 if (lenS ===
0) throw new Error('S length is zero')
24313 if ((
6 + lenR + lenS) !== buffer.length) throw new Error('S length is invalid')
24315 if (buffer[
4] &
0x80) throw new Error('R value is negative')
24316 if (lenR
> 1 && (buffer[
4] ===
0x00) && !(buffer[
5] &
0x80)) throw new Error('R value excessively padded')
24318 if (buffer[lenR +
6] &
0x80) throw new Error('S value is negative')
24319 if (lenS
> 1 && (buffer[lenR +
6] ===
0x00) && !(buffer[lenR +
7] &
0x80)) throw new Error('S value excessively padded')
24321 // non-BIP66 - extract R, S values
24323 r: buffer.slice(
4,
4 + lenR),
24324 s: buffer.slice(
6 + lenR)
24329 * Expects r and s to be positive DER integers.
24331 * The DER format uses the most significant bit as a sign bit (&
0x80).
24332 * If the significant bit is set AND the integer is positive, a
0x00 is prepended.
24347 *
62300 =
> 0x00f35c
24348 * -
62300 =
> 0xff0ca4
24350 function encode (r, s) {
24351 var lenR = r.length
24352 var lenS = s.length
24353 if (lenR ===
0) throw new Error('R length is zero')
24354 if (lenS ===
0) throw new Error('S length is zero')
24355 if (lenR
> 33) throw new Error('R length is too long')
24356 if (lenS
> 33) throw new Error('S length is too long')
24357 if (r[
0] &
0x80) throw new Error('R value is negative')
24358 if (s[
0] &
0x80) throw new Error('S value is negative')
24359 if (lenR
> 1 && (r[
0] ===
0x00) && !(r[
1] &
0x80)) throw new Error('R value excessively padded')
24360 if (lenS
> 1 && (s[
0] ===
0x00) && !(s[
1] &
0x80)) throw new Error('S value excessively padded')
24362 var signature = new Buffer(
6 + lenR + lenS)
24364 //
0x30 [total-length]
0x02 [R-length] [R]
0x02 [S-length] [S]
24365 signature[
0] =
0x30
24366 signature[
1] = signature.length -
2
24367 signature[
2] =
0x02
24368 signature[
3] = r.length
24369 r.copy(signature,
4)
24370 signature[
4 + lenR] =
0x02
24371 signature[
5 + lenR] = s.length
24372 s.copy(signature,
6 + lenR)
24383 }).call(this,require(
"buffer").Buffer)
24384 },{
"buffer":
5}],
33:[function(require,module,exports){
24385 (function (module, exports) {
24389 function assert (val, msg) {
24390 if (!val) throw new Error(msg || 'Assertion failed');
24393 // Could use `inherits` module, but don't want to move from single file
24394 // architecture yet.
24395 function inherits (ctor, superCtor) {
24396 ctor.super_ = superCtor;
24397 var TempCtor = function () {};
24398 TempCtor.prototype = superCtor.prototype;
24399 ctor.prototype = new TempCtor();
24400 ctor.prototype.constructor = ctor;
24405 function BN (number, base, endian) {
24406 if (BN.isBN(number)) {
24414 // Reduction context
24417 if (number !== null) {
24418 if (base === 'le' || base === 'be') {
24423 this._init(number ||
0, base ||
10, endian || 'be');
24426 if (typeof module === 'object') {
24427 module.exports = BN;
24437 Buffer = require('buf' + 'fer').Buffer;
24441 BN.isBN = function isBN (num) {
24442 if (num instanceof BN) {
24446 return num !== null && typeof num === 'object' &&
24447 num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);
24450 BN.max = function max (left, right) {
24451 if (left.cmp(right)
> 0) return left;
24455 BN.min = function min (left, right) {
24456 if (left.cmp(right) <
0) return left;
24460 BN.prototype._init = function init (number, base, endian) {
24461 if (typeof number === 'number') {
24462 return this._initNumber(number, base, endian);
24465 if (typeof number === 'object') {
24466 return this._initArray(number, base, endian);
24469 if (base === 'hex') {
24472 assert(base === (base |
0) && base
>=
2 && base <=
36);
24474 number = number.toString().replace(/\s+/g, '');
24476 if (number[
0] === '-') {
24481 this._parseHex(number, start);
24483 this._parseBase(number, base, start);
24486 if (number[
0] === '-') {
24492 if (endian !== 'le') return;
24494 this._initArray(this.toArray(), base, endian);
24497 BN.prototype._initNumber = function _initNumber (number, base, endian) {
24502 if (number <
0x4000000) {
24503 this.words = [ number &
0x3ffffff ];
24505 } else if (number <
0x10000000000000) {
24507 number &
0x3ffffff,
24508 (number /
0x4000000) &
0x3ffffff
24512 assert(number <
0x20000000000000); //
2 ^
53 (unsafe)
24514 number &
0x3ffffff,
24515 (number /
0x4000000) &
0x3ffffff,
24521 if (endian !== 'le') return;
24523 // Reverse the bytes
24524 this._initArray(this.toArray(), base, endian);
24527 BN.prototype._initArray = function _initArray (number, base, endian) {
24528 // Perhaps a Uint8Array
24529 assert(typeof number.length === 'number');
24530 if (number.length <=
0) {
24531 this.words = [
0 ];
24536 this.length = Math.ceil(number.length /
3);
24537 this.words = new Array(this.length);
24538 for (var i =
0; i < this.length; i++) {
24544 if (endian === 'be') {
24545 for (i = number.length -
1, j =
0; i
>=
0; i -=
3) {
24546 w = number[i] | (number[i -
1] <<
8) | (number[i -
2] <<
16);
24547 this.words[j] |= (w << off) &
0x3ffffff;
24548 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
24555 } else if (endian === 'le') {
24556 for (i =
0, j =
0; i < number.length; i +=
3) {
24557 w = number[i] | (number[i +
1] <<
8) | (number[i +
2] <<
16);
24558 this.words[j] |= (w << off) &
0x3ffffff;
24559 this.words[j +
1] = (w
>>> (
26 - off)) &
0x3ffffff;
24567 return this.strip();
24570 function parseHex (str, start, end) {
24572 var len = Math.min(str.length, end);
24573 for (var i = start; i < len; i++) {
24574 var c = str.charCodeAt(i) -
48;
24579 if (c
>=
49 && c <=
54) {
24583 } else if (c
>=
17 && c <=
22) {
24594 BN.prototype._parseHex = function _parseHex (number, start) {
24595 // Create possibly bigger array to ensure that it fits the number
24596 this.length = Math.ceil((number.length - start) /
6);
24597 this.words = new Array(this.length);
24598 for (var i =
0; i < this.length; i++) {
24603 // Scan
24-bit chunks and add them to the number
24605 for (i = number.length -
6, j =
0; i
>= start; i -=
6) {
24606 w = parseHex(number, i, i +
6);
24607 this.words[j] |= (w << off) &
0x3ffffff;
24608 // NOTE: `
0x3fffff` is intentional here,
26bits max shift +
24bit hex limb
24609 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
24616 if (i +
6 !== start) {
24617 w = parseHex(number, start, i +
6);
24618 this.words[j] |= (w << off) &
0x3ffffff;
24619 this.words[j +
1] |= w
>>> (
26 - off) &
0x3fffff;
24624 function parseBase (str, start, end, mul) {
24626 var len = Math.min(str.length, end);
24627 for (var i = start; i < len; i++) {
24628 var c = str.charCodeAt(i) -
48;
24637 } else if (c
>=
17) {
24648 BN.prototype._parseBase = function _parseBase (number, base, start) {
24649 // Initialize as zero
24650 this.words = [
0 ];
24653 // Find length of limb in base
24654 for (var limbLen =
0, limbPow =
1; limbPow <=
0x3ffffff; limbPow *= base) {
24658 limbPow = (limbPow / base) |
0;
24660 var total = number.length - start;
24661 var mod = total % limbLen;
24662 var end = Math.min(total, total - mod) + start;
24665 for (var i = start; i < end; i += limbLen) {
24666 word = parseBase(number, i, i + limbLen, base);
24668 this.imuln(limbPow);
24669 if (this.words[
0] + word <
0x4000000) {
24670 this.words[
0] += word;
24678 word = parseBase(number, i, number.length, base);
24680 for (i =
0; i < mod; i++) {
24685 if (this.words[
0] + word <
0x4000000) {
24686 this.words[
0] += word;
24693 BN.prototype.copy = function copy (dest) {
24694 dest.words = new Array(this.length);
24695 for (var i =
0; i < this.length; i++) {
24696 dest.words[i] = this.words[i];
24698 dest.length = this.length;
24699 dest.negative = this.negative;
24700 dest.red = this.red;
24703 BN.prototype.clone = function clone () {
24704 var r = new BN(null);
24709 BN.prototype._expand = function _expand (size) {
24710 while (this.length < size) {
24711 this.words[this.length++] =
0;
24716 // Remove leading `
0` from `this`
24717 BN.prototype.strip = function strip () {
24718 while (this.length
> 1 && this.words[this.length -
1] ===
0) {
24721 return this._normSign();
24724 BN.prototype._normSign = function _normSign () {
24726 if (this.length ===
1 && this.words[
0] ===
0) {
24732 BN.prototype.inspect = function inspect () {
24733 return (this.red ? '
<BN-R: ' : '
<BN: ') + this.toString(
16) + '
>';
24739 var groupSizes = [];
24740 var groupBases = [];
24744 while (++i < BN.wordSize) {
24753 while (++base <
36 +
1) {
24756 while (groupBase < (
1 << BN.wordSize) / base) {
24760 groupSizes[base] = groupSize;
24761 groupBases[base] = groupBase;
24783 '
0000000000000000',
24784 '
00000000000000000',
24785 '
000000000000000000',
24786 '
0000000000000000000',
24787 '
00000000000000000000',
24788 '
000000000000000000000',
24789 '
0000000000000000000000',
24790 '
00000000000000000000000',
24791 '
000000000000000000000000',
24792 '
0000000000000000000000000'
24797 25,
16,
12,
11,
10,
9,
8,
24798 8,
7,
7,
7,
7,
6,
6,
24799 6,
6,
6,
6,
6,
5,
5,
24800 5,
5,
5,
5,
5,
5,
5,
24801 5,
5,
5,
5,
5,
5,
5
24806 33554432,
43046721,
16777216,
48828125,
60466176,
40353607,
16777216,
24807 43046721,
10000000,
19487171,
35831808,
62748517,
7529536,
11390625,
24808 16777216,
24137569,
34012224,
47045881,
64000000,
4084101,
5153632,
24809 6436343,
7962624,
9765625,
11881376,
14348907,
17210368,
20511149,
24810 24300000,
28629151,
33554432,
39135393,
45435424,
52521875,
60466176
24813 BN.prototype.toString = function toString (base, padding) {
24815 padding = padding |
0 ||
1;
24818 if (base ===
16 || base === 'hex') {
24822 for (var i =
0; i < this.length; i++) {
24823 var w = this.words[i];
24824 var word = (((w << off) | carry) &
0xffffff).toString(
16);
24825 carry = (w
>>> (
24 - off)) &
0xffffff;
24826 if (carry !==
0 || i !== this.length -
1) {
24827 out = zeros[
6 - word.length] + word + out;
24838 out = carry.toString(
16) + out;
24840 while (out.length % padding !==
0) {
24843 if (this.negative !==
0) {
24849 if (base === (base |
0) && base
>=
2 && base <=
36) {
24850 // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));
24851 var groupSize = groupSizes[base];
24852 // var groupBase = Math.pow(base, groupSize);
24853 var groupBase = groupBases[base];
24855 var c = this.clone();
24857 while (!c.isZero()) {
24858 var r = c.modn(groupBase).toString(base);
24859 c = c.idivn(groupBase);
24862 out = zeros[groupSize - r.length] + r + out;
24867 if (this.isZero()) {
24870 while (out.length % padding !==
0) {
24873 if (this.negative !==
0) {
24879 assert(false, 'Base should be between
2 and
36');
24882 BN.prototype.toNumber = function toNumber () {
24883 var ret = this.words[
0];
24884 if (this.length ===
2) {
24885 ret += this.words[
1] *
0x4000000;
24886 } else if (this.length ===
3 && this.words[
2] ===
0x01) {
24887 // NOTE: at this stage it is known that the top bit is set
24888 ret +=
0x10000000000000 + (this.words[
1] *
0x4000000);
24889 } else if (this.length
> 2) {
24890 assert(false, 'Number can only safely store up to
53 bits');
24892 return (this.negative !==
0) ? -ret : ret;
24895 BN.prototype.toJSON = function toJSON () {
24896 return this.toString(
16);
24899 BN.prototype.toBuffer = function toBuffer (endian, length) {
24900 assert(typeof Buffer !== 'undefined');
24901 return this.toArrayLike(Buffer, endian, length);
24904 BN.prototype.toArray = function toArray (endian, length) {
24905 return this.toArrayLike(Array, endian, length);
24908 BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {
24909 var byteLength = this.byteLength();
24910 var reqLength = length || Math.max(
1, byteLength);
24911 assert(byteLength <= reqLength, 'byte array longer than desired length');
24912 assert(reqLength
> 0, 'Requested array length <=
0');
24915 var littleEndian = endian === 'le';
24916 var res = new ArrayType(reqLength);
24919 var q = this.clone();
24920 if (!littleEndian) {
24921 // Assume big-endian
24922 for (i =
0; i < reqLength - byteLength; i++) {
24926 for (i =
0; !q.isZero(); i++) {
24930 res[reqLength - i -
1] = b;
24933 for (i =
0; !q.isZero(); i++) {
24940 for (; i < reqLength; i++) {
24949 BN.prototype._countBits = function _countBits (w) {
24950 return
32 - Math.clz32(w);
24953 BN.prototype._countBits = function _countBits (w) {
24976 BN.prototype._zeroBits = function _zeroBits (w) {
24978 if (w ===
0) return
26;
24982 if ((t &
0x1fff) ===
0) {
24986 if ((t &
0x7f) ===
0) {
24990 if ((t &
0xf) ===
0) {
24994 if ((t &
0x3) ===
0) {
24998 if ((t &
0x1) ===
0) {
25004 // Return number of used bits in a BN
25005 BN.prototype.bitLength = function bitLength () {
25006 var w = this.words[this.length -
1];
25007 var hi = this._countBits(w);
25008 return (this.length -
1) *
26 + hi;
25011 function toBitArray (num) {
25012 var w = new Array(num.bitLength());
25014 for (var bit =
0; bit < w.length; bit++) {
25015 var off = (bit /
26) |
0;
25016 var wbit = bit %
26;
25018 w[bit] = (num.words[off] & (
1 << wbit))
>>> wbit;
25024 // Number of trailing zero bits
25025 BN.prototype.zeroBits = function zeroBits () {
25026 if (this.isZero()) return
0;
25029 for (var i =
0; i < this.length; i++) {
25030 var b = this._zeroBits(this.words[i]);
25032 if (b !==
26) break;
25037 BN.prototype.byteLength = function byteLength () {
25038 return Math.ceil(this.bitLength() /
8);
25041 BN.prototype.toTwos = function toTwos (width) {
25042 if (this.negative !==
0) {
25043 return this.abs().inotn(width).iaddn(
1);
25045 return this.clone();
25048 BN.prototype.fromTwos = function fromTwos (width) {
25049 if (this.testn(width -
1)) {
25050 return this.notn(width).iaddn(
1).ineg();
25052 return this.clone();
25055 BN.prototype.isNeg = function isNeg () {
25056 return this.negative !==
0;
25059 // Return negative clone of `this`
25060 BN.prototype.neg = function neg () {
25061 return this.clone().ineg();
25064 BN.prototype.ineg = function ineg () {
25065 if (!this.isZero()) {
25066 this.negative ^=
1;
25072 // Or `num` with `this` in-place
25073 BN.prototype.iuor = function iuor (num) {
25074 while (this.length < num.length) {
25075 this.words[this.length++] =
0;
25078 for (var i =
0; i < num.length; i++) {
25079 this.words[i] = this.words[i] | num.words[i];
25082 return this.strip();
25085 BN.prototype.ior = function ior (num) {
25086 assert((this.negative | num.negative) ===
0);
25087 return this.iuor(num);
25090 // Or `num` with `this`
25091 BN.prototype.or = function or (num) {
25092 if (this.length
> num.length) return this.clone().ior(num);
25093 return num.clone().ior(this);
25096 BN.prototype.uor = function uor (num) {
25097 if (this.length
> num.length) return this.clone().iuor(num);
25098 return num.clone().iuor(this);
25101 // And `num` with `this` in-place
25102 BN.prototype.iuand = function iuand (num) {
25103 // b = min-length(num, this)
25105 if (this.length
> num.length) {
25111 for (var i =
0; i < b.length; i++) {
25112 this.words[i] = this.words[i] & num.words[i];
25115 this.length = b.length;
25117 return this.strip();
25120 BN.prototype.iand = function iand (num) {
25121 assert((this.negative | num.negative) ===
0);
25122 return this.iuand(num);
25125 // And `num` with `this`
25126 BN.prototype.and = function and (num) {
25127 if (this.length
> num.length) return this.clone().iand(num);
25128 return num.clone().iand(this);
25131 BN.prototype.uand = function uand (num) {
25132 if (this.length
> num.length) return this.clone().iuand(num);
25133 return num.clone().iuand(this);
25136 // Xor `num` with `this` in-place
25137 BN.prototype.iuxor = function iuxor (num) {
25138 // a.length
> b.length
25141 if (this.length
> num.length) {
25149 for (var i =
0; i < b.length; i++) {
25150 this.words[i] = a.words[i] ^ b.words[i];
25154 for (; i < a.length; i++) {
25155 this.words[i] = a.words[i];
25159 this.length = a.length;
25161 return this.strip();
25164 BN.prototype.ixor = function ixor (num) {
25165 assert((this.negative | num.negative) ===
0);
25166 return this.iuxor(num);
25169 // Xor `num` with `this`
25170 BN.prototype.xor = function xor (num) {
25171 if (this.length
> num.length) return this.clone().ixor(num);
25172 return num.clone().ixor(this);
25175 BN.prototype.uxor = function uxor (num) {
25176 if (this.length
> num.length) return this.clone().iuxor(num);
25177 return num.clone().iuxor(this);
25180 // Not ``this`` with ``width`` bitwidth
25181 BN.prototype.inotn = function inotn (width) {
25182 assert(typeof width === 'number' && width
>=
0);
25184 var bytesNeeded = Math.ceil(width /
26) |
0;
25185 var bitsLeft = width %
26;
25187 // Extend the buffer with leading zeroes
25188 this._expand(bytesNeeded);
25190 if (bitsLeft
> 0) {
25194 // Handle complete words
25195 for (var i =
0; i < bytesNeeded; i++) {
25196 this.words[i] = ~this.words[i] &
0x3ffffff;
25199 // Handle the residue
25200 if (bitsLeft
> 0) {
25201 this.words[i] = ~this.words[i] & (
0x3ffffff >> (
26 - bitsLeft));
25204 // And remove leading zeroes
25205 return this.strip();
25208 BN.prototype.notn = function notn (width) {
25209 return this.clone().inotn(width);
25212 // Set `bit` of `this`
25213 BN.prototype.setn = function setn (bit, val) {
25214 assert(typeof bit === 'number' && bit
>=
0);
25216 var off = (bit /
26) |
0;
25217 var wbit = bit %
26;
25219 this._expand(off +
1);
25222 this.words[off] = this.words[off] | (
1 << wbit);
25224 this.words[off] = this.words[off] & ~(
1 << wbit);
25227 return this.strip();
25230 // Add `num` to `this` in-place
25231 BN.prototype.iadd = function iadd (num) {
25234 // negative + positive
25235 if (this.negative !==
0 && num.negative ===
0) {
25237 r = this.isub(num);
25238 this.negative ^=
1;
25239 return this._normSign();
25241 // positive + negative
25242 } else if (this.negative ===
0 && num.negative !==
0) {
25244 r = this.isub(num);
25246 return r._normSign();
25249 // a.length
> b.length
25251 if (this.length
> num.length) {
25260 for (var i =
0; i < b.length; i++) {
25261 r = (a.words[i] |
0) + (b.words[i] |
0) + carry;
25262 this.words[i] = r &
0x3ffffff;
25265 for (; carry !==
0 && i < a.length; i++) {
25266 r = (a.words[i] |
0) + carry;
25267 this.words[i] = r &
0x3ffffff;
25271 this.length = a.length;
25273 this.words[this.length] = carry;
25275 // Copy the rest of the words
25276 } else if (a !== this) {
25277 for (; i < a.length; i++) {
25278 this.words[i] = a.words[i];
25285 // Add `num` to `this`
25286 BN.prototype.add = function add (num) {
25288 if (num.negative !==
0 && this.negative ===
0) {
25290 res = this.sub(num);
25293 } else if (num.negative ===
0 && this.negative !==
0) {
25295 res = num.sub(this);
25300 if (this.length
> num.length) return this.clone().iadd(num);
25302 return num.clone().iadd(this);
25305 // Subtract `num` from `this` in-place
25306 BN.prototype.isub = function isub (num) {
25307 // this - (-num) = this + num
25308 if (num.negative !==
0) {
25310 var r = this.iadd(num);
25312 return r._normSign();
25314 // -this - num = -(this + num)
25315 } else if (this.negative !==
0) {
25319 return this._normSign();
25322 // At this point both numbers are positive
25323 var cmp = this.cmp(num);
25325 // Optimization - zeroify
25344 for (var i =
0; i < b.length; i++) {
25345 r = (a.words[i] |
0) - (b.words[i] |
0) + carry;
25347 this.words[i] = r &
0x3ffffff;
25349 for (; carry !==
0 && i < a.length; i++) {
25350 r = (a.words[i] |
0) + carry;
25352 this.words[i] = r &
0x3ffffff;
25355 // Copy rest of the words
25356 if (carry ===
0 && i < a.length && a !== this) {
25357 for (; i < a.length; i++) {
25358 this.words[i] = a.words[i];
25362 this.length = Math.max(this.length, i);
25368 return this.strip();
25371 // Subtract `num` from `this`
25372 BN.prototype.sub = function sub (num) {
25373 return this.clone().isub(num);
25376 function smallMulTo (self, num, out) {
25377 out.negative = num.negative ^ self.negative;
25378 var len = (self.length + num.length) |
0;
25380 len = (len -
1) |
0;
25382 // Peel one iteration (compiler can't do it, because of code complexity)
25383 var a = self.words[
0] |
0;
25384 var b = num.words[
0] |
0;
25387 var lo = r &
0x3ffffff;
25388 var carry = (r /
0x4000000) |
0;
25391 for (var k =
1; k < len; k++) {
25392 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
25393 // note that ncarry could be
>=
0x3ffffff
25394 var ncarry = carry
>>> 26;
25395 var rword = carry &
0x3ffffff;
25396 var maxJ = Math.min(k, num.length -
1);
25397 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
25398 var i = (k - j) |
0;
25399 a = self.words[i] |
0;
25400 b = num.words[j] |
0;
25402 ncarry += (r /
0x4000000) |
0;
25403 rword = r &
0x3ffffff;
25405 out.words[k] = rword |
0;
25406 carry = ncarry |
0;
25409 out.words[k] = carry |
0;
25414 return out.strip();
25417 // TODO(indutny): it may be reasonable to omit it for users who don't need
25418 // to work with
256-bit numbers, otherwise it gives
20% improvement for
256-bit
25419 // multiplication (like elliptic secp256k1).
25420 var comb10MulTo = function comb10MulTo (self, num, out) {
25421 var a = self.words;
25429 var al0 = a0 &
0x1fff;
25430 var ah0 = a0
>>> 13;
25432 var al1 = a1 &
0x1fff;
25433 var ah1 = a1
>>> 13;
25435 var al2 = a2 &
0x1fff;
25436 var ah2 = a2
>>> 13;
25438 var al3 = a3 &
0x1fff;
25439 var ah3 = a3
>>> 13;
25441 var al4 = a4 &
0x1fff;
25442 var ah4 = a4
>>> 13;
25444 var al5 = a5 &
0x1fff;
25445 var ah5 = a5
>>> 13;
25447 var al6 = a6 &
0x1fff;
25448 var ah6 = a6
>>> 13;
25450 var al7 = a7 &
0x1fff;
25451 var ah7 = a7
>>> 13;
25453 var al8 = a8 &
0x1fff;
25454 var ah8 = a8
>>> 13;
25456 var al9 = a9 &
0x1fff;
25457 var ah9 = a9
>>> 13;
25459 var bl0 = b0 &
0x1fff;
25460 var bh0 = b0
>>> 13;
25462 var bl1 = b1 &
0x1fff;
25463 var bh1 = b1
>>> 13;
25465 var bl2 = b2 &
0x1fff;
25466 var bh2 = b2
>>> 13;
25468 var bl3 = b3 &
0x1fff;
25469 var bh3 = b3
>>> 13;
25471 var bl4 = b4 &
0x1fff;
25472 var bh4 = b4
>>> 13;
25474 var bl5 = b5 &
0x1fff;
25475 var bh5 = b5
>>> 13;
25477 var bl6 = b6 &
0x1fff;
25478 var bh6 = b6
>>> 13;
25480 var bl7 = b7 &
0x1fff;
25481 var bh7 = b7
>>> 13;
25483 var bl8 = b8 &
0x1fff;
25484 var bh8 = b8
>>> 13;
25486 var bl9 = b9 &
0x1fff;
25487 var bh9 = b9
>>> 13;
25489 out.negative = self.negative ^ num.negative;
25492 lo = Math.imul(al0, bl0);
25493 mid = Math.imul(al0, bh0);
25494 mid = (mid + Math.imul(ah0, bl0)) |
0;
25495 hi = Math.imul(ah0, bh0);
25496 var w0 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25497 c = (((hi + (mid
>>> 13)) |
0) + (w0
>>> 26)) |
0;
25500 lo = Math.imul(al1, bl0);
25501 mid = Math.imul(al1, bh0);
25502 mid = (mid + Math.imul(ah1, bl0)) |
0;
25503 hi = Math.imul(ah1, bh0);
25504 lo = (lo + Math.imul(al0, bl1)) |
0;
25505 mid = (mid + Math.imul(al0, bh1)) |
0;
25506 mid = (mid + Math.imul(ah0, bl1)) |
0;
25507 hi = (hi + Math.imul(ah0, bh1)) |
0;
25508 var w1 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25509 c = (((hi + (mid
>>> 13)) |
0) + (w1
>>> 26)) |
0;
25512 lo = Math.imul(al2, bl0);
25513 mid = Math.imul(al2, bh0);
25514 mid = (mid + Math.imul(ah2, bl0)) |
0;
25515 hi = Math.imul(ah2, bh0);
25516 lo = (lo + Math.imul(al1, bl1)) |
0;
25517 mid = (mid + Math.imul(al1, bh1)) |
0;
25518 mid = (mid + Math.imul(ah1, bl1)) |
0;
25519 hi = (hi + Math.imul(ah1, bh1)) |
0;
25520 lo = (lo + Math.imul(al0, bl2)) |
0;
25521 mid = (mid + Math.imul(al0, bh2)) |
0;
25522 mid = (mid + Math.imul(ah0, bl2)) |
0;
25523 hi = (hi + Math.imul(ah0, bh2)) |
0;
25524 var w2 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25525 c = (((hi + (mid
>>> 13)) |
0) + (w2
>>> 26)) |
0;
25528 lo = Math.imul(al3, bl0);
25529 mid = Math.imul(al3, bh0);
25530 mid = (mid + Math.imul(ah3, bl0)) |
0;
25531 hi = Math.imul(ah3, bh0);
25532 lo = (lo + Math.imul(al2, bl1)) |
0;
25533 mid = (mid + Math.imul(al2, bh1)) |
0;
25534 mid = (mid + Math.imul(ah2, bl1)) |
0;
25535 hi = (hi + Math.imul(ah2, bh1)) |
0;
25536 lo = (lo + Math.imul(al1, bl2)) |
0;
25537 mid = (mid + Math.imul(al1, bh2)) |
0;
25538 mid = (mid + Math.imul(ah1, bl2)) |
0;
25539 hi = (hi + Math.imul(ah1, bh2)) |
0;
25540 lo = (lo + Math.imul(al0, bl3)) |
0;
25541 mid = (mid + Math.imul(al0, bh3)) |
0;
25542 mid = (mid + Math.imul(ah0, bl3)) |
0;
25543 hi = (hi + Math.imul(ah0, bh3)) |
0;
25544 var w3 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25545 c = (((hi + (mid
>>> 13)) |
0) + (w3
>>> 26)) |
0;
25548 lo = Math.imul(al4, bl0);
25549 mid = Math.imul(al4, bh0);
25550 mid = (mid + Math.imul(ah4, bl0)) |
0;
25551 hi = Math.imul(ah4, bh0);
25552 lo = (lo + Math.imul(al3, bl1)) |
0;
25553 mid = (mid + Math.imul(al3, bh1)) |
0;
25554 mid = (mid + Math.imul(ah3, bl1)) |
0;
25555 hi = (hi + Math.imul(ah3, bh1)) |
0;
25556 lo = (lo + Math.imul(al2, bl2)) |
0;
25557 mid = (mid + Math.imul(al2, bh2)) |
0;
25558 mid = (mid + Math.imul(ah2, bl2)) |
0;
25559 hi = (hi + Math.imul(ah2, bh2)) |
0;
25560 lo = (lo + Math.imul(al1, bl3)) |
0;
25561 mid = (mid + Math.imul(al1, bh3)) |
0;
25562 mid = (mid + Math.imul(ah1, bl3)) |
0;
25563 hi = (hi + Math.imul(ah1, bh3)) |
0;
25564 lo = (lo + Math.imul(al0, bl4)) |
0;
25565 mid = (mid + Math.imul(al0, bh4)) |
0;
25566 mid = (mid + Math.imul(ah0, bl4)) |
0;
25567 hi = (hi + Math.imul(ah0, bh4)) |
0;
25568 var w4 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25569 c = (((hi + (mid
>>> 13)) |
0) + (w4
>>> 26)) |
0;
25572 lo = Math.imul(al5, bl0);
25573 mid = Math.imul(al5, bh0);
25574 mid = (mid + Math.imul(ah5, bl0)) |
0;
25575 hi = Math.imul(ah5, bh0);
25576 lo = (lo + Math.imul(al4, bl1)) |
0;
25577 mid = (mid + Math.imul(al4, bh1)) |
0;
25578 mid = (mid + Math.imul(ah4, bl1)) |
0;
25579 hi = (hi + Math.imul(ah4, bh1)) |
0;
25580 lo = (lo + Math.imul(al3, bl2)) |
0;
25581 mid = (mid + Math.imul(al3, bh2)) |
0;
25582 mid = (mid + Math.imul(ah3, bl2)) |
0;
25583 hi = (hi + Math.imul(ah3, bh2)) |
0;
25584 lo = (lo + Math.imul(al2, bl3)) |
0;
25585 mid = (mid + Math.imul(al2, bh3)) |
0;
25586 mid = (mid + Math.imul(ah2, bl3)) |
0;
25587 hi = (hi + Math.imul(ah2, bh3)) |
0;
25588 lo = (lo + Math.imul(al1, bl4)) |
0;
25589 mid = (mid + Math.imul(al1, bh4)) |
0;
25590 mid = (mid + Math.imul(ah1, bl4)) |
0;
25591 hi = (hi + Math.imul(ah1, bh4)) |
0;
25592 lo = (lo + Math.imul(al0, bl5)) |
0;
25593 mid = (mid + Math.imul(al0, bh5)) |
0;
25594 mid = (mid + Math.imul(ah0, bl5)) |
0;
25595 hi = (hi + Math.imul(ah0, bh5)) |
0;
25596 var w5 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25597 c = (((hi + (mid
>>> 13)) |
0) + (w5
>>> 26)) |
0;
25600 lo = Math.imul(al6, bl0);
25601 mid = Math.imul(al6, bh0);
25602 mid = (mid + Math.imul(ah6, bl0)) |
0;
25603 hi = Math.imul(ah6, bh0);
25604 lo = (lo + Math.imul(al5, bl1)) |
0;
25605 mid = (mid + Math.imul(al5, bh1)) |
0;
25606 mid = (mid + Math.imul(ah5, bl1)) |
0;
25607 hi = (hi + Math.imul(ah5, bh1)) |
0;
25608 lo = (lo + Math.imul(al4, bl2)) |
0;
25609 mid = (mid + Math.imul(al4, bh2)) |
0;
25610 mid = (mid + Math.imul(ah4, bl2)) |
0;
25611 hi = (hi + Math.imul(ah4, bh2)) |
0;
25612 lo = (lo + Math.imul(al3, bl3)) |
0;
25613 mid = (mid + Math.imul(al3, bh3)) |
0;
25614 mid = (mid + Math.imul(ah3, bl3)) |
0;
25615 hi = (hi + Math.imul(ah3, bh3)) |
0;
25616 lo = (lo + Math.imul(al2, bl4)) |
0;
25617 mid = (mid + Math.imul(al2, bh4)) |
0;
25618 mid = (mid + Math.imul(ah2, bl4)) |
0;
25619 hi = (hi + Math.imul(ah2, bh4)) |
0;
25620 lo = (lo + Math.imul(al1, bl5)) |
0;
25621 mid = (mid + Math.imul(al1, bh5)) |
0;
25622 mid = (mid + Math.imul(ah1, bl5)) |
0;
25623 hi = (hi + Math.imul(ah1, bh5)) |
0;
25624 lo = (lo + Math.imul(al0, bl6)) |
0;
25625 mid = (mid + Math.imul(al0, bh6)) |
0;
25626 mid = (mid + Math.imul(ah0, bl6)) |
0;
25627 hi = (hi + Math.imul(ah0, bh6)) |
0;
25628 var w6 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25629 c = (((hi + (mid
>>> 13)) |
0) + (w6
>>> 26)) |
0;
25632 lo = Math.imul(al7, bl0);
25633 mid = Math.imul(al7, bh0);
25634 mid = (mid + Math.imul(ah7, bl0)) |
0;
25635 hi = Math.imul(ah7, bh0);
25636 lo = (lo + Math.imul(al6, bl1)) |
0;
25637 mid = (mid + Math.imul(al6, bh1)) |
0;
25638 mid = (mid + Math.imul(ah6, bl1)) |
0;
25639 hi = (hi + Math.imul(ah6, bh1)) |
0;
25640 lo = (lo + Math.imul(al5, bl2)) |
0;
25641 mid = (mid + Math.imul(al5, bh2)) |
0;
25642 mid = (mid + Math.imul(ah5, bl2)) |
0;
25643 hi = (hi + Math.imul(ah5, bh2)) |
0;
25644 lo = (lo + Math.imul(al4, bl3)) |
0;
25645 mid = (mid + Math.imul(al4, bh3)) |
0;
25646 mid = (mid + Math.imul(ah4, bl3)) |
0;
25647 hi = (hi + Math.imul(ah4, bh3)) |
0;
25648 lo = (lo + Math.imul(al3, bl4)) |
0;
25649 mid = (mid + Math.imul(al3, bh4)) |
0;
25650 mid = (mid + Math.imul(ah3, bl4)) |
0;
25651 hi = (hi + Math.imul(ah3, bh4)) |
0;
25652 lo = (lo + Math.imul(al2, bl5)) |
0;
25653 mid = (mid + Math.imul(al2, bh5)) |
0;
25654 mid = (mid + Math.imul(ah2, bl5)) |
0;
25655 hi = (hi + Math.imul(ah2, bh5)) |
0;
25656 lo = (lo + Math.imul(al1, bl6)) |
0;
25657 mid = (mid + Math.imul(al1, bh6)) |
0;
25658 mid = (mid + Math.imul(ah1, bl6)) |
0;
25659 hi = (hi + Math.imul(ah1, bh6)) |
0;
25660 lo = (lo + Math.imul(al0, bl7)) |
0;
25661 mid = (mid + Math.imul(al0, bh7)) |
0;
25662 mid = (mid + Math.imul(ah0, bl7)) |
0;
25663 hi = (hi + Math.imul(ah0, bh7)) |
0;
25664 var w7 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25665 c = (((hi + (mid
>>> 13)) |
0) + (w7
>>> 26)) |
0;
25668 lo = Math.imul(al8, bl0);
25669 mid = Math.imul(al8, bh0);
25670 mid = (mid + Math.imul(ah8, bl0)) |
0;
25671 hi = Math.imul(ah8, bh0);
25672 lo = (lo + Math.imul(al7, bl1)) |
0;
25673 mid = (mid + Math.imul(al7, bh1)) |
0;
25674 mid = (mid + Math.imul(ah7, bl1)) |
0;
25675 hi = (hi + Math.imul(ah7, bh1)) |
0;
25676 lo = (lo + Math.imul(al6, bl2)) |
0;
25677 mid = (mid + Math.imul(al6, bh2)) |
0;
25678 mid = (mid + Math.imul(ah6, bl2)) |
0;
25679 hi = (hi + Math.imul(ah6, bh2)) |
0;
25680 lo = (lo + Math.imul(al5, bl3)) |
0;
25681 mid = (mid + Math.imul(al5, bh3)) |
0;
25682 mid = (mid + Math.imul(ah5, bl3)) |
0;
25683 hi = (hi + Math.imul(ah5, bh3)) |
0;
25684 lo = (lo + Math.imul(al4, bl4)) |
0;
25685 mid = (mid + Math.imul(al4, bh4)) |
0;
25686 mid = (mid + Math.imul(ah4, bl4)) |
0;
25687 hi = (hi + Math.imul(ah4, bh4)) |
0;
25688 lo = (lo + Math.imul(al3, bl5)) |
0;
25689 mid = (mid + Math.imul(al3, bh5)) |
0;
25690 mid = (mid + Math.imul(ah3, bl5)) |
0;
25691 hi = (hi + Math.imul(ah3, bh5)) |
0;
25692 lo = (lo + Math.imul(al2, bl6)) |
0;
25693 mid = (mid + Math.imul(al2, bh6)) |
0;
25694 mid = (mid + Math.imul(ah2, bl6)) |
0;
25695 hi = (hi + Math.imul(ah2, bh6)) |
0;
25696 lo = (lo + Math.imul(al1, bl7)) |
0;
25697 mid = (mid + Math.imul(al1, bh7)) |
0;
25698 mid = (mid + Math.imul(ah1, bl7)) |
0;
25699 hi = (hi + Math.imul(ah1, bh7)) |
0;
25700 lo = (lo + Math.imul(al0, bl8)) |
0;
25701 mid = (mid + Math.imul(al0, bh8)) |
0;
25702 mid = (mid + Math.imul(ah0, bl8)) |
0;
25703 hi = (hi + Math.imul(ah0, bh8)) |
0;
25704 var w8 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25705 c = (((hi + (mid
>>> 13)) |
0) + (w8
>>> 26)) |
0;
25708 lo = Math.imul(al9, bl0);
25709 mid = Math.imul(al9, bh0);
25710 mid = (mid + Math.imul(ah9, bl0)) |
0;
25711 hi = Math.imul(ah9, bh0);
25712 lo = (lo + Math.imul(al8, bl1)) |
0;
25713 mid = (mid + Math.imul(al8, bh1)) |
0;
25714 mid = (mid + Math.imul(ah8, bl1)) |
0;
25715 hi = (hi + Math.imul(ah8, bh1)) |
0;
25716 lo = (lo + Math.imul(al7, bl2)) |
0;
25717 mid = (mid + Math.imul(al7, bh2)) |
0;
25718 mid = (mid + Math.imul(ah7, bl2)) |
0;
25719 hi = (hi + Math.imul(ah7, bh2)) |
0;
25720 lo = (lo + Math.imul(al6, bl3)) |
0;
25721 mid = (mid + Math.imul(al6, bh3)) |
0;
25722 mid = (mid + Math.imul(ah6, bl3)) |
0;
25723 hi = (hi + Math.imul(ah6, bh3)) |
0;
25724 lo = (lo + Math.imul(al5, bl4)) |
0;
25725 mid = (mid + Math.imul(al5, bh4)) |
0;
25726 mid = (mid + Math.imul(ah5, bl4)) |
0;
25727 hi = (hi + Math.imul(ah5, bh4)) |
0;
25728 lo = (lo + Math.imul(al4, bl5)) |
0;
25729 mid = (mid + Math.imul(al4, bh5)) |
0;
25730 mid = (mid + Math.imul(ah4, bl5)) |
0;
25731 hi = (hi + Math.imul(ah4, bh5)) |
0;
25732 lo = (lo + Math.imul(al3, bl6)) |
0;
25733 mid = (mid + Math.imul(al3, bh6)) |
0;
25734 mid = (mid + Math.imul(ah3, bl6)) |
0;
25735 hi = (hi + Math.imul(ah3, bh6)) |
0;
25736 lo = (lo + Math.imul(al2, bl7)) |
0;
25737 mid = (mid + Math.imul(al2, bh7)) |
0;
25738 mid = (mid + Math.imul(ah2, bl7)) |
0;
25739 hi = (hi + Math.imul(ah2, bh7)) |
0;
25740 lo = (lo + Math.imul(al1, bl8)) |
0;
25741 mid = (mid + Math.imul(al1, bh8)) |
0;
25742 mid = (mid + Math.imul(ah1, bl8)) |
0;
25743 hi = (hi + Math.imul(ah1, bh8)) |
0;
25744 lo = (lo + Math.imul(al0, bl9)) |
0;
25745 mid = (mid + Math.imul(al0, bh9)) |
0;
25746 mid = (mid + Math.imul(ah0, bl9)) |
0;
25747 hi = (hi + Math.imul(ah0, bh9)) |
0;
25748 var w9 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25749 c = (((hi + (mid
>>> 13)) |
0) + (w9
>>> 26)) |
0;
25752 lo = Math.imul(al9, bl1);
25753 mid = Math.imul(al9, bh1);
25754 mid = (mid + Math.imul(ah9, bl1)) |
0;
25755 hi = Math.imul(ah9, bh1);
25756 lo = (lo + Math.imul(al8, bl2)) |
0;
25757 mid = (mid + Math.imul(al8, bh2)) |
0;
25758 mid = (mid + Math.imul(ah8, bl2)) |
0;
25759 hi = (hi + Math.imul(ah8, bh2)) |
0;
25760 lo = (lo + Math.imul(al7, bl3)) |
0;
25761 mid = (mid + Math.imul(al7, bh3)) |
0;
25762 mid = (mid + Math.imul(ah7, bl3)) |
0;
25763 hi = (hi + Math.imul(ah7, bh3)) |
0;
25764 lo = (lo + Math.imul(al6, bl4)) |
0;
25765 mid = (mid + Math.imul(al6, bh4)) |
0;
25766 mid = (mid + Math.imul(ah6, bl4)) |
0;
25767 hi = (hi + Math.imul(ah6, bh4)) |
0;
25768 lo = (lo + Math.imul(al5, bl5)) |
0;
25769 mid = (mid + Math.imul(al5, bh5)) |
0;
25770 mid = (mid + Math.imul(ah5, bl5)) |
0;
25771 hi = (hi + Math.imul(ah5, bh5)) |
0;
25772 lo = (lo + Math.imul(al4, bl6)) |
0;
25773 mid = (mid + Math.imul(al4, bh6)) |
0;
25774 mid = (mid + Math.imul(ah4, bl6)) |
0;
25775 hi = (hi + Math.imul(ah4, bh6)) |
0;
25776 lo = (lo + Math.imul(al3, bl7)) |
0;
25777 mid = (mid + Math.imul(al3, bh7)) |
0;
25778 mid = (mid + Math.imul(ah3, bl7)) |
0;
25779 hi = (hi + Math.imul(ah3, bh7)) |
0;
25780 lo = (lo + Math.imul(al2, bl8)) |
0;
25781 mid = (mid + Math.imul(al2, bh8)) |
0;
25782 mid = (mid + Math.imul(ah2, bl8)) |
0;
25783 hi = (hi + Math.imul(ah2, bh8)) |
0;
25784 lo = (lo + Math.imul(al1, bl9)) |
0;
25785 mid = (mid + Math.imul(al1, bh9)) |
0;
25786 mid = (mid + Math.imul(ah1, bl9)) |
0;
25787 hi = (hi + Math.imul(ah1, bh9)) |
0;
25788 var w10 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25789 c = (((hi + (mid
>>> 13)) |
0) + (w10
>>> 26)) |
0;
25792 lo = Math.imul(al9, bl2);
25793 mid = Math.imul(al9, bh2);
25794 mid = (mid + Math.imul(ah9, bl2)) |
0;
25795 hi = Math.imul(ah9, bh2);
25796 lo = (lo + Math.imul(al8, bl3)) |
0;
25797 mid = (mid + Math.imul(al8, bh3)) |
0;
25798 mid = (mid + Math.imul(ah8, bl3)) |
0;
25799 hi = (hi + Math.imul(ah8, bh3)) |
0;
25800 lo = (lo + Math.imul(al7, bl4)) |
0;
25801 mid = (mid + Math.imul(al7, bh4)) |
0;
25802 mid = (mid + Math.imul(ah7, bl4)) |
0;
25803 hi = (hi + Math.imul(ah7, bh4)) |
0;
25804 lo = (lo + Math.imul(al6, bl5)) |
0;
25805 mid = (mid + Math.imul(al6, bh5)) |
0;
25806 mid = (mid + Math.imul(ah6, bl5)) |
0;
25807 hi = (hi + Math.imul(ah6, bh5)) |
0;
25808 lo = (lo + Math.imul(al5, bl6)) |
0;
25809 mid = (mid + Math.imul(al5, bh6)) |
0;
25810 mid = (mid + Math.imul(ah5, bl6)) |
0;
25811 hi = (hi + Math.imul(ah5, bh6)) |
0;
25812 lo = (lo + Math.imul(al4, bl7)) |
0;
25813 mid = (mid + Math.imul(al4, bh7)) |
0;
25814 mid = (mid + Math.imul(ah4, bl7)) |
0;
25815 hi = (hi + Math.imul(ah4, bh7)) |
0;
25816 lo = (lo + Math.imul(al3, bl8)) |
0;
25817 mid = (mid + Math.imul(al3, bh8)) |
0;
25818 mid = (mid + Math.imul(ah3, bl8)) |
0;
25819 hi = (hi + Math.imul(ah3, bh8)) |
0;
25820 lo = (lo + Math.imul(al2, bl9)) |
0;
25821 mid = (mid + Math.imul(al2, bh9)) |
0;
25822 mid = (mid + Math.imul(ah2, bl9)) |
0;
25823 hi = (hi + Math.imul(ah2, bh9)) |
0;
25824 var w11 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25825 c = (((hi + (mid
>>> 13)) |
0) + (w11
>>> 26)) |
0;
25828 lo = Math.imul(al9, bl3);
25829 mid = Math.imul(al9, bh3);
25830 mid = (mid + Math.imul(ah9, bl3)) |
0;
25831 hi = Math.imul(ah9, bh3);
25832 lo = (lo + Math.imul(al8, bl4)) |
0;
25833 mid = (mid + Math.imul(al8, bh4)) |
0;
25834 mid = (mid + Math.imul(ah8, bl4)) |
0;
25835 hi = (hi + Math.imul(ah8, bh4)) |
0;
25836 lo = (lo + Math.imul(al7, bl5)) |
0;
25837 mid = (mid + Math.imul(al7, bh5)) |
0;
25838 mid = (mid + Math.imul(ah7, bl5)) |
0;
25839 hi = (hi + Math.imul(ah7, bh5)) |
0;
25840 lo = (lo + Math.imul(al6, bl6)) |
0;
25841 mid = (mid + Math.imul(al6, bh6)) |
0;
25842 mid = (mid + Math.imul(ah6, bl6)) |
0;
25843 hi = (hi + Math.imul(ah6, bh6)) |
0;
25844 lo = (lo + Math.imul(al5, bl7)) |
0;
25845 mid = (mid + Math.imul(al5, bh7)) |
0;
25846 mid = (mid + Math.imul(ah5, bl7)) |
0;
25847 hi = (hi + Math.imul(ah5, bh7)) |
0;
25848 lo = (lo + Math.imul(al4, bl8)) |
0;
25849 mid = (mid + Math.imul(al4, bh8)) |
0;
25850 mid = (mid + Math.imul(ah4, bl8)) |
0;
25851 hi = (hi + Math.imul(ah4, bh8)) |
0;
25852 lo = (lo + Math.imul(al3, bl9)) |
0;
25853 mid = (mid + Math.imul(al3, bh9)) |
0;
25854 mid = (mid + Math.imul(ah3, bl9)) |
0;
25855 hi = (hi + Math.imul(ah3, bh9)) |
0;
25856 var w12 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25857 c = (((hi + (mid
>>> 13)) |
0) + (w12
>>> 26)) |
0;
25860 lo = Math.imul(al9, bl4);
25861 mid = Math.imul(al9, bh4);
25862 mid = (mid + Math.imul(ah9, bl4)) |
0;
25863 hi = Math.imul(ah9, bh4);
25864 lo = (lo + Math.imul(al8, bl5)) |
0;
25865 mid = (mid + Math.imul(al8, bh5)) |
0;
25866 mid = (mid + Math.imul(ah8, bl5)) |
0;
25867 hi = (hi + Math.imul(ah8, bh5)) |
0;
25868 lo = (lo + Math.imul(al7, bl6)) |
0;
25869 mid = (mid + Math.imul(al7, bh6)) |
0;
25870 mid = (mid + Math.imul(ah7, bl6)) |
0;
25871 hi = (hi + Math.imul(ah7, bh6)) |
0;
25872 lo = (lo + Math.imul(al6, bl7)) |
0;
25873 mid = (mid + Math.imul(al6, bh7)) |
0;
25874 mid = (mid + Math.imul(ah6, bl7)) |
0;
25875 hi = (hi + Math.imul(ah6, bh7)) |
0;
25876 lo = (lo + Math.imul(al5, bl8)) |
0;
25877 mid = (mid + Math.imul(al5, bh8)) |
0;
25878 mid = (mid + Math.imul(ah5, bl8)) |
0;
25879 hi = (hi + Math.imul(ah5, bh8)) |
0;
25880 lo = (lo + Math.imul(al4, bl9)) |
0;
25881 mid = (mid + Math.imul(al4, bh9)) |
0;
25882 mid = (mid + Math.imul(ah4, bl9)) |
0;
25883 hi = (hi + Math.imul(ah4, bh9)) |
0;
25884 var w13 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25885 c = (((hi + (mid
>>> 13)) |
0) + (w13
>>> 26)) |
0;
25888 lo = Math.imul(al9, bl5);
25889 mid = Math.imul(al9, bh5);
25890 mid = (mid + Math.imul(ah9, bl5)) |
0;
25891 hi = Math.imul(ah9, bh5);
25892 lo = (lo + Math.imul(al8, bl6)) |
0;
25893 mid = (mid + Math.imul(al8, bh6)) |
0;
25894 mid = (mid + Math.imul(ah8, bl6)) |
0;
25895 hi = (hi + Math.imul(ah8, bh6)) |
0;
25896 lo = (lo + Math.imul(al7, bl7)) |
0;
25897 mid = (mid + Math.imul(al7, bh7)) |
0;
25898 mid = (mid + Math.imul(ah7, bl7)) |
0;
25899 hi = (hi + Math.imul(ah7, bh7)) |
0;
25900 lo = (lo + Math.imul(al6, bl8)) |
0;
25901 mid = (mid + Math.imul(al6, bh8)) |
0;
25902 mid = (mid + Math.imul(ah6, bl8)) |
0;
25903 hi = (hi + Math.imul(ah6, bh8)) |
0;
25904 lo = (lo + Math.imul(al5, bl9)) |
0;
25905 mid = (mid + Math.imul(al5, bh9)) |
0;
25906 mid = (mid + Math.imul(ah5, bl9)) |
0;
25907 hi = (hi + Math.imul(ah5, bh9)) |
0;
25908 var w14 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25909 c = (((hi + (mid
>>> 13)) |
0) + (w14
>>> 26)) |
0;
25912 lo = Math.imul(al9, bl6);
25913 mid = Math.imul(al9, bh6);
25914 mid = (mid + Math.imul(ah9, bl6)) |
0;
25915 hi = Math.imul(ah9, bh6);
25916 lo = (lo + Math.imul(al8, bl7)) |
0;
25917 mid = (mid + Math.imul(al8, bh7)) |
0;
25918 mid = (mid + Math.imul(ah8, bl7)) |
0;
25919 hi = (hi + Math.imul(ah8, bh7)) |
0;
25920 lo = (lo + Math.imul(al7, bl8)) |
0;
25921 mid = (mid + Math.imul(al7, bh8)) |
0;
25922 mid = (mid + Math.imul(ah7, bl8)) |
0;
25923 hi = (hi + Math.imul(ah7, bh8)) |
0;
25924 lo = (lo + Math.imul(al6, bl9)) |
0;
25925 mid = (mid + Math.imul(al6, bh9)) |
0;
25926 mid = (mid + Math.imul(ah6, bl9)) |
0;
25927 hi = (hi + Math.imul(ah6, bh9)) |
0;
25928 var w15 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25929 c = (((hi + (mid
>>> 13)) |
0) + (w15
>>> 26)) |
0;
25932 lo = Math.imul(al9, bl7);
25933 mid = Math.imul(al9, bh7);
25934 mid = (mid + Math.imul(ah9, bl7)) |
0;
25935 hi = Math.imul(ah9, bh7);
25936 lo = (lo + Math.imul(al8, bl8)) |
0;
25937 mid = (mid + Math.imul(al8, bh8)) |
0;
25938 mid = (mid + Math.imul(ah8, bl8)) |
0;
25939 hi = (hi + Math.imul(ah8, bh8)) |
0;
25940 lo = (lo + Math.imul(al7, bl9)) |
0;
25941 mid = (mid + Math.imul(al7, bh9)) |
0;
25942 mid = (mid + Math.imul(ah7, bl9)) |
0;
25943 hi = (hi + Math.imul(ah7, bh9)) |
0;
25944 var w16 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25945 c = (((hi + (mid
>>> 13)) |
0) + (w16
>>> 26)) |
0;
25948 lo = Math.imul(al9, bl8);
25949 mid = Math.imul(al9, bh8);
25950 mid = (mid + Math.imul(ah9, bl8)) |
0;
25951 hi = Math.imul(ah9, bh8);
25952 lo = (lo + Math.imul(al8, bl9)) |
0;
25953 mid = (mid + Math.imul(al8, bh9)) |
0;
25954 mid = (mid + Math.imul(ah8, bl9)) |
0;
25955 hi = (hi + Math.imul(ah8, bh9)) |
0;
25956 var w17 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25957 c = (((hi + (mid
>>> 13)) |
0) + (w17
>>> 26)) |
0;
25960 lo = Math.imul(al9, bl9);
25961 mid = Math.imul(al9, bh9);
25962 mid = (mid + Math.imul(ah9, bl9)) |
0;
25963 hi = Math.imul(ah9, bh9);
25964 var w18 = (((c + lo) |
0) + ((mid &
0x1fff) <<
13)) |
0;
25965 c = (((hi + (mid
>>> 13)) |
0) + (w18
>>> 26)) |
0;
25995 comb10MulTo = smallMulTo;
25998 function bigMulTo (self, num, out) {
25999 out.negative = num.negative ^ self.negative;
26000 out.length = self.length + num.length;
26004 for (var k =
0; k < out.length -
1; k++) {
26005 // Sum all words with the same `i + j = k` and accumulate `ncarry`,
26006 // note that ncarry could be
>=
0x3ffffff
26007 var ncarry = hncarry;
26009 var rword = carry &
0x3ffffff;
26010 var maxJ = Math.min(k, num.length -
1);
26011 for (var j = Math.max(
0, k - self.length +
1); j <= maxJ; j++) {
26013 var a = self.words[i] |
0;
26014 var b = num.words[j] |
0;
26017 var lo = r &
0x3ffffff;
26018 ncarry = (ncarry + ((r /
0x4000000) |
0)) |
0;
26019 lo = (lo + rword) |
0;
26020 rword = lo &
0x3ffffff;
26021 ncarry = (ncarry + (lo
>>> 26)) |
0;
26023 hncarry += ncarry
>>> 26;
26024 ncarry &=
0x3ffffff;
26026 out.words[k] = rword;
26031 out.words[k] = carry;
26036 return out.strip();
26039 function jumboMulTo (self, num, out) {
26040 var fftm = new FFTM();
26041 return fftm.mulp(self, num, out);
26044 BN.prototype.mulTo = function mulTo (num, out) {
26046 var len = this.length + num.length;
26047 if (this.length ===
10 && num.length ===
10) {
26048 res = comb10MulTo(this, num, out);
26049 } else if (len <
63) {
26050 res = smallMulTo(this, num, out);
26051 } else if (len <
1024) {
26052 res = bigMulTo(this, num, out);
26054 res = jumboMulTo(this, num, out);
26060 // Cooley-Tukey algorithm for FFT
26061 // slightly revisited to rely on looping instead of recursion
26063 function FFTM (x, y) {
26068 FFTM.prototype.makeRBT = function makeRBT (N) {
26069 var t = new Array(N);
26070 var l = BN.prototype._countBits(N) -
1;
26071 for (var i =
0; i < N; i++) {
26072 t[i] = this.revBin(i, l, N);
26078 // Returns binary-reversed representation of `x`
26079 FFTM.prototype.revBin = function revBin (x, l, N) {
26080 if (x ===
0 || x === N -
1) return x;
26083 for (var i =
0; i < l; i++) {
26084 rb |= (x &
1) << (l - i -
1);
26091 // Performs "tweedling" phase, therefore 'emulating'
26092 // behaviour of the recursive algorithm
26093 FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {
26094 for (var i =
0; i < N; i++) {
26095 rtws[i] = rws[rbt[i]];
26096 itws[i] = iws[rbt[i]];
26100 FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {
26101 this.permute(rbt, rws, iws, rtws, itws, N);
26103 for (var s =
1; s < N; s <<=
1) {
26106 var rtwdf = Math.cos(
2 * Math.PI / l);
26107 var itwdf = Math.sin(
2 * Math.PI / l);
26109 for (var p =
0; p < N; p += l) {
26110 var rtwdf_ = rtwdf;
26111 var itwdf_ = itwdf;
26113 for (var j =
0; j < s; j++) {
26114 var re = rtws[p + j];
26115 var ie = itws[p + j];
26117 var ro = rtws[p + j + s];
26118 var io = itws[p + j + s];
26120 var rx = rtwdf_ * ro - itwdf_ * io;
26122 io = rtwdf_ * io + itwdf_ * ro;
26125 rtws[p + j] = re + ro;
26126 itws[p + j] = ie + io;
26128 rtws[p + j + s] = re - ro;
26129 itws[p + j + s] = ie - io;
26131 /* jshint maxdepth : false */
26133 rx = rtwdf * rtwdf_ - itwdf * itwdf_;
26135 itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;
26143 FFTM.prototype.guessLen13b = function guessLen13b (n, m) {
26144 var N = Math.max(m, n) |
1;
26147 for (N = N /
2 |
0; N; N = N
>>> 1) {
26151 return
1 << i +
1 + odd;
26154 FFTM.prototype.conjugate = function conjugate (rws, iws, N) {
26155 if (N <=
1) return;
26157 for (var i =
0; i < N /
2; i++) {
26160 rws[i] = rws[N - i -
1];
26161 rws[N - i -
1] = t;
26165 iws[i] = -iws[N - i -
1];
26166 iws[N - i -
1] = -t;
26170 FFTM.prototype.normalize13b = function normalize13b (ws, N) {
26172 for (var i =
0; i < N /
2; i++) {
26173 var w = Math.round(ws[
2 * i +
1] / N) *
0x2000 +
26174 Math.round(ws[
2 * i] / N) +
26177 ws[i] = w &
0x3ffffff;
26179 if (w <
0x4000000) {
26182 carry = w /
0x4000000 |
0;
26189 FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {
26191 for (var i =
0; i < len; i++) {
26192 carry = carry + (ws[i] |
0);
26194 rws[
2 * i] = carry &
0x1fff; carry = carry
>>> 13;
26195 rws[
2 * i +
1] = carry &
0x1fff; carry = carry
>>> 13;
26199 for (i =
2 * len; i < N; ++i) {
26203 assert(carry ===
0);
26204 assert((carry & ~
0x1fff) ===
0);
26207 FFTM.prototype.stub = function stub (N) {
26208 var ph = new Array(N);
26209 for (var i =
0; i < N; i++) {
26216 FFTM.prototype.mulp = function mulp (x, y, out) {
26217 var N =
2 * this.guessLen13b(x.length, y.length);
26219 var rbt = this.makeRBT(N);
26221 var _ = this.stub(N);
26223 var rws = new Array(N);
26224 var rwst = new Array(N);
26225 var iwst = new Array(N);
26227 var nrws = new Array(N);
26228 var nrwst = new Array(N);
26229 var niwst = new Array(N);
26231 var rmws = out.words;
26234 this.convert13b(x.words, x.length, rws, N);
26235 this.convert13b(y.words, y.length, nrws, N);
26237 this.transform(rws, _, rwst, iwst, N, rbt);
26238 this.transform(nrws, _, nrwst, niwst, N, rbt);
26240 for (var i =
0; i < N; i++) {
26241 var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];
26242 iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];
26246 this.conjugate(rwst, iwst, N);
26247 this.transform(rwst, iwst, rmws, _, N, rbt);
26248 this.conjugate(rmws, _, N);
26249 this.normalize13b(rmws, N);
26251 out.negative = x.negative ^ y.negative;
26252 out.length = x.length + y.length;
26253 return out.strip();
26256 // Multiply `this` by `num`
26257 BN.prototype.mul = function mul (num) {
26258 var out = new BN(null);
26259 out.words = new Array(this.length + num.length);
26260 return this.mulTo(num, out);
26263 // Multiply employing FFT
26264 BN.prototype.mulf = function mulf (num) {
26265 var out = new BN(null);
26266 out.words = new Array(this.length + num.length);
26267 return jumboMulTo(this, num, out);
26270 // In-place Multiplication
26271 BN.prototype.imul = function imul (num) {
26272 return this.clone().mulTo(num, this);
26275 BN.prototype.imuln = function imuln (num) {
26276 assert(typeof num === 'number');
26277 assert(num <
0x4000000);
26281 for (var i =
0; i < this.length; i++) {
26282 var w = (this.words[i] |
0) * num;
26283 var lo = (w &
0x3ffffff) + (carry &
0x3ffffff);
26285 carry += (w /
0x4000000) |
0;
26286 // NOTE: lo is
27bit maximum
26287 carry += lo
>>> 26;
26288 this.words[i] = lo &
0x3ffffff;
26292 this.words[i] = carry;
26299 BN.prototype.muln = function muln (num) {
26300 return this.clone().imuln(num);
26304 BN.prototype.sqr = function sqr () {
26305 return this.mul(this);
26308 // `this` * `this` in-place
26309 BN.prototype.isqr = function isqr () {
26310 return this.imul(this.clone());
26313 // Math.pow(`this`, `num`)
26314 BN.prototype.pow = function pow (num) {
26315 var w = toBitArray(num);
26316 if (w.length ===
0) return new BN(
1);
26318 // Skip leading zeroes
26320 for (var i =
0; i < w.length; i++, res = res.sqr()) {
26321 if (w[i] !==
0) break;
26324 if (++i < w.length) {
26325 for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {
26326 if (w[i] ===
0) continue;
26335 // Shift-left in-place
26336 BN.prototype.iushln = function iushln (bits) {
26337 assert(typeof bits === 'number' && bits
>=
0);
26339 var s = (bits - r) /
26;
26340 var carryMask = (
0x3ffffff >>> (
26 - r)) << (
26 - r);
26346 for (i =
0; i < this.length; i++) {
26347 var newCarry = this.words[i] & carryMask;
26348 var c = ((this.words[i] |
0) - newCarry) << r;
26349 this.words[i] = c | carry;
26350 carry = newCarry
>>> (
26 - r);
26354 this.words[i] = carry;
26360 for (i = this.length -
1; i
>=
0; i--) {
26361 this.words[i + s] = this.words[i];
26364 for (i =
0; i < s; i++) {
26371 return this.strip();
26374 BN.prototype.ishln = function ishln (bits) {
26375 // TODO(indutny): implement me
26376 assert(this.negative ===
0);
26377 return this.iushln(bits);
26380 // Shift-right in-place
26381 // NOTE: `hint` is a lowest bit before trailing zeroes
26382 // NOTE: if `extended` is present - it will be filled with destroyed bits
26383 BN.prototype.iushrn = function iushrn (bits, hint, extended) {
26384 assert(typeof bits === 'number' && bits
>=
0);
26387 h = (hint - (hint %
26)) /
26;
26393 var s = Math.min((bits - r) /
26, this.length);
26394 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
26395 var maskedWords = extended;
26398 h = Math.max(
0, h);
26400 // Extended mode, copy masked part
26402 for (var i =
0; i < s; i++) {
26403 maskedWords.words[i] = this.words[i];
26405 maskedWords.length = s;
26409 // No-op, we should not move anything at all
26410 } else if (this.length
> s) {
26412 for (i =
0; i < this.length; i++) {
26413 this.words[i] = this.words[i + s];
26421 for (i = this.length -
1; i
>=
0 && (carry !==
0 || i
>= h); i--) {
26422 var word = this.words[i] |
0;
26423 this.words[i] = (carry << (
26 - r)) | (word
>>> r);
26424 carry = word & mask;
26427 // Push carried bits as a mask
26428 if (maskedWords && carry !==
0) {
26429 maskedWords.words[maskedWords.length++] = carry;
26432 if (this.length ===
0) {
26437 return this.strip();
26440 BN.prototype.ishrn = function ishrn (bits, hint, extended) {
26441 // TODO(indutny): implement me
26442 assert(this.negative ===
0);
26443 return this.iushrn(bits, hint, extended);
26447 BN.prototype.shln = function shln (bits) {
26448 return this.clone().ishln(bits);
26451 BN.prototype.ushln = function ushln (bits) {
26452 return this.clone().iushln(bits);
26456 BN.prototype.shrn = function shrn (bits) {
26457 return this.clone().ishrn(bits);
26460 BN.prototype.ushrn = function ushrn (bits) {
26461 return this.clone().iushrn(bits);
26464 // Test if n bit is set
26465 BN.prototype.testn = function testn (bit) {
26466 assert(typeof bit === 'number' && bit
>=
0);
26468 var s = (bit - r) /
26;
26471 // Fast case: bit is much higher than all existing words
26472 if (this.length <= s) return false;
26474 // Check bit and return
26475 var w = this.words[s];
26480 // Return only lowers bits of number (in-place)
26481 BN.prototype.imaskn = function imaskn (bits) {
26482 assert(typeof bits === 'number' && bits
>=
0);
26484 var s = (bits - r) /
26;
26486 assert(this.negative ===
0, 'imaskn works only with positive numbers');
26488 if (this.length <= s) {
26495 this.length = Math.min(s, this.length);
26498 var mask =
0x3ffffff ^ ((
0x3ffffff >>> r) << r);
26499 this.words[this.length -
1] &= mask;
26502 return this.strip();
26505 // Return only lowers bits of number
26506 BN.prototype.maskn = function maskn (bits) {
26507 return this.clone().imaskn(bits);
26510 // Add plain number `num` to `this`
26511 BN.prototype.iaddn = function iaddn (num) {
26512 assert(typeof num === 'number');
26513 assert(num <
0x4000000);
26514 if (num <
0) return this.isubn(-num);
26516 // Possible sign change
26517 if (this.negative !==
0) {
26518 if (this.length ===
1 && (this.words[
0] |
0) < num) {
26519 this.words[
0] = num - (this.words[
0] |
0);
26530 // Add without checks
26531 return this._iaddn(num);
26534 BN.prototype._iaddn = function _iaddn (num) {
26535 this.words[
0] += num;
26538 for (var i =
0; i < this.length && this.words[i]
>=
0x4000000; i++) {
26539 this.words[i] -=
0x4000000;
26540 if (i === this.length -
1) {
26541 this.words[i +
1] =
1;
26543 this.words[i +
1]++;
26546 this.length = Math.max(this.length, i +
1);
26551 // Subtract plain number `num` from `this`
26552 BN.prototype.isubn = function isubn (num) {
26553 assert(typeof num === 'number');
26554 assert(num <
0x4000000);
26555 if (num <
0) return this.iaddn(-num);
26557 if (this.negative !==
0) {
26564 this.words[
0] -= num;
26566 if (this.length ===
1 && this.words[
0] <
0) {
26567 this.words[
0] = -this.words[
0];
26571 for (var i =
0; i < this.length && this.words[i] <
0; i++) {
26572 this.words[i] +=
0x4000000;
26573 this.words[i +
1] -=
1;
26577 return this.strip();
26580 BN.prototype.addn = function addn (num) {
26581 return this.clone().iaddn(num);
26584 BN.prototype.subn = function subn (num) {
26585 return this.clone().isubn(num);
26588 BN.prototype.iabs = function iabs () {
26594 BN.prototype.abs = function abs () {
26595 return this.clone().iabs();
26598 BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {
26599 var len = num.length + shift;
26606 for (i =
0; i < num.length; i++) {
26607 w = (this.words[i + shift] |
0) + carry;
26608 var right = (num.words[i] |
0) * mul;
26609 w -= right &
0x3ffffff;
26610 carry = (w
>> 26) - ((right /
0x4000000) |
0);
26611 this.words[i + shift] = w &
0x3ffffff;
26613 for (; i < this.length - shift; i++) {
26614 w = (this.words[i + shift] |
0) + carry;
26616 this.words[i + shift] = w &
0x3ffffff;
26619 if (carry ===
0) return this.strip();
26621 // Subtraction overflow
26622 assert(carry === -
1);
26624 for (i =
0; i < this.length; i++) {
26625 w = -(this.words[i] |
0) + carry;
26627 this.words[i] = w &
0x3ffffff;
26631 return this.strip();
26634 BN.prototype._wordDiv = function _wordDiv (num, mode) {
26635 var shift = this.length - num.length;
26637 var a = this.clone();
26641 var bhi = b.words[b.length -
1] |
0;
26642 var bhiBits = this._countBits(bhi);
26643 shift =
26 - bhiBits;
26645 b = b.ushln(shift);
26647 bhi = b.words[b.length -
1] |
0;
26650 // Initialize quotient
26651 var m = a.length - b.length;
26654 if (mode !== 'mod') {
26657 q.words = new Array(q.length);
26658 for (var i =
0; i < q.length; i++) {
26663 var diff = a.clone()._ishlnsubmul(b,
1, m);
26664 if (diff.negative ===
0) {
26671 for (var j = m -
1; j
>=
0; j--) {
26672 var qj = (a.words[b.length + j] |
0) *
0x4000000 +
26673 (a.words[b.length + j -
1] |
0);
26675 // NOTE: (qj / bhi) is (
0x3ffffff *
0x4000000 +
0x3ffffff) /
0x2000000 max
26677 qj = Math.min((qj / bhi) |
0,
0x3ffffff);
26679 a._ishlnsubmul(b, qj, j);
26680 while (a.negative !==
0) {
26683 a._ishlnsubmul(b,
1, j);
26698 if (mode !== 'div' && shift !==
0) {
26708 // NOTE:
1) `mode` can be set to `mod` to request mod only,
26709 // to `div` to request div only, or be absent to
26710 // request both div & mod
26711 //
2) `positive` is true if unsigned mod is requested
26712 BN.prototype.divmod = function divmod (num, mode, positive) {
26713 assert(!num.isZero());
26715 if (this.isZero()) {
26723 if (this.negative !==
0 && num.negative ===
0) {
26724 res = this.neg().divmod(num, mode);
26726 if (mode !== 'mod') {
26727 div = res.div.neg();
26730 if (mode !== 'div') {
26731 mod = res.mod.neg();
26732 if (positive && mod.negative !==
0) {
26743 if (this.negative ===
0 && num.negative !==
0) {
26744 res = this.divmod(num.neg(), mode);
26746 if (mode !== 'mod') {
26747 div = res.div.neg();
26756 if ((this.negative & num.negative) !==
0) {
26757 res = this.neg().divmod(num.neg(), mode);
26759 if (mode !== 'div') {
26760 mod = res.mod.neg();
26761 if (positive && mod.negative !==
0) {
26772 // Both numbers are positive at this point
26774 // Strip both numbers to approximate shift value
26775 if (num.length
> this.length || this.cmp(num) <
0) {
26782 // Very short reduction
26783 if (num.length ===
1) {
26784 if (mode === 'div') {
26786 div: this.divn(num.words[
0]),
26791 if (mode === 'mod') {
26794 mod: new BN(this.modn(num.words[
0]))
26799 div: this.divn(num.words[
0]),
26800 mod: new BN(this.modn(num.words[
0]))
26804 return this._wordDiv(num, mode);
26807 // Find `this` / `num`
26808 BN.prototype.div = function div (num) {
26809 return this.divmod(num, 'div', false).div;
26812 // Find `this` % `num`
26813 BN.prototype.mod = function mod (num) {
26814 return this.divmod(num, 'mod', false).mod;
26817 BN.prototype.umod = function umod (num) {
26818 return this.divmod(num, 'mod', true).mod;
26821 // Find Round(`this` / `num`)
26822 BN.prototype.divRound = function divRound (num) {
26823 var dm = this.divmod(num);
26825 // Fast case - exact division
26826 if (dm.mod.isZero()) return dm.div;
26828 var mod = dm.div.negative !==
0 ? dm.mod.isub(num) : dm.mod;
26830 var half = num.ushrn(
1);
26831 var r2 = num.andln(
1);
26832 var cmp = mod.cmp(half);
26835 if (cmp <
0 || r2 ===
1 && cmp ===
0) return dm.div;
26838 return dm.div.negative !==
0 ? dm.div.isubn(
1) : dm.div.iaddn(
1);
26841 BN.prototype.modn = function modn (num) {
26842 assert(num <=
0x3ffffff);
26843 var p = (
1 <<
26) % num;
26846 for (var i = this.length -
1; i
>=
0; i--) {
26847 acc = (p * acc + (this.words[i] |
0)) % num;
26853 // In-place division by number
26854 BN.prototype.idivn = function idivn (num) {
26855 assert(num <=
0x3ffffff);
26858 for (var i = this.length -
1; i
>=
0; i--) {
26859 var w = (this.words[i] |
0) + carry *
0x4000000;
26860 this.words[i] = (w / num) |
0;
26864 return this.strip();
26867 BN.prototype.divn = function divn (num) {
26868 return this.clone().idivn(num);
26871 BN.prototype.egcd = function egcd (p) {
26872 assert(p.negative ===
0);
26873 assert(!p.isZero());
26878 if (x.negative !==
0) {
26884 // A * x + B * y = x
26888 // C * x + D * y = y
26894 while (x.isEven() && y.isEven()) {
26900 var yp = y.clone();
26901 var xp = x.clone();
26903 while (!x.isZero()) {
26904 for (var i =
0, im =
1; (x.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
26908 if (A.isOdd() || B.isOdd()) {
26918 for (var j =
0, jm =
1; (y.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
26922 if (C.isOdd() || D.isOdd()) {
26932 if (x.cmp(y)
>=
0) {
26950 // This is reduced incarnation of the binary EEA
26951 // above, designated to invert members of the
26952 // _prime_ fields F(p) at a maximal speed
26953 BN.prototype._invmp = function _invmp (p) {
26954 assert(p.negative ===
0);
26955 assert(!p.isZero());
26960 if (a.negative !==
0) {
26966 var x1 = new BN(
1);
26967 var x2 = new BN(
0);
26969 var delta = b.clone();
26971 while (a.cmpn(
1)
> 0 && b.cmpn(
1)
> 0) {
26972 for (var i =
0, im =
1; (a.words[
0] & im) ===
0 && i <
26; ++i, im <<=
1);
26984 for (var j =
0, jm =
1; (b.words[
0] & jm) ===
0 && j <
26; ++j, jm <<=
1);
26996 if (a.cmp(b)
>=
0) {
27006 if (a.cmpn(
1) ===
0) {
27012 if (res.cmpn(
0) <
0) {
27019 BN.prototype.gcd = function gcd (num) {
27020 if (this.isZero()) return num.abs();
27021 if (num.isZero()) return this.abs();
27023 var a = this.clone();
27024 var b = num.clone();
27028 // Remove common factor of two
27029 for (var shift =
0; a.isEven() && b.isEven(); shift++) {
27035 while (a.isEven()) {
27038 while (b.isEven()) {
27044 // Swap `a` and `b` to make `a` always bigger than `b`
27048 } else if (r ===
0 || b.cmpn(
1) ===
0) {
27055 return b.iushln(shift);
27058 // Invert number in the field F(num)
27059 BN.prototype.invm = function invm (num) {
27060 return this.egcd(num).a.umod(num);
27063 BN.prototype.isEven = function isEven () {
27064 return (this.words[
0] &
1) ===
0;
27067 BN.prototype.isOdd = function isOdd () {
27068 return (this.words[
0] &
1) ===
1;
27071 // And first word and num
27072 BN.prototype.andln = function andln (num) {
27073 return this.words[
0] & num;
27076 // Increment at the bit position in-line
27077 BN.prototype.bincn = function bincn (bit) {
27078 assert(typeof bit === 'number');
27080 var s = (bit - r) /
26;
27083 // Fast case: bit is much higher than all existing words
27084 if (this.length <= s) {
27085 this._expand(s +
1);
27086 this.words[s] |= q;
27090 // Add bit and propagate, if needed
27092 for (var i = s; carry !==
0 && i < this.length; i++) {
27093 var w = this.words[i] |
0;
27100 this.words[i] = carry;
27106 BN.prototype.isZero = function isZero () {
27107 return this.length ===
1 && this.words[
0] ===
0;
27110 BN.prototype.cmpn = function cmpn (num) {
27111 var negative = num <
0;
27113 if (this.negative !==
0 && !negative) return -
1;
27114 if (this.negative ===
0 && negative) return
1;
27119 if (this.length
> 1) {
27126 assert(num <=
0x3ffffff, 'Number is too big');
27128 var w = this.words[
0] |
0;
27129 res = w === num ?
0 : w < num ? -
1 :
1;
27131 if (this.negative !==
0) return -res |
0;
27135 // Compare two numbers and return:
27136 //
1 - if `this`
> `num`
27137 //
0 - if `this` == `num`
27138 // -
1 - if `this` < `num`
27139 BN.prototype.cmp = function cmp (num) {
27140 if (this.negative !==
0 && num.negative ===
0) return -
1;
27141 if (this.negative ===
0 && num.negative !==
0) return
1;
27143 var res = this.ucmp(num);
27144 if (this.negative !==
0) return -res |
0;
27148 // Unsigned comparison
27149 BN.prototype.ucmp = function ucmp (num) {
27150 // At this point both numbers have the same sign
27151 if (this.length
> num.length) return
1;
27152 if (this.length < num.length) return -
1;
27155 for (var i = this.length -
1; i
>=
0; i--) {
27156 var a = this.words[i] |
0;
27157 var b = num.words[i] |
0;
27159 if (a === b) continue;
27162 } else if (a
> b) {
27170 BN.prototype.gtn = function gtn (num) {
27171 return this.cmpn(num) ===
1;
27174 BN.prototype.gt = function gt (num) {
27175 return this.cmp(num) ===
1;
27178 BN.prototype.gten = function gten (num) {
27179 return this.cmpn(num)
>=
0;
27182 BN.prototype.gte = function gte (num) {
27183 return this.cmp(num)
>=
0;
27186 BN.prototype.ltn = function ltn (num) {
27187 return this.cmpn(num) === -
1;
27190 BN.prototype.lt = function lt (num) {
27191 return this.cmp(num) === -
1;
27194 BN.prototype.lten = function lten (num) {
27195 return this.cmpn(num) <=
0;
27198 BN.prototype.lte = function lte (num) {
27199 return this.cmp(num) <=
0;
27202 BN.prototype.eqn = function eqn (num) {
27203 return this.cmpn(num) ===
0;
27206 BN.prototype.eq = function eq (num) {
27207 return this.cmp(num) ===
0;
27211 // A reduce context, could be using montgomery or something better, depending
27212 // on the `m` itself.
27214 BN.red = function red (num) {
27215 return new Red(num);
27218 BN.prototype.toRed = function toRed (ctx) {
27219 assert(!this.red, 'Already a number in reduction context');
27220 assert(this.negative ===
0, 'red works only with positives');
27221 return ctx.convertTo(this)._forceRed(ctx);
27224 BN.prototype.fromRed = function fromRed () {
27225 assert(this.red, 'fromRed works only with numbers in reduction context');
27226 return this.red.convertFrom(this);
27229 BN.prototype._forceRed = function _forceRed (ctx) {
27234 BN.prototype.forceRed = function forceRed (ctx) {
27235 assert(!this.red, 'Already a number in reduction context');
27236 return this._forceRed(ctx);
27239 BN.prototype.redAdd = function redAdd (num) {
27240 assert(this.red, 'redAdd works only with red numbers');
27241 return this.red.add(this, num);
27244 BN.prototype.redIAdd = function redIAdd (num) {
27245 assert(this.red, 'redIAdd works only with red numbers');
27246 return this.red.iadd(this, num);
27249 BN.prototype.redSub = function redSub (num) {
27250 assert(this.red, 'redSub works only with red numbers');
27251 return this.red.sub(this, num);
27254 BN.prototype.redISub = function redISub (num) {
27255 assert(this.red, 'redISub works only with red numbers');
27256 return this.red.isub(this, num);
27259 BN.prototype.redShl = function redShl (num) {
27260 assert(this.red, 'redShl works only with red numbers');
27261 return this.red.shl(this, num);
27264 BN.prototype.redMul = function redMul (num) {
27265 assert(this.red, 'redMul works only with red numbers');
27266 this.red._verify2(this, num);
27267 return this.red.mul(this, num);
27270 BN.prototype.redIMul = function redIMul (num) {
27271 assert(this.red, 'redMul works only with red numbers');
27272 this.red._verify2(this, num);
27273 return this.red.imul(this, num);
27276 BN.prototype.redSqr = function redSqr () {
27277 assert(this.red, 'redSqr works only with red numbers');
27278 this.red._verify1(this);
27279 return this.red.sqr(this);
27282 BN.prototype.redISqr = function redISqr () {
27283 assert(this.red, 'redISqr works only with red numbers');
27284 this.red._verify1(this);
27285 return this.red.isqr(this);
27288 // Square root over p
27289 BN.prototype.redSqrt = function redSqrt () {
27290 assert(this.red, 'redSqrt works only with red numbers');
27291 this.red._verify1(this);
27292 return this.red.sqrt(this);
27295 BN.prototype.redInvm = function redInvm () {
27296 assert(this.red, 'redInvm works only with red numbers');
27297 this.red._verify1(this);
27298 return this.red.invm(this);
27301 // Return negative clone of `this` % `red modulo`
27302 BN.prototype.redNeg = function redNeg () {
27303 assert(this.red, 'redNeg works only with red numbers');
27304 this.red._verify1(this);
27305 return this.red.neg(this);
27308 BN.prototype.redPow = function redPow (num) {
27309 assert(this.red && !num.red, 'redPow(normalNum)');
27310 this.red._verify1(this);
27311 return this.red.pow(this, num);
27314 // Prime numbers with efficient reduction
27322 // Pseudo-Mersenne prime
27323 function MPrime (name, p) {
27326 this.p = new BN(p,
16);
27327 this.n = this.p.bitLength();
27328 this.k = new BN(
1).iushln(this.n).isub(this.p);
27330 this.tmp = this._tmp();
27333 MPrime.prototype._tmp = function _tmp () {
27334 var tmp = new BN(null);
27335 tmp.words = new Array(Math.ceil(this.n /
13));
27339 MPrime.prototype.ireduce = function ireduce (num) {
27340 // Assumes that `num` is less than `P^
2`
27341 // num = HI * (
2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)
27346 this.split(r, this.tmp);
27348 r = r.iadd(this.tmp);
27349 rlen = r.bitLength();
27350 } while (rlen
> this.n);
27352 var cmp = rlen < this.n ? -
1 : r.ucmp(this.p);
27356 } else if (cmp
> 0) {
27365 MPrime.prototype.split = function split (input, out) {
27366 input.iushrn(this.n,
0, out);
27369 MPrime.prototype.imulK = function imulK (num) {
27370 return num.imul(this.k);
27377 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');
27379 inherits(K256, MPrime);
27381 K256.prototype.split = function split (input, output) {
27382 //
256 =
9 *
26 +
22
27383 var mask =
0x3fffff;
27385 var outLen = Math.min(input.length,
9);
27386 for (var i =
0; i < outLen; i++) {
27387 output.words[i] = input.words[i];
27389 output.length = outLen;
27391 if (input.length <=
9) {
27392 input.words[
0] =
0;
27397 // Shift by
9 limbs
27398 var prev = input.words[
9];
27399 output.words[output.length++] = prev & mask;
27401 for (i =
10; i < input.length; i++) {
27402 var next = input.words[i] |
0;
27403 input.words[i -
10] = ((next & mask) <<
4) | (prev
>>> 22);
27407 input.words[i -
10] = prev;
27408 if (prev ===
0 && input.length
> 10) {
27409 input.length -=
10;
27415 K256.prototype.imulK = function imulK (num) {
27416 // K =
0x1000003d1 = [
0x40,
0x3d1 ]
27417 num.words[num.length] =
0;
27418 num.words[num.length +
1] =
0;
27421 // bounded at:
0x40 *
0x3ffffff +
0x3d0 =
0x100000390
27423 for (var i =
0; i < num.length; i++) {
27424 var w = num.words[i] |
0;
27426 num.words[i] = lo &
0x3ffffff;
27427 lo = w *
0x40 + ((lo /
0x4000000) |
0);
27430 // Fast length reduction
27431 if (num.words[num.length -
1] ===
0) {
27433 if (num.words[num.length -
1] ===
0) {
27444 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001');
27446 inherits(P224, MPrime);
27452 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');
27454 inherits(P192, MPrime);
27456 function P25519 () {
27461 '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');
27463 inherits(P25519, MPrime);
27465 P25519.prototype.imulK = function imulK (num) {
27468 for (var i =
0; i < num.length; i++) {
27469 var hi = (num.words[i] |
0) *
0x13 + carry;
27470 var lo = hi &
0x3ffffff;
27477 num.words[num.length++] = carry;
27482 // Exported mostly for testing purposes, use plain name instead
27483 BN._prime = function prime (name) {
27484 // Cached version of prime
27485 if (primes[name]) return primes[name];
27488 if (name === 'k256') {
27489 prime = new K256();
27490 } else if (name === 'p224') {
27491 prime = new P224();
27492 } else if (name === 'p192') {
27493 prime = new P192();
27494 } else if (name === 'p25519') {
27495 prime = new P25519();
27497 throw new Error('Unknown prime ' + name);
27499 primes[name] = prime;
27505 // Base reduction engine
27508 if (typeof m === 'string') {
27509 var prime = BN._prime(m);
27511 this.prime = prime;
27513 assert(m.gtn(
1), 'modulus must be greater than
1');
27519 Red.prototype._verify1 = function _verify1 (a) {
27520 assert(a.negative ===
0, 'red works only with positives');
27521 assert(a.red, 'red works only with red numbers');
27524 Red.prototype._verify2 = function _verify2 (a, b) {
27525 assert((a.negative | b.negative) ===
0, 'red works only with positives');
27526 assert(a.red && a.red === b.red,
27527 'red works only with red numbers');
27530 Red.prototype.imod = function imod (a) {
27531 if (this.prime) return this.prime.ireduce(a)._forceRed(this);
27532 return a.umod(this.m)._forceRed(this);
27535 Red.prototype.neg = function neg (a) {
27540 return this.m.sub(a)._forceRed(this);
27543 Red.prototype.add = function add (a, b) {
27544 this._verify2(a, b);
27546 var res = a.add(b);
27547 if (res.cmp(this.m)
>=
0) {
27550 return res._forceRed(this);
27553 Red.prototype.iadd = function iadd (a, b) {
27554 this._verify2(a, b);
27556 var res = a.iadd(b);
27557 if (res.cmp(this.m)
>=
0) {
27563 Red.prototype.sub = function sub (a, b) {
27564 this._verify2(a, b);
27566 var res = a.sub(b);
27567 if (res.cmpn(
0) <
0) {
27570 return res._forceRed(this);
27573 Red.prototype.isub = function isub (a, b) {
27574 this._verify2(a, b);
27576 var res = a.isub(b);
27577 if (res.cmpn(
0) <
0) {
27583 Red.prototype.shl = function shl (a, num) {
27585 return this.imod(a.ushln(num));
27588 Red.prototype.imul = function imul (a, b) {
27589 this._verify2(a, b);
27590 return this.imod(a.imul(b));
27593 Red.prototype.mul = function mul (a, b) {
27594 this._verify2(a, b);
27595 return this.imod(a.mul(b));
27598 Red.prototype.isqr = function isqr (a) {
27599 return this.imul(a, a.clone());
27602 Red.prototype.sqr = function sqr (a) {
27603 return this.mul(a, a);
27606 Red.prototype.sqrt = function sqrt (a) {
27607 if (a.isZero()) return a.clone();
27609 var mod3 = this.m.andln(
3);
27610 assert(mod3 %
2 ===
1);
27614 var pow = this.m.add(new BN(
1)).iushrn(
2);
27615 return this.pow(a, pow);
27618 // Tonelli-Shanks algorithm (Totally unoptimized and slow)
27620 // Find Q and S, that Q *
2 ^ S = (P -
1)
27621 var q = this.m.subn(
1);
27623 while (!q.isZero() && q.andln(
1) ===
0) {
27627 assert(!q.isZero());
27629 var one = new BN(
1).toRed(this);
27630 var nOne = one.redNeg();
27632 // Find quadratic non-residue
27633 // NOTE: Max is such because of generalized Riemann hypothesis.
27634 var lpow = this.m.subn(
1).iushrn(
1);
27635 var z = this.m.bitLength();
27636 z = new BN(
2 * z * z).toRed(this);
27638 while (this.pow(z, lpow).cmp(nOne) !==
0) {
27642 var c = this.pow(z, q);
27643 var r = this.pow(a, q.addn(
1).iushrn(
1));
27644 var t = this.pow(a, q);
27646 while (t.cmp(one) !==
0) {
27648 for (var i =
0; tmp.cmp(one) !==
0; i++) {
27649 tmp = tmp.redSqr();
27652 var b = this.pow(c, new BN(
1).iushln(m - i -
1));
27663 Red.prototype.invm = function invm (a) {
27664 var inv = a._invmp(this.m);
27665 if (inv.negative !==
0) {
27667 return this.imod(inv).redNeg();
27669 return this.imod(inv);
27673 Red.prototype.pow = function pow (a, num) {
27674 if (num.isZero()) return new BN(
1);
27675 if (num.cmpn(
1) ===
0) return a.clone();
27677 var windowSize =
4;
27678 var wnd = new Array(
1 << windowSize);
27679 wnd[
0] = new BN(
1).toRed(this);
27681 for (var i =
2; i < wnd.length; i++) {
27682 wnd[i] = this.mul(wnd[i -
1], a);
27687 var currentLen =
0;
27688 var start = num.bitLength() %
26;
27693 for (i = num.length -
1; i
>=
0; i--) {
27694 var word = num.words[i];
27695 for (var j = start -
1; j
>=
0; j--) {
27696 var bit = (word
>> j) &
1;
27697 if (res !== wnd[
0]) {
27698 res = this.sqr(res);
27701 if (bit ===
0 && current ===
0) {
27709 if (currentLen !== windowSize && (i !==
0 || j !==
0)) continue;
27711 res = this.mul(res, wnd[current]);
27721 Red.prototype.convertTo = function convertTo (num) {
27722 var r = num.umod(this.m);
27724 return r === num ? r.clone() : r;
27727 Red.prototype.convertFrom = function convertFrom (num) {
27728 var res = num.clone();
27734 // Montgomery method engine
27737 BN.mont = function mont (num) {
27738 return new Mont(num);
27741 function Mont (m) {
27744 this.shift = this.m.bitLength();
27745 if (this.shift %
26 !==
0) {
27746 this.shift +=
26 - (this.shift %
26);
27749 this.r = new BN(
1).iushln(this.shift);
27750 this.r2 = this.imod(this.r.sqr());
27751 this.rinv = this.r._invmp(this.m);
27753 this.minv = this.rinv.mul(this.r).isubn(
1).div(this.m);
27754 this.minv = this.minv.umod(this.r);
27755 this.minv = this.r.sub(this.minv);
27757 inherits(Mont, Red);
27759 Mont.prototype.convertTo = function convertTo (num) {
27760 return this.imod(num.ushln(this.shift));
27763 Mont.prototype.convertFrom = function convertFrom (num) {
27764 var r = this.imod(num.mul(this.rinv));
27769 Mont.prototype.imul = function imul (a, b) {
27770 if (a.isZero() || b.isZero()) {
27777 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
27778 var u = t.isub(c).iushrn(this.shift);
27781 if (u.cmp(this.m)
>=
0) {
27782 res = u.isub(this.m);
27783 } else if (u.cmpn(
0) <
0) {
27784 res = u.iadd(this.m);
27787 return res._forceRed(this);
27790 Mont.prototype.mul = function mul (a, b) {
27791 if (a.isZero() || b.isZero()) return new BN(
0)._forceRed(this);
27794 var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);
27795 var u = t.isub(c).iushrn(this.shift);
27797 if (u.cmp(this.m)
>=
0) {
27798 res = u.isub(this.m);
27799 } else if (u.cmpn(
0) <
0) {
27800 res = u.iadd(this.m);
27803 return res._forceRed(this);
27806 Mont.prototype.invm = function invm (a) {
27807 // (AR)^-
1 * R^
2 = (A^-
1 * R^-
1) * R^
2 = A^-
1 * R
27808 var res = this.imod(a._invmp(this.m).mul(this.r2));
27809 return res._forceRed(this);
27811 })(typeof module === 'undefined' || module, this);
27813 },{}],
34:[function(require,module,exports){
27816 module.exports = function rand(len) {
27818 r = new Rand(null);
27820 return r.generate(len);
27823 function Rand(rand) {
27826 module.exports.Rand = Rand;
27828 Rand.prototype.generate = function generate(len) {
27829 return this._rand(len);
27832 if (typeof self === 'object') {
27833 if (self.crypto && self.crypto.getRandomValues) {
27835 Rand.prototype._rand = function _rand(n) {
27836 var arr = new Uint8Array(n);
27837 self.crypto.getRandomValues(arr);
27840 } else if (self.msCrypto && self.msCrypto.getRandomValues) {
27842 Rand.prototype._rand = function _rand(n) {
27843 var arr = new Uint8Array(n);
27844 self.msCrypto.getRandomValues(arr);
27849 Rand.prototype._rand = function() {
27850 throw new Error('Not implemented yet');
27854 // Node.js or Web worker with no crypto support
27856 var crypto = require('crypto');
27858 Rand.prototype._rand = function _rand(n) {
27859 return crypto.randomBytes(n);
27862 // Emulate crypto API using randy
27863 Rand.prototype._rand = function _rand(n) {
27864 var res = new Uint8Array(n);
27865 for (var i =
0; i < res.length; i++)
27866 res[i] = this.rand.getByte();
27872 },{"crypto":
3}],
35:[function(require,module,exports){
27873 (function (Buffer){
27874 var Transform = require('stream').Transform
27875 var inherits = require('inherits')
27876 var StringDecoder = require('string_decoder').StringDecoder
27877 module.exports = CipherBase
27878 inherits(CipherBase, Transform)
27879 function CipherBase (hashMode) {
27880 Transform.call(this)
27881 this.hashMode = typeof hashMode === 'string'
27882 if (this.hashMode) {
27883 this[hashMode] = this._finalOrDigest
27885 this.final = this._finalOrDigest
27887 this._decoder = null
27888 this._encoding = null
27890 CipherBase.prototype.update = function (data, inputEnc, outputEnc) {
27891 if (typeof data === 'string') {
27892 data = new Buffer(data, inputEnc)
27894 var outData = this._update(data)
27895 if (this.hashMode) {
27899 outData = this._toString(outData, outputEnc)
27904 CipherBase.prototype.setAutoPadding = function () {}
27906 CipherBase.prototype.getAuthTag = function () {
27907 throw new Error('trying to get auth tag in unsupported state')
27910 CipherBase.prototype.setAuthTag = function () {
27911 throw new Error('trying to set auth tag in unsupported state')
27914 CipherBase.prototype.setAAD = function () {
27915 throw new Error('trying to set aad in unsupported state')
27918 CipherBase.prototype._transform = function (data, _, next) {
27921 if (this.hashMode) {
27924 this.push(this._update(data))
27932 CipherBase.prototype._flush = function (done) {
27935 this.push(this._final())
27942 CipherBase.prototype._finalOrDigest = function (outputEnc) {
27943 var outData = this._final() || new Buffer('')
27945 outData = this._toString(outData, outputEnc, true)
27950 CipherBase.prototype._toString = function (value, enc, fin) {
27951 if (!this._decoder) {
27952 this._decoder = new StringDecoder(enc)
27953 this._encoding = enc
27955 if (this._encoding !== enc) {
27956 throw new Error('can\'t switch encodings')
27958 var out = this._decoder.write(value)
27960 out += this._decoder.end()
27965 }).call(this,require("buffer").Buffer)
27966 },{"buffer":
5,"inherits":
63,"stream":
25,"string_decoder":
26}],
36:[function(require,module,exports){
27967 (function (Buffer){
27969 var inherits = require('inherits')
27970 var md5 = require('./md5')
27971 var rmd160 = require('ripemd160')
27972 var sha = require('sha.js')
27974 var Base = require('cipher-base')
27976 function HashNoConstructor(hash) {
27977 Base.call(this, 'digest')
27983 inherits(HashNoConstructor, Base)
27985 HashNoConstructor.prototype._update = function (data) {
27986 this.buffers.push(data)
27989 HashNoConstructor.prototype._final = function () {
27990 var buf = Buffer.concat(this.buffers)
27991 var r = this._hash(buf)
27992 this.buffers = null
27997 function Hash(hash) {
27998 Base.call(this, 'digest')
28003 inherits(Hash, Base)
28005 Hash.prototype._update = function (data) {
28006 this._hash.update(data)
28009 Hash.prototype._final = function () {
28010 return this._hash.digest()
28013 module.exports = function createHash (alg) {
28014 alg = alg.toLowerCase()
28015 if ('md5' === alg) return new HashNoConstructor(md5)
28016 if ('rmd160' === alg || 'ripemd160' === alg) return new HashNoConstructor(rmd160)
28018 return new Hash(sha(alg))
28021 }).call(this,require("buffer").Buffer)
28022 },{"./md5":
38,"buffer":
5,"cipher-base":
35,"inherits":
63,"ripemd160":
71,"sha.js":
80}],
37:[function(require,module,exports){
28023 (function (Buffer){
28026 var zeroBuffer = new Buffer(intSize); zeroBuffer.fill(
0);
28029 function toArray(buf, bigEndian) {
28030 if ((buf.length % intSize) !==
0) {
28031 var len = buf.length + (intSize - (buf.length % intSize));
28032 buf = Buffer.concat([buf, zeroBuffer], len);
28036 var fn = bigEndian ? buf.readInt32BE : buf.readInt32LE;
28037 for (var i =
0; i < buf.length; i += intSize) {
28038 arr.push(fn.call(buf, i));
28043 function toBuffer(arr, size, bigEndian) {
28044 var buf = new Buffer(size);
28045 var fn = bigEndian ? buf.writeInt32BE : buf.writeInt32LE;
28046 for (var i =
0; i < arr.length; i++) {
28047 fn.call(buf, arr[i], i *
4, true);
28052 function hash(buf, fn, hashSize, bigEndian) {
28053 if (!Buffer.isBuffer(buf)) buf = new Buffer(buf);
28054 var arr = fn(toArray(buf, bigEndian), buf.length * chrsz);
28055 return toBuffer(arr, hashSize, bigEndian);
28057 exports.hash = hash;
28058 }).call(this,require("buffer").Buffer)
28059 },{"buffer":
5}],
38:[function(require,module,exports){
28062 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
28063 * Digest Algorithm, as defined in RFC
1321.
28064 * Version
2.1 Copyright (C) Paul Johnston
1999 -
2002.
28065 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
28066 * Distributed under the BSD License
28067 * See http://pajhome.org.uk/crypt/md5 for more info.
28070 var helpers = require('./helpers');
28073 * Calculate the MD5 of an array of little-endian words, and a bit length
28075 function core_md5(x, len)
28077 /* append padding */
28078 x[len
>> 5] |=
0x80 << ((len) %
32);
28079 x[(((len +
64)
>>> 9) <<
4) +
14] = len;
28081 var a =
1732584193;
28082 var b = -
271733879;
28083 var c = -
1732584194;
28086 for(var i =
0; i < x.length; i +=
16)
28093 a = md5_ff(a, b, c, d, x[i+
0],
7 , -
680876936);
28094 d = md5_ff(d, a, b, c, x[i+
1],
12, -
389564586);
28095 c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
28096 b = md5_ff(b, c, d, a, x[i+
3],
22, -
1044525330);
28097 a = md5_ff(a, b, c, d, x[i+
4],
7 , -
176418897);
28098 d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
28099 c = md5_ff(c, d, a, b, x[i+
6],
17, -
1473231341);
28100 b = md5_ff(b, c, d, a, x[i+
7],
22, -
45705983);
28101 a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
28102 d = md5_ff(d, a, b, c, x[i+
9],
12, -
1958414417);
28103 c = md5_ff(c, d, a, b, x[i+
10],
17, -
42063);
28104 b = md5_ff(b, c, d, a, x[i+
11],
22, -
1990404162);
28105 a = md5_ff(a, b, c, d, x[i+
12],
7 ,
1804603682);
28106 d = md5_ff(d, a, b, c, x[i+
13],
12, -
40341101);
28107 c = md5_ff(c, d, a, b, x[i+
14],
17, -
1502002290);
28108 b = md5_ff(b, c, d, a, x[i+
15],
22,
1236535329);
28110 a = md5_gg(a, b, c, d, x[i+
1],
5 , -
165796510);
28111 d = md5_gg(d, a, b, c, x[i+
6],
9 , -
1069501632);
28112 c = md5_gg(c, d, a, b, x[i+
11],
14,
643717713);
28113 b = md5_gg(b, c, d, a, x[i+
0],
20, -
373897302);
28114 a = md5_gg(a, b, c, d, x[i+
5],
5 , -
701558691);
28115 d = md5_gg(d, a, b, c, x[i+
10],
9 ,
38016083);
28116 c = md5_gg(c, d, a, b, x[i+
15],
14, -
660478335);
28117 b = md5_gg(b, c, d, a, x[i+
4],
20, -
405537848);
28118 a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
28119 d = md5_gg(d, a, b, c, x[i+
14],
9 , -
1019803690);
28120 c = md5_gg(c, d, a, b, x[i+
3],
14, -
187363961);
28121 b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
28122 a = md5_gg(a, b, c, d, x[i+
13],
5 , -
1444681467);
28123 d = md5_gg(d, a, b, c, x[i+
2],
9 , -
51403784);
28124 c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
28125 b = md5_gg(b, c, d, a, x[i+
12],
20, -
1926607734);
28127 a = md5_hh(a, b, c, d, x[i+
5],
4 , -
378558);
28128 d = md5_hh(d, a, b, c, x[i+
8],
11, -
2022574463);
28129 c = md5_hh(c, d, a, b, x[i+
11],
16,
1839030562);
28130 b = md5_hh(b, c, d, a, x[i+
14],
23, -
35309556);
28131 a = md5_hh(a, b, c, d, x[i+
1],
4 , -
1530992060);
28132 d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
28133 c = md5_hh(c, d, a, b, x[i+
7],
16, -
155497632);
28134 b = md5_hh(b, c, d, a, x[i+
10],
23, -
1094730640);
28135 a = md5_hh(a, b, c, d, x[i+
13],
4 ,
681279174);
28136 d = md5_hh(d, a, b, c, x[i+
0],
11, -
358537222);
28137 c = md5_hh(c, d, a, b, x[i+
3],
16, -
722521979);
28138 b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
28139 a = md5_hh(a, b, c, d, x[i+
9],
4 , -
640364487);
28140 d = md5_hh(d, a, b, c, x[i+
12],
11, -
421815835);
28141 c = md5_hh(c, d, a, b, x[i+
15],
16,
530742520);
28142 b = md5_hh(b, c, d, a, x[i+
2],
23, -
995338651);
28144 a = md5_ii(a, b, c, d, x[i+
0],
6 , -
198630844);
28145 d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
28146 c = md5_ii(c, d, a, b, x[i+
14],
15, -
1416354905);
28147 b = md5_ii(b, c, d, a, x[i+
5],
21, -
57434055);
28148 a = md5_ii(a, b, c, d, x[i+
12],
6 ,
1700485571);
28149 d = md5_ii(d, a, b, c, x[i+
3],
10, -
1894986606);
28150 c = md5_ii(c, d, a, b, x[i+
10],
15, -
1051523);
28151 b = md5_ii(b, c, d, a, x[i+
1],
21, -
2054922799);
28152 a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
28153 d = md5_ii(d, a, b, c, x[i+
15],
10, -
30611744);
28154 c = md5_ii(c, d, a, b, x[i+
6],
15, -
1560198380);
28155 b = md5_ii(b, c, d, a, x[i+
13],
21,
1309151649);
28156 a = md5_ii(a, b, c, d, x[i+
4],
6 , -
145523070);
28157 d = md5_ii(d, a, b, c, x[i+
11],
10, -
1120210379);
28158 c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
28159 b = md5_ii(b, c, d, a, x[i+
9],
21, -
343485551);
28161 a = safe_add(a, olda);
28162 b = safe_add(b, oldb);
28163 c = safe_add(c, oldc);
28164 d = safe_add(d, oldd);
28166 return Array(a, b, c, d);
28171 * These functions implement the four basic operations the algorithm uses.
28173 function md5_cmn(q, a, b, x, s, t)
28175 return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
28177 function md5_ff(a, b, c, d, x, s, t)
28179 return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
28181 function md5_gg(a, b, c, d, x, s, t)
28183 return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
28185 function md5_hh(a, b, c, d, x, s, t)
28187 return md5_cmn(b ^ c ^ d, a, b, x, s, t);
28189 function md5_ii(a, b, c, d, x, s, t)
28191 return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
28195 * Add integers, wrapping at
2^
32. This uses
16-bit operations internally
28196 * to work around bugs in some JS interpreters.
28198 function safe_add(x, y)
28200 var lsw = (x &
0xFFFF) + (y &
0xFFFF);
28201 var msw = (x
>> 16) + (y
>> 16) + (lsw
>> 16);
28202 return (msw <<
16) | (lsw &
0xFFFF);
28206 * Bitwise rotate a
32-bit number to the left.
28208 function bit_rol(num, cnt)
28210 return (num << cnt) | (num
>>> (
32 - cnt));
28213 module.exports = function md5(buf) {
28214 return helpers.hash(buf, core_md5,
16);
28216 },{"./helpers":
37}],
39:[function(require,module,exports){
28219 var elliptic = exports;
28221 elliptic.version = require('../package.json').version;
28222 elliptic.utils = require('./elliptic/utils');
28223 elliptic.rand = require('brorand');
28224 elliptic.hmacDRBG = require('./elliptic/hmac-drbg');
28225 elliptic.curve = require('./elliptic/curve');
28226 elliptic.curves = require('./elliptic/curves');
28229 elliptic.ec = require('./elliptic/ec');
28230 elliptic.eddsa = require('./elliptic/eddsa');
28232 },{"../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){
28235 var BN = require('bn.js');
28236 var elliptic = require('../../elliptic');
28237 var utils = elliptic.utils;
28238 var getNAF = utils.getNAF;
28239 var getJSF = utils.getJSF;
28240 var assert = utils.assert;
28242 function BaseCurve(type, conf) {
28244 this.p = new BN(conf.p,
16);
28246 // Use Montgomery, when there is no fast reduction for the prime
28247 this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);
28249 // Useful for many curves
28250 this.zero = new BN(
0).toRed(this.red);
28251 this.one = new BN(
1).toRed(this.red);
28252 this.two = new BN(
2).toRed(this.red);
28254 // Curve configuration, optional
28255 this.n = conf.n && new BN(conf.n,
16);
28256 this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);
28258 // Temporary arrays
28259 this._wnafT1 = new Array(
4);
28260 this._wnafT2 = new Array(
4);
28261 this._wnafT3 = new Array(
4);
28262 this._wnafT4 = new Array(
4);
28264 // Generalized Greg Maxwell's trick
28265 var adjustCount = this.n && this.p.div(this.n);
28266 if (!adjustCount || adjustCount.cmpn(
100)
> 0) {
28269 this._maxwellTrick = true;
28270 this.redN = this.n.toRed(this.red);
28273 module.exports = BaseCurve;
28275 BaseCurve.prototype.point = function point() {
28276 throw new Error('Not implemented');
28279 BaseCurve.prototype.validate = function validate() {
28280 throw new Error('Not implemented');
28283 BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {
28284 assert(p.precomputed);
28285 var doubles = p._getDoubles();
28287 var naf = getNAF(k,
1);
28288 var I = (
1 << (doubles.step +
1)) - (doubles.step %
2 ===
0 ?
2 :
1);
28291 // Translate into more windowed form
28293 for (var j =
0; j < naf.length; j += doubles.step) {
28295 for (var k = j + doubles.step -
1; k
>= j; k--)
28296 nafW = (nafW <<
1) + naf[k];
28300 var a = this.jpoint(null, null, null);
28301 var b = this.jpoint(null, null, null);
28302 for (var i = I; i
> 0; i--) {
28303 for (var j =
0; j < repr.length; j++) {
28304 var nafW = repr[j];
28306 b = b.mixedAdd(doubles.points[j]);
28307 else if (nafW === -i)
28308 b = b.mixedAdd(doubles.points[j].neg());
28315 BaseCurve.prototype._wnafMul = function _wnafMul(p, k) {
28318 // Precompute window
28319 var nafPoints = p._getNAFPoints(w);
28321 var wnd = nafPoints.points;
28324 var naf = getNAF(k, w);
28326 // Add `this`*(N+
1) for every w-NAF index
28327 var acc = this.jpoint(null, null, null);
28328 for (var i = naf.length -
1; i
>=
0; i--) {
28330 for (var k =
0; i
>=
0 && naf[i] ===
0; i--)
28340 if (p.type === 'affine') {
28343 acc = acc.mixedAdd(wnd[(z -
1)
>> 1]);
28345 acc = acc.mixedAdd(wnd[(-z -
1)
>> 1].neg());
28349 acc = acc.add(wnd[(z -
1)
>> 1]);
28351 acc = acc.add(wnd[(-z -
1)
>> 1].neg());
28354 return p.type === 'affine' ? acc.toP() : acc;
28357 BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,
28362 var wndWidth = this._wnafT1;
28363 var wnd = this._wnafT2;
28364 var naf = this._wnafT3;
28368 for (var i =
0; i < len; i++) {
28370 var nafPoints = p._getNAFPoints(defW);
28371 wndWidth[i] = nafPoints.wnd;
28372 wnd[i] = nafPoints.points;
28375 // Comb small window NAFs
28376 for (var i = len -
1; i
>=
1; i -=
2) {
28379 if (wndWidth[a] !==
1 || wndWidth[b] !==
1) {
28380 naf[a] = getNAF(coeffs[a], wndWidth[a]);
28381 naf[b] = getNAF(coeffs[b], wndWidth[b]);
28382 max = Math.max(naf[a].length, max);
28383 max = Math.max(naf[b].length, max);
28394 // Try to avoid Projective points, if possible
28395 if (points[a].y.cmp(points[b].y) ===
0) {
28396 comb[
1] = points[a].add(points[b]);
28397 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
28398 } else if (points[a].y.cmp(points[b].y.redNeg()) ===
0) {
28399 comb[
1] = points[a].toJ().mixedAdd(points[b]);
28400 comb[
2] = points[a].add(points[b].neg());
28402 comb[
1] = points[a].toJ().mixedAdd(points[b]);
28403 comb[
2] = points[a].toJ().mixedAdd(points[b].neg());
28418 var jsf = getJSF(coeffs[a], coeffs[b]);
28419 max = Math.max(jsf[
0].length, max);
28420 naf[a] = new Array(max);
28421 naf[b] = new Array(max);
28422 for (var j =
0; j < max; j++) {
28423 var ja = jsf[
0][j] |
0;
28424 var jb = jsf[
1][j] |
0;
28426 naf[a][j] = index[(ja +
1) *
3 + (jb +
1)];
28432 var acc = this.jpoint(null, null, null);
28433 var tmp = this._wnafT4;
28434 for (var i = max; i
>=
0; i--) {
28439 for (var j =
0; j < len; j++) {
28440 tmp[j] = naf[j][i] |
0;
28455 for (var j =
0; j < len; j++) {
28461 p = wnd[j][(z -
1)
>> 1];
28463 p = wnd[j][(-z -
1)
>> 1].neg();
28465 if (p.type === 'affine')
28466 acc = acc.mixedAdd(p);
28471 // Zeroify references
28472 for (var i =
0; i < len; i++)
28475 if (jacobianResult)
28481 function BasePoint(curve, type) {
28482 this.curve = curve;
28484 this.precomputed = null;
28486 BaseCurve.BasePoint = BasePoint;
28488 BasePoint.prototype.eq = function eq(/*other*/) {
28489 throw new Error('Not implemented');
28492 BasePoint.prototype.validate = function validate() {
28493 return this.curve.validate(this);
28496 BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
28497 bytes = utils.toArray(bytes, enc);
28499 var len = this.p.byteLength();
28501 // uncompressed, hybrid-odd, hybrid-even
28502 if ((bytes[
0] ===
0x04 || bytes[
0] ===
0x06 || bytes[
0] ===
0x07) &&
28503 bytes.length -
1 ===
2 * len) {
28504 if (bytes[
0] ===
0x06)
28505 assert(bytes[bytes.length -
1] %
2 ===
0);
28506 else if (bytes[
0] ===
0x07)
28507 assert(bytes[bytes.length -
1] %
2 ===
1);
28509 var res = this.point(bytes.slice(
1,
1 + len),
28510 bytes.slice(
1 + len,
1 +
2 * len));
28513 } else if ((bytes[
0] ===
0x02 || bytes[
0] ===
0x03) &&
28514 bytes.length -
1 === len) {
28515 return this.pointFromX(bytes.slice(
1,
1 + len), bytes[
0] ===
0x03);
28517 throw new Error('Unknown point format');
28520 BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {
28521 return this.encode(enc, true);
28524 BasePoint.prototype._encode = function _encode(compact) {
28525 var len = this.curve.p.byteLength();
28526 var x = this.getX().toArray('be', len);
28529 return [ this.getY().isEven() ?
0x02 :
0x03 ].concat(x);
28531 return [
0x04 ].concat(x, this.getY().toArray('be', len)) ;
28534 BasePoint.prototype.encode = function encode(enc, compact) {
28535 return utils.encode(this._encode(compact), enc);
28538 BasePoint.prototype.precompute = function precompute(power) {
28539 if (this.precomputed)
28542 var precomputed = {
28547 precomputed.naf = this._getNAFPoints(
8);
28548 precomputed.doubles = this._getDoubles(
4, power);
28549 precomputed.beta = this._getBeta();
28550 this.precomputed = precomputed;
28555 BasePoint.prototype._hasDoubles = function _hasDoubles(k) {
28556 if (!this.precomputed)
28559 var doubles = this.precomputed.doubles;
28563 return doubles.points.length
>= Math.ceil((k.bitLength() +
1) / doubles.step);
28566 BasePoint.prototype._getDoubles = function _getDoubles(step, power) {
28567 if (this.precomputed && this.precomputed.doubles)
28568 return this.precomputed.doubles;
28570 var doubles = [ this ];
28572 for (var i =
0; i < power; i += step) {
28573 for (var j =
0; j < step; j++)
28583 BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {
28584 if (this.precomputed && this.precomputed.naf)
28585 return this.precomputed.naf;
28587 var res = [ this ];
28588 var max = (
1 << wnd) -
1;
28589 var dbl = max ===
1 ? null : this.dbl();
28590 for (var i =
1; i < max; i++)
28591 res[i] = res[i -
1].add(dbl);
28598 BasePoint.prototype._getBeta = function _getBeta() {
28602 BasePoint.prototype.dblp = function dblp(k) {
28604 for (var i =
0; i < k; i++)
28609 },{"../../elliptic":
39,"bn.js":
33}],
41:[function(require,module,exports){
28612 var curve = require('../curve');
28613 var elliptic = require('../../elliptic');
28614 var BN = require('bn.js');
28615 var inherits = require('inherits');
28616 var Base = curve.base;
28618 var assert = elliptic.utils.assert;
28620 function EdwardsCurve(conf) {
28621 // NOTE: Important as we are creating point in Base.call()
28622 this.twisted = (conf.a |
0) !==
1;
28623 this.mOneA = this.twisted && (conf.a |
0) === -
1;
28624 this.extended = this.mOneA;
28626 Base.call(this, 'edwards', conf);
28628 this.a = new BN(conf.a,
16).umod(this.red.m);
28629 this.a = this.a.toRed(this.red);
28630 this.c = new BN(conf.c,
16).toRed(this.red);
28631 this.c2 = this.c.redSqr();
28632 this.d = new BN(conf.d,
16).toRed(this.red);
28633 this.dd = this.d.redAdd(this.d);
28635 assert(!this.twisted || this.c.fromRed().cmpn(
1) ===
0);
28636 this.oneC = (conf.c |
0) ===
1;
28638 inherits(EdwardsCurve, Base);
28639 module.exports = EdwardsCurve;
28641 EdwardsCurve.prototype._mulA = function _mulA(num) {
28643 return num.redNeg();
28645 return this.a.redMul(num);
28648 EdwardsCurve.prototype._mulC = function _mulC(num) {
28652 return this.c.redMul(num);
28655 // Just for compatibility with Short curve
28656 EdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {
28657 return this.point(x, y, z, t);
28660 EdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {
28663 x = x.toRed(this.red);
28665 var x2 = x.redSqr();
28666 var rhs = this.c2.redSub(this.a.redMul(x2));
28667 var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));
28669 var y2 = rhs.redMul(lhs.redInvm());
28670 var y = y2.redSqrt();
28671 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
28672 throw new Error('invalid point');
28674 var isOdd = y.fromRed().isOdd();
28675 if (odd && !isOdd || !odd && isOdd)
28678 return this.point(x, y);
28681 EdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {
28684 y = y.toRed(this.red);
28686 // x^
2 = (y^
2 -
1) / (d y^
2 +
1)
28687 var y2 = y.redSqr();
28688 var lhs = y2.redSub(this.one);
28689 var rhs = y2.redMul(this.d).redAdd(this.one);
28690 var x2 = lhs.redMul(rhs.redInvm());
28692 if (x2.cmp(this.zero) ===
0) {
28694 throw new Error('invalid point');
28696 return this.point(this.zero, y);
28699 var x = x2.redSqrt();
28700 if (x.redSqr().redSub(x2).cmp(this.zero) !==
0)
28701 throw new Error('invalid point');
28703 if (x.isOdd() !== odd)
28706 return this.point(x, y);
28709 EdwardsCurve.prototype.validate = function validate(point) {
28710 if (point.isInfinity())
28713 // Curve: A * X^
2 + Y^
2 = C^
2 * (
1 + D * X^
2 * Y^
2)
28716 var x2 = point.x.redSqr();
28717 var y2 = point.y.redSqr();
28718 var lhs = x2.redMul(this.a).redAdd(y2);
28719 var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));
28721 return lhs.cmp(rhs) ===
0;
28724 function Point(curve, x, y, z, t) {
28725 Base.BasePoint.call(this, curve, 'projective');
28726 if (x === null && y === null && z === null) {
28727 this.x = this.curve.zero;
28728 this.y = this.curve.one;
28729 this.z = this.curve.one;
28730 this.t = this.curve.zero;
28733 this.x = new BN(x,
16);
28734 this.y = new BN(y,
16);
28735 this.z = z ? new BN(z,
16) : this.curve.one;
28736 this.t = t && new BN(t,
16);
28738 this.x = this.x.toRed(this.curve.red);
28740 this.y = this.y.toRed(this.curve.red);
28742 this.z = this.z.toRed(this.curve.red);
28743 if (this.t && !this.t.red)
28744 this.t = this.t.toRed(this.curve.red);
28745 this.zOne = this.z === this.curve.one;
28747 // Use extended coordinates
28748 if (this.curve.extended && !this.t) {
28749 this.t = this.x.redMul(this.y);
28751 this.t = this.t.redMul(this.z.redInvm());
28755 inherits(Point, Base.BasePoint);
28757 EdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
28758 return Point.fromJSON(this, obj);
28761 EdwardsCurve.prototype.point = function point(x, y, z, t) {
28762 return new Point(this, x, y, z, t);
28765 Point.fromJSON = function fromJSON(curve, obj) {
28766 return new Point(curve, obj[
0], obj[
1], obj[
2]);
28769 Point.prototype.inspect = function inspect() {
28770 if (this.isInfinity())
28771 return '
<EC Point Infinity
>';
28772 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
28773 ' y: ' + this.y.fromRed().toString(
16,
2) +
28774 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
28777 Point.prototype.isInfinity = function isInfinity() {
28778 // XXX This code assumes that zero is always zero in red
28779 return this.x.cmpn(
0) ===
0 &&
28780 this.y.cmp(this.z) ===
0;
28783 Point.prototype._extDbl = function _extDbl() {
28784 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
28785 // #doubling-dbl-
2008-hwcd
28789 var a = this.x.redSqr();
28791 var b = this.y.redSqr();
28793 var c = this.z.redSqr();
28796 var d = this.curve._mulA(a);
28797 // E = (X1 + Y1)^
2 - A - B
28798 var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);
28800 var g = d.redAdd(b);
28802 var f = g.redSub(c);
28804 var h = d.redSub(b);
28806 var nx = e.redMul(f);
28808 var ny = g.redMul(h);
28810 var nt = e.redMul(h);
28812 var nz = f.redMul(g);
28813 return this.curve.point(nx, ny, nz, nt);
28816 Point.prototype._projDbl = function _projDbl() {
28817 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
28818 // #doubling-dbl-
2008-bbjlp
28819 // #doubling-dbl-
2007-bl
28821 // Generally
3M +
4S or
2M +
4S
28824 var b = this.x.redAdd(this.y).redSqr();
28826 var c = this.x.redSqr();
28828 var d = this.y.redSqr();
28833 if (this.curve.twisted) {
28835 var e = this.curve._mulA(c);
28837 var f = e.redAdd(d);
28839 // X3 = (B - C - D) * (F -
2)
28840 nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));
28841 // Y3 = F * (E - D)
28842 ny = f.redMul(e.redSub(d));
28843 // Z3 = F^
2 -
2 * F
28844 nz = f.redSqr().redSub(f).redSub(f);
28847 var h = this.z.redSqr();
28849 var j = f.redSub(h).redISub(h);
28851 nx = b.redSub(c).redISub(d).redMul(j);
28852 // Y3 = F * (E - D)
28853 ny = f.redMul(e.redSub(d));
28859 var e = c.redAdd(d);
28861 var h = this.curve._mulC(this.c.redMul(this.z)).redSqr();
28863 var j = e.redSub(h).redSub(h);
28864 // X3 = c * (B - E) * J
28865 nx = this.curve._mulC(b.redISub(e)).redMul(j);
28866 // Y3 = c * E * (C - D)
28867 ny = this.curve._mulC(e).redMul(c.redISub(d));
28871 return this.curve.point(nx, ny, nz);
28874 Point.prototype.dbl = function dbl() {
28875 if (this.isInfinity())
28878 // Double in extended coordinates
28879 if (this.curve.extended)
28880 return this._extDbl();
28882 return this._projDbl();
28885 Point.prototype._extAdd = function _extAdd(p) {
28886 // hyperelliptic.org/EFD/g1p/auto-twisted-extended-
1.html
28887 // #addition-add-
2008-hwcd-
3
28890 // A = (Y1 - X1) * (Y2 - X2)
28891 var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));
28892 // B = (Y1 + X1) * (Y2 + X2)
28893 var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));
28895 var c = this.t.redMul(this.curve.dd).redMul(p.t);
28897 var d = this.z.redMul(p.z.redAdd(p.z));
28899 var e = b.redSub(a);
28901 var f = d.redSub(c);
28903 var g = d.redAdd(c);
28905 var h = b.redAdd(a);
28907 var nx = e.redMul(f);
28909 var ny = g.redMul(h);
28911 var nt = e.redMul(h);
28913 var nz = f.redMul(g);
28914 return this.curve.point(nx, ny, nz, nt);
28917 Point.prototype._projAdd = function _projAdd(p) {
28918 // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html
28919 // #addition-add-
2008-bbjlp
28920 // #addition-add-
2007-bl
28924 var a = this.z.redMul(p.z);
28926 var b = a.redSqr();
28928 var c = this.x.redMul(p.x);
28930 var d = this.y.redMul(p.y);
28932 var e = this.curve.d.redMul(c).redMul(d);
28934 var f = b.redSub(e);
28936 var g = b.redAdd(e);
28937 // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)
28938 var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);
28939 var nx = a.redMul(f).redMul(tmp);
28942 if (this.curve.twisted) {
28943 // Y3 = A * G * (D - a * C)
28944 ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));
28948 // Y3 = A * G * (D - C)
28949 ny = a.redMul(g).redMul(d.redSub(c));
28951 nz = this.curve._mulC(f).redMul(g);
28953 return this.curve.point(nx, ny, nz);
28956 Point.prototype.add = function add(p) {
28957 if (this.isInfinity())
28959 if (p.isInfinity())
28962 if (this.curve.extended)
28963 return this._extAdd(p);
28965 return this._projAdd(p);
28968 Point.prototype.mul = function mul(k) {
28969 if (this._hasDoubles(k))
28970 return this.curve._fixedNafMul(this, k);
28972 return this.curve._wnafMul(this, k);
28975 Point.prototype.mulAdd = function mulAdd(k1, p, k2) {
28976 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, false);
28979 Point.prototype.jmulAdd = function jmulAdd(k1, p, k2) {
28980 return this.curve._wnafMulAdd(
1, [ this, p ], [ k1, k2 ],
2, true);
28983 Point.prototype.normalize = function normalize() {
28987 // Normalize coordinates
28988 var zi = this.z.redInvm();
28989 this.x = this.x.redMul(zi);
28990 this.y = this.y.redMul(zi);
28992 this.t = this.t.redMul(zi);
28993 this.z = this.curve.one;
28998 Point.prototype.neg = function neg() {
28999 return this.curve.point(this.x.redNeg(),
29002 this.t && this.t.redNeg());
29005 Point.prototype.getX = function getX() {
29007 return this.x.fromRed();
29010 Point.prototype.getY = function getY() {
29012 return this.y.fromRed();
29015 Point.prototype.eq = function eq(other) {
29016 return this === other ||
29017 this.getX().cmp(other.getX()) ===
0 &&
29018 this.getY().cmp(other.getY()) ===
0;
29021 Point.prototype.eqXToP = function eqXToP(x) {
29022 var rx = x.toRed(this.curve.red).redMul(this.z);
29023 if (this.x.cmp(rx) ===
0)
29026 var xc = x.clone();
29027 var t = this.curve.redN.redMul(this.z);
29029 xc.iadd(this.curve.n);
29030 if (xc.cmp(this.curve.p)
>=
0)
29034 if (this.x.cmp(rx) ===
0)
29040 // Compatibility with BaseCurve
29041 Point.prototype.toP = Point.prototype.normalize;
29042 Point.prototype.mixedAdd = Point.prototype.add;
29044 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
42:[function(require,module,exports){
29047 var curve = exports;
29049 curve.base = require('./base');
29050 curve.short = require('./short');
29051 curve.mont = require('./mont');
29052 curve.edwards = require('./edwards');
29054 },{"./base":
40,"./edwards":
41,"./mont":
43,"./short":
44}],
43:[function(require,module,exports){
29057 var curve = require('../curve');
29058 var BN = require('bn.js');
29059 var inherits = require('inherits');
29060 var Base = curve.base;
29062 var elliptic = require('../../elliptic');
29063 var utils = elliptic.utils;
29065 function MontCurve(conf) {
29066 Base.call(this, 'mont', conf);
29068 this.a = new BN(conf.a,
16).toRed(this.red);
29069 this.b = new BN(conf.b,
16).toRed(this.red);
29070 this.i4 = new BN(
4).toRed(this.red).redInvm();
29071 this.two = new BN(
2).toRed(this.red);
29072 this.a24 = this.i4.redMul(this.a.redAdd(this.two));
29074 inherits(MontCurve, Base);
29075 module.exports = MontCurve;
29077 MontCurve.prototype.validate = function validate(point) {
29078 var x = point.normalize().x;
29079 var x2 = x.redSqr();
29080 var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);
29081 var y = rhs.redSqrt();
29083 return y.redSqr().cmp(rhs) ===
0;
29086 function Point(curve, x, z) {
29087 Base.BasePoint.call(this, curve, 'projective');
29088 if (x === null && z === null) {
29089 this.x = this.curve.one;
29090 this.z = this.curve.zero;
29092 this.x = new BN(x,
16);
29093 this.z = new BN(z,
16);
29095 this.x = this.x.toRed(this.curve.red);
29097 this.z = this.z.toRed(this.curve.red);
29100 inherits(Point, Base.BasePoint);
29102 MontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {
29103 return this.point(utils.toArray(bytes, enc),
1);
29106 MontCurve.prototype.point = function point(x, z) {
29107 return new Point(this, x, z);
29110 MontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {
29111 return Point.fromJSON(this, obj);
29114 Point.prototype.precompute = function precompute() {
29118 Point.prototype._encode = function _encode() {
29119 return this.getX().toArray('be', this.curve.p.byteLength());
29122 Point.fromJSON = function fromJSON(curve, obj) {
29123 return new Point(curve, obj[
0], obj[
1] || curve.one);
29126 Point.prototype.inspect = function inspect() {
29127 if (this.isInfinity())
29128 return '
<EC Point Infinity
>';
29129 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
29130 ' z: ' + this.z.fromRed().toString(
16,
2) + '
>';
29133 Point.prototype.isInfinity = function isInfinity() {
29134 // XXX This code assumes that zero is always zero in red
29135 return this.z.cmpn(
0) ===
0;
29138 Point.prototype.dbl = function dbl() {
29139 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-
1987-m-
3
29143 var a = this.x.redAdd(this.z);
29145 var aa = a.redSqr();
29147 var b = this.x.redSub(this.z);
29149 var bb = b.redSqr();
29151 var c = aa.redSub(bb);
29153 var nx = aa.redMul(bb);
29154 // Z3 = C * (BB + A24 * C)
29155 var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));
29156 return this.curve.point(nx, nz);
29159 Point.prototype.add = function add() {
29160 throw new Error('Not supported on Montgomery curve');
29163 Point.prototype.diffAdd = function diffAdd(p, diff) {
29164 // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-
1987-m-
3
29168 var a = this.x.redAdd(this.z);
29170 var b = this.x.redSub(this.z);
29172 var c = p.x.redAdd(p.z);
29174 var d = p.x.redSub(p.z);
29176 var da = d.redMul(a);
29178 var cb = c.redMul(b);
29179 // X5 = Z1 * (DA + CB)^
2
29180 var nx = diff.z.redMul(da.redAdd(cb).redSqr());
29181 // Z5 = X1 * (DA - CB)^
2
29182 var nz = diff.x.redMul(da.redISub(cb).redSqr());
29183 return this.curve.point(nx, nz);
29186 Point.prototype.mul = function mul(k) {
29188 var a = this; // (N /
2) * Q + Q
29189 var b = this.curve.point(null, null); // (N /
2) * Q
29192 for (var bits = []; t.cmpn(
0) !==
0; t.iushrn(
1))
29193 bits.push(t.andln(
1));
29195 for (var i = bits.length -
1; i
>=
0; i--) {
29196 if (bits[i] ===
0) {
29197 // N * Q + Q = ((N /
2) * Q + Q)) + (N /
2) * Q
29198 a = a.diffAdd(b, c);
29199 // N * Q =
2 * ((N /
2) * Q + Q))
29202 // N * Q = ((N /
2) * Q + Q) + ((N /
2) * Q)
29203 b = a.diffAdd(b, c);
29204 // N * Q + Q =
2 * ((N /
2) * Q + Q)
29211 Point.prototype.mulAdd = function mulAdd() {
29212 throw new Error('Not supported on Montgomery curve');
29215 Point.prototype.jumlAdd = function jumlAdd() {
29216 throw new Error('Not supported on Montgomery curve');
29219 Point.prototype.eq = function eq(other) {
29220 return this.getX().cmp(other.getX()) ===
0;
29223 Point.prototype.normalize = function normalize() {
29224 this.x = this.x.redMul(this.z.redInvm());
29225 this.z = this.curve.one;
29229 Point.prototype.getX = function getX() {
29230 // Normalize coordinates
29233 return this.x.fromRed();
29236 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
44:[function(require,module,exports){
29239 var curve = require('../curve');
29240 var elliptic = require('../../elliptic');
29241 var BN = require('bn.js');
29242 var inherits = require('inherits');
29243 var Base = curve.base;
29245 var assert = elliptic.utils.assert;
29247 function ShortCurve(conf) {
29248 Base.call(this, 'short', conf);
29250 this.a = new BN(conf.a,
16).toRed(this.red);
29251 this.b = new BN(conf.b,
16).toRed(this.red);
29252 this.tinv = this.two.redInvm();
29254 this.zeroA = this.a.fromRed().cmpn(
0) ===
0;
29255 this.threeA = this.a.fromRed().sub(this.p).cmpn(-
3) ===
0;
29257 // If the curve is endomorphic, precalculate beta and lambda
29258 this.endo = this._getEndomorphism(conf);
29259 this._endoWnafT1 = new Array(
4);
29260 this._endoWnafT2 = new Array(
4);
29262 inherits(ShortCurve, Base);
29263 module.exports = ShortCurve;
29265 ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {
29266 // No efficient endomorphism
29267 if (!this.zeroA || !this.g || !this.n || this.p.modn(
3) !==
1)
29270 // Compute beta and lambda, that lambda * P = (beta * Px; Py)
29274 beta = new BN(conf.beta,
16).toRed(this.red);
29276 var betas = this._getEndoRoots(this.p);
29277 // Choose the smallest beta
29278 beta = betas[
0].cmp(betas[
1]) <
0 ? betas[
0] : betas[
1];
29279 beta = beta.toRed(this.red);
29282 lambda = new BN(conf.lambda,
16);
29284 // Choose the lambda that is matching selected beta
29285 var lambdas = this._getEndoRoots(this.n);
29286 if (this.g.mul(lambdas[
0]).x.cmp(this.g.x.redMul(beta)) ===
0) {
29287 lambda = lambdas[
0];
29289 lambda = lambdas[
1];
29290 assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) ===
0);
29294 // Get basis vectors, used for balanced length-two representation
29297 basis = conf.basis.map(function(vec) {
29299 a: new BN(vec.a,
16),
29300 b: new BN(vec.b,
16)
29304 basis = this._getEndoBasis(lambda);
29314 ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {
29315 // Find roots of for x^
2 + x +
1 in F
29316 // Root = (-
1 +- Sqrt(-
3)) /
2
29318 var red = num === this.p ? this.red : BN.mont(num);
29319 var tinv = new BN(
2).toRed(red).redInvm();
29320 var ntinv = tinv.redNeg();
29322 var s = new BN(
3).toRed(red).redNeg().redSqrt().redMul(tinv);
29324 var l1 = ntinv.redAdd(s).fromRed();
29325 var l2 = ntinv.redSub(s).fromRed();
29329 ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {
29330 // aprxSqrt
>= sqrt(this.n)
29331 var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() /
2));
29334 // Run EGCD, until r(L +
1) < aprxSqrt
29336 var v = this.n.clone();
29337 var x1 = new BN(
1);
29338 var y1 = new BN(
0);
29339 var x2 = new BN(
0);
29340 var y2 = new BN(
1);
29342 // NOTE: all vectors are roots of: a + b * lambda =
0 (mod n)
29356 while (u.cmpn(
0) !==
0) {
29358 r = v.sub(q.mul(u));
29359 x = x2.sub(q.mul(x1));
29360 var y = y2.sub(q.mul(y1));
29362 if (!a1 && r.cmp(aprxSqrt) <
0) {
29367 } else if (a1 && ++i ===
2) {
29382 var len1 = a1.sqr().add(b1.sqr());
29383 var len2 = a2.sqr().add(b2.sqr());
29384 if (len2.cmp(len1)
>=
0) {
29405 ShortCurve.prototype._endoSplit = function _endoSplit(k) {
29406 var basis = this.endo.basis;
29410 var c1 = v2.b.mul(k).divRound(this.n);
29411 var c2 = v1.b.neg().mul(k).divRound(this.n);
29413 var p1 = c1.mul(v1.a);
29414 var p2 = c2.mul(v2.a);
29415 var q1 = c1.mul(v1.b);
29416 var q2 = c2.mul(v2.b);
29418 // Calculate answer
29419 var k1 = k.sub(p1).sub(p2);
29420 var k2 = q1.add(q2).neg();
29421 return { k1: k1, k2: k2 };
29424 ShortCurve.prototype.pointFromX = function pointFromX(x, odd) {
29427 x = x.toRed(this.red);
29429 var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);
29430 var y = y2.redSqrt();
29431 if (y.redSqr().redSub(y2).cmp(this.zero) !==
0)
29432 throw new Error('invalid point');
29434 // XXX Is there any way to tell if the number is odd without converting it
29435 // to non-red form?
29436 var isOdd = y.fromRed().isOdd();
29437 if (odd && !isOdd || !odd && isOdd)
29440 return this.point(x, y);
29443 ShortCurve.prototype.validate = function validate(point) {
29450 var ax = this.a.redMul(x);
29451 var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);
29452 return y.redSqr().redISub(rhs).cmpn(
0) ===
0;
29455 ShortCurve.prototype._endoWnafMulAdd =
29456 function _endoWnafMulAdd(points, coeffs, jacobianResult) {
29457 var npoints = this._endoWnafT1;
29458 var ncoeffs = this._endoWnafT2;
29459 for (var i =
0; i < points.length; i++) {
29460 var split = this._endoSplit(coeffs[i]);
29462 var beta = p._getBeta();
29464 if (split.k1.negative) {
29468 if (split.k2.negative) {
29470 beta = beta.neg(true);
29473 npoints[i *
2] = p;
29474 npoints[i *
2 +
1] = beta;
29475 ncoeffs[i *
2] = split.k1;
29476 ncoeffs[i *
2 +
1] = split.k2;
29478 var res = this._wnafMulAdd(
1, npoints, ncoeffs, i *
2, jacobianResult);
29480 // Clean-up references to points and coefficients
29481 for (var j =
0; j < i *
2; j++) {
29488 function Point(curve, x, y, isRed) {
29489 Base.BasePoint.call(this, curve, 'affine');
29490 if (x === null && y === null) {
29495 this.x = new BN(x,
16);
29496 this.y = new BN(y,
16);
29497 // Force redgomery representation when loading from JSON
29499 this.x.forceRed(this.curve.red);
29500 this.y.forceRed(this.curve.red);
29503 this.x = this.x.toRed(this.curve.red);
29505 this.y = this.y.toRed(this.curve.red);
29509 inherits(Point, Base.BasePoint);
29511 ShortCurve.prototype.point = function point(x, y, isRed) {
29512 return new Point(this, x, y, isRed);
29515 ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {
29516 return Point.fromJSON(this, obj, red);
29519 Point.prototype._getBeta = function _getBeta() {
29520 if (!this.curve.endo)
29523 var pre = this.precomputed;
29524 if (pre && pre.beta)
29527 var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);
29529 var curve = this.curve;
29530 var endoMul = function(p) {
29531 return curve.point(p.x.redMul(curve.endo.beta), p.y);
29534 beta.precomputed = {
29538 points: pre.naf.points.map(endoMul)
29540 doubles: pre.doubles && {
29541 step: pre.doubles.step,
29542 points: pre.doubles.points.map(endoMul)
29549 Point.prototype.toJSON = function toJSON() {
29550 if (!this.precomputed)
29551 return [ this.x, this.y ];
29553 return [ this.x, this.y, this.precomputed && {
29554 doubles: this.precomputed.doubles && {
29555 step: this.precomputed.doubles.step,
29556 points: this.precomputed.doubles.points.slice(
1)
29558 naf: this.precomputed.naf && {
29559 wnd: this.precomputed.naf.wnd,
29560 points: this.precomputed.naf.points.slice(
1)
29565 Point.fromJSON = function fromJSON(curve, obj, red) {
29566 if (typeof obj === 'string')
29567 obj = JSON.parse(obj);
29568 var res = curve.point(obj[
0], obj[
1], red);
29572 function obj2point(obj) {
29573 return curve.point(obj[
0], obj[
1], red);
29577 res.precomputed = {
29579 doubles: pre.doubles && {
29580 step: pre.doubles.step,
29581 points: [ res ].concat(pre.doubles.points.map(obj2point))
29585 points: [ res ].concat(pre.naf.points.map(obj2point))
29591 Point.prototype.inspect = function inspect() {
29592 if (this.isInfinity())
29593 return '
<EC Point Infinity
>';
29594 return '
<EC Point x: ' + this.x.fromRed().toString(
16,
2) +
29595 ' y: ' + this.y.fromRed().toString(
16,
2) + '
>';
29598 Point.prototype.isInfinity = function isInfinity() {
29602 Point.prototype.add = function add(p) {
29616 if (this.neg().eq(p))
29617 return this.curve.point(null, null);
29620 if (this.x.cmp(p.x) ===
0)
29621 return this.curve.point(null, null);
29623 var c = this.y.redSub(p.y);
29624 if (c.cmpn(
0) !==
0)
29625 c = c.redMul(this.x.redSub(p.x).redInvm());
29626 var nx = c.redSqr().redISub(this.x).redISub(p.x);
29627 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
29628 return this.curve.point(nx, ny);
29631 Point.prototype.dbl = function dbl() {
29636 var ys1 = this.y.redAdd(this.y);
29637 if (ys1.cmpn(
0) ===
0)
29638 return this.curve.point(null, null);
29640 var a = this.curve.a;
29642 var x2 = this.x.redSqr();
29643 var dyinv = ys1.redInvm();
29644 var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);
29646 var nx = c.redSqr().redISub(this.x.redAdd(this.x));
29647 var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);
29648 return this.curve.point(nx, ny);
29651 Point.prototype.getX = function getX() {
29652 return this.x.fromRed();
29655 Point.prototype.getY = function getY() {
29656 return this.y.fromRed();
29659 Point.prototype.mul = function mul(k) {
29662 if (this._hasDoubles(k))
29663 return this.curve._fixedNafMul(this, k);
29664 else if (this.curve.endo)
29665 return this.curve._endoWnafMulAdd([ this ], [ k ]);
29667 return this.curve._wnafMul(this, k);
29670 Point.prototype.mulAdd = function mulAdd(k1, p2, k2) {
29671 var points = [ this, p2 ];
29672 var coeffs = [ k1, k2 ];
29673 if (this.curve.endo)
29674 return this.curve._endoWnafMulAdd(points, coeffs);
29676 return this.curve._wnafMulAdd(
1, points, coeffs,
2);
29679 Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {
29680 var points = [ this, p2 ];
29681 var coeffs = [ k1, k2 ];
29682 if (this.curve.endo)
29683 return this.curve._endoWnafMulAdd(points, coeffs, true);
29685 return this.curve._wnafMulAdd(
1, points, coeffs,
2, true);
29688 Point.prototype.eq = function eq(p) {
29689 return this === p ||
29690 this.inf === p.inf &&
29691 (this.inf || this.x.cmp(p.x) ===
0 && this.y.cmp(p.y) ===
0);
29694 Point.prototype.neg = function neg(_precompute) {
29698 var res = this.curve.point(this.x, this.y.redNeg());
29699 if (_precompute && this.precomputed) {
29700 var pre = this.precomputed;
29701 var negate = function(p) {
29704 res.precomputed = {
29707 points: pre.naf.points.map(negate)
29709 doubles: pre.doubles && {
29710 step: pre.doubles.step,
29711 points: pre.doubles.points.map(negate)
29718 Point.prototype.toJ = function toJ() {
29720 return this.curve.jpoint(null, null, null);
29722 var res = this.curve.jpoint(this.x, this.y, this.curve.one);
29726 function JPoint(curve, x, y, z) {
29727 Base.BasePoint.call(this, curve, 'jacobian');
29728 if (x === null && y === null && z === null) {
29729 this.x = this.curve.one;
29730 this.y = this.curve.one;
29731 this.z = new BN(
0);
29733 this.x = new BN(x,
16);
29734 this.y = new BN(y,
16);
29735 this.z = new BN(z,
16);
29738 this.x = this.x.toRed(this.curve.red);
29740 this.y = this.y.toRed(this.curve.red);
29742 this.z = this.z.toRed(this.curve.red);
29744 this.zOne = this.z === this.curve.one;
29746 inherits(JPoint, Base.BasePoint);
29748 ShortCurve.prototype.jpoint = function jpoint(x, y, z) {
29749 return new JPoint(this, x, y, z);
29752 JPoint.prototype.toP = function toP() {
29753 if (this.isInfinity())
29754 return this.curve.point(null, null);
29756 var zinv = this.z.redInvm();
29757 var zinv2 = zinv.redSqr();
29758 var ax = this.x.redMul(zinv2);
29759 var ay = this.y.redMul(zinv2).redMul(zinv);
29761 return this.curve.point(ax, ay);
29764 JPoint.prototype.neg = function neg() {
29765 return this.curve.jpoint(this.x, this.y.redNeg(), this.z);
29768 JPoint.prototype.add = function add(p) {
29770 if (this.isInfinity())
29774 if (p.isInfinity())
29778 var pz2 = p.z.redSqr();
29779 var z2 = this.z.redSqr();
29780 var u1 = this.x.redMul(pz2);
29781 var u2 = p.x.redMul(z2);
29782 var s1 = this.y.redMul(pz2.redMul(p.z));
29783 var s2 = p.y.redMul(z2.redMul(this.z));
29785 var h = u1.redSub(u2);
29786 var r = s1.redSub(s2);
29787 if (h.cmpn(
0) ===
0) {
29788 if (r.cmpn(
0) !==
0)
29789 return this.curve.jpoint(null, null, null);
29794 var h2 = h.redSqr();
29795 var h3 = h2.redMul(h);
29796 var v = u1.redMul(h2);
29798 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
29799 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
29800 var nz = this.z.redMul(p.z).redMul(h);
29802 return this.curve.jpoint(nx, ny, nz);
29805 JPoint.prototype.mixedAdd = function mixedAdd(p) {
29807 if (this.isInfinity())
29811 if (p.isInfinity())
29815 var z2 = this.z.redSqr();
29817 var u2 = p.x.redMul(z2);
29819 var s2 = p.y.redMul(z2).redMul(this.z);
29821 var h = u1.redSub(u2);
29822 var r = s1.redSub(s2);
29823 if (h.cmpn(
0) ===
0) {
29824 if (r.cmpn(
0) !==
0)
29825 return this.curve.jpoint(null, null, null);
29830 var h2 = h.redSqr();
29831 var h3 = h2.redMul(h);
29832 var v = u1.redMul(h2);
29834 var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);
29835 var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));
29836 var nz = this.z.redMul(h);
29838 return this.curve.jpoint(nx, ny, nz);
29841 JPoint.prototype.dblp = function dblp(pow) {
29844 if (this.isInfinity())
29849 if (this.curve.zeroA || this.curve.threeA) {
29851 for (var i =
0; i < pow; i++)
29856 //
1M +
2S +
1A + N * (
4S +
5M +
8A)
29857 // N =
1 =
> 6M +
6S +
9A
29858 var a = this.curve.a;
29859 var tinv = this.curve.tinv;
29864 var jz4 = jz.redSqr().redSqr();
29867 var jyd = jy.redAdd(jy);
29868 for (var i =
0; i < pow; i++) {
29869 var jx2 = jx.redSqr();
29870 var jyd2 = jyd.redSqr();
29871 var jyd4 = jyd2.redSqr();
29872 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
29874 var t1 = jx.redMul(jyd2);
29875 var nx = c.redSqr().redISub(t1.redAdd(t1));
29876 var t2 = t1.redISub(nx);
29877 var dny = c.redMul(t2);
29878 dny = dny.redIAdd(dny).redISub(jyd4);
29879 var nz = jyd.redMul(jz);
29881 jz4 = jz4.redMul(jyd4);
29888 return this.curve.jpoint(jx, jyd.redMul(tinv), jz);
29891 JPoint.prototype.dbl = function dbl() {
29892 if (this.isInfinity())
29895 if (this.curve.zeroA)
29896 return this._zeroDbl();
29897 else if (this.curve.threeA)
29898 return this._threeDbl();
29900 return this._dbl();
29903 JPoint.prototype._zeroDbl = function _zeroDbl() {
29909 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
29910 // #doubling-mdbl-
2007-bl
29914 var xx = this.x.redSqr();
29916 var yy = this.y.redSqr();
29918 var yyyy = yy.redSqr();
29919 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
29920 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
29922 // M =
3 * XX + a; a =
0
29923 var m = xx.redAdd(xx).redIAdd(xx);
29925 var t = m.redSqr().redISub(s).redISub(s);
29928 var yyyy8 = yyyy.redIAdd(yyyy);
29929 yyyy8 = yyyy8.redIAdd(yyyy8);
29930 yyyy8 = yyyy8.redIAdd(yyyy8);
29934 // Y3 = M * (S - T) -
8 * YYYY
29935 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
29937 nz = this.y.redAdd(this.y);
29939 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html
29940 // #doubling-dbl-
2009-l
29944 var a = this.x.redSqr();
29946 var b = this.y.redSqr();
29948 var c = b.redSqr();
29949 // D =
2 * ((X1 + B)^
2 - A - C)
29950 var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);
29953 var e = a.redAdd(a).redIAdd(a);
29955 var f = e.redSqr();
29958 var c8 = c.redIAdd(c);
29959 c8 = c8.redIAdd(c8);
29960 c8 = c8.redIAdd(c8);
29963 nx = f.redISub(d).redISub(d);
29964 // Y3 = E * (D - X3) -
8 * C
29965 ny = e.redMul(d.redISub(nx)).redISub(c8);
29966 // Z3 =
2 * Y1 * Z1
29967 nz = this.y.redMul(this.z);
29968 nz = nz.redIAdd(nz);
29971 return this.curve.jpoint(nx, ny, nz);
29974 JPoint.prototype._threeDbl = function _threeDbl() {
29980 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html
29981 // #doubling-mdbl-
2007-bl
29985 var xx = this.x.redSqr();
29987 var yy = this.y.redSqr();
29989 var yyyy = yy.redSqr();
29990 // S =
2 * ((X1 + YY)^
2 - XX - YYYY)
29991 var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
29994 var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);
29996 var t = m.redSqr().redISub(s).redISub(s);
29999 // Y3 = M * (S - T) -
8 * YYYY
30000 var yyyy8 = yyyy.redIAdd(yyyy);
30001 yyyy8 = yyyy8.redIAdd(yyyy8);
30002 yyyy8 = yyyy8.redIAdd(yyyy8);
30003 ny = m.redMul(s.redISub(t)).redISub(yyyy8);
30005 nz = this.y.redAdd(this.y);
30007 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
3.html#doubling-dbl-
2001-b
30011 var delta = this.z.redSqr();
30013 var gamma = this.y.redSqr();
30014 // beta = X1 * gamma
30015 var beta = this.x.redMul(gamma);
30016 // alpha =
3 * (X1 - delta) * (X1 + delta)
30017 var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));
30018 alpha = alpha.redAdd(alpha).redIAdd(alpha);
30019 // X3 = alpha^
2 -
8 * beta
30020 var beta4 = beta.redIAdd(beta);
30021 beta4 = beta4.redIAdd(beta4);
30022 var beta8 = beta4.redAdd(beta4);
30023 nx = alpha.redSqr().redISub(beta8);
30024 // Z3 = (Y1 + Z1)^
2 - gamma - delta
30025 nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);
30026 // Y3 = alpha * (
4 * beta - X3) -
8 * gamma^
2
30027 var ggamma8 = gamma.redSqr();
30028 ggamma8 = ggamma8.redIAdd(ggamma8);
30029 ggamma8 = ggamma8.redIAdd(ggamma8);
30030 ggamma8 = ggamma8.redIAdd(ggamma8);
30031 ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);
30034 return this.curve.jpoint(nx, ny, nz);
30037 JPoint.prototype._dbl = function _dbl() {
30038 var a = this.curve.a;
30044 var jz4 = jz.redSqr().redSqr();
30046 var jx2 = jx.redSqr();
30047 var jy2 = jy.redSqr();
30049 var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));
30051 var jxd4 = jx.redAdd(jx);
30052 jxd4 = jxd4.redIAdd(jxd4);
30053 var t1 = jxd4.redMul(jy2);
30054 var nx = c.redSqr().redISub(t1.redAdd(t1));
30055 var t2 = t1.redISub(nx);
30057 var jyd8 = jy2.redSqr();
30058 jyd8 = jyd8.redIAdd(jyd8);
30059 jyd8 = jyd8.redIAdd(jyd8);
30060 jyd8 = jyd8.redIAdd(jyd8);
30061 var ny = c.redMul(t2).redISub(jyd8);
30062 var nz = jy.redAdd(jy).redMul(jz);
30064 return this.curve.jpoint(nx, ny, nz);
30067 JPoint.prototype.trpl = function trpl() {
30068 if (!this.curve.zeroA)
30069 return this.dbl().add(this);
30071 // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-
0.html#tripling-tpl-
2007-bl
30075 var xx = this.x.redSqr();
30077 var yy = this.y.redSqr();
30079 var zz = this.z.redSqr();
30081 var yyyy = yy.redSqr();
30082 // M =
3 * XX + a * ZZ2; a =
0
30083 var m = xx.redAdd(xx).redIAdd(xx);
30085 var mm = m.redSqr();
30086 // E =
6 * ((X1 + YY)^
2 - XX - YYYY) - MM
30087 var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);
30089 e = e.redAdd(e).redIAdd(e);
30092 var ee = e.redSqr();
30094 var t = yyyy.redIAdd(yyyy);
30098 // U = (M + E)^
2 - MM - EE - T
30099 var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);
30100 // X3 =
4 * (X1 * EE -
4 * YY * U)
30101 var yyu4 = yy.redMul(u);
30102 yyu4 = yyu4.redIAdd(yyu4);
30103 yyu4 = yyu4.redIAdd(yyu4);
30104 var nx = this.x.redMul(ee).redISub(yyu4);
30105 nx = nx.redIAdd(nx);
30106 nx = nx.redIAdd(nx);
30107 // Y3 =
8 * Y1 * (U * (T - U) - E * EE)
30108 var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));
30109 ny = ny.redIAdd(ny);
30110 ny = ny.redIAdd(ny);
30111 ny = ny.redIAdd(ny);
30112 // Z3 = (Z1 + E)^
2 - ZZ - EE
30113 var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);
30115 return this.curve.jpoint(nx, ny, nz);
30118 JPoint.prototype.mul = function mul(k, kbase) {
30119 k = new BN(k, kbase);
30121 return this.curve._wnafMul(this, k);
30124 JPoint.prototype.eq = function eq(p) {
30125 if (p.type === 'affine')
30126 return this.eq(p.toJ());
30131 // x1 * z2^
2 == x2 * z1^
2
30132 var z2 = this.z.redSqr();
30133 var pz2 = p.z.redSqr();
30134 if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(
0) !==
0)
30137 // y1 * z2^
3 == y2 * z1^
3
30138 var z3 = z2.redMul(this.z);
30139 var pz3 = pz2.redMul(p.z);
30140 return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(
0) ===
0;
30143 JPoint.prototype.eqXToP = function eqXToP(x) {
30144 var zs = this.z.redSqr();
30145 var rx = x.toRed(this.curve.red).redMul(zs);
30146 if (this.x.cmp(rx) ===
0)
30149 var xc = x.clone();
30150 var t = this.curve.redN.redMul(zs);
30152 xc.iadd(this.curve.n);
30153 if (xc.cmp(this.curve.p)
>=
0)
30157 if (this.x.cmp(rx) ===
0)
30163 JPoint.prototype.inspect = function inspect() {
30164 if (this.isInfinity())
30165 return '
<EC JPoint Infinity
>';
30166 return '
<EC JPoint x: ' + this.x.toString(
16,
2) +
30167 ' y: ' + this.y.toString(
16,
2) +
30168 ' z: ' + this.z.toString(
16,
2) + '
>';
30171 JPoint.prototype.isInfinity = function isInfinity() {
30172 // XXX This code assumes that zero is always zero in red
30173 return this.z.cmpn(
0) ===
0;
30176 },{"../../elliptic":
39,"../curve":
42,"bn.js":
33,"inherits":
63}],
45:[function(require,module,exports){
30179 var curves = exports;
30181 var hash = require('hash.js');
30182 var elliptic = require('../elliptic');
30184 var assert = elliptic.utils.assert;
30186 function PresetCurve(options) {
30187 if (options.type === 'short')
30188 this.curve = new elliptic.curve.short(options);
30189 else if (options.type === 'edwards')
30190 this.curve = new elliptic.curve.edwards(options);
30192 this.curve = new elliptic.curve.mont(options);
30193 this.g = this.curve.g;
30194 this.n = this.curve.n;
30195 this.hash = options.hash;
30197 assert(this.g.validate(), 'Invalid curve');
30198 assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');
30200 curves.PresetCurve = PresetCurve;
30202 function defineCurve(name, options) {
30203 Object.defineProperty(curves, name, {
30204 configurable: true,
30207 var curve = new PresetCurve(options);
30208 Object.defineProperty(curves, name, {
30209 configurable: true,
30218 defineCurve('p192', {
30221 p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',
30222 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',
30223 b: '
64210519 e59c80e7
0fa7e9ab
72243049 feb8deec c146b9b1',
30224 n: 'ffffffff ffffffff ffffffff
99def836
146bc9b1 b4d22831',
30228 '
188da80e b03090f6
7cbf20eb
43a18800 f4ff0afd
82ff1012',
30229 '
07192b95 ffc8da78
631011ed
6b24cdd5
73f977a1
1e794811'
30233 defineCurve('p224', {
30236 p: 'ffffffff ffffffff ffffffff ffffffff
00000000 00000000 00000001',
30237 a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',
30238 b: 'b4050a85
0c04b3ab f5413256
5044b0b7 d7bfd8ba
270b3943
2355ffb4',
30239 n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e
13dd2945
5c5c2a3d',
30243 'b70e0cbd
6bb4bf7f
321390b9
4a03c1d3
56c21122
343280d6
115c1d21',
30244 'bd376388 b5f723fb
4c22dfe6 cd4375a0
5a074764
44d58199
85007e34'
30248 defineCurve('p256', {
30251 p: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',
30252 a: 'ffffffff
00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',
30253 b: '
5ac635d8 aa3a93e7 b3ebbd55
769886bc
651d06b0 cc53b0f6
3bce3c3e
27d2604b',
30254 n: 'ffffffff
00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',
30258 '
6b17d1f2 e12c4247 f8bce6e5
63a440f2
77037d81
2deb33a0 f4a13945 d898c296',
30259 '
4fe342e2 fe1a7f9b
8ee7eb4a
7c0f9e16
2bce3357
6b315ece cbb64068
37bf51f5'
30263 defineCurve('p384', {
30266 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30267 'fffffffe ffffffff
00000000 00000000 ffffffff',
30268 a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30269 'fffffffe ffffffff
00000000 00000000 fffffffc',
30270 b: 'b3312fa7 e23ee7e4
988e056b e3f82d19
181d9c6e fe814112
0314088f ' +
30271 '
5013875a c656398d
8a2ed19d
2a85c8ed d3ec2aef',
30272 n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +
30273 'f4372ddf
581a0db2
48b0a77a ecec196a ccc52973',
30277 'aa87ca22 be8b0537
8eb1c71e f320ad74
6e1d3b62
8ba79b98
59f741e0
82542a38 ' +
30278 '
5502f25d bf55296c
3a545e38
72760ab7',
30279 '
3617de4a
96262c6f
5d9e98bf
9292dc29 f8f41dbd
289a147c e9da3113 b5f0b8c0 ' +
30280 '
0a60b1ce
1d7e819d
7a431d7c
90ea0e5f'
30284 defineCurve('p521', {
30287 p: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30288 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30289 'ffffffff ffffffff ffffffff ffffffff ffffffff',
30290 a: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30291 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30292 'ffffffff ffffffff ffffffff ffffffff fffffffc',
30293 b: '
00000051 953eb961
8e1c9a1f
929a21a0 b68540ee a2da725b ' +
30294 '
99b315f3 b8b48991
8ef109e1
56193951 ec7e937b
1652c0bd ' +
30295 '
3bb1bf07
3573df88
3d2c34f1 ef451fd4
6b503f00',
30296 n: '
000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +
30297 'ffffffff ffffffff fffffffa
51868783 bf2f966b
7fcc0148 ' +
30298 'f709a5d0
3bb5c9b8
899c47ae bb6fb71e
91386409',
30302 '
000000c6
858e06b7
0404e9cd
9e3ecb66
2395b442
9c648139 ' +
30303 '
053fb521 f828af60
6b4d3dba a14b5e77 efe75928 fe1dc127 ' +
30304 'a2ffa8de
3348b3c1
856a429b f97e7e31 c2e5bd66',
30305 '
00000118 39296a78
9a3bc004
5c8a5fb4
2c7d1bd9
98f54449 ' +
30306 '
579b4468
17afbd17
273e662c
97ee7299
5ef42640 c550b901 ' +
30307 '
3fad0761
353c7086 a272c240
88be9476
9fd16650'
30311 defineCurve('curve25519', {
30314 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
30317 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
30325 defineCurve('ed25519', {
30328 p: '
7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',
30331 // -
121665 * (
121666^(-
1)) (mod P)
30332 d: '
52036cee2b6ffe73
8cc740797779e898
00700a4d4141d8ab
75eb4dca135978a3',
30333 n: '
1000000000000000 0000000000000000 14def9dea2f79cd6
5812631a5cf5d3ed',
30337 '
216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',
30340 '
6666666666666666666666666666666666666666666666666666666666666658'
30346 pre = require('./precomputed/secp256k1');
30351 defineCurve('secp256k1', {
30354 p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',
30357 n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',
30361 // Precomputed endomorphism
30362 beta: '
7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',
30363 lambda: '
5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',
30366 a: '
3086d221a7d46bcde86c90e49284eb15',
30367 b: '-e4437ed6010e88286f547fa90abfe4c3'
30370 a: '
114ca50f7a8e2f3f657c1108d9d44cfd8',
30371 b: '
3086d221a7d46bcde86c90e49284eb15'
30377 '
79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',
30378 '
483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',
30383 },{"../elliptic":
39,"./precomputed/secp256k1":
53,"hash.js":
57}],
46:[function(require,module,exports){
30386 var BN = require('bn.js');
30387 var elliptic = require('../../elliptic');
30388 var utils = elliptic.utils;
30389 var assert = utils.assert;
30391 var KeyPair = require('./key');
30392 var Signature = require('./signature');
30394 function EC(options) {
30395 if (!(this instanceof EC))
30396 return new EC(options);
30398 // Shortcut `elliptic.ec(curve-name)`
30399 if (typeof options === 'string') {
30400 assert(elliptic.curves.hasOwnProperty(options), 'Unknown curve ' + options);
30402 options = elliptic.curves[options];
30405 // Shortcut for `elliptic.ec(elliptic.curves.curveName)`
30406 if (options instanceof elliptic.curves.PresetCurve)
30407 options = { curve: options };
30409 this.curve = options.curve.curve;
30410 this.n = this.curve.n;
30411 this.nh = this.n.ushrn(
1);
30412 this.g = this.curve.g;
30415 this.g = options.curve.g;
30416 this.g.precompute(options.curve.n.bitLength() +
1);
30418 // Hash for function for DRBG
30419 this.hash = options.hash || options.curve.hash;
30421 module.exports = EC;
30423 EC.prototype.keyPair = function keyPair(options) {
30424 return new KeyPair(this, options);
30427 EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {
30428 return KeyPair.fromPrivate(this, priv, enc);
30431 EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {
30432 return KeyPair.fromPublic(this, pub, enc);
30435 EC.prototype.genKeyPair = function genKeyPair(options) {
30439 // Instantiate Hmac_DRBG
30440 var drbg = new elliptic.hmacDRBG({
30442 pers: options.pers,
30443 entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
30444 nonce: this.n.toArray()
30447 var bytes = this.n.byteLength();
30448 var ns2 = this.n.sub(new BN(
2));
30450 var priv = new BN(drbg.generate(bytes));
30451 if (priv.cmp(ns2)
> 0)
30455 return this.keyFromPrivate(priv);
30459 EC.prototype._truncateToN = function truncateToN(msg, truncOnly) {
30460 var delta = msg.byteLength() *
8 - this.n.bitLength();
30462 msg = msg.ushrn(delta);
30463 if (!truncOnly && msg.cmp(this.n)
>=
0)
30464 return msg.sub(this.n);
30469 EC.prototype.sign = function sign(msg, key, enc, options) {
30470 if (typeof enc === 'object') {
30477 key = this.keyFromPrivate(key, enc);
30478 msg = this._truncateToN(new BN(msg,
16));
30480 // Zero-extend key to provide enough entropy
30481 var bytes = this.n.byteLength();
30482 var bkey = key.getPrivate().toArray('be', bytes);
30484 // Zero-extend nonce to have the same byte size as N
30485 var nonce = msg.toArray('be', bytes);
30487 // Instantiate Hmac_DRBG
30488 var drbg = new elliptic.hmacDRBG({
30492 pers: options.pers,
30493 persEnc: options.persEnc
30496 // Number of bytes to generate
30497 var ns1 = this.n.sub(new BN(
1));
30499 for (var iter =
0; true; iter++) {
30500 var k = options.k ?
30502 new BN(drbg.generate(this.n.byteLength()));
30503 k = this._truncateToN(k, true);
30504 if (k.cmpn(
1) <=
0 || k.cmp(ns1)
>=
0)
30507 var kp = this.g.mul(k);
30508 if (kp.isInfinity())
30511 var kpX = kp.getX();
30512 var r = kpX.umod(this.n);
30513 if (r.cmpn(
0) ===
0)
30516 var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));
30517 s = s.umod(this.n);
30518 if (s.cmpn(
0) ===
0)
30521 var recoveryParam = (kp.getY().isOdd() ?
1 :
0) |
30522 (kpX.cmp(r) !==
0 ?
2 :
0);
30524 // Use complement of `s`, if it is
> `n /
2`
30525 if (options.canonical && s.cmp(this.nh)
> 0) {
30527 recoveryParam ^=
1;
30530 return new Signature({ r: r, s: s, recoveryParam: recoveryParam });
30534 EC.prototype.verify = function verify(msg, signature, key, enc) {
30535 msg = this._truncateToN(new BN(msg,
16));
30536 key = this.keyFromPublic(key, enc);
30537 signature = new Signature(signature, 'hex');
30539 // Perform primitive values validation
30540 var r = signature.r;
30541 var s = signature.s;
30542 if (r.cmpn(
1) <
0 || r.cmp(this.n)
>=
0)
30544 if (s.cmpn(
1) <
0 || s.cmp(this.n)
>=
0)
30547 // Validate signature
30548 var sinv = s.invm(this.n);
30549 var u1 = sinv.mul(msg).umod(this.n);
30550 var u2 = sinv.mul(r).umod(this.n);
30552 if (!this.curve._maxwellTrick) {
30553 var p = this.g.mulAdd(u1, key.getPublic(), u2);
30554 if (p.isInfinity())
30557 return p.getX().umod(this.n).cmp(r) ===
0;
30560 // NOTE: Greg Maxwell's trick, inspired by:
30561 // https://git.io/vad3K
30563 var p = this.g.jmulAdd(u1, key.getPublic(), u2);
30564 if (p.isInfinity())
30567 // Compare `p.x` of Jacobian point with `r`,
30568 // this will do `p.x == r * p.z^
2` instead of multiplying `p.x` by the
30569 // inverse of `p.z^
2`
30570 return p.eqXToP(r);
30573 EC.prototype.recoverPubKey = function(msg, signature, j, enc) {
30574 assert((
3 & j) === j, 'The recovery param is more than two bits');
30575 signature = new Signature(signature, enc);
30578 var e = new BN(msg);
30579 var r = signature.r;
30580 var s = signature.s;
30582 // A set LSB signifies that the y-coordinate is odd
30583 var isYOdd = j &
1;
30584 var isSecondKey = j
>> 1;
30585 if (r.cmp(this.curve.p.umod(this.curve.n))
>=
0 && isSecondKey)
30586 throw new Error('Unable to find sencond key candinate');
30588 //
1.1. Let x = r + jn.
30590 r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);
30592 r = this.curve.pointFromX(r, isYOdd);
30594 var rInv = signature.r.invm(n);
30595 var s1 = n.sub(e).mul(rInv).umod(n);
30596 var s2 = s.mul(rInv).umod(n);
30598 //
1.6.1 Compute Q = r^-
1 (sR - eG)
30599 // Q = r^-
1 (sR + -eG)
30600 return this.g.mulAdd(s1, r, s2);
30603 EC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {
30604 signature = new Signature(signature, enc);
30605 if (signature.recoveryParam !== null)
30606 return signature.recoveryParam;
30608 for (var i =
0; i <
4; i++) {
30611 Qprime = this.recoverPubKey(e, signature, i);
30619 throw new Error('Unable to find valid recovery factor');
30622 },{"../../elliptic":
39,"./key":
47,"./signature":
48,"bn.js":
33}],
47:[function(require,module,exports){
30625 var BN = require('bn.js');
30626 var elliptic = require('../../elliptic');
30627 var utils = elliptic.utils;
30628 var assert = utils.assert;
30630 function KeyPair(ec, options) {
30635 // KeyPair(ec, { priv: ..., pub: ... })
30637 this._importPrivate(options.priv, options.privEnc);
30639 this._importPublic(options.pub, options.pubEnc);
30641 module.exports = KeyPair;
30643 KeyPair.fromPublic = function fromPublic(ec, pub, enc) {
30644 if (pub instanceof KeyPair)
30647 return new KeyPair(ec, {
30653 KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {
30654 if (priv instanceof KeyPair)
30657 return new KeyPair(ec, {
30663 KeyPair.prototype.validate = function validate() {
30664 var pub = this.getPublic();
30666 if (pub.isInfinity())
30667 return { result: false, reason: 'Invalid public key' };
30668 if (!pub.validate())
30669 return { result: false, reason: 'Public key is not a point' };
30670 if (!pub.mul(this.ec.curve.n).isInfinity())
30671 return { result: false, reason: 'Public key * N != O' };
30673 return { result: true, reason: null };
30676 KeyPair.prototype.getPublic = function getPublic(compact, enc) {
30677 // compact is optional argument
30678 if (typeof compact === 'string') {
30684 this.pub = this.ec.g.mul(this.priv);
30689 return this.pub.encode(enc, compact);
30692 KeyPair.prototype.getPrivate = function getPrivate(enc) {
30694 return this.priv.toString(
16,
2);
30699 KeyPair.prototype._importPrivate = function _importPrivate(key, enc) {
30700 this.priv = new BN(key, enc ||
16);
30702 // Ensure that the priv won't be bigger than n, otherwise we may fail
30703 // in fixed multiplication method
30704 this.priv = this.priv.umod(this.ec.curve.n);
30707 KeyPair.prototype._importPublic = function _importPublic(key, enc) {
30708 if (key.x || key.y) {
30709 // Montgomery points only have an `x` coordinate.
30710 // Weierstrass/Edwards points on the other hand have both `x` and
30711 // `y` coordinates.
30712 if (this.ec.curve.type === 'mont') {
30713 assert(key.x, 'Need x coordinate');
30714 } else if (this.ec.curve.type === 'short' ||
30715 this.ec.curve.type === 'edwards') {
30716 assert(key.x && key.y, 'Need both x and y coordinate');
30718 this.pub = this.ec.curve.point(key.x, key.y);
30721 this.pub = this.ec.curve.decodePoint(key, enc);
30725 KeyPair.prototype.derive = function derive(pub) {
30726 return pub.mul(this.priv).getX();
30730 KeyPair.prototype.sign = function sign(msg, enc, options) {
30731 return this.ec.sign(msg, this, enc, options);
30734 KeyPair.prototype.verify = function verify(msg, signature) {
30735 return this.ec.verify(msg, signature, this);
30738 KeyPair.prototype.inspect = function inspect() {
30739 return '
<Key priv: ' + (this.priv && this.priv.toString(
16,
2)) +
30740 ' pub: ' + (this.pub && this.pub.inspect()) + '
>';
30743 },{"../../elliptic":
39,"bn.js":
33}],
48:[function(require,module,exports){
30746 var BN = require('bn.js');
30748 var elliptic = require('../../elliptic');
30749 var utils = elliptic.utils;
30750 var assert = utils.assert;
30752 function Signature(options, enc) {
30753 if (options instanceof Signature)
30756 if (this._importDER(options, enc))
30759 assert(options.r && options.s, 'Signature without r or s');
30760 this.r = new BN(options.r,
16);
30761 this.s = new BN(options.s,
16);
30762 if (options.recoveryParam === undefined)
30763 this.recoveryParam = null;
30765 this.recoveryParam = options.recoveryParam;
30767 module.exports = Signature;
30769 function Position() {
30773 function getLength(buf, p) {
30774 var initial = buf[p.place++];
30775 if (!(initial &
0x80)) {
30778 var octetLen = initial &
0xf;
30780 for (var i =
0, off = p.place; i < octetLen; i++, off++) {
30788 function rmPadding(buf) {
30790 var len = buf.length -
1;
30791 while (!buf[i] && !(buf[i +
1] &
0x80) && i < len) {
30797 return buf.slice(i);
30800 Signature.prototype._importDER = function _importDER(data, enc) {
30801 data = utils.toArray(data, enc);
30802 var p = new Position();
30803 if (data[p.place++] !==
0x30) {
30806 var len = getLength(data, p);
30807 if ((len + p.place) !== data.length) {
30810 if (data[p.place++] !==
0x02) {
30813 var rlen = getLength(data, p);
30814 var r = data.slice(p.place, rlen + p.place);
30816 if (data[p.place++] !==
0x02) {
30819 var slen = getLength(data, p);
30820 if (data.length !== slen + p.place) {
30823 var s = data.slice(p.place, slen + p.place);
30824 if (r[
0] ===
0 && (r[
1] &
0x80)) {
30827 if (s[
0] ===
0 && (s[
1] &
0x80)) {
30831 this.r = new BN(r);
30832 this.s = new BN(s);
30833 this.recoveryParam = null;
30838 function constructLength(arr, len) {
30843 var octets =
1 + (Math.log(len) / Math.LN2
>>> 3);
30844 arr.push(octets |
0x80);
30846 arr.push((len
>>> (octets <<
3)) &
0xff);
30851 Signature.prototype.toDER = function toDER(enc) {
30852 var r = this.r.toArray();
30853 var s = this.s.toArray();
30857 r = [
0 ].concat(r);
30860 s = [
0 ].concat(s);
30865 while (!s[
0] && !(s[
1] &
0x80)) {
30868 var arr = [
0x02 ];
30869 constructLength(arr, r.length);
30870 arr = arr.concat(r);
30872 constructLength(arr, s.length);
30873 var backHalf = arr.concat(s);
30874 var res = [
0x30 ];
30875 constructLength(res, backHalf.length);
30876 res = res.concat(backHalf);
30877 return utils.encode(res, enc);
30880 },{"../../elliptic":
39,"bn.js":
33}],
49:[function(require,module,exports){
30883 var hash = require('hash.js');
30884 var elliptic = require('../../elliptic');
30885 var utils = elliptic.utils;
30886 var assert = utils.assert;
30887 var parseBytes = utils.parseBytes;
30888 var KeyPair = require('./key');
30889 var Signature = require('./signature');
30891 function EDDSA(curve) {
30892 assert(curve === 'ed25519', 'only tested with ed25519 so far');
30894 if (!(this instanceof EDDSA))
30895 return new EDDSA(curve);
30897 var curve = elliptic.curves[curve].curve;
30898 this.curve = curve;
30900 this.g.precompute(curve.n.bitLength() +
1);
30902 this.pointClass = curve.point().constructor;
30903 this.encodingLength = Math.ceil(curve.n.bitLength() /
8);
30904 this.hash = hash.sha512;
30907 module.exports = EDDSA;
30910 * @param {Array|String} message - message bytes
30911 * @param {Array|String|KeyPair} secret - secret bytes or a keypair
30912 * @returns {Signature} - signature
30914 EDDSA.prototype.sign = function sign(message, secret) {
30915 message = parseBytes(message);
30916 var key = this.keyFromSecret(secret);
30917 var r = this.hashInt(key.messagePrefix(), message);
30918 var R = this.g.mul(r);
30919 var Rencoded = this.encodePoint(R);
30920 var s_ = this.hashInt(Rencoded, key.pubBytes(), message)
30922 var S = r.add(s_).umod(this.curve.n);
30923 return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });
30927 * @param {Array} message - message bytes
30928 * @param {Array|String|Signature} sig - sig bytes
30929 * @param {Array|String|Point|KeyPair} pub - public key
30930 * @returns {Boolean} - true if public key matches sig of message
30932 EDDSA.prototype.verify = function verify(message, sig, pub) {
30933 message = parseBytes(message);
30934 sig = this.makeSignature(sig);
30935 var key = this.keyFromPublic(pub);
30936 var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);
30937 var SG = this.g.mul(sig.S());
30938 var RplusAh = sig.R().add(key.pub().mul(h));
30939 return RplusAh.eq(SG);
30942 EDDSA.prototype.hashInt = function hashInt() {
30943 var hash = this.hash();
30944 for (var i =
0; i < arguments.length; i++)
30945 hash.update(arguments[i]);
30946 return utils.intFromLE(hash.digest()).umod(this.curve.n);
30949 EDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {
30950 return KeyPair.fromPublic(this, pub);
30953 EDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {
30954 return KeyPair.fromSecret(this, secret);
30957 EDDSA.prototype.makeSignature = function makeSignature(sig) {
30958 if (sig instanceof Signature)
30960 return new Signature(this, sig);
30964 * * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-
03#section-
5.2
30966 * EDDSA defines methods for encoding and decoding points and integers. These are
30967 * helper convenience methods, that pass along to utility functions implied
30971 EDDSA.prototype.encodePoint = function encodePoint(point) {
30972 var enc = point.getY().toArray('le', this.encodingLength);
30973 enc[this.encodingLength -
1] |= point.getX().isOdd() ?
0x80 :
0;
30977 EDDSA.prototype.decodePoint = function decodePoint(bytes) {
30978 bytes = utils.parseBytes(bytes);
30980 var lastIx = bytes.length -
1;
30981 var normed = bytes.slice(
0, lastIx).concat(bytes[lastIx] & ~
0x80);
30982 var xIsOdd = (bytes[lastIx] &
0x80) !==
0;
30984 var y = utils.intFromLE(normed);
30985 return this.curve.pointFromY(y, xIsOdd);
30988 EDDSA.prototype.encodeInt = function encodeInt(num) {
30989 return num.toArray('le', this.encodingLength);
30992 EDDSA.prototype.decodeInt = function decodeInt(bytes) {
30993 return utils.intFromLE(bytes);
30996 EDDSA.prototype.isPoint = function isPoint(val) {
30997 return val instanceof this.pointClass;
31000 },{"../../elliptic":
39,"./key":
50,"./signature":
51,"hash.js":
57}],
50:[function(require,module,exports){
31003 var elliptic = require('../../elliptic');
31004 var utils = elliptic.utils;
31005 var assert = utils.assert;
31006 var parseBytes = utils.parseBytes;
31007 var cachedProperty = utils.cachedProperty;
31010 * @param {EDDSA} eddsa - instance
31011 * @param {Object} params - public/private key parameters
31013 * @param {Array
<Byte>} [params.secret] - secret seed bytes
31014 * @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)
31015 * @param {Array
<Byte>} [params.pub] - public key point encoded as bytes
31018 function KeyPair(eddsa, params) {
31019 this.eddsa = eddsa;
31020 this._secret = parseBytes(params.secret);
31021 if (eddsa.isPoint(params.pub))
31022 this._pub = params.pub;
31024 this._pubBytes = parseBytes(params.pub);
31027 KeyPair.fromPublic = function fromPublic(eddsa, pub) {
31028 if (pub instanceof KeyPair)
31030 return new KeyPair(eddsa, { pub: pub });
31033 KeyPair.fromSecret = function fromSecret(eddsa, secret) {
31034 if (secret instanceof KeyPair)
31036 return new KeyPair(eddsa, { secret: secret });
31039 KeyPair.prototype.secret = function secret() {
31040 return this._secret;
31043 cachedProperty(KeyPair, 'pubBytes', function pubBytes() {
31044 return this.eddsa.encodePoint(this.pub());
31047 cachedProperty(KeyPair, 'pub', function pub() {
31048 if (this._pubBytes)
31049 return this.eddsa.decodePoint(this._pubBytes);
31050 return this.eddsa.g.mul(this.priv());
31053 cachedProperty(KeyPair, 'privBytes', function privBytes() {
31054 var eddsa = this.eddsa;
31055 var hash = this.hash();
31056 var lastIx = eddsa.encodingLength -
1;
31058 var a = hash.slice(
0, eddsa.encodingLength);
31066 cachedProperty(KeyPair, 'priv', function priv() {
31067 return this.eddsa.decodeInt(this.privBytes());
31070 cachedProperty(KeyPair, 'hash', function hash() {
31071 return this.eddsa.hash().update(this.secret()).digest();
31074 cachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {
31075 return this.hash().slice(this.eddsa.encodingLength);
31078 KeyPair.prototype.sign = function sign(message) {
31079 assert(this._secret, 'KeyPair can only verify');
31080 return this.eddsa.sign(message, this);
31083 KeyPair.prototype.verify = function verify(message, sig) {
31084 return this.eddsa.verify(message, sig, this);
31087 KeyPair.prototype.getSecret = function getSecret(enc) {
31088 assert(this._secret, 'KeyPair is public only');
31089 return utils.encode(this.secret(), enc);
31092 KeyPair.prototype.getPublic = function getPublic(enc) {
31093 return utils.encode(this.pubBytes(), enc);
31096 module.exports = KeyPair;
31098 },{"../../elliptic":
39}],
51:[function(require,module,exports){
31101 var BN = require('bn.js');
31102 var elliptic = require('../../elliptic');
31103 var utils = elliptic.utils;
31104 var assert = utils.assert;
31105 var cachedProperty = utils.cachedProperty;
31106 var parseBytes = utils.parseBytes;
31109 * @param {EDDSA} eddsa - eddsa instance
31110 * @param {Array
<Bytes>|Object} sig -
31111 * @param {Array
<Bytes>|Point} [sig.R] - R point as Point or bytes
31112 * @param {Array
<Bytes>|bn} [sig.S] - S scalar as bn or bytes
31113 * @param {Array
<Bytes>} [sig.Rencoded] - R point encoded
31114 * @param {Array
<Bytes>} [sig.Sencoded] - S scalar encoded
31116 function Signature(eddsa, sig) {
31117 this.eddsa = eddsa;
31119 if (typeof sig !== 'object')
31120 sig = parseBytes(sig);
31122 if (Array.isArray(sig)) {
31124 R: sig.slice(
0, eddsa.encodingLength),
31125 S: sig.slice(eddsa.encodingLength)
31129 assert(sig.R && sig.S, 'Signature without R or S');
31131 if (eddsa.isPoint(sig.R))
31133 if (sig.S instanceof BN)
31136 this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;
31137 this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;
31140 cachedProperty(Signature, 'S', function S() {
31141 return this.eddsa.decodeInt(this.Sencoded());
31144 cachedProperty(Signature, 'R', function R() {
31145 return this.eddsa.decodePoint(this.Rencoded());
31148 cachedProperty(Signature, 'Rencoded', function Rencoded() {
31149 return this.eddsa.encodePoint(this.R());
31152 cachedProperty(Signature, 'Sencoded', function Sencoded() {
31153 return this.eddsa.encodeInt(this.S());
31156 Signature.prototype.toBytes = function toBytes() {
31157 return this.Rencoded().concat(this.Sencoded());
31160 Signature.prototype.toHex = function toHex() {
31161 return utils.encode(this.toBytes(), 'hex').toUpperCase();
31164 module.exports = Signature;
31166 },{"../../elliptic":
39,"bn.js":
33}],
52:[function(require,module,exports){
31169 var hash = require('hash.js');
31170 var elliptic = require('../elliptic');
31171 var utils = elliptic.utils;
31172 var assert = utils.assert;
31174 function HmacDRBG(options) {
31175 if (!(this instanceof HmacDRBG))
31176 return new HmacDRBG(options);
31177 this.hash = options.hash;
31178 this.predResist = !!options.predResist;
31180 this.outLen = this.hash.outSize;
31181 this.minEntropy = options.minEntropy || this.hash.hmacStrength;
31183 this.reseed = null;
31184 this.reseedInterval = null;
31188 var entropy = utils.toArray(options.entropy, options.entropyEnc);
31189 var nonce = utils.toArray(options.nonce, options.nonceEnc);
31190 var pers = utils.toArray(options.pers, options.persEnc);
31191 assert(entropy.length
>= (this.minEntropy /
8),
31192 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
31193 this._init(entropy, nonce, pers);
31195 module.exports = HmacDRBG;
31197 HmacDRBG.prototype._init = function init(entropy, nonce, pers) {
31198 var seed = entropy.concat(nonce).concat(pers);
31200 this.K = new Array(this.outLen /
8);
31201 this.V = new Array(this.outLen /
8);
31202 for (var i =
0; i < this.V.length; i++) {
31207 this._update(seed);
31209 this.reseedInterval =
0x1000000000000; //
2^
48
31212 HmacDRBG.prototype._hmac = function hmac() {
31213 return new hash.hmac(this.hash, this.K);
31216 HmacDRBG.prototype._update = function update(seed) {
31217 var kmac = this._hmac()
31221 kmac = kmac.update(seed);
31222 this.K = kmac.digest();
31223 this.V = this._hmac().update(this.V).digest();
31227 this.K = this._hmac()
31232 this.V = this._hmac().update(this.V).digest();
31235 HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {
31236 // Optional entropy enc
31237 if (typeof entropyEnc !== 'string') {
31243 entropy = utils.toBuffer(entropy, entropyEnc);
31244 add = utils.toBuffer(add, addEnc);
31246 assert(entropy.length
>= (this.minEntropy /
8),
31247 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');
31249 this._update(entropy.concat(add || []));
31253 HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
31254 if (this.reseed
> this.reseedInterval)
31255 throw new Error('Reseed is required');
31257 // Optional encoding
31258 if (typeof enc !== 'string') {
31264 // Optional additional data
31266 add = utils.toArray(add, addEnc);
31271 while (temp.length < len) {
31272 this.V = this._hmac().update(this.V).digest();
31273 temp = temp.concat(this.V);
31276 var res = temp.slice(
0, len);
31279 return utils.encode(res, enc);
31282 },{"../elliptic":
39,"hash.js":
57}],
53:[function(require,module,exports){
31288 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',
31289 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'
31292 '
8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',
31293 '
11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'
31296 '
175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',
31297 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'
31300 '
363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',
31301 '
4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'
31304 '
8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',
31305 '
4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'
31308 '
723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',
31309 '
96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'
31312 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',
31313 '
5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'
31316 '
100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',
31317 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'
31320 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',
31321 '
9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'
31324 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',
31325 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'
31328 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',
31329 '
9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'
31332 '
53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',
31333 '
5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'
31336 '
8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',
31337 '
10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'
31340 '
385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',
31341 '
283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'
31344 '
6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',
31345 '
7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'
31348 '
3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',
31349 '
56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'
31352 '
85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',
31353 '
7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'
31356 '
948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',
31357 '
53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'
31360 '
6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',
31361 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'
31364 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',
31365 '
4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'
31368 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',
31369 '
7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'
31372 '
213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',
31373 '
4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'
31376 '
4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',
31377 '
17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'
31380 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',
31381 '
6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'
31384 '
76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',
31385 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'
31388 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',
31389 '
893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'
31392 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',
31393 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'
31396 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',
31397 '
2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'
31400 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',
31401 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'
31404 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',
31405 '
7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'
31408 '
90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',
31409 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'
31412 '
8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',
31413 '
662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'
31416 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',
31417 '
1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'
31420 '
8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',
31421 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'
31424 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',
31425 '
2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'
31428 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',
31429 '
67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'
31432 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',
31433 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'
31436 '
324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',
31437 '
648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'
31440 '
4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',
31441 '
35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'
31444 '
9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',
31445 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'
31448 '
6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',
31449 '
9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'
31452 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',
31453 '
40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'
31456 '
7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',
31457 '
34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'
31460 '
928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',
31461 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'
31464 '
85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',
31465 '
1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'
31468 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',
31469 '
493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'
31472 '
827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',
31473 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'
31476 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',
31477 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'
31480 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',
31481 '
4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'
31484 '
1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',
31485 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'
31488 '
146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',
31489 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'
31492 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',
31493 '
6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'
31496 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',
31497 '
8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'
31500 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',
31501 '
7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'
31504 '
174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',
31505 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'
31508 '
959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',
31509 '
2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'
31512 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',
31513 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'
31516 '
64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',
31517 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'
31520 '
8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',
31521 '
38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'
31524 '
13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',
31525 '
69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'
31528 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',
31529 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'
31532 '
8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',
31533 '
40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'
31536 '
8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',
31537 '
620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'
31540 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',
31541 '
7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'
31544 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',
31545 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'
31553 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',
31554 '
388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'
31557 '
2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',
31558 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'
31561 '
5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',
31562 '
6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'
31565 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',
31566 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'
31569 '
774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',
31570 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'
31573 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',
31574 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'
31577 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',
31578 '
581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'
31581 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',
31582 '
4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'
31585 '
2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',
31586 '
85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'
31589 '
352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',
31590 '
321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'
31593 '
2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',
31594 '
2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'
31597 '
9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',
31598 '
73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'
31601 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',
31602 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'
31605 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',
31606 '
2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'
31609 '
6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',
31610 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'
31613 '
1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',
31614 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'
31617 '
605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',
31618 '
2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'
31621 '
62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',
31622 '
80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'
31625 '
80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',
31626 '
1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'
31629 '
7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',
31630 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'
31633 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',
31634 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'
31637 '
49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',
31638 '
758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'
31641 '
77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',
31642 '
958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'
31645 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',
31646 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'
31649 '
463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',
31650 '
5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'
31653 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',
31654 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'
31657 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',
31658 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'
31661 '
2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',
31662 '
4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'
31665 '
7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',
31666 '
91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'
31669 '
754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',
31670 '
673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'
31673 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',
31674 '
59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'
31677 '
186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',
31678 '
3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'
31681 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',
31682 '
55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'
31685 '
5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',
31686 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'
31689 '
290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',
31690 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'
31693 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',
31694 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'
31697 '
766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',
31698 '
744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'
31701 '
59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',
31702 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'
31705 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',
31706 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'
31709 '
7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',
31710 '
30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'
31713 '
948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',
31714 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'
31717 '
7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',
31718 '
100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'
31721 '
3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',
31722 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'
31725 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',
31726 '
8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'
31729 '
1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',
31730 '
68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'
31733 '
733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',
31734 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'
31737 '
15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',
31738 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'
31741 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',
31742 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'
31745 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',
31746 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'
31749 '
311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',
31750 '
66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'
31753 '
34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',
31754 '
9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'
31757 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',
31758 '
4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'
31761 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',
31762 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'
31765 '
32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',
31766 '
5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'
31769 '
7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',
31770 '
8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'
31773 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',
31774 '
8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'
31777 '
16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',
31778 '
5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'
31781 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',
31782 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'
31785 '
78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',
31786 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'
31789 '
494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',
31790 '
42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'
31793 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',
31794 '
204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'
31797 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',
31798 '
4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'
31801 '
841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',
31802 '
73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'
31805 '
5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',
31806 '
39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'
31809 '
36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',
31810 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'
31813 '
336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',
31814 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'
31817 '
8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',
31818 '
6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'
31821 '
1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',
31822 '
60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'
31825 '
85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',
31826 '
3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'
31829 '
29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',
31830 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'
31833 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',
31834 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'
31837 '
4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',
31838 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'
31841 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',
31842 '
6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'
31845 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',
31846 '
322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'
31849 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',
31850 '
6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'
31853 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',
31854 '
2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'
31857 '
591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',
31858 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'
31861 '
11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',
31862 '
998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'
31865 '
3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',
31866 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'
31869 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',
31870 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'
31873 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',
31874 '
6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'
31877 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',
31878 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'
31881 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',
31882 '
21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'
31885 '
347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',
31886 '
60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'
31889 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',
31890 '
49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'
31893 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',
31894 '
5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'
31897 '
4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',
31898 '
7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'
31901 '
3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',
31902 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'
31905 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',
31906 '
8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'
31909 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',
31910 '
39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'
31913 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',
31914 '
62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'
31917 '
48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',
31918 '
25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'
31921 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',
31922 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'
31925 '
6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',
31926 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'
31929 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',
31930 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'
31933 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',
31934 '
6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'
31937 '
13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',
31938 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'
31941 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',
31942 '
1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'
31945 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',
31946 '
5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'
31949 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',
31950 '
438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'
31953 '
8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',
31954 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'
31957 '
52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',
31958 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'
31961 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',
31962 '
6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'
31965 '
7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',
31966 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'
31969 '
5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',
31970 '
9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'
31973 '
32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',
31974 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'
31977 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',
31978 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'
31981 '
8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',
31982 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'
31985 '
4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',
31986 '
67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'
31989 '
3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',
31990 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'
31993 '
674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',
31994 '
299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'
31997 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',
31998 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'
32001 '
30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',
32002 '
462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'
32005 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',
32006 '
62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'
32009 '
93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',
32010 '
7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'
32013 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',
32014 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'
32017 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',
32018 '
4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'
32021 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',
32022 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'
32025 '
463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',
32026 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'
32029 '
7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',
32030 '
603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'
32033 '
74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',
32034 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'
32037 '
30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',
32038 '
553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'
32041 '
9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',
32042 '
712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'
32045 '
176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',
32046 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'
32049 '
75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',
32050 '
9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'
32053 '
809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',
32054 '
9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'
32057 '
1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',
32058 '
4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'
32064 },{}],
54:[function(require,module,exports){
32067 var utils = exports;
32068 var BN = require('bn.js');
32070 utils.assert = function assert(val, msg) {
32072 throw new Error(msg || 'Assertion failed');
32075 function toArray(msg, enc) {
32076 if (Array.isArray(msg))
32077 return msg.slice();
32081 if (typeof msg !== 'string') {
32082 for (var i =
0; i < msg.length; i++)
32083 res[i] = msg[i] |
0;
32087 for (var i =
0; i < msg.length; i++) {
32088 var c = msg.charCodeAt(i);
32096 } else if (enc === 'hex') {
32097 msg = msg.replace(/[^a-z0-
9]+/ig, '');
32098 if (msg.length %
2 !==
0)
32100 for (var i =
0; i < msg.length; i +=
2)
32101 res.push(parseInt(msg[i] + msg[i +
1],
16));
32105 utils.toArray = toArray;
32107 function zero2(word) {
32108 if (word.length ===
1)
32113 utils.zero2 = zero2;
32115 function toHex(msg) {
32117 for (var i =
0; i < msg.length; i++)
32118 res += zero2(msg[i].toString(
16));
32121 utils.toHex = toHex;
32123 utils.encode = function encode(arr, enc) {
32130 // Represent num in a w-NAF form
32131 function getNAF(num, w) {
32133 var ws =
1 << (w +
1);
32134 var k = num.clone();
32135 while (k.cmpn(
1)
>=
0) {
32138 var mod = k.andln(ws -
1);
32139 if (mod
> (ws
>> 1) -
1)
32140 z = (ws
>> 1) - mod;
32149 // Optimization, shift by word if possible
32150 var shift = (k.cmpn(
0) !==
0 && k.andln(ws -
1) ===
0) ? (w +
1) :
1;
32151 for (var i =
1; i < shift; i++)
32158 utils.getNAF = getNAF;
32160 // Represent k1, k2 in a Joint Sparse Form
32161 function getJSF(k1, k2) {
32171 while (k1.cmpn(-d1)
> 0 || k2.cmpn(-d2)
> 0) {
32174 var m14 = (k1.andln(
3) + d1) &
3;
32175 var m24 = (k2.andln(
3) + d2) &
3;
32181 if ((m14 &
1) ===
0) {
32184 var m8 = (k1.andln(
7) + d1) &
7;
32185 if ((m8 ===
3 || m8 ===
5) && m24 ===
2)
32193 if ((m24 &
1) ===
0) {
32196 var m8 = (k2.andln(
7) + d2) &
7;
32197 if ((m8 ===
3 || m8 ===
5) && m14 ===
2)
32205 if (
2 * d1 === u1 +
1)
32207 if (
2 * d2 === u2 +
1)
32215 utils.getJSF = getJSF;
32217 function cachedProperty(obj, name, computer) {
32218 var key = '_' + name;
32219 obj.prototype[name] = function cachedProperty() {
32220 return this[key] !== undefined ? this[key] :
32221 this[key] = computer.call(this);
32224 utils.cachedProperty = cachedProperty;
32226 function parseBytes(bytes) {
32227 return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :
32230 utils.parseBytes = parseBytes;
32232 function intFromLE(bytes) {
32233 return new BN(bytes, 'hex', 'le');
32235 utils.intFromLE = intFromLE;
32238 },{
"bn.js":
33}],
55:[function(require,module,exports){
32243 "raw":
"elliptic@^6.2.3",
32245 "escapedName":
"elliptic",
32246 "name":
"elliptic",
32247 "rawSpec":
"^6.2.3",
32248 "spec":
">=6.2.3 <7.0.0",
32251 "/home/user/ethereum/ethereumjs-util/node_modules/secp256k1"
32254 "_from":
"elliptic@>=6.2.3 <7.0.0",
32255 "_id":
"elliptic@6.3.3",
32257 "_location":
"/elliptic",
32258 "_nodeVersion":
"7.0.0",
32259 "_npmOperationalInternal": {
32260 "host":
"packages-18-east.internal.npmjs.com",
32261 "tmp":
"tmp/elliptic-6.3.3.tgz_1486422837740_0.10658654430881143"
32265 "email":
"fedor@indutny.com"
32267 "_npmVersion":
"3.10.8",
32268 "_phantomChildren": {},
32270 "raw":
"elliptic@^6.2.3",
32272 "escapedName":
"elliptic",
32273 "name":
"elliptic",
32274 "rawSpec":
"^6.2.3",
32275 "spec":
">=6.2.3 <7.0.0",
32279 "/browserify-sign",
32283 "_resolved":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz",
32284 "_shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
32285 "_shrinkwrap": null,
32286 "_spec":
"elliptic@^6.2.3",
32287 "_where":
"/home/user/ethereum/ethereumjs-util/node_modules/secp256k1",
32289 "name":
"Fedor Indutny",
32290 "email":
"fedor@indutny.com"
32293 "url":
"https://github.com/indutny/elliptic/issues"
32297 "brorand":
"^1.0.1",
32298 "hash.js":
"^1.0.0",
32299 "inherits":
"^2.0.1"
32301 "description":
"EC cryptography",
32302 "devDependencies": {
32304 "coveralls":
"^2.11.3",
32306 "grunt-browserify":
"^5.0.0",
32307 "grunt-cli":
"^1.2.0",
32308 "grunt-contrib-connect":
"^1.0.0",
32309 "grunt-contrib-copy":
"^1.0.0",
32310 "grunt-contrib-uglify":
"^1.0.1",
32311 "grunt-mocha-istanbul":
"^3.0.1",
32312 "grunt-saucelabs":
"^8.6.2",
32313 "istanbul":
"^0.4.2",
32315 "jshint":
"^2.6.0",
32320 "shasum":
"5482d9646d54bcb89fd7d994fc9e2e9568876e3f",
32321 "tarball":
"https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz"
32326 "gitHead":
"63aee8d697e9b7fac37ece24222029117a890a7e",
32327 "homepage":
"https://github.com/indutny/elliptic",
32335 "main":
"lib/elliptic.js",
32339 "email":
"fedor@indutny.com"
32342 "name":
"elliptic",
32343 "optionalDependencies": {},
32344 "readme":
"ERROR: No README data found!",
32347 "url":
"git+ssh://git@github.com/indutny/elliptic.git"
32350 "jscs":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
32351 "jshint":
"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js",
32352 "lint":
"npm run jscs && npm run jshint",
32353 "test":
"npm run lint && npm run unit",
32354 "unit":
"istanbul test _mocha --reporter=spec test/index.js",
32355 "version":
"grunt dist && git add dist/"
32360 },{}],
56:[function(require,module,exports){
32361 (function (Buffer){
32364 var isHexPrefixed = require('is-hex-prefixed');
32365 var stripHexPrefix = require('strip-hex-prefix');
32368 * Pads a `String` to have an even length
32369 * @param {String} value
32370 * @return {String} output
32372 function padToEven(value) {
32373 var a = value; // eslint-disable-line
32375 if (typeof a !== 'string') {
32376 throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');
32379 if (a.length %
2) {
32387 * Converts a `Number` into a hex `String`
32388 * @param {Number} i
32391 function intToHex(i) {
32392 var hex = i.toString(
16); // eslint-disable-line
32394 return '
0x' + padToEven(hex);
32398 * Converts an `Number` to a `Buffer`
32399 * @param {Number} i
32402 function intToBuffer(i) {
32403 var hex = intToHex(i);
32405 return new Buffer(hex.slice(
2), 'hex');
32409 * Get the binary size of a string
32410 * @param {String} str
32413 function getBinarySize(str) {
32414 if (typeof str !== 'string') {
32415 throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \'str\' to be type String, got \'' + typeof str + '\'.');
32418 return Buffer.byteLength(str, 'utf8');
32422 * Returns TRUE if the first specified array contains all elements
32423 * from the second one. FALSE otherwise.
32425 * @param {array} superset
32426 * @param {array} subset
32428 * @returns {boolean}
32430 function arrayContainsArray(superset, subset, some) {
32431 if (Array.isArray(superset) !== true) {
32432 throw new Error('[ethjs-util] method arrayContainsArray requires input \'superset\' to be an array got type \'' + typeof superset + '\'');
32434 if (Array.isArray(subset) !== true) {
32435 throw new Error('[ethjs-util] method arrayContainsArray requires input \'subset\' to be an array got type \'' + typeof subset + '\'');
32438 return subset[Boolean(some) && 'some' || 'every'](function (value) {
32439 return superset.indexOf(value)
>=
0;
32444 * Should be called to get utf8 from it's hex representation
32447 * @param {String} string in hex
32448 * @returns {String} ascii string representation of hex value
32450 function toUtf8(hex) {
32451 var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^
0+|
0+$/g, '')), 'hex');
32453 return bufferValue.toString('utf8');
32457 * Should be called to get ascii from it's hex representation
32460 * @param {String} string in hex
32461 * @returns {String} ascii string representation of hex value
32463 function toAscii(hex) {
32464 var str = ''; // eslint-disable-line
32466 l = hex.length; // eslint-disable-line
32468 if (hex.substring(
0,
2) === '
0x') {
32472 for (; i < l; i +=
2) {
32473 var code = parseInt(hex.substr(i,
2),
16);
32474 str += String.fromCharCode(code);
32481 * Should be called to get hex representation (prefixed by
0x) of utf8 string
32484 * @param {String} string
32485 * @param {Number} optional padding
32486 * @returns {String} hex representation of input string
32488 function fromUtf8(stringValue) {
32489 var str = new Buffer(stringValue, 'utf8');
32491 return '
0x' + padToEven(str.toString('hex')).replace(/^
0+|
0+$/g, '');
32495 * Should be called to get hex representation (prefixed by
0x) of ascii string
32497 * @method fromAscii
32498 * @param {String} string
32499 * @param {Number} optional padding
32500 * @returns {String} hex representation of input string
32502 function fromAscii(stringValue) {
32503 var hex = ''; // eslint-disable-line
32504 for (var i =
0; i < stringValue.length; i++) {
32505 // eslint-disable-line
32506 var code = stringValue.charCodeAt(i);
32507 var n = code.toString(
16);
32508 hex += n.length <
2 ? '
0' + n : n;
32515 * getKeys([{a:
1, b:
2}, {a:
3, b:
4}], 'a') =
> [
1,
3]
32517 * @method getKeys get specific key from inner object array of objects
32518 * @param {String} params
32519 * @param {String} key
32520 * @param {Boolean} allowEmpty
32521 * @returns {Array} output just a simple array of output keys
32523 function getKeys(params, key, allowEmpty) {
32524 if (!Array.isArray(params)) {
32525 throw new Error('[ethjs-util] method getKeys expecting type Array as \'params\' input, got \'' + typeof params + '\'');
32527 if (typeof key !== 'string') {
32528 throw new Error('[ethjs-util] method getKeys expecting type String for input \'key\' got \'' + typeof key + '\'.');
32531 var result = []; // eslint-disable-line
32533 for (var i =
0; i < params.length; i++) {
32534 // eslint-disable-line
32535 var value = params[i][key]; // eslint-disable-line
32536 if (allowEmpty && !value) {
32538 } else if (typeof value !== 'string') {
32539 throw new Error('invalid abi');
32541 result.push(value);
32548 * Is the string a hex string.
32550 * @method check if string is hex string of specific length
32551 * @param {String} value
32552 * @param {Number} length
32553 * @returns {Boolean} output the string is a hex string
32555 function isHexString(value, length) {
32556 if (typeof value !== 'string' || !value.match(/^
0x[
0-
9A-Fa-f]*$/)) {
32560 if (length && value.length !==
2 +
2 * length) {
32568 arrayContainsArray: arrayContainsArray,
32569 intToBuffer: intToBuffer,
32570 getBinarySize: getBinarySize,
32571 isHexPrefixed: isHexPrefixed,
32572 stripHexPrefix: stripHexPrefix,
32573 padToEven: padToEven,
32574 intToHex: intToHex,
32575 fromAscii: fromAscii,
32576 fromUtf8: fromUtf8,
32580 isHexString: isHexString
32582 }).call(this,require("buffer").Buffer)
32583 },{"buffer":
5,"is-hex-prefixed":
64,"strip-hex-prefix":
87}],
57:[function(require,module,exports){
32584 var hash = exports;
32586 hash.utils = require('./hash/utils');
32587 hash.common = require('./hash/common');
32588 hash.sha = require('./hash/sha');
32589 hash.ripemd = require('./hash/ripemd');
32590 hash.hmac = require('./hash/hmac');
32592 // Proxy hash functions to the main object
32593 hash.sha1 = hash.sha.sha1;
32594 hash.sha256 = hash.sha.sha256;
32595 hash.sha224 = hash.sha.sha224;
32596 hash.sha384 = hash.sha.sha384;
32597 hash.sha512 = hash.sha.sha512;
32598 hash.ripemd160 = hash.ripemd.ripemd160;
32600 },{"./hash/common":
58,"./hash/hmac":
59,"./hash/ripemd":
60,"./hash/sha":
61,"./hash/utils":
62}],
58:[function(require,module,exports){
32601 var hash = require('../hash');
32602 var utils = hash.utils;
32603 var assert = utils.assert;
32605 function BlockHash() {
32606 this.pending = null;
32607 this.pendingTotal =
0;
32608 this.blockSize = this.constructor.blockSize;
32609 this.outSize = this.constructor.outSize;
32610 this.hmacStrength = this.constructor.hmacStrength;
32611 this.padLength = this.constructor.padLength /
8;
32612 this.endian = 'big';
32614 this._delta8 = this.blockSize /
8;
32615 this._delta32 = this.blockSize /
32;
32617 exports.BlockHash = BlockHash;
32619 BlockHash.prototype.update = function update(msg, enc) {
32620 // Convert message to array, pad it, and join into
32bit blocks
32621 msg = utils.toArray(msg, enc);
32623 this.pending = msg;
32625 this.pending = this.pending.concat(msg);
32626 this.pendingTotal += msg.length;
32628 // Enough data, try updating
32629 if (this.pending.length
>= this._delta8) {
32630 msg = this.pending;
32632 // Process pending data in blocks
32633 var r = msg.length % this._delta8;
32634 this.pending = msg.slice(msg.length - r, msg.length);
32635 if (this.pending.length ===
0)
32636 this.pending = null;
32638 msg = utils.join32(msg,
0, msg.length - r, this.endian);
32639 for (var i =
0; i < msg.length; i += this._delta32)
32640 this._update(msg, i, i + this._delta32);
32646 BlockHash.prototype.digest = function digest(enc) {
32647 this.update(this._pad());
32648 assert(this.pending === null);
32650 return this._digest(enc);
32653 BlockHash.prototype._pad = function pad() {
32654 var len = this.pendingTotal;
32655 var bytes = this._delta8;
32656 var k = bytes - ((len + this.padLength) % bytes);
32657 var res = new Array(k + this.padLength);
32659 for (var i =
1; i < k; i++)
32664 if (this.endian === 'big') {
32665 for (var t =
8; t < this.padLength; t++)
32672 res[i++] = (len
>>> 24) &
0xff;
32673 res[i++] = (len
>>> 16) &
0xff;
32674 res[i++] = (len
>>> 8) &
0xff;
32675 res[i++] = len &
0xff;
32677 res[i++] = len &
0xff;
32678 res[i++] = (len
>>> 8) &
0xff;
32679 res[i++] = (len
>>> 16) &
0xff;
32680 res[i++] = (len
>>> 24) &
0xff;
32686 for (var t =
8; t < this.padLength; t++)
32693 },{
"../hash":
57}],
59:[function(require,module,exports){
32694 var hmac = exports;
32696 var hash = require('../hash');
32697 var utils = hash.utils;
32698 var assert = utils.assert;
32700 function Hmac(hash, key, enc) {
32701 if (!(this instanceof Hmac))
32702 return new Hmac(hash, key, enc);
32704 this.blockSize = hash.blockSize /
8;
32705 this.outSize = hash.outSize /
8;
32709 this._init(utils.toArray(key, enc));
32711 module.exports = Hmac;
32713 Hmac.prototype._init = function init(key) {
32714 // Shorten key, if needed
32715 if (key.length
> this.blockSize)
32716 key = new this.Hash().update(key).digest();
32717 assert(key.length <= this.blockSize);
32719 // Add padding to key
32720 for (var i = key.length; i < this.blockSize; i++)
32723 for (var i =
0; i < key.length; i++)
32725 this.inner = new this.Hash().update(key);
32727 //
0x36 ^
0x5c =
0x6a
32728 for (var i =
0; i < key.length; i++)
32730 this.outer = new this.Hash().update(key);
32733 Hmac.prototype.update = function update(msg, enc) {
32734 this.inner.update(msg, enc);
32738 Hmac.prototype.digest = function digest(enc) {
32739 this.outer.update(this.inner.digest());
32740 return this.outer.digest(enc);
32743 },{"../hash":
57}],
60:[function(require,module,exports){
32744 var hash = require('../hash');
32745 var utils = hash.utils;
32747 var rotl32 = utils.rotl32;
32748 var sum32 = utils.sum32;
32749 var sum32_3 = utils.sum32_3;
32750 var sum32_4 = utils.sum32_4;
32751 var BlockHash = hash.common.BlockHash;
32753 function RIPEMD160() {
32754 if (!(this instanceof RIPEMD160))
32755 return new RIPEMD160();
32757 BlockHash.call(this);
32759 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
0x10325476,
0xc3d2e1f0 ];
32760 this.endian = 'little';
32762 utils.inherits(RIPEMD160, BlockHash);
32763 exports.ripemd160 = RIPEMD160;
32765 RIPEMD160.blockSize =
512;
32766 RIPEMD160.outSize =
160;
32767 RIPEMD160.hmacStrength =
192;
32768 RIPEMD160.padLength =
64;
32770 RIPEMD160.prototype._update = function update(msg, start) {
32781 for (var j =
0; j <
80; j++) {
32784 sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),
32794 sum32_4(Ah, f(
79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),
32799 Dh = rotl32(Ch,
10);
32803 T = sum32_3(this.h[
1], C, Dh);
32804 this.h[
1] = sum32_3(this.h[
2], D, Eh);
32805 this.h[
2] = sum32_3(this.h[
3], E, Ah);
32806 this.h[
3] = sum32_3(this.h[
4], A, Bh);
32807 this.h[
4] = sum32_3(this.h[
0], B, Ch);
32811 RIPEMD160.prototype._digest = function digest(enc) {
32813 return utils.toHex32(this.h, 'little');
32815 return utils.split32(this.h, 'little');
32818 function f(j, x, y, z) {
32822 return (x & y) | ((~x) & z);
32824 return (x | (~y)) ^ z;
32826 return (x & z) | (y & (~z));
32828 return x ^ (y | (~z));
32858 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
32859 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
32860 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
32861 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
32862 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
32866 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
32867 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
32868 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
32869 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
32870 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
32874 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
32875 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
32876 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
32877 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
32878 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
32882 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
32883 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
32884 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
32885 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
32886 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
32889 },{"../hash":
57}],
61:[function(require,module,exports){
32890 var hash = require('../hash');
32891 var utils = hash.utils;
32892 var assert = utils.assert;
32894 var rotr32 = utils.rotr32;
32895 var rotl32 = utils.rotl32;
32896 var sum32 = utils.sum32;
32897 var sum32_4 = utils.sum32_4;
32898 var sum32_5 = utils.sum32_5;
32899 var rotr64_hi = utils.rotr64_hi;
32900 var rotr64_lo = utils.rotr64_lo;
32901 var shr64_hi = utils.shr64_hi;
32902 var shr64_lo = utils.shr64_lo;
32903 var sum64 = utils.sum64;
32904 var sum64_hi = utils.sum64_hi;
32905 var sum64_lo = utils.sum64_lo;
32906 var sum64_4_hi = utils.sum64_4_hi;
32907 var sum64_4_lo = utils.sum64_4_lo;
32908 var sum64_5_hi = utils.sum64_5_hi;
32909 var sum64_5_lo = utils.sum64_5_lo;
32910 var BlockHash = hash.common.BlockHash;
32913 0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
32914 0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
32915 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
32916 0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
32917 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
32918 0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
32919 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
32920 0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
32921 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
32922 0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
32923 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
32924 0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
32925 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
32926 0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
32927 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
32928 0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2
32932 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
32933 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
32934 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
32935 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
32936 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
32937 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
32938 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
32939 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
32940 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
32941 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
32942 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
32943 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
32944 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
32945 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
32946 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
32947 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
32948 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
32949 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
32950 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
32951 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
32952 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
32953 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
32954 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
32955 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
32956 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
32957 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
32958 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
32959 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
32960 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
32961 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
32962 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
32963 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
32964 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
32965 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
32966 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
32967 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
32968 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
32969 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
32970 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
32971 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
32975 0x5A827999,
0x6ED9EBA1,
32976 0x8F1BBCDC,
0xCA62C1D6
32979 function SHA256() {
32980 if (!(this instanceof SHA256))
32981 return new SHA256();
32983 BlockHash.call(this);
32984 this.h = [
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
32985 0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19 ];
32987 this.W = new Array(
64);
32989 utils.inherits(SHA256, BlockHash);
32990 exports.sha256 = SHA256;
32992 SHA256.blockSize =
512;
32993 SHA256.outSize =
256;
32994 SHA256.hmacStrength =
192;
32995 SHA256.padLength =
64;
32997 SHA256.prototype._update = function _update(msg, start) {
33000 for (var i =
0; i <
16; i++)
33001 W[i] = msg[start + i];
33002 for (; i < W.length; i++)
33003 W[i] = sum32_4(g1_256(W[i -
2]), W[i -
7], g0_256(W[i -
15]), W[i -
16]);
33014 assert(this.k.length === W.length);
33015 for (var i =
0; i < W.length; i++) {
33016 var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);
33017 var T2 = sum32(s0_256(a), maj32(a, b, c));
33028 this.h[
0] = sum32(this.h[
0], a);
33029 this.h[
1] = sum32(this.h[
1], b);
33030 this.h[
2] = sum32(this.h[
2], c);
33031 this.h[
3] = sum32(this.h[
3], d);
33032 this.h[
4] = sum32(this.h[
4], e);
33033 this.h[
5] = sum32(this.h[
5], f);
33034 this.h[
6] = sum32(this.h[
6], g);
33035 this.h[
7] = sum32(this.h[
7], h);
33038 SHA256.prototype._digest = function digest(enc) {
33040 return utils.toHex32(this.h, 'big');
33042 return utils.split32(this.h, 'big');
33045 function SHA224() {
33046 if (!(this instanceof SHA224))
33047 return new SHA224();
33050 this.h = [
0xc1059ed8,
0x367cd507,
0x3070dd17,
0xf70e5939,
33051 0xffc00b31,
0x68581511,
0x64f98fa7,
0xbefa4fa4 ];
33053 utils.inherits(SHA224, SHA256);
33054 exports.sha224 = SHA224;
33056 SHA224.blockSize =
512;
33057 SHA224.outSize =
224;
33058 SHA224.hmacStrength =
192;
33059 SHA224.padLength =
64;
33061 SHA224.prototype._digest = function digest(enc) {
33062 // Just truncate output
33064 return utils.toHex32(this.h.slice(
0,
7), 'big');
33066 return utils.split32(this.h.slice(
0,
7), 'big');
33069 function SHA512() {
33070 if (!(this instanceof SHA512))
33071 return new SHA512();
33073 BlockHash.call(this);
33074 this.h = [
0x6a09e667,
0xf3bcc908,
33075 0xbb67ae85,
0x84caa73b,
33076 0x3c6ef372,
0xfe94f82b,
33077 0xa54ff53a,
0x5f1d36f1,
33078 0x510e527f,
0xade682d1,
33079 0x9b05688c,
0x2b3e6c1f,
33080 0x1f83d9ab,
0xfb41bd6b,
33081 0x5be0cd19,
0x137e2179 ];
33083 this.W = new Array(
160);
33085 utils.inherits(SHA512, BlockHash);
33086 exports.sha512 = SHA512;
33088 SHA512.blockSize =
1024;
33089 SHA512.outSize =
512;
33090 SHA512.hmacStrength =
192;
33091 SHA512.padLength =
128;
33093 SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {
33096 //
32 x
32bit words
33097 for (var i =
0; i <
32; i++)
33098 W[i] = msg[start + i];
33099 for (; i < W.length; i +=
2) {
33100 var c0_hi = g1_512_hi(W[i -
4], W[i -
3]); // i -
2
33101 var c0_lo = g1_512_lo(W[i -
4], W[i -
3]);
33102 var c1_hi = W[i -
14]; // i -
7
33103 var c1_lo = W[i -
13];
33104 var c2_hi = g0_512_hi(W[i -
30], W[i -
29]); // i -
15
33105 var c2_lo = g0_512_lo(W[i -
30], W[i -
29]);
33106 var c3_hi = W[i -
32]; // i -
16
33107 var c3_lo = W[i -
31];
33109 W[i] = sum64_4_hi(c0_hi, c0_lo,
33113 W[i +
1] = sum64_4_lo(c0_hi, c0_lo,
33120 SHA512.prototype._update = function _update(msg, start) {
33121 this._prepareBlock(msg, start);
33125 var ah = this.h[
0];
33126 var al = this.h[
1];
33127 var bh = this.h[
2];
33128 var bl = this.h[
3];
33129 var ch = this.h[
4];
33130 var cl = this.h[
5];
33131 var dh = this.h[
6];
33132 var dl = this.h[
7];
33133 var eh = this.h[
8];
33134 var el = this.h[
9];
33135 var fh = this.h[
10];
33136 var fl = this.h[
11];
33137 var gh = this.h[
12];
33138 var gl = this.h[
13];
33139 var hh = this.h[
14];
33140 var hl = this.h[
15];
33142 assert(this.k.length === W.length);
33143 for (var i =
0; i < W.length; i +=
2) {
33146 var c1_hi = s1_512_hi(eh, el);
33147 var c1_lo = s1_512_lo(eh, el);
33148 var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);
33149 var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);
33150 var c3_hi = this.k[i];
33151 var c3_lo = this.k[i +
1];
33153 var c4_lo = W[i +
1];
33155 var T1_hi = sum64_5_hi(c0_hi, c0_lo,
33160 var T1_lo = sum64_5_lo(c0_hi, c0_lo,
33166 var c0_hi = s0_512_hi(ah, al);
33167 var c0_lo = s0_512_lo(ah, al);
33168 var c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);
33169 var c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);
33171 var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);
33172 var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);
33183 eh = sum64_hi(dh, dl, T1_hi, T1_lo);
33184 el = sum64_lo(dl, dl, T1_hi, T1_lo);
33195 ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);
33196 al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);
33199 sum64(this.h,
0, ah, al);
33200 sum64(this.h,
2, bh, bl);
33201 sum64(this.h,
4, ch, cl);
33202 sum64(this.h,
6, dh, dl);
33203 sum64(this.h,
8, eh, el);
33204 sum64(this.h,
10, fh, fl);
33205 sum64(this.h,
12, gh, gl);
33206 sum64(this.h,
14, hh, hl);
33209 SHA512.prototype._digest = function digest(enc) {
33211 return utils.toHex32(this.h, 'big');
33213 return utils.split32(this.h, 'big');
33216 function SHA384() {
33217 if (!(this instanceof SHA384))
33218 return new SHA384();
33221 this.h = [
0xcbbb9d5d,
0xc1059ed8,
33222 0x629a292a,
0x367cd507,
33223 0x9159015a,
0x3070dd17,
33224 0x152fecd8,
0xf70e5939,
33225 0x67332667,
0xffc00b31,
33226 0x8eb44a87,
0x68581511,
33227 0xdb0c2e0d,
0x64f98fa7,
33228 0x47b5481d,
0xbefa4fa4 ];
33230 utils.inherits(SHA384, SHA512);
33231 exports.sha384 = SHA384;
33233 SHA384.blockSize =
1024;
33234 SHA384.outSize =
384;
33235 SHA384.hmacStrength =
192;
33236 SHA384.padLength =
128;
33238 SHA384.prototype._digest = function digest(enc) {
33240 return utils.toHex32(this.h.slice(
0,
12), 'big');
33242 return utils.split32(this.h.slice(
0,
12), 'big');
33246 if (!(this instanceof SHA1))
33249 BlockHash.call(this);
33250 this.h = [
0x67452301,
0xefcdab89,
0x98badcfe,
33251 0x10325476,
0xc3d2e1f0 ];
33252 this.W = new Array(
80);
33255 utils.inherits(SHA1, BlockHash);
33256 exports.sha1 = SHA1;
33258 SHA1.blockSize =
512;
33259 SHA1.outSize =
160;
33260 SHA1.hmacStrength =
80;
33261 SHA1.padLength =
64;
33263 SHA1.prototype._update = function _update(msg, start) {
33266 for (var i =
0; i <
16; i++)
33267 W[i] = msg[start + i];
33269 for(; i < W.length; i++)
33270 W[i] = rotl32(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16],
1);
33278 for (var i =
0; i < W.length; i++) {
33279 var s = ~~(i /
20);
33280 var t = sum32_5(rotl32(a,
5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);
33288 this.h[
0] = sum32(this.h[
0], a);
33289 this.h[
1] = sum32(this.h[
1], b);
33290 this.h[
2] = sum32(this.h[
2], c);
33291 this.h[
3] = sum32(this.h[
3], d);
33292 this.h[
4] = sum32(this.h[
4], e);
33295 SHA1.prototype._digest = function digest(enc) {
33297 return utils.toHex32(this.h, 'big');
33299 return utils.split32(this.h, 'big');
33302 function ch32(x, y, z) {
33303 return (x & y) ^ ((~x) & z);
33306 function maj32(x, y, z) {
33307 return (x & y) ^ (x & z) ^ (y & z);
33310 function p32(x, y, z) {
33314 function s0_256(x) {
33315 return rotr32(x,
2) ^ rotr32(x,
13) ^ rotr32(x,
22);
33318 function s1_256(x) {
33319 return rotr32(x,
6) ^ rotr32(x,
11) ^ rotr32(x,
25);
33322 function g0_256(x) {
33323 return rotr32(x,
7) ^ rotr32(x,
18) ^ (x
>>> 3);
33326 function g1_256(x) {
33327 return rotr32(x,
17) ^ rotr32(x,
19) ^ (x
>>> 10);
33330 function ft_1(s, x, y, z) {
33332 return ch32(x, y, z);
33333 if (s ===
1 || s ===
3)
33334 return p32(x, y, z);
33336 return maj32(x, y, z);
33339 function ch64_hi(xh, xl, yh, yl, zh, zl) {
33340 var r = (xh & yh) ^ ((~xh) & zh);
33346 function ch64_lo(xh, xl, yh, yl, zh, zl) {
33347 var r = (xl & yl) ^ ((~xl) & zl);
33353 function maj64_hi(xh, xl, yh, yl, zh, zl) {
33354 var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);
33360 function maj64_lo(xh, xl, yh, yl, zh, zl) {
33361 var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);
33367 function s0_512_hi(xh, xl) {
33368 var c0_hi = rotr64_hi(xh, xl,
28);
33369 var c1_hi = rotr64_hi(xl, xh,
2); //
34
33370 var c2_hi = rotr64_hi(xl, xh,
7); //
39
33372 var r = c0_hi ^ c1_hi ^ c2_hi;
33378 function s0_512_lo(xh, xl) {
33379 var c0_lo = rotr64_lo(xh, xl,
28);
33380 var c1_lo = rotr64_lo(xl, xh,
2); //
34
33381 var c2_lo = rotr64_lo(xl, xh,
7); //
39
33383 var r = c0_lo ^ c1_lo ^ c2_lo;
33389 function s1_512_hi(xh, xl) {
33390 var c0_hi = rotr64_hi(xh, xl,
14);
33391 var c1_hi = rotr64_hi(xh, xl,
18);
33392 var c2_hi = rotr64_hi(xl, xh,
9); //
41
33394 var r = c0_hi ^ c1_hi ^ c2_hi;
33400 function s1_512_lo(xh, xl) {
33401 var c0_lo = rotr64_lo(xh, xl,
14);
33402 var c1_lo = rotr64_lo(xh, xl,
18);
33403 var c2_lo = rotr64_lo(xl, xh,
9); //
41
33405 var r = c0_lo ^ c1_lo ^ c2_lo;
33411 function g0_512_hi(xh, xl) {
33412 var c0_hi = rotr64_hi(xh, xl,
1);
33413 var c1_hi = rotr64_hi(xh, xl,
8);
33414 var c2_hi = shr64_hi(xh, xl,
7);
33416 var r = c0_hi ^ c1_hi ^ c2_hi;
33422 function g0_512_lo(xh, xl) {
33423 var c0_lo = rotr64_lo(xh, xl,
1);
33424 var c1_lo = rotr64_lo(xh, xl,
8);
33425 var c2_lo = shr64_lo(xh, xl,
7);
33427 var r = c0_lo ^ c1_lo ^ c2_lo;
33433 function g1_512_hi(xh, xl) {
33434 var c0_hi = rotr64_hi(xh, xl,
19);
33435 var c1_hi = rotr64_hi(xl, xh,
29); //
61
33436 var c2_hi = shr64_hi(xh, xl,
6);
33438 var r = c0_hi ^ c1_hi ^ c2_hi;
33444 function g1_512_lo(xh, xl) {
33445 var c0_lo = rotr64_lo(xh, xl,
19);
33446 var c1_lo = rotr64_lo(xl, xh,
29); //
61
33447 var c2_lo = shr64_lo(xh, xl,
6);
33449 var r = c0_lo ^ c1_lo ^ c2_lo;
33455 },{
"../hash":
57}],
62:[function(require,module,exports){
33456 var utils = exports;
33457 var inherits = require('inherits');
33459 function toArray(msg, enc) {
33460 if (Array.isArray(msg))
33461 return msg.slice();
33465 if (typeof msg === 'string') {
33467 for (var i =
0; i < msg.length; i++) {
33468 var c = msg.charCodeAt(i);
33476 } else if (enc === 'hex') {
33477 msg = msg.replace(/[^a-z0-
9]+/ig, '');
33478 if (msg.length %
2 !==
0)
33480 for (var i =
0; i < msg.length; i +=
2)
33481 res.push(parseInt(msg[i] + msg[i +
1],
16));
33484 for (var i =
0; i < msg.length; i++)
33485 res[i] = msg[i] |
0;
33489 utils.toArray = toArray;
33491 function toHex(msg) {
33493 for (var i =
0; i < msg.length; i++)
33494 res += zero2(msg[i].toString(
16));
33497 utils.toHex = toHex;
33499 function htonl(w) {
33500 var res = (w
>>> 24) |
33501 ((w
>>> 8) &
0xff00) |
33502 ((w <<
8) &
0xff0000) |
33503 ((w &
0xff) <<
24);
33506 utils.htonl = htonl;
33508 function toHex32(msg, endian) {
33510 for (var i =
0; i < msg.length; i++) {
33512 if (endian === 'little')
33514 res += zero8(w.toString(
16));
33518 utils.toHex32 = toHex32;
33520 function zero2(word) {
33521 if (word.length ===
1)
33526 utils.zero2 = zero2;
33528 function zero8(word) {
33529 if (word.length ===
7)
33531 else if (word.length ===
6)
33532 return '
00' + word;
33533 else if (word.length ===
5)
33534 return '
000' + word;
33535 else if (word.length ===
4)
33536 return '
0000' + word;
33537 else if (word.length ===
3)
33538 return '
00000' + word;
33539 else if (word.length ===
2)
33540 return '
000000' + word;
33541 else if (word.length ===
1)
33542 return '
0000000' + word;
33546 utils.zero8 = zero8;
33548 function join32(msg, start, end, endian) {
33549 var len = end - start;
33550 assert(len %
4 ===
0);
33551 var res = new Array(len /
4);
33552 for (var i =
0, k = start; i < res.length; i++, k +=
4) {
33554 if (endian === 'big')
33555 w = (msg[k] <<
24) | (msg[k +
1] <<
16) | (msg[k +
2] <<
8) | msg[k +
3];
33557 w = (msg[k +
3] <<
24) | (msg[k +
2] <<
16) | (msg[k +
1] <<
8) | msg[k];
33562 utils.join32 = join32;
33564 function split32(msg, endian) {
33565 var res = new Array(msg.length *
4);
33566 for (var i =
0, k =
0; i < msg.length; i++, k +=
4) {
33568 if (endian === 'big') {
33570 res[k +
1] = (m
>>> 16) &
0xff;
33571 res[k +
2] = (m
>>> 8) &
0xff;
33572 res[k +
3] = m &
0xff;
33574 res[k +
3] = m
>>> 24;
33575 res[k +
2] = (m
>>> 16) &
0xff;
33576 res[k +
1] = (m
>>> 8) &
0xff;
33582 utils.split32 = split32;
33584 function rotr32(w, b) {
33585 return (w
>>> b) | (w << (
32 - b));
33587 utils.rotr32 = rotr32;
33589 function rotl32(w, b) {
33590 return (w << b) | (w
>>> (
32 - b));
33592 utils.rotl32 = rotl32;
33594 function sum32(a, b) {
33595 return (a + b)
>>> 0;
33597 utils.sum32 = sum32;
33599 function sum32_3(a, b, c) {
33600 return (a + b + c)
>>> 0;
33602 utils.sum32_3 = sum32_3;
33604 function sum32_4(a, b, c, d) {
33605 return (a + b + c + d)
>>> 0;
33607 utils.sum32_4 = sum32_4;
33609 function sum32_5(a, b, c, d, e) {
33610 return (a + b + c + d + e)
>>> 0;
33612 utils.sum32_5 = sum32_5;
33614 function assert(cond, msg) {
33616 throw new Error(msg || 'Assertion failed');
33618 utils.assert = assert;
33620 utils.inherits = inherits;
33622 function sum64(buf, pos, ah, al) {
33624 var bl = buf[pos +
1];
33626 var lo = (al + bl)
>>> 0;
33627 var hi = (lo < al ?
1 :
0) + ah + bh;
33628 buf[pos] = hi
>>> 0;
33631 exports.sum64 = sum64;
33633 function sum64_hi(ah, al, bh, bl) {
33634 var lo = (al + bl)
>>> 0;
33635 var hi = (lo < al ?
1 :
0) + ah + bh;
33638 exports.sum64_hi = sum64_hi;
33640 function sum64_lo(ah, al, bh, bl) {
33644 exports.sum64_lo = sum64_lo;
33646 function sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {
33649 lo = (lo + bl)
>>> 0;
33650 carry += lo < al ?
1 :
0;
33651 lo = (lo + cl)
>>> 0;
33652 carry += lo < cl ?
1 :
0;
33653 lo = (lo + dl)
>>> 0;
33654 carry += lo < dl ?
1 :
0;
33656 var hi = ah + bh + ch + dh + carry;
33659 exports.sum64_4_hi = sum64_4_hi;
33661 function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {
33662 var lo = al + bl + cl + dl;
33665 exports.sum64_4_lo = sum64_4_lo;
33667 function sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
33670 lo = (lo + bl)
>>> 0;
33671 carry += lo < al ?
1 :
0;
33672 lo = (lo + cl)
>>> 0;
33673 carry += lo < cl ?
1 :
0;
33674 lo = (lo + dl)
>>> 0;
33675 carry += lo < dl ?
1 :
0;
33676 lo = (lo + el)
>>> 0;
33677 carry += lo < el ?
1 :
0;
33679 var hi = ah + bh + ch + dh + eh + carry;
33682 exports.sum64_5_hi = sum64_5_hi;
33684 function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {
33685 var lo = al + bl + cl + dl + el;
33689 exports.sum64_5_lo = sum64_5_lo;
33691 function rotr64_hi(ah, al, num) {
33692 var r = (al << (
32 - num)) | (ah
>>> num);
33695 exports.rotr64_hi = rotr64_hi;
33697 function rotr64_lo(ah, al, num) {
33698 var r = (ah << (
32 - num)) | (al
>>> num);
33701 exports.rotr64_lo = rotr64_lo;
33703 function shr64_hi(ah, al, num) {
33706 exports.shr64_hi = shr64_hi;
33708 function shr64_lo(ah, al, num) {
33709 var r = (ah << (
32 - num)) | (al
>>> num);
33712 exports.shr64_lo = shr64_lo;
33714 },{
"inherits":
63}],
63:[function(require,module,exports){
33715 arguments[
4][
9][
0].apply(exports,arguments)
33716 },{
"dup":
9}],
64:[function(require,module,exports){
33718 * Returns a `Boolean` on whether or not the a `String` starts with '
0x'
33719 * @param {String} str the string input value
33720 * @return {Boolean} a boolean if it is or is not hex prefixed
33721 * @throws if the str input is not a string
33723 module.exports = function isHexPrefixed(str) {
33724 if (typeof str !== 'string') {
33725 throw new Error(
"[is-hex-prefixed] value must be type 'string', is currently type " + (typeof str) +
", while checking isHexPrefixed.");
33728 return str.slice(
0,
2) === '
0x';
33731 },{}],
65:[function(require,module,exports){
33733 module.exports = require('./lib/api')(require('./lib/keccak'))
33735 },{
"./lib/api":
66,
"./lib/keccak":
70}],
66:[function(require,module,exports){
33737 var createKeccak = require('./keccak')
33738 var createShake = require('./shake')
33740 module.exports = function (KeccakState) {
33741 var Keccak = createKeccak(KeccakState)
33742 var Shake = createShake(KeccakState)
33744 return function (algorithm, options) {
33745 var hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm
33747 case 'keccak224': return new Keccak(
1152,
448, null,
224, options)
33748 case 'keccak256': return new Keccak(
1088,
512, null,
256, options)
33749 case 'keccak384': return new Keccak(
832,
768, null,
384, options)
33750 case 'keccak512': return new Keccak(
576,
1024, null,
512, options)
33752 case 'sha3-
224': return new Keccak(
1152,
448,
0x06,
224, options)
33753 case 'sha3-
256': return new Keccak(
1088,
512,
0x06,
256, options)
33754 case 'sha3-
384': return new Keccak(
832,
768,
0x06,
384, options)
33755 case 'sha3-
512': return new Keccak(
576,
1024,
0x06,
512, options)
33757 case 'shake128': return new Shake(
1344,
256,
0x1f, options)
33758 case 'shake256': return new Shake(
1088,
512,
0x1f, options)
33760 default: throw new Error('Invald algorithm: ' + algorithm)
33765 },{
"./keccak":
67,
"./shake":
68}],
67:[function(require,module,exports){
33766 (function (Buffer){
33768 var Transform = require('stream').Transform
33769 var inherits = require('inherits')
33771 module.exports = function (KeccakState) {
33772 function Keccak (rate, capacity, delimitedSuffix, hashBitLength, options) {
33773 Transform.call(this, options)
33776 this._capacity = capacity
33777 this._delimitedSuffix = delimitedSuffix
33778 this._hashBitLength = hashBitLength
33779 this._options = options
33781 this._state = new KeccakState()
33782 this._state.initialize(rate, capacity)
33783 this._finalized = false
33786 inherits(Keccak, Transform)
33788 Keccak.prototype._transform = function (chunk, encoding, callback) {
33791 this.update(chunk, encoding)
33799 Keccak.prototype._flush = function (callback) {
33802 this.push(this.digest())
33810 Keccak.prototype.update = function (data, encoding) {
33811 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
33812 if (this._finalized) throw new Error('Digest already called')
33813 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
33815 this._state.absorb(data)
33820 Keccak.prototype.digest = function (encoding) {
33821 if (this._finalized) throw new Error('Digest already called')
33822 this._finalized = true
33824 if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)
33825 var digest = this._state.squeeze(this._hashBitLength /
8)
33826 if (encoding !== undefined) digest = digest.toString(encoding)
33833 // remove result from memory
33834 Keccak.prototype._resetState = function () {
33835 this._state.initialize(this._rate, this._capacity)
33839 // because sometimes we need hash right now and little later
33840 Keccak.prototype._clone = function () {
33841 var clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)
33842 this._state.copy(clone._state)
33843 clone._finalized = this._finalized
33851 }).call(this,require(
"buffer").Buffer)
33852 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
68:[function(require,module,exports){
33853 (function (Buffer){
33855 var Transform = require('stream').Transform
33856 var inherits = require('inherits')
33858 module.exports = function (KeccakState) {
33859 function Shake (rate, capacity, delimitedSuffix, options) {
33860 Transform.call(this, options)
33863 this._capacity = capacity
33864 this._delimitedSuffix = delimitedSuffix
33865 this._options = options
33867 this._state = new KeccakState()
33868 this._state.initialize(rate, capacity)
33869 this._finalized = false
33872 inherits(Shake, Transform)
33874 Shake.prototype._transform = function (chunk, encoding, callback) {
33877 this.update(chunk, encoding)
33885 Shake.prototype._flush = function () {}
33887 Shake.prototype._read = function (size) {
33888 this.push(this.squeeze(size))
33891 Shake.prototype.update = function (data, encoding) {
33892 if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')
33893 if (this._finalized) throw new Error('Squeeze already called')
33894 if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)
33896 this._state.absorb(data)
33901 Shake.prototype.squeeze = function (dataByteLength, encoding) {
33902 if (!this._finalized) {
33903 this._finalized = true
33904 this._state.absorbLastFewBits(this._delimitedSuffix)
33907 var data = this._state.squeeze(dataByteLength)
33908 if (encoding !== undefined) data = data.toString(encoding)
33913 Shake.prototype._resetState = function () {
33914 this._state.initialize(this._rate, this._capacity)
33918 Shake.prototype._clone = function () {
33919 var clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)
33920 this._state.copy(clone._state)
33921 clone._finalized = this._finalized
33929 }).call(this,require(
"buffer").Buffer)
33930 },{
"buffer":
5,
"inherits":
63,
"stream":
25}],
69:[function(require,module,exports){
33932 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]
33934 exports.p1600 = function (s) {
33935 for (var round =
0; round <
24; ++round) {
33937 var lo0 = s[
0] ^ s[
10] ^ s[
20] ^ s[
30] ^ s[
40]
33938 var hi0 = s[
1] ^ s[
11] ^ s[
21] ^ s[
31] ^ s[
41]
33939 var lo1 = s[
2] ^ s[
12] ^ s[
22] ^ s[
32] ^ s[
42]
33940 var hi1 = s[
3] ^ s[
13] ^ s[
23] ^ s[
33] ^ s[
43]
33941 var lo2 = s[
4] ^ s[
14] ^ s[
24] ^ s[
34] ^ s[
44]
33942 var hi2 = s[
5] ^ s[
15] ^ s[
25] ^ s[
35] ^ s[
45]
33943 var lo3 = s[
6] ^ s[
16] ^ s[
26] ^ s[
36] ^ s[
46]
33944 var hi3 = s[
7] ^ s[
17] ^ s[
27] ^ s[
37] ^ s[
47]
33945 var lo4 = s[
8] ^ s[
18] ^ s[
28] ^ s[
38] ^ s[
48]
33946 var hi4 = s[
9] ^ s[
19] ^ s[
29] ^ s[
39] ^ s[
49]
33948 var lo = lo4 ^ (lo1 <<
1 | hi1
>>> 31)
33949 var hi = hi4 ^ (hi1 <<
1 | lo1
>>> 31)
33950 var t1slo0 = s[
0] ^ lo
33951 var t1shi0 = s[
1] ^ hi
33952 var t1slo5 = s[
10] ^ lo
33953 var t1shi5 = s[
11] ^ hi
33954 var t1slo10 = s[
20] ^ lo
33955 var t1shi10 = s[
21] ^ hi
33956 var t1slo15 = s[
30] ^ lo
33957 var t1shi15 = s[
31] ^ hi
33958 var t1slo20 = s[
40] ^ lo
33959 var t1shi20 = s[
41] ^ hi
33960 lo = lo0 ^ (lo2 <<
1 | hi2
>>> 31)
33961 hi = hi0 ^ (hi2 <<
1 | lo2
>>> 31)
33962 var t1slo1 = s[
2] ^ lo
33963 var t1shi1 = s[
3] ^ hi
33964 var t1slo6 = s[
12] ^ lo
33965 var t1shi6 = s[
13] ^ hi
33966 var t1slo11 = s[
22] ^ lo
33967 var t1shi11 = s[
23] ^ hi
33968 var t1slo16 = s[
32] ^ lo
33969 var t1shi16 = s[
33] ^ hi
33970 var t1slo21 = s[
42] ^ lo
33971 var t1shi21 = s[
43] ^ hi
33972 lo = lo1 ^ (lo3 <<
1 | hi3
>>> 31)
33973 hi = hi1 ^ (hi3 <<
1 | lo3
>>> 31)
33974 var t1slo2 = s[
4] ^ lo
33975 var t1shi2 = s[
5] ^ hi
33976 var t1slo7 = s[
14] ^ lo
33977 var t1shi7 = s[
15] ^ hi
33978 var t1slo12 = s[
24] ^ lo
33979 var t1shi12 = s[
25] ^ hi
33980 var t1slo17 = s[
34] ^ lo
33981 var t1shi17 = s[
35] ^ hi
33982 var t1slo22 = s[
44] ^ lo
33983 var t1shi22 = s[
45] ^ hi
33984 lo = lo2 ^ (lo4 <<
1 | hi4
>>> 31)
33985 hi = hi2 ^ (hi4 <<
1 | lo4
>>> 31)
33986 var t1slo3 = s[
6] ^ lo
33987 var t1shi3 = s[
7] ^ hi
33988 var t1slo8 = s[
16] ^ lo
33989 var t1shi8 = s[
17] ^ hi
33990 var t1slo13 = s[
26] ^ lo
33991 var t1shi13 = s[
27] ^ hi
33992 var t1slo18 = s[
36] ^ lo
33993 var t1shi18 = s[
37] ^ hi
33994 var t1slo23 = s[
46] ^ lo
33995 var t1shi23 = s[
47] ^ hi
33996 lo = lo3 ^ (lo0 <<
1 | hi0
>>> 31)
33997 hi = hi3 ^ (hi0 <<
1 | lo0
>>> 31)
33998 var t1slo4 = s[
8] ^ lo
33999 var t1shi4 = s[
9] ^ hi
34000 var t1slo9 = s[
18] ^ lo
34001 var t1shi9 = s[
19] ^ hi
34002 var t1slo14 = s[
28] ^ lo
34003 var t1shi14 = s[
29] ^ hi
34004 var t1slo19 = s[
38] ^ lo
34005 var t1shi19 = s[
39] ^ hi
34006 var t1slo24 = s[
48] ^ lo
34007 var t1shi24 = s[
49] ^ hi
34010 var t2slo0 = t1slo0
34011 var t2shi0 = t1shi0
34012 var t2slo16 = (t1shi5 <<
4 | t1slo5
>>> 28)
34013 var t2shi16 = (t1slo5 <<
4 | t1shi5
>>> 28)
34014 var t2slo7 = (t1slo10 <<
3 | t1shi10
>>> 29)
34015 var t2shi7 = (t1shi10 <<
3 | t1slo10
>>> 29)
34016 var t2slo23 = (t1shi15 <<
9 | t1slo15
>>> 23)
34017 var t2shi23 = (t1slo15 <<
9 | t1shi15
>>> 23)
34018 var t2slo14 = (t1slo20 <<
18 | t1shi20
>>> 14)
34019 var t2shi14 = (t1shi20 <<
18 | t1slo20
>>> 14)
34020 var t2slo10 = (t1slo1 <<
1 | t1shi1
>>> 31)
34021 var t2shi10 = (t1shi1 <<
1 | t1slo1
>>> 31)
34022 var t2slo1 = (t1shi6 <<
12 | t1slo6
>>> 20)
34023 var t2shi1 = (t1slo6 <<
12 | t1shi6
>>> 20)
34024 var t2slo17 = (t1slo11 <<
10 | t1shi11
>>> 22)
34025 var t2shi17 = (t1shi11 <<
10 | t1slo11
>>> 22)
34026 var t2slo8 = (t1shi16 <<
13 | t1slo16
>>> 19)
34027 var t2shi8 = (t1slo16 <<
13 | t1shi16
>>> 19)
34028 var t2slo24 = (t1slo21 <<
2 | t1shi21
>>> 30)
34029 var t2shi24 = (t1shi21 <<
2 | t1slo21
>>> 30)
34030 var t2slo20 = (t1shi2 <<
30 | t1slo2
>>> 2)
34031 var t2shi20 = (t1slo2 <<
30 | t1shi2
>>> 2)
34032 var t2slo11 = (t1slo7 <<
6 | t1shi7
>>> 26)
34033 var t2shi11 = (t1shi7 <<
6 | t1slo7
>>> 26)
34034 var t2slo2 = (t1shi12 <<
11 | t1slo12
>>> 21)
34035 var t2shi2 = (t1slo12 <<
11 | t1shi12
>>> 21)
34036 var t2slo18 = (t1slo17 <<
15 | t1shi17
>>> 17)
34037 var t2shi18 = (t1shi17 <<
15 | t1slo17
>>> 17)
34038 var t2slo9 = (t1shi22 <<
29 | t1slo22
>>> 3)
34039 var t2shi9 = (t1slo22 <<
29 | t1shi22
>>> 3)
34040 var t2slo5 = (t1slo3 <<
28 | t1shi3
>>> 4)
34041 var t2shi5 = (t1shi3 <<
28 | t1slo3
>>> 4)
34042 var t2slo21 = (t1shi8 <<
23 | t1slo8
>>> 9)
34043 var t2shi21 = (t1slo8 <<
23 | t1shi8
>>> 9)
34044 var t2slo12 = (t1slo13 <<
25 | t1shi13
>>> 7)
34045 var t2shi12 = (t1shi13 <<
25 | t1slo13
>>> 7)
34046 var t2slo3 = (t1slo18 <<
21 | t1shi18
>>> 11)
34047 var t2shi3 = (t1shi18 <<
21 | t1slo18
>>> 11)
34048 var t2slo19 = (t1shi23 <<
24 | t1slo23
>>> 8)
34049 var t2shi19 = (t1slo23 <<
24 | t1shi23
>>> 8)
34050 var t2slo15 = (t1slo4 <<
27 | t1shi4
>>> 5)
34051 var t2shi15 = (t1shi4 <<
27 | t1slo4
>>> 5)
34052 var t2slo6 = (t1slo9 <<
20 | t1shi9
>>> 12)
34053 var t2shi6 = (t1shi9 <<
20 | t1slo9
>>> 12)
34054 var t2slo22 = (t1shi14 <<
7 | t1slo14
>>> 25)
34055 var t2shi22 = (t1slo14 <<
7 | t1shi14
>>> 25)
34056 var t2slo13 = (t1slo19 <<
8 | t1shi19
>>> 24)
34057 var t2shi13 = (t1shi19 <<
8 | t1slo19
>>> 24)
34058 var t2slo4 = (t1slo24 <<
14 | t1shi24
>>> 18)
34059 var t2shi4 = (t1shi24 <<
14 | t1slo24
>>> 18)
34062 s[
0] = t2slo0 ^ (~t2slo1 & t2slo2)
34063 s[
1] = t2shi0 ^ (~t2shi1 & t2shi2)
34064 s[
10] = t2slo5 ^ (~t2slo6 & t2slo7)
34065 s[
11] = t2shi5 ^ (~t2shi6 & t2shi7)
34066 s[
20] = t2slo10 ^ (~t2slo11 & t2slo12)
34067 s[
21] = t2shi10 ^ (~t2shi11 & t2shi12)
34068 s[
30] = t2slo15 ^ (~t2slo16 & t2slo17)
34069 s[
31] = t2shi15 ^ (~t2shi16 & t2shi17)
34070 s[
40] = t2slo20 ^ (~t2slo21 & t2slo22)
34071 s[
41] = t2shi20 ^ (~t2shi21 & t2shi22)
34072 s[
2] = t2slo1 ^ (~t2slo2 & t2slo3)
34073 s[
3] = t2shi1 ^ (~t2shi2 & t2shi3)
34074 s[
12] = t2slo6 ^ (~t2slo7 & t2slo8)
34075 s[
13] = t2shi6 ^ (~t2shi7 & t2shi8)
34076 s[
22] = t2slo11 ^ (~t2slo12 & t2slo13)
34077 s[
23] = t2shi11 ^ (~t2shi12 & t2shi13)
34078 s[
32] = t2slo16 ^ (~t2slo17 & t2slo18)
34079 s[
33] = t2shi16 ^ (~t2shi17 & t2shi18)
34080 s[
42] = t2slo21 ^ (~t2slo22 & t2slo23)
34081 s[
43] = t2shi21 ^ (~t2shi22 & t2shi23)
34082 s[
4] = t2slo2 ^ (~t2slo3 & t2slo4)
34083 s[
5] = t2shi2 ^ (~t2shi3 & t2shi4)
34084 s[
14] = t2slo7 ^ (~t2slo8 & t2slo9)
34085 s[
15] = t2shi7 ^ (~t2shi8 & t2shi9)
34086 s[
24] = t2slo12 ^ (~t2slo13 & t2slo14)
34087 s[
25] = t2shi12 ^ (~t2shi13 & t2shi14)
34088 s[
34] = t2slo17 ^ (~t2slo18 & t2slo19)
34089 s[
35] = t2shi17 ^ (~t2shi18 & t2shi19)
34090 s[
44] = t2slo22 ^ (~t2slo23 & t2slo24)
34091 s[
45] = t2shi22 ^ (~t2shi23 & t2shi24)
34092 s[
6] = t2slo3 ^ (~t2slo4 & t2slo0)
34093 s[
7] = t2shi3 ^ (~t2shi4 & t2shi0)
34094 s[
16] = t2slo8 ^ (~t2slo9 & t2slo5)
34095 s[
17] = t2shi8 ^ (~t2shi9 & t2shi5)
34096 s[
26] = t2slo13 ^ (~t2slo14 & t2slo10)
34097 s[
27] = t2shi13 ^ (~t2shi14 & t2shi10)
34098 s[
36] = t2slo18 ^ (~t2slo19 & t2slo15)
34099 s[
37] = t2shi18 ^ (~t2shi19 & t2shi15)
34100 s[
46] = t2slo23 ^ (~t2slo24 & t2slo20)
34101 s[
47] = t2shi23 ^ (~t2shi24 & t2shi20)
34102 s[
8] = t2slo4 ^ (~t2slo0 & t2slo1)
34103 s[
9] = t2shi4 ^ (~t2shi0 & t2shi1)
34104 s[
18] = t2slo9 ^ (~t2slo5 & t2slo6)
34105 s[
19] = t2shi9 ^ (~t2shi5 & t2shi6)
34106 s[
28] = t2slo14 ^ (~t2slo10 & t2slo11)
34107 s[
29] = t2shi14 ^ (~t2shi10 & t2shi11)
34108 s[
38] = t2slo19 ^ (~t2slo15 & t2slo16)
34109 s[
39] = t2shi19 ^ (~t2shi15 & t2shi16)
34110 s[
48] = t2slo24 ^ (~t2slo20 & t2slo21)
34111 s[
49] = t2shi24 ^ (~t2shi20 & t2shi21)
34114 s[
0] ^= P1600_ROUND_CONSTANTS[round *
2]
34115 s[
1] ^= P1600_ROUND_CONSTANTS[round *
2 +
1]
34119 },{}],
70:[function(require,module,exports){
34120 (function (Buffer){
34122 var keccakState = require('./keccak-state-unroll')
34124 function Keccak () {
34125 // much faster than `new Array(
50)`
34134 this.blockSize = null
34136 this.squeezing = false
34139 Keccak.prototype.initialize = function (rate, capacity) {
34140 for (var i =
0; i <
50; ++i) this.state[i] =
0
34141 this.blockSize = rate /
8
34143 this.squeezing = false
34146 Keccak.prototype.absorb = function (data) {
34147 for (var i =
0; i < data.length; ++i) {
34148 this.state[~~(this.count /
4)] ^= data[i] << (
8 * (this.count %
4))
34150 if (this.count === this.blockSize) {
34151 keccakState.p1600(this.state)
34157 Keccak.prototype.absorbLastFewBits = function (bits) {
34158 this.state[~~(this.count /
4)] ^= bits << (
8 * (this.count %
4))
34159 if ((bits &
0x80) !==
0 && this.count === (this.blockSize -
1)) keccakState.p1600(this.state)
34160 this.state[~~((this.blockSize -
1) /
4)] ^=
0x80 << (
8 * ((this.blockSize -
1) %
4))
34161 keccakState.p1600(this.state)
34163 this.squeezing = true
34166 Keccak.prototype.squeeze = function (length) {
34167 if (!this.squeezing) this.absorbLastFewBits(
0x01)
34169 var output = Buffer.allocUnsafe(length)
34170 for (var i =
0; i < length; ++i) {
34171 output[i] = (this.state[~~(this.count /
4)]
>>> (
8 * (this.count %
4))) &
0xff
34173 if (this.count === this.blockSize) {
34174 keccakState.p1600(this.state)
34182 Keccak.prototype.copy = function (dest) {
34183 for (var i =
0; i <
50; ++i) dest.state[i] = this.state[i]
34184 dest.blockSize = this.blockSize
34185 dest.count = this.count
34186 dest.squeezing = this.squeezing
34189 module.exports = Keccak
34191 }).call(this,require("buffer").Buffer)
34192 },{"./keccak-state-unroll":
69,"buffer":
5}],
71:[function(require,module,exports){
34193 (function (Buffer){
34196 code.google.com/p/crypto-js
34197 (c)
2009-
2013 by Jeff Mott. All rights reserved.
34198 code.google.com/p/crypto-js/wiki/License
34201 (c)
2012 by Cédric Mesnil. All rights reserved.
34203 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
34205 - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
34206 - 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.
34208 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.
34213 0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
34214 7,
4,
13,
1,
10,
6,
15,
3,
12,
0,
9,
5,
2,
14,
11,
8,
34215 3,
10,
14,
4,
9,
15,
8,
1,
2,
7,
0,
6,
13,
11,
5,
12,
34216 1,
9,
11,
10,
0,
8,
12,
4,
13,
3,
7,
15,
14,
5,
6,
2,
34217 4,
0,
5,
9,
7,
12,
2,
10,
14,
1,
3,
8,
11,
6,
15,
13
34221 5,
14,
7,
0,
9,
2,
11,
4,
13,
6,
15,
8,
1,
10,
3,
12,
34222 6,
11,
3,
7,
0,
13,
5,
10,
14,
15,
8,
12,
4,
9,
1,
2,
34223 15,
5,
1,
3,
7,
14,
6,
9,
11,
8,
12,
2,
10,
0,
4,
13,
34224 8,
6,
4,
1,
3,
11,
15,
0,
5,
12,
2,
13,
9,
7,
10,
14,
34225 12,
15,
10,
4,
1,
5,
8,
7,
6,
2,
13,
14,
0,
3,
9,
11
34229 11,
14,
15,
12,
5,
8,
7,
9,
11,
13,
14,
15,
6,
7,
9,
8,
34230 7,
6,
8,
13,
11,
9,
7,
15,
7,
12,
15,
9,
11,
7,
13,
12,
34231 11,
13,
6,
7,
14,
9,
13,
15,
14,
8,
13,
6,
5,
12,
7,
5,
34232 11,
12,
14,
15,
14,
15,
9,
8,
9,
14,
5,
6,
8,
6,
5,
12,
34233 9,
15,
5,
11,
6,
8,
13,
12,
5,
12,
13,
14,
11,
8,
5,
6
34237 8,
9,
9,
11,
13,
15,
15,
5,
7,
7,
8,
11,
14,
14,
12,
6,
34238 9,
13,
15,
7,
12,
8,
9,
11,
7,
7,
12,
7,
6,
15,
13,
11,
34239 9,
7,
15,
11,
8,
6,
6,
14,
12,
13,
5,
14,
13,
13,
7,
5,
34240 15,
5,
8,
11,
14,
14,
6,
14,
6,
9,
12,
9,
12,
5,
15,
8,
34241 8,
5,
12,
9,
12,
5,
14,
6,
8,
13,
6,
5,
15,
13,
11,
11
34244 var hl = [
0x00000000,
0x5A827999,
0x6ED9EBA1,
0x8F1BBCDC,
0xA953FD4E]
34245 var hr = [
0x50A28BE6,
0x5C4DD124,
0x6D703EF3,
0x7A6D76E9,
0x00000000]
34247 function bytesToWords (bytes) {
34249 for (var i =
0, b =
0; i < bytes.length; i++, b +=
8) {
34250 words[b
>>> 5] |= bytes[i] << (
24 - b %
32)
34255 function wordsToBytes (words) {
34257 for (var b =
0; b < words.length *
32; b +=
8) {
34258 bytes.push((words[b
>>> 5]
>>> (
24 - b %
32)) &
0xFF)
34263 function processBlock (H, M, offset) {
34265 for (var i =
0; i <
16; i++) {
34266 var offset_i = offset + i
34267 var M_offset_i = M[offset_i]
34271 (((M_offset_i <<
8) | (M_offset_i
>>> 24)) &
0x00ff00ff) |
34272 (((M_offset_i <<
24) | (M_offset_i
>>> 8)) &
0xff00ff00)
34276 // Working variables
34277 var al, bl, cl, dl, el
34278 var ar, br, cr, dr, er
34288 for (i =
0; i <
80; i +=
1) {
34289 t = (al + M[offset + zl[i]]) |
0
34291 t += f1(bl, cl, dl) + hl[
0]
34292 } else if (i <
32) {
34293 t += f2(bl, cl, dl) + hl[
1]
34294 } else if (i <
48) {
34295 t += f3(bl, cl, dl) + hl[
2]
34296 } else if (i <
64) {
34297 t += f4(bl, cl, dl) + hl[
3]
34298 } else {// if (i
<80) {
34299 t += f5(bl, cl, dl) + hl[
4]
34310 t = (ar + M[offset + zr[i]]) |
0
34312 t += f5(br, cr, dr) + hr[
0]
34313 } else if (i <
32) {
34314 t += f4(br, cr, dr) + hr[
1]
34315 } else if (i <
48) {
34316 t += f3(br, cr, dr) + hr[
2]
34317 } else if (i <
64) {
34318 t += f2(br, cr, dr) + hr[
3]
34319 } else {// if (i
<80) {
34320 t += f1(br, cr, dr) + hr[
4]
34333 // intermediate hash value
34334 t = (H[
1] + cl + dr) |
0
34335 H[
1] = (H[
2] + dl + er) |
0
34336 H[
2] = (H[
3] + el + ar) |
0
34337 H[
3] = (H[
4] + al + br) |
0
34338 H[
4] = (H[
0] + bl + cr) |
0
34342 function f1 (x, y, z) {
34343 return ((x) ^ (y) ^ (z))
34346 function f2 (x, y, z) {
34347 return (((x) & (y)) | ((~x) & (z)))
34350 function f3 (x, y, z) {
34351 return (((x) | (~(y))) ^ (z))
34354 function f4 (x, y, z) {
34355 return (((x) & (z)) | ((y) & (~(z))))
34358 function f5 (x, y, z) {
34359 return ((x) ^ ((y) | (~(z))))
34362 function rotl (x, n) {
34363 return (x << n) | (x
>>> (
32 - n))
34366 function ripemd160 (message) {
34367 var H = [
0x67452301,
0xEFCDAB89,
0x98BADCFE,
0x10325476,
0xC3D2E1F0]
34369 if (typeof message === 'string') {
34370 message = new Buffer(message, 'utf8')
34373 var m = bytesToWords(message)
34375 var nBitsLeft = message.length *
8
34376 var nBitsTotal = message.length *
8
34379 m[nBitsLeft
>>> 5] |=
0x80 << (
24 - nBitsLeft %
32)
34380 m[(((nBitsLeft +
64)
>>> 9) <<
4) +
14] = (
34381 (((nBitsTotal <<
8) | (nBitsTotal
>>> 24)) &
0x00ff00ff) |
34382 (((nBitsTotal <<
24) | (nBitsTotal
>>> 8)) &
0xff00ff00)
34385 for (var i =
0; i < m.length; i +=
16) {
34386 processBlock(H, m, i)
34390 for (i =
0; i <
5; i++) {
34395 H[i] = (((H_i <<
8) | (H_i
>>> 24)) &
0x00ff00ff) |
34396 (((H_i <<
24) | (H_i
>>> 8)) &
0xff00ff00)
34399 var digestbytes = wordsToBytes(H)
34400 return new Buffer(digestbytes)
34403 module.exports = ripemd160
34405 }).call(this,require(
"buffer").Buffer)
34406 },{
"buffer":
5}],
72:[function(require,module,exports){
34407 (function (Buffer){
34408 const assert = require('assert')
34410 * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP
34411 * This function takes in a data, convert it to buffer if not, and a length for recursion
34413 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
34414 * @returns {Buffer} - returns buffer of encoded data
34416 exports.encode = function (input) {
34417 if (input instanceof Array) {
34419 for (var i =
0; i < input.length; i++) {
34420 output.push(exports.encode(input[i]))
34422 var buf = Buffer.concat(output)
34423 return Buffer.concat([encodeLength(buf.length,
192), buf])
34425 input = toBuffer(input)
34426 if (input.length ===
1 && input[
0] <
128) {
34429 return Buffer.concat([encodeLength(input.length,
128), input])
34434 function safeParseInt (v, base) {
34435 if (v.slice(
0,
2) === '
00') {
34436 throw (new Error('invalid RLP: extra zeros'))
34439 return parseInt(v, base)
34442 function encodeLength (len, offset) {
34444 return new Buffer([len + offset])
34446 var hexLength = intToHex(len)
34447 var lLength = hexLength.length /
2
34448 var firstByte = intToHex(offset +
55 + lLength)
34449 return new Buffer(firstByte + hexLength, 'hex')
34454 * RLP Decoding based on: {@link https://github.com/ethereum/wiki/wiki/%
5BEnglish%
5D-RLP|RLP}
34455 * @param {Buffer,String,Integer,Array} data - will be converted to buffer
34456 * @returns {Array} - returns decode Array of Buffers containg the original message
34458 exports.decode = function (input, stream) {
34459 if (!input || input.length ===
0) {
34460 return new Buffer([])
34463 input = toBuffer(input)
34464 var decoded = _decode(input)
34470 assert.equal(decoded.remainder.length,
0, 'invalid remainder')
34471 return decoded.data
34474 exports.getLength = function (input) {
34475 if (!input || input.length ===
0) {
34476 return new Buffer([])
34479 input = toBuffer(input)
34480 var firstByte = input[
0]
34481 if (firstByte <=
0x7f) {
34482 return input.length
34483 } else if (firstByte <=
0xb7) {
34484 return firstByte -
0x7f
34485 } else if (firstByte <=
0xbf) {
34486 return firstByte -
0xb6
34487 } else if (firstByte <=
0xf7) {
34488 // a list between
0-
55 bytes long
34489 return firstByte -
0xbf
34491 // a list over
55 bytes long
34492 var llength = firstByte -
0xf6
34493 var length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
34494 return llength + length
34498 function _decode (input) {
34499 var length, llength, data, innerRemainder, d
34501 var firstByte = input[
0]
34503 if (firstByte <=
0x7f) {
34504 // a single byte whose value is in the [
0x00,
0x7f] range, that byte is its own RLP encoding.
34506 data: input.slice(
0,
1),
34507 remainder: input.slice(
1)
34509 } else if (firstByte <=
0xb7) {
34510 // string is
0-
55 bytes long. A single byte with value
0x80 plus the length of the string followed by the string
34511 // The range of the first byte is [
0x80,
0xb7]
34512 length = firstByte -
0x7f
34514 // set
0x80 null to
0
34515 if (firstByte ===
0x80) {
34516 data = new Buffer([])
34518 data = input.slice(
1, length)
34521 if (length ===
2 && data[
0] <
0x80) {
34522 throw new Error('invalid rlp encoding: byte must be less
0x80')
34527 remainder: input.slice(length)
34529 } else if (firstByte <=
0xbf) {
34530 llength = firstByte -
0xb6
34531 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
34532 data = input.slice(llength, length + llength)
34533 if (data.length < length) {
34534 throw (new Error('invalid RLP'))
34539 remainder: input.slice(length + llength)
34541 } else if (firstByte <=
0xf7) {
34542 // a list between
0-
55 bytes long
34543 length = firstByte -
0xbf
34544 innerRemainder = input.slice(
1, length)
34545 while (innerRemainder.length) {
34546 d = _decode(innerRemainder)
34547 decoded.push(d.data)
34548 innerRemainder = d.remainder
34553 remainder: input.slice(length)
34556 // a list over
55 bytes long
34557 llength = firstByte -
0xf6
34558 length = safeParseInt(input.slice(
1, llength).toString('hex'),
16)
34559 var totalLength = llength + length
34560 if (totalLength
> input.length) {
34561 throw new Error('invalid rlp: total length is larger than the data')
34564 innerRemainder = input.slice(llength, totalLength)
34565 if (innerRemainder.length ===
0) {
34566 throw new Error('invalid rlp, List has a invalid length')
34569 while (innerRemainder.length) {
34570 d = _decode(innerRemainder)
34571 decoded.push(d.data)
34572 innerRemainder = d.remainder
34576 remainder: input.slice(totalLength)
34581 function isHexPrefixed (str) {
34582 return str.slice(
0,
2) === '
0x'
34585 // Removes
0x from a given String
34586 function stripHexPrefix (str) {
34587 if (typeof str !== 'string') {
34590 return isHexPrefixed(str) ? str.slice(
2) : str
34593 function intToHex (i) {
34594 var hex = i.toString(
16)
34595 if (hex.length %
2) {
34602 function padToEven (a) {
34603 if (a.length %
2) a = '
0' + a
34607 function intToBuffer (i) {
34608 var hex = intToHex(i)
34609 return new Buffer(hex, 'hex')
34612 function toBuffer (v) {
34613 if (!Buffer.isBuffer(v)) {
34614 if (typeof v === 'string') {
34615 if (isHexPrefixed(v)) {
34616 v = new Buffer(padToEven(stripHexPrefix(v)), 'hex')
34620 } else if (typeof v === 'number') {
34626 } else if (v === null || v === undefined) {
34628 } else if (v.toArray) {
34629 // converts a BN to a Buffer
34630 v = new Buffer(v.toArray())
34632 throw new Error('invalid type')
34638 }).call(this,require("buffer").Buffer)
34639 },{"assert":
1,"buffer":
5}],
73:[function(require,module,exports){
34641 module.exports = require('./lib')(require('./lib/elliptic'))
34643 },{"./lib":
77,"./lib/elliptic":
76}],
74:[function(require,module,exports){
34644 (function (Buffer){
34646 var toString = Object.prototype.toString
34649 exports.isArray = function (value, message) {
34650 if (!Array.isArray(value)) throw TypeError(message)
34653 exports.isBoolean = function (value, message) {
34654 if (toString.call(value) !== '[object Boolean]') throw TypeError(message)
34657 exports.isBuffer = function (value, message) {
34658 if (!Buffer.isBuffer(value)) throw TypeError(message)
34661 exports.isFunction = function (value, message) {
34662 if (toString.call(value) !== '[object Function]') throw TypeError(message)
34665 exports.isNumber = function (value, message) {
34666 if (toString.call(value) !== '[object Number]') throw TypeError(message)
34669 exports.isObject = function (value, message) {
34670 if (toString.call(value) !== '[object Object]') throw TypeError(message)
34674 exports.isBufferLength = function (buffer, length, message) {
34675 if (buffer.length !== length) throw RangeError(message)
34678 exports.isBufferLength2 = function (buffer, length1, length2, message) {
34679 if (buffer.length !== length1 && buffer.length !== length2) throw RangeError(message)
34682 exports.isLengthGTZero = function (value, message) {
34683 if (value.length ===
0) throw RangeError(message)
34686 exports.isNumberInInterval = function (number, x, y, message) {
34687 if (number <= x || number
>= y) throw RangeError(message)
34690 }).call(this,{"isBuffer":require("../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js")})
34691 },{"../../../../../.nvm/versions/node/v7.5
.0/lib/node_modules/browserify/node_modules/is-buffer/index.js":
10}],
75:[function(require,module,exports){
34692 (function (Buffer){
34694 var bip66 = require('bip66')
34696 var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
34698 0x30,
0x81,
0xd3,
0x02,
0x01,
0x01,
0x04,
0x20,
34700 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34701 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34703 0xa0,
0x81,
0x85,
0x30,
0x81,
0x82,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
34704 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
34705 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
34706 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
34707 0x21,
0x02,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
34708 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
34709 0x17,
0x98,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
34710 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
34711 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x24,
0x03,
0x22,
0x00,
34713 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34714 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34718 var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
34720 0x30,
0x82,
0x01,
0x13,
0x02,
0x01,
0x01,
0x04,
0x20,
34722 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34723 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34725 0xa0,
0x81,
0xa5,
0x30,
0x81,
0xa2,
0x02,
0x01,
0x01,
0x30,
0x2c,
0x06,
0x07,
0x2a,
0x86,
0x48,
34726 0xcE,
0x3d,
0x01,
0x01,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
34727 0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
34728 0xff,
0xff,
0xfE,
0xff,
0xff,
0xfc,
0x2f,
0x30,
0x06,
0x04,
0x01,
0x00,
0x04,
0x01,
0x07,
0x04,
34729 0x41,
0x04,
0x79,
0xbE,
0x66,
0x7E,
0xf9,
0xdc,
0xbb,
0xac,
0x55,
0xa0,
0x62,
0x95,
0xcE,
0x87,
34730 0x0b,
0x07,
0x02,
0x9b,
0xfc,
0xdb,
0x2d,
0xcE,
0x28,
0xd9,
0x59,
0xf2,
0x81,
0x5b,
0x16,
0xf8,
34731 0x17,
0x98,
0x48,
0x3a,
0xda,
0x77,
0x26,
0xa3,
0xc4,
0x65,
0x5d,
0xa4,
0xfb,
0xfc,
0x0E,
0x11,
34732 0x08,
0xa8,
0xfd,
0x17,
0xb4,
0x48,
0xa6,
0x85,
0x54,
0x19,
0x9c,
0x47,
0xd0,
0x8f,
0xfb,
0x10,
34733 0xd4,
0xb8,
0x02,
0x21,
0x00,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
0xff,
34734 0xff,
0xff,
0xff,
0xff,
0xfE,
0xba,
0xaE,
0xdc,
0xE6,
0xaf,
0x48,
0xa0,
0x3b,
0xbf,
0xd2,
0x5E,
34735 0x8c,
0xd0,
0x36,
0x41,
0x41,
0x02,
0x01,
0x01,
0xa1,
0x44,
0x03,
0x42,
0x00,
34737 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34738 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34739 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34740 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34744 var ZERO_BUFFER_32 = new Buffer([
34745 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
34746 0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00
34749 exports.privateKeyExport = function (privateKey, publicKey, compressed) {
34750 var result = new Buffer(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
34751 privateKey.copy(result, compressed ?
8 :
9)
34752 publicKey.copy(result, compressed ?
181 :
214)
34756 exports.privateKeyImport = function (privateKey) {
34757 var length = privateKey.length
34761 if (length < index +
1 || privateKey[index] !==
0x30) return
34764 // sequence length constructor
34765 if (length < index +
1 || !(privateKey[index] &
0x80)) return
34767 var lenb = privateKey[index] &
0x7f
34769 if (lenb <
1 || lenb
> 2) return
34770 if (length < index + lenb) return
34773 var len = privateKey[index + lenb -
1] | (lenb
> 1 ? privateKey[index + lenb -
2] <<
8 :
0)
34775 if (length < index + len) return
34777 // sequence element
0: version number (=
1)
34778 if (length < index +
3 ||
34779 privateKey[index] !==
0x02 ||
34780 privateKey[index +
1] !==
0x01 ||
34781 privateKey[index +
2] !==
0x01) {
34786 // sequence element
1: octet string, up to
32 bytes
34787 if (length < index +
2 ||
34788 privateKey[index] !==
0x04 ||
34789 privateKey[index +
1]
> 0x20 ||
34790 length < index +
2 + privateKey[index +
1]) {
34794 return privateKey.slice(index +
2, index +
2 + privateKey[index +
1])
34797 exports.signatureExport = function (sigObj) {
34798 var r = Buffer.concat([new Buffer([
0]), sigObj.r])
34799 for (var lenR =
33, posR =
0; lenR
> 1 && r[posR] ===
0x00 && !(r[posR +
1] &
0x80); --lenR, ++posR);
34801 var s = Buffer.concat([new Buffer([
0]), sigObj.s])
34802 for (var lenS =
33, posS =
0; lenS
> 1 && s[posS] ===
0x00 && !(s[posS +
1] &
0x80); --lenS, ++posS);
34804 return bip66.encode(r.slice(posR), s.slice(posS))
34807 exports.signatureImport = function (sig) {
34808 var r = new Buffer(ZERO_BUFFER_32)
34809 var s = new Buffer(ZERO_BUFFER_32)
34812 var sigObj = bip66.decode(sig)
34813 if (sigObj.r.length ===
33 && sigObj.r[
0] ===
0x00) sigObj.r = sigObj.r.slice(
1)
34814 if (sigObj.r.length
> 32) throw new Error('R length is too long')
34815 if (sigObj.s.length ===
33 && sigObj.s[
0] ===
0x00) sigObj.s = sigObj.s.slice(
1)
34816 if (sigObj.s.length
> 32) throw new Error('S length is too long')
34821 sigObj.r.copy(r,
32 - sigObj.r.length)
34822 sigObj.s.copy(s,
32 - sigObj.s.length)
34824 return { r: r, s: s }
34827 exports.signatureImportLax = function (sig) {
34828 var r = new Buffer(ZERO_BUFFER_32)
34829 var s = new Buffer(ZERO_BUFFER_32)
34831 var length = sig.length
34834 // sequence tag byte
34835 if (sig[index++] !==
0x30) return
34837 // sequence length byte
34838 var lenbyte = sig[index++]
34839 if (lenbyte &
0x80) {
34840 index += lenbyte -
0x80
34841 if (index
> length) return
34844 // sequence tag byte for r
34845 if (sig[index++] !==
0x02) return
34848 var rlen = sig[index++]
34850 lenbyte = rlen -
0x80
34851 if (index + lenbyte
> length) return
34852 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
34853 for (rlen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) rlen = (rlen <<
8) + sig[index]
34855 if (rlen
> length - index) return
34859 // sequence tag byte for s
34860 if (sig[index++] !==
0x02) return
34863 var slen = sig[index++]
34865 lenbyte = slen -
0x80
34866 if (index + lenbyte
> length) return
34867 for (; lenbyte
> 0 && sig[index] ===
0x00; index +=
1, lenbyte -=
1);
34868 for (slen =
0; lenbyte
> 0; index +=
1, lenbyte -=
1) slen = (slen <<
8) + sig[index]
34870 if (slen
> length - index) return
34874 // ignore leading zeros in r
34875 for (; rlen
> 0 && sig[rindex] ===
0x00; rlen -=
1, rindex +=
1);
34877 if (rlen
> 32) return
34878 var rvalue = sig.slice(rindex, rindex + rlen)
34879 rvalue.copy(r,
32 - rvalue.length)
34881 // ignore leading zeros in s
34882 for (; slen
> 0 && sig[sindex] ===
0x00; slen -=
1, sindex +=
1);
34884 if (slen
> 32) return
34885 var svalue = sig.slice(sindex, sindex + slen)
34886 svalue.copy(s,
32 - svalue.length)
34888 return { r: r, s: s }
34891 }).call(this,require(
"buffer").Buffer)
34892 },{
"bip66":
32,
"buffer":
5}],
76:[function(require,module,exports){
34893 (function (Buffer){
34895 var createHash = require('create-hash')
34896 var BN = require('bn.js')
34897 var EC = require('elliptic').ec
34899 var messages = require('../messages.json')
34901 var ec = new EC('secp256k1')
34902 var ecparams = ec.curve
34904 function loadCompressedPublicKey (first, xBuffer) {
34905 var x = new BN(xBuffer)
34908 if (x.cmp(ecparams.p)
>=
0) return null
34909 x = x.toRed(ecparams.red)
34911 // compute corresponding Y
34912 var y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()
34913 if ((first ===
0x03) !== y.isOdd()) y = y.redNeg()
34915 return ec.keyPair({ pub: { x: x, y: y } })
34918 function loadUncompressedPublicKey (first, xBuffer, yBuffer) {
34919 var x = new BN(xBuffer)
34920 var y = new BN(yBuffer)
34923 if (x.cmp(ecparams.p)
>=
0 || y.cmp(ecparams.p)
>=
0) return null
34925 x = x.toRed(ecparams.red)
34926 y = y.toRed(ecparams.red)
34929 if ((first ===
0x06 || first ===
0x07) && y.isOdd() !== (first ===
0x07)) return null
34932 var x3 = x.redSqr().redIMul(x)
34933 if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null
34935 return ec.keyPair({ pub: { x: x, y: y } })
34938 function loadPublicKey (publicKey) {
34939 var first = publicKey[
0]
34943 if (publicKey.length !==
33) return null
34944 return loadCompressedPublicKey(first, publicKey.slice(
1,
33))
34948 if (publicKey.length !==
65) return null
34949 return loadUncompressedPublicKey(first, publicKey.slice(
1,
33), publicKey.slice(
33,
65))
34955 exports.privateKeyVerify = function (privateKey) {
34956 var bn = new BN(privateKey)
34957 return bn.cmp(ecparams.n) <
0 && !bn.isZero()
34960 exports.privateKeyExport = function (privateKey, compressed) {
34961 var d = new BN(privateKey)
34962 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PRIVATE_KEY_EXPORT_DER_FAIL)
34964 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
34967 exports.privateKeyTweakAdd = function (privateKey, tweak) {
34968 var bn = new BN(tweak)
34969 if (bn.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
34971 bn.iadd(new BN(privateKey))
34972 if (bn.cmp(ecparams.n)
>=
0) bn.isub(ecparams.n)
34973 if (bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_ADD_FAIL)
34975 return bn.toArrayLike(Buffer, 'be',
32)
34978 exports.privateKeyTweakMul = function (privateKey, tweak) {
34979 var bn = new BN(tweak)
34980 if (bn.cmp(ecparams.n)
>=
0 || bn.isZero()) throw new Error(messages.EC_PRIVATE_KEY_TWEAK_MUL_FAIL)
34982 bn.imul(new BN(privateKey))
34983 if (bn.cmp(ecparams.n)) bn = bn.umod(ecparams.n)
34985 return bn.toArrayLike(Buffer, 'be',
32)
34988 exports.publicKeyCreate = function (privateKey, compressed) {
34989 var d = new BN(privateKey)
34990 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.EC_PUBLIC_KEY_CREATE_FAIL)
34992 return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
34995 exports.publicKeyConvert = function (publicKey, compressed) {
34996 var pair = loadPublicKey(publicKey)
34997 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
34999 return new Buffer(pair.getPublic(compressed, true))
35002 exports.publicKeyVerify = function (publicKey) {
35003 return loadPublicKey(publicKey) !== null
35006 exports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {
35007 var pair = loadPublicKey(publicKey)
35008 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35010 tweak = new BN(tweak)
35011 if (tweak.cmp(ecparams.n)
>=
0) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_ADD_FAIL)
35013 return new Buffer(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
35016 exports.publicKeyTweakMul = function (publicKey, tweak, compressed) {
35017 var pair = loadPublicKey(publicKey)
35018 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35020 tweak = new BN(tweak)
35021 if (tweak.cmp(ecparams.n)
>=
0 || tweak.isZero()) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_MUL_FAIL)
35023 return new Buffer(pair.pub.mul(tweak).encode(true, compressed))
35026 exports.publicKeyCombine = function (publicKeys, compressed) {
35027 var pairs = new Array(publicKeys.length)
35028 for (var i =
0; i < publicKeys.length; ++i) {
35029 pairs[i] = loadPublicKey(publicKeys[i])
35030 if (pairs[i] === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35033 var point = pairs[
0].pub
35034 for (var j =
1; j < pairs.length; ++j) point = point.add(pairs[j].pub)
35035 if (point.isInfinity()) throw new Error(messages.EC_PUBLIC_KEY_COMBINE_FAIL)
35037 return new Buffer(point.encode(true, compressed))
35040 exports.signatureNormalize = function (signature) {
35041 var r = new BN(signature.slice(
0,
32))
35042 var s = new BN(signature.slice(
32,
64))
35043 if (r.cmp(ecparams.n)
>=
0 || s.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
35045 var result = new Buffer(signature)
35046 if (s.cmp(ec.nh) ===
1) ecparams.n.sub(s).toArrayLike(Buffer, 'be',
32).copy(result,
32)
35051 exports.signatureExport = function (signature) {
35052 var r = signature.slice(
0,
32)
35053 var s = signature.slice(
32,
64)
35054 if (new BN(r).cmp(ecparams.n)
>=
0 || new BN(s).cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
35056 return { r: r, s: s }
35059 exports.signatureImport = function (sigObj) {
35060 var r = new BN(sigObj.r)
35061 if (r.cmp(ecparams.n)
>=
0) r = new BN(
0)
35063 var s = new BN(sigObj.s)
35064 if (s.cmp(ecparams.n)
>=
0) s = new BN(
0)
35066 return Buffer.concat([
35067 r.toArrayLike(Buffer, 'be',
32),
35068 s.toArrayLike(Buffer, 'be',
32)
35072 exports.sign = function (message, privateKey, noncefn, data) {
35073 if (typeof noncefn === 'function') {
35074 var getNonce = noncefn
35075 noncefn = function (counter) {
35076 var nonce = getNonce(message, privateKey, null, data, counter)
35077 if (!Buffer.isBuffer(nonce) || nonce.length !==
32) throw new Error(messages.ECDSA_SIGN_FAIL)
35079 return new BN(nonce)
35083 var d = new BN(privateKey)
35084 if (d.cmp(ecparams.n)
>=
0 || d.isZero()) throw new Error(messages.ECDSA_SIGN_FAIL)
35086 var result = ec.sign(message, privateKey, { canonical: true, k: noncefn, pers: data })
35088 signature: Buffer.concat([
35089 result.r.toArrayLike(Buffer, 'be',
32),
35090 result.s.toArrayLike(Buffer, 'be',
32)
35092 recovery: result.recoveryParam
35096 exports.verify = function (message, signature, publicKey) {
35097 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
35099 var sigr = new BN(sigObj.r)
35100 var sigs = new BN(sigObj.s)
35101 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
35102 if (sigs.cmp(ec.nh) ===
1 || sigr.isZero() || sigs.isZero()) return false
35104 var pair = loadPublicKey(publicKey)
35105 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35107 return ec.verify(message, sigObj, {x: pair.pub.x, y: pair.pub.y})
35110 exports.recover = function (message, signature, recovery, compressed) {
35111 var sigObj = {r: signature.slice(
0,
32), s: signature.slice(
32,
64)}
35113 var sigr = new BN(sigObj.r)
35114 var sigs = new BN(sigObj.s)
35115 if (sigr.cmp(ecparams.n)
>=
0 || sigs.cmp(ecparams.n)
>=
0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
35118 if (sigr.isZero() || sigs.isZero()) throw new Error()
35120 var point = ec.recoverPubKey(message, sigObj, recovery)
35121 return new Buffer(point.encode(true, compressed))
35123 throw new Error(messages.ECDSA_RECOVER_FAIL)
35127 exports.ecdh = function (publicKey, privateKey) {
35128 var shared = exports.ecdhUnsafe(publicKey, privateKey, true)
35129 return createHash('sha256').update(shared).digest()
35132 exports.ecdhUnsafe = function (publicKey, privateKey, compressed) {
35133 var pair = loadPublicKey(publicKey)
35134 if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
35136 var scalar = new BN(privateKey)
35137 if (scalar.cmp(ecparams.n)
>=
0 || scalar.isZero()) throw new Error(messages.ECDH_FAIL)
35139 return new Buffer(pair.pub.mul(scalar).encode(true, compressed))
35142 }).call(this,require("buffer").Buffer)
35143 },{"../messages.json":
78,"bn.js":
33,"buffer":
5,"create-hash":
36,"elliptic":
39}],
77:[function(require,module,exports){
35145 var assert = require('./assert')
35146 var der = require('./der')
35147 var messages = require('./messages.json')
35149 function initCompressedValue (value, defaultValue) {
35150 if (value === undefined) return defaultValue
35152 assert.isBoolean(value, messages.COMPRESSED_TYPE_INVALID)
35156 module.exports = function (secp256k1) {
35158 privateKeyVerify: function (privateKey) {
35159 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35160 return privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)
35163 privateKeyExport: function (privateKey, compressed) {
35164 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35165 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35167 compressed = initCompressedValue(compressed, true)
35168 var publicKey = secp256k1.privateKeyExport(privateKey, compressed)
35170 return der.privateKeyExport(privateKey, publicKey, compressed)
35173 privateKeyImport: function (privateKey) {
35174 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35176 privateKey = der.privateKeyImport(privateKey)
35177 if (privateKey && privateKey.length ===
32 && secp256k1.privateKeyVerify(privateKey)) return privateKey
35179 throw new Error(messages.EC_PRIVATE_KEY_IMPORT_DER_FAIL)
35182 privateKeyTweakAdd: function (privateKey, tweak) {
35183 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35184 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35186 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
35187 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
35189 return secp256k1.privateKeyTweakAdd(privateKey, tweak)
35192 privateKeyTweakMul: function (privateKey, tweak) {
35193 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35194 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35196 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
35197 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
35199 return secp256k1.privateKeyTweakMul(privateKey, tweak)
35202 publicKeyCreate: function (privateKey, compressed) {
35203 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35204 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35206 compressed = initCompressedValue(compressed, true)
35208 return secp256k1.publicKeyCreate(privateKey, compressed)
35211 publicKeyConvert: function (publicKey, compressed) {
35212 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35213 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35215 compressed = initCompressedValue(compressed, true)
35217 return secp256k1.publicKeyConvert(publicKey, compressed)
35220 publicKeyVerify: function (publicKey) {
35221 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35222 return secp256k1.publicKeyVerify(publicKey)
35225 publicKeyTweakAdd: function (publicKey, tweak, compressed) {
35226 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35227 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35229 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
35230 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
35232 compressed = initCompressedValue(compressed, true)
35234 return secp256k1.publicKeyTweakAdd(publicKey, tweak, compressed)
35237 publicKeyTweakMul: function (publicKey, tweak, compressed) {
35238 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35239 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35241 assert.isBuffer(tweak, messages.TWEAK_TYPE_INVALID)
35242 assert.isBufferLength(tweak,
32, messages.TWEAK_LENGTH_INVALID)
35244 compressed = initCompressedValue(compressed, true)
35246 return secp256k1.publicKeyTweakMul(publicKey, tweak, compressed)
35249 publicKeyCombine: function (publicKeys, compressed) {
35250 assert.isArray(publicKeys, messages.EC_PUBLIC_KEYS_TYPE_INVALID)
35251 assert.isLengthGTZero(publicKeys, messages.EC_PUBLIC_KEYS_LENGTH_INVALID)
35252 for (var i =
0; i < publicKeys.length; ++i) {
35253 assert.isBuffer(publicKeys[i], messages.EC_PUBLIC_KEY_TYPE_INVALID)
35254 assert.isBufferLength2(publicKeys[i],
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35257 compressed = initCompressedValue(compressed, true)
35259 return secp256k1.publicKeyCombine(publicKeys, compressed)
35262 signatureNormalize: function (signature) {
35263 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35264 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35266 return secp256k1.signatureNormalize(signature)
35269 signatureExport: function (signature) {
35270 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35271 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35273 var sigObj = secp256k1.signatureExport(signature)
35274 return der.signatureExport(sigObj)
35277 signatureImport: function (sig) {
35278 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35279 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35281 var sigObj = der.signatureImport(sig)
35282 if (sigObj) return secp256k1.signatureImport(sigObj)
35284 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
35287 signatureImportLax: function (sig) {
35288 assert.isBuffer(sig, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35289 assert.isLengthGTZero(sig, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35291 var sigObj = der.signatureImportLax(sig)
35292 if (sigObj) return secp256k1.signatureImport(sigObj)
35294 throw new Error(messages.ECDSA_SIGNATURE_PARSE_DER_FAIL)
35297 sign: function (message, privateKey, options) {
35298 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
35299 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
35301 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35302 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35306 if (options !== undefined) {
35307 assert.isObject(options, messages.OPTIONS_TYPE_INVALID)
35309 if (options.data !== undefined) {
35310 assert.isBuffer(options.data, messages.OPTIONS_DATA_TYPE_INVALID)
35311 assert.isBufferLength(options.data,
32, messages.OPTIONS_DATA_LENGTH_INVALID)
35312 data = options.data
35315 if (options.noncefn !== undefined) {
35316 assert.isFunction(options.noncefn, messages.OPTIONS_NONCEFN_TYPE_INVALID)
35317 noncefn = options.noncefn
35321 return secp256k1.sign(message, privateKey, noncefn, data)
35324 verify: function (message, signature, publicKey) {
35325 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
35326 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
35328 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35329 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35331 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35332 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35334 return secp256k1.verify(message, signature, publicKey)
35337 recover: function (message, signature, recovery, compressed) {
35338 assert.isBuffer(message, messages.MSG32_TYPE_INVALID)
35339 assert.isBufferLength(message,
32, messages.MSG32_LENGTH_INVALID)
35341 assert.isBuffer(signature, messages.ECDSA_SIGNATURE_TYPE_INVALID)
35342 assert.isBufferLength(signature,
64, messages.ECDSA_SIGNATURE_LENGTH_INVALID)
35344 assert.isNumber(recovery, messages.RECOVERY_ID_TYPE_INVALID)
35345 assert.isNumberInInterval(recovery, -
1,
4, messages.RECOVERY_ID_VALUE_INVALID)
35347 compressed = initCompressedValue(compressed, true)
35349 return secp256k1.recover(message, signature, recovery, compressed)
35352 ecdh: function (publicKey, privateKey) {
35353 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35354 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35356 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35357 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35359 return secp256k1.ecdh(publicKey, privateKey)
35362 ecdhUnsafe: function (publicKey, privateKey, compressed) {
35363 assert.isBuffer(publicKey, messages.EC_PUBLIC_KEY_TYPE_INVALID)
35364 assert.isBufferLength2(publicKey,
33,
65, messages.EC_PUBLIC_KEY_LENGTH_INVALID)
35366 assert.isBuffer(privateKey, messages.EC_PRIVATE_KEY_TYPE_INVALID)
35367 assert.isBufferLength(privateKey,
32, messages.EC_PRIVATE_KEY_LENGTH_INVALID)
35369 compressed = initCompressedValue(compressed, true)
35371 return secp256k1.ecdhUnsafe(publicKey, privateKey, compressed)
35376 },{"./assert":
74,"./der":
75,"./messages.json":
78}],
78:[function(require,module,exports){
35378 "COMPRESSED_TYPE_INVALID": "compressed should be a boolean",
35379 "EC_PRIVATE_KEY_TYPE_INVALID": "private key should be a Buffer",
35380 "EC_PRIVATE_KEY_LENGTH_INVALID": "private key length is invalid",
35381 "EC_PRIVATE_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting private key is invalid",
35382 "EC_PRIVATE_KEY_TWEAK_MUL_FAIL": "tweak out of range",
35383 "EC_PRIVATE_KEY_EXPORT_DER_FAIL": "couldn't export to DER format",
35384 "EC_PRIVATE_KEY_IMPORT_DER_FAIL": "couldn't import from DER format",
35385 "EC_PUBLIC_KEYS_TYPE_INVALID": "public keys should be an Array",
35386 "EC_PUBLIC_KEYS_LENGTH_INVALID": "public keys Array should have at least
1 element",
35387 "EC_PUBLIC_KEY_TYPE_INVALID": "public key should be a Buffer",
35388 "EC_PUBLIC_KEY_LENGTH_INVALID": "public key length is invalid",
35389 "EC_PUBLIC_KEY_PARSE_FAIL": "the public key could not be parsed or is invalid",
35390 "EC_PUBLIC_KEY_CREATE_FAIL": "private was invalid, try again",
35391 "EC_PUBLIC_KEY_TWEAK_ADD_FAIL": "tweak out of range or resulting public key is invalid",
35392 "EC_PUBLIC_KEY_TWEAK_MUL_FAIL": "tweak out of range",
35393 "EC_PUBLIC_KEY_COMBINE_FAIL": "the sum of the public keys is not valid",
35394 "ECDH_FAIL": "scalar was invalid (zero or overflow)",
35395 "ECDSA_SIGNATURE_TYPE_INVALID": "signature should be a Buffer",
35396 "ECDSA_SIGNATURE_LENGTH_INVALID": "signature length is invalid",
35397 "ECDSA_SIGNATURE_PARSE_FAIL": "couldn't parse signature",
35398 "ECDSA_SIGNATURE_PARSE_DER_FAIL": "couldn't parse DER signature",
35399 "ECDSA_SIGNATURE_SERIALIZE_DER_FAIL": "couldn't serialize signature to DER format",
35400 "ECDSA_SIGN_FAIL": "nonce generation function failed or private key is invalid",
35401 "ECDSA_RECOVER_FAIL": "couldn't recover public key from signature",
35402 "MSG32_TYPE_INVALID": "message should be a Buffer",
35403 "MSG32_LENGTH_INVALID": "message length is invalid",
35404 "OPTIONS_TYPE_INVALID": "options should be an Object",
35405 "OPTIONS_DATA_TYPE_INVALID": "options.data should be a Buffer",
35406 "OPTIONS_DATA_LENGTH_INVALID": "options.data length is invalid",
35407 "OPTIONS_NONCEFN_TYPE_INVALID": "options.noncefn should be a Function",
35408 "RECOVERY_ID_TYPE_INVALID": "recovery should be a Number",
35409 "RECOVERY_ID_VALUE_INVALID": "recovery should have value between -
1 and
4",
35410 "TWEAK_TYPE_INVALID": "tweak should be a Buffer",
35411 "TWEAK_LENGTH_INVALID": "tweak length is invalid"
35414 },{}],
79:[function(require,module,exports){
35415 (function (Buffer){
35416 // prototype class for hash functions
35417 function Hash (blockSize, finalSize) {
35418 this._block = new Buffer(blockSize)
35419 this._finalSize = finalSize
35420 this._blockSize = blockSize
35425 Hash.prototype.update = function (data, enc) {
35426 if (typeof data === 'string') {
35427 enc = enc || 'utf8'
35428 data = new Buffer(data, enc)
35431 var l = this._len += data.length
35432 var s = this._s ||
0
35434 var buffer = this._block
35437 var t = Math.min(data.length, f + this._blockSize - (s % this._blockSize))
35440 for (var i =
0; i < ch; i++) {
35441 buffer[(s % this._blockSize) + i] = data[i + f]
35447 if ((s % this._blockSize) ===
0) {
35448 this._update(buffer)
35456 Hash.prototype.digest = function (enc) {
35457 // Suppose the length of the message M, in bits, is l
35458 var l = this._len *
8
35460 // Append the bit
1 to the end of the message
35461 this._block[this._len % this._blockSize] =
0x80
35463 // and then k zero bits, where k is the smallest non-negative solution to the equation (l +
1 + k) === finalSize mod blockSize
35464 this._block.fill(
0, this._len % this._blockSize +
1)
35466 if (l % (this._blockSize *
8)
>= this._finalSize *
8) {
35467 this._update(this._block)
35468 this._block.fill(
0)
35471 // to this append the block which is equal to the number l written in binary
35472 // TODO: handle case where l is
> Math.pow(
2,
29)
35473 this._block.writeInt32BE(l, this._blockSize -
4)
35475 var hash = this._update(this._block) || this._hash()
35477 return enc ? hash.toString(enc) : hash
35480 Hash.prototype._update = function () {
35481 throw new Error('_update must be implemented by subclass')
35484 module.exports = Hash
35486 }).call(this,require("buffer").Buffer)
35487 },{"buffer":
5}],
80:[function(require,module,exports){
35488 var exports = module.exports = function SHA (algorithm) {
35489 algorithm = algorithm.toLowerCase()
35491 var Algorithm = exports[algorithm]
35492 if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')
35494 return new Algorithm()
35497 exports.sha = require('./sha')
35498 exports.sha1 = require('./sha1')
35499 exports.sha224 = require('./sha224')
35500 exports.sha256 = require('./sha256')
35501 exports.sha384 = require('./sha384')
35502 exports.sha512 = require('./sha512')
35504 },{"./sha":
81,"./sha1":
82,"./sha224":
83,"./sha256":
84,"./sha384":
85,"./sha512":
86}],
81:[function(require,module,exports){
35505 (function (Buffer){
35507 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
0, as defined
35508 * in FIPS PUB
180-
1
35509 * This source code is derived from sha1.js of the same repository.
35510 * The difference between SHA-
0 and SHA-
1 is just a bitwise rotate left
35511 * operation was added.
35514 var inherits = require('inherits')
35515 var Hash = require('./hash')
35518 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
35521 var W = new Array(
80)
35527 Hash.call(this,
64,
56)
35530 inherits(Sha, Hash)
35532 Sha.prototype.init = function () {
35533 this._a =
0x67452301
35534 this._b =
0xefcdab89
35535 this._c =
0x98badcfe
35536 this._d =
0x10325476
35537 this._e =
0xc3d2e1f0
35542 function rotl5 (num) {
35543 return (num <<
5) | (num
>>> 27)
35546 function rotl30 (num) {
35547 return (num <<
30) | (num
>>> 2)
35550 function ft (s, b, c, d) {
35551 if (s ===
0) return (b & c) | ((~b) & d)
35552 if (s ===
2) return (b & c) | (b & d) | (c & d)
35556 Sha.prototype._update = function (M) {
35559 var a = this._a |
0
35560 var b = this._b |
0
35561 var c = this._c |
0
35562 var d = this._d |
0
35563 var e = this._e |
0
35565 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
35566 for (; i <
80; ++i) W[i] = W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16]
35568 for (var j =
0; j <
80; ++j) {
35570 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
35579 this._a = (a + this._a) |
0
35580 this._b = (b + this._b) |
0
35581 this._c = (c + this._c) |
0
35582 this._d = (d + this._d) |
0
35583 this._e = (e + this._e) |
0
35586 Sha.prototype._hash = function () {
35587 var H = new Buffer(
20)
35589 H.writeInt32BE(this._a |
0,
0)
35590 H.writeInt32BE(this._b |
0,
4)
35591 H.writeInt32BE(this._c |
0,
8)
35592 H.writeInt32BE(this._d |
0,
12)
35593 H.writeInt32BE(this._e |
0,
16)
35598 module.exports = Sha
35600 }).call(this,require(
"buffer").Buffer)
35601 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
82:[function(require,module,exports){
35602 (function (Buffer){
35604 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
1, as defined
35605 * in FIPS PUB
180-
1
35606 * Version
2.1a Copyright Paul Johnston
2000 -
2002.
35607 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
35608 * Distributed under the BSD License
35609 * See http://pajhome.org.uk/crypt/md5 for details.
35612 var inherits = require('inherits')
35613 var Hash = require('./hash')
35616 0x5a827999,
0x6ed9eba1,
0x8f1bbcdc |
0,
0xca62c1d6 |
0
35619 var W = new Array(
80)
35625 Hash.call(this,
64,
56)
35628 inherits(Sha1, Hash)
35630 Sha1.prototype.init = function () {
35631 this._a =
0x67452301
35632 this._b =
0xefcdab89
35633 this._c =
0x98badcfe
35634 this._d =
0x10325476
35635 this._e =
0xc3d2e1f0
35640 function rotl1 (num) {
35641 return (num <<
1) | (num
>>> 31)
35644 function rotl5 (num) {
35645 return (num <<
5) | (num
>>> 27)
35648 function rotl30 (num) {
35649 return (num <<
30) | (num
>>> 2)
35652 function ft (s, b, c, d) {
35653 if (s ===
0) return (b & c) | ((~b) & d)
35654 if (s ===
2) return (b & c) | (b & d) | (c & d)
35658 Sha1.prototype._update = function (M) {
35661 var a = this._a |
0
35662 var b = this._b |
0
35663 var c = this._c |
0
35664 var d = this._d |
0
35665 var e = this._e |
0
35667 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
35668 for (; i <
80; ++i) W[i] = rotl1(W[i -
3] ^ W[i -
8] ^ W[i -
14] ^ W[i -
16])
35670 for (var j =
0; j <
80; ++j) {
35672 var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) |
0
35681 this._a = (a + this._a) |
0
35682 this._b = (b + this._b) |
0
35683 this._c = (c + this._c) |
0
35684 this._d = (d + this._d) |
0
35685 this._e = (e + this._e) |
0
35688 Sha1.prototype._hash = function () {
35689 var H = new Buffer(
20)
35691 H.writeInt32BE(this._a |
0,
0)
35692 H.writeInt32BE(this._b |
0,
4)
35693 H.writeInt32BE(this._c |
0,
8)
35694 H.writeInt32BE(this._d |
0,
12)
35695 H.writeInt32BE(this._e |
0,
16)
35700 module.exports = Sha1
35702 }).call(this,require(
"buffer").Buffer)
35703 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
83:[function(require,module,exports){
35704 (function (Buffer){
35706 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
35708 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
35709 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
35713 var inherits = require('inherits')
35714 var Sha256 = require('./sha256')
35715 var Hash = require('./hash')
35717 var W = new Array(
64)
35719 function Sha224 () {
35722 this._w = W // new Array(
64)
35724 Hash.call(this,
64,
56)
35727 inherits(Sha224, Sha256)
35729 Sha224.prototype.init = function () {
35730 this._a =
0xc1059ed8
35731 this._b =
0x367cd507
35732 this._c =
0x3070dd17
35733 this._d =
0xf70e5939
35734 this._e =
0xffc00b31
35735 this._f =
0x68581511
35736 this._g =
0x64f98fa7
35737 this._h =
0xbefa4fa4
35742 Sha224.prototype._hash = function () {
35743 var H = new Buffer(
28)
35745 H.writeInt32BE(this._a,
0)
35746 H.writeInt32BE(this._b,
4)
35747 H.writeInt32BE(this._c,
8)
35748 H.writeInt32BE(this._d,
12)
35749 H.writeInt32BE(this._e,
16)
35750 H.writeInt32BE(this._f,
20)
35751 H.writeInt32BE(this._g,
24)
35756 module.exports = Sha224
35758 }).call(this,require(
"buffer").Buffer)
35759 },{
"./hash":
79,
"./sha256":
84,
"buffer":
5,
"inherits":
63}],
84:[function(require,module,exports){
35760 (function (Buffer){
35762 * A JavaScript implementation of the Secure Hash Algorithm, SHA-
256, as defined
35764 * Version
2.2-beta Copyright Angel Marin, Paul Johnston
2000 -
2009.
35765 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
35769 var inherits = require('inherits')
35770 var Hash = require('./hash')
35773 0x428A2F98,
0x71374491,
0xB5C0FBCF,
0xE9B5DBA5,
35774 0x3956C25B,
0x59F111F1,
0x923F82A4,
0xAB1C5ED5,
35775 0xD807AA98,
0x12835B01,
0x243185BE,
0x550C7DC3,
35776 0x72BE5D74,
0x80DEB1FE,
0x9BDC06A7,
0xC19BF174,
35777 0xE49B69C1,
0xEFBE4786,
0x0FC19DC6,
0x240CA1CC,
35778 0x2DE92C6F,
0x4A7484AA,
0x5CB0A9DC,
0x76F988DA,
35779 0x983E5152,
0xA831C66D,
0xB00327C8,
0xBF597FC7,
35780 0xC6E00BF3,
0xD5A79147,
0x06CA6351,
0x14292967,
35781 0x27B70A85,
0x2E1B2138,
0x4D2C6DFC,
0x53380D13,
35782 0x650A7354,
0x766A0ABB,
0x81C2C92E,
0x92722C85,
35783 0xA2BFE8A1,
0xA81A664B,
0xC24B8B70,
0xC76C51A3,
35784 0xD192E819,
0xD6990624,
0xF40E3585,
0x106AA070,
35785 0x19A4C116,
0x1E376C08,
0x2748774C,
0x34B0BCB5,
35786 0x391C0CB3,
0x4ED8AA4A,
0x5B9CCA4F,
0x682E6FF3,
35787 0x748F82EE,
0x78A5636F,
0x84C87814,
0x8CC70208,
35788 0x90BEFFFA,
0xA4506CEB,
0xBEF9A3F7,
0xC67178F2
35791 var W = new Array(
64)
35793 function Sha256 () {
35796 this._w = W // new Array(
64)
35798 Hash.call(this,
64,
56)
35801 inherits(Sha256, Hash)
35803 Sha256.prototype.init = function () {
35804 this._a =
0x6a09e667
35805 this._b =
0xbb67ae85
35806 this._c =
0x3c6ef372
35807 this._d =
0xa54ff53a
35808 this._e =
0x510e527f
35809 this._f =
0x9b05688c
35810 this._g =
0x1f83d9ab
35811 this._h =
0x5be0cd19
35816 function ch (x, y, z) {
35817 return z ^ (x & (y ^ z))
35820 function maj (x, y, z) {
35821 return (x & y) | (z & (x | y))
35824 function sigma0 (x) {
35825 return (x
>>> 2 | x <<
30) ^ (x
>>> 13 | x <<
19) ^ (x
>>> 22 | x <<
10)
35828 function sigma1 (x) {
35829 return (x
>>> 6 | x <<
26) ^ (x
>>> 11 | x <<
21) ^ (x
>>> 25 | x <<
7)
35832 function gamma0 (x) {
35833 return (x
>>> 7 | x <<
25) ^ (x
>>> 18 | x <<
14) ^ (x
>>> 3)
35836 function gamma1 (x) {
35837 return (x
>>> 17 | x <<
15) ^ (x
>>> 19 | x <<
13) ^ (x
>>> 10)
35840 Sha256.prototype._update = function (M) {
35843 var a = this._a |
0
35844 var b = this._b |
0
35845 var c = this._c |
0
35846 var d = this._d |
0
35847 var e = this._e |
0
35848 var f = this._f |
0
35849 var g = this._g |
0
35850 var h = this._h |
0
35852 for (var i =
0; i <
16; ++i) W[i] = M.readInt32BE(i *
4)
35853 for (; i <
64; ++i) W[i] = (gamma1(W[i -
2]) + W[i -
7] + gamma0(W[i -
15]) + W[i -
16]) |
0
35855 for (var j =
0; j <
64; ++j) {
35856 var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) |
0
35857 var T2 = (sigma0(a) + maj(a, b, c)) |
0
35869 this._a = (a + this._a) |
0
35870 this._b = (b + this._b) |
0
35871 this._c = (c + this._c) |
0
35872 this._d = (d + this._d) |
0
35873 this._e = (e + this._e) |
0
35874 this._f = (f + this._f) |
0
35875 this._g = (g + this._g) |
0
35876 this._h = (h + this._h) |
0
35879 Sha256.prototype._hash = function () {
35880 var H = new Buffer(
32)
35882 H.writeInt32BE(this._a,
0)
35883 H.writeInt32BE(this._b,
4)
35884 H.writeInt32BE(this._c,
8)
35885 H.writeInt32BE(this._d,
12)
35886 H.writeInt32BE(this._e,
16)
35887 H.writeInt32BE(this._f,
20)
35888 H.writeInt32BE(this._g,
24)
35889 H.writeInt32BE(this._h,
28)
35894 module.exports = Sha256
35896 }).call(this,require(
"buffer").Buffer)
35897 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
85:[function(require,module,exports){
35898 (function (Buffer){
35899 var inherits = require('inherits')
35900 var SHA512 = require('./sha512')
35901 var Hash = require('./hash')
35903 var W = new Array(
160)
35905 function Sha384 () {
35909 Hash.call(this,
128,
112)
35912 inherits(Sha384, SHA512)
35914 Sha384.prototype.init = function () {
35915 this._ah =
0xcbbb9d5d
35916 this._bh =
0x629a292a
35917 this._ch =
0x9159015a
35918 this._dh =
0x152fecd8
35919 this._eh =
0x67332667
35920 this._fh =
0x8eb44a87
35921 this._gh =
0xdb0c2e0d
35922 this._hh =
0x47b5481d
35924 this._al =
0xc1059ed8
35925 this._bl =
0x367cd507
35926 this._cl =
0x3070dd17
35927 this._dl =
0xf70e5939
35928 this._el =
0xffc00b31
35929 this._fl =
0x68581511
35930 this._gl =
0x64f98fa7
35931 this._hl =
0xbefa4fa4
35936 Sha384.prototype._hash = function () {
35937 var H = new Buffer(
48)
35939 function writeInt64BE (h, l, offset) {
35940 H.writeInt32BE(h, offset)
35941 H.writeInt32BE(l, offset +
4)
35944 writeInt64BE(this._ah, this._al,
0)
35945 writeInt64BE(this._bh, this._bl,
8)
35946 writeInt64BE(this._ch, this._cl,
16)
35947 writeInt64BE(this._dh, this._dl,
24)
35948 writeInt64BE(this._eh, this._el,
32)
35949 writeInt64BE(this._fh, this._fl,
40)
35954 module.exports = Sha384
35956 }).call(this,require(
"buffer").Buffer)
35957 },{
"./hash":
79,
"./sha512":
86,
"buffer":
5,
"inherits":
63}],
86:[function(require,module,exports){
35958 (function (Buffer){
35959 var inherits = require('inherits')
35960 var Hash = require('./hash')
35963 0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
35964 0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
35965 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
35966 0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
35967 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
35968 0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
35969 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
35970 0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
35971 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
35972 0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
35973 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
35974 0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
35975 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
35976 0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
35977 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
35978 0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
35979 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
35980 0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
35981 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
35982 0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
35983 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
35984 0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
35985 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
35986 0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
35987 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
35988 0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
35989 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
35990 0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
35991 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
35992 0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
35993 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
35994 0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
35995 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
35996 0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
35997 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
35998 0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
35999 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
36000 0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
36001 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
36002 0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817
36005 var W = new Array(
160)
36007 function Sha512 () {
36011 Hash.call(this,
128,
112)
36014 inherits(Sha512, Hash)
36016 Sha512.prototype.init = function () {
36017 this._ah =
0x6a09e667
36018 this._bh =
0xbb67ae85
36019 this._ch =
0x3c6ef372
36020 this._dh =
0xa54ff53a
36021 this._eh =
0x510e527f
36022 this._fh =
0x9b05688c
36023 this._gh =
0x1f83d9ab
36024 this._hh =
0x5be0cd19
36026 this._al =
0xf3bcc908
36027 this._bl =
0x84caa73b
36028 this._cl =
0xfe94f82b
36029 this._dl =
0x5f1d36f1
36030 this._el =
0xade682d1
36031 this._fl =
0x2b3e6c1f
36032 this._gl =
0xfb41bd6b
36033 this._hl =
0x137e2179
36038 function Ch (x, y, z) {
36039 return z ^ (x & (y ^ z))
36042 function maj (x, y, z) {
36043 return (x & y) | (z & (x | y))
36046 function sigma0 (x, xl) {
36047 return (x
>>> 28 | xl <<
4) ^ (xl
>>> 2 | x <<
30) ^ (xl
>>> 7 | x <<
25)
36050 function sigma1 (x, xl) {
36051 return (x
>>> 14 | xl <<
18) ^ (x
>>> 18 | xl <<
14) ^ (xl
>>> 9 | x <<
23)
36054 function Gamma0 (x, xl) {
36055 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7)
36058 function Gamma0l (x, xl) {
36059 return (x
>>> 1 | xl <<
31) ^ (x
>>> 8 | xl <<
24) ^ (x
>>> 7 | xl <<
25)
36062 function Gamma1 (x, xl) {
36063 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6)
36066 function Gamma1l (x, xl) {
36067 return (x
>>> 19 | xl <<
13) ^ (xl
>>> 29 | x <<
3) ^ (x
>>> 6 | xl <<
26)
36070 function getCarry (a, b) {
36071 return (a
>>> 0) < (b
>>> 0) ?
1 :
0
36074 Sha512.prototype._update = function (M) {
36077 var ah = this._ah |
0
36078 var bh = this._bh |
0
36079 var ch = this._ch |
0
36080 var dh = this._dh |
0
36081 var eh = this._eh |
0
36082 var fh = this._fh |
0
36083 var gh = this._gh |
0
36084 var hh = this._hh |
0
36086 var al = this._al |
0
36087 var bl = this._bl |
0
36088 var cl = this._cl |
0
36089 var dl = this._dl |
0
36090 var el = this._el |
0
36091 var fl = this._fl |
0
36092 var gl = this._gl |
0
36093 var hl = this._hl |
0
36095 for (var i =
0; i <
32; i +=
2) {
36096 W[i] = M.readInt32BE(i *
4)
36097 W[i +
1] = M.readInt32BE(i *
4 +
4)
36099 for (; i <
160; i +=
2) {
36100 var xh = W[i -
15 *
2]
36101 var xl = W[i -
15 *
2 +
1]
36102 var gamma0 = Gamma0(xh, xl)
36103 var gamma0l = Gamma0l(xl, xh)
36106 xl = W[i -
2 *
2 +
1]
36107 var gamma1 = Gamma1(xh, xl)
36108 var gamma1l = Gamma1l(xl, xh)
36110 // W[i] = gamma0 + W[i -
7] + gamma1 + W[i -
16]
36111 var Wi7h = W[i -
7 *
2]
36112 var Wi7l = W[i -
7 *
2 +
1]
36114 var Wi16h = W[i -
16 *
2]
36115 var Wi16l = W[i -
16 *
2 +
1]
36117 var Wil = (gamma0l + Wi7l) |
0
36118 var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) |
0
36119 Wil = (Wil + gamma1l) |
0
36120 Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) |
0
36121 Wil = (Wil + Wi16l) |
0
36122 Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) |
0
36128 for (var j =
0; j <
160; j +=
2) {
36132 var majh = maj(ah, bh, ch)
36133 var majl = maj(al, bl, cl)
36135 var sigma0h = sigma0(ah, al)
36136 var sigma0l = sigma0(al, ah)
36137 var sigma1h = sigma1(eh, el)
36138 var sigma1l = sigma1(el, eh)
36140 // t1 = h + sigma1 + ch + K[j] + W[j]
36144 var chh = Ch(eh, fh, gh)
36145 var chl = Ch(el, fl, gl)
36147 var t1l = (hl + sigma1l) |
0
36148 var t1h = (hh + sigma1h + getCarry(t1l, hl)) |
0
36149 t1l = (t1l + chl) |
0
36150 t1h = (t1h + chh + getCarry(t1l, chl)) |
0
36151 t1l = (t1l + Kil) |
0
36152 t1h = (t1h + Kih + getCarry(t1l, Kil)) |
0
36153 t1l = (t1l + Wil) |
0
36154 t1h = (t1h + Wih + getCarry(t1l, Wil)) |
0
36156 // t2 = sigma0 + maj
36157 var t2l = (sigma0l + majl) |
0
36158 var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) |
0
36166 el = (dl + t1l) |
0
36167 eh = (dh + t1h + getCarry(el, dl)) |
0
36174 al = (t1l + t2l) |
0
36175 ah = (t1h + t2h + getCarry(al, t1l)) |
0
36178 this._al = (this._al + al) |
0
36179 this._bl = (this._bl + bl) |
0
36180 this._cl = (this._cl + cl) |
0
36181 this._dl = (this._dl + dl) |
0
36182 this._el = (this._el + el) |
0
36183 this._fl = (this._fl + fl) |
0
36184 this._gl = (this._gl + gl) |
0
36185 this._hl = (this._hl + hl) |
0
36187 this._ah = (this._ah + ah + getCarry(this._al, al)) |
0
36188 this._bh = (this._bh + bh + getCarry(this._bl, bl)) |
0
36189 this._ch = (this._ch + ch + getCarry(this._cl, cl)) |
0
36190 this._dh = (this._dh + dh + getCarry(this._dl, dl)) |
0
36191 this._eh = (this._eh + eh + getCarry(this._el, el)) |
0
36192 this._fh = (this._fh + fh + getCarry(this._fl, fl)) |
0
36193 this._gh = (this._gh + gh + getCarry(this._gl, gl)) |
0
36194 this._hh = (this._hh + hh + getCarry(this._hl, hl)) |
0
36197 Sha512.prototype._hash = function () {
36198 var H = new Buffer(
64)
36200 function writeInt64BE (h, l, offset) {
36201 H.writeInt32BE(h, offset)
36202 H.writeInt32BE(l, offset +
4)
36205 writeInt64BE(this._ah, this._al,
0)
36206 writeInt64BE(this._bh, this._bl,
8)
36207 writeInt64BE(this._ch, this._cl,
16)
36208 writeInt64BE(this._dh, this._dl,
24)
36209 writeInt64BE(this._eh, this._el,
32)
36210 writeInt64BE(this._fh, this._fl,
40)
36211 writeInt64BE(this._gh, this._gl,
48)
36212 writeInt64BE(this._hh, this._hl,
56)
36217 module.exports = Sha512
36219 }).call(this,require(
"buffer").Buffer)
36220 },{
"./hash":
79,
"buffer":
5,
"inherits":
63}],
87:[function(require,module,exports){
36221 var isHexPrefixed = require('is-hex-prefixed');
36224 * Removes '
0x' from a given `String` is present
36225 * @param {String} str the string value
36226 * @return {String|Optional} a string by pass if necessary
36228 module.exports = function stripHexPrefix(str) {
36229 if (typeof str !== 'string') {
36233 return isHexPrefixed(str) ? str.slice(
2) : str;
36236 },{
"is-hex-prefixed":
64}]},{},[
31])(
31)
36238 <script>// Select components from sjcl to suit the crypto operations bip39 requires.
36242 /** @fileOverview Javascript cryptography implementation.
36244 * Crush to remove comments, shorten variable names and
36245 * generally reduce transmission size.
36247 * @author Emily Stark
36248 * @author Mike Hamburg
36249 * @author Dan Boneh
36253 /*jslint indent:
2, bitwise: false, nomen: false, plusplus: false, white: false, regexp: false */
36254 /*global document, window, escape, unescape, module, require, Uint32Array */
36256 /** @namespace The Stanford Javascript Crypto Library, top-level namespace. */
36258 /** @namespace Symmetric ciphers. */
36261 /** @namespace Hash functions. Right now only SHA256 is implemented. */
36264 /** @namespace Key exchange functions. Right now only SRP is implemented. */
36267 /** @namespace Block cipher modes of operation. */
36270 /** @namespace Miscellaneous. HMAC and PBKDF2. */
36274 * @namespace Bit array encoders and decoders.
36277 * The members of this namespace are functions which translate between
36278 * SJCL's bitArrays and other objects (usually strings). Because it
36279 * isn't always clear which direction is encoding and which is decoding,
36280 * the method names are "fromBits" and "toBits".
36284 /** @namespace Exceptions. */
36286 /** @constructor Ciphertext is corrupt. */
36287 corrupt: function(message) {
36288 this.toString = function() { return "CORRUPT: "+this.message; };
36289 this.message = message;
36292 /** @constructor Invalid parameter. */
36293 invalid: function(message) {
36294 this.toString = function() { return "INVALID: "+this.message; };
36295 this.message = message;
36298 /** @constructor Bug or missing feature in SJCL. @constructor */
36299 bug: function(message) {
36300 this.toString = function() { return "BUG: "+this.message; };
36301 this.message = message;
36304 /** @constructor Something isn't ready. */
36305 notReady: function(message) {
36306 this.toString = function() { return "NOT READY: "+this.message; };
36307 this.message = message;
36312 if(typeof module !== 'undefined' && module.exports){
36313 module.exports = sjcl;
36315 if (typeof define === "function") {
36316 define([], function () {
36324 /** @fileOverview Arrays of bits, encoded as arrays of Numbers.
36326 * @author Emily Stark
36327 * @author Mike Hamburg
36328 * @author Dan Boneh
36331 /** @namespace Arrays of bits, encoded as arrays of Numbers.
36335 * These objects are the currency accepted by SJCL's crypto functions.
36339 * Most of our crypto primitives operate on arrays of
4-byte words internally,
36340 * but many of them can take arguments that are not a multiple of
4 bytes.
36341 * This library encodes arrays of bits (whose size need not be a multiple of
8
36342 * bits) as arrays of
32-bit words. The bits are packed, big-endian, into an
36343 * array of words,
32 bits at a time. Since the words are double-precision
36344 * floating point numbers, they fit some extra data. We use this (in a private,
36345 * possibly-changing manner) to encode the number of bits actually present
36346 * in the last word of the array.
36350 * Because bitwise ops clear this out-of-band data, these arrays can be passed
36351 * to ciphers like AES which want arrays of words.
36356 * Array slices in units of bits.
36357 * @param {bitArray} a The array to slice.
36358 * @param {Number} bstart The offset to the start of the slice, in bits.
36359 * @param {Number} bend The offset to the end of the slice, in bits. If this is undefined,
36360 * slice until the end of the array.
36361 * @return {bitArray} The requested slice.
36363 bitSlice: function (a, bstart, bend) {
36364 a = sjcl.bitArray._shiftRight(a.slice(bstart/
32),
32 - (bstart &
31)).slice(
1);
36365 return (bend === undefined) ? a : sjcl.bitArray.clamp(a, bend-bstart);
36369 * Extract a number packed into a bit array.
36370 * @param {bitArray} a The array to slice.
36371 * @param {Number} bstart The offset to the start of the slice, in bits.
36372 * @param {Number} length The length of the number to extract.
36373 * @return {Number} The requested slice.
36375 extract: function(a, bstart, blength) {
36376 // FIXME: this Math.floor is not necessary at all, but for some reason
36377 // seems to suppress a bug in the Chromium JIT.
36378 var x, sh = Math.floor((-bstart-blength) &
31);
36379 if ((bstart + blength -
1 ^ bstart) & -
32) {
36380 // it crosses a boundary
36381 x = (a[bstart/
32|
0] << (
32 - sh)) ^ (a[bstart/
32+
1|
0]
>>> sh);
36383 // within a single word
36384 x = a[bstart/
32|
0]
>>> sh;
36386 return x & ((
1<
<blength) -
1);
36390 * Concatenate two bit arrays.
36391 * @param {bitArray} a1 The first array.
36392 * @param {bitArray} a2 The second array.
36393 * @return {bitArray} The concatenation of a1 and a2.
36395 concat: function (a1, a2) {
36396 if (a1.length ===
0 || a2.length ===
0) {
36397 return a1.concat(a2);
36400 var last = a1[a1.length-
1], shift = sjcl.bitArray.getPartial(last);
36401 if (shift ===
32) {
36402 return a1.concat(a2);
36404 return sjcl.bitArray._shiftRight(a2, shift, last|
0, a1.slice(
0,a1.length-
1));
36409 * Find the length of an array of bits.
36410 * @param {bitArray} a The array.
36411 * @return {Number} The length of a, in bits.
36413 bitLength: function (a) {
36414 var l = a.length, x;
36415 if (l ===
0) { return
0; }
36417 return (l-
1) *
32 + sjcl.bitArray.getPartial(x);
36421 * Truncate an array.
36422 * @param {bitArray} a The array.
36423 * @param {Number} len The length to truncate to, in bits.
36424 * @return {bitArray} A new array, truncated to len bits.
36426 clamp: function (a, len) {
36427 if (a.length *
32 < len) { return a; }
36428 a = a.slice(
0, Math.ceil(len /
32));
36431 if (l
> 0 && len) {
36432 a[l-
1] = sjcl.bitArray.partial(len, a[l-
1] &
0x80000000 >> (len-
1),
1);
36438 * Make a partial word for a bit array.
36439 * @param {Number} len The number of bits in the word.
36440 * @param {Number} x The bits.
36441 * @param {Number} [
0] _end Pass
1 if x has already been shifted to the high side.
36442 * @return {Number} The partial word.
36444 partial: function (len, x, _end) {
36445 if (len ===
32) { return x; }
36446 return (_end ? x|
0 : x << (
32-len)) + len *
0x10000000000;
36450 * Get the number of bits used by a partial word.
36451 * @param {Number} x The partial word.
36452 * @return {Number} The number of bits used by the partial word.
36454 getPartial: function (x) {
36455 return Math.round(x/
0x10000000000) ||
32;
36459 * Compare two arrays for equality in a predictable amount of time.
36460 * @param {bitArray} a The first array.
36461 * @param {bitArray} b The second array.
36462 * @return {boolean} true if a == b; false otherwise.
36464 equal: function (a, b) {
36465 if (sjcl.bitArray.bitLength(a) !== sjcl.bitArray.bitLength(b)) {
36469 for (i=
0; i
<a.length; i++) {
36475 /** Shift an array right.
36476 * @param {bitArray} a The array to shift.
36477 * @param {Number} shift The number of bits to shift.
36478 * @param {Number} [carry=
0] A byte to carry in
36479 * @param {bitArray} [out=[]] An array to prepend to the output.
36482 _shiftRight: function (a, shift, carry, out) {
36483 var i, last2=
0, shift2;
36484 if (out === undefined) { out = []; }
36486 for (; shift
>=
32; shift -=
32) {
36491 return out.concat(a);
36494 for (i=
0; i
<a.length; i++) {
36495 out.push(carry | a[i]
>>>shift);
36496 carry = a[i] << (
32-shift);
36498 last2 = a.length ? a[a.length-
1] :
0;
36499 shift2 = sjcl.bitArray.getPartial(last2);
36500 out.push(sjcl.bitArray.partial(shift+shift2 &
31, (shift + shift2
> 32) ? carry : out.pop(),
1));
36504 /** xor a block of
4 words together.
36507 _xor4: function(x,y) {
36508 return [x[
0]^y[
0],x[
1]^y[
1],x[
2]^y[
2],x[
3]^y[
3]];
36511 /** byteswap a word array inplace.
36512 * (does not handle partial words)
36513 * @param {sjcl.bitArray} a word array
36514 * @return {sjcl.bitArray} byteswapped array
36516 byteswapM: function(a) {
36517 var i, v, m =
0xff00;
36518 for (i =
0; i < a.length; ++i) {
36520 a[i] = (v
>>> 24) | ((v
>>> 8) & m) | ((v & m) <<
8) | (v <<
24);
36527 //// codecString.js
36529 /** @fileOverview Bit array codec implementations.
36531 * @author Emily Stark
36532 * @author Mike Hamburg
36533 * @author Dan Boneh
36536 /** @namespace UTF-
8 strings */
36537 sjcl.codec.utf8String = {
36538 /** Convert from a bitArray to a UTF-
8 string. */
36539 fromBits: function (arr) {
36540 var out =
"", bl = sjcl.bitArray.bitLength(arr), i, tmp;
36541 for (i=
0; i
<bl/
8; i++) {
36545 out += String.fromCharCode(tmp
>>> 24);
36548 return decodeURIComponent(escape(out));
36551 /** Convert from a UTF-
8 string to a bitArray. */
36552 toBits: function (str) {
36553 str = unescape(encodeURIComponent(str));
36554 var out = [], i, tmp=
0;
36555 for (i=
0; i
<str.length; i++) {
36556 tmp = tmp <<
8 | str.charCodeAt(i);
36563 out.push(sjcl.bitArray.partial(
8*(i&
3), tmp));
36572 /** @fileOverview Bit array codec implementations.
36574 * @author Emily Stark
36575 * @author Mike Hamburg
36576 * @author Dan Boneh
36579 /** @namespace Hexadecimal */
36581 /** Convert from a bitArray to a hex string. */
36582 fromBits: function (arr) {
36584 for (i=
0; i
<arr.length; i++) {
36585 out += ((arr[i]|
0)+
0xF00000000000).toString(
16).substr(
4);
36587 return out.substr(
0, sjcl.bitArray.bitLength(arr)/
4);//.replace(/(.{
8})/g,
"$1 ");
36589 /** Convert from a hex string to a bitArray. */
36590 toBits: function (str) {
36591 var i, out=[], len;
36592 str = str.replace(/\s|
0x/g,
"");
36594 str = str +
"00000000";
36595 for (i=
0; i
<str.length; i+=
8) {
36596 out.push(parseInt(str.substr(i,
8),
16)^
0);
36598 return sjcl.bitArray.clamp(out, len*
4);
36605 /** @fileOverview Javascript SHA-
512 implementation.
36607 * This implementation was written for CryptoJS by Jeff Mott and adapted for
36608 * SJCL by Stefan Thomas.
36610 * CryptoJS (c)
2009–
2012 by Jeff Mott. All rights reserved.
36611 * Released with New BSD License
36613 * @author Emily Stark
36614 * @author Mike Hamburg
36615 * @author Dan Boneh
36616 * @author Jeff Mott
36617 * @author Stefan Thomas
36621 * Context for a SHA-
512 operation in progress.
36623 * @class Secure Hash Algorithm,
512 bits.
36625 sjcl.hash.sha512 = function (hash) {
36626 if (!this._key[
0]) { this._precompute(); }
36628 this._h = hash._h.slice(
0);
36629 this._buffer = hash._buffer.slice(
0);
36630 this._length = hash._length;
36637 * Hash a string or an array of words.
36639 * @param {bitArray|String} data the data to hash.
36640 * @return {bitArray} The hash value, an array of
16 big-endian words.
36642 sjcl.hash.sha512.hash = function (data) {
36643 return (new sjcl.hash.sha512()).update(data).finalize();
36646 sjcl.hash.sha512.prototype = {
36648 * The hash's block size, in bits.
36654 * Reset the hash state.
36657 reset:function () {
36658 this._h = this._init.slice(
0);
36665 * Input several words to the hash.
36666 * @param {bitArray|String} data the data to hash.
36669 update: function (data) {
36670 if (typeof data ===
"string") {
36671 data = sjcl.codec.utf8String.toBits(data);
36673 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
36675 nl = this._length = ol + sjcl.bitArray.bitLength(data);
36676 for (i =
1024+ol & -
1024; i <= nl; i+=
1024) {
36677 this._block(b.splice(
0,
32));
36683 * Complete hashing and output the hash value.
36684 * @return {bitArray} The hash value, an array of
16 big-endian words.
36686 finalize:function () {
36687 var i, b = this._buffer, h = this._h;
36689 // Round out and push the buffer
36690 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
36692 // Round out the buffer to a multiple of
32 words, less the
4 length words.
36693 for (i = b.length +
4; i &
31; i++) {
36697 // append the length
36700 b.push(Math.floor(this._length /
0x100000000));
36701 b.push(this._length |
0);
36704 this._block(b.splice(
0,
32));
36712 * The SHA-
512 initialization vector, to be precomputed.
36718 * Least significant
24 bits of SHA512 initialization values.
36720 * Javascript only has
53 bits of precision, so we compute the
40 most
36721 * significant bits and add the remaining
24 bits as constants.
36725 _initr: [
0xbcc908,
0xcaa73b,
0x94f82b,
0x1d36f1,
0xe682d1,
0x3e6c1f,
0x41bd6b,
0x7e2179 ],
36729 [
0x6a09e667,
0xf3bcc908,
0xbb67ae85,
0x84caa73b,
0x3c6ef372,
0xfe94f82b,
0xa54ff53a,
0x5f1d36f1,
36730 0x510e527f,
0xade682d1,
0x9b05688c,
0x2b3e6c1f,
0x1f83d9ab,
0xfb41bd6b,
0x5be0cd19,
0x137e2179],
36734 * The SHA-
512 hash key, to be precomputed.
36740 * Least significant
24 bits of SHA512 key values.
36744 [
0x28ae22,
0xef65cd,
0x4d3b2f,
0x89dbbc,
0x48b538,
0x05d019,
0x194f9b,
0x6d8118,
36745 0x030242,
0x706fbe,
0xe4b28c,
0xffb4e2,
0x7b896f,
0x1696b1,
0xc71235,
0x692694,
36746 0xf14ad2,
0x4f25e3,
0x8cd5b5,
0xac9c65,
0x2b0275,
0xa6e483,
0x41fbd4,
0x1153b5,
36747 0x66dfab,
0xb43210,
0xfb213f,
0xef0ee4,
0xa88fc2,
0x0aa725,
0x03826f,
0x0e6e70,
36748 0xd22ffc,
0x26c926,
0xc42aed,
0x95b3df,
0xaf63de,
0x77b2a8,
0xedaee6,
0x82353b,
36749 0xf10364,
0x423001,
0xf89791,
0x54be30,
0xef5218,
0x65a910,
0x71202a,
0xbbd1b8,
36750 0xd2d0c8,
0x41ab53,
0x8eeb99,
0x9b48a8,
0xc95a63,
0x418acb,
0x63e373,
0xb2b8a3,
36751 0xefb2fc,
0x172f60,
0xf0ab72,
0x6439ec,
0x631e28,
0x82bde9,
0xc67915,
0x72532b,
36752 0x26619c,
0xc0c207,
0xe0eb1e,
0x6ed178,
0x176fba,
0xc898a6,
0xf90dae,
0x1c471b,
36753 0x047d84,
0xc72493,
0xc9bebc,
0x100d4c,
0x3e42b6,
0x657e2a,
0xd6faec,
0x475817],
36757 [
0x428a2f98,
0xd728ae22,
0x71374491,
0x23ef65cd,
0xb5c0fbcf,
0xec4d3b2f,
0xe9b5dba5,
0x8189dbbc,
36758 0x3956c25b,
0xf348b538,
0x59f111f1,
0xb605d019,
0x923f82a4,
0xaf194f9b,
0xab1c5ed5,
0xda6d8118,
36759 0xd807aa98,
0xa3030242,
0x12835b01,
0x45706fbe,
0x243185be,
0x4ee4b28c,
0x550c7dc3,
0xd5ffb4e2,
36760 0x72be5d74,
0xf27b896f,
0x80deb1fe,
0x3b1696b1,
0x9bdc06a7,
0x25c71235,
0xc19bf174,
0xcf692694,
36761 0xe49b69c1,
0x9ef14ad2,
0xefbe4786,
0x384f25e3,
0x0fc19dc6,
0x8b8cd5b5,
0x240ca1cc,
0x77ac9c65,
36762 0x2de92c6f,
0x592b0275,
0x4a7484aa,
0x6ea6e483,
0x5cb0a9dc,
0xbd41fbd4,
0x76f988da,
0x831153b5,
36763 0x983e5152,
0xee66dfab,
0xa831c66d,
0x2db43210,
0xb00327c8,
0x98fb213f,
0xbf597fc7,
0xbeef0ee4,
36764 0xc6e00bf3,
0x3da88fc2,
0xd5a79147,
0x930aa725,
0x06ca6351,
0xe003826f,
0x14292967,
0x0a0e6e70,
36765 0x27b70a85,
0x46d22ffc,
0x2e1b2138,
0x5c26c926,
0x4d2c6dfc,
0x5ac42aed,
0x53380d13,
0x9d95b3df,
36766 0x650a7354,
0x8baf63de,
0x766a0abb,
0x3c77b2a8,
0x81c2c92e,
0x47edaee6,
0x92722c85,
0x1482353b,
36767 0xa2bfe8a1,
0x4cf10364,
0xa81a664b,
0xbc423001,
0xc24b8b70,
0xd0f89791,
0xc76c51a3,
0x0654be30,
36768 0xd192e819,
0xd6ef5218,
0xd6990624,
0x5565a910,
0xf40e3585,
0x5771202a,
0x106aa070,
0x32bbd1b8,
36769 0x19a4c116,
0xb8d2d0c8,
0x1e376c08,
0x5141ab53,
0x2748774c,
0xdf8eeb99,
0x34b0bcb5,
0xe19b48a8,
36770 0x391c0cb3,
0xc5c95a63,
0x4ed8aa4a,
0xe3418acb,
0x5b9cca4f,
0x7763e373,
0x682e6ff3,
0xd6b2b8a3,
36771 0x748f82ee,
0x5defb2fc,
0x78a5636f,
0x43172f60,
0x84c87814,
0xa1f0ab72,
0x8cc70208,
0x1a6439ec,
36772 0x90befffa,
0x23631e28,
0xa4506ceb,
0xde82bde9,
0xbef9a3f7,
0xb2c67915,
0xc67178f2,
0xe372532b,
36773 0xca273ece,
0xea26619c,
0xd186b8c7,
0x21c0c207,
0xeada7dd6,
0xcde0eb1e,
0xf57d4f7f,
0xee6ed178,
36774 0x06f067aa,
0x72176fba,
0x0a637dc5,
0xa2c898a6,
0x113f9804,
0xbef90dae,
0x1b710b35,
0x131c471b,
36775 0x28db77f5,
0x23047d84,
0x32caab7b,
0x40c72493,
0x3c9ebe0a,
0x15c9bebc,
0x431d67c4,
0x9c100d4c,
36776 0x4cc5d4be,
0xcb3e42b6,
0x597f299c,
0xfc657e2a,
0x5fcb6fab,
0x3ad6faec,
0x6c44198c,
0x4a475817],
36780 * Function to precompute _init and _key.
36783 _precompute: function () {
36784 // XXX: This code is for precomputing the SHA256 constants, change for
36785 // SHA512 and re-enable.
36786 var i =
0, prime =
2, factor;
36788 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
36789 function frac2(x) { return (x-Math.floor(x)) *
0x10000000000 &
0xff; }
36791 outer: for (; i
<80; prime++) {
36792 for (factor=
2; factor*factor <= prime; factor++) {
36793 if (prime % factor ===
0) {
36800 this._init[i*
2] = frac(Math.pow(prime,
1/
2));
36801 this._init[i*
2+
1] = (frac2(Math.pow(prime,
1/
2)) <<
24) | this._initr[i];
36803 this._key[i*
2] = frac(Math.pow(prime,
1/
3));
36804 this._key[i*
2+
1] = (frac2(Math.pow(prime,
1/
3)) <<
24) | this._keyr[i];
36810 * Perform one cycle of SHA-
512.
36811 * @param {bitArray} words one block of words.
36814 _block:function (words) {
36816 w = words.slice(
0),
36819 h0h = h[
0], h0l = h[
1], h1h = h[
2], h1l = h[
3],
36820 h2h = h[
4], h2l = h[
5], h3h = h[
6], h3l = h[
7],
36821 h4h = h[
8], h4l = h[
9], h5h = h[
10], h5l = h[
11],
36822 h6h = h[
12], h6l = h[
13], h7h = h[
14], h7l = h[
15];
36824 // Working variables
36825 var ah = h0h, al = h0l, bh = h1h, bl = h1l,
36826 ch = h2h, cl = h2l, dh = h3h, dl = h3l,
36827 eh = h4h, el = h4l, fh = h5h, fl = h5l,
36828 gh = h6h, gl = h6l, hh = h7h, hl = h7l;
36830 for (i=
0; i
<80; i++) {
36831 // load up the input word for this round
36834 wrl = w[i *
2 +
1];
36837 var gamma0xh = w[(i-
15) *
2];
36838 var gamma0xl = w[(i-
15) *
2 +
1];
36840 ((gamma0xl <<
31) | (gamma0xh
>>> 1)) ^
36841 ((gamma0xl <<
24) | (gamma0xh
>>> 8)) ^
36844 ((gamma0xh <<
31) | (gamma0xl
>>> 1)) ^
36845 ((gamma0xh <<
24) | (gamma0xl
>>> 8)) ^
36846 ((gamma0xh <<
25) | (gamma0xl
>>> 7));
36849 var gamma1xh = w[(i-
2) *
2];
36850 var gamma1xl = w[(i-
2) *
2 +
1];
36852 ((gamma1xl <<
13) | (gamma1xh
>>> 19)) ^
36853 ((gamma1xh <<
3) | (gamma1xl
>>> 29)) ^
36856 ((gamma1xh <<
13) | (gamma1xl
>>> 19)) ^
36857 ((gamma1xl <<
3) | (gamma1xh
>>> 29)) ^
36858 ((gamma1xh <<
26) | (gamma1xl
>>> 6));
36861 var wr7h = w[(i-
7) *
2];
36862 var wr7l = w[(i-
7) *
2 +
1];
36864 var wr16h = w[(i-
16) *
2];
36865 var wr16l = w[(i-
16) *
2 +
1];
36867 // W(round) = gamma0 + W(round -
7) + gamma1 + W(round -
16)
36868 wrl = gamma0l + wr7l;
36869 wrh = gamma0h + wr7h + ((wrl
>>> 0) < (gamma0l
>>> 0) ?
1 :
0);
36871 wrh += gamma1h + ((wrl
>>> 0) < (gamma1l
>>> 0) ?
1 :
0);
36873 wrh += wr16h + ((wrl
>>> 0) < (wr16l
>>> 0) ?
1 :
0);
36877 w[i*
2 +
1] = wrl |=
0;
36880 var chh = (eh & fh) ^ (~eh & gh);
36881 var chl = (el & fl) ^ (~el & gl);
36884 var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);
36885 var majl = (al & bl) ^ (al & cl) ^ (bl & cl);
36888 var sigma0h = ((al <<
4) | (ah
>>> 28)) ^ ((ah <<
30) | (al
>>> 2)) ^ ((ah <<
25) | (al
>>> 7));
36889 var sigma0l = ((ah <<
4) | (al
>>> 28)) ^ ((al <<
30) | (ah
>>> 2)) ^ ((al <<
25) | (ah
>>> 7));
36892 var sigma1h = ((el <<
18) | (eh
>>> 14)) ^ ((el <<
14) | (eh
>>> 18)) ^ ((eh <<
23) | (el
>>> 9));
36893 var sigma1l = ((eh <<
18) | (el
>>> 14)) ^ ((eh <<
14) | (el
>>> 18)) ^ ((el <<
23) | (eh
>>> 9));
36897 var krl = k[i*
2+
1];
36899 // t1 = h + sigma1 + ch + K(round) + W(round)
36900 var t1l = hl + sigma1l;
36901 var t1h = hh + sigma1h + ((t1l
>>> 0) < (hl
>>> 0) ?
1 :
0);
36903 t1h += chh + ((t1l
>>> 0) < (chl
>>> 0) ?
1 :
0);
36905 t1h += krh + ((t1l
>>> 0) < (krl
>>> 0) ?
1 :
0);
36906 t1l = t1l + wrl|
0; // FF32..FF34 perf issue https://bugzilla.mozilla.org/show_bug.cgi?id=
1054972
36907 t1h += wrh + ((t1l
>>> 0) < (wrl
>>> 0) ?
1 :
0);
36909 // t2 = sigma0 + maj
36910 var t2l = sigma0l + majl;
36911 var t2h = sigma0h + majh + ((t2l
>>> 0) < (sigma0l
>>> 0) ?
1 :
0);
36913 // Update working variables
36920 el = (dl + t1l) |
0;
36921 eh = (dh + t1h + ((el
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
36928 al = (t1l + t2l) |
0;
36929 ah = (t1h + t2h + ((al
>>> 0) < (t1l
>>> 0) ?
1 :
0)) |
0;
36932 // Intermediate hash
36933 h0l = h[
1] = (h0l + al) |
0;
36934 h[
0] = (h0h + ah + ((h0l
>>> 0) < (al
>>> 0) ?
1 :
0)) |
0;
36935 h1l = h[
3] = (h1l + bl) |
0;
36936 h[
2] = (h1h + bh + ((h1l
>>> 0) < (bl
>>> 0) ?
1 :
0)) |
0;
36937 h2l = h[
5] = (h2l + cl) |
0;
36938 h[
4] = (h2h + ch + ((h2l
>>> 0) < (cl
>>> 0) ?
1 :
0)) |
0;
36939 h3l = h[
7] = (h3l + dl) |
0;
36940 h[
6] = (h3h + dh + ((h3l
>>> 0) < (dl
>>> 0) ?
1 :
0)) |
0;
36941 h4l = h[
9] = (h4l + el) |
0;
36942 h[
8] = (h4h + eh + ((h4l
>>> 0) < (el
>>> 0) ?
1 :
0)) |
0;
36943 h5l = h[
11] = (h5l + fl) |
0;
36944 h[
10] = (h5h + fh + ((h5l
>>> 0) < (fl
>>> 0) ?
1 :
0)) |
0;
36945 h6l = h[
13] = (h6l + gl) |
0;
36946 h[
12] = (h6h + gh + ((h6l
>>> 0) < (gl
>>> 0) ?
1 :
0)) |
0;
36947 h7l = h[
15] = (h7l + hl) |
0;
36948 h[
14] = (h7h + hh + ((h7l
>>> 0) < (hl
>>> 0) ?
1 :
0)) |
0;
36955 /** @fileOverview HMAC implementation.
36957 * @author Emily Stark
36958 * @author Mike Hamburg
36959 * @author Dan Boneh
36962 /** HMAC with the specified hash function.
36964 * @param {bitArray} key the key for HMAC.
36965 * @param {Object} [hash=sjcl.hash.sha256] The hash function to use.
36967 sjcl.misc.hmac = function (key, Hash) {
36968 this._hash = Hash = Hash || sjcl.hash.sha256;
36969 var exKey = [[],[]], i,
36970 bs = Hash.prototype.blockSize /
32;
36971 this._baseHash = [new Hash(), new Hash()];
36973 if (key.length
> bs) {
36974 key = Hash.hash(key);
36977 for (i=
0; i
<bs; i++) {
36978 exKey[
0][i] = key[i]^
0x36363636;
36979 exKey[
1][i] = key[i]^
0x5C5C5C5C;
36982 this._baseHash[
0].update(exKey[
0]);
36983 this._baseHash[
1].update(exKey[
1]);
36984 this._resultHash = new Hash(this._baseHash[
0]);
36987 /** HMAC with the specified hash function. Also called encrypt since it's a prf.
36988 * @param {bitArray|String} data The data to mac.
36990 sjcl.misc.hmac.prototype.encrypt = sjcl.misc.hmac.prototype.mac = function (data) {
36991 if (!this._updated) {
36993 return this.digest(data);
36995 throw new sjcl.exception.invalid(
"encrypt on already updated hmac called!");
36999 sjcl.misc.hmac.prototype.reset = function () {
37000 this._resultHash = new this._hash(this._baseHash[
0]);
37001 this._updated = false;
37004 sjcl.misc.hmac.prototype.update = function (data) {
37005 this._updated = true;
37006 this._resultHash.update(data);
37009 sjcl.misc.hmac.prototype.digest = function () {
37010 var w = this._resultHash.finalize(), result = new (this._hash)(this._baseHash[
1]).update(w).finalize();
37021 /** @fileOverview Password-based key-derivation function, version
2.0.
37023 * @author Emily Stark
37024 * @author Mike Hamburg
37025 * @author Dan Boneh
37028 /** Password-Based Key-Derivation Function, version
2.0.
37030 * Generate keys from passwords using PBKDF2-HMAC-SHA256.
37032 * This is the method specified by RSA's PKCS #
5 standard.
37034 * @param {bitArray|String} password The password.
37035 * @param {bitArray|String} salt The salt. Should have lots of entropy.
37036 * @param {Number} [count=
1000] The number of iterations. Higher numbers make the function slower but more secure.
37037 * @param {Number} [length] The length of the derived key. Defaults to the
37038 output size of the hash function.
37039 * @param {Object} [Prff=sjcl.misc.hmac] The pseudorandom function family.
37040 * @return {bitArray} the derived key.
37042 sjcl.misc.pbkdf2 = function (password, salt, count, length, Prff) {
37043 count = count ||
1000;
37045 if (length <
0 || count <
0) {
37046 throw sjcl.exception.invalid(
"invalid params to pbkdf2");
37049 if (typeof password ===
"string") {
37050 password = sjcl.codec.utf8String.toBits(password);
37053 if (typeof salt ===
"string") {
37054 salt = sjcl.codec.utf8String.toBits(salt);
37057 Prff = Prff || sjcl.misc.hmac;
37059 var prf = new Prff(password),
37060 u, ui, i, j, k, out = [], b = sjcl.bitArray;
37062 for (k =
1;
32 * out.length < (length ||
1); k++) {
37063 u = ui = prf.encrypt(b.concat(salt,[k]));
37065 for (i=
1; i
<count; i++) {
37066 ui = prf.encrypt(ui);
37067 for (j=
0; j
<ui.length; j++) {
37072 out = out.concat(u);
37075 if (length) { out = b.clamp(out, length); }
37083 /** @fileOverview Javascript SHA-
256 implementation.
37085 * An older version of this implementation is available in the public
37086 * domain, but this one is (c) Emily Stark, Mike Hamburg, Dan Boneh,
37087 * Stanford University
2008-
2010 and BSD-licensed for liability
37090 * Special thanks to Aldo Cortesi for pointing out several bugs in
37093 * @author Emily Stark
37094 * @author Mike Hamburg
37095 * @author Dan Boneh
37099 * Context for a SHA-
256 operation in progress.
37101 * @class Secure Hash Algorithm,
256 bits.
37103 sjcl.hash.sha256 = function (hash) {
37104 if (!this._key[
0]) { this._precompute(); }
37106 this._h = hash._h.slice(
0);
37107 this._buffer = hash._buffer.slice(
0);
37108 this._length = hash._length;
37115 * Hash a string or an array of words.
37117 * @param {bitArray|String} data the data to hash.
37118 * @return {bitArray} The hash value, an array of
16 big-endian words.
37120 sjcl.hash.sha256.hash = function (data) {
37121 return (new sjcl.hash.sha256()).update(data).finalize();
37124 sjcl.hash.sha256.prototype = {
37126 * The hash's block size, in bits.
37132 * Reset the hash state.
37135 reset:function () {
37136 this._h = this._init.slice(
0);
37143 * Input several words to the hash.
37144 * @param {bitArray|String} data the data to hash.
37147 update: function (data) {
37148 if (typeof data ===
"string") {
37149 data = sjcl.codec.utf8String.toBits(data);
37151 var i, b = this._buffer = sjcl.bitArray.concat(this._buffer, data),
37153 nl = this._length = ol + sjcl.bitArray.bitLength(data);
37154 for (i =
512+ol & -
512; i <= nl; i+=
512) {
37155 this._block(b.splice(
0,
16));
37161 * Complete hashing and output the hash value.
37162 * @return {bitArray} The hash value, an array of
8 big-endian words.
37164 finalize:function () {
37165 var i, b = this._buffer, h = this._h;
37167 // Round out and push the buffer
37168 b = sjcl.bitArray.concat(b, [sjcl.bitArray.partial(
1,
1)]);
37170 // Round out the buffer to a multiple of
16 words, less the
2 length words.
37171 for (i = b.length +
2; i &
15; i++) {
37175 // append the length
37176 b.push(Math.floor(this._length /
0x100000000));
37177 b.push(this._length |
0);
37180 this._block(b.splice(
0,
16));
37188 * The SHA-
256 initialization vector, to be precomputed.
37193 _init:[
0x6a09e667,
0xbb67ae85,
0x3c6ef372,
0xa54ff53a,
0x510e527f,
0x9b05688c,
0x1f83d9ab,
0x5be0cd19],
37197 * The SHA-
256 hash key, to be precomputed.
37203 [
0x428a2f98,
0x71374491,
0xb5c0fbcf,
0xe9b5dba5,
0x3956c25b,
0x59f111f1,
0x923f82a4,
0xab1c5ed5,
37204 0xd807aa98,
0x12835b01,
0x243185be,
0x550c7dc3,
0x72be5d74,
0x80deb1fe,
0x9bdc06a7,
0xc19bf174,
37205 0xe49b69c1,
0xefbe4786,
0x0fc19dc6,
0x240ca1cc,
0x2de92c6f,
0x4a7484aa,
0x5cb0a9dc,
0x76f988da,
37206 0x983e5152,
0xa831c66d,
0xb00327c8,
0xbf597fc7,
0xc6e00bf3,
0xd5a79147,
0x06ca6351,
0x14292967,
37207 0x27b70a85,
0x2e1b2138,
0x4d2c6dfc,
0x53380d13,
0x650a7354,
0x766a0abb,
0x81c2c92e,
0x92722c85,
37208 0xa2bfe8a1,
0xa81a664b,
0xc24b8b70,
0xc76c51a3,
0xd192e819,
0xd6990624,
0xf40e3585,
0x106aa070,
37209 0x19a4c116,
0x1e376c08,
0x2748774c,
0x34b0bcb5,
0x391c0cb3,
0x4ed8aa4a,
0x5b9cca4f,
0x682e6ff3,
37210 0x748f82ee,
0x78a5636f,
0x84c87814,
0x8cc70208,
0x90befffa,
0xa4506ceb,
0xbef9a3f7,
0xc67178f2],
37215 * Function to precompute _init and _key.
37218 _precompute: function () {
37219 var i =
0, prime =
2, factor;
37221 function frac(x) { return (x-Math.floor(x)) *
0x100000000 |
0; }
37223 outer: for (; i
<64; prime++) {
37224 for (factor=
2; factor*factor <= prime; factor++) {
37225 if (prime % factor ===
0) {
37232 this._init[i] = frac(Math.pow(prime,
1/
2));
37234 this._key[i] = frac(Math.pow(prime,
1/
3));
37240 * Perform one cycle of SHA-
256.
37241 * @param {bitArray} words one block of words.
37244 _block:function (words) {
37246 w = words.slice(
0),
37249 h0 = h[
0], h1 = h[
1], h2 = h[
2], h3 = h[
3],
37250 h4 = h[
4], h5 = h[
5], h6 = h[
6], h7 = h[
7];
37252 /* Rationale for placement of |
0 :
37253 * If a value can overflow is original
32 bits by a factor of more than a few
37254 * million (
2^
23 ish), there is a possibility that it might overflow the
37255 *
53-bit mantissa and lose precision.
37257 * To avoid this, we clamp back to
32 bits by |'ing with
0 on any value that
37258 * propagates around the loop, and on the hash state h[]. I don't believe
37259 * that the clamps on h4 and on h0 are strictly necessary, but it's close
37260 * (for h4 anyway), and better safe than sorry.
37262 * The clamps on h[] are necessary for the output to be correct even in the
37263 * common case and for short inputs.
37265 for (i=
0; i
<64; i++) {
37266 // load up the input word for this round
37270 a = w[(i+
1 ) &
15];
37271 b = w[(i+
14) &
15];
37272 tmp = w[i&
15] = ((a
>>>7 ^ a
>>>18 ^ a
>>>3 ^ a<
<25 ^ a<
<14) +
37273 (b
>>>17 ^ b
>>>19 ^ b
>>>10 ^ b<
<15 ^ b<
<13) +
37274 w[i&
15] + w[(i+
9) &
15]) |
0;
37277 tmp = (tmp + h7 + (h4
>>>6 ^ h4
>>>11 ^ h4
>>>25 ^ h4<
<26 ^ h4<
<21 ^ h4<
<7) + (h6 ^ h4&(h5^h6)) + k[i]); // |
0;
37280 h7 = h6; h6 = h5; h5 = h4;
37282 h3 = h2; h2 = h1; h1 = h0;
37284 h0 = (tmp + ((h1&h2) ^ (h3&(h1^h2))) + (h1
>>>2 ^ h1
>>>13 ^ h1
>>>22 ^ h1<
<30 ^ h1<
<19 ^ h1<
<10)) |
0;
37287 h[
0] = h[
0]+h0 |
0;
37288 h[
1] = h[
1]+h1 |
0;
37289 h[
2] = h[
2]+h2 |
0;
37290 h[
3] = h[
3]+h3 |
0;
37291 h[
4] = h[
4]+h4 |
0;
37292 h[
5] = h[
5]+h5 |
0;
37293 h[
6] = h[
6]+h6 |
0;
37294 h[
7] = h[
7]+h7 |
0;
37298 <script>// An extremely basic translation library
37302 // Set some html to be translated. Do this using the 'data-translate' attribute:
37304 //
<div data-translate
>Test
</div>
37305 //
<div data-translate-html
><em>keep em tag
</em></div>
37306 //
<input data-translate-placeholder
placeholder=
"Example placeholder">
37307 //
<span data-translate-title
title=
"Example title"></span>
37309 // Obtain all the phrases to be translated via js debug console:
37311 // Translate.phrasesAsJson();
37313 // Use that template to translate the phrases into another language.
37314 // Leave the key the same. Change the value to the new language.
37316 // Create a js file to load the new phrases. In this example for Spanish,
37317 // es.js will contain the following code:
37319 // Translate.loadForeignPhrases("es", {
37320 // "Test": "Test in Spanish",
37321 // "
<em>keep em tag
</em>": "<em>keep em tag in Spanish
</em>",
37322 // "Example placeholder
": "Example placeholder in Spanish
"
37323 // "Example title
": "Example title in Spanish
"
37326 // In your UI put a listener for clicking on the Spanish button:
37328 // mySpanishButton.addEventListener("click
", function() {
37329 // Translate.setLanguage("es
");
37331 // myEnglishButton.addEventListener("click
", function() {
37332 // Translate.setLanguage("en
");
37335 Translate = new (function() {
37337 var defaultLanguage = "en
";
37339 var allPhrases = {};
37340 allPhrases[defaultLanguage] = {};
37345 selector: "[data-translate]
",
37346 getKey: function() {
37347 return this.textContent.trim().replace(/\s+/g, " ");
37349 setPhrase: function(p) {
37350 this.textContent = p;
37355 selector: "[data-translate-html]
",
37356 getKey: function() {
37357 return this.innerHTML.trim().replace(/\s+/g, " ");
37359 setPhrase: function(p) {
37360 this.innerHTML = p;
37364 var placeholder = {
37365 selector: "[data-translate-placeholder]
",
37366 getKey: function() {
37367 return this.getAttribute("placeholder
").trim().replace(/\s+/g, " ");
37369 setPhrase: function(p) {
37370 this.setAttribute("placeholder
", p);
37375 selector: "[data-translate-title]
",
37376 getKey: function() {
37377 return this.getAttribute("title
").trim().replace(/\s+/g, " ");
37379 setPhrase: function(p) {
37380 this.setAttribute("title
", p);
37384 // Get elements to be translated
37385 var allEls = getEls(text)
37386 .concat(getEls(html))
37387 .concat(getEls(placeholder))
37388 .concat(getEls(title));
37390 // Provides access to phrases from a non-default language.
37391 // See phrases_en.js for example usage.
37392 this.loadForeignPhrases = function(language, phrases) {
37393 allPhrases[language] = phrases;
37396 // Displays a different language, eg "en
" or "fr
"
37397 this.setLanguage = function(language) {
37398 for (var i=0; i<allEls.length; i++) {
37399 var el = allEls[i];
37401 if (!(language in allPhrases)) {
37402 console.log(language + " not in allPhrases
");
37405 if (!(key in allPhrases[language])) {
37406 console.log(language + " does not contain phrase:
" + key);
37409 var phrase = allPhrases[language][key];
37410 el.setPhrase(phrase);
37414 // Converts the phrases to a key-pair json file.
37415 // This is a good way to export phrases for use in translation tools.
37416 this.phrasesAsJson = function(language) {
37418 for (var i=0; i<allEls.length; i++) {
37419 var el = allEls[i];
37425 for (var i=0; i<keys.length; i++) {
37427 var translated = "";
37428 if (language in allPhrases && key in allPhrases[language]) {
37429 translated = allPhrases[language][key];
37431 output[key] = translated;
37433 return JSON.stringify(output, null, 2);
37436 function getEls(nodeType) {
37437 var nodes = document.querySelectorAll(nodeType.selector);
37439 for (var i=0; i<nodes.length; i++) {
37440 var node = nodes[i];
37441 node.getKey = nodeType.getKey;
37442 node.setPhrase = nodeType.setPhrase;
37443 node.key = node.getKey();
37444 allPhrases[defaultLanguage][node.key] = node.key;
37452 <script>Translate.loadForeignPhrases("en",
37454 "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses": "
<code>m/
44'/
0'/
0'/
0</code> generates public addresses",
37455 "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses": "
<code>m/
44'/
0'/
0'/
1</code> generates change addresses",
37456 "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export": "
<code>m/
44'/
0'/
0'
</code> generates extended keys for import / export",
37457 "
<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).",
37458 "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards": "Accepts binary, base
6,
6-sided dice, base
10, hexadecimal, cards",
37459 "Account": "Account",
37460 "Address": "Address",
37461 "Alternatively, download the file from the repository": "Alternatively, download the file from the repository",
37462 "BIP32 Derivation Path": "BIP32 Derivation Path",
37463 "BIP32 Extended Key": "BIP32 Extended Key",
37464 "BIP32 Extended Key (addresses only)": "BIP32 Extended Key (addresses only)",
37465 "BIP32 Root Key": "BIP32 Root Key",
37466 "BIP39 Mnemonic": "BIP39 Mnemonic",
37467 "BIP39 Passphrase (optional)": "BIP39 Passphrase (optional)",
37468 "BIP39 Seed": "BIP39 Seed",
37469 "Base
10": "Base
10",
37470 "Base
6": "Base
6",
37471 "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.",
37472 "Binary": "Binary",
37473 "Bitcoin Core": "Bitcoin Core",
37474 "Bits Per Event": "Bits Per Event",
37475 "Block Explorers": "Block Explorers",
37476 "Can be used with": "Can be used with",
37480 "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.",
37481 "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.",
37482 "Entropy": "Entropy",
37483 "Entropy Type": "Entropy Type",
37484 "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.",
37485 "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>.",
37486 "Event Count": "Event Count",
37487 "External / Internal": "External / Internal",
37488 "Filtered Entropy": "Filtered Entropy",
37489 "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>",
37490 "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>.",
37491 "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>.",
37492 "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>",
37493 "For more info see the BIP32 spec
": "For more info see the BIP32 spec
",
37494 "From entropy length (
3 words per
32 bits)
": "From entropy length (
3 words per
32 bits)
",
37495 "Generate a random mnemonic, or enter your own below
": "Generate a random mnemonic, or enter your own below
",
37496 "Get the source code from the repository
": "Get the source code from the repository
",
37498 "Hierarchical Deterministic Wallets
": "Hierarchical Deterministic Wallets
",
37499 "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.
",
37500 "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.
",
37501 "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.
",
37502 "Libraries
": "Libraries
",
37503 "Mnemonic Language
": "Mnemonic Language
",
37504 "Mnemonic Length
": "Mnemonic Length
",
37505 "Mnemonic code for generating deterministic keys
": "Mnemonic code for generating deterministic keys
",
37506 "More info
": "More info
",
37507 "Multi-Account Hierarchy for Deterministic Wallets
": "Multi-Account Hierarchy for Deterministic Wallets
",
37508 "Mycelium Wallet
": "Mycelium Wallet
",
37509 "Note these addreses are derived from the BIP32 Extended Key
": "Note these addreses are derived from the BIP32 Extended Key
",
37510 "Offline Usage
": "Offline Usage
",
37511 "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.",
37513 "Private Key": "Private Key",
37514 "Private Keys": "Private Keys",
37515 "Public Key": "Public Key",
37516 "Purpose": "Purpose",
37517 "Raw Binary": "Raw Binary",
37518 "Read more": "Read more",
37519 "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>",
37520 "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>",
37521 "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>",
37522 "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>",
37524 "Show more rows
": "Show more rows
",
37525 "Strength
": "Strength
",
37526 "Supply my own source of entropy
": "Supply my own source of entropy
",
37527 "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.
",
37528 "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>.",
37529 "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.",
37530 "This project is
100% open-source code": "This project is
100% open-source code",
37531 "Toggle": "Toggle",
37532 "Total Bits": "Total Bits",
37533 "Use hardened addresses": "Use hardened addresses",
37534 "Use path
<code>m/
0'/
0'
</code> with hardened addresses.": "Use path
<code>m/
0'/
0'
</code> with hardened addresses.",
37535 "Use path
<code>m/
44'/
0'/
0'
</code>.": "Use path
<code>m/
44'/
0'/
0'
</code>.",
37536 "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>.",
37537 "Valid entropy values include:": "Valid entropy values include:",
37538 "Warning": "Warning",
37539 "Word Count": "Word Count",
37540 "You are not a good source of entropy.": "You are not a good source of entropy.",
37541 "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).",
37542 "You can use this tool without having to be online.": "You can use this tool without having to be online.",
37547 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
37548 WORDLISTS["english"] = [
37549 "abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse",
37550 "access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act",
37551 "action","actor","actress","actual","adapt","add","addict","address","adjust","admit",
37552 "adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent",
37553 "agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert",
37554 "alien","all","alley","allow","almost","alone","alpha","already","also","alter",
37555 "always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger",
37556 "angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique",
37557 "anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic",
37558 "area","arena","argue","arm","armed","armor","army","around","arrange","arrest",
37559 "arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset",
37560 "assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction",
37561 "audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake",
37562 "aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge",
37563 "bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain",
37564 "barrel","base","basic","basket","battle","beach","bean","beauty","because","become",
37565 "beef","before","begin","behave","behind","believe","below","belt","bench","benefit",
37566 "best","betray","better","between","beyond","bicycle","bid","bike","bind","biology",
37567 "bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless",
37568 "blind","blood","blossom","blouse","blue","blur","blush","board","boat","body",
37569 "boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss",
37570 "bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread",
37571 "breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze",
37572 "broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb",
37573 "bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy",
37574 "butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call",
37575 "calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas",
37576 "canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry",
37577 "cart","case","cash","casino","castle","casual","cat","catalog","catch","category",
37578 "cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century",
37579 "cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase",
37580 "chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child",
37581 "chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle",
37582 "citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk",
37583 "clever","click","client","cliff","climb","clinic","clip","clock","clog","close",
37584 "cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut",
37585 "code","coffee","coil","coin","collect","color","column","combine","come","comfort",
37586 "comic","common","company","concert","conduct","confirm","congress","connect","consider","control",
37587 "convince","cook","cool","copper","copy","coral","core","corn","correct","cost",
37588 "cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle",
37589 "craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek",
37590 "crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial",
37591 "cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup",
37592 "cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad",
37593 "damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal",
37594 "debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense",
37595 "define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny",
37596 "depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk",
37597 "despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond",
37598 "diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur",
37599 "direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance",
37600 "divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain",
37601 "donate","donkey","donor","door","dose","double","dove","draft","dragon","drama",
37602 "drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop",
37603 "drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf",
37604 "dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo",
37605 "ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow",
37606 "elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody",
37607 "embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless",
37608 "endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough",
37609 "enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip",
37610 "era","erase","erode","erosion","error","erupt","escape","essay","essence","estate",
37611 "eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange",
37612 "excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit",
37613 "exotic","expand","expect","expire","explain","expose","express","extend","extra","eye",
37614 "eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame",
37615 "family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father",
37616 "fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female",
37617 "fence","festival","fetch","fever","few","fiber","fiction","field","figure","file",
37618 "film","filter","final","find","fine","finger","finish","fire","firm","first",
37619 "fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor",
37620 "flee","flight","flip","float","flock","floor","flower","fluid","flush","fly",
37621 "foam","focus","fog","foil","fold","follow","food","foot","force","forest",
37622 "forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile",
37623 "frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen",
37624 "fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy",
37625 "gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp",
37626 "gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture",
37627 "ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance",
37628 "glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue",
37629 "goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown",
37630 "grab","grace","grain","grant","grape","grass","gravity","great","green","grid",
37631 "grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt",
37632 "guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy",
37633 "harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health",
37634 "heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden",
37635 "high","hill","hint","hip","hire","history","hobby","hockey","hold","hole",
37636 "holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital",
37637 "host","hotel","hour","hover","hub","huge","human","humble","humor","hundred",
37638 "hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea",
37639 "identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune",
37640 "impact","impose","improve","impulse","inch","include","income","increase","index","indicate",
37641 "indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury",
37642 "inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install",
37643 "intact","interest","into","invest","invite","involve","iron","island","isolate","issue",
37644 "item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel",
37645 "job","join","joke","journey","joy","judge","juice","jump","jungle","junior",
37646 "junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney",
37647 "kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife",
37648 "knock","know","lab","label","labor","ladder","lady","lake","lamp","language",
37649 "laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit",
37650 "layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal",
37651 "legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level",
37652 "liar","liberty","library","license","life","lift","light","like","limb","limit",
37653 "link","lion","liquid","list","little","live","lizard","load","loan","lobster",
37654 "local","lock","logic","lonely","long","loop","lottery","loud","lounge","love",
37655 "loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad",
37656 "magic","magnet","maid","mail","main","major","make","mammal","man","manage",
37657 "mandate","mango","mansion","manual","maple","marble","march","margin","marine","market",
37658 "marriage","mask","mass","master","match","material","math","matrix","matter","maximum",
37659 "maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt",
37660 "member","memory","mention","menu","mercy","merge","merit","merry","mesh","message",
37661 "metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor",
37662 "minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile",
37663 "model","modify","mom","moment","monitor","monkey","monster","month","moon","moral",
37664 "more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie",
37665 "much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual",
37666 "myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature",
37667 "near","neck","need","negative","neglect","neither","nephew","nerve","nest","net",
37668 "network","neutral","never","news","next","nice","night","noble","noise","nominee",
37669 "noodle","normal","north","nose","notable","note","nothing","notice","novel","now",
37670 "nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe",
37671 "obtain","obvious","occur","ocean","october","odor","off","offer","office","often",
37672 "oil","okay","old","olive","olympic","omit","once","one","onion","online",
37673 "only","open","opera","opinion","oppose","option","orange","orbit","orchard","order",
37674 "ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output",
37675 "outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact",
37676 "paddle","page","pair","palace","palm","panda","panel","panic","panther","paper",
37677 "parade","parent","park","parrot","party","pass","patch","path","patient","patrol",
37678 "pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen",
37679 "penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo",
37680 "phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot",
37681 "pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate",
37682 "play","please","pledge","pluck","plug","plunge","poem","poet","point","polar",
37683 "pole","police","pond","pony","pool","popular","portion","position","possible","post",
37684 "potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare",
37685 "present","pretty","prevent","price","pride","primary","print","priority","prison","private",
37686 "prize","problem","process","produce","profit","program","project","promote","proof","property",
37687 "prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin",
37688 "punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle",
37689 "pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit",
37690 "raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp",
37691 "ranch","random","range","rapid","rare","rate","rather","raven","raw","razor",
37692 "ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle",
37693 "reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release",
37694 "relief","rely","remain","remember","remind","remove","render","renew","rent","reopen",
37695 "repair","repeat","replace","report","require","rescue","resemble","resist","resource","response",
37696 "result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib",
37697 "ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot",
37698 "ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket",
37699 "romance","roof","rookie","room","rose","rotate","rough","round","route","royal",
37700 "rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness",
37701 "safe","sail","salad","salmon","salon","salt","salute","same","sample","sand",
37702 "satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter",
37703 "scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script",
37704 "scrub","sea","search","season","seat","second","secret","section","security","seed",
37705 "seek","segment","select","sell","seminar","senior","sense","sentence","series","service",
37706 "session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell",
37707 "sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop",
37708 "short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side",
37709 "siege","sight","sign","silent","silk","silly","silver","similar","simple","since",
37710 "sing","siren","sister","situate","six","size","skate","sketch","ski","skill",
37711 "skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight",
37712 "slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth",
37713 "snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda",
37714 "soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry",
37715 "sort","soul","sound","soup","source","south","space","spare","spatial","spawn",
37716 "speak","special","speed","spell","spend","sphere","spice","spider","spike","spin",
37717 "spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring",
37718 "spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp",
37719 "stand","start","state","stay","steak","steel","stem","step","stereo","stick",
37720 "still","sting","stock","stomach","stone","stool","story","stove","strategy","street",
37721 "strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway",
37722 "success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny",
37723 "sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey",
37724 "suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim",
37725 "swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag",
37726 "tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi",
37727 "teach","team","tell","ten","tenant","tennis","tent","term","test","text",
37728 "thank","that","theme","then","theory","there","they","thing","this","thought",
37729 "three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber",
37730 "time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler",
37731 "toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool",
37732 "tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist",
37733 "toward","tower","town","toy","track","trade","traffic","tragic","train","transfer",
37734 "trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick",
37735 "trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust",
37736 "truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle",
37737 "twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella",
37738 "unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform",
37739 "unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade",
37740 "uphold","upon","upper","upset","urban","urge","usage","use","used","useful",
37741 "useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van",
37742 "vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue",
37743 "verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory",
37744 "video","view","village","vintage","violin","virtual","virus","visa","visit","visual",
37745 "vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage",
37746 "wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash",
37747 "wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather",
37748 "web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat",
37749 "wheel","when","where","whip","whisper","wide","width","wife","wild","will",
37750 "win","window","wine","wing","wink","winner","winter","wire","wisdom","wise",
37751 "wish","witness","wolf","woman","wonder","wood","wool","word","work","world",
37752 "worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year",
37753 "yellow","you","young","youth","zebra","zero","zone","zoo"]
37755 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
37756 WORDLISTS["japanese"] = [
37757 "あいこくしん", "あいさつ", "あいだ", "あおぞら", "あかちゃん", "あきる", "あけがた", "あける", "あこがれる", "あさい",
37758 "あさひ", "あしあと", "あじわう", "あずかる", "あずき", "あそぶ", "あたえる", "あたためる", "あたりまえ", "あたる",
37759 "あつい", "あつかう", "あっしゅく", "あつまり", "あつめる", "あてな", "あてはまる", "あひる", "あぶら", "あぶる",
37760 "あふれる", "あまい", "あまど", "あまやかす", "あまり", "あみもの", "あめりか", "あやまる", "あゆむ", "あらいぐま",
37761 "あらし", "あらすじ", "あらためる", "あらゆる", "あらわす", "ありがとう", "あわせる", "あわてる", "あんい", "あんがい",
37762 "あんこ", "あんぜん", "あんてい", "あんない", "あんまり", "いいだす", "いおん", "いがい", "いがく", "いきおい",
37763 "いきなり", "いきもの", "いきる", "いくじ", "いくぶん", "いけばな", "いけん", "いこう", "いこく", "いこつ",
37764 "いさましい", "いさん", "いしき", "いじゅう", "いじょう", "いじわる", "いずみ", "いずれ", "いせい", "いせえび",
37765 "いせかい", "いせき", "いぜん", "いそうろう", "いそがしい", "いだい", "いだく", "いたずら", "いたみ", "いたりあ",
37766 "いちおう", "いちじ", "いちど", "いちば", "いちぶ", "いちりゅう", "いつか", "いっしゅん", "いっせい", "いっそう",
37767 "いったん", "いっち", "いってい", "いっぽう", "いてざ", "いてん", "いどう", "いとこ", "いない", "いなか",
37768 "いねむり", "いのち", "いのる", "いはつ", "いばる", "いはん", "いびき", "いひん", "いふく", "いへん",
37769 "いほう", "いみん", "いもうと", "いもたれ", "いもり", "いやがる", "いやす", "いよかん", "いよく", "いらい",
37770 "いらすと", "いりぐち", "いりょう", "いれい", "いれもの", "いれる", "いろえんぴつ", "いわい", "いわう", "いわかん",
37771 "いわば", "いわゆる", "いんげんまめ", "いんさつ", "いんしょう", "いんよう", "うえき", "うえる", "うおざ", "うがい",
37772 "うかぶ", "うかべる", "うきわ", "うくらいな", "うくれれ", "うけたまわる", "うけつけ", "うけとる", "うけもつ", "うける",
37773 "うごかす", "うごく", "うこん", "うさぎ", "うしなう", "うしろがみ", "うすい", "うすぎ", "うすぐらい", "うすめる",
37774 "うせつ", "うちあわせ", "うちがわ", "うちき", "うちゅう", "うっかり", "うつくしい", "うったえる", "うつる", "うどん",
37775 "うなぎ", "うなじ", "うなずく", "うなる", "うねる", "うのう", "うぶげ", "うぶごえ", "うまれる", "うめる",
37776 "うもう", "うやまう", "うよく", "うらがえす", "うらぐち", "うらない", "うりあげ", "うりきれ", "うるさい", "うれしい",
37777 "うれゆき", "うれる", "うろこ", "うわき", "うわさ", "うんこう", "うんちん", "うんてん", "うんどう", "えいえん",
37778 "えいが", "えいきょう", "えいご", "えいせい", "えいぶん", "えいよう", "えいわ", "えおり", "えがお", "えがく",
37779 "えきたい", "えくせる", "えしゃく", "えすて", "えつらん", "えのぐ", "えほうまき", "えほん", "えまき", "えもじ",
37780 "えもの", "えらい", "えらぶ", "えりあ", "えんえん", "えんかい", "えんぎ", "えんげき", "えんしゅう", "えんぜつ",
37781 "えんそく", "えんちょう", "えんとつ", "おいかける", "おいこす", "おいしい", "おいつく", "おうえん", "おうさま", "おうじ",
37782 "おうせつ", "おうたい", "おうふく", "おうべい", "おうよう", "おえる", "おおい", "おおう", "おおどおり", "おおや",
37783 "おおよそ", "おかえり", "おかず", "おがむ", "おかわり", "おぎなう", "おきる", "おくさま", "おくじょう", "おくりがな",
37784 "おくる", "おくれる", "おこす", "おこなう", "おこる", "おさえる", "おさない", "おさめる", "おしいれ", "おしえる",
37785 "おじぎ", "おじさん", "おしゃれ", "おそらく", "おそわる", "おたがい", "おたく", "おだやか", "おちつく", "おっと",
37786 "おつり", "おでかけ", "おとしもの", "おとなしい", "おどり", "おどろかす", "おばさん", "おまいり", "おめでとう", "おもいで",
37787 "おもう", "おもたい", "おもちゃ", "おやつ", "おやゆび", "およぼす", "おらんだ", "おろす", "おんがく", "おんけい",
37788 "おんしゃ", "おんせん", "おんだん", "おんちゅう", "おんどけい", "かあつ", "かいが", "がいき", "がいけん", "がいこう",
37789 "かいさつ", "かいしゃ", "かいすいよく", "かいぜん", "かいぞうど", "かいつう", "かいてん", "かいとう", "かいふく", "がいへき",
37790 "かいほう", "かいよう", "がいらい", "かいわ", "かえる", "かおり", "かかえる", "かがく", "かがし", "かがみ",
37791 "かくご", "かくとく", "かざる", "がぞう", "かたい", "かたち", "がちょう", "がっきゅう", "がっこう", "がっさん",
37792 "がっしょう", "かなざわし", "かのう", "がはく", "かぶか", "かほう", "かほご", "かまう", "かまぼこ", "かめれおん",
37793 "かゆい", "かようび", "からい", "かるい", "かろう", "かわく", "かわら", "がんか", "かんけい", "かんこう",
37794 "かんしゃ", "かんそう", "かんたん", "かんち", "がんばる", "きあい", "きあつ", "きいろ", "ぎいん", "きうい",
37795 "きうん", "きえる", "きおう", "きおく", "きおち", "きおん", "きかい", "きかく", "きかんしゃ", "ききて",
37796 "きくばり", "きくらげ", "きけんせい", "きこう", "きこえる", "きこく", "きさい", "きさく", "きさま", "きさらぎ",
37797 "ぎじかがく", "ぎしき", "ぎじたいけん", "ぎじにってい", "ぎじゅつしゃ", "きすう", "きせい", "きせき", "きせつ", "きそう",
37798 "きぞく", "きぞん", "きたえる", "きちょう", "きつえん", "ぎっちり", "きつつき", "きつね", "きてい", "きどう",
37799 "きどく", "きない", "きなが", "きなこ", "きぬごし", "きねん", "きのう", "きのした", "きはく", "きびしい",
37800 "きひん", "きふく", "きぶん", "きぼう", "きほん", "きまる", "きみつ", "きむずかしい", "きめる", "きもだめし",
37801 "きもち", "きもの", "きゃく", "きやく", "ぎゅうにく", "きよう", "きょうりゅう", "きらい", "きらく", "きりん",
37802 "きれい", "きれつ", "きろく", "ぎろん", "きわめる", "ぎんいろ", "きんかくじ", "きんじょ", "きんようび", "ぐあい",
37803 "くいず", "くうかん", "くうき", "くうぐん", "くうこう", "ぐうせい", "くうそう", "ぐうたら", "くうふく", "くうぼ",
37804 "くかん", "くきょう", "くげん", "ぐこう", "くさい", "くさき", "くさばな", "くさる", "くしゃみ", "くしょう",
37805 "くすのき", "くすりゆび", "くせげ", "くせん", "ぐたいてき", "くださる", "くたびれる", "くちこみ", "くちさき", "くつした",
37806 "ぐっすり", "くつろぐ", "くとうてん", "くどく", "くなん", "くねくね", "くのう", "くふう", "くみあわせ", "くみたてる",
37807 "くめる", "くやくしょ", "くらす", "くらべる", "くるま", "くれる", "くろう", "くわしい", "ぐんかん", "ぐんしょく",
37808 "ぐんたい", "ぐんて", "けあな", "けいかく", "けいけん", "けいこ", "けいさつ", "げいじゅつ", "けいたい", "げいのうじん",
37809 "けいれき", "けいろ", "けおとす", "けおりもの", "げきか", "げきげん", "げきだん", "げきちん", "げきとつ", "げきは",
37810 "げきやく", "げこう", "げこくじょう", "げざい", "けさき", "げざん", "けしき", "けしごむ", "けしょう", "げすと",
37811 "けたば", "けちゃっぷ", "けちらす", "けつあつ", "けつい", "けつえき", "けっこん", "けつじょ", "けっせき", "けってい",
37812 "けつまつ", "げつようび", "げつれい", "けつろん", "げどく", "けとばす", "けとる", "けなげ", "けなす", "けなみ",
37813 "けぬき", "げねつ", "けねん", "けはい", "げひん", "けぶかい", "げぼく", "けまり", "けみかる", "けむし",
37814 "けむり", "けもの", "けらい", "けろけろ", "けわしい", "けんい", "けんえつ", "けんお", "けんか", "げんき",
37815 "けんげん", "けんこう", "けんさく", "けんしゅう", "けんすう", "げんそう", "けんちく", "けんてい", "けんとう", "けんない",
37816 "けんにん", "げんぶつ", "けんま", "けんみん", "けんめい", "けんらん", "けんり", "こあくま", "こいぬ", "こいびと",
37817 "ごうい", "こうえん", "こうおん", "こうかん", "ごうきゅう", "ごうけい", "こうこう", "こうさい", "こうじ", "こうすい",
37818 "ごうせい", "こうそく", "こうたい", "こうちゃ", "こうつう", "こうてい", "こうどう", "こうない", "こうはい", "ごうほう",
37819 "ごうまん", "こうもく", "こうりつ", "こえる", "こおり", "ごかい", "ごがつ", "ごかん", "こくご", "こくさい",
37820 "こくとう", "こくない", "こくはく", "こぐま", "こけい", "こける", "ここのか", "こころ", "こさめ", "こしつ",
37821 "こすう", "こせい", "こせき", "こぜん", "こそだて", "こたい", "こたえる", "こたつ", "こちょう", "こっか",
37822 "こつこつ", "こつばん", "こつぶ", "こてい", "こてん", "ことがら", "ことし", "ことば", "ことり", "こなごな",
37823 "こねこね", "このまま", "このみ", "このよ", "ごはん", "こひつじ", "こふう", "こふん", "こぼれる", "ごまあぶら",
37824 "こまかい", "ごますり", "こまつな", "こまる", "こむぎこ", "こもじ", "こもち", "こもの", "こもん", "こやく",
37825 "こやま", "こゆう", "こゆび", "こよい", "こよう", "こりる", "これくしょん", "ころっけ", "こわもて", "こわれる",
37826 "こんいん", "こんかい", "こんき", "こんしゅう", "こんすい", "こんだて", "こんとん", "こんなん", "こんびに", "こんぽん",
37827 "こんまけ", "こんや", "こんれい", "こんわく", "ざいえき", "さいかい", "さいきん", "ざいげん", "ざいこ", "さいしょ",
37828 "さいせい", "ざいたく", "ざいちゅう", "さいてき", "ざいりょう", "さうな", "さかいし", "さがす", "さかな", "さかみち",
37829 "さがる", "さぎょう", "さくし", "さくひん", "さくら", "さこく", "さこつ", "さずかる", "ざせき", "さたん",
37830 "さつえい", "ざつおん", "ざっか", "ざつがく", "さっきょく", "ざっし", "さつじん", "ざっそう", "さつたば", "さつまいも",
37831 "さてい", "さといも", "さとう", "さとおや", "さとし", "さとる", "さのう", "さばく", "さびしい", "さべつ",
37832 "さほう", "さほど", "さます", "さみしい", "さみだれ", "さむけ", "さめる", "さやえんどう", "さゆう", "さよう",
37833 "さよく", "さらだ", "ざるそば", "さわやか", "さわる", "さんいん", "さんか", "さんきゃく", "さんこう", "さんさい",
37834 "ざんしょ", "さんすう", "さんせい", "さんそ", "さんち", "さんま", "さんみ", "さんらん", "しあい", "しあげ",
37835 "しあさって", "しあわせ", "しいく", "しいん", "しうち", "しえい", "しおけ", "しかい", "しかく", "じかん",
37836 "しごと", "しすう", "じだい", "したうけ", "したぎ", "したて", "したみ", "しちょう", "しちりん", "しっかり",
37837 "しつじ", "しつもん", "してい", "してき", "してつ", "じてん", "じどう", "しなぎれ", "しなもの", "しなん",
37838 "しねま", "しねん", "しのぐ", "しのぶ", "しはい", "しばかり", "しはつ", "しはらい", "しはん", "しひょう",
37839 "しふく", "じぶん", "しへい", "しほう", "しほん", "しまう", "しまる", "しみん", "しむける", "じむしょ",
37840 "しめい", "しめる", "しもん", "しゃいん", "しゃうん", "しゃおん", "じゃがいも", "しやくしょ", "しゃくほう", "しゃけん",
37841 "しゃこ", "しゃざい", "しゃしん", "しゃせん", "しゃそう", "しゃたい", "しゃちょう", "しゃっきん", "じゃま", "しゃりん",
37842 "しゃれい", "じゆう", "じゅうしょ", "しゅくはく", "じゅしん", "しゅっせき", "しゅみ", "しゅらば", "じゅんばん", "しょうかい",
37843 "しょくたく", "しょっけん", "しょどう", "しょもつ", "しらせる", "しらべる", "しんか", "しんこう", "じんじゃ", "しんせいじ",
37844 "しんちく", "しんりん", "すあげ", "すあし", "すあな", "ずあん", "すいえい", "すいか", "すいとう", "ずいぶん",
37845 "すいようび", "すうがく", "すうじつ", "すうせん", "すおどり", "すきま", "すくう", "すくない", "すける", "すごい",
37846 "すこし", "ずさん", "すずしい", "すすむ", "すすめる", "すっかり", "ずっしり", "ずっと", "すてき", "すてる",
37847 "すねる", "すのこ", "すはだ", "すばらしい", "ずひょう", "ずぶぬれ", "すぶり", "すふれ", "すべて", "すべる",
37848 "ずほう", "すぼん", "すまい", "すめし", "すもう", "すやき", "すらすら", "するめ", "すれちがう", "すろっと",
37849 "すわる", "すんぜん", "すんぽう", "せあぶら", "せいかつ", "せいげん", "せいじ", "せいよう", "せおう", "せかいかん",
37850 "せきにん", "せきむ", "せきゆ", "せきらんうん", "せけん", "せこう", "せすじ", "せたい", "せたけ", "せっかく",
37851 "せっきゃく", "ぜっく", "せっけん", "せっこつ", "せっさたくま", "せつぞく", "せつだん", "せつでん", "せっぱん", "せつび",
37852 "せつぶん", "せつめい", "せつりつ", "せなか", "せのび", "せはば", "せびろ", "せぼね", "せまい", "せまる",
37853 "せめる", "せもたれ", "せりふ", "ぜんあく", "せんい", "せんえい", "せんか", "せんきょ", "せんく", "せんげん",
37854 "ぜんご", "せんさい", "せんしゅ", "せんすい", "せんせい", "せんぞ", "せんたく", "せんちょう", "せんてい", "せんとう",
37855 "せんぬき", "せんねん", "せんぱい", "ぜんぶ", "ぜんぽう", "せんむ", "せんめんじょ", "せんもん", "せんやく", "せんゆう",
37856 "せんよう", "ぜんら", "ぜんりゃく", "せんれい", "せんろ", "そあく", "そいとげる", "そいね", "そうがんきょう", "そうき",
37857 "そうご", "そうしん", "そうだん", "そうなん", "そうび", "そうめん", "そうり", "そえもの", "そえん", "そがい",
37858 "そげき", "そこう", "そこそこ", "そざい", "そしな", "そせい", "そせん", "そそぐ", "そだてる", "そつう",
37859 "そつえん", "そっかん", "そつぎょう", "そっけつ", "そっこう", "そっせん", "そっと", "そとがわ", "そとづら", "そなえる",
37860 "そなた", "そふぼ", "そぼく", "そぼろ", "そまつ", "そまる", "そむく", "そむりえ", "そめる", "そもそも",
37861 "そよかぜ", "そらまめ", "そろう", "そんかい", "そんけい", "そんざい", "そんしつ", "そんぞく", "そんちょう", "ぞんび",
37862 "ぞんぶん", "そんみん", "たあい", "たいいん", "たいうん", "たいえき", "たいおう", "だいがく", "たいき", "たいぐう",
37863 "たいけん", "たいこ", "たいざい", "だいじょうぶ", "だいすき", "たいせつ", "たいそう", "だいたい", "たいちょう", "たいてい",
37864 "だいどころ", "たいない", "たいねつ", "たいのう", "たいはん", "だいひょう", "たいふう", "たいへん", "たいほ", "たいまつばな",
37865 "たいみんぐ", "たいむ", "たいめん", "たいやき", "たいよう", "たいら", "たいりょく", "たいる", "たいわん", "たうえ",
37866 "たえる", "たおす", "たおる", "たおれる", "たかい", "たかね", "たきび", "たくさん", "たこく", "たこやき",
37867 "たさい", "たしざん", "だじゃれ", "たすける", "たずさわる", "たそがれ", "たたかう", "たたく", "ただしい", "たたみ",
37868 "たちばな", "だっかい", "だっきゃく", "だっこ", "だっしゅつ", "だったい", "たてる", "たとえる", "たなばた", "たにん",
37869 "たぬき", "たのしみ", "たはつ", "たぶん", "たべる", "たぼう", "たまご", "たまる", "だむる", "ためいき",
37870 "ためす", "ためる", "たもつ", "たやすい", "たよる", "たらす", "たりきほんがん", "たりょう", "たりる", "たると",
37871 "たれる", "たれんと", "たろっと", "たわむれる", "だんあつ", "たんい", "たんおん", "たんか", "たんき", "たんけん",
37872 "たんご", "たんさん", "たんじょうび", "だんせい", "たんそく", "たんたい", "だんち", "たんてい", "たんとう", "だんな",
37873 "たんにん", "だんねつ", "たんのう", "たんぴん", "だんぼう", "たんまつ", "たんめい", "だんれつ", "だんろ", "だんわ",
37874 "ちあい", "ちあん", "ちいき", "ちいさい", "ちえん", "ちかい", "ちから", "ちきゅう", "ちきん", "ちけいず",
37875 "ちけん", "ちこく", "ちさい", "ちしき", "ちしりょう", "ちせい", "ちそう", "ちたい", "ちたん", "ちちおや",
37876 "ちつじょ", "ちてき", "ちてん", "ちぬき", "ちぬり", "ちのう", "ちひょう", "ちへいせん", "ちほう", "ちまた",
37877 "ちみつ", "ちみどろ", "ちめいど", "ちゃんこなべ", "ちゅうい", "ちゆりょく", "ちょうし", "ちょさくけん", "ちらし", "ちらみ",
37878 "ちりがみ", "ちりょう", "ちるど", "ちわわ", "ちんたい", "ちんもく", "ついか", "ついたち", "つうか", "つうじょう",
37879 "つうはん", "つうわ", "つかう", "つかれる", "つくね", "つくる", "つけね", "つける", "つごう", "つたえる",
37880 "つづく", "つつじ", "つつむ", "つとめる", "つながる", "つなみ", "つねづね", "つのる", "つぶす", "つまらない",
37881 "つまる", "つみき", "つめたい", "つもり", "つもる", "つよい", "つるぼ", "つるみく", "つわもの", "つわり",
37882 "てあし", "てあて", "てあみ", "ていおん", "ていか", "ていき", "ていけい", "ていこく", "ていさつ", "ていし",
37883 "ていせい", "ていたい", "ていど", "ていねい", "ていひょう", "ていへん", "ていぼう", "てうち", "ておくれ", "てきとう",
37884 "てくび", "でこぼこ", "てさぎょう", "てさげ", "てすり", "てそう", "てちがい", "てちょう", "てつがく", "てつづき",
37885 "でっぱ", "てつぼう", "てつや", "でぬかえ", "てぬき", "てぬぐい", "てのひら", "てはい", "てぶくろ", "てふだ",
37886 "てほどき", "てほん", "てまえ", "てまきずし", "てみじか", "てみやげ", "てらす", "てれび", "てわけ", "てわたし",
37887 "でんあつ", "てんいん", "てんかい", "てんき", "てんぐ", "てんけん", "てんごく", "てんさい", "てんし", "てんすう",
37888 "でんち", "てんてき", "てんとう", "てんない", "てんぷら", "てんぼうだい", "てんめつ", "てんらんかい", "でんりょく", "でんわ",
37889 "どあい", "といれ", "どうかん", "とうきゅう", "どうぐ", "とうし", "とうむぎ", "とおい", "とおか", "とおく",
37890 "とおす", "とおる", "とかい", "とかす", "ときおり", "ときどき", "とくい", "とくしゅう", "とくてん", "とくに",
37891 "とくべつ", "とけい", "とける", "とこや", "とさか", "としょかん", "とそう", "とたん", "とちゅう", "とっきゅう",
37892 "とっくん", "とつぜん", "とつにゅう", "とどける", "ととのえる", "とない", "となえる", "となり", "とのさま", "とばす",
37893 "どぶがわ", "とほう", "とまる", "とめる", "ともだち", "ともる", "どようび", "とらえる", "とんかつ", "どんぶり",
37894 "ないかく", "ないこう", "ないしょ", "ないす", "ないせん", "ないそう", "なおす", "ながい", "なくす", "なげる",
37895 "なこうど", "なさけ", "なたでここ", "なっとう", "なつやすみ", "ななおし", "なにごと", "なにもの", "なにわ", "なのか",
37896 "なふだ", "なまいき", "なまえ", "なまみ", "なみだ", "なめらか", "なめる", "なやむ", "ならう", "ならび",
37897 "ならぶ", "なれる", "なわとび", "なわばり", "にあう", "にいがた", "にうけ", "におい", "にかい", "にがて",
37898 "にきび", "にくしみ", "にくまん", "にげる", "にさんかたんそ", "にしき", "にせもの", "にちじょう", "にちようび", "にっか",
37899 "にっき", "にっけい", "にっこう", "にっさん", "にっしょく", "にっすう", "にっせき", "にってい", "になう", "にほん",
37900 "にまめ", "にもつ", "にやり", "にゅういん", "にりんしゃ", "にわとり", "にんい", "にんか", "にんき", "にんげん",
37901 "にんしき", "にんずう", "にんそう", "にんたい", "にんち", "にんてい", "にんにく", "にんぷ", "にんまり", "にんむ",
37902 "にんめい", "にんよう", "ぬいくぎ", "ぬかす", "ぬぐいとる", "ぬぐう", "ぬくもり", "ぬすむ", "ぬまえび", "ぬめり",
37903 "ぬらす", "ぬんちゃく", "ねあげ", "ねいき", "ねいる", "ねいろ", "ねぐせ", "ねくたい", "ねくら", "ねこぜ",
37904 "ねこむ", "ねさげ", "ねすごす", "ねそべる", "ねだん", "ねつい", "ねっしん", "ねつぞう", "ねったいぎょ", "ねぶそく",
37905 "ねふだ", "ねぼう", "ねほりはほり", "ねまき", "ねまわし", "ねみみ", "ねむい", "ねむたい", "ねもと", "ねらう",
37906 "ねわざ", "ねんいり", "ねんおし", "ねんかん", "ねんきん", "ねんぐ", "ねんざ", "ねんし", "ねんちゃく", "ねんど",
37907 "ねんぴ", "ねんぶつ", "ねんまつ", "ねんりょう", "ねんれい", "のいず", "のおづま", "のがす", "のきなみ", "のこぎり",
37908 "のこす", "のこる", "のせる", "のぞく", "のぞむ", "のたまう", "のちほど", "のっく", "のばす", "のはら",
37909 "のべる", "のぼる", "のみもの", "のやま", "のらいぬ", "のらねこ", "のりもの", "のりゆき", "のれん", "のんき",
37910 "ばあい", "はあく", "ばあさん", "ばいか", "ばいく", "はいけん", "はいご", "はいしん", "はいすい", "はいせん",
37911 "はいそう", "はいち", "ばいばい", "はいれつ", "はえる", "はおる", "はかい", "ばかり", "はかる", "はくしゅ",
37912 "はけん", "はこぶ", "はさみ", "はさん", "はしご", "ばしょ", "はしる", "はせる", "ぱそこん", "はそん",
37913 "はたん", "はちみつ", "はつおん", "はっかく", "はづき", "はっきり", "はっくつ", "はっけん", "はっこう", "はっさん",
37914 "はっしん", "はったつ", "はっちゅう", "はってん", "はっぴょう", "はっぽう", "はなす", "はなび", "はにかむ", "はぶらし",
37915 "はみがき", "はむかう", "はめつ", "はやい", "はやし", "はらう", "はろうぃん", "はわい", "はんい", "はんえい",
37916 "はんおん", "はんかく", "はんきょう", "ばんぐみ", "はんこ", "はんしゃ", "はんすう", "はんだん", "ぱんち", "ぱんつ",
37917 "はんてい", "はんとし", "はんのう", "はんぱ", "はんぶん", "はんぺん", "はんぼうき", "はんめい", "はんらん", "はんろん",
37918 "ひいき", "ひうん", "ひえる", "ひかく", "ひかり", "ひかる", "ひかん", "ひくい", "ひけつ", "ひこうき",
37919 "ひこく", "ひさい", "ひさしぶり", "ひさん", "びじゅつかん", "ひしょ", "ひそか", "ひそむ", "ひたむき", "ひだり",
37920 "ひたる", "ひつぎ", "ひっこし", "ひっし", "ひつじゅひん", "ひっす", "ひつぜん", "ぴったり", "ぴっちり", "ひつよう",
37921 "ひてい", "ひとごみ", "ひなまつり", "ひなん", "ひねる", "ひはん", "ひびく", "ひひょう", "ひほう", "ひまわり",
37922 "ひまん", "ひみつ", "ひめい", "ひめじし", "ひやけ", "ひやす", "ひよう", "びょうき", "ひらがな", "ひらく",
37923 "ひりつ", "ひりょう", "ひるま", "ひるやすみ", "ひれい", "ひろい", "ひろう", "ひろき", "ひろゆき", "ひんかく",
37924 "ひんけつ", "ひんこん", "ひんしゅ", "ひんそう", "ぴんち", "ひんぱん", "びんぼう", "ふあん", "ふいうち", "ふうけい",
37925 "ふうせん", "ぷうたろう", "ふうとう", "ふうふ", "ふえる", "ふおん", "ふかい", "ふきん", "ふくざつ", "ふくぶくろ",
37926 "ふこう", "ふさい", "ふしぎ", "ふじみ", "ふすま", "ふせい", "ふせぐ", "ふそく", "ぶたにく", "ふたん",
37927 "ふちょう", "ふつう", "ふつか", "ふっかつ", "ふっき", "ふっこく", "ぶどう", "ふとる", "ふとん", "ふのう",
37928 "ふはい", "ふひょう", "ふへん", "ふまん", "ふみん", "ふめつ", "ふめん", "ふよう", "ふりこ", "ふりる",
37929 "ふるい", "ふんいき", "ぶんがく", "ぶんぐ", "ふんしつ", "ぶんせき", "ふんそう", "ぶんぽう", "へいあん", "へいおん",
37930 "へいがい", "へいき", "へいげん", "へいこう", "へいさ", "へいしゃ", "へいせつ", "へいそ", "へいたく", "へいてん",
37931 "へいねつ", "へいわ", "へきが", "へこむ", "べにいろ", "べにしょうが", "へらす", "へんかん", "べんきょう", "べんごし",
37932 "へんさい", "へんたい", "べんり", "ほあん", "ほいく", "ぼうぎょ", "ほうこく", "ほうそう", "ほうほう", "ほうもん",
37933 "ほうりつ", "ほえる", "ほおん", "ほかん", "ほきょう", "ぼきん", "ほくろ", "ほけつ", "ほけん", "ほこう",
37934 "ほこる", "ほしい", "ほしつ", "ほしゅ", "ほしょう", "ほせい", "ほそい", "ほそく", "ほたて", "ほたる",
37935 "ぽちぶくろ", "ほっきょく", "ほっさ", "ほったん", "ほとんど", "ほめる", "ほんい", "ほんき", "ほんけ", "ほんしつ",
37936 "ほんやく", "まいにち", "まかい", "まかせる", "まがる", "まける", "まこと", "まさつ", "まじめ", "ますく",
37937 "まぜる", "まつり", "まとめ", "まなぶ", "まぬけ", "まねく", "まほう", "まもる", "まゆげ", "まよう",
37938 "まろやか", "まわす", "まわり", "まわる", "まんが", "まんきつ", "まんぞく", "まんなか", "みいら", "みうち",
37939 "みえる", "みがく", "みかた", "みかん", "みけん", "みこん", "みじかい", "みすい", "みすえる", "みせる",
37940 "みっか", "みつかる", "みつける", "みてい", "みとめる", "みなと", "みなみかさい", "みねらる", "みのう", "みのがす",
37941 "みほん", "みもと", "みやげ", "みらい", "みりょく", "みわく", "みんか", "みんぞく", "むいか", "むえき",
37942 "むえん", "むかい", "むかう", "むかえ", "むかし", "むぎちゃ", "むける", "むげん", "むさぼる", "むしあつい",
37943 "むしば", "むじゅん", "むしろ", "むすう", "むすこ", "むすぶ", "むすめ", "むせる", "むせん", "むちゅう",
37944 "むなしい", "むのう", "むやみ", "むよう", "むらさき", "むりょう", "むろん", "めいあん", "めいうん", "めいえん",
37945 "めいかく", "めいきょく", "めいさい", "めいし", "めいそう", "めいぶつ", "めいれい", "めいわく", "めぐまれる", "めざす",
37946 "めした", "めずらしい", "めだつ", "めまい", "めやす", "めんきょ", "めんせき", "めんどう", "もうしあげる", "もうどうけん",
37947 "もえる", "もくし", "もくてき", "もくようび", "もちろん", "もどる", "もらう", "もんく", "もんだい", "やおや",
37948 "やける", "やさい", "やさしい", "やすい", "やすたろう", "やすみ", "やせる", "やそう", "やたい", "やちん",
37949 "やっと", "やっぱり", "やぶる", "やめる", "ややこしい", "やよい", "やわらかい", "ゆうき", "ゆうびんきょく", "ゆうべ",
37950 "ゆうめい", "ゆけつ", "ゆしゅつ", "ゆせん", "ゆそう", "ゆたか", "ゆちゃく", "ゆでる", "ゆにゅう", "ゆびわ",
37951 "ゆらい", "ゆれる", "ようい", "ようか", "ようきゅう", "ようじ", "ようす", "ようちえん", "よかぜ", "よかん",
37952 "よきん", "よくせい", "よくぼう", "よけい", "よごれる", "よさん", "よしゅう", "よそう", "よそく", "よっか",
37953 "よてい", "よどがわく", "よねつ", "よやく", "よゆう", "よろこぶ", "よろしい", "らいう", "らくがき", "らくご",
37954 "らくさつ", "らくだ", "らしんばん", "らせん", "らぞく", "らたい", "らっか", "られつ", "りえき", "りかい",
37955 "りきさく", "りきせつ", "りくぐん", "りくつ", "りけん", "りこう", "りせい", "りそう", "りそく", "りてん",
37956 "りねん", "りゆう", "りゅうがく", "りよう", "りょうり", "りょかん", "りょくちゃ", "りょこう", "りりく", "りれき",
37957 "りろん", "りんご", "るいけい", "るいさい", "るいじ", "るいせき", "るすばん", "るりがわら", "れいかん", "れいぎ",
37958 "れいせい", "れいぞうこ", "れいとう", "れいぼう", "れきし", "れきだい", "れんあい", "れんけい", "れんこん", "れんさい",
37959 "れんしゅう", "れんぞく", "れんらく", "ろうか", "ろうご", "ろうじん", "ろうそく", "ろくが", "ろこつ", "ろじうら",
37960 "ろしゅつ", "ろせん", "ろてん", "ろめん", "ろれつ", "ろんぎ", "ろんぱ", "ろんぶん", "ろんり", "わかす",
37961 "わかめ", "わかやま", "わかれる", "わしつ", "わじまし", "わすれもの", "わらう", "われる"]
37963 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
37964 WORDLISTS["spanish"] = [
37965 "ábaco", "abdomen", "abeja", "abierto", "abogado", "abono", "aborto", "abrazo", "abrir", "abuelo",
37966 "abuso", "acabar", "academia", "acceso", "acción", "aceite", "acelga", "acento", "aceptar", "ácido",
37967 "aclarar", "acné", "acoger", "acoso", "activo", "acto", "actriz", "actuar", "acudir", "acuerdo",
37968 "acusar", "adicto", "admitir", "adoptar", "adorno", "aduana", "adulto", "aéreo", "afectar", "afición",
37969 "afinar", "afirmar", "ágil", "agitar", "agonía", "agosto", "agotar", "agregar", "agrio", "agua",
37970 "agudo", "águila", "aguja", "ahogo", "ahorro", "aire", "aislar", "ajedrez", "ajeno", "ajuste",
37971 "alacrán", "alambre", "alarma", "alba", "álbum", "alcalde", "aldea", "alegre", "alejar", "alerta",
37972 "aleta", "alfiler", "alga", "algodón", "aliado", "aliento", "alivio", "alma", "almeja", "almíbar",
37973 "altar", "alteza", "altivo", "alto", "altura", "alumno", "alzar", "amable", "amante", "amapola",
37974 "amargo", "amasar", "ámbar", "ámbito", "ameno", "amigo", "amistad", "amor", "amparo", "amplio",
37975 "ancho", "anciano", "ancla", "andar", "andén", "anemia", "ángulo", "anillo", "ánimo", "anís",
37976 "anotar", "antena", "antiguo", "antojo", "anual", "anular", "anuncio", "añadir", "añejo", "año",
37977 "apagar", "aparato", "apetito", "apio", "aplicar", "apodo", "aporte", "apoyo", "aprender", "aprobar",
37978 "apuesta", "apuro", "arado", "araña", "arar", "árbitro", "árbol", "arbusto", "archivo", "arco",
37979 "arder", "ardilla", "arduo", "área", "árido", "aries", "armonía", "arnés", "aroma", "arpa",
37980 "arpón", "arreglo", "arroz", "arruga", "arte", "artista", "asa", "asado", "asalto", "ascenso",
37981 "asegurar", "aseo", "asesor", "asiento", "asilo", "asistir", "asno", "asombro", "áspero", "astilla",
37982 "astro", "astuto", "asumir", "asunto", "atajo", "ataque", "atar", "atento", "ateo", "ático",
37983 "atleta", "átomo", "atraer", "atroz", "atún", "audaz", "audio", "auge", "aula", "aumento",
37984 "ausente", "autor", "aval", "avance", "avaro", "ave", "avellana", "avena", "avestruz", "avión",
37985 "aviso", "ayer", "ayuda", "ayuno", "azafrán", "azar", "azote", "azúcar", "azufre", "azul",
37986 "baba", "babor", "bache", "bahía", "baile", "bajar", "balanza", "balcón", "balde", "bambú",
37987 "banco", "banda", "baño", "barba", "barco", "barniz", "barro", "báscula", "bastón", "basura",
37988 "batalla", "batería", "batir", "batuta", "baúl", "bazar", "bebé", "bebida", "bello", "besar",
37989 "beso", "bestia", "bicho", "bien", "bingo", "blanco", "bloque", "blusa", "boa", "bobina",
37990 "bobo", "boca", "bocina", "boda", "bodega", "boina", "bola", "bolero", "bolsa", "bomba",
37991 "bondad", "bonito", "bono", "bonsái", "borde", "borrar", "bosque", "bote", "botín", "bóveda",
37992 "bozal", "bravo", "brazo", "brecha", "breve", "brillo", "brinco", "brisa", "broca", "broma",
37993 "bronce", "brote", "bruja", "brusco", "bruto", "buceo", "bucle", "bueno", "buey", "bufanda",
37994 "bufón", "búho", "buitre", "bulto", "burbuja", "burla", "burro", "buscar", "butaca", "buzón",
37995 "caballo", "cabeza", "cabina", "cabra", "cacao", "cadáver", "cadena", "caer", "café", "caída",
37996 "caimán", "caja", "cajón", "cal", "calamar", "calcio", "caldo", "calidad", "calle", "calma",
37997 "calor", "calvo", "cama", "cambio", "camello", "camino", "campo", "cáncer", "candil", "canela",
37998 "canguro", "canica", "canto", "caña", "cañón", "caoba", "caos", "capaz", "capitán", "capote",
37999 "captar", "capucha", "cara", "carbón", "cárcel", "careta", "carga", "cariño", "carne", "carpeta",
38000 "carro", "carta", "casa", "casco", "casero", "caspa", "castor", "catorce", "catre", "caudal",
38001 "causa", "cazo", "cebolla", "ceder", "cedro", "celda", "célebre", "celoso", "célula", "cemento",
38002 "ceniza", "centro", "cerca", "cerdo", "cereza", "cero", "cerrar", "certeza", "césped", "cetro",
38003 "chacal", "chaleco", "champú", "chancla", "chapa", "charla", "chico", "chiste", "chivo", "choque",
38004 "choza", "chuleta", "chupar", "ciclón", "ciego", "cielo", "cien", "cierto", "cifra", "cigarro",
38005 "cima", "cinco", "cine", "cinta", "ciprés", "circo", "ciruela", "cisne", "cita", "ciudad",
38006 "clamor", "clan", "claro", "clase", "clave", "cliente", "clima", "clínica", "cobre", "cocción",
38007 "cochino", "cocina", "coco", "código", "codo", "cofre", "coger", "cohete", "cojín", "cojo",
38008 "cola", "colcha", "colegio", "colgar", "colina", "collar", "colmo", "columna", "combate", "comer",
38009 "comida", "cómodo", "compra", "conde", "conejo", "conga", "conocer", "consejo", "contar", "copa",
38010 "copia", "corazón", "corbata", "corcho", "cordón", "corona", "correr", "coser", "cosmos", "costa",
38011 "cráneo", "cráter", "crear", "crecer", "creído", "crema", "cría", "crimen", "cripta", "crisis",
38012 "cromo", "crónica", "croqueta", "crudo", "cruz", "cuadro", "cuarto", "cuatro", "cubo", "cubrir",
38013 "cuchara", "cuello", "cuento", "cuerda", "cuesta", "cueva", "cuidar", "culebra", "culpa", "culto",
38014 "cumbre", "cumplir", "cuna", "cuneta", "cuota", "cupón", "cúpula", "curar", "curioso", "curso",
38015 "curva", "cutis", "dama", "danza", "dar", "dardo", "dátil", "deber", "débil", "década",
38016 "decir", "dedo", "defensa", "definir", "dejar", "delfín", "delgado", "delito", "demora", "denso",
38017 "dental", "deporte", "derecho", "derrota", "desayuno", "deseo", "desfile", "desnudo", "destino", "desvío",
38018 "detalle", "detener", "deuda", "día", "diablo", "diadema", "diamante", "diana", "diario", "dibujo",
38019 "dictar", "diente", "dieta", "diez", "difícil", "digno", "dilema", "diluir", "dinero", "directo",
38020 "dirigir", "disco", "diseño", "disfraz", "diva", "divino", "doble", "doce", "dolor", "domingo",
38021 "don", "donar", "dorado", "dormir", "dorso", "dos", "dosis", "dragón", "droga", "ducha",
38022 "duda", "duelo", "dueño", "dulce", "dúo", "duque", "durar", "dureza", "duro", "ébano",
38023 "ebrio", "echar", "eco", "ecuador", "edad", "edición", "edificio", "editor", "educar", "efecto",
38024 "eficaz", "eje", "ejemplo", "elefante", "elegir", "elemento", "elevar", "elipse", "élite", "elixir",
38025 "elogio", "eludir", "embudo", "emitir", "emoción", "empate", "empeño", "empleo", "empresa", "enano",
38026 "encargo", "enchufe", "encía", "enemigo", "enero", "enfado", "enfermo", "engaño", "enigma", "enlace",
38027 "enorme", "enredo", "ensayo", "enseñar", "entero", "entrar", "envase", "envío", "época", "equipo",
38028 "erizo", "escala", "escena", "escolar", "escribir", "escudo", "esencia", "esfera", "esfuerzo", "espada",
38029 "espejo", "espía", "esposa", "espuma", "esquí", "estar", "este", "estilo", "estufa", "etapa",
38030 "eterno", "ética", "etnia", "evadir", "evaluar", "evento", "evitar", "exacto", "examen", "exceso",
38031 "excusa", "exento", "exigir", "exilio", "existir", "éxito", "experto", "explicar", "exponer", "extremo",
38032 "fábrica", "fábula", "fachada", "fácil", "factor", "faena", "faja", "falda", "fallo", "falso",
38033 "faltar", "fama", "familia", "famoso", "faraón", "farmacia", "farol", "farsa", "fase", "fatiga",
38034 "fauna", "favor", "fax", "febrero", "fecha", "feliz", "feo", "feria", "feroz", "fértil",
38035 "fervor", "festín", "fiable", "fianza", "fiar", "fibra", "ficción", "ficha", "fideo", "fiebre",
38036 "fiel", "fiera", "fiesta", "figura", "fijar", "fijo", "fila", "filete", "filial", "filtro",
38037 "fin", "finca", "fingir", "finito", "firma", "flaco", "flauta", "flecha", "flor", "flota",
38038 "fluir", "flujo", "flúor", "fobia", "foca", "fogata", "fogón", "folio", "folleto", "fondo",
38039 "forma", "forro", "fortuna", "forzar", "fosa", "foto", "fracaso", "frágil", "franja", "frase",
38040 "fraude", "freír", "freno", "fresa", "frío", "frito", "fruta", "fuego", "fuente", "fuerza",
38041 "fuga", "fumar", "función", "funda", "furgón", "furia", "fusil", "fútbol", "futuro", "gacela",
38042 "gafas", "gaita", "gajo", "gala", "galería", "gallo", "gamba", "ganar", "gancho", "ganga",
38043 "ganso", "garaje", "garza", "gasolina", "gastar", "gato", "gavilán", "gemelo", "gemir", "gen",
38044 "género", "genio", "gente", "geranio", "gerente", "germen", "gesto", "gigante", "gimnasio", "girar",
38045 "giro", "glaciar", "globo", "gloria", "gol", "golfo", "goloso", "golpe", "goma", "gordo",
38046 "gorila", "gorra", "gota", "goteo", "gozar", "grada", "gráfico", "grano", "grasa", "gratis",
38047 "grave", "grieta", "grillo", "gripe", "gris", "grito", "grosor", "grúa", "grueso", "grumo",
38048 "grupo", "guante", "guapo", "guardia", "guerra", "guía", "guiño", "guion", "guiso", "guitarra",
38049 "gusano", "gustar", "haber", "hábil", "hablar", "hacer", "hacha", "hada", "hallar", "hamaca",
38050 "harina", "haz", "hazaña", "hebilla", "hebra", "hecho", "helado", "helio", "hembra", "herir",
38051 "hermano", "héroe", "hervir", "hielo", "hierro", "hígado", "higiene", "hijo", "himno", "historia",
38052 "hocico", "hogar", "hoguera", "hoja", "hombre", "hongo", "honor", "honra", "hora", "hormiga",
38053 "horno", "hostil", "hoyo", "hueco", "huelga", "huerta", "hueso", "huevo", "huida", "huir",
38054 "humano", "húmedo", "humilde", "humo", "hundir", "huracán", "hurto", "icono", "ideal", "idioma",
38055 "ídolo", "iglesia", "iglú", "igual", "ilegal", "ilusión", "imagen", "imán", "imitar", "impar",
38056 "imperio", "imponer", "impulso", "incapaz", "índice", "inerte", "infiel", "informe", "ingenio", "inicio",
38057 "inmenso", "inmune", "innato", "insecto", "instante", "interés", "íntimo", "intuir", "inútil", "invierno",
38058 "ira", "iris", "ironía", "isla", "islote", "jabalí", "jabón", "jamón", "jarabe", "jardín",
38059 "jarra", "jaula", "jazmín", "jefe", "jeringa", "jinete", "jornada", "joroba", "joven", "joya",
38060 "juerga", "jueves", "juez", "jugador", "jugo", "juguete", "juicio", "junco", "jungla", "junio",
38061 "juntar", "júpiter", "jurar", "justo", "juvenil", "juzgar", "kilo", "koala", "labio", "lacio",
38062 "lacra", "lado", "ladrón", "lagarto", "lágrima", "laguna", "laico", "lamer", "lámina", "lámpara",
38063 "lana", "lancha", "langosta", "lanza", "lápiz", "largo", "larva", "lástima", "lata", "látex",
38064 "latir", "laurel", "lavar", "lazo", "leal", "lección", "leche", "lector", "leer", "legión",
38065 "legumbre", "lejano", "lengua", "lento", "leña", "león", "leopardo", "lesión", "letal", "letra",
38066 "leve", "leyenda", "libertad", "libro", "licor", "líder", "lidiar", "lienzo", "liga", "ligero",
38067 "lima", "límite", "limón", "limpio", "lince", "lindo", "línea", "lingote", "lino", "linterna",
38068 "líquido", "liso", "lista", "litera", "litio", "litro", "llaga", "llama", "llanto", "llave",
38069 "llegar", "llenar", "llevar", "llorar", "llover", "lluvia", "lobo", "loción", "loco", "locura",
38070 "lógica", "logro", "lombriz", "lomo", "lonja", "lote", "lucha", "lucir", "lugar", "lujo",
38071 "luna", "lunes", "lupa", "lustro", "luto", "luz", "maceta", "macho", "madera", "madre",
38072 "maduro", "maestro", "mafia", "magia", "mago", "maíz", "maldad", "maleta", "malla", "malo",
38073 "mamá", "mambo", "mamut", "manco", "mando", "manejar", "manga", "maniquí", "manjar", "mano",
38074 "manso", "manta", "mañana", "mapa", "máquina", "mar", "marco", "marea", "marfil", "margen",
38075 "marido", "mármol", "marrón", "martes", "marzo", "masa", "máscara", "masivo", "matar", "materia",
38076 "matiz", "matriz", "máximo", "mayor", "mazorca", "mecha", "medalla", "medio", "médula", "mejilla",
38077 "mejor", "melena", "melón", "memoria", "menor", "mensaje", "mente", "menú", "mercado", "merengue",
38078 "mérito", "mes", "mesón", "meta", "meter", "método", "metro", "mezcla", "miedo", "miel",
38079 "miembro", "miga", "mil", "milagro", "militar", "millón", "mimo", "mina", "minero", "mínimo",
38080 "minuto", "miope", "mirar", "misa", "miseria", "misil", "mismo", "mitad", "mito", "mochila",
38081 "moción", "moda", "modelo", "moho", "mojar", "molde", "moler", "molino", "momento", "momia",
38082 "monarca", "moneda", "monja", "monto", "moño", "morada", "morder", "moreno", "morir", "morro",
38083 "morsa", "mortal", "mosca", "mostrar", "motivo", "mover", "móvil", "mozo", "mucho", "mudar",
38084 "mueble", "muela", "muerte", "muestra", "mugre", "mujer", "mula", "muleta", "multa", "mundo",
38085 "muñeca", "mural", "muro", "músculo", "museo", "musgo", "música", "muslo", "nácar", "nación",
38086 "nadar", "naipe", "naranja", "nariz", "narrar", "nasal", "natal", "nativo", "natural", "náusea",
38087 "naval", "nave", "navidad", "necio", "néctar", "negar", "negocio", "negro", "neón", "nervio",
38088 "neto", "neutro", "nevar", "nevera", "nicho", "nido", "niebla", "nieto", "niñez", "niño",
38089 "nítido", "nivel", "nobleza", "noche", "nómina", "noria", "norma", "norte", "nota", "noticia",
38090 "novato", "novela", "novio", "nube", "nuca", "núcleo", "nudillo", "nudo", "nuera", "nueve",
38091 "nuez", "nulo", "número", "nutria", "oasis", "obeso", "obispo", "objeto", "obra", "obrero",
38092 "observar", "obtener", "obvio", "oca", "ocaso", "océano", "ochenta", "ocho", "ocio", "ocre",
38093 "octavo", "octubre", "oculto", "ocupar", "ocurrir", "odiar", "odio", "odisea", "oeste", "ofensa",
38094 "oferta", "oficio", "ofrecer", "ogro", "oído", "oír", "ojo", "ola", "oleada", "olfato",
38095 "olivo", "olla", "olmo", "olor", "olvido", "ombligo", "onda", "onza", "opaco", "opción",
38096 "ópera", "opinar", "oponer", "optar", "óptica", "opuesto", "oración", "orador", "oral", "órbita",
38097 "orca", "orden", "oreja", "órgano", "orgía", "orgullo", "oriente", "origen", "orilla", "oro",
38098 "orquesta", "oruga", "osadía", "oscuro", "osezno", "oso", "ostra", "otoño", "otro", "oveja",
38099 "óvulo", "óxido", "oxígeno", "oyente", "ozono", "pacto", "padre", "paella", "página", "pago",
38100 "país", "pájaro", "palabra", "palco", "paleta", "pálido", "palma", "paloma", "palpar", "pan",
38101 "panal", "pánico", "pantera", "pañuelo", "papá", "papel", "papilla", "paquete", "parar", "parcela",
38102 "pared", "parir", "paro", "párpado", "parque", "párrafo", "parte", "pasar", "paseo", "pasión",
38103 "paso", "pasta", "pata", "patio", "patria", "pausa", "pauta", "pavo", "payaso", "peatón",
38104 "pecado", "pecera", "pecho", "pedal", "pedir", "pegar", "peine", "pelar", "peldaño", "pelea",
38105 "peligro", "pellejo", "pelo", "peluca", "pena", "pensar", "peñón", "peón", "peor", "pepino",
38106 "pequeño", "pera", "percha", "perder", "pereza", "perfil", "perico", "perla", "permiso", "perro",
38107 "persona", "pesa", "pesca", "pésimo", "pestaña", "pétalo", "petróleo", "pez", "pezuña", "picar",
38108 "pichón", "pie", "piedra", "pierna", "pieza", "pijama", "pilar", "piloto", "pimienta", "pino",
38109 "pintor", "pinza", "piña", "piojo", "pipa", "pirata", "pisar", "piscina", "piso", "pista",
38110 "pitón", "pizca", "placa", "plan", "plata", "playa", "plaza", "pleito", "pleno", "plomo",
38111 "pluma", "plural", "pobre", "poco", "poder", "podio", "poema", "poesía", "poeta", "polen",
38112 "policía", "pollo", "polvo", "pomada", "pomelo", "pomo", "pompa", "poner", "porción", "portal",
38113 "posada", "poseer", "posible", "poste", "potencia", "potro", "pozo", "prado", "precoz", "pregunta",
38114 "premio", "prensa", "preso", "previo", "primo", "príncipe", "prisión", "privar", "proa", "probar",
38115 "proceso", "producto", "proeza", "profesor", "programa", "prole", "promesa", "pronto", "propio", "próximo",
38116 "prueba", "público", "puchero", "pudor", "pueblo", "puerta", "puesto", "pulga", "pulir", "pulmón",
38117 "pulpo", "pulso", "puma", "punto", "puñal", "puño", "pupa", "pupila", "puré", "quedar",
38118 "queja", "quemar", "querer", "queso", "quieto", "química", "quince", "quitar", "rábano", "rabia",
38119 "rabo", "ración", "radical", "raíz", "rama", "rampa", "rancho", "rango", "rapaz", "rápido",
38120 "rapto", "rasgo", "raspa", "rato", "rayo", "raza", "razón", "reacción", "realidad", "rebaño",
38121 "rebote", "recaer", "receta", "rechazo", "recoger", "recreo", "recto", "recurso", "red", "redondo",
38122 "reducir", "reflejo", "reforma", "refrán", "refugio", "regalo", "regir", "regla", "regreso", "rehén",
38123 "reino", "reír", "reja", "relato", "relevo", "relieve", "relleno", "reloj", "remar", "remedio",
38124 "remo", "rencor", "rendir", "renta", "reparto", "repetir", "reposo", "reptil", "res", "rescate",
38125 "resina", "respeto", "resto", "resumen", "retiro", "retorno", "retrato", "reunir", "revés", "revista",
38126 "rey", "rezar", "rico", "riego", "rienda", "riesgo", "rifa", "rígido", "rigor", "rincón",
38127 "riñón", "río", "riqueza", "risa", "ritmo", "rito", "rizo", "roble", "roce", "rociar",
38128 "rodar", "rodeo", "rodilla", "roer", "rojizo", "rojo", "romero", "romper", "ron", "ronco",
38129 "ronda", "ropa", "ropero", "rosa", "rosca", "rostro", "rotar", "rubí", "rubor", "rudo",
38130 "rueda", "rugir", "ruido", "ruina", "ruleta", "rulo", "rumbo", "rumor", "ruptura", "ruta",
38131 "rutina", "sábado", "saber", "sabio", "sable", "sacar", "sagaz", "sagrado", "sala", "saldo",
38132 "salero", "salir", "salmón", "salón", "salsa", "salto", "salud", "salvar", "samba", "sanción",
38133 "sandía", "sanear", "sangre", "sanidad", "sano", "santo", "sapo", "saque", "sardina", "sartén",
38134 "sastre", "satán", "sauna", "saxofón", "sección", "seco", "secreto", "secta", "sed", "seguir",
38135 "seis", "sello", "selva", "semana", "semilla", "senda", "sensor", "señal", "señor", "separar",
38136 "sepia", "sequía", "ser", "serie", "sermón", "servir", "sesenta", "sesión", "seta", "setenta",
38137 "severo", "sexo", "sexto", "sidra", "siesta", "siete", "siglo", "signo", "sílaba", "silbar",
38138 "silencio", "silla", "símbolo", "simio", "sirena", "sistema", "sitio", "situar", "sobre", "socio",
38139 "sodio", "sol", "solapa", "soldado", "soledad", "sólido", "soltar", "solución", "sombra", "sondeo",
38140 "sonido", "sonoro", "sonrisa", "sopa", "soplar", "soporte", "sordo", "sorpresa", "sorteo", "sostén",
38141 "sótano", "suave", "subir", "suceso", "sudor", "suegra", "suelo", "sueño", "suerte", "sufrir",
38142 "sujeto", "sultán", "sumar", "superar", "suplir", "suponer", "supremo", "sur", "surco", "sureño",
38143 "surgir", "susto", "sutil", "tabaco", "tabique", "tabla", "tabú", "taco", "tacto", "tajo",
38144 "talar", "talco", "talento", "talla", "talón", "tamaño", "tambor", "tango", "tanque", "tapa",
38145 "tapete", "tapia", "tapón", "taquilla", "tarde", "tarea", "tarifa", "tarjeta", "tarot", "tarro",
38146 "tarta", "tatuaje", "tauro", "taza", "tazón", "teatro", "techo", "tecla", "técnica", "tejado",
38147 "tejer", "tejido", "tela", "teléfono", "tema", "temor", "templo", "tenaz", "tender", "tener",
38148 "tenis", "tenso", "teoría", "terapia", "terco", "término", "ternura", "terror", "tesis", "tesoro",
38149 "testigo", "tetera", "texto", "tez", "tibio", "tiburón", "tiempo", "tienda", "tierra", "tieso",
38150 "tigre", "tijera", "tilde", "timbre", "tímido", "timo", "tinta", "tío", "típico", "tipo",
38151 "tira", "tirón", "titán", "títere", "título", "tiza", "toalla", "tobillo", "tocar", "tocino",
38152 "todo", "toga", "toldo", "tomar", "tono", "tonto", "topar", "tope", "toque", "tórax",
38153 "torero", "tormenta", "torneo", "toro", "torpedo", "torre", "torso", "tortuga", "tos", "tosco",
38154 "toser", "tóxico", "trabajo", "tractor", "traer", "tráfico", "trago", "traje", "tramo", "trance",
38155 "trato", "trauma", "trazar", "trébol", "tregua", "treinta", "tren", "trepar", "tres", "tribu",
38156 "trigo", "tripa", "triste", "triunfo", "trofeo", "trompa", "tronco", "tropa", "trote", "trozo",
38157 "truco", "trueno", "trufa", "tubería", "tubo", "tuerto", "tumba", "tumor", "túnel", "túnica",
38158 "turbina", "turismo", "turno", "tutor", "ubicar", "úlcera", "umbral", "unidad", "unir", "universo",
38159 "uno", "untar", "uña", "urbano", "urbe", "urgente", "urna", "usar", "usuario", "útil",
38160 "utopía", "uva", "vaca", "vacío", "vacuna", "vagar", "vago", "vaina", "vajilla", "vale",
38161 "válido", "valle", "valor", "válvula", "vampiro", "vara", "variar", "varón", "vaso", "vecino",
38162 "vector", "vehículo", "veinte", "vejez", "vela", "velero", "veloz", "vena", "vencer", "venda",
38163 "veneno", "vengar", "venir", "venta", "venus", "ver", "verano", "verbo", "verde", "vereda",
38164 "verja", "verso", "verter", "vía", "viaje", "vibrar", "vicio", "víctima", "vida", "vídeo",
38165 "vidrio", "viejo", "viernes", "vigor", "vil", "villa", "vinagre", "vino", "viñedo", "violín",
38166 "viral", "virgo", "virtud", "visor", "víspera", "vista", "vitamina", "viudo", "vivaz", "vivero",
38167 "vivir", "vivo", "volcán", "volumen", "volver", "voraz", "votar", "voto", "voz", "vuelo",
38168 "vulgar", "yacer", "yate", "yegua", "yema", "yerno", "yeso", "yodo", "yoga", "yogur",
38169 "zafiro", "zanja", "zapato", "zarza", "zona", "zorro", "zumo", "zurdo"]
38171 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
38172 WORDLISTS["chinese_simplified"] = [
38173 "的", "一", "是", "在", "不", "了", "有", "和", "人", "这",
38174 "中", "大", "为", "上", "个", "国", "我", "以", "要", "他",
38175 "时", "来", "用", "们", "生", "到", "作", "地", "于", "出",
38176 "就", "分", "对", "成", "会", "可", "主", "发", "年", "动",
38177 "同", "工", "也", "能", "下", "过", "子", "说", "产", "种",
38178 "面", "而", "方", "后", "多", "定", "行", "学", "法", "所",
38179 "民", "得", "经", "十", "三", "之", "进", "着", "等", "部",
38180 "度", "家", "电", "力", "里", "如", "水", "化", "高", "自",
38181 "二", "理", "起", "小", "物", "现", "实", "加", "量", "都",
38182 "两", "体", "制", "机", "当", "使", "点", "从", "业", "本",
38183 "去", "把", "性", "好", "应", "开", "它", "合", "还", "因",
38184 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
38185 "那", "社", "义", "事", "平", "形", "相", "全", "表", "间",
38186 "样", "与", "关", "各", "重", "新", "线", "内", "数", "正",
38187 "心", "反", "你", "明", "看", "原", "又", "么", "利", "比",
38188 "或", "但", "质", "气", "第", "向", "道", "命", "此", "变",
38189 "条", "只", "没", "结", "解", "问", "意", "建", "月", "公",
38190 "无", "系", "军", "很", "情", "者", "最", "立", "代", "想",
38191 "已", "通", "并", "提", "直", "题", "党", "程", "展", "五",
38192 "果", "料", "象", "员", "革", "位", "入", "常", "文", "总",
38193 "次", "品", "式", "活", "设", "及", "管", "特", "件", "长",
38194 "求", "老", "头", "基", "资", "边", "流", "路", "级", "少",
38195 "图", "山", "统", "接", "知", "较", "将", "组", "见", "计",
38196 "别", "她", "手", "角", "期", "根", "论", "运", "农", "指",
38197 "几", "九", "区", "强", "放", "决", "西", "被", "干", "做",
38198 "必", "战", "先", "回", "则", "任", "取", "据", "处", "队",
38199 "南", "给", "色", "光", "门", "即", "保", "治", "北", "造",
38200 "百", "规", "热", "领", "七", "海", "口", "东", "导", "器",
38201 "压", "志", "世", "金", "增", "争", "济", "阶", "油", "思",
38202 "术", "极", "交", "受", "联", "什", "认", "六", "共", "权",
38203 "收", "证", "改", "清", "美", "再", "采", "转", "更", "单",
38204 "风", "切", "打", "白", "教", "速", "花", "带", "安", "场",
38205 "身", "车", "例", "真", "务", "具", "万", "每", "目", "至",
38206 "达", "走", "积", "示", "议", "声", "报", "斗", "完", "类",
38207 "八", "离", "华", "名", "确", "才", "科", "张", "信", "马",
38208 "节", "话", "米", "整", "空", "元", "况", "今", "集", "温",
38209 "传", "土", "许", "步", "群", "广", "石", "记", "需", "段",
38210 "研", "界", "拉", "林", "律", "叫", "且", "究", "观", "越",
38211 "织", "装", "影", "算", "低", "持", "音", "众", "书", "布",
38212 "复", "容", "儿", "须", "际", "商", "非", "验", "连", "断",
38213 "深", "难", "近", "矿", "千", "周", "委", "素", "技", "备",
38214 "半", "办", "青", "省", "列", "习", "响", "约", "支", "般",
38215 "史", "感", "劳", "便", "团", "往", "酸", "历", "市", "克",
38216 "何", "除", "消", "构", "府", "称", "太", "准", "精", "值",
38217 "号", "率", "族", "维", "划", "选", "标", "写", "存", "候",
38218 "毛", "亲", "快", "效", "斯", "院", "查", "江", "型", "眼",
38219 "王", "按", "格", "养", "易", "置", "派", "层", "片", "始",
38220 "却", "专", "状", "育", "厂", "京", "识", "适", "属", "圆",
38221 "包", "火", "住", "调", "满", "县", "局", "照", "参", "红",
38222 "细", "引", "听", "该", "铁", "价", "严", "首", "底", "液",
38223 "官", "德", "随", "病", "苏", "失", "尔", "死", "讲", "配",
38224 "女", "黄", "推", "显", "谈", "罪", "神", "艺", "呢", "席",
38225 "含", "企", "望", "密", "批", "营", "项", "防", "举", "球",
38226 "英", "氧", "势", "告", "李", "台", "落", "木", "帮", "轮",
38227 "破", "亚", "师", "围", "注", "远", "字", "材", "排", "供",
38228 "河", "态", "封", "另", "施", "减", "树", "溶", "怎", "止",
38229 "案", "言", "士", "均", "武", "固", "叶", "鱼", "波", "视",
38230 "仅", "费", "紧", "爱", "左", "章", "早", "朝", "害", "续",
38231 "轻", "服", "试", "食", "充", "兵", "源", "判", "护", "司",
38232 "足", "某", "练", "差", "致", "板", "田", "降", "黑", "犯",
38233 "负", "击", "范", "继", "兴", "似", "余", "坚", "曲", "输",
38234 "修", "故", "城", "夫", "够", "送", "笔", "船", "占", "右",
38235 "财", "吃", "富", "春", "职", "觉", "汉", "画", "功", "巴",
38236 "跟", "虽", "杂", "飞", "检", "吸", "助", "升", "阳", "互",
38237 "初", "创", "抗", "考", "投", "坏", "策", "古", "径", "换",
38238 "未", "跑", "留", "钢", "曾", "端", "责", "站", "简", "述",
38239 "钱", "副", "尽", "帝", "射", "草", "冲", "承", "独", "令",
38240 "限", "阿", "宣", "环", "双", "请", "超", "微", "让", "控",
38241 "州", "良", "轴", "找", "否", "纪", "益", "依", "优", "顶",
38242 "础", "载", "倒", "房", "突", "坐", "粉", "敌", "略", "客",
38243 "袁", "冷", "胜", "绝", "析", "块", "剂", "测", "丝", "协",
38244 "诉", "念", "陈", "仍", "罗", "盐", "友", "洋", "错", "苦",
38245 "夜", "刑", "移", "频", "逐", "靠", "混", "母", "短", "皮",
38246 "终", "聚", "汽", "村", "云", "哪", "既", "距", "卫", "停",
38247 "烈", "央", "察", "烧", "迅", "境", "若", "印", "洲", "刻",
38248 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
38249 "侵", "吧", "甲", "游", "久", "菜", "味", "旧", "模", "湖",
38250 "货", "损", "预", "阻", "毫", "普", "稳", "乙", "妈", "植",
38251 "息", "扩", "银", "语", "挥", "酒", "守", "拿", "序", "纸",
38252 "医", "缺", "雨", "吗", "针", "刘", "啊", "急", "唱", "误",
38253 "训", "愿", "审", "附", "获", "茶", "鲜", "粮", "斤", "孩",
38254 "脱", "硫", "肥", "善", "龙", "演", "父", "渐", "血", "欢",
38255 "械", "掌", "歌", "沙", "刚", "攻", "谓", "盾", "讨", "晚",
38256 "粒", "乱", "燃", "矛", "乎", "杀", "药", "宁", "鲁", "贵",
38257 "钟", "煤", "读", "班", "伯", "香", "介", "迫", "句", "丰",
38258 "培", "握", "兰", "担", "弦", "蛋", "沉", "假", "穿", "执",
38259 "答", "乐", "谁", "顺", "烟", "缩", "征", "脸", "喜", "松",
38260 "脚", "困", "异", "免", "背", "星", "福", "买", "染", "井",
38261 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "静", "补",
38262 "评", "翻", "肉", "践", "尼", "衣", "宽", "扬", "棉", "希",
38263 "伤", "操", "垂", "秋", "宜", "氢", "套", "督", "振", "架",
38264 "亮", "末", "宪", "庆", "编", "牛", "触", "映", "雷", "销",
38265 "诗", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
38266 "绿", "晶", "厚", "盟", "衡", "鸡", "孙", "延", "危", "胶",
38267 "屋", "乡", "临", "陆", "顾", "掉", "呀", "灯", "岁", "措",
38268 "束", "耐", "剧", "玉", "赵", "跳", "哥", "季", "课", "凯",
38269 "胡", "额", "款", "绍", "卷", "齐", "伟", "蒸", "殖", "永",
38270 "宗", "苗", "川", "炉", "岩", "弱", "零", "杨", "奏", "沿",
38271 "露", "杆", "探", "滑", "镇", "饭", "浓", "航", "怀", "赶",
38272 "库", "夺", "伊", "灵", "税", "途", "灭", "赛", "归", "召",
38273 "鼓", "播", "盘", "裁", "险", "康", "唯", "录", "菌", "纯",
38274 "借", "糖", "盖", "横", "符", "私", "努", "堂", "域", "枪",
38275 "润", "幅", "哈", "竟", "熟", "虫", "泽", "脑", "壤", "碳",
38276 "欧", "遍", "侧", "寨", "敢", "彻", "虑", "斜", "薄", "庭",
38277 "纳", "弹", "饲", "伸", "折", "麦", "湿", "暗", "荷", "瓦",
38278 "塞", "床", "筑", "恶", "户", "访", "塔", "奇", "透", "梁",
38279 "刀", "旋", "迹", "卡", "氯", "遇", "份", "毒", "泥", "退",
38280 "洗", "摆", "灰", "彩", "卖", "耗", "夏", "择", "忙", "铜",
38281 "献", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
38282 "阵", "阴", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
38283 "楼", "避", "谋", "吨", "野", "猪", "旗", "累", "偏", "典",
38284 "馆", "索", "秦", "脂", "潮", "爷", "豆", "忽", "托", "惊",
38285 "塑", "遗", "愈", "朱", "替", "纤", "粗", "倾", "尚", "痛",
38286 "楚", "谢", "奋", "购", "磨", "君", "池", "旁", "碎", "骨",
38287 "监", "捕", "弟", "暴", "割", "贯", "殊", "释", "词", "亡",
38288 "壁", "顿", "宝", "午", "尘", "闻", "揭", "炮", "残", "冬",
38289 "桥", "妇", "警", "综", "招", "吴", "付", "浮", "遭", "徐",
38290 "您", "摇", "谷", "赞", "箱", "隔", "订", "男", "吹", "园",
38291 "纷", "唐", "败", "宋", "玻", "巨", "耕", "坦", "荣", "闭",
38292 "湾", "键", "凡", "驻", "锅", "救", "恩", "剥", "凝", "碱",
38293 "齿", "截", "炼", "麻", "纺", "禁", "废", "盛", "版", "缓",
38294 "净", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
38295 "庄", "街", "藏", "姑", "贸", "腐", "奴", "啦", "惯", "乘",
38296 "伙", "恢", "匀", "纱", "扎", "辩", "耳", "彪", "臣", "亿",
38297 "璃", "抵", "脉", "秀", "萨", "俄", "网", "舞", "店", "喷",
38298 "纵", "寸", "汗", "挂", "洪", "贺", "闪", "柬", "爆", "烯",
38299 "津", "稻", "墙", "软", "勇", "像", "滚", "厘", "蒙", "芳",
38300 "肯", "坡", "柱", "荡", "腿", "仪", "旅", "尾", "轧", "冰",
38301 "贡", "登", "黎", "削", "钻", "勒", "逃", "障", "氨", "郭",
38302 "峰", "币", "港", "伏", "轨", "亩", "毕", "擦", "莫", "刺",
38303 "浪", "秘", "援", "株", "健", "售", "股", "岛", "甘", "泡",
38304 "睡", "童", "铸", "汤", "阀", "休", "汇", "舍", "牧", "绕",
38305 "炸", "哲", "磷", "绩", "朋", "淡", "尖", "启", "陷", "柴",
38306 "呈", "徒", "颜", "泪", "稍", "忘", "泵", "蓝", "拖", "洞",
38307 "授", "镜", "辛", "壮", "锋", "贫", "虚", "弯", "摩", "泰",
38308 "幼", "廷", "尊", "窗", "纲", "弄", "隶", "疑", "氏", "宫",
38309 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "违",
38310 "夹", "腰", "缘", "珠", "穷", "森", "枝", "竹", "沟", "催",
38311 "绳", "忆", "邦", "剩", "幸", "浆", "栏", "拥", "牙", "贮",
38312 "礼", "滤", "钠", "纹", "罢", "拍", "咱", "喊", "袖", "埃",
38313 "勤", "罚", "焦", "潜", "伍", "墨", "欲", "缝", "姓", "刊",
38314 "饱", "仿", "奖", "铝", "鬼", "丽", "跨", "默", "挖", "链",
38315 "扫", "喝", "袋", "炭", "污", "幕", "诸", "弧", "励", "梅",
38316 "奶", "洁", "灾", "舟", "鉴", "苯", "讼", "抱", "毁", "懂",
38317 "寒", "智", "埔", "寄", "届", "跃", "渡", "挑", "丹", "艰",
38318 "贝", "碰", "拔", "爹", "戴", "码", "梦", "芽", "熔", "赤",
38319 "渔", "哭", "敬", "颗", "奔", "铅", "仲", "虎", "稀", "妹",
38320 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "仓", "魏",
38321 "锐", "晓", "氮", "兼", "隐", "碍", "赫", "拨", "忠", "肃",
38322 "缸", "牵", "抢", "博", "巧", "壳", "兄", "杜", "讯", "诚",
38323 "碧", "祥", "柯", "页", "巡", "矩", "悲", "灌", "龄", "伦",
38324 "票", "寻", "桂", "铺", "圣", "恐", "恰", "郑", "趣", "抬",
38325 "荒", "腾", "贴", "柔", "滴", "猛", "阔", "辆", "妻", "填",
38326 "撤", "储", "签", "闹", "扰", "紫", "砂", "递", "戏", "吊",
38327 "陶", "伐", "喂", "疗", "瓶", "婆", "抚", "臂", "摸", "忍",
38328 "虾", "蜡", "邻", "胸", "巩", "挤", "偶", "弃", "槽", "劲",
38329 "乳", "邓", "吉", "仁", "烂", "砖", "租", "乌", "舰", "伴",
38330 "瓜", "浅", "丙", "暂", "燥", "橡", "柳", "迷", "暖", "牌",
38331 "秧", "胆", "详", "簧", "踏", "瓷", "谱", "呆", "宾", "糊",
38332 "洛", "辉", "愤", "竞", "隙", "怒", "粘", "乃", "绪", "肩",
38333 "籍", "敏", "涂", "熙", "皆", "侦", "悬", "掘", "享", "纠",
38334 "醒", "狂", "锁", "淀", "恨", "牲", "霸", "爬", "赏", "逆",
38335 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鸭",
38336 "趋", "凤", "晨", "畜", "辈", "秩", "卵", "署", "梯", "炎",
38337 "滩", "棋", "驱", "筛", "峡", "冒", "啥", "寿", "译", "浸",
38338 "泉", "帽", "迟", "硅", "疆", "贷", "漏", "稿", "冠", "嫩",
38339 "胁", "芯", "牢", "叛", "蚀", "奥", "鸣", "岭", "羊", "凭",
38340 "串", "塘", "绘", "酵", "融", "盆", "锡", "庙", "筹", "冻",
38341 "辅", "摄", "袭", "筋", "拒", "僚", "旱", "钾", "鸟", "漆",
38342 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韩", "逼", "扭",
38343 "侨", "凉", "挺", "碗", "栽", "炒", "杯", "患", "馏", "劝",
38344 "豪", "辽", "勃", "鸿", "旦", "吏", "拜", "狗", "埋", "辊",
38345 "掩", "饮", "搬", "骂", "辞", "勾", "扣", "估", "蒋", "绒",
38346 "雾", "丈", "朵", "姆", "拟", "宇", "辑", "陕", "雕", "偿",
38347 "蓄", "崇", "剪", "倡", "厅", "咬", "驶", "薯", "刷", "斥",
38348 "番", "赋", "奉", "佛", "浇", "漫", "曼", "扇", "钙", "桃",
38349 "扶", "仔", "返", "俗", "亏", "腔", "鞋", "棱", "覆", "框",
38350 "悄", "叔", "撞", "骗", "勘", "旺", "沸", "孤", "吐", "孟",
38351 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "胀", "谐", "抛",
38352 "霉", "桑", "岗", "嘛", "衰", "盗", "渗", "脏", "赖", "涌",
38353 "甜", "曹", "阅", "肌", "哩", "厉", "烃", "纬", "毅", "昨",
38354 "伪", "症", "煮", "叹", "钉", "搭", "茎", "笼", "酷", "偷",
38355 "弓", "锥", "恒", "杰", "坑", "鼻", "翼", "纶", "叙", "狱",
38356 "逮", "罐", "络", "棚", "抑", "膨", "蔬", "寺", "骤", "穆",
38357 "冶", "枯", "册", "尸", "凸", "绅", "坯", "牺", "焰", "轰",
38358 "欣", "晋", "瘦", "御", "锭", "锦", "丧", "旬", "锻", "垄",
38359 "搜", "扑", "邀", "亭", "酯", "迈", "舒", "脆", "酶", "闲",
38360 "忧", "酚", "顽", "羽", "涨", "卸", "仗", "陪", "辟", "惩",
38361 "杭", "姚", "肚", "捉", "飘", "漂", "昆", "欺", "吾", "郎",
38362 "烷", "汁", "呵", "饰", "萧", "雅", "邮", "迁", "燕", "撒",
38363 "姻", "赴", "宴", "烦", "债", "帐", "斑", "铃", "旨", "醇",
38364 "董", "饼", "雏", "姿", "拌", "傅", "腹", "妥", "揉", "贤",
38365 "拆", "歪", "葡", "胺", "丢", "浩", "徽", "昂", "垫", "挡",
38366 "览", "贪", "慰", "缴", "汪", "慌", "冯", "诺", "姜", "谊",
38367 "凶", "劣", "诬", "耀", "昏", "躺", "盈", "骑", "乔", "溪",
38368 "丛", "卢", "抹", "闷", "咨", "刮", "驾", "缆", "悟", "摘",
38369 "铒", "掷", "颇", "幻", "柄", "惠", "惨", "佳", "仇", "腊",
38370 "窝", "涤", "剑", "瞧", "堡", "泼", "葱", "罩", "霍", "捞",
38371 "胎", "苍", "滨", "俩", "捅", "湘", "砍", "霞", "邵", "萄",
38372 "疯", "淮", "遂", "熊", "粪", "烘", "宿", "档", "戈", "驳",
38373 "嫂", "裕", "徙", "箭", "捐", "肠", "撑", "晒", "辨", "殿",
38374 "莲", "摊", "搅", "酱", "屏", "疫", "哀", "蔡", "堵", "沫",
38375 "皱", "畅", "叠", "阁", "莱", "敲", "辖", "钩", "痕", "坝",
38376 "巷", "饿", "祸", "丘", "玄", "溜", "曰", "逻", "彭", "尝",
38377 "卿", "妨", "艇", "吞", "韦", "怨", "矮", "歇" ]
38379 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
38380 WORDLISTS["chinese_traditional"] = [
38381 "的", "一", "是", "在", "不", "了", "有", "和", "人", "這",
38382 "中", "大", "為", "上", "個", "國", "我", "以", "要", "他",
38383 "時", "來", "用", "們", "生", "到", "作", "地", "於", "出",
38384 "就", "分", "對", "成", "會", "可", "主", "發", "年", "動",
38385 "同", "工", "也", "能", "下", "過", "子", "說", "產", "種",
38386 "面", "而", "方", "後", "多", "定", "行", "學", "法", "所",
38387 "民", "得", "經", "十", "三", "之", "進", "著", "等", "部",
38388 "度", "家", "電", "力", "裡", "如", "水", "化", "高", "自",
38389 "二", "理", "起", "小", "物", "現", "實", "加", "量", "都",
38390 "兩", "體", "制", "機", "當", "使", "點", "從", "業", "本",
38391 "去", "把", "性", "好", "應", "開", "它", "合", "還", "因",
38392 "由", "其", "些", "然", "前", "外", "天", "政", "四", "日",
38393 "那", "社", "義", "事", "平", "形", "相", "全", "表", "間",
38394 "樣", "與", "關", "各", "重", "新", "線", "內", "數", "正",
38395 "心", "反", "你", "明", "看", "原", "又", "麼", "利", "比",
38396 "或", "但", "質", "氣", "第", "向", "道", "命", "此", "變",
38397 "條", "只", "沒", "結", "解", "問", "意", "建", "月", "公",
38398 "無", "系", "軍", "很", "情", "者", "最", "立", "代", "想",
38399 "已", "通", "並", "提", "直", "題", "黨", "程", "展", "五",
38400 "果", "料", "象", "員", "革", "位", "入", "常", "文", "總",
38401 "次", "品", "式", "活", "設", "及", "管", "特", "件", "長",
38402 "求", "老", "頭", "基", "資", "邊", "流", "路", "級", "少",
38403 "圖", "山", "統", "接", "知", "較", "將", "組", "見", "計",
38404 "別", "她", "手", "角", "期", "根", "論", "運", "農", "指",
38405 "幾", "九", "區", "強", "放", "決", "西", "被", "幹", "做",
38406 "必", "戰", "先", "回", "則", "任", "取", "據", "處", "隊",
38407 "南", "給", "色", "光", "門", "即", "保", "治", "北", "造",
38408 "百", "規", "熱", "領", "七", "海", "口", "東", "導", "器",
38409 "壓", "志", "世", "金", "增", "爭", "濟", "階", "油", "思",
38410 "術", "極", "交", "受", "聯", "什", "認", "六", "共", "權",
38411 "收", "證", "改", "清", "美", "再", "採", "轉", "更", "單",
38412 "風", "切", "打", "白", "教", "速", "花", "帶", "安", "場",
38413 "身", "車", "例", "真", "務", "具", "萬", "每", "目", "至",
38414 "達", "走", "積", "示", "議", "聲", "報", "鬥", "完", "類",
38415 "八", "離", "華", "名", "確", "才", "科", "張", "信", "馬",
38416 "節", "話", "米", "整", "空", "元", "況", "今", "集", "溫",
38417 "傳", "土", "許", "步", "群", "廣", "石", "記", "需", "段",
38418 "研", "界", "拉", "林", "律", "叫", "且", "究", "觀", "越",
38419 "織", "裝", "影", "算", "低", "持", "音", "眾", "書", "布",
38420 "复", "容", "兒", "須", "際", "商", "非", "驗", "連", "斷",
38421 "深", "難", "近", "礦", "千", "週", "委", "素", "技", "備",
38422 "半", "辦", "青", "省", "列", "習", "響", "約", "支", "般",
38423 "史", "感", "勞", "便", "團", "往", "酸", "歷", "市", "克",
38424 "何", "除", "消", "構", "府", "稱", "太", "準", "精", "值",
38425 "號", "率", "族", "維", "劃", "選", "標", "寫", "存", "候",
38426 "毛", "親", "快", "效", "斯", "院", "查", "江", "型", "眼",
38427 "王", "按", "格", "養", "易", "置", "派", "層", "片", "始",
38428 "卻", "專", "狀", "育", "廠", "京", "識", "適", "屬", "圓",
38429 "包", "火", "住", "調", "滿", "縣", "局", "照", "參", "紅",
38430 "細", "引", "聽", "該", "鐵", "價", "嚴", "首", "底", "液",
38431 "官", "德", "隨", "病", "蘇", "失", "爾", "死", "講", "配",
38432 "女", "黃", "推", "顯", "談", "罪", "神", "藝", "呢", "席",
38433 "含", "企", "望", "密", "批", "營", "項", "防", "舉", "球",
38434 "英", "氧", "勢", "告", "李", "台", "落", "木", "幫", "輪",
38435 "破", "亞", "師", "圍", "注", "遠", "字", "材", "排", "供",
38436 "河", "態", "封", "另", "施", "減", "樹", "溶", "怎", "止",
38437 "案", "言", "士", "均", "武", "固", "葉", "魚", "波", "視",
38438 "僅", "費", "緊", "愛", "左", "章", "早", "朝", "害", "續",
38439 "輕", "服", "試", "食", "充", "兵", "源", "判", "護", "司",
38440 "足", "某", "練", "差", "致", "板", "田", "降", "黑", "犯",
38441 "負", "擊", "范", "繼", "興", "似", "餘", "堅", "曲", "輸",
38442 "修", "故", "城", "夫", "夠", "送", "筆", "船", "佔", "右",
38443 "財", "吃", "富", "春", "職", "覺", "漢", "畫", "功", "巴",
38444 "跟", "雖", "雜", "飛", "檢", "吸", "助", "昇", "陽", "互",
38445 "初", "創", "抗", "考", "投", "壞", "策", "古", "徑", "換",
38446 "未", "跑", "留", "鋼", "曾", "端", "責", "站", "簡", "述",
38447 "錢", "副", "盡", "帝", "射", "草", "衝", "承", "獨", "令",
38448 "限", "阿", "宣", "環", "雙", "請", "超", "微", "讓", "控",
38449 "州", "良", "軸", "找", "否", "紀", "益", "依", "優", "頂",
38450 "礎", "載", "倒", "房", "突", "坐", "粉", "敵", "略", "客",
38451 "袁", "冷", "勝", "絕", "析", "塊", "劑", "測", "絲", "協",
38452 "訴", "念", "陳", "仍", "羅", "鹽", "友", "洋", "錯", "苦",
38453 "夜", "刑", "移", "頻", "逐", "靠", "混", "母", "短", "皮",
38454 "終", "聚", "汽", "村", "雲", "哪", "既", "距", "衛", "停",
38455 "烈", "央", "察", "燒", "迅", "境", "若", "印", "洲", "刻",
38456 "括", "激", "孔", "搞", "甚", "室", "待", "核", "校", "散",
38457 "侵", "吧", "甲", "遊", "久", "菜", "味", "舊", "模", "湖",
38458 "貨", "損", "預", "阻", "毫", "普", "穩", "乙", "媽", "植",
38459 "息", "擴", "銀", "語", "揮", "酒", "守", "拿", "序", "紙",
38460 "醫", "缺", "雨", "嗎", "針", "劉", "啊", "急", "唱", "誤",
38461 "訓", "願", "審", "附", "獲", "茶", "鮮", "糧", "斤", "孩",
38462 "脫", "硫", "肥", "善", "龍", "演", "父", "漸", "血", "歡",
38463 "械", "掌", "歌", "沙", "剛", "攻", "謂", "盾", "討", "晚",
38464 "粒", "亂", "燃", "矛", "乎", "殺", "藥", "寧", "魯", "貴",
38465 "鐘", "煤", "讀", "班", "伯", "香", "介", "迫", "句", "豐",
38466 "培", "握", "蘭", "擔", "弦", "蛋", "沉", "假", "穿", "執",
38467 "答", "樂", "誰", "順", "煙", "縮", "徵", "臉", "喜", "松",
38468 "腳", "困", "異", "免", "背", "星", "福", "買", "染", "井",
38469 "概", "慢", "怕", "磁", "倍", "祖", "皇", "促", "靜", "補",
38470 "評", "翻", "肉", "踐", "尼", "衣", "寬", "揚", "棉", "希",
38471 "傷", "操", "垂", "秋", "宜", "氫", "套", "督", "振", "架",
38472 "亮", "末", "憲", "慶", "編", "牛", "觸", "映", "雷", "銷",
38473 "詩", "座", "居", "抓", "裂", "胞", "呼", "娘", "景", "威",
38474 "綠", "晶", "厚", "盟", "衡", "雞", "孫", "延", "危", "膠",
38475 "屋", "鄉", "臨", "陸", "顧", "掉", "呀", "燈", "歲", "措",
38476 "束", "耐", "劇", "玉", "趙", "跳", "哥", "季", "課", "凱",
38477 "胡", "額", "款", "紹", "卷", "齊", "偉", "蒸", "殖", "永",
38478 "宗", "苗", "川", "爐", "岩", "弱", "零", "楊", "奏", "沿",
38479 "露", "桿", "探", "滑", "鎮", "飯", "濃", "航", "懷", "趕",
38480 "庫", "奪", "伊", "靈", "稅", "途", "滅", "賽", "歸", "召",
38481 "鼓", "播", "盤", "裁", "險", "康", "唯", "錄", "菌", "純",
38482 "借", "糖", "蓋", "橫", "符", "私", "努", "堂", "域", "槍",
38483 "潤", "幅", "哈", "竟", "熟", "蟲", "澤", "腦", "壤", "碳",
38484 "歐", "遍", "側", "寨", "敢", "徹", "慮", "斜", "薄", "庭",
38485 "納", "彈", "飼", "伸", "折", "麥", "濕", "暗", "荷", "瓦",
38486 "塞", "床", "築", "惡", "戶", "訪", "塔", "奇", "透", "梁",
38487 "刀", "旋", "跡", "卡", "氯", "遇", "份", "毒", "泥", "退",
38488 "洗", "擺", "灰", "彩", "賣", "耗", "夏", "擇", "忙", "銅",
38489 "獻", "硬", "予", "繁", "圈", "雪", "函", "亦", "抽", "篇",
38490 "陣", "陰", "丁", "尺", "追", "堆", "雄", "迎", "泛", "爸",
38491 "樓", "避", "謀", "噸", "野", "豬", "旗", "累", "偏", "典",
38492 "館", "索", "秦", "脂", "潮", "爺", "豆", "忽", "托", "驚",
38493 "塑", "遺", "愈", "朱", "替", "纖", "粗", "傾", "尚", "痛",
38494 "楚", "謝", "奮", "購", "磨", "君", "池", "旁", "碎", "骨",
38495 "監", "捕", "弟", "暴", "割", "貫", "殊", "釋", "詞", "亡",
38496 "壁", "頓", "寶", "午", "塵", "聞", "揭", "炮", "殘", "冬",
38497 "橋", "婦", "警", "綜", "招", "吳", "付", "浮", "遭", "徐",
38498 "您", "搖", "谷", "贊", "箱", "隔", "訂", "男", "吹", "園",
38499 "紛", "唐", "敗", "宋", "玻", "巨", "耕", "坦", "榮", "閉",
38500 "灣", "鍵", "凡", "駐", "鍋", "救", "恩", "剝", "凝", "鹼",
38501 "齒", "截", "煉", "麻", "紡", "禁", "廢", "盛", "版", "緩",
38502 "淨", "睛", "昌", "婚", "涉", "筒", "嘴", "插", "岸", "朗",
38503 "莊", "街", "藏", "姑", "貿", "腐", "奴", "啦", "慣", "乘",
38504 "夥", "恢", "勻", "紗", "扎", "辯", "耳", "彪", "臣", "億",
38505 "璃", "抵", "脈", "秀", "薩", "俄", "網", "舞", "店", "噴",
38506 "縱", "寸", "汗", "掛", "洪", "賀", "閃", "柬", "爆", "烯",
38507 "津", "稻", "牆", "軟", "勇", "像", "滾", "厘", "蒙", "芳",
38508 "肯", "坡", "柱", "盪", "腿", "儀", "旅", "尾", "軋", "冰",
38509 "貢", "登", "黎", "削", "鑽", "勒", "逃", "障", "氨", "郭",
38510 "峰", "幣", "港", "伏", "軌", "畝", "畢", "擦", "莫", "刺",
38511 "浪", "秘", "援", "株", "健", "售", "股", "島", "甘", "泡",
38512 "睡", "童", "鑄", "湯", "閥", "休", "匯", "舍", "牧", "繞",
38513 "炸", "哲", "磷", "績", "朋", "淡", "尖", "啟", "陷", "柴",
38514 "呈", "徒", "顏", "淚", "稍", "忘", "泵", "藍", "拖", "洞",
38515 "授", "鏡", "辛", "壯", "鋒", "貧", "虛", "彎", "摩", "泰",
38516 "幼", "廷", "尊", "窗", "綱", "弄", "隸", "疑", "氏", "宮",
38517 "姐", "震", "瑞", "怪", "尤", "琴", "循", "描", "膜", "違",
38518 "夾", "腰", "緣", "珠", "窮", "森", "枝", "竹", "溝", "催",
38519 "繩", "憶", "邦", "剩", "幸", "漿", "欄", "擁", "牙", "貯",
38520 "禮", "濾", "鈉", "紋", "罷", "拍", "咱", "喊", "袖", "埃",
38521 "勤", "罰", "焦", "潛", "伍", "墨", "欲", "縫", "姓", "刊",
38522 "飽", "仿", "獎", "鋁", "鬼", "麗", "跨", "默", "挖", "鏈",
38523 "掃", "喝", "袋", "炭", "污", "幕", "諸", "弧", "勵", "梅",
38524 "奶", "潔", "災", "舟", "鑑", "苯", "訟", "抱", "毀", "懂",
38525 "寒", "智", "埔", "寄", "屆", "躍", "渡", "挑", "丹", "艱",
38526 "貝", "碰", "拔", "爹", "戴", "碼", "夢", "芽", "熔", "赤",
38527 "漁", "哭", "敬", "顆", "奔", "鉛", "仲", "虎", "稀", "妹",
38528 "乏", "珍", "申", "桌", "遵", "允", "隆", "螺", "倉", "魏",
38529 "銳", "曉", "氮", "兼", "隱", "礙", "赫", "撥", "忠", "肅",
38530 "缸", "牽", "搶", "博", "巧", "殼", "兄", "杜", "訊", "誠",
38531 "碧", "祥", "柯", "頁", "巡", "矩", "悲", "灌", "齡", "倫",
38532 "票", "尋", "桂", "鋪", "聖", "恐", "恰", "鄭", "趣", "抬",
38533 "荒", "騰", "貼", "柔", "滴", "猛", "闊", "輛", "妻", "填",
38534 "撤", "儲", "簽", "鬧", "擾", "紫", "砂", "遞", "戲", "吊",
38535 "陶", "伐", "餵", "療", "瓶", "婆", "撫", "臂", "摸", "忍",
38536 "蝦", "蠟", "鄰", "胸", "鞏", "擠", "偶", "棄", "槽", "勁",
38537 "乳", "鄧", "吉", "仁", "爛", "磚", "租", "烏", "艦", "伴",
38538 "瓜", "淺", "丙", "暫", "燥", "橡", "柳", "迷", "暖", "牌",
38539 "秧", "膽", "詳", "簧", "踏", "瓷", "譜", "呆", "賓", "糊",
38540 "洛", "輝", "憤", "競", "隙", "怒", "粘", "乃", "緒", "肩",
38541 "籍", "敏", "塗", "熙", "皆", "偵", "懸", "掘", "享", "糾",
38542 "醒", "狂", "鎖", "淀", "恨", "牲", "霸", "爬", "賞", "逆",
38543 "玩", "陵", "祝", "秒", "浙", "貌", "役", "彼", "悉", "鴨",
38544 "趨", "鳳", "晨", "畜", "輩", "秩", "卵", "署", "梯", "炎",
38545 "灘", "棋", "驅", "篩", "峽", "冒", "啥", "壽", "譯", "浸",
38546 "泉", "帽", "遲", "矽", "疆", "貸", "漏", "稿", "冠", "嫩",
38547 "脅", "芯", "牢", "叛", "蝕", "奧", "鳴", "嶺", "羊", "憑",
38548 "串", "塘", "繪", "酵", "融", "盆", "錫", "廟", "籌", "凍",
38549 "輔", "攝", "襲", "筋", "拒", "僚", "旱", "鉀", "鳥", "漆",
38550 "沈", "眉", "疏", "添", "棒", "穗", "硝", "韓", "逼", "扭",
38551 "僑", "涼", "挺", "碗", "栽", "炒", "杯", "患", "餾", "勸",
38552 "豪", "遼", "勃", "鴻", "旦", "吏", "拜", "狗", "埋", "輥",
38553 "掩", "飲", "搬", "罵", "辭", "勾", "扣", "估", "蔣", "絨",
38554 "霧", "丈", "朵", "姆", "擬", "宇", "輯", "陝", "雕", "償",
38555 "蓄", "崇", "剪", "倡", "廳", "咬", "駛", "薯", "刷", "斥",
38556 "番", "賦", "奉", "佛", "澆", "漫", "曼", "扇", "鈣", "桃",
38557 "扶", "仔", "返", "俗", "虧", "腔", "鞋", "棱", "覆", "框",
38558 "悄", "叔", "撞", "騙", "勘", "旺", "沸", "孤", "吐", "孟",
38559 "渠", "屈", "疾", "妙", "惜", "仰", "狠", "脹", "諧", "拋",
38560 "黴", "桑", "崗", "嘛", "衰", "盜", "滲", "臟", "賴", "湧",
38561 "甜", "曹", "閱", "肌", "哩", "厲", "烴", "緯", "毅", "昨",
38562 "偽", "症", "煮", "嘆", "釘", "搭", "莖", "籠", "酷", "偷",
38563 "弓", "錐", "恆", "傑", "坑", "鼻", "翼", "綸", "敘", "獄",
38564 "逮", "罐", "絡", "棚", "抑", "膨", "蔬", "寺", "驟", "穆",
38565 "冶", "枯", "冊", "屍", "凸", "紳", "坯", "犧", "焰", "轟",
38566 "欣", "晉", "瘦", "禦", "錠", "錦", "喪", "旬", "鍛", "壟",
38567 "搜", "撲", "邀", "亭", "酯", "邁", "舒", "脆", "酶", "閒",
38568 "憂", "酚", "頑", "羽", "漲", "卸", "仗", "陪", "闢", "懲",
38569 "杭", "姚", "肚", "捉", "飄", "漂", "昆", "欺", "吾", "郎",
38570 "烷", "汁", "呵", "飾", "蕭", "雅", "郵", "遷", "燕", "撒",
38571 "姻", "赴", "宴", "煩", "債", "帳", "斑", "鈴", "旨", "醇",
38572 "董", "餅", "雛", "姿", "拌", "傅", "腹", "妥", "揉", "賢",
38573 "拆", "歪", "葡", "胺", "丟", "浩", "徽", "昂", "墊", "擋",
38574 "覽", "貪", "慰", "繳", "汪", "慌", "馮", "諾", "姜", "誼",
38575 "兇", "劣", "誣", "耀", "昏", "躺", "盈", "騎", "喬", "溪",
38576 "叢", "盧", "抹", "悶", "諮", "刮", "駕", "纜", "悟", "摘",
38577 "鉺", "擲", "頗", "幻", "柄", "惠", "慘", "佳", "仇", "臘",
38578 "窩", "滌", "劍", "瞧", "堡", "潑", "蔥", "罩", "霍", "撈",
38579 "胎", "蒼", "濱", "倆", "捅", "湘", "砍", "霞", "邵", "萄",
38580 "瘋", "淮", "遂", "熊", "糞", "烘", "宿", "檔", "戈", "駁",
38581 "嫂", "裕", "徙", "箭", "捐", "腸", "撐", "曬", "辨", "殿",
38582 "蓮", "攤", "攪", "醬", "屏", "疫", "哀", "蔡", "堵", "沫",
38583 "皺", "暢", "疊", "閣", "萊", "敲", "轄", "鉤", "痕", "壩",
38584 "巷", "餓", "禍", "丘", "玄", "溜", "曰", "邏", "彭", "嘗",
38585 "卿", "妨", "艇", "吞", "韋", "怨", "矮", "歇" ]
38587 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
38588 WORDLISTS["french"] = [
38589 "abaisser", "abandon", "abdiquer", "abeille", "abolir", "aborder", "aboutir", "aboyer", "abrasif", "abreuver",
38590 "abriter", "abroger", "abrupt", "absence", "absolu", "absurde", "abusif", "abyssal", "académie", "acajou",
38591 "acarien", "accabler", "accepter", "acclamer", "accolade", "accroche", "accuser", "acerbe", "achat", "acheter",
38592 "aciduler", "acier", "acompte", "acquérir", "acronyme", "acteur", "actif", "actuel", "adepte", "adéquat",
38593 "adhésif", "adjectif", "adjuger", "admettre", "admirer", "adopter", "adorer", "adoucir", "adresse", "adroit",
38594 "adulte", "adverbe", "aérer", "aéronef", "affaire", "affecter", "affiche", "affreux", "affubler", "agacer",
38595 "agencer", "agile", "agiter", "agrafer", "agréable", "agrume", "aider", "aiguille", "ailier", "aimable",
38596 "aisance", "ajouter", "ajuster", "alarmer", "alchimie", "alerte", "algèbre", "algue", "aliéner", "aliment",
38597 "alléger", "alliage", "allouer", "allumer", "alourdir", "alpaga", "altesse", "alvéole", "amateur", "ambigu",
38598 "ambre", "aménager", "amertume", "amidon", "amiral", "amorcer", "amour", "amovible", "amphibie", "ampleur",
38599 "amusant", "analyse", "anaphore", "anarchie", "anatomie", "ancien", "anéantir", "angle", "angoisse", "anguleux",
38600 "animal", "annexer", "annonce", "annuel", "anodin", "anomalie", "anonyme", "anormal", "antenne", "antidote",
38601 "anxieux", "apaiser", "apéritif", "aplanir", "apologie", "appareil", "appeler", "apporter", "appuyer", "aquarium",
38602 "aqueduc", "arbitre", "arbuste", "ardeur", "ardoise", "argent", "arlequin", "armature", "armement", "armoire",
38603 "armure", "arpenter", "arracher", "arriver", "arroser", "arsenic", "artériel", "article", "aspect", "asphalte",
38604 "aspirer", "assaut", "asservir", "assiette", "associer", "assurer", "asticot", "astre", "astuce", "atelier",
38605 "atome", "atrium", "atroce", "attaque", "attentif", "attirer", "attraper", "aubaine", "auberge", "audace",
38606 "audible", "augurer", "aurore", "automne", "autruche", "avaler", "avancer", "avarice", "avenir", "averse",
38607 "aveugle", "aviateur", "avide", "avion", "aviser", "avoine", "avouer", "avril", "axial", "axiome",
38608 "badge", "bafouer", "bagage", "baguette", "baignade", "balancer", "balcon", "baleine", "balisage", "bambin",
38609 "bancaire", "bandage", "banlieue", "bannière", "banquier", "barbier", "baril", "baron", "barque", "barrage",
38610 "bassin", "bastion", "bataille", "bateau", "batterie", "baudrier", "bavarder", "belette", "bélier", "belote",
38611 "bénéfice", "berceau", "berger", "berline", "bermuda", "besace", "besogne", "bétail", "beurre", "biberon",
38612 "bicycle", "bidule", "bijou", "bilan", "bilingue", "billard", "binaire", "biologie", "biopsie", "biotype",
38613 "biscuit", "bison", "bistouri", "bitume", "bizarre", "blafard", "blague", "blanchir", "blessant", "blinder",
38614 "blond", "bloquer", "blouson", "bobard", "bobine", "boire", "boiser", "bolide", "bonbon", "bondir",
38615 "bonheur", "bonifier", "bonus", "bordure", "borne", "botte", "boucle", "boueux", "bougie", "boulon",
38616 "bouquin", "bourse", "boussole", "boutique", "boxeur", "branche", "brasier", "brave", "brebis", "brèche",
38617 "breuvage", "bricoler", "brigade", "brillant", "brioche", "brique", "brochure", "broder", "bronzer", "brousse",
38618 "broyeur", "brume", "brusque", "brutal", "bruyant", "buffle", "buisson", "bulletin", "bureau", "burin",
38619 "bustier", "butiner", "butoir", "buvable", "buvette", "cabanon", "cabine", "cachette", "cadeau", "cadre",
38620 "caféine", "caillou", "caisson", "calculer", "calepin", "calibre", "calmer", "calomnie", "calvaire", "camarade",
38621 "caméra", "camion", "campagne", "canal", "caneton", "canon", "cantine", "canular", "capable", "caporal",
38622 "caprice", "capsule", "capter", "capuche", "carabine", "carbone", "caresser", "caribou", "carnage", "carotte",
38623 "carreau", "carton", "cascade", "casier", "casque", "cassure", "causer", "caution", "cavalier", "caverne",
38624 "caviar", "cédille", "ceinture", "céleste", "cellule", "cendrier", "censurer", "central", "cercle", "cérébral",
38625 "cerise", "cerner", "cerveau", "cesser", "chagrin", "chaise", "chaleur", "chambre", "chance", "chapitre",
38626 "charbon", "chasseur", "chaton", "chausson", "chavirer", "chemise", "chenille", "chéquier", "chercher", "cheval",
38627 "chien", "chiffre", "chignon", "chimère", "chiot", "chlorure", "chocolat", "choisir", "chose", "chouette",
38628 "chrome", "chute", "cigare", "cigogne", "cimenter", "cinéma", "cintrer", "circuler", "cirer", "cirque",
38629 "citerne", "citoyen", "citron", "civil", "clairon", "clameur", "claquer", "classe", "clavier", "client",
38630 "cligner", "climat", "clivage", "cloche", "clonage", "cloporte", "cobalt", "cobra", "cocasse", "cocotier",
38631 "coder", "codifier", "coffre", "cogner", "cohésion", "coiffer", "coincer", "colère", "colibri", "colline",
38632 "colmater", "colonel", "combat", "comédie", "commande", "compact", "concert", "conduire", "confier", "congeler",
38633 "connoter", "consonne", "contact", "convexe", "copain", "copie", "corail", "corbeau", "cordage", "corniche",
38634 "corpus", "correct", "cortège", "cosmique", "costume", "coton", "coude", "coupure", "courage", "couteau",
38635 "couvrir", "coyote", "crabe", "crainte", "cravate", "crayon", "créature", "créditer", "crémeux", "creuser",
38636 "crevette", "cribler", "crier", "cristal", "critère", "croire", "croquer", "crotale", "crucial", "cruel",
38637 "crypter", "cubique", "cueillir", "cuillère", "cuisine", "cuivre", "culminer", "cultiver", "cumuler", "cupide",
38638 "curatif", "curseur", "cyanure", "cycle", "cylindre", "cynique", "daigner", "damier", "danger", "danseur",
38639 "dauphin", "débattre", "débiter", "déborder", "débrider", "débutant", "décaler", "décembre", "déchirer", "décider",
38640 "déclarer", "décorer", "décrire", "décupler", "dédale", "déductif", "déesse", "défensif", "défiler", "défrayer",
38641 "dégager", "dégivrer", "déglutir", "dégrafer", "déjeuner", "délice", "déloger", "demander", "demeurer", "démolir",
38642 "dénicher", "dénouer", "dentelle", "dénuder", "départ", "dépenser", "déphaser", "déplacer", "déposer", "déranger",
38643 "dérober", "désastre", "descente", "désert", "désigner", "désobéir", "dessiner", "destrier", "détacher", "détester",
38644 "détourer", "détresse", "devancer", "devenir", "deviner", "devoir", "diable", "dialogue", "diamant", "dicter",
38645 "différer", "digérer", "digital", "digne", "diluer", "dimanche", "diminuer", "dioxyde", "directif", "diriger",
38646 "discuter", "disposer", "dissiper", "distance", "divertir", "diviser", "docile", "docteur", "dogme", "doigt",
38647 "domaine", "domicile", "dompter", "donateur", "donjon", "donner", "dopamine", "dortoir", "dorure", "dosage",
38648 "doseur", "dossier", "dotation", "douanier", "double", "douceur", "douter", "doyen", "dragon", "draper",
38649 "dresser", "dribbler", "droiture", "duperie", "duplexe", "durable", "durcir", "dynastie", "éblouir", "écarter",
38650 "écharpe", "échelle", "éclairer", "éclipse", "éclore", "écluse", "école", "économie", "écorce", "écouter",
38651 "écraser", "écrémer", "écrivain", "écrou", "écume", "écureuil", "édifier", "éduquer", "effacer", "effectif",
38652 "effigie", "effort", "effrayer", "effusion", "égaliser", "égarer", "éjecter", "élaborer", "élargir", "électron",
38653 "élégant", "éléphant", "élève", "éligible", "élitisme", "éloge", "élucider", "éluder", "emballer", "embellir",
38654 "embryon", "émeraude", "émission", "emmener", "émotion", "émouvoir", "empereur", "employer", "emporter", "emprise",
38655 "émulsion", "encadrer", "enchère", "enclave", "encoche", "endiguer", "endosser", "endroit", "enduire", "énergie",
38656 "enfance", "enfermer", "enfouir", "engager", "engin", "englober", "énigme", "enjamber", "enjeu", "enlever",
38657 "ennemi", "ennuyeux", "enrichir", "enrobage", "enseigne", "entasser", "entendre", "entier", "entourer", "entraver",
38658 "énumérer", "envahir", "enviable", "envoyer", "enzyme", "éolien", "épaissir", "épargne", "épatant", "épaule",
38659 "épicerie", "épidémie", "épier", "épilogue", "épine", "épisode", "épitaphe", "époque", "épreuve", "éprouver",
38660 "épuisant", "équerre", "équipe", "ériger", "érosion", "erreur", "éruption", "escalier", "espadon", "espèce",
38661 "espiègle", "espoir", "esprit", "esquiver", "essayer", "essence", "essieu", "essorer", "estime", "estomac",
38662 "estrade", "étagère", "étaler", "étanche", "étatique", "éteindre", "étendoir", "éternel", "éthanol", "éthique",
38663 "ethnie", "étirer", "étoffer", "étoile", "étonnant", "étourdir", "étrange", "étroit", "étude", "euphorie",
38664 "évaluer", "évasion", "éventail", "évidence", "éviter", "évolutif", "évoquer", "exact", "exagérer", "exaucer",
38665 "exceller", "excitant", "exclusif", "excuse", "exécuter", "exemple", "exercer", "exhaler", "exhorter", "exigence",
38666 "exiler", "exister", "exotique", "expédier", "explorer", "exposer", "exprimer", "exquis", "extensif", "extraire",
38667 "exulter", "fable", "fabuleux", "facette", "facile", "facture", "faiblir", "falaise", "fameux", "famille",
38668 "farceur", "farfelu", "farine", "farouche", "fasciner", "fatal", "fatigue", "faucon", "fautif", "faveur",
38669 "favori", "fébrile", "féconder", "fédérer", "félin", "femme", "fémur", "fendoir", "féodal", "fermer",
38670 "féroce", "ferveur", "festival", "feuille", "feutre", "février", "fiasco", "ficeler", "fictif", "fidèle",
38671 "figure", "filature", "filetage", "filière", "filleul", "filmer", "filou", "filtrer", "financer", "finir",
38672 "fiole", "firme", "fissure", "fixer", "flairer", "flamme", "flasque", "flatteur", "fléau", "flèche",
38673 "fleur", "flexion", "flocon", "flore", "fluctuer", "fluide", "fluvial", "folie", "fonderie", "fongible",
38674 "fontaine", "forcer", "forgeron", "formuler", "fortune", "fossile", "foudre", "fougère", "fouiller", "foulure",
38675 "fourmi", "fragile", "fraise", "franchir", "frapper", "frayeur", "frégate", "freiner", "frelon", "frémir",
38676 "frénésie", "frère", "friable", "friction", "frisson", "frivole", "froid", "fromage", "frontal", "frotter",
38677 "fruit", "fugitif", "fuite", "fureur", "furieux", "furtif", "fusion", "futur", "gagner", "galaxie",
38678 "galerie", "gambader", "garantir", "gardien", "garnir", "garrigue", "gazelle", "gazon", "géant", "gélatine",
38679 "gélule", "gendarme", "général", "génie", "genou", "gentil", "géologie", "géomètre", "géranium", "germe",
38680 "gestuel", "geyser", "gibier", "gicler", "girafe", "givre", "glace", "glaive", "glisser", "globe",
38681 "gloire", "glorieux", "golfeur", "gomme", "gonfler", "gorge", "gorille", "goudron", "gouffre", "goulot",
38682 "goupille", "gourmand", "goutte", "graduel", "graffiti", "graine", "grand", "grappin", "gratuit", "gravir",
38683 "grenat", "griffure", "griller", "grimper", "grogner", "gronder", "grotte", "groupe", "gruger", "grutier",
38684 "gruyère", "guépard", "guerrier", "guide", "guimauve", "guitare", "gustatif", "gymnaste", "gyrostat", "habitude",
38685 "hachoir", "halte", "hameau", "hangar", "hanneton", "haricot", "harmonie", "harpon", "hasard", "hélium",
38686 "hématome", "herbe", "hérisson", "hermine", "héron", "hésiter", "heureux", "hiberner", "hibou", "hilarant",
38687 "histoire", "hiver", "homard", "hommage", "homogène", "honneur", "honorer", "honteux", "horde", "horizon",
38688 "horloge", "hormone", "horrible", "houleux", "housse", "hublot", "huileux", "humain", "humble", "humide",
38689 "humour", "hurler", "hydromel", "hygiène", "hymne", "hypnose", "idylle", "ignorer", "iguane", "illicite",
38690 "illusion", "image", "imbiber", "imiter", "immense", "immobile", "immuable", "impact", "impérial", "implorer",
38691 "imposer", "imprimer", "imputer", "incarner", "incendie", "incident", "incliner", "incolore", "indexer", "indice",
38692 "inductif", "inédit", "ineptie", "inexact", "infini", "infliger", "informer", "infusion", "ingérer", "inhaler",
38693 "inhiber", "injecter", "injure", "innocent", "inoculer", "inonder", "inscrire", "insecte", "insigne", "insolite",
38694 "inspirer", "instinct", "insulter", "intact", "intense", "intime", "intrigue", "intuitif", "inutile", "invasion",
38695 "inventer", "inviter", "invoquer", "ironique", "irradier", "irréel", "irriter", "isoler", "ivoire", "ivresse",
38696 "jaguar", "jaillir", "jambe", "janvier", "jardin", "jauger", "jaune", "javelot", "jetable", "jeton",
38697 "jeudi", "jeunesse", "joindre", "joncher", "jongler", "joueur", "jouissif", "journal", "jovial", "joyau",
38698 "joyeux", "jubiler", "jugement", "junior", "jupon", "juriste", "justice", "juteux", "juvénile", "kayak",
38699 "kimono", "kiosque", "label", "labial", "labourer", "lacérer", "lactose", "lagune", "laine", "laisser",
38700 "laitier", "lambeau", "lamelle", "lampe", "lanceur", "langage", "lanterne", "lapin", "largeur", "larme",
38701 "laurier", "lavabo", "lavoir", "lecture", "légal", "léger", "légume", "lessive", "lettre", "levier",
38702 "lexique", "lézard", "liasse", "libérer", "libre", "licence", "licorne", "liège", "lièvre", "ligature",
38703 "ligoter", "ligue", "limer", "limite", "limonade", "limpide", "linéaire", "lingot", "lionceau", "liquide",
38704 "lisière", "lister", "lithium", "litige", "littoral", "livreur", "logique", "lointain", "loisir", "lombric",
38705 "loterie", "louer", "lourd", "loutre", "louve", "loyal", "lubie", "lucide", "lucratif", "lueur",
38706 "lugubre", "luisant", "lumière", "lunaire", "lundi", "luron", "lutter", "luxueux", "machine", "magasin",
38707 "magenta", "magique", "maigre", "maillon", "maintien", "mairie", "maison", "majorer", "malaxer", "maléfice",
38708 "malheur", "malice", "mallette", "mammouth", "mandater", "maniable", "manquant", "manteau", "manuel", "marathon",
38709 "marbre", "marchand", "mardi", "maritime", "marqueur", "marron", "marteler", "mascotte", "massif", "matériel",
38710 "matière", "matraque", "maudire", "maussade", "mauve", "maximal", "méchant", "méconnu", "médaille", "médecin",
38711 "méditer", "méduse", "meilleur", "mélange", "mélodie", "membre", "mémoire", "menacer", "mener", "menhir",
38712 "mensonge", "mentor", "mercredi", "mérite", "merle", "messager", "mesure", "métal", "météore", "méthode",
38713 "métier", "meuble", "miauler", "microbe", "miette", "mignon", "migrer", "milieu", "million", "mimique",
38714 "mince", "minéral", "minimal", "minorer", "minute", "miracle", "miroiter", "missile", "mixte", "mobile",
38715 "moderne", "moelleux", "mondial", "moniteur", "monnaie", "monotone", "monstre", "montagne", "monument", "moqueur",
38716 "morceau", "morsure", "mortier", "moteur", "motif", "mouche", "moufle", "moulin", "mousson", "mouton",
38717 "mouvant", "multiple", "munition", "muraille", "murène", "murmure", "muscle", "muséum", "musicien", "mutation",
38718 "muter", "mutuel", "myriade", "myrtille", "mystère", "mythique", "nageur", "nappe", "narquois", "narrer",
38719 "natation", "nation", "nature", "naufrage", "nautique", "navire", "nébuleux", "nectar", "néfaste", "négation",
38720 "négliger", "négocier", "neige", "nerveux", "nettoyer", "neurone", "neutron", "neveu", "niche", "nickel",
38721 "nitrate", "niveau", "noble", "nocif", "nocturne", "noirceur", "noisette", "nomade", "nombreux", "nommer",
38722 "normatif", "notable", "notifier", "notoire", "nourrir", "nouveau", "novateur", "novembre", "novice", "nuage",
38723 "nuancer", "nuire", "nuisible", "numéro", "nuptial", "nuque", "nutritif", "obéir", "objectif", "obliger",
38724 "obscur", "observer", "obstacle", "obtenir", "obturer", "occasion", "occuper", "océan", "octobre", "octroyer",
38725 "octupler", "oculaire", "odeur", "odorant", "offenser", "officier", "offrir", "ogive", "oiseau", "oisillon",
38726 "olfactif", "olivier", "ombrage", "omettre", "onctueux", "onduler", "onéreux", "onirique", "opale", "opaque",
38727 "opérer", "opinion", "opportun", "opprimer", "opter", "optique", "orageux", "orange", "orbite", "ordonner",
38728 "oreille", "organe", "orgueil", "orifice", "ornement", "orque", "ortie", "osciller", "osmose", "ossature",
38729 "otarie", "ouragan", "ourson", "outil", "outrager", "ouvrage", "ovation", "oxyde", "oxygène", "ozone",
38730 "paisible", "palace", "palmarès", "palourde", "palper", "panache", "panda", "pangolin", "paniquer", "panneau",
38731 "panorama", "pantalon", "papaye", "papier", "papoter", "papyrus", "paradoxe", "parcelle", "paresse", "parfumer",
38732 "parler", "parole", "parrain", "parsemer", "partager", "parure", "parvenir", "passion", "pastèque", "paternel",
38733 "patience", "patron", "pavillon", "pavoiser", "payer", "paysage", "peigne", "peintre", "pelage", "pélican",
38734 "pelle", "pelouse", "peluche", "pendule", "pénétrer", "pénible", "pensif", "pénurie", "pépite", "péplum",
38735 "perdrix", "perforer", "période", "permuter", "perplexe", "persil", "perte", "peser", "pétale", "petit",
38736 "pétrir", "peuple", "pharaon", "phobie", "phoque", "photon", "phrase", "physique", "piano", "pictural",
38737 "pièce", "pierre", "pieuvre", "pilote", "pinceau", "pipette", "piquer", "pirogue", "piscine", "piston",
38738 "pivoter", "pixel", "pizza", "placard", "plafond", "plaisir", "planer", "plaque", "plastron", "plateau",
38739 "pleurer", "plexus", "pliage", "plomb", "plonger", "pluie", "plumage", "pochette", "poésie", "poète",
38740 "pointe", "poirier", "poisson", "poivre", "polaire", "policier", "pollen", "polygone", "pommade", "pompier",
38741 "ponctuel", "pondérer", "poney", "portique", "position", "posséder", "posture", "potager", "poteau", "potion",
38742 "pouce", "poulain", "poumon", "pourpre", "poussin", "pouvoir", "prairie", "pratique", "précieux", "prédire",
38743 "préfixe", "prélude", "prénom", "présence", "prétexte", "prévoir", "primitif", "prince", "prison", "priver",
38744 "problème", "procéder", "prodige", "profond", "progrès", "proie", "projeter", "prologue", "promener", "propre",
38745 "prospère", "protéger", "prouesse", "proverbe", "prudence", "pruneau", "psychose", "public", "puceron", "puiser",
38746 "pulpe", "pulsar", "punaise", "punitif", "pupitre", "purifier", "puzzle", "pyramide", "quasar", "querelle",
38747 "question", "quiétude", "quitter", "quotient", "racine", "raconter", "radieux", "ragondin", "raideur", "raisin",
38748 "ralentir", "rallonge", "ramasser", "rapide", "rasage", "ratisser", "ravager", "ravin", "rayonner", "réactif",
38749 "réagir", "réaliser", "réanimer", "recevoir", "réciter", "réclamer", "récolter", "recruter", "reculer", "recycler",
38750 "rédiger", "redouter", "refaire", "réflexe", "réformer", "refrain", "refuge", "régalien", "région", "réglage",
38751 "régulier", "réitérer", "rejeter", "rejouer", "relatif", "relever", "relief", "remarque", "remède", "remise",
38752 "remonter", "remplir", "remuer", "renard", "renfort", "renifler", "renoncer", "rentrer", "renvoi", "replier",
38753 "reporter", "reprise", "reptile", "requin", "réserve", "résineux", "résoudre", "respect", "rester", "résultat",
38754 "rétablir", "retenir", "réticule", "retomber", "retracer", "réunion", "réussir", "revanche", "revivre", "révolte",
38755 "révulsif", "richesse", "rideau", "rieur", "rigide", "rigoler", "rincer", "riposter", "risible", "risque",
38756 "rituel", "rival", "rivière", "rocheux", "romance", "rompre", "ronce", "rondin", "roseau", "rosier",
38757 "rotatif", "rotor", "rotule", "rouge", "rouille", "rouleau", "routine", "royaume", "ruban", "rubis",
38758 "ruche", "ruelle", "rugueux", "ruiner", "ruisseau", "ruser", "rustique", "rythme", "sabler", "saboter",
38759 "sabre", "sacoche", "safari", "sagesse", "saisir", "salade", "salive", "salon", "saluer", "samedi",
38760 "sanction", "sanglier", "sarcasme", "sardine", "saturer", "saugrenu", "saumon", "sauter", "sauvage", "savant",
38761 "savonner", "scalpel", "scandale", "scélérat", "scénario", "sceptre", "schéma", "science", "scinder", "score",
38762 "scrutin", "sculpter", "séance", "sécable", "sécher", "secouer", "sécréter", "sédatif", "séduire", "seigneur",
38763 "séjour", "sélectif", "semaine", "sembler", "semence", "séminal", "sénateur", "sensible", "sentence", "séparer",
38764 "séquence", "serein", "sergent", "sérieux", "serrure", "sérum", "service", "sésame", "sévir", "sevrage",
38765 "sextuple", "sidéral", "siècle", "siéger", "siffler", "sigle", "signal", "silence", "silicium", "simple",
38766 "sincère", "sinistre", "siphon", "sirop", "sismique", "situer", "skier", "social", "socle", "sodium",
38767 "soigneux", "soldat", "soleil", "solitude", "soluble", "sombre", "sommeil", "somnoler", "sonde", "songeur",
38768 "sonnette", "sonore", "sorcier", "sortir", "sosie", "sottise", "soucieux", "soudure", "souffle", "soulever",
38769 "soupape", "source", "soutirer", "souvenir", "spacieux", "spatial", "spécial", "sphère", "spiral", "stable",
38770 "station", "sternum", "stimulus", "stipuler", "strict", "studieux", "stupeur", "styliste", "sublime", "substrat",
38771 "subtil", "subvenir", "succès", "sucre", "suffixe", "suggérer", "suiveur", "sulfate", "superbe", "supplier",
38772 "surface", "suricate", "surmener", "surprise", "sursaut", "survie", "suspect", "syllabe", "symbole", "symétrie",
38773 "synapse", "syntaxe", "système", "tabac", "tablier", "tactile", "tailler", "talent", "talisman", "talonner",
38774 "tambour", "tamiser", "tangible", "tapis", "taquiner", "tarder", "tarif", "tartine", "tasse", "tatami",
38775 "tatouage", "taupe", "taureau", "taxer", "témoin", "temporel", "tenaille", "tendre", "teneur", "tenir",
38776 "tension", "terminer", "terne", "terrible", "tétine", "texte", "thème", "théorie", "thérapie", "thorax",
38777 "tibia", "tiède", "timide", "tirelire", "tiroir", "tissu", "titane", "titre", "tituber", "toboggan",
38778 "tolérant", "tomate", "tonique", "tonneau", "toponyme", "torche", "tordre", "tornade", "torpille", "torrent",
38779 "torse", "tortue", "totem", "toucher", "tournage", "tousser", "toxine", "traction", "trafic", "tragique",
38780 "trahir", "train", "trancher", "travail", "trèfle", "tremper", "trésor", "treuil", "triage", "tribunal",
38781 "tricoter", "trilogie", "triomphe", "tripler", "triturer", "trivial", "trombone", "tronc", "tropical", "troupeau",
38782 "tuile", "tulipe", "tumulte", "tunnel", "turbine", "tuteur", "tutoyer", "tuyau", "tympan", "typhon",
38783 "typique", "tyran", "ubuesque", "ultime", "ultrason", "unanime", "unifier", "union", "unique", "unitaire",
38784 "univers", "uranium", "urbain", "urticant", "usage", "usine", "usuel", "usure", "utile", "utopie",
38785 "vacarme", "vaccin", "vagabond", "vague", "vaillant", "vaincre", "vaisseau", "valable", "valise", "vallon",
38786 "valve", "vampire", "vanille", "vapeur", "varier", "vaseux", "vassal", "vaste", "vecteur", "vedette",
38787 "végétal", "véhicule", "veinard", "véloce", "vendredi", "vénérer", "venger", "venimeux", "ventouse", "verdure",
38788 "vérin", "vernir", "verrou", "verser", "vertu", "veston", "vétéran", "vétuste", "vexant", "vexer",
38789 "viaduc", "viande", "victoire", "vidange", "vidéo", "vignette", "vigueur", "vilain", "village", "vinaigre",
38790 "violon", "vipère", "virement", "virtuose", "virus", "visage", "viseur", "vision", "visqueux", "visuel",
38791 "vital", "vitesse", "viticole", "vitrine", "vivace", "vivipare", "vocation", "voguer", "voile", "voisin",
38792 "voiture", "volaille", "volcan", "voltiger", "volume", "vorace", "vortex", "voter", "vouloir", "voyage",
38793 "voyelle", "wagon", "xénon", "yacht", "zèbre", "zénith", "zeste", "zoologie"]
38795 <script>WORDLISTS = typeof WORDLISTS == "undefined" ? {} : WORDLISTS;
38796 WORDLISTS["italian"] = [
38797 "abaco", "abbaglio", "abbinato", "abete", "abisso", "abolire", "abrasivo", "abrogato", "accadere", "accenno",
38798 "accusato", "acetone", "achille", "acido", "acqua", "acre", "acrilico", "acrobata", "acuto", "adagio",
38799 "addebito", "addome", "adeguato", "aderire", "adipe", "adottare", "adulare", "affabile", "affetto", "affisso",
38800 "affranto", "aforisma", "afoso", "africano", "agave", "agente", "agevole", "aggancio", "agire", "agitare",
38801 "agonismo", "agricolo", "agrumeto", "aguzzo", "alabarda", "alato", "albatro", "alberato", "albo", "albume",
38802 "alce", "alcolico", "alettone", "alfa", "algebra", "aliante", "alibi", "alimento", "allagato", "allegro",
38803 "allievo", "allodola", "allusivo", "almeno", "alogeno", "alpaca", "alpestre", "altalena", "alterno", "alticcio",
38804 "altrove", "alunno", "alveolo", "alzare", "amalgama", "amanita", "amarena", "ambito", "ambrato", "ameba",
38805 "america", "ametista", "amico", "ammasso", "ammenda", "ammirare", "ammonito", "amore", "ampio", "ampliare",
38806 "amuleto", "anacardo", "anagrafe", "analista", "anarchia", "anatra", "anca", "ancella", "ancora", "andare",
38807 "andrea", "anello", "angelo", "angolare", "angusto", "anima", "annegare", "annidato", "anno", "annuncio",
38808 "anonimo", "anticipo", "anzi", "apatico", "apertura", "apode", "apparire", "appetito", "appoggio", "approdo",
38809 "appunto", "aprile", "arabica", "arachide", "aragosta", "araldica", "arancio", "aratura", "arazzo", "arbitro",
38810 "archivio", "ardito", "arenile", "argento", "argine", "arguto", "aria", "armonia", "arnese", "arredato",
38811 "arringa", "arrosto", "arsenico", "arso", "artefice", "arzillo", "asciutto", "ascolto", "asepsi", "asettico",
38812 "asfalto", "asino", "asola", "aspirato", "aspro", "assaggio", "asse", "assoluto", "assurdo", "asta",
38813 "astenuto", "astice", "astratto", "atavico", "ateismo", "atomico", "atono", "attesa", "attivare", "attorno",
38814 "attrito", "attuale", "ausilio", "austria", "autista", "autonomo", "autunno", "avanzato", "avere", "avvenire",
38815 "avviso", "avvolgere", "azione", "azoto", "azzimo", "azzurro", "babele", "baccano", "bacino", "baco",
38816 "badessa", "badilata", "bagnato", "baita", "balcone", "baldo", "balena", "ballata", "balzano", "bambino",
38817 "bandire", "baraonda", "barbaro", "barca", "baritono", "barlume", "barocco", "basilico", "basso", "batosta",
38818 "battuto", "baule", "bava", "bavosa", "becco", "beffa", "belgio", "belva", "benda", "benevole",
38819 "benigno", "benzina", "bere", "berlina", "beta", "bibita", "bici", "bidone", "bifido", "biga",
38820 "bilancia", "bimbo", "binocolo", "biologo", "bipede", "bipolare", "birbante", "birra", "biscotto", "bisesto",
38821 "bisnonno", "bisonte", "bisturi", "bizzarro", "blando", "blatta", "bollito", "bonifico", "bordo", "bosco",
38822 "botanico", "bottino", "bozzolo", "braccio", "bradipo", "brama", "branca", "bravura", "bretella", "brevetto",
38823 "brezza", "briglia", "brillante", "brindare", "broccolo", "brodo", "bronzina", "brullo", "bruno", "bubbone",
38824 "buca", "budino", "buffone", "buio", "bulbo", "buono", "burlone", "burrasca", "bussola", "busta",
38825 "cadetto", "caduco", "calamaro", "calcolo", "calesse", "calibro", "calmo", "caloria", "cambusa", "camerata",
38826 "camicia", "cammino", "camola", "campale", "canapa", "candela", "cane", "canino", "canotto", "cantina",
38827 "capace", "capello", "capitolo", "capogiro", "cappero", "capra", "capsula", "carapace", "carcassa", "cardo",
38828 "carisma", "carovana", "carretto", "cartolina", "casaccio", "cascata", "caserma", "caso", "cassone", "castello",
38829 "casuale", "catasta", "catena", "catrame", "cauto", "cavillo", "cedibile", "cedrata", "cefalo", "celebre",
38830 "cellulare", "cena", "cenone", "centesimo", "ceramica", "cercare", "certo", "cerume", "cervello", "cesoia",
38831 "cespo", "ceto", "chela", "chiaro", "chicca", "chiedere", "chimera", "china", "chirurgo", "chitarra",
38832 "ciao", "ciclismo", "cifrare", "cigno", "cilindro", "ciottolo", "circa", "cirrosi", "citrico", "cittadino",
38833 "ciuffo", "civetta", "civile", "classico", "clinica", "cloro", "cocco", "codardo", "codice", "coerente",
38834 "cognome", "collare", "colmato", "colore", "colposo", "coltivato", "colza", "coma", "cometa", "commando",
38835 "comodo", "computer", "comune", "conciso", "condurre", "conferma", "congelare", "coniuge", "connesso", "conoscere",
38836 "consumo", "continuo", "convegno", "coperto", "copione", "coppia", "copricapo", "corazza", "cordata", "coricato",
38837 "cornice", "corolla", "corpo", "corredo", "corsia", "cortese", "cosmico", "costante", "cottura", "covato",
38838 "cratere", "cravatta", "creato", "credere", "cremoso", "crescita", "creta", "criceto", "crinale", "crisi",
38839 "critico", "croce", "cronaca", "crostata", "cruciale", "crusca", "cucire", "cuculo", "cugino", "cullato",
38840 "cupola", "curatore", "cursore", "curvo", "cuscino", "custode", "dado", "daino", "dalmata", "damerino",
38841 "daniela", "dannoso", "danzare", "datato", "davanti", "davvero", "debutto", "decennio", "deciso", "declino",
38842 "decollo", "decreto", "dedicato", "definito", "deforme", "degno", "delegare", "delfino", "delirio", "delta",
38843 "demenza", "denotato", "dentro", "deposito", "derapata", "derivare", "deroga", "descritto", "deserto", "desiderio",
38844 "desumere", "detersivo", "devoto", "diametro", "dicembre", "diedro", "difeso", "diffuso", "digerire", "digitale",
38845 "diluvio", "dinamico", "dinnanzi", "dipinto", "diploma", "dipolo", "diradare", "dire", "dirotto", "dirupo",
38846 "disagio", "discreto", "disfare", "disgelo", "disposto", "distanza", "disumano", "dito", "divano", "divelto",
38847 "dividere", "divorato", "doblone", "docente", "doganale", "dogma", "dolce", "domato", "domenica", "dominare",
38848 "dondolo", "dono", "dormire", "dote", "dottore", "dovuto", "dozzina", "drago", "druido", "dubbio",
38849 "dubitare", "ducale", "duna", "duomo", "duplice", "duraturo", "ebano", "eccesso", "ecco", "eclissi",
38850 "economia", "edera", "edicola", "edile", "editoria", "educare", "egemonia", "egli", "egoismo", "egregio",
38851 "elaborato", "elargire", "elegante", "elencato", "eletto", "elevare", "elfico", "elica", "elmo", "elsa",
38852 "eluso", "emanato", "emblema", "emesso", "emiro", "emotivo", "emozione", "empirico", "emulo", "endemico",
38853 "enduro", "energia", "enfasi", "enoteca", "entrare", "enzima", "epatite", "epilogo", "episodio", "epocale",
38854 "eppure", "equatore", "erario", "erba", "erboso", "erede", "eremita", "erigere", "ermetico", "eroe",
38855 "erosivo", "errante", "esagono", "esame", "esanime", "esaudire", "esca", "esempio", "esercito", "esibito",
38856 "esigente", "esistere", "esito", "esofago", "esortato", "esoso", "espanso", "espresso", "essenza", "esso",
38857 "esteso", "estimare", "estonia", "estroso", "esultare", "etilico", "etnico", "etrusco", "etto", "euclideo",
38858 "europa", "evaso", "evidenza", "evitato", "evoluto", "evviva", "fabbrica", "faccenda", "fachiro", "falco",
38859 "famiglia", "fanale", "fanfara", "fango", "fantasma", "fare", "farfalla", "farinoso", "farmaco", "fascia",
38860 "fastoso", "fasullo", "faticare", "fato", "favoloso", "febbre", "fecola", "fede", "fegato", "felpa",
38861 "feltro", "femmina", "fendere", "fenomeno", "fermento", "ferro", "fertile", "fessura", "festivo", "fetta",
38862 "feudo", "fiaba", "fiducia", "fifa", "figurato", "filo", "finanza", "finestra", "finire", "fiore",
38863 "fiscale", "fisico", "fiume", "flacone", "flamenco", "flebo", "flemma", "florido", "fluente", "fluoro",
38864 "fobico", "focaccia", "focoso", "foderato", "foglio", "folata", "folclore", "folgore", "fondente", "fonetico",
38865 "fonia", "fontana", "forbito", "forchetta", "foresta", "formica", "fornaio", "foro", "fortezza", "forzare",
38866 "fosfato", "fosso", "fracasso", "frana", "frassino", "fratello", "freccetta", "frenata", "fresco", "frigo",
38867 "frollino", "fronde", "frugale", "frutta", "fucilata", "fucsia", "fuggente", "fulmine", "fulvo", "fumante",
38868 "fumetto", "fumoso", "fune", "funzione", "fuoco", "furbo", "furgone", "furore", "fuso", "futile",
38869 "gabbiano", "gaffe", "galateo", "gallina", "galoppo", "gambero", "gamma", "garanzia", "garbo", "garofano",
38870 "garzone", "gasdotto", "gasolio", "gastrico", "gatto", "gaudio", "gazebo", "gazzella", "geco", "gelatina",
38871 "gelso", "gemello", "gemmato", "gene", "genitore", "gennaio", "genotipo", "gergo", "ghepardo", "ghiaccio",
38872 "ghisa", "giallo", "gilda", "ginepro", "giocare", "gioiello", "giorno", "giove", "girato", "girone",
38873 "gittata", "giudizio", "giurato", "giusto", "globulo", "glutine", "gnomo", "gobba", "golf", "gomito",
38874 "gommone", "gonfio", "gonna", "governo", "gracile", "grado", "grafico", "grammo", "grande", "grattare",
38875 "gravoso", "grazia", "greca", "gregge", "grifone", "grigio", "grinza", "grotta", "gruppo", "guadagno",
38876 "guaio", "guanto", "guardare", "gufo", "guidare", "ibernato", "icona", "identico", "idillio", "idolo",
38877 "idra", "idrico", "idrogeno", "igiene", "ignaro", "ignorato", "ilare", "illeso", "illogico", "illudere",
38878 "imballo", "imbevuto", "imbocco", "imbuto", "immane", "immerso", "immolato", "impacco", "impeto", "impiego",
38879 "importo", "impronta", "inalare", "inarcare", "inattivo", "incanto", "incendio", "inchino", "incisivo", "incluso",
38880 "incontro", "incrocio", "incubo", "indagine", "india", "indole", "inedito", "infatti", "infilare", "inflitto",
38881 "ingaggio", "ingegno", "inglese", "ingordo", "ingrosso", "innesco", "inodore", "inoltrare", "inondato", "insano",
38882 "insetto", "insieme", "insonnia", "insulina", "intasato", "intero", "intonaco", "intuito", "inumidire", "invalido",
38883 "invece", "invito", "iperbole", "ipnotico", "ipotesi", "ippica", "iride", "irlanda", "ironico", "irrigato",
38884 "irrorare", "isolato", "isotopo", "isterico", "istituto", "istrice", "italia", "iterare", "labbro", "labirinto",
38885 "lacca", "lacerato", "lacrima", "lacuna", "laddove", "lago", "lampo", "lancetta", "lanterna", "lardoso",
38886 "larga", "laringe", "lastra", "latenza", "latino", "lattuga", "lavagna", "lavoro", "legale", "leggero",
38887 "lembo", "lentezza", "lenza", "leone", "lepre", "lesivo", "lessato", "lesto", "letterale", "leva",
38888 "levigato", "libero", "lido", "lievito", "lilla", "limatura", "limitare", "limpido", "lineare", "lingua",
38889 "liquido", "lira", "lirica", "lisca", "lite", "litigio", "livrea", "locanda", "lode", "logica",
38890 "lombare", "londra", "longevo", "loquace", "lorenzo", "loto", "lotteria", "luce", "lucidato", "lumaca",
38891 "luminoso", "lungo", "lupo", "luppolo", "lusinga", "lusso", "lutto", "macabro", "macchina", "macero",
38892 "macinato", "madama", "magico", "maglia", "magnete", "magro", "maiolica", "malafede", "malgrado", "malinteso",
38893 "malsano", "malto", "malumore", "mana", "mancia", "mandorla", "mangiare", "manifesto", "mannaro", "manovra",
38894 "mansarda", "mantide", "manubrio", "mappa", "maratona", "marcire", "maretta", "marmo", "marsupio", "maschera",
38895 "massaia", "mastino", "materasso", "matricola", "mattone", "maturo", "mazurca", "meandro", "meccanico", "mecenate",
38896 "medesimo", "meditare", "mega", "melassa", "melis", "melodia", "meninge", "meno", "mensola", "mercurio",
38897 "merenda", "merlo", "meschino", "mese", "messere", "mestolo", "metallo", "metodo", "mettere", "miagolare",
38898 "mica", "micelio", "michele", "microbo", "midollo", "miele", "migliore", "milano", "milite", "mimosa",
38899 "minerale", "mini", "minore", "mirino", "mirtillo", "miscela", "missiva", "misto", "misurare", "mitezza",
38900 "mitigare", "mitra", "mittente", "mnemonico", "modello", "modifica", "modulo", "mogano", "mogio", "mole",
38901 "molosso", "monastero", "monco", "mondina", "monetario", "monile", "monotono", "monsone", "montato", "monviso",
38902 "mora", "mordere", "morsicato", "mostro", "motivato", "motosega", "motto", "movenza", "movimento", "mozzo",
38903 "mucca", "mucosa", "muffa", "mughetto", "mugnaio", "mulatto", "mulinello", "multiplo", "mummia", "munto",
38904 "muovere", "murale", "musa", "muscolo", "musica", "mutevole", "muto", "nababbo", "nafta", "nanometro",
38905 "narciso", "narice", "narrato", "nascere", "nastrare", "naturale", "nautica", "naviglio", "nebulosa", "necrosi",
38906 "negativo", "negozio", "nemmeno", "neofita", "neretto", "nervo", "nessuno", "nettuno", "neutrale", "neve",
38907 "nevrotico", "nicchia", "ninfa", "nitido", "nobile", "nocivo", "nodo", "nome", "nomina", "nordico",
38908 "normale", "norvegese", "nostrano", "notare", "notizia", "notturno", "novella", "nucleo", "nulla", "numero",
38909 "nuovo", "nutrire", "nuvola", "nuziale", "oasi", "obbedire", "obbligo", "obelisco", "oblio", "obolo",
38910 "obsoleto", "occasione", "occhio", "occidente", "occorrere", "occultare", "ocra", "oculato", "odierno", "odorare",
38911 "offerta", "offrire", "offuscato", "oggetto", "oggi", "ognuno", "olandese", "olfatto", "oliato", "oliva",
38912 "ologramma", "oltre", "omaggio", "ombelico", "ombra", "omega", "omissione", "ondoso", "onere", "onice",
38913 "onnivoro", "onorevole", "onta", "operato", "opinione", "opposto", "oracolo", "orafo", "ordine", "orecchino",
38914 "orefice", "orfano", "organico", "origine", "orizzonte", "orma", "ormeggio", "ornativo", "orologio", "orrendo",
38915 "orribile", "ortensia", "ortica", "orzata", "orzo", "osare", "oscurare", "osmosi", "ospedale", "ospite",
38916 "ossa", "ossidare", "ostacolo", "oste", "otite", "otre", "ottagono", "ottimo", "ottobre", "ovale",
38917 "ovest", "ovino", "oviparo", "ovocito", "ovunque", "ovviare", "ozio", "pacchetto", "pace", "pacifico",
38918 "padella", "padrone", "paese", "paga", "pagina", "palazzina", "palesare", "pallido", "palo", "palude",
38919 "pandoro", "pannello", "paolo", "paonazzo", "paprica", "parabola", "parcella", "parere", "pargolo", "pari",
38920 "parlato", "parola", "partire", "parvenza", "parziale", "passivo", "pasticca", "patacca", "patologia", "pattume",
38921 "pavone", "peccato", "pedalare", "pedonale", "peggio", "peloso", "penare", "pendice", "penisola", "pennuto",
38922 "penombra", "pensare", "pentola", "pepe", "pepita", "perbene", "percorso", "perdonato", "perforare", "pergamena",
38923 "periodo", "permesso", "perno", "perplesso", "persuaso", "pertugio", "pervaso", "pesatore", "pesista", "peso",
38924 "pestifero", "petalo", "pettine", "petulante", "pezzo", "piacere", "pianta", "piattino", "piccino", "picozza",
38925 "piega", "pietra", "piffero", "pigiama", "pigolio", "pigro", "pila", "pilifero", "pillola", "pilota",
38926 "pimpante", "pineta", "pinna", "pinolo", "pioggia", "piombo", "piramide", "piretico", "pirite", "pirolisi",
38927 "pitone", "pizzico", "placebo", "planare", "plasma", "platano", "plenario", "pochezza", "poderoso", "podismo",
38928 "poesia", "poggiare", "polenta", "poligono", "pollice", "polmonite", "polpetta", "polso", "poltrona", "polvere",
38929 "pomice", "pomodoro", "ponte", "popoloso", "porfido", "poroso", "porpora", "porre", "portata", "posa",
38930 "positivo", "possesso", "postulato", "potassio", "potere", "pranzo", "prassi", "pratica", "precluso", "predica",
38931 "prefisso", "pregiato", "prelievo", "premere", "prenotare", "preparato", "presenza", "pretesto", "prevalso", "prima",
38932 "principe", "privato", "problema", "procura", "produrre", "profumo", "progetto", "prolunga", "promessa", "pronome",
38933 "proposta", "proroga", "proteso", "prova", "prudente", "prugna", "prurito", "psiche", "pubblico", "pudica",
38934 "pugilato", "pugno", "pulce", "pulito", "pulsante", "puntare", "pupazzo", "pupilla", "puro", "quadro",
38935 "qualcosa", "quasi", "querela", "quota", "raccolto", "raddoppio", "radicale", "radunato", "raffica", "ragazzo",
38936 "ragione", "ragno", "ramarro", "ramingo", "ramo", "randagio", "rantolare", "rapato", "rapina", "rappreso",
38937 "rasatura", "raschiato", "rasente", "rassegna", "rastrello", "rata", "ravveduto", "reale", "recepire", "recinto",
38938 "recluta", "recondito", "recupero", "reddito", "redimere", "regalato", "registro", "regola", "regresso", "relazione",
38939 "remare", "remoto", "renna", "replica", "reprimere", "reputare", "resa", "residente", "responso", "restauro",
38940 "rete", "retina", "retorica", "rettifica", "revocato", "riassunto", "ribadire", "ribelle", "ribrezzo", "ricarica",
38941 "ricco", "ricevere", "riciclato", "ricordo", "ricreduto", "ridicolo", "ridurre", "rifasare", "riflesso", "riforma",
38942 "rifugio", "rigare", "rigettato", "righello", "rilassato", "rilevato", "rimanere", "rimbalzo", "rimedio", "rimorchio",
38943 "rinascita", "rincaro", "rinforzo", "rinnovo", "rinomato", "rinsavito", "rintocco", "rinuncia", "rinvenire", "riparato",
38944 "ripetuto", "ripieno", "riportare", "ripresa", "ripulire", "risata", "rischio", "riserva", "risibile", "riso",
38945 "rispetto", "ristoro", "risultato", "risvolto", "ritardo", "ritegno", "ritmico", "ritrovo", "riunione", "riva",
38946 "riverso", "rivincita", "rivolto", "rizoma", "roba", "robotico", "robusto", "roccia", "roco", "rodaggio",
38947 "rodere", "roditore", "rogito", "rollio", "romantico", "rompere", "ronzio", "rosolare", "rospo", "rotante",
38948 "rotondo", "rotula", "rovescio", "rubizzo", "rubrica", "ruga", "rullino", "rumine", "rumoroso", "ruolo",
38949 "rupe", "russare", "rustico", "sabato", "sabbiare", "sabotato", "sagoma", "salasso", "saldatura", "salgemma",
38950 "salivare", "salmone", "salone", "saltare", "saluto", "salvo", "sapere", "sapido", "saporito", "saraceno",
38951 "sarcasmo", "sarto", "sassoso", "satellite", "satira", "satollo", "saturno", "savana", "savio", "saziato",
38952 "sbadiglio", "sbalzo", "sbancato", "sbarra", "sbattere", "sbavare", "sbendare", "sbirciare", "sbloccato", "sbocciato",
38953 "sbrinare", "sbruffone", "sbuffare", "scabroso", "scadenza", "scala", "scambiare", "scandalo", "scapola", "scarso",
38954 "scatenare", "scavato", "scelto", "scenico", "scettro", "scheda", "schiena", "sciarpa", "scienza", "scindere",
38955 "scippo", "sciroppo", "scivolo", "sclerare", "scodella", "scolpito", "scomparto", "sconforto", "scoprire", "scorta",
38956 "scossone", "scozzese", "scriba", "scrollare", "scrutinio", "scuderia", "scultore", "scuola", "scuro", "scusare",
38957 "sdebitare", "sdoganare", "seccatura", "secondo", "sedano", "seggiola", "segnalato", "segregato", "seguito", "selciato",
38958 "selettivo", "sella", "selvaggio", "semaforo", "sembrare", "seme", "seminato", "sempre", "senso", "sentire",
38959 "sepolto", "sequenza", "serata", "serbato", "sereno", "serio", "serpente", "serraglio", "servire", "sestina",
38960 "setola", "settimana", "sfacelo", "sfaldare", "sfamato", "sfarzoso", "sfaticato", "sfera", "sfida", "sfilato",
38961 "sfinge", "sfocato", "sfoderare", "sfogo", "sfoltire", "sforzato", "sfratto", "sfruttato", "sfuggito", "sfumare",
38962 "sfuso", "sgabello", "sgarbato", "sgonfiare", "sgorbio", "sgrassato", "sguardo", "sibilo", "siccome", "sierra",
38963 "sigla", "signore", "silenzio", "sillaba", "simbolo", "simpatico", "simulato", "sinfonia", "singolo", "sinistro",
38964 "sino", "sintesi", "sinusoide", "sipario", "sisma", "sistole", "situato", "slitta", "slogatura", "sloveno",
38965 "smarrito", "smemorato", "smentito", "smeraldo", "smilzo", "smontare", "smottato", "smussato", "snellire", "snervato",
38966 "snodo", "sobbalzo", "sobrio", "soccorso", "sociale", "sodale", "soffitto", "sogno", "soldato", "solenne",
38967 "solido", "sollazzo", "solo", "solubile", "solvente", "somatico", "somma", "sonda", "sonetto", "sonnifero",
38968 "sopire", "soppeso", "sopra", "sorgere", "sorpasso", "sorriso", "sorso", "sorteggio", "sorvolato", "sospiro",
38969 "sosta", "sottile", "spada", "spalla", "spargere", "spatola", "spavento", "spazzola", "specie", "spedire",
38970 "spegnere", "spelatura", "speranza", "spessore", "spettrale", "spezzato", "spia", "spigoloso", "spillato", "spinoso",
38971 "spirale", "splendido", "sportivo", "sposo", "spranga", "sprecare", "spronato", "spruzzo", "spuntino", "squillo",
38972 "sradicare", "srotolato", "stabile", "stacco", "staffa", "stagnare", "stampato", "stantio", "starnuto", "stasera",
38973 "statuto", "stelo", "steppa", "sterzo", "stiletto", "stima", "stirpe", "stivale", "stizzoso", "stonato",
38974 "storico", "strappo", "stregato", "stridulo", "strozzare", "strutto", "stuccare", "stufo", "stupendo", "subentro",
38975 "succoso", "sudore", "suggerito", "sugo", "sultano", "suonare", "superbo", "supporto", "surgelato", "surrogato",
38976 "sussurro", "sutura", "svagare", "svedese", "sveglio", "svelare", "svenuto", "svezia", "sviluppo", "svista",
38977 "svizzera", "svolta", "svuotare", "tabacco", "tabulato", "tacciare", "taciturno", "tale", "talismano", "tampone",
38978 "tannino", "tara", "tardivo", "targato", "tariffa", "tarpare", "tartaruga", "tasto", "tattico", "taverna",
38979 "tavolata", "tazza", "teca", "tecnico", "telefono", "temerario", "tempo", "temuto", "tendone", "tenero",
38980 "tensione", "tentacolo", "teorema", "terme", "terrazzo", "terzetto", "tesi", "tesserato", "testato", "tetro",
38981 "tettoia", "tifare", "tigella", "timbro", "tinto", "tipico", "tipografo", "tiraggio", "tiro", "titanio",
38982 "titolo", "titubante", "tizio", "tizzone", "toccare", "tollerare", "tolto", "tombola", "tomo", "tonfo",
38983 "tonsilla", "topazio", "topologia", "toppa", "torba", "tornare", "torrone", "tortora", "toscano", "tossire",
38984 "tostatura", "totano", "trabocco", "trachea", "trafila", "tragedia", "tralcio", "tramonto", "transito", "trapano",
38985 "trarre", "trasloco", "trattato", "trave", "treccia", "tremolio", "trespolo", "tributo", "tricheco", "trifoglio",
38986 "trillo", "trincea", "trio", "tristezza", "triturato", "trivella", "tromba", "trono", "troppo", "trottola",
38987 "trovare", "truccato", "tubatura", "tuffato", "tulipano", "tumulto", "tunisia", "turbare", "turchino", "tuta",
38988 "tutela", "ubicato", "uccello", "uccisore", "udire", "uditivo", "uffa", "ufficio", "uguale", "ulisse",
38989 "ultimato", "umano", "umile", "umorismo", "uncinetto", "ungere", "ungherese", "unicorno", "unificato", "unisono",
38990 "unitario", "unte", "uovo", "upupa", "uragano", "urgenza", "urlo", "usanza", "usato", "uscito",
38991 "usignolo", "usuraio", "utensile", "utilizzo", "utopia", "vacante", "vaccinato", "vagabondo", "vagliato", "valanga",
38992 "valgo", "valico", "valletta", "valoroso", "valutare", "valvola", "vampata", "vangare", "vanitoso", "vano",
38993 "vantaggio", "vanvera", "vapore", "varano", "varcato", "variante", "vasca", "vedetta", "vedova", "veduto",
38994 "vegetale", "veicolo", "velcro", "velina", "velluto", "veloce", "venato", "vendemmia", "vento", "verace",
38995 "verbale", "vergogna", "verifica", "vero", "verruca", "verticale", "vescica", "vessillo", "vestale", "veterano",
38996 "vetrina", "vetusto", "viandante", "vibrante", "vicenda", "vichingo", "vicinanza", "vidimare", "vigilia", "vigneto",
38997 "vigore", "vile", "villano", "vimini", "vincitore", "viola", "vipera", "virgola", "virologo", "virulento",
38998 "viscoso", "visione", "vispo", "vissuto", "visura", "vita", "vitello", "vittima", "vivanda", "vivido",
38999 "viziare", "voce", "voga", "volatile", "volere", "volpe", "voragine", "vulcano", "zampogna", "zanna",
39000 "zappato", "zattera", "zavorra", "zefiro", "zelante", "zelo", "zenzero", "zerbino", "zibetto", "zinco",
39001 "zircone", "zitto", "zolla", "zotico", "zucchero", "zufolo", "zulu", "zuppa"]
39004 * Copyright (c)
2013 Pavol Rusnak
39006 * Permission is hereby granted, free of charge, to any person obtaining a copy of
39007 * this software and associated documentation files (the "Software"), to deal in
39008 * the Software without restriction, including without limitation the rights to
39009 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
39010 * of the Software, and to permit persons to whom the Software is furnished to do
39011 * so, subject to the following conditions:
39013 * The above copyright notice and this permission notice shall be included in all
39014 * copies or substantial portions of the Software.
39016 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
39017 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
39018 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
39019 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39020 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
39021 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
39025 * Javascript port from python by Ian Coleman
39027 * Requires code from sjcl
39028 * https://github.com/bitwiseshiftleft/sjcl
39031 var Mnemonic = function(language) {
39033 var PBKDF2_ROUNDS =
2048;
39039 var hmacSHA512 = function(key) {
39040 var hasher = new sjcl.misc.hmac(key, sjcl.hash.sha512);
39041 this.encrypt = function() {
39042 return hasher.encrypt.apply(hasher, arguments);
39047 wordlist = WORDLISTS[language];
39048 if (wordlist.length != RADIX) {
39049 err = 'Wordlist should contain ' + RADIX + ' words, but it contains ' + wordlist.length + ' words.';
39054 self.generate = function(strength) {
39055 strength = strength ||
128;
39056 var r = strength %
32;
39058 throw 'Strength should be divisible by
32, but it is not (' + r + ').';
39060 var hasStrongCrypto = 'crypto' in window && window['crypto'] !== null;
39061 if (!hasStrongCrypto) {
39062 throw 'Mnemonic should be generated with strong randomness, but crypto.getRandomValues is unavailable';
39064 var buffer = new Uint8Array(strength /
8);
39065 var data = crypto.getRandomValues(buffer);
39066 return self.toMnemonic(data);
39069 self.toMnemonic = function(byteArray) {
39070 if (byteArray.length %
4 > 0) {
39071 throw 'Data length in bits should be divisible by
32, but it is not (' + byteArray.length + ' bytes = ' + byteArray.length*
8 + ' bits).'
39074 //h = hashlib.sha256(data).hexdigest()
39075 var data = byteArrayToWordArray(byteArray);
39076 var hash = sjcl.hash.sha256.hash(data);
39077 var h = sjcl.codec.hex.fromBits(hash);
39079 // b is a binary string, eg '
00111010101100...'
39080 //b = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8) + \
39081 // bin(int(h,
16))[
2:].zfill(
256)[:len(data) *
8 /
32]
39083 // a = bin(int(binascii.hexlify(data),
16))[
2:].zfill(len(data) *
8)
39084 // c = bin(int(h,
16))[
2:].zfill(
256)
39085 // d = c[:len(data) *
8 /
32]
39086 var a = byteArrayToBinaryString(byteArray);
39087 var c = zfill(hexStringToBinaryString(h),
256);
39088 var d = c.substring(
0, byteArray.length *
8 /
32);
39089 // b = line1 + line2
39093 var blen = b.length /
11;
39094 for (var i=
0; i
<blen; i++) {
39095 var idx = parseInt(b.substring(i *
11, (i +
1) *
11),
2);
39096 result.push(wordlist[idx]);
39098 return self.joinWords(result);
39101 self.check = function(mnemonic) {
39102 var mnemonic = self.splitWords(mnemonic);
39103 if (mnemonic.length ==
0 || mnemonic.length %
3 > 0) {
39106 // idx = map(lambda x: bin(self.wordlist.index(x))[
2:].zfill(
11), mnemonic)
39108 for (var i=
0; i
<mnemonic.length; i++) {
39109 var word = mnemonic[i];
39110 var wordIndex = wordlist.indexOf(word);
39111 if (wordIndex == -
1) {
39114 var binaryIndex = zfill(wordIndex.toString(
2),
11);
39115 idx.push(binaryIndex);
39117 var b = idx.join('');
39119 //d = b[:l /
33 *
32]
39121 var d = b.substring(
0, l /
33 *
32);
39122 var h = b.substring(l - l /
33, l);
39123 //nd = binascii.unhexlify(hex(int(d,
2))[
2:].rstrip('L').zfill(l /
33 *
8))
39124 var nd = binaryStringToWordArray(d);
39125 //nh = bin(int(hashlib.sha256(nd).hexdigest(),
16))[
2:].zfill(
256)[:l /
33]
39126 var ndHash = sjcl.hash.sha256.hash(nd);
39127 var ndHex = sjcl.codec.hex.fromBits(ndHash);
39128 var ndBstr = zfill(hexStringToBinaryString(ndHex),
256);
39129 var nh = ndBstr.substring(
0,l/
33);
39133 self.toSeed = function(mnemonic, passphrase) {
39134 passphrase = passphrase || '';
39135 mnemonic = self.joinWords(self.splitWords(self.normalizeString(mnemonic))); // removes blanks
39136 passphrase = self.normalizeString(passphrase)
39137 passphrase =
"mnemonic" + passphrase;
39138 var mnemonicBits = sjcl.codec.utf8String.toBits(mnemonic);
39139 var passphraseBits = sjcl.codec.utf8String.toBits(passphrase);
39140 var result = sjcl.misc.pbkdf2(mnemonicBits, passphraseBits, PBKDF2_ROUNDS,
512, hmacSHA512);
39141 var hashHex = sjcl.codec.hex.fromBits(result);
39145 self.splitWords = function(mnemonic) {
39146 return mnemonic.split(/\s/g).filter(function(x) { return x.length; });
39149 self.joinWords = function(words) {
39150 // Set space correctly depending on the language
39151 // see https://github.com/bitcoin/bips/blob/master/bip-
0039/bip-
0039-wordlists.md#japanese
39153 if (language ==
"japanese") {
39154 space =
"\u3000"; // ideographic space
39156 return words.join(space);
39159 self.normalizeString = function(str) {
39160 if (typeof str.normalize ==
"function") {
39161 return str.normalize(
"NFKD");
39164 // TODO decide how to handle this in the future.
39165 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize
39170 function byteArrayToWordArray(data) {
39172 for (var i=
0; i
<data.length/
4; i++) {
39174 v += data[i*
4 +
0] <<
8 *
3;
39175 v += data[i*
4 +
1] <<
8 *
2;
39176 v += data[i*
4 +
2] <<
8 *
1;
39177 v += data[i*
4 +
3] <<
8 *
0;
39183 function byteArrayToBinaryString(data) {
39185 for (var i=
0; i
<data.length; i++) {
39186 bin += zfill(data[i].toString(
2),
8);
39191 function hexStringToBinaryString(hexString) {
39193 for (var i=
0; i
<hexString.length; i++) {
39194 binaryString += zfill(parseInt(hexString[i],
16).toString(
2),
4);
39196 return binaryString;
39199 function binaryStringToWordArray(binary) {
39200 var aLen = binary.length /
32;
39202 for (var i=
0; i
<aLen; i++) {
39203 var valueStr = binary.substring(
0,
32);
39204 var value = parseInt(valueStr,
2);
39206 binary = binary.slice(
32);
39211 // Pad a numeric string on the left with zero digits until the given width
39213 // Note this differs to the python implementation because it does not
39214 // handle numbers starting with a sign.
39215 function zfill(source, length) {
39216 source = source.toString();
39217 while (source.length < length) {
39218 source = '
0' + source;
39228 JavaScript BigInteger library version
0.9.1
39229 http://silentmatt.com/biginteger/
39231 Copyright (c)
2009 Matthew Crumley
<email@matthewcrumley.com
>
39232 Copyright (c)
2010,
2011 by John Tobey
<John.Tobey@gmail.com
>
39233 Licensed under the MIT license.
39235 Support for arbitrary internal representation base was added by
39240 File: biginteger.js
39246 (function(exports) {
39250 An arbitrarily-large integer.
39252 <BigInteger> objects should be considered immutable. None of the "built-in"
39253 methods modify *this* or their arguments. All properties should be
39254 considered private.
39256 All the methods of
<BigInteger> instances can be called "statically". The
39257 static versions are convenient if you don't already have a
<BigInteger>
39260 As an example, these calls are equivalent.
39262 > BigInteger(
4).multiply(
5); // returns BigInteger(
20);
39263 > BigInteger.multiply(
4,
5); // returns BigInteger(
20);
39266 > var a = BigInteger.toJSValue("
0b101010"); // Not completely useless...
39269 var CONSTRUCT = {}; // Unique token to call "private" version of constructor
39272 Constructor: BigInteger()
39273 Convert a value to a
<BigInteger>.
39275 Although
<BigInteger()
> is the constructor for
<BigInteger> objects, it is
39276 best not to call it as a constructor. If *n* is a
<BigInteger> object, it is
39277 simply returned as-is. Otherwise,
<BigInteger()
> is equivalent to
<parse>
39278 without a radix argument.
39280 > var n0 = BigInteger(); // Same as
<BigInteger.ZERO
>
39281 > var n1 = BigInteger("
123"); // Create a new
<BigInteger> with value
123
39282 > var n2 = BigInteger(
123); // Create a new
<BigInteger> with value
123
39283 > var n3 = BigInteger(n2); // Return n2, unchanged
39285 The constructor form only takes an array and a sign. *n* must be an
39286 array of numbers in little-endian order, where each digit is between
0
39287 and BigInteger.base. The second parameter sets the sign: -
1 for
39288 negative, +
1 for positive, or
0 for zero. The array is *not copied and
39289 may be modified*. If the array contains only zeros, the sign parameter
39290 is ignored and is forced to zero.
39292 > new BigInteger([
5], -
1): create a new BigInteger with value -
5
39296 n - Value to convert to a
<BigInteger>.
39300 A
<BigInteger> value.
39304 <parse>,
<BigInteger>
39306 function BigInteger(n, s, token) {
39307 if (token !== CONSTRUCT) {
39308 if (n instanceof BigInteger) {
39311 else if (typeof n === "undefined") {
39314 return BigInteger.parse(n);
39317 n = n || []; // Provide the nullary constructor for subclasses.
39318 while (n.length && !n[n.length -
1]) {
39322 this._s = n.length ? (s ||
1) :
0;
39325 BigInteger._construct = function(n, s) {
39326 return new BigInteger(n, s, CONSTRUCT);
39329 // Base-
10 speedup hacks in parse, toString, exp10 and log functions
39330 // require base to be a power of
10.
10^
7 is the largest such power
39331 // that won't cause a precision loss when digits are multiplied.
39332 var BigInteger_base =
10000000;
39333 var BigInteger_base_log10 =
7;
39335 BigInteger.base = BigInteger_base;
39336 BigInteger.base_log10 = BigInteger_base_log10;
39338 var ZERO = new BigInteger([],
0, CONSTRUCT);
39341 BigInteger.ZERO = ZERO;
39343 var ONE = new BigInteger([
1],
1, CONSTRUCT);
39346 BigInteger.ONE = ONE;
39348 var M_ONE = new BigInteger(ONE._d, -
1, CONSTRUCT);
39350 //
<BigInteger> -
1.
39351 BigInteger.M_ONE = M_ONE;
39354 // Shortcut for
<ZERO>.
39355 BigInteger._0 = ZERO;
39358 // Shortcut for
<ONE>.
39359 BigInteger._1 = ONE;
39363 Array of
<BigIntegers> from
0 to
36.
39365 These are used internally for parsing, but useful when you need a "small"
39370 <ZERO>,
<ONE>,
<_0>,
<_1>
39372 BigInteger.small = [
39375 /* Assuming BigInteger_base
> 36 */
39376 new BigInteger( [
2],
1, CONSTRUCT),
39377 new BigInteger( [
3],
1, CONSTRUCT),
39378 new BigInteger( [
4],
1, CONSTRUCT),
39379 new BigInteger( [
5],
1, CONSTRUCT),
39380 new BigInteger( [
6],
1, CONSTRUCT),
39381 new BigInteger( [
7],
1, CONSTRUCT),
39382 new BigInteger( [
8],
1, CONSTRUCT),
39383 new BigInteger( [
9],
1, CONSTRUCT),
39384 new BigInteger([
10],
1, CONSTRUCT),
39385 new BigInteger([
11],
1, CONSTRUCT),
39386 new BigInteger([
12],
1, CONSTRUCT),
39387 new BigInteger([
13],
1, CONSTRUCT),
39388 new BigInteger([
14],
1, CONSTRUCT),
39389 new BigInteger([
15],
1, CONSTRUCT),
39390 new BigInteger([
16],
1, CONSTRUCT),
39391 new BigInteger([
17],
1, CONSTRUCT),
39392 new BigInteger([
18],
1, CONSTRUCT),
39393 new BigInteger([
19],
1, CONSTRUCT),
39394 new BigInteger([
20],
1, CONSTRUCT),
39395 new BigInteger([
21],
1, CONSTRUCT),
39396 new BigInteger([
22],
1, CONSTRUCT),
39397 new BigInteger([
23],
1, CONSTRUCT),
39398 new BigInteger([
24],
1, CONSTRUCT),
39399 new BigInteger([
25],
1, CONSTRUCT),
39400 new BigInteger([
26],
1, CONSTRUCT),
39401 new BigInteger([
27],
1, CONSTRUCT),
39402 new BigInteger([
28],
1, CONSTRUCT),
39403 new BigInteger([
29],
1, CONSTRUCT),
39404 new BigInteger([
30],
1, CONSTRUCT),
39405 new BigInteger([
31],
1, CONSTRUCT),
39406 new BigInteger([
32],
1, CONSTRUCT),
39407 new BigInteger([
33],
1, CONSTRUCT),
39408 new BigInteger([
34],
1, CONSTRUCT),
39409 new BigInteger([
35],
1, CONSTRUCT),
39410 new BigInteger([
36],
1, CONSTRUCT)
39413 // Used for parsing/radix conversion
39414 BigInteger.digits =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(
"");
39418 Convert a
<BigInteger> to a string.
39420 When *base* is greater than
10, letters are upper case.
39424 base - Optional base to represent the number in (default is base
10).
39425 Must be between
2 and
36 inclusive, or an Error will be thrown.
39429 The string representation of the
<BigInteger>.
39431 BigInteger.prototype.toString = function(base) {
39432 base = +base ||
10;
39433 if (base <
2 || base
> 36) {
39434 throw new Error(
"illegal radix " + base +
".");
39436 if (this._s ===
0) {
39440 var str = this._s <
0 ?
"-" :
"";
39441 str += this._d[this._d.length -
1].toString();
39442 for (var i = this._d.length -
2; i
>=
0; i--) {
39443 var group = this._d[i].toString();
39444 while (group.length < BigInteger_base_log10) group = '
0' + group;
39450 var numerals = BigInteger.digits;
39451 base = BigInteger.small[base];
39452 var sign = this._s;
39454 var n = this.abs();
39458 while (n._s !==
0) {
39459 var divmod = n.divRem(base);
39462 // TODO: This could be changed to unshift instead of reversing at the end.
39463 // Benchmark both to compare speeds.
39464 digits.push(numerals[digit.valueOf()]);
39466 return (sign <
0 ? "-" : "") + digits.reverse().join("");
39470 // Verify strings for parsing
39471 BigInteger.radixRegex = [
39513 Parse a string into a
<BigInteger>.
39515 *base* is optional but, if provided, must be from
2 to
36 inclusive. If
39516 *base* is not provided, it will be guessed based on the leading characters
39519 - "
0x" or "
0X": *base* =
16
39520 - "
0c" or "
0C": *base* =
8
39521 - "
0b" or "
0B": *base* =
2
39522 - else: *base* =
10
39524 If no base is provided, or *base* is
10, the number can be in exponential
39525 form. For example, these are all valid:
39527 > BigInteger.parse("
1e9"); // Same as "
1000000000"
39528 > BigInteger.parse("
1.234*
10^
3"); // Same as
1234
39529 > BigInteger.parse("
56789 *
10 ** -
2"); // Same as
567
39531 If any characters fall outside the range defined by the radix, an exception
39536 s - The string to parse.
39537 base - Optional radix (default is to guess based on *s*).
39541 a
<BigInteger> instance.
39543 BigInteger.parse = function(s, base) {
39544 // Expands a number in exponential form to decimal form.
39545 // expandExponential("-
13.441*
10^
5") === "
1344100";
39546 // expandExponential("
1.12300e-1") === "
0.112300";
39547 // expandExponential(
1000000000000000000000000000000) === "
1000000000000000000000000000000";
39548 function expandExponential(str) {
39549 str = str.replace(/\s*[*xX]\s*
10\s*(\^|\*\*)\s*/, "e");
39551 return str.replace(/^([+\-])?(\d+)\.?(\d*)[eE]([+\-]?\d+)$/, function(x, s, n, f, c) {
39554 var i = n.length + c;
39555 x = (l ? n : f).length;
39556 c = ((c = Math.abs(c))
>= x ? c - x + l :
0);
39557 var z = (new Array(c +
1)).join("
0");
39559 return (s || "") + (l ? r = z + r : r += z).substr(
0, i += l ? z.length :
0) + (i < r.length ? "." + r.substr(i) : "");
39564 if (typeof base === "undefined" || +base ===
10) {
39565 s = expandExponential(s);
39569 if (typeof base === "undefined") {
39570 prefixRE = '
0[xcb]';
39572 else if (base ==
16) {
39575 else if (base ==
8) {
39578 else if (base ==
2) {
39584 var parts = new RegExp('^([+\\-]?)(' + prefixRE + ')?([
0-
9a-z]*)(?:\\.\\d*)?$', 'i').exec(s);
39586 var sign = parts[
1] || "+";
39587 var baseSection = parts[
2] || "";
39588 var digits = parts[
3] || "";
39590 if (typeof base === "undefined") {
39592 if (baseSection === "
0x" || baseSection === "
0X") { // Hex
39595 else if (baseSection === "
0c" || baseSection === "
0C") { // Octal
39598 else if (baseSection === "
0b" || baseSection === "
0B") { // Binary
39605 else if (base <
2 || base
> 36) {
39606 throw new Error(
"Illegal radix " + base +
".");
39611 // Check for digits outside the range
39612 if (!(BigInteger.radixRegex[base].test(digits))) {
39613 throw new Error(
"Bad digit for radix " + base);
39616 // Strip leading zeros, and convert to array
39617 digits = digits.replace(/^
0+/,
"").split(
"");
39618 if (digits.length ===
0) {
39622 // Get the sign (we know it's not zero)
39623 sign = (sign ===
"-") ? -
1 :
1;
39628 while (digits.length
>= BigInteger_base_log10) {
39629 d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''),
10));
39631 d.push(parseInt(digits.join(''),
10));
39632 return new BigInteger(d, sign, CONSTRUCT);
39635 // Do the conversion
39637 base = BigInteger.small[base];
39638 var small = BigInteger.small;
39639 for (var i =
0; i < digits.length; i++) {
39640 d = d.multiply(base).add(small[parseInt(digits[i],
36)]);
39642 return new BigInteger(d._d, sign, CONSTRUCT);
39645 throw new Error("Invalid BigInteger format: " + s);
39651 Add two
<BigIntegers>.
39655 n - The number to add to *this*. Will be converted to a
<BigInteger>.
39659 The numbers added together.
39663 <subtract>,
<multiply>,
<quotient>,
<next>
39665 BigInteger.prototype.add = function(n) {
39666 if (this._s ===
0) {
39667 return BigInteger(n);
39674 if (this._s !== n._s) {
39676 return this.subtract(n);
39683 var sum = new Array(Math.max(al, bl) +
1);
39684 var size = Math.min(al, bl);
39688 for (var i =
0; i < size; i++) {
39689 digit = a[i] + b[i] + carry;
39690 sum[i] = digit % BigInteger_base;
39691 carry = (digit / BigInteger_base) |
0;
39697 for (i = size; carry && i < al; i++) {
39698 digit = a[i] + carry;
39699 sum[i] = digit % BigInteger_base;
39700 carry = (digit / BigInteger_base) |
0;
39706 for ( ; i < al; i++) {
39710 return new BigInteger(sum, this._s, CONSTRUCT);
39715 Get the additive inverse of a
<BigInteger>.
39719 A
<BigInteger> with the same magnatude, but with the opposite sign.
39725 BigInteger.prototype.negate = function() {
39726 return new BigInteger(this._d, (-this._s) |
0, CONSTRUCT);
39731 Get the absolute value of a
<BigInteger>.
39735 A
<BigInteger> with the same magnatude, but always positive (or zero).
39741 BigInteger.prototype.abs = function() {
39742 return (this._s <
0) ? this.negate() : this;
39747 Subtract two
<BigIntegers>.
39751 n - The number to subtract from *this*. Will be converted to a
<BigInteger>.
39755 The *n* subtracted from *this*.
39759 <add>,
<multiply>,
<quotient>,
<prev>
39761 BigInteger.prototype.subtract = function(n) {
39762 if (this._s ===
0) {
39763 return BigInteger(n).negate();
39770 if (this._s !== n._s) {
39772 return this.add(n);
39776 // negative - negative =
> -|a| - -|b| =
> -|a| + |b| =
> |b| - |a|
39778 m = new BigInteger(n._d,
1, CONSTRUCT);
39779 n = new BigInteger(this._d,
1, CONSTRUCT);
39782 // Both are positive =
> a - b
39783 var sign = m.compareAbs(n);
39787 else if (sign <
0) {
39799 var diff = new Array(al); // al
>= bl since a
> b
39804 for (i =
0; i < bl; i++) {
39805 digit = a[i] - borrow - b[i];
39807 digit += BigInteger_base;
39815 for (i = bl; i < al; i++) {
39816 digit = a[i] - borrow;
39818 digit += BigInteger_base;
39826 for ( ; i < al; i++) {
39830 return new BigInteger(diff, sign, CONSTRUCT);
39834 function addOne(n, sign) {
39836 var sum = a.slice();
39841 var digit = (a[i] ||
0) +
1;
39842 sum[i] = digit % BigInteger_base;
39843 if (digit <= BigInteger_base -
1) {
39849 return new BigInteger(sum, sign, CONSTRUCT);
39852 function subtractOne(n, sign) {
39854 var sum = a.slice();
39859 var digit = (a[i] ||
0) -
1;
39861 sum[i] = digit + BigInteger_base;
39870 return new BigInteger(sum, sign, CONSTRUCT);
39875 Get the next
<BigInteger> (add one).
39885 BigInteger.prototype.next = function() {
39890 return subtractOne(this, -
1);
39893 return addOne(this,
1);
39899 Get the previous
<BigInteger> (subtract one).
39909 BigInteger.prototype.prev = function() {
39914 return addOne(this, -
1);
39917 return subtractOne(this,
1);
39923 Function: compareAbs
39924 Compare the absolute value of two
<BigIntegers>.
39926 Calling
<compareAbs> is faster than calling
<abs> twice, then
<compare>.
39930 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
39934 -
1,
0, or +
1 if *|this|* is less than, equal to, or greater than *|n|*.
39940 BigInteger.prototype.compareAbs = function(n) {
39945 if (!(n instanceof BigInteger)) {
39946 if (!isFinite(n)) {
39947 return(isNaN(n) ? n : -
1);
39952 if (this._s ===
0) {
39953 return (n._s !==
0) ? -
1 :
0;
39959 var l = this._d.length;
39960 var nl = n._d.length;
39970 for (var i = l-
1; i
>=
0; i--) {
39971 if (a[i] !== b[i]) {
39972 return a[i] < b[i] ? -
1 :
1;
39981 Compare two
<BigIntegers>.
39985 n - The number to compare to *this*. Will be converted to a
<BigInteger>.
39989 -
1,
0, or +
1 if *this* is less than, equal to, or greater than *n*.
39993 <compareAbs>,
<isPositive>,
<isNegative>,
<isUnit>
39995 BigInteger.prototype.compare = function(n) {
40002 if (this._s ===
0) {
40006 if (this._s === n._s) { // both positive or both negative
40007 var cmp = this.compareAbs(n);
40008 return cmp * this._s;
40017 Return true iff *this* is either
1 or -
1.
40021 true if *this* compares equal to
<BigInteger.ONE
> or
<BigInteger.M_ONE
>.
40025 <isZero>,
<isNegative>,
<isPositive>,
<compareAbs>,
<compare>,
40026 <BigInteger.ONE
>,
<BigInteger.M_ONE
>
40028 BigInteger.prototype.isUnit = function() {
40029 return this === ONE ||
40031 (this._d.length ===
1 && this._d[
0] ===
1);
40036 Multiply two
<BigIntegers>.
40040 n - The number to multiply *this* by. Will be converted to a
40045 The numbers multiplied together.
40049 <add>,
<subtract>,
<quotient>,
<square>
40051 BigInteger.prototype.multiply = function(n) {
40052 // TODO: Consider adding Karatsuba multiplication for large numbers
40053 if (this._s ===
0) {
40061 if (this.isUnit()) {
40069 return this.negate();
40074 return this.square();
40077 var r = (this._d.length
>= n._d.length);
40078 var a = (r ? this : n)._d; // a will be longer than b
40079 var b = (r ? n : this)._d;
40084 var partial = new Array(pl);
40086 for (i =
0; i < pl; i++) {
40090 for (i =
0; i < bl; i++) {
40093 var jlimit = al + i;
40095 for (var j = i; j < jlimit; j++) {
40096 digit = partial[j] + bi * a[j - i] + carry;
40097 carry = (digit / BigInteger_base) |
0;
40098 partial[j] = (digit % BigInteger_base) |
0;
40101 digit = partial[j] + carry;
40102 carry = (digit / BigInteger_base) |
0;
40103 partial[j] = digit % BigInteger_base;
40106 return new BigInteger(partial, this._s * n._s, CONSTRUCT);
40109 // Multiply a BigInteger by a single-digit native number
40110 // Assumes that this and n are
>=
0
40111 // This is not really intended to be used outside the library itself
40112 BigInteger.prototype.multiplySingleDigit = function(n) {
40113 if (n ===
0 || this._s ===
0) {
40121 if (this._d.length ===
1) {
40122 digit = this._d[
0] * n;
40123 if (digit
>= BigInteger_base) {
40124 return new BigInteger([(digit % BigInteger_base)|
0,
40125 (digit / BigInteger_base)|
0],
1, CONSTRUCT);
40127 return new BigInteger([digit],
1, CONSTRUCT);
40131 return this.add(this);
40133 if (this.isUnit()) {
40134 return new BigInteger([n],
1, CONSTRUCT);
40141 var partial = new Array(pl);
40142 for (var i =
0; i < pl; i++) {
40147 for (var j =
0; j < al; j++) {
40148 digit = n * a[j] + carry;
40149 carry = (digit / BigInteger_base) |
0;
40150 partial[j] = (digit % BigInteger_base) |
0;
40153 partial[j] = carry;
40156 return new BigInteger(partial,
1, CONSTRUCT);
40161 Multiply a
<BigInteger> by itself.
40163 This is slightly faster than regular multiplication, since it removes the
40164 duplicated multiplcations.
40168 > this.multiply(this)
40173 BigInteger.prototype.square = function() {
40174 // Normally, squaring a
10-digit number would take
100 multiplications.
40175 // Of these
10 are unique diagonals, of the remaining
90 (
100-
10),
45 are repeated.
40176 // This procedure saves (N*(N-
1))/
2 multiplications, (e.g.,
45 of
100 multiplies).
40177 // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org
40179 if (this._s ===
0) {
40182 if (this.isUnit()) {
40186 var digits = this._d;
40187 var length = digits.length;
40188 var imult1 = new Array(length + length +
1);
40189 var product, carry, k;
40192 // Calculate diagonal
40193 for (i =
0; i < length; i++) {
40195 product = digits[i] * digits[i];
40196 carry = (product / BigInteger_base) |
0;
40197 imult1[k] = product % BigInteger_base;
40198 imult1[k +
1] = carry;
40201 // Calculate repeating part
40202 for (i =
0; i < length; i++) {
40205 for (var j = i +
1; j < length; j++, k++) {
40206 product = digits[j] * digits[i] *
2 + imult1[k] + carry;
40207 carry = (product / BigInteger_base) |
0;
40208 imult1[k] = product % BigInteger_base;
40211 var digit = carry + imult1[k];
40212 carry = (digit / BigInteger_base) |
0;
40213 imult1[k] = digit % BigInteger_base;
40214 imult1[k +
1] += carry;
40217 return new BigInteger(imult1,
1, CONSTRUCT);
40222 Divide two
<BigIntegers> and truncate towards zero.
40224 <quotient> throws an exception if *n* is zero.
40228 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
40232 The *this* / *n*, truncated to an integer.
40236 <add>,
<subtract>,
<multiply>,
<divRem>,
<remainder>
40238 BigInteger.prototype.quotient = function(n) {
40239 return this.divRem(n)[
0];
40244 Deprecated synonym for
<quotient>.
40246 BigInteger.prototype.divide = BigInteger.prototype.quotient;
40249 Function: remainder
40250 Calculate the remainder of two
<BigIntegers>.
40252 <remainder> throws an exception if *n* is zero.
40256 n - The remainder after *this* is divided *this* by *n*. Will be
40257 converted to a
<BigInteger>.
40265 <divRem>,
<quotient>
40267 BigInteger.prototype.remainder = function(n) {
40268 return this.divRem(n)[
1];
40273 Calculate the integer quotient and remainder of two
<BigIntegers>.
40275 <divRem> throws an exception if *n* is zero.
40279 n - The number to divide *this* by. Will be converted to a
<BigInteger>.
40283 A two-element array containing the quotient and the remainder.
40287 is exactly equivalent to
40289 > [a.quotient(b), a.remainder(b)]
40291 except it is faster, because they are calculated at the same time.
40295 <quotient>,
<remainder>
40297 BigInteger.prototype.divRem = function(n) {
40300 throw new Error("Divide by zero");
40302 if (this._s ===
0) {
40303 return [ZERO, ZERO];
40305 if (n._d.length ===
1) {
40306 return this.divRemSmall(n._s * n._d[
0]);
40309 // Test for easy cases -- |n1| <= |n2|
40310 switch (this.compareAbs(n)) {
40311 case
0: // n1 == n2
40312 return [this._s === n._s ? ONE : M_ONE, ZERO];
40313 case -
1: // |n1| < |n2|
40314 return [ZERO, this];
40317 var sign = this._s * n._s;
40319 var b_digits = this._d;
40320 var b_index = b_digits.length;
40321 var digits = n._d.length;
40325 var part = new BigInteger([],
0, CONSTRUCT);
40328 part._d.unshift(b_digits[--b_index]);
40329 part = new BigInteger(part._d,
1, CONSTRUCT);
40331 if (part.compareAbs(n) <
0) {
40335 if (part._s ===
0) {
40339 var xlen = part._d.length, ylen = a._d.length;
40340 var highx = part._d[xlen-
1]*BigInteger_base + part._d[xlen-
2];
40341 var highy = a._d[ylen-
1]*BigInteger_base + a._d[ylen-
2];
40342 if (part._d.length
> a._d.length) {
40343 // The length of part._d can either match a._d length,
40344 // or exceed it by one.
40345 highx = (highx+
1)*BigInteger_base;
40347 guess = Math.ceil(highx/highy);
40350 var check = a.multiplySingleDigit(guess);
40351 if (check.compareAbs(part) <=
0) {
40361 var diff = part.subtract(check);
40362 part._d = diff._d.slice();
40365 return [new BigInteger(quot.reverse(), sign, CONSTRUCT),
40366 new BigInteger(part._d, this._s, CONSTRUCT)];
40369 // Throws an exception if n is outside of (-BigInteger.base, -
1] or
40370 // [
1, BigInteger.base). It's not necessary to call this, since the
40371 // other division functions will call it if they are able to.
40372 BigInteger.prototype.divRemSmall = function(n) {
40376 throw new Error("Divide by zero");
40379 var n_s = n <
0 ? -
1 :
1;
40380 var sign = this._s * n_s;
40383 if (n <
1 || n
>= BigInteger_base) {
40384 throw new Error("Argument out of range");
40387 if (this._s ===
0) {
40388 return [ZERO, ZERO];
40391 if (n ===
1 || n === -
1) {
40392 return [(sign ===
1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];
40395 //
2 <= n < BigInteger_base
40397 // divide a single digit by a single digit
40398 if (this._d.length ===
1) {
40399 var q = new BigInteger([(this._d[
0] / n) |
0],
1, CONSTRUCT);
40400 r = new BigInteger([(this._d[
0] % n) |
0],
1, CONSTRUCT);
40410 var digits = this._d.slice();
40411 var quot = new Array(digits.length);
40417 while (digits.length) {
40418 part = part * BigInteger_base + digits[digits.length -
1];
40422 diff = BigInteger_base * diff + part;
40429 guess = (part / n) |
0;
40432 var check = n * guess;
40433 diff = part - check;
40444 r = new BigInteger([diff],
1, CONSTRUCT);
40448 return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];
40453 Return true iff *this* is divisible by two.
40455 Note that
<BigInteger.ZERO
> is even.
40459 true if *this* is even, false otherwise.
40465 BigInteger.prototype.isEven = function() {
40466 var digits = this._d;
40467 return this._s ===
0 || digits.length ===
0 || (digits[
0] %
2) ===
0;
40472 Return true iff *this* is not divisible by two.
40476 true if *this* is odd, false otherwise.
40482 BigInteger.prototype.isOdd = function() {
40483 return !this.isEven();
40488 Get the sign of a
<BigInteger>.
40498 <isZero>,
<isPositive>,
<isNegative>,
<compare>,
<BigInteger.ZERO
>
40500 BigInteger.prototype.sign = function() {
40505 Function: isPositive
40506 Return true iff *this*
> 0.
40510 true if *this*.compare(
<BigInteger.ZERO
>) ==
1.
40514 <sign>,
<isZero>,
<isNegative>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
40516 BigInteger.prototype.isPositive = function() {
40517 return this._s
> 0;
40521 Function: isNegative
40522 Return true iff *this* <
0.
40526 true if *this*.compare(
<BigInteger.ZERO
>) == -
1.
40530 <sign>,
<isPositive>,
<isZero>,
<isUnit>,
<compare>,
<BigInteger.ZERO
>
40532 BigInteger.prototype.isNegative = function() {
40533 return this._s <
0;
40538 Return true iff *this* ==
0.
40542 true if *this*.compare(
<BigInteger.ZERO
>) ==
0.
40546 <sign>,
<isPositive>,
<isNegative>,
<isUnit>,
<BigInteger.ZERO
>
40548 BigInteger.prototype.isZero = function() {
40549 return this._s ===
0;
40554 Multiply a
<BigInteger> by a power of
10.
40556 This is equivalent to, but faster than
40559 > return this.multiply(BigInteger("
1e" + n));
40562 > return this.quotient(BigInteger("
1e" + -n));
40567 n - The power of
10 to multiply *this* by. *n* is converted to a
40568 javascipt number and must be no greater than
<BigInteger.MAX_EXP
>
40569 (
0x7FFFFFFF), or an exception will be thrown.
40573 *this* * (
10 ** *n*), truncated to an integer if necessary.
40579 BigInteger.prototype.exp10 = function(n) {
40584 if (Math.abs(n)
> Number(MAX_EXP)) {
40585 throw new Error("exponent too large in BigInteger.exp10");
40587 // Optimization for this ==
0. This also keeps us from having to trim zeros in the positive n case
40588 if (this._s ===
0) {
40592 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
40594 for (; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
40600 k = k.multiplySingleDigit(Math.pow(
10, n));
40601 return (this._s <
0 ? k.negate() : k);
40602 } else if (-n
>= this._d.length*BigInteger_base_log10) {
40605 var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);
40607 for (n = -n; n
>= BigInteger_base_log10; n -= BigInteger_base_log10) {
40610 return (n ==
0) ? k : k.divRemSmall(Math.pow(
10, n))[
0];
40616 Raise a
<BigInteger> to a power.
40618 In this implementation,
0**
0 is
1.
40622 n - The exponent to raise *this* by. *n* must be no greater than
40623 <BigInteger.MAX_EXP
> (
0x7FFFFFFF), or an exception will be thrown.
40627 *this* raised to the *nth* power.
40633 BigInteger.prototype.pow = function(n) {
40634 if (this.isUnit()) {
40639 return BigInteger(n).isOdd() ? this : this.negate();
40647 else if (n._s <
0) {
40648 if (this._s ===
0) {
40649 throw new Error(
"Divide by zero");
40655 if (this._s ===
0) {
40662 if (n.compareAbs(MAX_EXP)
> 0) {
40663 throw new Error(
"exponent too large in BigInteger.pow");
40667 var two = BigInteger.small[
2];
40669 while (n.isPositive()) {
40671 aux = aux.multiply(x);
40677 n = n.quotient(two);
40685 Raise a
<BigInteger> to a power (mod m).
40687 Because it is reduced by a modulus,
<modPow> is not limited by
40688 <BigInteger.MAX_EXP
> like
<pow>.
40692 exponent - The exponent to raise *this* by. Must be positive.
40693 modulus - The modulus.
40697 *this* ^ *exponent* (mod *modulus*).
40703 BigInteger.prototype.modPow = function(exponent, modulus) {
40707 while (exponent.isPositive()) {
40708 if (exponent.isOdd()) {
40709 result = result.multiply(base).remainder(modulus);
40712 exponent = exponent.quotient(BigInteger.small[
2]);
40713 if (exponent.isPositive()) {
40714 base = base.square().remainder(modulus);
40723 Get the natural logarithm of a
<BigInteger> as a native JavaScript number.
40725 This is equivalent to
40727 > Math.log(this.toJSValue())
40729 but handles values outside of the native number range.
40739 BigInteger.prototype.log = function() {
40741 case
0: return -Infinity;
40742 case -
1: return NaN;
40743 default: // Fall through.
40746 var l = this._d.length;
40748 if (l*BigInteger_base_log10 <
30) {
40749 return Math.log(this.valueOf());
40752 var N = Math.ceil(
30/BigInteger_base_log10);
40753 var firstNdigits = this._d.slice(l - N);
40754 return Math.log((new BigInteger(firstNdigits,
1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);
40759 Convert a
<BigInteger> to a native JavaScript integer.
40761 This is called automatically by JavaScipt to convert a
<BigInteger> to a
40766 > parseInt(this.toString(),
10)
40770 <toString>,
<toJSValue>
40772 BigInteger.prototype.valueOf = function() {
40773 return parseInt(this.toString(),
10);
40777 Function: toJSValue
40778 Convert a
<BigInteger> to a native JavaScript integer.
40780 This is the same as valueOf, but more explicitly named.
40784 > parseInt(this.toString(),
10)
40788 <toString>,
<valueOf>
40790 BigInteger.prototype.toJSValue = function() {
40791 return parseInt(this.toString(),
10);
40794 var MAX_EXP = BigInteger(
0x7FFFFFFF);
40795 // Constant: MAX_EXP
40796 // The largest exponent allowed in
<pow> and
<exp10> (
0x7FFFFFFF or
2147483647).
40797 BigInteger.MAX_EXP = MAX_EXP;
40800 function makeUnary(fn) {
40801 return function(a) {
40802 return fn.call(BigInteger(a));
40806 function makeBinary(fn) {
40807 return function(a, b) {
40808 return fn.call(BigInteger(a), BigInteger(b));
40812 function makeTrinary(fn) {
40813 return function(a, b, c) {
40814 return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));
40820 var unary = "toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log".split(",");
40821 var binary = "compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs".split(",");
40822 var trinary = ["modPow"];
40824 for (i =
0; i < unary.length; i++) {
40826 BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);
40829 for (i =
0; i < binary.length; i++) {
40831 BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);
40834 for (i =
0; i < trinary.length; i++) {
40836 BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);
40839 BigInteger.exp10 = function(x, n) {
40840 return BigInteger(x).exp10(n);
40845 exports.BigInteger = BigInteger;
40846 })(typeof exports !== 'undefined' ? exports : this);
40848 <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){
40849 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;
40851 },{}],
2:[function(require,module,exports){
40852 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;
40854 },{"./scoring":
6}],
3:[function(require,module,exports){
40855 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(","),
40856 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(","),
40857 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(","),
40858 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(","),
40859 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;
40861 },{}],
4:[function(require,module,exports){
40862 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;
40864 },{
"./feedback":
2,
"./matching":
5,
"./scoring":
6,
"./time_estimates":
7}],
5:[function(require,module,exports){
40865 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;
40867 },{
"./adjacency_graphs":
1,
"./frequency_lists":
3,
"./scoring":
6}],
6:[function(require,module,exports){
40868 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;
40870 },{"./adjacency_graphs":
1}],
7:[function(require,module,exports){
40871 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;
40875 //# sourceMappingURL=zxcvbn.js.map
40878 * Detects entropy from a string.
40885 * hexadecimal [
0-
9A-F]
40886 * card [A2-
9TJQK][CDHS]
40888 * Automatically uses lowest entropy to avoid issues such as interpretting
0101
40889 * as hexadecimal which would be
16 bits when really it's only
4 bits of binary
40893 window.Entropy = new (function() {
40895 var TWO = new BigInteger(
2);
40897 // matchers returns an array of the matched events for each type of entropy.
40899 // matchers.binary("
010") returns ["
0", "
1", "
0"]
40900 // matchers.binary("a10") returns ["
1", "
0"]
40901 // matchers.hex("a10") returns ["a", "
1", "
0"]
40903 binary: function(str) {
40904 return str.match(/[
0-
1]/gi) || [];
40906 base6: function(str) {
40907 return str.match(/[
0-
5]/gi) || [];
40909 dice: function(str) {
40910 return str.match(/[
1-
6]/gi) || []; // ie dice numbers
40912 base10: function(str) {
40913 return str.match(/[
0-
9]/gi) || [];
40915 hex: function(str) {
40916 return str.match(/[
0-
9A-F]/gi) || [];
40918 card: function(str) {
40919 // Format is NumberSuit, eg
40920 // AH ace of hearts
40921 //
8C eight of clubs
40922 // TD ten of diamonds
40923 // JS jack of spades
40924 // QH queen of hearts
40925 // KC king of clubs
40926 return str.match(/([A2-
9TJQK][CDHS])/gi) || [];
40930 // Convert array of cards from ["ac", "
4d", "ks"]
40931 // to numbers between
0 and
51 [
0,
16,
51]
40932 function convertCardsToInts(cards) {
40934 var values = "a23456789tjqk";
40935 var suits = "cdhs";
40936 for (var i=
0; i
<cards.length; i++) {
40937 var card = cards[i].toLowerCase();
40938 var value = card[
0];
40939 var suit = card[
1];
40940 var asInt =
13 * suits.indexOf(suit) + values.indexOf(value);
40946 this.fromString = function(rawEntropyStr) {
40947 // Find type of entropy being used (binary, hex, dice etc)
40948 var base = getBase(rawEntropyStr);
40949 // Convert dice to base6 entropy (ie
1-
6 to
0-
5)
40950 // This is done by changing all
6s to
0s
40951 if (base.str ==
"dice") {
40954 for (var i=
0; i
<base.parts.length; i++) {
40955 var c = base.parts[i];
40956 if (
"12345".indexOf(c)
> -
1) {
40957 newParts[i] = base.parts[i];
40958 newInts[i] = base.ints[i];
40965 base.str = "base
6 (dice)";
40966 base.ints = newInts;
40967 base.parts = newParts;
40968 base.matcher = matchers.base6;
40970 // Detect empty entropy
40971 if (base.parts.length ==
0) {
40979 // Convert base.ints to BigInteger.
40980 // Due to using unusual bases, eg cards of base52, this is not as simple as
40981 // using BigInteger.parse()
40982 var entropyInt = BigInteger.ZERO;
40983 for (var i=base.ints.length-
1; i
>=
0; i--) {
40984 var thisInt = BigInteger.parse(base.ints[i]);
40985 var power = (base.ints.length -
1) - i;
40986 var additionalEntropy = BigInteger.parse(base.asInt).pow(power).multiply(thisInt);
40987 entropyInt = entropyInt.add(additionalEntropy);
40989 // Convert entropy to binary
40990 var entropyBin = entropyInt.toString(
2);
40991 // If the first integer is small, it must be padded with zeros.
40992 // Otherwise the chance of the first bit being
1 is
100%, which is
40993 // obviously incorrect.
40994 // This is not perfect for non-
2^n bases.
40995 var expectedBits = Math.floor(base.parts.length * Math.log2(base.asInt));
40996 while (entropyBin.length < expectedBits) {
40997 entropyBin = "
0" + entropyBin;
40999 // Calculate the number of bits per event
41000 var bitsPerEvent = Math.log2(base.asInt);
41001 // Cards binary must be handled differently, since they're not replaced
41002 if (base.asInt ==
52) {
41003 var cardEntropy = processCardEntropy(base.parts);
41004 entropyBin = cardEntropy.binaryStr;
41005 bitsPerEvent = cardEntropy.bitsPerEvent;
41007 // Supply a 'filtered' entropy string for display purposes
41008 var entropyClean = base.parts.join("");
41009 var entropyHtml = base.parts.join("");
41010 if (base.asInt ==
52) {
41011 entropyClean = base.parts.join(" ").toUpperCase();
41012 entropyClean = entropyClean.replace(/C/g, "\u2663");
41013 entropyClean = entropyClean.replace(/D/g, "\u2666");
41014 entropyClean = entropyClean.replace(/H/g, "\u2665");
41015 entropyClean = entropyClean.replace(/S/g, "\u2660");
41016 entropyHtml = base.parts.join(" ").toUpperCase();
41017 entropyHtml = entropyHtml.replace(/C/g, "
<span class='card-suit club'
>\u2663
</span>");
41018 entropyHtml = entropyHtml.replace(/D/g, "<span class='card-suit diamond'
>\u2666
</span>");
41019 entropyHtml = entropyHtml.replace(/H/g, "<span class='card-suit heart'
>\u2665
</span>");
41020 entropyHtml = entropyHtml.replace(/S/g, "<span class='card-suit spade'
>\u2660
</span>");
41022 // Return the result
41024 binaryStr: entropyBin,
41025 cleanStr: entropyClean,
41026 cleanHtml: entropyHtml,
41027 bitsPerEvent: bitsPerEvent,
41033 function getSortedDeck() {
41035 var suits = "CDHS
";
41036 var values = "A23456789TJQK
";
41037 for (var i=0; i<suits.length; i++) {
41038 for (var j=0; j<values.length; j++) {
41039 s.push(values[j]+suits[i]);
41045 function getBase(str) {
41046 // Need to get the lowest base for the supplied entropy.
41047 // This prevents interpreting, say, dice rolls as hexadecimal.
41048 var binaryMatches = matchers.binary(str);
41049 var hexMatches = matchers.hex(str);
41050 // Find the lowest base that can be used, whilst ignoring any irrelevant chars
41051 if (binaryMatches.length == hexMatches.length && hexMatches.length > 0) {
41052 var ints = binaryMatches.map(function(i) { return parseInt(i, 2) });
41055 parts: binaryMatches,
41056 matcher: matchers.binary,
41061 var cardMatches = matchers.card(str);
41062 if (cardMatches.length >= hexMatches.length / 2) {
41063 var ints = convertCardsToInts(cardMatches);
41066 parts: cardMatches,
41067 matcher: matchers.card,
41072 var diceMatches = matchers.dice(str);
41073 if (diceMatches.length == hexMatches.length && hexMatches.length
> 0) {
41074 var ints = diceMatches.map(function(i) { return parseInt(i) });
41077 parts: diceMatches,
41078 matcher: matchers.dice,
41083 var base6Matches = matchers.base6(str);
41084 if (base6Matches.length == hexMatches.length && hexMatches.length
> 0) {
41085 var ints = base6Matches.map(function(i) { return parseInt(i) });
41088 parts: base6Matches,
41089 matcher: matchers.base6,
41094 var base10Matches = matchers.base10(str);
41095 if (base10Matches.length == hexMatches.length && hexMatches.length
> 0) {
41096 var ints = base10Matches.map(function(i) { return parseInt(i) });
41099 parts: base10Matches,
41100 matcher: matchers.base10,
41105 var ints = hexMatches.map(function(i) { return parseInt(i,
16) });
41109 matcher: matchers.hex,
41111 str:
"hexadecimal",
41115 // Assume cards are NOT replaced.
41116 // Additional entropy decreases as more cards are used. This means
41117 // total possible entropy is measured using n!, not base^n.
41118 // eg the second last card can be only one of two, not one of fifty two
41119 // so the added entropy for that card is only one bit at most
41120 function processCardEntropy(cards) {
41121 // Track how many instances of each card have been used, and thus
41122 // how many decks are in use.
41123 var cardCounts = {};
41124 var numberOfDecks =
0;
41125 // Work out number of decks by max(duplicates)
41126 for (var i=
0; i
<cards.length; i++) {
41127 // Get the card that was drawn
41128 var cardLower = cards[i];
41129 var card = cardLower.toUpperCase();
41130 // Initialize the count for this card if needed
41131 if (!(card in cardCounts)) {
41132 cardCounts[card] =
0;
41134 cardCounts[card] +=
1;
41135 // See if this is max(duplicates)
41136 if (cardCounts[card]
> numberOfDecks) {
41137 numberOfDecks = cardCounts[card];
41140 // Work out the total number of bits for this many decks
41141 // See http://crypto.stackexchange.com/q/
41886
41142 var gainedBits =
0;
41143 // Equivalent of Math.log2(factorial(
52*numberOfDecks))
41144 // which becomes infinity for numberOfDecks
> 4
41145 for (var i=
1; i<=
52*numberOfDecks; i++) {
41146 gainedBits = gainedBits + Math.log2(i);
41148 var lostBits =
52 * Math.log2(factorial(numberOfDecks));
41149 var maxBits = gainedBits - lostBits;
41150 // Convert the drawn cards to a binary representation.
41151 // The exact technique for doing this is unclear.
41153 // http://crypto.stackexchange.com/a/
41896
41154 //
"I even doubt that this is well defined (only the average entropy
41155 // is, I believe)."
41157 // https://github.com/iancoleman/bip39/issues/
33#issuecomment-
263021856
41158 //
"The binary representation can be the first log(permutations,2) bits
41159 // of the sha-2 hash of the normalized deck string."
41161 // In this specific implementation, the first N bits of the hash of the
41162 // normalized cards string is being used. Uppercase, no spaces; eg
41163 // sha256(
"AH8DQSTC2H")
41164 var totalCards = numberOfDecks *
52;
41165 var percentUsed = cards.length / totalCards;
41166 // Calculate the average number of bits of entropy for the number of
41168 var numberOfBits = Math.floor(maxBits * percentUsed);
41169 // Create a normalized string of the selected cards
41170 var normalizedCards = cards.join(
"").toUpperCase();
41171 // Convert to binary using the SHA256 hash of the normalized cards.
41172 // If the number of bits is more than
256, multiple hashes
41173 // are used until the required number of bits is reached.
41174 var entropyBin =
"";
41175 var iterations =
0;
41176 while (entropyBin.length < numberOfBits) {
41177 var hashedCards = sjcl.hash.sha256.hash(normalizedCards +
":" + iterations);
41178 var hashHex = sjcl.codec.hex.fromBits(hashedCards);
41179 for (var i=
0; i
<hashHex.length; i++) {
41180 var decimal = parseInt(hashHex[i],
16);
41181 var binary = decimal.toString(
2);
41182 while (binary.length <
4) {
41183 binary =
"0" + binary;
41185 entropyBin = entropyBin + binary;
41187 iterations = iterations +
1;
41189 // Truncate to the appropriate number of bits.
41190 entropyBin = entropyBin.substring(
0, numberOfBits);
41191 // Get the number of bits per event
41192 bitsPerEvent = maxBits / totalCards;
41194 binaryStr: entropyBin,
41195 bitsPerEvent: bitsPerEvent,
41199 // Polyfill for Math.log2
41200 // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log2#Polyfill
41201 Math.log2 = Math.log2 || function(x) {
41202 // The polyfill isn't good enough because of the poor accuracy of
41204 // log2(
8) gave
2.9999999999999996 which when floored causes issues.
41205 // So instead use the BigInteger library to get it right.
41206 return BigInteger.log(x) / BigInteger.log(
2);
41209 // Depends on BigInteger
41210 function factorial(n) {
41214 f = BigInteger.ONE;
41215 for (var i=
1; i<=n; i++) {
41216 f = f.multiply(new BigInteger(i));
41223 <script>(function() {
41225 // mnemonics is populated as required by getLanguage
41226 var mnemonics = { "english": new Mnemonic("english") };
41227 var mnemonic = mnemonics["english"];
41229 var bip32RootKey = null;
41230 var bip32ExtendedKey = null;
41231 var network = bitcoin.networks.bitcoin;
41232 var addressRowTemplate = $("#address-row-template");
41234 var showIndex = true;
41235 var showAddress = true;
41236 var showPubKey = true;
41237 var showPrivKey = true;
41238 var showQr = false;
41240 var entropyChangeTimeoutEvent = null;
41241 var phraseChangeTimeoutEvent = null;
41242 var rootKeyChangedTimeoutEvent = null;
41244 var generationProcesses = [];
41247 DOM.network = $(".network");
41248 DOM.bip32Client = $("#bip32-client");
41249 DOM.phraseNetwork = $("#network-phrase");
41250 DOM.useEntropy = $(".use-entropy");
41251 DOM.entropyContainer = $(".entropy-container");
41252 DOM.entropy = $(".entropy");
41253 DOM.entropyFiltered = DOM.entropyContainer.find(".filtered");
41254 DOM.entropyType = DOM.entropyContainer.find(".type");
41255 DOM.entropyStrength = DOM.entropyContainer.find(".strength");
41256 DOM.entropyEventCount = DOM.entropyContainer.find(".event-count");
41257 DOM.entropyBits = DOM.entropyContainer.find(".bits");
41258 DOM.entropyBitsPerEvent = DOM.entropyContainer.find(".bits-per-event");
41259 DOM.entropyWordCount = DOM.entropyContainer.find(".word-count");
41260 DOM.entropyBinary = DOM.entropyContainer.find(".binary");
41261 DOM.entropyMnemonicLength = DOM.entropyContainer.find(".mnemonic-length");
41262 DOM.phrase = $(".phrase");
41263 DOM.passphrase = $(".passphrase");
41264 DOM.generateContainer = $(".generate-container");
41265 DOM.generate = $(".generate");
41266 DOM.seed = $(".seed");
41267 DOM.rootKey = $(".root-key");
41268 DOM.extendedPrivKey = $(".extended-priv-key");
41269 DOM.extendedPubKey = $(".extended-pub-key");
41270 DOM.bip32tab = $("#bip32-tab");
41271 DOM.bip44tab = $("#bip44-tab");
41272 DOM.bip32panel = $("#bip32");
41273 DOM.bip44panel = $("#bip44");
41274 DOM.bip32path = $("#bip32-path");
41275 DOM.bip44path = $("#bip44-path");
41276 DOM.bip44purpose = $("#bip44 .purpose");
41277 DOM.bip44coin = $("#bip44 .coin");
41278 DOM.bip44account = $("#bip44 .account");
41279 DOM.bip44accountXprv = $("#bip44 .account-xprv");
41280 DOM.bip44accountXpub = $("#bip44 .account-xpub");
41281 DOM.bip44change = $("#bip44 .change");
41282 DOM.generatedStrength = $(".generate-container .strength");
41283 DOM.hardenedAddresses = $(".hardened-addresses");
41284 DOM.addresses = $(".addresses");
41285 DOM.rowsToAdd = $(".rows-to-add");
41286 DOM.more = $(".more");
41287 DOM.feedback = $(".feedback");
41288 DOM.tab = $(".derivation-type a");
41289 DOM.indexToggle = $(".index-toggle");
41290 DOM.addressToggle = $(".address-toggle");
41291 DOM.publicKeyToggle = $(".public-key-toggle");
41292 DOM.privateKeyToggle = $(".private-key-toggle");
41293 DOM.languages = $(".languages a");
41294 DOM.qrContainer = $(".qr-container");
41295 DOM.qrHider = DOM.qrContainer.find(".qr-hider");
41296 DOM.qrImage = DOM.qrContainer.find(".qr-image");
41297 DOM.qrHint = DOM.qrContainer.find(".qr-hint");
41298 DOM.showQrEls = $("[data-show-qr]");
41302 DOM.network.on("change", networkChanged);
41303 DOM.bip32Client.on("change", bip32ClientChanged);
41304 DOM.useEntropy.on("change", setEntropyVisibility);
41305 DOM.entropy.on("input", delayedEntropyChanged);
41306 DOM.entropyMnemonicLength.on("change", entropyChanged);
41307 DOM.phrase.on("input", delayedPhraseChanged);
41308 DOM.passphrase.on("input", delayedPhraseChanged);
41309 DOM.generate.on("click", generateClicked);
41310 DOM.more.on("click", showMore);
41311 DOM.rootKey.on("input", delayedRootKeyChanged);
41312 DOM.bip32path.on("input", calcForDerivationPath);
41313 DOM.bip44purpose.on("input", calcForDerivationPath);
41314 DOM.bip44coin.on("input", calcForDerivationPath);
41315 DOM.bip44account.on("input", calcForDerivationPath);
41316 DOM.bip44change.on("input", calcForDerivationPath);
41317 DOM.tab.on("shown.bs.tab", calcForDerivationPath);
41318 DOM.hardenedAddresses.on("change", calcForDerivationPath);
41319 DOM.indexToggle.on("click", toggleIndexes);
41320 DOM.addressToggle.on("click", toggleAddresses);
41321 DOM.publicKeyToggle.on("click", togglePublicKeys);
41322 DOM.privateKeyToggle.on("click", togglePrivateKeys);
41323 DOM.languages.on("click", languageChanged);
41324 setQrEvents(DOM.showQrEls);
41327 hideValidationError();
41328 populateNetworkSelect();
41329 populateClientSelect();
41334 function networkChanged(e) {
41335 var networkIndex = e.target.value;
41336 networks[networkIndex].onSelect();
41337 if (seed != null) {
41345 function bip32ClientChanged(e) {
41346 var clientIndex = DOM.bip32Client.val();
41347 if (clientIndex == "custom") {
41348 DOM.bip32path.prop("readonly", false);
41351 DOM.bip32path.prop("readonly", true);
41352 clients[clientIndex].onSelect();
41353 if (seed != null) {
41362 function setEntropyVisibility() {
41363 if (isUsingOwnEntropy()) {
41364 DOM.entropyContainer.removeClass("hidden");
41365 DOM.generateContainer.addClass("hidden");
41366 DOM.phrase.prop("readonly", true);
41367 DOM.entropy.focus();
41371 DOM.entropyContainer.addClass("hidden");
41372 DOM.generateContainer.removeClass("hidden");
41373 DOM.phrase.prop("readonly", false);
41378 function delayedPhraseChanged() {
41379 hideValidationError();
41381 if (phraseChangeTimeoutEvent != null) {
41382 clearTimeout(phraseChangeTimeoutEvent);
41384 phraseChangeTimeoutEvent = setTimeout(phraseChanged,
400);
41387 function phraseChanged() {
41389 hideValidationError();
41390 setMnemonicLanguage();
41391 // Get the mnemonic phrase
41392 var phrase = DOM.phrase.val();
41393 var errorText = findPhraseErrors(phrase);
41395 showValidationError(errorText);
41398 // Calculate and display
41399 var passphrase = DOM.passphrase.val();
41400 calcBip32RootKeyFromSeed(phrase, passphrase);
41401 calcForDerivationPath();
41405 function delayedEntropyChanged() {
41406 hideValidationError();
41408 if (entropyChangeTimeoutEvent != null) {
41409 clearTimeout(entropyChangeTimeoutEvent);
41411 entropyChangeTimeoutEvent = setTimeout(entropyChanged,
400);
41414 function entropyChanged() {
41415 // If blank entropy, clear mnemonic, addresses, errors
41416 if (DOM.entropy.val().trim().length ==
0) {
41418 clearEntropyFeedback();
41419 DOM.phrase.val("");
41420 showValidationError("Blank entropy");
41423 // Get the current phrase to detect changes
41424 var phrase = DOM.phrase.val();
41425 // Set the phrase from the entropy
41426 setMnemonicFromEntropy();
41427 // Recalc addresses if the phrase has changed
41428 var newPhrase = DOM.phrase.val();
41429 if (newPhrase != phrase) {
41430 if (newPhrase.length ==
0) {
41442 function delayedRootKeyChanged() {
41443 // Warn if there is an existing mnemonic or passphrase.
41444 if (DOM.phrase.val().length
> 0 || DOM.passphrase.val().length
> 0) {
41445 if (!confirm(
"This will clear existing mnemonic and passphrase")) {
41446 DOM.rootKey.val(bip32RootKey);
41450 hideValidationError();
41452 // Clear existing mnemonic and passphrase
41453 DOM.phrase.val(
"");
41454 DOM.passphrase.val(
"");
41456 if (rootKeyChangedTimeoutEvent != null) {
41457 clearTimeout(rootKeyChangedTimeoutEvent);
41459 rootKeyChangedTimeoutEvent = setTimeout(rootKeyChanged,
400);
41462 function rootKeyChanged() {
41464 hideValidationError();
41465 // Validate the root key TODO
41466 var rootKeyBase58 = DOM.rootKey.val();
41467 var errorText = validateRootKey(rootKeyBase58);
41469 showValidationError(errorText);
41472 // Calculate and display
41473 calcBip32RootKeyFromBase58(rootKeyBase58);
41474 calcForDerivationPath();
41477 function calcForDerivationPath() {
41479 clearAddressesList();
41480 hideValidationError();
41481 // Get the derivation path
41482 var derivationPath = getDerivationPath();
41483 var errorText = findDerivationPathErrors(derivationPath);
41485 showValidationError(errorText);
41488 bip32ExtendedKey = calcBip32ExtendedKey(derivationPath);
41489 if (bip44TabSelected()) {
41490 displayBip44Info();
41492 displayBip32Info();
41496 function generateClicked() {
41497 if (isUsingOwnEntropy()) {
41502 setTimeout(function() {
41503 setMnemonicLanguage();
41504 var phrase = generateRandomPhrase();
41512 function languageChanged() {
41513 setTimeout(function() {
41514 setMnemonicLanguage();
41515 if (DOM.phrase.val().length
> 0) {
41516 var newPhrase = convertPhraseToNewLanguage();
41517 DOM.phrase.val(newPhrase);
41521 DOM.generate.trigger(
"click");
41526 function toggleIndexes() {
41527 showIndex = !showIndex;
41528 $(
"td.index span").toggleClass(
"invisible");
41531 function toggleAddresses() {
41532 showAddress = !showAddress;
41533 $(
"td.address span").toggleClass(
"invisible");
41536 function togglePublicKeys() {
41537 showPubKey = !showPubKey;
41538 $(
"td.pubkey span").toggleClass(
"invisible");
41541 function togglePrivateKeys() {
41542 showPrivKey = !showPrivKey;
41543 $(
"td.privkey span").toggleClass(
"invisible");
41548 function generateRandomPhrase() {
41549 if (!hasStrongRandom()) {
41550 var errorText =
"This browser does not support strong randomness";
41551 showValidationError(errorText);
41554 var numWords = parseInt(DOM.generatedStrength.val());
41555 var strength = numWords /
3 *
32;
41556 var words = mnemonic.generate(strength);
41557 DOM.phrase.val(words);
41561 function calcBip32RootKeyFromSeed(phrase, passphrase) {
41562 seed = mnemonic.toSeed(phrase, passphrase);
41563 bip32RootKey = bitcoin.HDNode.fromSeedHex(seed, network);
41566 function calcBip32RootKeyFromBase58(rootKeyBase58) {
41567 bip32RootKey = bitcoin.HDNode.fromBase58(rootKeyBase58, network);
41570 function calcBip32ExtendedKey(path) {
41571 // Check there's a root key to derive from
41572 if (!bip32RootKey) {
41573 return bip32RootKey;
41575 var extendedKey = bip32RootKey;
41576 // Derive the key from the path
41577 var pathBits = path.split(
"/");
41578 for (var i=
0; i
<pathBits.length; i++) {
41579 var bit = pathBits[i];
41580 var index = parseInt(bit);
41581 if (isNaN(index)) {
41584 var hardened = bit[bit.length-
1] ==
"'";
41585 var isPriv =
"privKey" in extendedKey;
41586 var invalidDerivationPath = hardened && !isPriv;
41587 if (invalidDerivationPath) {
41588 extendedKey = null;
41590 else if (hardened) {
41591 extendedKey = extendedKey.deriveHardened(index);
41594 extendedKey = extendedKey.derive(index);
41600 function showValidationError(errorText) {
41606 function hideValidationError() {
41612 function findPhraseErrors(phrase) {
41613 // Preprocess the words
41614 phrase = mnemonic.normalizeString(phrase);
41615 var words = phraseToWordArray(phrase);
41616 // Detect blank phrase
41617 if (words.length ==
0) {
41618 return
"Blank mnemonic";
41621 for (var i=
0; i
<words.length; i++) {
41622 var word = words[i];
41623 var language = getLanguage();
41624 if (WORDLISTS[language].indexOf(word) == -
1) {
41625 console.log(
"Finding closest match to " + word);
41626 var nearestWord = findNearestWord(word);
41627 return word +
" not in wordlist, did you mean " + nearestWord +
"?";
41630 // Check the words are valid
41631 var properPhrase = wordArrayToPhrase(words);
41632 var isValid = mnemonic.check(properPhrase);
41634 return
"Invalid mnemonic";
41639 function validateRootKey(rootKeyBase58) {
41641 bitcoin.HDNode.fromBase58(rootKeyBase58);
41644 return
"Invalid root key";
41649 function getDerivationPath() {
41650 if (bip44TabSelected()) {
41651 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
41652 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
41653 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
41654 var change = parseIntNoNaN(DOM.bip44change.val(),
0);
41656 path += purpose +
"'/";
41657 path += coin +
"'/";
41658 path += account +
"'/";
41660 DOM.bip44path.val(path);
41661 var derivationPath = DOM.bip44path.val();
41662 console.log(
"Using derivation path from BIP44 tab: " + derivationPath);
41663 return derivationPath;
41665 else if (bip32TabSelected()) {
41666 var derivationPath = DOM.bip32path.val();
41667 console.log(
"Using derivation path from BIP32 tab: " + derivationPath);
41668 return derivationPath;
41671 console.log(
"Unknown derivation path");
41675 function findDerivationPathErrors(path) {
41676 // TODO is not perfect but is better than nothing
41678 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#test-vectors
41680 // https://github.com/bitcoin/bips/blob/master/bip-
0032.mediawiki#extended-keys
41681 var maxDepth =
255; // TODO verify this!!
41682 var maxIndexValue = Math.pow(
2,
31); // TODO verify this!!
41683 if (path[
0] !=
"m") {
41684 return
"First character must be 'm'";
41686 if (path.length
> 1) {
41687 if (path[
1] !=
"/") {
41688 return
"Separator must be '/'";
41690 var indexes = path.split(
"/");
41691 if (indexes.length
> maxDepth) {
41692 return "Derivation depth is " + indexes.length + ", must be less than " + maxDepth;
41694 for (var depth =
1; depth
<indexes.length; depth++) {
41695 var index = indexes[depth];
41696 var invalidChars = index.replace(/^[
0-
9]+'?$/g,
"")
41697 if (invalidChars.length
> 0) {
41698 return
"Invalid characters " + invalidChars +
" found at depth " + depth;
41700 var indexValue = parseInt(index.replace(
"'",
""));
41701 if (isNaN(depth)) {
41702 return
"Invalid number at depth " + depth;
41704 if (indexValue
> maxIndexValue) {
41705 return "Value of " + indexValue + " at depth " + depth + " must be less than " + maxIndexValue;
41709 // Check root key exists or else derivation path is useless!
41710 if (!bip32RootKey) {
41711 return "No root key";
41713 // Check no hardened derivation path when using xpub keys
41714 var hardened = path.indexOf("'")
> -
1;
41715 var isXpubkey = !("privKey" in bip32RootKey);
41716 if (hardened && isXpubkey) {
41717 return "Hardened derivation path is invalid with xpub key";
41722 function displayBip44Info() {
41723 // Get the derivation path for the account
41724 var purpose = parseIntNoNaN(DOM.bip44purpose.val(),
44);
41725 var coin = parseIntNoNaN(DOM.bip44coin.val(),
0);
41726 var account = parseIntNoNaN(DOM.bip44account.val(),
0);
41728 path += purpose + "'/";
41729 path += coin + "'/";
41730 path += account + "'/";
41731 // Calculate the account extended keys
41732 var accountExtendedKey = calcBip32ExtendedKey(path);
41733 var accountXprv = accountExtendedKey.toBase58();
41734 var accountXpub = accountExtendedKey.toBase58(false);
41735 // Display the extended keys
41736 DOM.bip44accountXprv.val(accountXprv);
41737 DOM.bip44accountXpub.val(accountXpub);
41740 function displayBip32Info() {
41742 DOM.seed.val(seed);
41743 var rootKey = bip32RootKey.toBase58();
41744 DOM.rootKey.val(rootKey);
41745 var xprvkeyB58 = "NA";
41746 if (bip32ExtendedKey.privKey) {
41747 xprvkeyB58 = bip32ExtendedKey.toBase58();
41749 var extendedPrivKey = xprvkeyB58;
41750 DOM.extendedPrivKey.val(extendedPrivKey);
41751 var extendedPubKey = bip32ExtendedKey.toBase58(false);
41752 DOM.extendedPubKey.val(extendedPubKey);
41753 // Display the addresses and privkeys
41754 clearAddressesList();
41755 displayAddresses(
0,
20);
41758 function displayAddresses(start, total) {
41759 generationProcesses.push(new (function() {
41763 this.stop = function() {
41764 for (var i=
0; i
<rows.length; i++) {
41765 rows[i].shouldGenerate = false;
41769 for (var i=
0; i
<total; i++) {
41770 var index = i + start;
41771 rows.push(new TableRow(index));
41777 function TableRow(index) {
41780 this.shouldGenerate = true;
41781 var useHardenedAddresses = DOM.hardenedAddresses.prop(
"checked");
41787 function calculateValues() {
41788 setTimeout(function() {
41789 if (!self.shouldGenerate) {
41793 if (useHardenedAddresses) {
41794 key = bip32ExtendedKey.deriveHardened(index);
41797 key = bip32ExtendedKey.derive(index);
41799 var address = key.getAddress().toString();
41800 var privkey =
"NA";
41802 privkey = key.privKey.toWIF(network);
41804 var pubkey = key.pubKey.toHex();
41805 var indexText = getDerivationPath() +
"/" + index;
41806 if (useHardenedAddresses) {
41807 indexText = indexText +
"'";
41809 // Ethereum values are different
41810 if (networks[DOM.network.val()].name ==
"Ethereum") {
41811 var privKeyBuffer = key.privKey.d.toBuffer();
41812 privkey = privKeyBuffer.toString('hex');
41813 var addressBuffer = ethUtil.privateToAddress(privKeyBuffer);
41814 var hexAddress = addressBuffer.toString('hex');
41815 var checksumAddress = ethUtil.toChecksumAddress(hexAddress);
41816 address = ethUtil.addHexPrefix(checksumAddress);
41818 addAddressToList(indexText, address, pubkey, privkey);
41826 function showMore() {
41827 var start = DOM.addresses.children().length;
41828 var rowsToAdd = parseInt(DOM.rowsToAdd.val());
41829 if (isNaN(rowsToAdd)) {
41831 DOM.rowsToAdd.val(
"20");
41833 if (rowsToAdd
> 200) {
41834 var msg =
"Generating " + rowsToAdd +
" rows could take a while. ";
41835 msg +=
"Do you want to continue?";
41836 if (!confirm(msg)) {
41840 displayAddresses(start, rowsToAdd);
41843 function clearDisplay() {
41844 clearAddressesList();
41846 hideValidationError();
41849 function clearAddressesList() {
41850 DOM.addresses.empty();
41854 function stopGenerating() {
41855 while (generationProcesses.length
> 0) {
41856 var generation = generationProcesses.shift();
41861 function clearKey() {
41862 DOM.rootKey.val(
"");
41863 DOM.extendedPrivKey.val(
"");
41864 DOM.extendedPubKey.val(
"");
41867 function addAddressToList(indexText, address, pubkey, privkey) {
41868 var row = $(addressRowTemplate.html());
41870 var indexCell = row.find(
".index span");
41871 var addressCell = row.find(
".address span");
41872 var pubkeyCell = row.find(
".pubkey span");
41873 var privkeyCell = row.find(
".privkey span");
41875 indexCell.text(indexText);
41876 addressCell.text(address);
41877 pubkeyCell.text(pubkey);
41878 privkeyCell.text(privkey);
41881 indexCell.addClass(
"invisible");
41883 if (!showAddress) {
41884 addressCell.addClass(
"invisible");
41887 pubkeyCell.addClass(
"invisible");
41889 if (!showPrivKey) {
41890 privkeyCell.addClass(
"invisible");
41892 DOM.addresses.append(row);
41893 var rowShowQrEls = row.find(
"[data-show-qr]");
41894 setQrEvents(rowShowQrEls);
41897 function hasStrongRandom() {
41898 return 'crypto' in window && window['crypto'] !== null;
41901 function disableForms() {
41902 $(
"form").on(
"submit", function(e) {
41903 e.preventDefault();
41907 function parseIntNoNaN(val, defaultVal) {
41908 var v = parseInt(val);
41915 function showPending() {
41917 .text(
"Calculating...")
41921 function findNearestWord(word) {
41922 var language = getLanguage();
41923 var words = WORDLISTS[language];
41924 var minDistance =
99;
41925 var closestWord = words[
0];
41926 for (var i=
0; i
<words.length; i++) {
41927 var comparedTo = words[i];
41928 if (comparedTo.indexOf(word) ==
0) {
41931 var distance = Levenshtein.get(word, comparedTo);
41932 if (distance < minDistance) {
41933 closestWord = comparedTo;
41934 minDistance = distance;
41937 return closestWord;
41940 function hidePending() {
41946 function populateNetworkSelect() {
41947 for (var i=
0; i
<networks.length; i++) {
41948 var network = networks[i];
41949 var option = $(
"<option>");
41950 option.attr(
"value", i);
41951 option.text(network.name);
41952 DOM.phraseNetwork.append(option);
41956 function populateClientSelect() {
41957 for (var i=
0; i
<clients.length; i++) {
41958 var client = clients[i];
41959 var option = $(
"<option>");
41960 option.attr(
"value", i);
41961 option.text(client.name);
41962 DOM.bip32Client.append(option);
41966 function getLanguage() {
41967 var defaultLanguage =
"english";
41968 // Try to get from existing phrase
41969 var language = getLanguageFromPhrase();
41970 // Try to get from url if not from phrase
41971 if (language.length ==
0) {
41972 language = getLanguageFromUrl();
41974 // Default to English if no other option
41975 if (language.length ==
0) {
41976 language = defaultLanguage;
41981 function getLanguageFromPhrase(phrase) {
41982 // Check if how many words from existing phrase match a language.
41985 phrase = DOM.phrase.val();
41987 if (phrase.length
> 0) {
41988 var words = phraseToWordArray(phrase);
41989 var languageMatches = {};
41990 for (l in WORDLISTS) {
41991 // Track how many words match in this language
41992 languageMatches[l] =
0;
41993 for (var i=
0; i
<words.length; i++) {
41994 var wordInLanguage = WORDLISTS[l].indexOf(words[i])
> -
1;
41995 if (wordInLanguage) {
41996 languageMatches[l]++;
41999 // Find languages with most word matches.
42000 // This is made difficult due to commonalities between Chinese
42001 // simplified vs traditional.
42002 var mostMatches =
0;
42003 var mostMatchedLanguages = [];
42004 for (var l in languageMatches) {
42005 var numMatches = languageMatches[l];
42006 if (numMatches
> mostMatches) {
42007 mostMatches = numMatches;
42008 mostMatchedLanguages = [l];
42010 else if (numMatches == mostMatches) {
42011 mostMatchedLanguages.push(l);
42015 if (mostMatchedLanguages.length
> 0) {
42016 // Use first language and warn if multiple detected
42017 language = mostMatchedLanguages[
0];
42018 if (mostMatchedLanguages.length
> 1) {
42019 console.warn(
"Multiple possible languages");
42020 console.warn(mostMatchedLanguages);
42027 function getLanguageFromUrl() {
42028 for (var language in WORDLISTS) {
42029 if (window.location.hash.indexOf(language)
> -
1) {
42036 function setMnemonicLanguage() {
42037 var language = getLanguage();
42038 // Load the bip39 mnemonic generator for this language if required
42039 if (!(language in mnemonics)) {
42040 mnemonics[language] = new Mnemonic(language);
42042 mnemonic = mnemonics[language];
42045 function convertPhraseToNewLanguage() {
42046 var oldLanguage = getLanguageFromPhrase();
42047 var newLanguage = getLanguageFromUrl();
42048 var oldPhrase = DOM.phrase.val();
42049 var oldWords = phraseToWordArray(oldPhrase);
42051 for (var i=
0; i
<oldWords.length; i++) {
42052 var oldWord = oldWords[i];
42053 var index = WORDLISTS[oldLanguage].indexOf(oldWord);
42054 var newWord = WORDLISTS[newLanguage][index];
42055 newWords.push(newWord);
42057 newPhrase = wordArrayToPhrase(newWords);
42061 // TODO look at jsbip39 - mnemonic.splitWords
42062 function phraseToWordArray(phrase) {
42063 var words = phrase.split(/\s/g);
42065 for (var i=
0; i
<words.length; i++) {
42066 var word = words[i];
42067 if (word.length
> 0) {
42068 noBlanks.push(word);
42074 // TODO look at jsbip39 - mnemonic.joinWords
42075 function wordArrayToPhrase(words) {
42076 var phrase = words.join(
" ");
42077 var language = getLanguageFromPhrase(phrase);
42078 if (language ==
"japanese") {
42079 phrase = words.join(
"\u3000");
42084 function isUsingOwnEntropy() {
42085 return DOM.useEntropy.prop(
"checked");
42088 function setMnemonicFromEntropy() {
42089 clearEntropyFeedback();
42090 // Get entropy value
42091 var entropyStr = DOM.entropy.val();
42092 // Work out minimum base for entropy
42093 var entropy = Entropy.fromString(entropyStr);
42094 if (entropy.binaryStr.length ==
0) {
42097 // Show entropy details
42098 showEntropyFeedback(entropy);
42099 // Use entropy hash if not using raw entropy
42100 var bits = entropy.binaryStr;
42101 var mnemonicLength = DOM.entropyMnemonicLength.val();
42102 if (mnemonicLength !=
"raw") {
42103 // Get bits by hashing entropy with SHA256
42104 var hash = sjcl.hash.sha256.hash(entropy.cleanStr);
42105 var hex = sjcl.codec.hex.fromBits(hash);
42106 bits = BigInteger.parse(hex,
16).toString(
2);
42107 while (bits.length %
256 !=
0) {
42110 // Truncate hash to suit number of words
42111 mnemonicLength = parseInt(mnemonicLength);
42112 var numberOfBits =
32 * mnemonicLength /
3;
42113 bits = bits.substring(
0, numberOfBits);
42115 // Discard trailing entropy
42116 var bitsToUse = Math.floor(bits.length /
32) *
32;
42117 var start = bits.length - bitsToUse;
42118 var binaryStr = bits.substring(start);
42119 // Convert entropy string to numeric array
42120 var entropyArr = [];
42121 for (var i=
0; i
<binaryStr.length /
8; i++) {
42122 var byteAsBits = binaryStr.substring(i*
8, i*
8+
8);
42123 var entropyByte = parseInt(byteAsBits,
2);
42124 entropyArr.push(entropyByte)
42126 // Convert entropy array to mnemonic
42127 var phrase = mnemonic.toMnemonic(entropyArr);
42128 // Set the mnemonic in the UI
42129 DOM.phrase.val(phrase);
42132 function clearEntropyFeedback() {
42133 DOM.entropyStrength.text(
"...");
42134 DOM.entropyType.text(
"");
42135 DOM.entropyWordCount.text(
"0");
42136 DOM.entropyEventCount.text(
"0");
42137 DOM.entropyBitsPerEvent.text(
"0");
42138 DOM.entropyBits.text(
"0");
42139 DOM.entropyFiltered.html(
" ");
42140 DOM.entropyBinary.html(
" ");
42143 function showEntropyFeedback(entropy) {
42144 var numberOfBits = entropy.binaryStr.length;
42145 var strength =
"extremely weak";
42146 if (numberOfBits
>=
64) {
42147 strength = "very weak";
42149 if (numberOfBits
>=
96) {
42152 if (numberOfBits
>=
128) {
42153 strength = "strong";
42155 if (numberOfBits
>=
160) {
42156 strength = "very strong";
42158 if (numberOfBits
>=
192) {
42159 strength = "extremely strong";
42161 // If time to crack is less than one day, and password is considered
42162 // strong or better based on the number of bits, rename strength to
42163 // 'easily cracked'.
42165 var z = zxcvbn(entropy.base.parts.join(""));
42166 var timeToCrack = z.crack_times_seconds.offline_fast_hashing_1e10_per_second;
42167 if (timeToCrack <
86400 && entropy.binaryStr.length
>=
128) {
42168 strength = "easily cracked";
42169 if (z.feedback.warning != "") {
42170 strength = strength + " - " + z.feedback.warning;
42175 strength = "unknown";
42176 console.log("Error detecting entropy strength with zxcvbn:");
42179 var entropyTypeStr = getEntropyTypeStr(entropy);
42180 var wordCount = Math.floor(numberOfBits /
32) *
3;
42181 var bitsPerEvent = entropy.bitsPerEvent.toFixed(
2);
42182 DOM.entropyFiltered.html(entropy.cleanHtml);
42183 DOM.entropyType.text(entropyTypeStr);
42184 DOM.entropyStrength.text(strength);
42185 DOM.entropyEventCount.text(entropy.base.ints.length);
42186 DOM.entropyBits.text(numberOfBits);
42187 DOM.entropyWordCount.text(wordCount);
42188 DOM.entropyBinary.text(entropy.binaryStr);
42189 DOM.entropyBitsPerEvent.text(bitsPerEvent);
42192 function getEntropyTypeStr(entropy) {
42193 var typeStr = entropy.base.str;
42194 // Add some detail if these are cards
42195 if (entropy.base.asInt ==
52) {
42196 var cardDetail = []; // array of message strings
42197 // Detect duplicates
42199 var dupeTracker = {};
42200 for (var i=
0; i
<entropy.base.parts.length; i++) {
42201 var card = entropy.base.parts[i];
42202 var cardUpper = card.toUpperCase();
42203 if (cardUpper in dupeTracker) {
42206 dupeTracker[cardUpper] = true;
42208 if (dupes.length
> 0) {
42209 var dupeWord =
"duplicates";
42210 if (dupes.length ==
1) {
42211 dupeWord =
"duplicate";
42213 var msg = dupes.length +
" " + dupeWord +
": " + dupes.slice(
0,
3).join(
" ");
42214 if (dupes.length
> 3) {
42217 cardDetail.push(msg);
42219 // Detect full deck
42220 var uniqueCards = [];
42221 for (var uniqueCard in dupeTracker) {
42222 uniqueCards.push(uniqueCard);
42224 if (uniqueCards.length ==
52) {
42225 cardDetail.unshift(
"full deck");
42227 // Detect missing cards
42228 var values =
"A23456789TJQK";
42229 var suits =
"CDHS";
42230 var missingCards = [];
42231 for (var i=
0; i
<suits.length; i++) {
42232 for (var j=
0; j
<values.length; j++) {
42233 var card = values[j] + suits[i];
42234 if (!(card in dupeTracker)) {
42235 missingCards.push(card);
42239 // Display missing cards if six or less, ie clearly going for full deck
42240 if (missingCards.length
> 0 && missingCards.length <=
6) {
42241 var msg = missingCards.length +
" missing: " + missingCards.slice(
0,
3).join(
" ");
42242 if (missingCards.length
> 3) {
42245 cardDetail.push(msg);
42247 // Add card details to typeStr
42248 if (cardDetail.length
> 0) {
42249 typeStr +=
" (" + cardDetail.join(
", ") +
")";
42255 function setQrEvents(els) {
42256 els.on(
"mouseenter", createQr);
42257 els.on(
"mouseleave", destroyQr);
42258 els.on(
"click", toggleQr);
42261 function createQr(e) {
42262 var content = e.target.textContent || e.target.value;
42265 DOM.qrImage.qrcode({width: size, height: size, text: content});
42267 DOM.qrHider.addClass(
"hidden");
42270 DOM.qrHider.removeClass(
"hidden");
42272 DOM.qrContainer.removeClass(
"hidden");
42276 function destroyQr() {
42277 DOM.qrImage.text(
"");
42278 DOM.qrContainer.addClass(
"hidden");
42281 function toggleQr() {
42283 DOM.qrHider.toggleClass(
"hidden");
42284 DOM.qrHint.toggleClass(
"hidden");
42287 function bip44TabSelected() {
42288 return DOM.bip44tab.hasClass(
"active");
42291 function bip32TabSelected() {
42292 return DOM.bip32tab.hasClass(
"active");
42298 onSelect: function() {
42299 network = bitcoin.networks.bitcoin;
42300 DOM.bip44coin.val(
0);
42304 name:
"Bitcoin Testnet",
42305 onSelect: function() {
42306 network = bitcoin.networks.testnet;
42307 DOM.bip44coin.val(
1);
42312 onSelect: function() {
42313 network = bitcoin.networks.litecoin;
42314 DOM.bip44coin.val(
2);
42319 onSelect: function() {
42320 network = bitcoin.networks.dogecoin;
42321 DOM.bip44coin.val(
3);
42325 name:
"ShadowCash",
42326 onSelect: function() {
42327 network = bitcoin.networks.shadow;
42328 DOM.bip44coin.val(
35);
42332 name:
"ShadowCash Testnet",
42333 onSelect: function() {
42334 network = bitcoin.networks.shadowtn;
42335 DOM.bip44coin.val(
1);
42340 onSelect: function() {
42341 network = bitcoin.networks.viacoin;
42342 DOM.bip44coin.val(
14);
42346 name:
"Viacoin Testnet",
42347 onSelect: function() {
42348 network = bitcoin.networks.viacointestnet;
42349 DOM.bip44coin.val(
1);
42354 onSelect: function() {
42355 network = bitcoin.networks.jumbucks;
42356 DOM.bip44coin.val(
26);
42361 onSelect: function() {
42362 network = bitcoin.networks.clam;
42363 DOM.bip44coin.val(
23);
42368 onSelect: function() {
42369 network = bitcoin.networks.dash;
42370 DOM.bip44coin.val(
5);
42375 onSelect: function() {
42376 network = bitcoin.networks.namecoin;
42377 DOM.bip44coin.val(
7);
42382 onSelect: function() {
42383 network = bitcoin.networks.peercoin;
42384 DOM.bip44coin.val(
6);
42389 onSelect: function() {
42390 network = bitcoin.networks.bitcoin;
42391 DOM.bip44coin.val(
60);
42398 name:
"Bitcoin Core",
42399 onSelect: function() {
42400 DOM.bip32path.val(
"m/0'/0'");
42401 DOM.hardenedAddresses.prop('checked', true);
42405 name:
"blockchain.info",
42406 onSelect: function() {
42407 DOM.bip32path.val(
"m/44'/0'/0'");
42408 DOM.hardenedAddresses.prop('checked', false);
42412 name:
"MultiBit HD",
42413 onSelect: function() {
42414 DOM.bip32path.val(
"m/0'/0");
42415 DOM.hardenedAddresses.prop('checked', false);