亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? inflate.h

?? at91rm9200的一級bootloader
?? H
?? 第 1 頁 / 共 3 頁
字號:
        h++;

        w += l;                 /* previous table always l bits */



        /* compute minimum size table less than or equal to l bits */

        z = (z = g - w) > (unsigned)l ? l : z;  /* upper limit on table size */

        if ((f = 1 << (j = k - w)) > a + 1)     /* try a k-w bit table */

        {                       /* too few codes for k-w bit table */

DEBG1("2 ");

          f -= a + 1;           /* deduct codes from patterns left */

          xp = c + k;

          while (++j < z)       /* try smaller tables up to z bits */

          {

            if ((f <<= 1) <= *++xp)

              break;            /* enough codes to use up j bits */

            f -= *xp;           /* else deduct codes from patterns */

          }

        }

DEBG1("3 ");

        z = 1 << j;             /* table entries for j-bit table */



        /* allocate and link in new table */

        if ((q = (struct huft *)malloc((z + 1)*sizeof(struct huft))) ==

            (struct huft *)NULL)

        {

          if (h)

            huft_free(u[0]);

          return 3;             /* not enough memory */

        }

DEBG1("4 ");

        hufts += z + 1;         /* track memory usage */

        *t = q + 1;             /* link to list for huft_free() */

        *(t = &(q->v.t)) = (struct huft *)NULL;

        u[h] = ++q;             /* table starts after link */



DEBG1("5 ");

        /* connect to last table, if there is one */

        if (h)

        {

          x[h] = i;             /* save pattern for backing up */

          r.b = (uch)l;         /* bits to dump before this table */

          r.e = (uch)(16 + j);  /* bits in this table */

          r.v.t = q;            /* pointer to this table */

          j = i >> (w - l);     /* (get around Turbo C bug) */

          u[h-1][j] = r;        /* connect to last table */

        }

DEBG1("6 ");

      }

DEBG("h6c ");



      /* set up table entry in r */

      r.b = (uch)(k - w);

      if (p >= v + n)

        r.e = 99;               /* out of values--invalid code */

      else if (*p < s)

      {

        r.e = (uch)(*p < 256 ? 16 : 15);    /* 256 is end-of-block code */

        r.v.n = (ush)(*p);             /* simple code is just the value */

	p++;                           /* one compiler does not like *p++ */

      }

      else

      {

        r.e = (uch)e[*p - s];   /* non-simple--look up in lists */

        r.v.n = d[*p++ - s];

      }

DEBG("h6d ");



      /* fill code-like entries with r */

      f = 1 << (k - w);

      for (j = i >> w; j < z; j += f)

        q[j] = r;



      /* backwards increment the k-bit code i */

      for (j = 1 << (k - 1); i & j; j >>= 1)

        i ^= j;

      i ^= j;



      /* backup over finished tables */

      while ((i & ((1 << w) - 1)) != x[h])

      {

        h--;                    /* don't need to update q */

        w -= l;

      }

DEBG("h6e ");

    }

DEBG("h6f ");

  }



DEBG("huft7 ");



  /* Return true (1) if we were given an incomplete table */

  return y != 0 && g != 1;

}







STATIC int huft_free(t)

struct huft *t;         /* table to free */

/* Free the malloc'ed tables built by huft_build(), which makes a linked

   list of the tables it made, with the links in a dummy first entry of

   each table. */

{

  register struct huft *p, *q;





  /* Go through linked list, freeing from the malloced (t[-1]) address. */

  p = t;

  while (p != (struct huft *)NULL)

  {

    q = (--p)->v.t;

    free((char*)p);

    p = q;

  } 

  return 0;

}





STATIC int inflate_codes(tl, td, bl, bd)

struct huft *tl, *td;   /* literal/length and distance decoder tables */

int bl, bd;             /* number of bits decoded by tl[] and td[] */

/* inflate (decompress) the codes in a deflated (compressed) block.

   Return an error code or zero if it all goes ok. */

