#cnblogs_post_body {
  font-family: Helvetica, arial, sans-serif;
  font-size: 14px;
  line-height: 1.6;
}
#cnblogs_post_body a {
  color: #4183C4;
}
#cnblogs_post_body a.absent {
  color: #cc0000;
}
#cnblogs_post_body a.anchor {
  display: block;
  padding-left: 30px;
  margin-left: -30px;
  cursor: pointer;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
}
#cnblogs_post_body h1,
#cnblogs_post_body h2,
#cnblogs_post_body h3,
#cnblogs_post_body h4,
#cnblogs_post_body h5,
#cnblogs_post_body h6 {
  margin: 20px 0 10px;
  padding: 0;
  font-weight: bold;
  -webkit-font-smoothing: antialiased;
  cursor: text;
  position: relative;
}
#cnblogs_post_body h1:hover a.anchor,
#cnblogs_post_body h2:hover a.anchor,
#cnblogs_post_body h3:hover a.anchor,
#cnblogs_post_body h4:hover a.anchor,
#cnblogs_post_body h5:hover a.anchor,
#cnblogs_post_body h6:hover a.anchor {
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA09pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoMTMuMCAyMDEyMDMwNS5tLjQxNSAyMDEyLzAzLzA1OjIxOjAwOjAwKSAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUM2NjlDQjI4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUM2NjlDQjM4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QzY2OUNCMDg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QzY2OUNCMTg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsQhXeAAAABfSURBVHjaYvz//z8DJYCRUgMYQAbAMBQIAvEqkBQWXI6sHqwHiwG70TTBxGaiWwjCTGgOUgJiF1J8wMRAIUA34B4Q76HUBelAfJYSA0CuMIEaRP8wGIkGMA54bgQIMACAmkXJi0hKJQAAAABJRU5ErkJggg==) no-repeat 10px center;
  text-decoration: none;
}
#cnblogs_post_body h1 tt,
#cnblogs_post_body h1 code {
  font-size: inherit;
}
#cnblogs_post_body h2 tt,
#cnblogs_post_body h2 code {
  font-size: inherit;
}
#cnblogs_post_body h3 tt,
#cnblogs_post_body h3 code {
  font-size: inherit;
}
#cnblogs_post_body h4 tt,
#cnblogs_post_body h4 code {
  font-size: inherit;
}
#cnblogs_post_body h5 tt,
#cnblogs_post_body h5 code {
  font-size: inherit;
}
#cnblogs_post_body h6 tt,
#cnblogs_post_body h6 code {
  font-size: inherit;
}
#cnblogs_post_body h1 {
  font-size: 28px;
  color: black;
}
#cnblogs_post_body h2 {
  font-size: 24px;
  border-bottom: 1px solid #cccccc;
  color: black;
}
#cnblogs_post_body h3 {
  font-size: 18px;
}
#cnblogs_post_body h4 {
  font-size: 16px;
}
#cnblogs_post_body h5 {
  font-size: 14px;
}
#cnblogs_post_body h6 {
  color: #777777;
  font-size: 14px;
}
#cnblogs_post_body p,
#cnblogs_post_body blockquote,
#cnblogs_post_body ul,
#cnblogs_post_body ol,
#cnblogs_post_body dl,
#cnblogs_post_body li,
#cnblogs_post_body table,
#cnblogs_post_body pre {
  margin: 15px 0;
}
#cnblogs_post_body hr {
  background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC) repeat-x 0 0;
  border: 0 none;
  color: #cccccc;
  height: 4px;
  padding: 0;
}
#cnblogs_post_body > h2:first-child {
  margin-top: 0;
  padding-top: 0;
}
#cnblogs_post_body > h1:first-child {
  margin-top: 0;
  padding-top: 0;
}
#cnblogs_post_body > h1:first-child + h2 {
  margin-top: 0;
  padding-top: 0;
}
#cnblogs_post_body > h3:first-child,
#cnblogs_post_body > h4:first-child,
#cnblogs_post_body > h5:first-child,
#cnblogs_post_body > h6:first-child {
  margin-top: 0;
  padding-top: 0;
}
#cnblogs_post_body a:first-child h1,
#cnblogs_post_body a:first-child h2,
#cnblogs_post_body a:first-child h3,
#cnblogs_post_body a:first-child h4,
#cnblogs_post_body a:first-child h5,
#cnblogs_post_body a:first-child h6 {
  margin-top: 0;
  padding-top: 0;
}
#cnblogs_post_body h1 p,
#cnblogs_post_body h2 p,
#cnblogs_post_body h3 p,
#cnblogs_post_body h4 p,
#cnblogs_post_body h5 p,
#cnblogs_post_body h6 p {
  margin-top: 0;
}
#cnblogs_post_body li p.first {
  display: inline-block;
}
#cnblogs_post_body li {
  margin: 0;
}
#cnblogs_post_body ul,
#cnblogs_post_body ol {
  padding-left: 30px;
}
#cnblogs_post_body ul :first-child,
#cnblogs_post_body ol :first-child {
  margin-top: 0;
}
#cnblogs_post_body dl {
  padding: 0;
}
#cnblogs_post_body dl dt {
  font-size: 14px;
  font-weight: bold;
  font-style: italic;
  padding: 0;
  margin: 15px 0 5px;
}
#cnblogs_post_body dl dt:first-child {
  padding: 0;
}
#cnblogs_post_body dl dt > :first-child {
  margin-top: 0;
}
#cnblogs_post_body dl dt > :last-child {
  margin-bottom: 0;
}
#cnblogs_post_body dl dd {
  margin: 0 0 15px;
  padding: 0 15px;
}
#cnblogs_post_body dl dd > :first-child {
  margin-top: 0;
}
#cnblogs_post_body dl dd > :last-child {
  margin-bottom: 0;
}
#cnblogs_post_body blockquote {
  border-left: 4px solid #dddddd;
  padding: 0 15px;
  color: #777777;
}
#cnblogs_post_body blockquote > :first-child {
  margin-top: 0;
}
#cnblogs_post_body blockquote > :last-child {
  margin-bottom: 0;
}
#cnblogs_post_body table {
  padding: 0;
  border-collapse: collapse;
}
#cnblogs_post_body table tr {
  border-top: 1px solid #cccccc;
  background-color: white;
  margin: 0;
  padding: 0;
}
#cnblogs_post_body table tr:nth-child(2n) {
  background-color: #f8f8f8;
}
#cnblogs_post_body table tr th {
  font-weight: bold;
  border: 1px solid #cccccc;
  margin: 0;
  padding: 6px 13px;
}
#cnblogs_post_body table tr td {
  border: 1px solid #cccccc;
  margin: 0;
  padding: 6px 13px;
}
#cnblogs_post_body table tr th :first-child,
#cnblogs_post_body table tr td :first-child {
  margin-top: 0;
}
#cnblogs_post_body table tr th :last-child,
#cnblogs_post_body table tr td :last-child {
  margin-bottom: 0;
}
#cnblogs_post_body img {
  max-width: 100%;
}
#cnblogs_post_body span.frame {
  display: block;
  overflow: hidden;
}
#cnblogs_post_body span.frame > span {
  border: 1px solid #dddddd;
  display: block;
  float: left;
  overflow: hidden;
  margin: 13px 0 0;
  padding: 7px;
  width: auto;
}
#cnblogs_post_body span.frame span img {
  display: block;
  float: left;
}
#cnblogs_post_body span.frame span span {
  clear: both;
  color: #333333;
  display: block;
  padding: 5px 0 0;
}
#cnblogs_post_body span.align-center {
  display: block;
  overflow: hidden;
  clear: both;
}
#cnblogs_post_body span.align-center > span {
  display: block;
  overflow: hidden;
  margin: 13px auto 0;
  text-align: center;
}
#cnblogs_post_body span.align-center span img {
  margin: 0 auto;
  text-align: center;
}
#cnblogs_post_body span.align-right {
  display: block;
  overflow: hidden;
  clear: both;
}
#cnblogs_post_body span.align-right > span {
  display: block;
  overflow: hidden;
  margin: 13px 0 0;
  text-align: right;
}
#cnblogs_post_body span.align-right span img {
  margin: 0;
  text-align: right;
}
#cnblogs_post_body span.float-left {
  display: block;
  margin-right: 13px;
  overflow: hidden;
  float: left;
}
#cnblogs_post_body span.float-left span {
  margin: 13px 0 0;
}
#cnblogs_post_body span.float-right {
  display: block;
  margin-left: 13px;
  overflow: hidden;
  float: right;
}
#cnblogs_post_body span.float-right > span {
  display: block;
  overflow: hidden;
  margin: 13px auto 0;
  text-align: right;
}
#cnblogs_post_body code,
#cnblogs_post_body tt {
  margin: 0 2px;
  padding: 0 5px;
  white-space: nowrap;
  border: 1px solid #eaeaea;
  background-color: #f8f8f8;
  border-radius: 3px;
}
#cnblogs_post_body pre code {
  margin: 0;
  padding: 0;
  white-space: pre;
  border: none;
  background: transparent;
}
#cnblogs_post_body .highlight pre {
  background-color: #f8f8f8;
  border: 1px solid #cccccc;
  font-size: 13px;
  line-height: 19px;
  overflow: auto;
  padding: 6px 10px;
  border-radius: 3px;
}
#cnblogs_post_body pre {
  background-color: #f8f8f8;
  border: 1px solid #cccccc;
  font-size: 13px;
  line-height: 19px;
  overflow: auto;
  padding: 6px 10px;
  border-radius: 3px;
}
#cnblogs_post_body pre code,
#cnblogs_post_body pre tt {
  background-color: transparent;
  border: none;
}
#cnblogs_post_body sup {
  font-size: 0.83em;
  vertical-align: super;
  line-height: 0;
}
#cnblogs_post_body * {
  -webkit-print-color-adjust: exact;
}
@media print {
  #cnblogs_post_body table,
  #cnblogs_post_body pre {
    page-break-inside: avoid;
  }
  #cnblogs_post_body pre {
    word-wrap: break-word;
  }
}
#cnblogs_post_body .cnblogs_code pre {
  margin: 0;
}
#cnblogs_post_body .myvimcode {
  padding: 0.5em;
  white-space: pre-wrap;
  font-family: monospace;
  color: #cccccc;
  background-color: #000000;
}
#cnblogs_post_body .myvimcode .Type {
  color: #60ff60;
}
#cnblogs_post_body .myvimcode .PreProc {
  color: #ff80ff;
}
#cnblogs_post_body .myvimcode .Statement {
  color: #ffff00;
}
#cnblogs_post_body .myvimcode .Comment {
  color: #80a0ff;
}
#cnblogs_post_body .myvimcode .Constant {
  color: #ffa0a0;
}
#cnblogs_post_body .myvimcode .Identifier {
  color: #40ffff;
}
#cnblogs_post_body .mypre,
#cnblogs_post_body .highlight pre,
#cnblogs_post_body .highlight {
  background-color: #000000;
}
#cnblogs_post_body .hll {
  background-color: #222222;
}
#cnblogs_post_body .c {
  color: #80a0ff;
}
#cnblogs_post_body .err {
  color: #cccccc;
  border: 1px solid #ff0000;
}
#cnblogs_post_body .esc {
  color: #cccccc;
}
#cnblogs_post_body .g {
  color: #cccccc;
}
#cnblogs_post_body .k {
  color: #ffff00;
}
#cnblogs_post_body .l {
  color: #cccccc;
}
#cnblogs_post_body .n {
  color: #cccccc;
}
#cnblogs_post_body .o {
  color: #3399cc;
}
#cnblogs_post_body .x {
  color: #cccccc;
}
#cnblogs_post_body .p {
  color: #cccccc;
}
#cnblogs_post_body .cm {
  color: #000080;
}
#cnblogs_post_body .cp {
  color: #000080;
}
#cnblogs_post_body .c1 {
  color: #000080;
}
#cnblogs_post_body .cs {
  color: #cd0000;
  font-weight: bold;
}
#cnblogs_post_body .gd {
  color: #cd0000;
}
#cnblogs_post_body .ge {
  color: #cccccc;
  font-style: italic;
}
#cnblogs_post_body .gr {
  color: #ff0000;
}
#cnblogs_post_body .gh {
  color: #000080;
  font-weight: bold;
}
#cnblogs_post_body .gi {
  color: #00cd00;
}
#cnblogs_post_body .go {
  color: #888888;
}
#cnblogs_post_body .gp {
  color: #000080;
  font-weight: bold;
}
#cnblogs_post_body .gs {
  color: #cccccc;
  font-weight: bold;
}
#cnblogs_post_body .gu {
  color: #800080;
  font-weight: bold;
}
#cnblogs_post_body .gt {
  color: #0044dd;
}
#cnblogs_post_body .kc {
  color: #cdcd00;
}
#cnblogs_post_body .kd {
  color: #00cd00;
}
#cnblogs_post_body .kn {
  color: #ff80ff;
}
#cnblogs_post_body .kp {
  color: #cdcd00;
}
#cnblogs_post_body .kr {
  color: #cdcd00;
}
#cnblogs_post_body .kt {
  color: #00cd00;
}
#cnblogs_post_body .ld {
  color: #cccccc;
}
#cnblogs_post_body .m {
  color: #cd00cd;
}
#cnblogs_post_body .s {
  color: #cd0000;
}
#cnblogs_post_body .na {
  color: #cccccc;
}
#cnblogs_post_body .nb {
  color: #cd00cd;
}
#cnblogs_post_body .nc {
  color: #00cdcd;
}
#cnblogs_post_body .no {
  color: #cccccc;
}
#cnblogs_post_body .nd {
  color: #cccccc;
}
#cnblogs_post_body .ni {
  color: #cccccc;
}
#cnblogs_post_body .ne {
  color: #666699;
  font-weight: bold;
}
#cnblogs_post_body .nf {
  color: #cccccc;
}
#cnblogs_post_body .nl {
  color: #cccccc;
}
#cnblogs_post_body .nn {
  color: #cccccc;
}
#cnblogs_post_body .nx {
  color: #cccccc;
}
#cnblogs_post_body .py {
  color: #cccccc;
}
#cnblogs_post_body .nt {
  color: #cccccc;
}
#cnblogs_post_body .nv {
  color: #00cdcd;
}
#cnblogs_post_body .ow {
  color: #cdcd00;
}
#cnblogs_post_body .w {
  color: #cccccc;
}
#cnblogs_post_body .mb {
  color: #cd00cd;
}
#cnblogs_post_body .mf {
  color: #cd00cd;
}
#cnblogs_post_body .mh {
  color: #cd00cd;
}
#cnblogs_post_body .mi {
  color: #cd00cd;
}
#cnblogs_post_body .mo {
  color: #cd00cd;
}
#cnblogs_post_body .sb {
  color: #cd0000;
}
#cnblogs_post_body .sc {
  color: #cd0000;
}
#cnblogs_post_body .sd {
  color: #cd0000;
}
#cnblogs_post_body .s2 {
  color: #cd0000;
}
#cnblogs_post_body .se {
  color: #cd0000;
}
#cnblogs_post_body .sh {
  color: #cd0000;
}
#cnblogs_post_body .si {
  color: #cd0000;
}
#cnblogs_post_body .sx {
  color: #cd0000;
}
#cnblogs_post_body .sr {
  color: #cd0000;
}
#cnblogs_post_body .s1 {
  color: #cd0000;
}
#cnblogs_post_body .ss {
  color: #cd0000;
}
#cnblogs_post_body .bp {
  color: #cd00cd;
}
#cnblogs_post_body .vc {
  color: #00cdcd;
}
#cnblogs_post_body .vg {
  color: #00cdcd;
}
#cnblogs_post_body .vi {
  color: #00cdcd;
}
#cnblogs_post_body .il {
  color: #cd00cd;
}