text: (function (cornerstoneWADOImageLoader) {
  
    function checkToken(token, data, dataOffset) {
  
      if(dataOffset + token.length > data.length) {
        //console.log('dataOffset >> ', dataOffset);
        return false;
      }
  
      var endIndex = dataOffset;
  
      for(var i = 0; i < token.length; i++) {
        if(token[i] !== data[endIndex++]) {
          if(endIndex > 520000) {
            //console.log('token=',uint8ArrayToString(token));
            //console.log('data=', uint8ArrayToString(data, dataOffset, endIndex-dataOffset));
            //console.log('miss at %d %s dataOffset=%d', i, String.fromCharCode(data[endIndex]), endIndex);
            //console.log('miss at %d %s dataOffset=%d', i, String.fromCharCode(token[endIndex]), endIndex);
          }
          return false;
        }
      }
      return true;
    }
  
    function stringToUint8Array(str) {
      var uint=new Uint8Array(str.length);
      for(var i=0,j=str.length;i<j;i++){
        uint[i]=str.charCodeAt(i);
      }
      return uint;
    }
  
    function findIndexOfString(data, str, offset) {
  
      offset = offset || 0;
  
      var token = stringToUint8Array(str);
  
      for(var i=offset; i < data.length; i++) {
        if(token[0] === data[i]) {
          //console.log('match @', i);
          if(checkToken(token, data, i)) {
            return i;
          }
        }
      }
      return -1;
    }
    cornerstoneWADOImageLoader.internal.findIndexOfString = findIndexOfString;
  
  }(cornerstoneWADOImageLoader));