html{box-sizing:border-box}*,*::after,*::before{box-sizing:inherit}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}.btn,.sliding-panel-button{appearance:none;background-color:#337ab7;border:0;border-radius:3px;color:#fff;cursor:pointer;display:inline-block;font-family:Avenir,Microsoft Yahei,Hiragino Sans GB,Microsoft Sans Serif,WenQuanYi Micro Hei,sans-serif;font-size:1em;-webkit-font-smoothing:antialiased;font-weight:600;line-height:1;padding:.8em 1.6em;text-decoration:none;transition:background-color .2s ease;user-select:none;vertical-align:middle;white-space:nowrap}.btn:hover,.sliding-panel-button:hover,.btn:focus,.sliding-panel-button:focus{background-color:#296292;color:#fff}.btn:disabled,.sliding-panel-button:disabled{cursor:not-allowed;opacity:0.5}.btn:disabled:hover,.sliding-panel-button:disabled:hover{background-color:#337ab7}fieldset{background-color:#f7f7f7;border:1px solid #dedede;margin:0 0 .8em;padding:1.6em}input,label,select{display:block;font-family:Avenir,Microsoft Yahei,Hiragino Sans GB,Microsoft Sans Serif,WenQuanYi Micro Hei,sans-serif;font-size:1em}label{font-weight:600;margin-bottom:.4em}label.required::after{content:"*"}label abbr{display:none}input[type="color"],input[type="date"],input[type="datetime"],input[type="datetime-local"],input[type="email"],input[type="month"],input[type="number"],input[type="password"],input[type="search"],input[type="tel"],input[type="text"],input[type="time"],input[type="url"],input[type="week"],input:not([type]),textarea,select[multiple=multiple]{background-color:#fff;border:1px solid #dedede;border-radius:3px;box-shadow:inset 0 1px 3px rgba(0,0,0,0.06);box-sizing:border-box;font-family:Avenir,Microsoft Yahei,Hiragino Sans GB,Microsoft Sans Serif,WenQuanYi Micro Hei,sans-serif;font-size:1em;margin-bottom:.8em;padding:.5333333333em;transition:border-color .2s ease;width:100%}input[type="color"]:hover,input[type="date"]:hover,input[type="datetime"]:hover,input[type="datetime-local"]:hover,input[type="email"]:hover,input[type="month"]:hover,input[type="number"]:hover,input[type="password"]:hover,input[type="search"]:hover,input[type="tel"]:hover,input[type="text"]:hover,input[type="time"]:hover,input[type="url"]:hover,input[type="week"]:hover,input:not([type]):hover,textarea:hover,select[multiple=multiple]:hover{border-color:#b2b2b2}input[type="color"]:focus,input[type="date"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="email"]:focus,input[type="month"]:focus,input[type="number"]:focus,input[type="password"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="text"]:focus,input[type="time"]:focus,input[type="url"]:focus,input[type="week"]:focus,input:not([type]):focus,textarea:focus,select[multiple=multiple]:focus{border-color:#337ab7;box-shadow:inset 0 1px 3px rgba(0,0,0,0.06),0 0 5px rgba(45,109,163,0.7);outline:none}input[type="color"]:disabled,input[type="date"]:disabled,input[type="datetime"]:disabled,input[type="datetime-local"]:disabled,input[type="email"]:disabled,input[type="month"]:disabled,input[type="number"]:disabled,input[type="password"]:disabled,input[type="search"]:disabled,input[type="tel"]:disabled,input[type="text"]:disabled,input[type="time"]:disabled,input[type="url"]:disabled,input[type="week"]:disabled,input:not([type]):disabled,textarea:disabled,select[multiple=multiple]:disabled{background-color:#f2f2f2;cursor:not-allowed}input[type="color"]:disabled:hover,input[type="date"]:disabled:hover,input[type="datetime"]:disabled:hover,input[type="datetime-local"]:disabled:hover,input[type="email"]:disabled:hover,input[type="month"]:disabled:hover,input[type="number"]:disabled:hover,input[type="password"]:disabled:hover,input[type="search"]:disabled:hover,input[type="tel"]:disabled:hover,input[type="text"]:disabled:hover,input[type="time"]:disabled:hover,input[type="url"]:disabled:hover,input[type="week"]:disabled:hover,input:not([type]):disabled:hover,textarea:disabled:hover,select[multiple=multiple]:disabled:hover{border:1px solid #dedede}textarea{resize:vertical}input[type="search"]{appearance:none}input[type="checkbox"],input[type="radio"]{display:inline;margin-right:.4em}input[type="checkbox"]+label,input[type="radio"]+label{display:inline-block}input[type="file"]{margin-bottom:.8em;width:100%}select{margin-bottom:1.6em;max-width:100%;width:auto}ul,ol{margin:0;padding:0;list-style-position:inside;padding-left:25px}dl{margin-bottom:.8em}dl dt{font-weight:bold;margin-top:.8em}dl dd{margin:0}table{border-collapse:collapse;font-feature-settings:"kern", "liga", "tnum";margin:.8em 0;table-layout:fixed;width:100%}th{border-bottom:1px solid #a7a7a7;font-weight:600;padding:.8em 0;text-align:left}td{border-bottom:1px solid #dedede;padding:.8em 0}tr,td,th{vertical-align:middle}body{color:#333;font-family:Avenir,Microsoft Yahei,Hiragino Sans GB,Microsoft Sans Serif,WenQuanYi Micro Hei,sans-serif;font-feature-settings:"kern", "liga", "pnum";font-size:1em;font-weight:300;line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:Avenir,Microsoft Yahei,Hiragino Sans GB,Microsoft Sans Serif,WenQuanYi Micro Hei,sans-serif;font-size:1em;line-height:1.2;font-weight:600;margin:0 0 .8em}h1{font-size:1.875rem}h2{font-size:1.625rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5,h6{font-size:1rem}p{margin:0 0 .8em;font-weight:300}em{font-style:italic}small{font-size:80%}a{color:#337ab7;text-decoration:none;-webkit-transition:color .2s ease;-moz-transition:color .2s ease;transition:color .2s ease}a:active,a:focus,a:hover{color:#265c89}hr{border-bottom:1px solid #dedede;border-left:0;border-right:0;border-top:0;margin:1.6em 0}img,picture{margin:0;max-width:100%}code{background:none;border-radius:0;border:none;font-family:"Courier New", monospace;font-size:0.9em;margin:0;padding:0 5px;background-color:#ededed}pre{-webkit-overflow-scrolling:touch;font-family:"Courier New", monospace;font-size:0.9em;margin:0}pre code{line-height:1.75em}.txt-primary{color:#337ab7}.txt-white{color:#fff}.txt-black{color:#000}.txt-blue{color:#477dca}.txt-dark-gray{color:#232323}.txt-medium-gray{color:#9a9a9a}.txt-light-gray{color:#dedede}.txt-left{text-align:left}.txt-right{text-align:right}.txt-center{text-align:center}.txt-justify{text-align:justify}.word-wrap{overflow-wrap:break-word;word-wrap:break-word;word-break:break-all}.dot{border-radius:50%}blockquote{background:#f9f9f9;border-left:10px solid #ccc;margin:1.5em 10px;padding:0.5em 10px;quotes:"“" "”" "‘" "’"}blockquote:before{color:#ccc;content:open-quote;font-size:4em;line-height:0.1em;margin-right:0.25em;vertical-align:-0.4em}blockquote p{display:inline}.site-header::after,.social::after,.pagination::after{clear:both;content:"";display:table}html,body{min-height:100%;height:100%}body{border-top:5px solid #337ab7;background:#fff url("//mdluo.b0.upaiyun.com/blog/images/gplaypattern.png")}.unsupported-browser{padding:15px 0;color:#211e14;background-image:-webkit-linear-gradient(#feefae, #fae692);background-image:linear-gradient(#feefae, #fae692);background-color:#fdeb9c;border-bottom:1px solid #b3a569}.unsupported-browser .container{background:url("//mdluo.b0.upaiyun.com/blog/images/ie-notice.png") no-repeat 15px 5px;padding-left:30px}.unsupported-browser .container h5{padding-left:48px;margin:5px 0 2px;font-size:14px}.unsupported-browser .container p{padding-left:48px;margin:0;font-size:14px}.container{max-width:800px;margin-left:auto;margin-right:auto;padding-left:.8em;padding-right:.8em}.container::after{clear:both;content:"";display:table}.card,.post-list .post{background-color:#fff;box-shadow:0 2px 1px rgba(0,0,0,0.1);margin:0 0 1.6em;padding:1.6em .8em}@media screen and (min-width: 480px){.card,.post-list .post{padding:1.6em}}.site-header{background-color:#fff;padding:1.6em 0;margin-bottom:1.6em;border-bottom:1px solid rgba(222,222,222,0.5)}.site-header h1{margin:0;padding:5px 0;float:left;font-weight:300;font-size:1.25rem}.site-header h1 span{color:#337ab7}.site-header .navbar{float:right}.site-header a{color:#9a9a9a}.site-header a:hover,.site-header a:focus,.site-header a:active{color:#232323}@media screen and (max-width: 480px){.site-header .container{padding-left:1.6em;padding-right:1.6em}}.sliding-panel-button{float:right;padding:5px}.sliding-panel-button span{width:30px;display:block;height:3px;border-radius:2px;background:#fff;margin:3px 0}@media screen and (min-width: 480px){.sliding-panel-button{display:none}}@media screen and (max-width: 480px){.sliding-panel-content{border-top:5px solid #337ab7;position:fixed;top:0;right:auto;bottom:0;left:0;height:100%;width:220px;-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);-ms-transform:translateX(-100%);-o-transform:translateX(-100%);transform:translateX(-100%);-webkit-transition:all 0.25s linear;-moz-transition:all 0.25s linear;transition:all 0.25s linear;background:#fff;-webkit-overflow-scrolling:touch;overflow-y:auto;z-index:999999}.sliding-panel-content.is-visible{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);-o-transform:translateX(0);transform:translateX(0)}.sliding-panel-fade-screen{position:fixed;top:0;right:0;bottom:0;left:0;-webkit-transition:all 0.15s ease-out 0s;-moz-transition:all 0.15s ease-out 0s;transition:all 0.15s ease-out 0s;background:#000;opacity:0;visibility:hidden;z-index:9999}.sliding-panel-fade-screen.is-visible{opacity:0.4;visibility:visible}.sliding-panel-close{cursor:pointer}}.navbar li,.navbar a{display:inline-block}.navbar a{padding:5px 15px}@media screen and (max-width: 600px){.navbar a{padding:5px 10px}}@media screen and (max-width: 480px){.navbar li,.navbar a{display:block;text-align:center}.navbar li{border-bottom:1px solid #f2f2f2}.navbar a{padding:15px 0}}.btn.btn-ghost,.btn-ghost.sliding-panel-button{background-color:transparent;border:2px solid #337ab7;color:#337ab7}.btn.disabled,.disabled.sliding-panel-button,.btn[disabled],[disabled].sliding-panel-button,fieldset[disabled] .btn,fieldset[disabled] .sliding-panel-button{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}body.home{width:100%;display:table}.hero{text-align:center;display:table-cell;vertical-align:middle}.hero-inner{text-align:center;display:inline-block;padding:1.6em}.hero-inner .dot{padding:5px;border:1px solid #dedede}.hero-inner h1{margin-top:.7em;font-size:2.5rem}.hero-inner h3{font-size:1.25rem;margin:.8em 0 1.2em}@media screen and (min-width: 600px){.hero-inner h3{font-size:1.5rem}}.hero-inner h3,.hero-inner em{font-weight:300}.hero-inner em{color:#337ab7}.hero-inner strong{font-weight:600}.post{padding:1.6em 0}.post-header{margin-bottom:1.6em}.post-title{font-size:1.625rem;margin-bottom:0;line-height:1.5em}.post-list .post a{color:#333}.post-list .post a:hover,.post-list .post a:active,.post-list .post a:focus{color:#337ab7}.social{padding:0.6em 0 1.6em 0}.social li{display:inline-block;padding:0 .64em}.pagination{text-align:center;margin:2em 0}.pagination li{padding:0 .4em}.pagination li,.pagination a,.pagination span{display:inline-block}.pagination a,.pagination span{line-height:1.2em;font-size:.75rem}.pagination .btn,.pagination .sliding-panel-button{color:#333;border-color:rgba(222,222,222,0.8)}.pagination span{color:#aaa;font-style:italic}.site-footer{background-color:#fff;border-top:1px solid rgba(222,222,222,0.5);padding:1.6em;text-align:center}.site-footer p{margin:0}.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width: 800px){.github-corner{display:none;visibility:hidden}}@media (max-width: 480px){body{-webkit-text-size-adjust:none}body article p,body article li{word-break:break-all}body .social-share-icon.icon-wechat{display:none !important;visibility:hidden !important}body footer ul.social>li:last-child{display:none !important;visibility:hidden !important}}.icon>svg{display:inline-block;width:20px;height:20px;vertical-align:middle}.icon>svg path{fill:#828282}.icon.icon-email:hover>svg path{fill:#DF4A32}.icon.icon-github:hover>svg path{fill:#333}.icon.icon-twitter:hover>svg path{fill:#1da1f2}.icon.icon-medium:hover>svg path{fill:#000}.icon.icon-zhihu:hover>svg path{fill:#0074dc}.icon.icon-douban svg{width:17px}.icon.icon-douban:hover>svg path{fill:#594028}.icon.icon-v2ex svg{width:18px;height:18px}.icon.icon-v2ex:hover>svg path{fill:#262626}.icon.icon-weibo:hover>svg path{fill:#eb182c}.icon.icon-sf:hover>svg path{fill:#009b5f}code,pre{font-family:Menlo, Monaco, "Courier New", monospace}code{padding:.25em .5em;font-size:85%;color:#bf616a;background-color:#f9f9f9;border-radius:3px}pre{display:block;font-size:1em;line-height:1.8;overflow-x:auto;white-space:pre;word-break:inherit;word-wrap:inherit;background-color:#f9f9f9}pre code{padding:0;color:inherit;background-color:transparent}.highlight{margin-bottom:1rem}.highlight table{margin:0;padding:0;border:none;display:block}.highlight table td,.highlight table th{margin:0;padding:10px;border:none;width:100%}.highlight table .gutter{background-color:#eee;border-radius:5px 0px 0px 5px;width:inherit}.highlight table .gutter .lineno{background-color:#eee}.gist .gist-file{font-family:Menlo, Monaco, "Courier New", monospace !important}.gist .markdown-body{padding:15px}.gist pre{padding:0;background-color:transparent}.gist .gist-file .gist-data{font-size:.8rem !important;line-height:1.4}.gist code{padding:0;color:inherit;background-color:transparent;border-radius:0}.highlight .hll{background-color:#ffc}.highlight .c{color:#999988;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .k{color:#000000;font-weight:bolder}.highlight .o{color:#000000;font-weight:bolder}.highlight .cm{color:#999988;font-style:italic}.highlight .cp{color:#999999;font-weight:bolder;font-style:italic}.highlight .c1{color:#999988;font-style:italic}.highlight .cs{color:#999999;font-weight:bolder;font-style:italic}.highlight .gd{color:#000000;background-color:#fdd}.highlight .ge{color:#000000;font-style:italic}.highlight .gr{color:#a00}.highlight .gh{color:#999}.highlight .gi{color:#000000;background-color:#dfd}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gs{font-weight:bolder}.highlight .gu{color:#aaa}.highlight .gt{color:#a00}.highlight .kc{color:#000000;font-weight:bolder}.highlight .kd{color:#000000;font-weight:bolder}.highlight .kn{color:#000000;font-weight:bolder}.highlight .kp{color:#000000;font-weight:bolder}.highlight .kr{color:#000000;font-weight:bolder}.highlight .kt{color:#445588;font-weight:bolder}.highlight .m{color:#099}.highlight .s{color:#d01040}.highlight .na{color:teal}.highlight .nb{color:#0086B3}.highlight .nc{color:#445588;font-weight:bolder}.highlight .no{color:teal}.highlight .nd{color:#3c5d5d;font-weight:bolder}.highlight .ni{color:purple}.highlight .ne{color:#990000;font-weight:bolder}.highlight .nf{color:#990000;font-weight:bolder}.highlight .nl{color:#990000;font-weight:bolder}.highlight .nn{color:#555}.highlight .nt{color:navy}.highlight .nv{color:teal}.highlight .ow{color:#000000;font-weight:bolder}.highlight .w{color:#bbb}.highlight .mf{color:#099}.highlight .mh{color:#099}.highlight .mi{color:#099}.highlight .mo{color:#099}.highlight .sb{color:#d01040}.highlight .sc{color:#d01040}.highlight .sd{color:#d01040}.highlight .s2{color:#d01040}.highlight .se{color:#d01040}.highlight .sh{color:#d01040}.highlight .si{color:#d01040}.highlight .sx{color:#d01040}.highlight .sr{color:#009926}.highlight .s1{color:#d01040}.highlight .ss{color:#990073}.highlight .bp{color:#999}.highlight .vc{color:teal}.highlight .vg{color:teal}.highlight .vi{color:teal}.highlight .il{color:#099}article a{color:#268bd2;text-decoration:none}article h1,article h2,article h3,article h4,article h5,article h6{margin-top:2rem;margin-bottom:1.5rem;font-weight:bold;line-height:1.5;color:#333;letter-spacing:-.025rem}article h1{font-size:2rem}article h2{font-size:1.6rem}article h3{font-size:1.3rem}article h4,article h5,article h6{font-size:1rem}article p,article li{word-break:break-word}article p{margin:0 0 1rem}article p+h1,article p+h2,article p+h3,article ul+h1,article ul+h2,article ul+h3,article ol+h1,article ol+h2,article ol+h3,article .example-code+h1,article .example-code+h2,article .example-code+h3,article script+h1,article script+h2,article script+h3{margin-top:2rem}article ul,article ol,article dl{margin-top:0;margin-bottom:1rem}article dt{font-weight:bold}article dd{margin-bottom:.5rem}article ul{list-style:inside disc;padding-left:0}article ul li{margin-bottom:.25rem}article ul ul,article ul ol{list-style:inside circle;margin:.25rem 0 .5rem 1rem}article ol{list-style:inside decimal;padding-left:0}article ol li{margin-bottom:.25rem}article ol ul,article ol ol{margin:.25rem 0 .5rem 1rem}article hr{border:0;border-top:.5px solid #eee;border-bottom:.5px solid #eee;margin:1.5rem auto}article strong{color:#000;font-weight:bolder}article abbr{font-size:85%;font-weight:bold;color:#555;text-transform:uppercase}article abbr[title]{cursor:help;border-bottom:1px dotted #e5e5e5}article blockquote{margin:0 1rem 1rem 0;color:#999;border-left:.5rem solid #e5e5e5;quotes:none}article blockquote p{display:block}article blockquote p:last-child{margin-bottom:0}article blockquote:before{content:none}article img{display:block;max-width:100%;margin:0 0 1rem;border-radius:3px}article table{margin-bottom:1rem;width:100%;border:1px solid #e5e5e5;border-collapse:collapse}article td,article th{padding:.25rem .5rem;border:1px solid #e5e5e5}article tbody tr:nth-child(odd) td,article tbody tr:nth-child(odd) th{background-color:#f9f9f9}article .lead{font-size:1.1rem;text-indent:2em;color:#888}article .example-code{background-color:#f9f9f9;padding:.8em 1.2em;margin-bottom:1em}article .example-code p{margin:0;padding:0}article .example-code ul{margin-bottom:0}.post-title{margin-top:0;margin-bottom:.25rem}.post-meta{margin-bottom:2rem;font-size:1rem;color:#999}.post-content{padding-bottom:1rem}.post-footer{padding-top:2rem}.post-footer .social-share-panel a{margin-top:-25px}.post-footer .social-share-panel .icon.icon-cc-by{margin-top:0}.post-footer #disqus_thread{padding-top:1rem}