{

  register unsigned e;  /* table entry flag/number of extra bits */

  unsigned n, d;        /* length and index for copy */

  unsigned w;           /* current window position */

  struct huft *t;       /* pointer to table entry */

  unsigned ml, md;      /* masks for bl and bd bits */

  register ulg b;       /* bit buffer */

  register unsigned k;  /* number of bits in bit buffer */





  /* make local copies of globals */

  b = bb;                       /* initialize bit buffer */

  k = bk;

  w = wp;                       /* initialize window position */



  /* inflate the coded data */

  ml = mask_bits[bl];           /* precompute masks for speed */

  md = mask_bits[bd];

  for (;;)                      /* do until end of block */

  {

    NEEDBITS((unsigned)bl)

    if ((e = (t = tl + ((unsigned)b & ml))->e) > 16)

      do {

        if (e == 99)

          return 1;

        DUMPBITS(t->b)

        e -= 16;

        NEEDBITS(e)

      } while ((e = (t = t->v.t + ((unsigned)b & mask_bits[e]))->e) > 16);

    DUMPBITS(t->b)

    if (e == 16)                /* then it's a literal */

    {

      slide[w++] = (uch)t->v.n;

      Tracevv((stderr, "%c", slide[w-1]));

      if (w == WSIZE)

      {

        flush_output(w);

        w = 0;

      }

    }

    else                        /* it's an EOB or a length */

    {

      /* exit if end of block */

      if (e == 15)

        break;



      /* get length of block to copy */

      NEEDBITS(e)

      n = t->v.n + ((unsigned)b & mask_bits[e]);

      DUMPBITS(e);



      /* decode distance of block to copy */

      NEEDBITS((unsigned)bd)

      if ((e = (t = td + ((unsigned)b & md))->e) > 16)

        do {

          if (e == 99)

            return 1;

          DUMPBITS(t->b)

          e -= 16;

          NEEDBITS(e)

        } while ((e = (t = t->v.t + ((unsigned)b & mask_bits[e]))->e) > 16);

      DUMPBITS(t->b)

      NEEDBITS(e)

      d = w - t->v.n - ((unsigned)b & mask_bits[e]);

      DUMPBITS(e)

      Tracevv((stderr,"\\[%d,%d]", w-d, n));



      /* do the copy */

      do {

        n -= (e = (e = WSIZE - ((d &= WSIZE-1) > w ? d : w)) > n ? n : e);

#if !defined(NOMEMCPY) && !defined(DEBUG)

        if (w - d >= e)         /* (this test assumes unsigned comparison) */

        {

          memcpy(slide + w, slide + d, e);

          w += e;

          d += e;

        }

        else                      /* do it slow to avoid memcpy() overlap */

#endif /* !NOMEMCPY */

          do {

            slide[w++] = slide[d++];

	    Tracevv((stderr, "%c", slide[w-1]));

          } while (--e);

        if (w == WSIZE)

        {

          flush_output(w);

          w = 0;

        }

      } while (n);

    }

  }





  /* restore the globals from the locals */

  wp = w;                       /* restore global window pointer */

  bb = b;                       /* restore global bit buffer */

  bk = k;



  /* done */

  return 0;

}







STATIC int inflate_stored()

/* "decompress" an inflated type 0 (stored) block. */

{

  unsigned n;           /* number of bytes in block */

  unsigned w;           /* current window position */

  register ulg b;       /* bit buffer */

  register unsigned k;  /* number of bits in bit buffer */



DEBG("<stor");



  /* make local copies of globals */

  b = bb;                       /* initialize bit buffer */

  k = bk;

  w = wp;                       /* initialize window position */





  /* go to byte boundary */

  n = k & 7;

  DUMPBITS(n);





  /* get the length and its complement */

  NEEDBITS(16)

  n = ((unsigned)b & 0xffff);

  DUMPBITS(16)

  NEEDBITS(16)

  if (n != (unsigned)((~b) & 0xffff))

    return 1;                   /* error in compressed data */

  DUMPBITS(16)





  /* read and output the compressed data */

  while (n--)

  {

    NEEDBITS(8)

    slide[w++] = (uch)b;

    if (w == WSIZE)

    {

      flush_output(w);

      w = 0;

    }

    DUMPBITS(8)

  }





  /* restore the globals from the locals */

  wp = w;                       /* restore global window pointer */

  bb = b;                       /* restore global bit buffer */

  bk = k;



  DEBG(">");

  return 0;

}







STATIC int inflate_fixed()

/* decompress an inflated type 1 (fixed Huffman codes) block.  We should

   either replace this with a custom decoder, or at least precompute the

   Huffman tables. */

{

  int i;                /* temporary variable */

  struct huft *tl;      /* literal/length code table */

  struct huft *td;      /* distance code table */

  int bl;               /* lookup bits for tl */

  int bd;               /* lookup bits for td */

  unsigned l[288];      /* length list for huft_build */



DEBG("<fix");



  /* set up literal table */

  for (i = 0; i < 144; i++)

    l[i] = 8;

  for (; i < 256; i++)

    l[i] = 9;

  for (; i < 280; i++)

    l[i] = 7;

  for (; i < 288; i++)          /* make a complete, but wrong code set */

    l[i] = 8;

  bl = 7;

  if ((i = huft_build(l, 288, 257, cplens, cplext, &tl, &bl)) != 0)

    return i;





  /* set up distance table */

  for (i = 0; i < 30; i++)      /* make an incomplete code set */

    l[i] = 5;

  bd = 5;

  if ((i = huft_build(l, 30, 0, cpdist, cpdext, &td, &bd)) > 1)

  {

    huft_free(tl);



    DEBG(">");

    return i;

  }





  /* decompress until an end-of-block code */

  if (inflate_codes(tl, td, bl, bd))

    return 1;





  /* free the decoding tables, return */

  huft_free(tl);

  huft_free(td);

  return 0;

}







