protected function  o_fontGIDtoCIDMap($id, $action, $options = '') {
    if  ($action !== 'new') {
      $o = & $this->objects[$id];
    }

    switch  ($action) {
    case  'new':
      $this->objects[$id] =  array('t'=>'fontGIDtoCIDMap', 'info'=>$options);
      break;

    case  'out':
      $res = "\n$id 0 obj\n";
      $fontFileName = $o['info']['fontFileName'];
      $tmp = $this->fonts[$fontFileName]['CIDtoGID'] = base64_decode($this->fonts[$fontFileName]['CIDtoGID']);
      
      $compressed = isset($this->fonts[$fontFileName]['CIDtoGID_Compressed']) &&
                    $this->fonts[$fontFileName]['CIDtoGID_Compressed'];

      if  (!$compressed && isset($o['raw'])) {
        $res.= $tmp;
      } else {
        $res.=  "<<";

        if  (!$compressed && $this->compressionReady && $this->options['compression']) {
          // then implement ZLIB based compression on this content stream
          $compressed = true;
          $tmp =  gzcompress($tmp,  6);
        }
        if ($compressed) {
          $res.= "\n/Filter /FlateDecode";
        }

        $res.= "\n/Length ".mb_strlen($tmp, '8bit') .">>\nstream\n$tmp\nendstream";
      }

      $res.= "\nendobj";
      return  $res;
    }
  }