STATIC int inflate_dynamic()

/* decompress an inflated type 2 (dynamic Huffman codes) block. */

{

  int i;                /* temporary variables */

  unsigned j;

  unsigned l;           /* last length */

  unsigned m;           /* mask for bit lengths table */

  unsigned n;           /* number of lengths to get */

  struct huft *tl;      /* literal/length code table */

  struct huft *td;      /* distance code table */

  int bl;               /* lookup bits for tl */

  int bd;               /* lookup bits for td */

  unsigned nb;          /* number of bit length codes */

  unsigned nl;          /* number of literal/length codes */

  unsigned nd;          /* number of distance codes */

#ifdef PKZIP_BUG_WORKAROUND

  unsigned ll[288+32];  /* literal/length and distance code lengths */

#else

  unsigned ll[286+30];  /* literal/length and distance code lengths */

#endif

  register ulg b;       /* bit buffer */

  register unsigned k;  /* number of bits in bit buffer */



DEBG("<dyn");



  /* make local bit buffer */

  b = bb;

  k = bk;





  /* read in table lengths */

  NEEDBITS(5)

  nl = 257 + ((unsigned)b & 0x1f);      /* number of literal/length codes */

  DUMPBITS(5)

  NEEDBITS(5)

  nd = 1 + ((unsigned)b & 0x1f);        /* number of distance codes */

  DUMPBITS(5)

  NEEDBITS(4)

  nb = 4 + ((unsigned)b & 0xf);         /* number of bit length codes */

  DUMPBITS(4)

#ifdef PKZIP_BUG_WORKAROUND

  if (nl > 288 || nd > 32)

#else

  if (nl > 286 || nd > 30)

#endif

    return 1;                   /* bad lengths */



DEBG("dyn1 ");



  /* read in bit-length-code lengths */

  for (j = 0; j < nb; j++)

  {

    NEEDBITS(3)

    ll[border[j]] = (unsigned)b & 7;

    DUMPBITS(3)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本一道久久a久久精品| 欧美精品三级日韩久久| 麻豆高清免费国产一区| 亚洲欧美日韩久久精品| 欧美变态tickling挠脚心| 91美女片黄在线观看| 国产精品影视网| 韩国成人在线视频| 久久精品久久99精品久久| 日韩中文字幕区一区有砖一区| 日韩一区有码在线| 国产精品视频在线看| 国产婷婷色一区二区三区四区 | 国产精品你懂的在线欣赏| 精品国产网站在线观看| 欧美日韩不卡在线| 欧美视频三区在线播放| 色狠狠av一区二区三区| 色哟哟一区二区三区| 色婷婷一区二区三区四区| 色婷婷激情一区二区三区| 色婷婷精品大视频在线蜜桃视频| 91蝌蚪porny| 欧美制服丝袜第一页| 欧美日韩一区二区电影| 欧美人伦禁忌dvd放荡欲情| 欧美美女喷水视频| 日韩片之四级片| 欧美电影免费提供在线观看| 欧美成人福利视频| 国产欧美日韩麻豆91| 亚洲六月丁香色婷婷综合久久| 一区二区三区电影在线播| 日韩电影免费一区| 国产成人高清在线| 日本高清无吗v一区| 69久久夜色精品国产69蝌蚪网| www久久久久| 亚洲色图丝袜美腿| 天堂久久久久va久久久久| 精品一区二区三区日韩| youjizz久久| 91精品久久久久久久91蜜桃| 久久天堂av综合合色蜜桃网| 亚洲三级免费观看| 热久久免费视频| 91在线精品秘密一区二区| 这里只有精品电影| 最新久久zyz资源站| 美女视频黄久久| 色综合色综合色综合 | 亚洲成av人影院| 成人午夜视频免费看| 欧美精品一级二级| 国产精品成人免费精品自在线观看| 亚洲r级在线视频| 99久久99久久精品国产片果冻| 欧美一区二区三区婷婷月色| 中文字幕视频一区| 激情国产一区二区| 欧美一区国产二区| 亚洲另类一区二区| 久久精品视频免费| 美女性感视频久久| 欧美三级午夜理伦三级中视频| 一区视频在线播放| 高清av一区二区| 26uuu国产在线精品一区二区| 亚洲国产精品久久久久婷婷884 | 激情久久久久久久久久久久久久久久| 欧美偷拍一区二区| 亚洲视频电影在线| 91网页版在线| 日韩理论片中文av| av欧美精品.com| 毛片不卡一区二区| 欧美一区二区女人| 日韩中文字幕区一区有砖一区 | 欧美主播一区二区三区| 亚洲人成网站精品片在线观看| 国产精品乡下勾搭老头1| 久久久久久久久久久99999| 久久精品国产亚洲高清剧情介绍| 欧美丰满一区二区免费视频 | 欧美天堂亚洲电影院在线播放| 亚洲欧洲成人自拍| 波多野结衣中文字幕一区二区三区| 久久久精品日韩欧美| 国产不卡视频在线观看| 欧美国产欧美亚州国产日韩mv天天看完整| 国产又黄又大久久| 国产精品久久久久一区二区三区 | 久久国产福利国产秒拍| 欧美mv和日韩mv的网站| 国产91综合网| 亚洲激情自拍视频| 91精品欧美一区二区三区综合在 | 蜜臀精品一区二区三区在线观看| 日韩欧美视频在线| 国产精品影视在线观看| 亚洲女爱视频在线| 欧美二区在线观看| 国产麻豆成人精品| 亚洲第一福利视频在线| 欧美一区二区三区思思人| 国产裸体歌舞团一区二区| 亚洲日本免费电影| 日韩午夜中文字幕| 国产成人午夜精品影院观看视频 | 亚洲一级在线观看| 久久久三级国产网站| 在线观看区一区二| 久久伊人中文字幕| av高清久久久| 国产伦精品一区二区三区免费| 国产精品电影一区二区三区| 51久久夜色精品国产麻豆| 成人午夜伦理影院| 蜜桃视频在线一区| 亚洲欧美日韩国产综合在线 | 久久综合九色欧美综合狠狠| 在线观看国产精品网站| 国产成人精品www牛牛影视| 在线一区二区三区做爰视频网站| 久久66热偷产精品| 视频一区二区中文字幕| 亚洲视频免费看| 欧美国产日本韩| 久久久久国产精品麻豆| 3d成人动漫网站| 日本道精品一区二区三区| 国产成都精品91一区二区三| 日本网站在线观看一区二区三区 | 久久一留热品黄| 精品久久久三级丝袜| 91精品免费观看| 欧美久久一区二区| 欧美日韩免费一区二区三区| 91老师片黄在线观看| 国产欧美视频一区二区| 精品国偷自产国产一区| 91精选在线观看| 蜜桃av一区二区三区| 麻豆精品视频在线观看免费| 日韩国产在线一| 天天影视色香欲综合网老头| 亚洲国产精品精华液网站| 亚洲一区二区三区视频在线 | 国产成人免费视频| 国产在线精品一区在线观看麻豆| 黄网站免费久久| 国产精品一区专区| 懂色av一区二区三区免费观看| 国产不卡高清在线观看视频| 国产电影精品久久禁18| 国产精品三级视频| 亚洲伦理在线精品| 亚洲va欧美va天堂v国产综合| 丝袜美腿一区二区三区| 久久爱另类一区二区小说| 狠狠色狠狠色综合日日91app| 国产一本一道久久香蕉| 欧美国产综合一区二区| 亚洲精品成人a在线观看| 日本在线播放一区二区三区| 日本欧美肥老太交大片| 国产一区二区三区在线看麻豆| 国产又黄又大久久| 91免费版在线看| 欧美精品自拍偷拍| 久久久久九九视频| 亚洲日本va午夜在线电影| 一区二区三区免费观看| 日韩av一区二区在线影视| 国内偷窥港台综合视频在线播放| 99视频超级精品| 欧美一区二区女人| 国产精品一区一区三区| 99久久99久久综合| 高清成人在线观看| 91麻豆精品久久久久蜜臀| 久久久久久黄色| 亚洲午夜在线观看视频在线| 蜜臀av国产精品久久久久 | 激情综合色综合久久综合| 99精品欧美一区| 日韩精品一区二区三区视频播放| 国产精品国产三级国产普通话99 | 久久青草国产手机看片福利盒子| 综合在线观看色| 国产精品456| 欧美精品1区2区3区| 亚洲久草在线视频| 国产麻豆91精品| 日韩一区二区麻豆国产| 一区二区三区产品免费精品久久75| 国内久久婷婷综合| 欧美三电影在线| 国产精品久久久久一区二区三区 | 一区二区三区加勒比av|