nl_tokens: bind sliceThen () with file argument Config scanner according to dictionary attributes .
pl_tokens: function config ( ) { attrs . Encoding = attrs . Encoding || 'UTF-16' ; _searchTextLen = ( attrs . Encoding === 'UTF-16' ) ? function ( dv , offset ) { offset = offset ; var mark = offset ; while ( dv . getUint16 ( offset ++ ) ) { /* scan for NUL */ } ; return offset - mark ; } : function ( dv , offset ) { <mask> = offset ; var mark = offset ; while ( dv . getUint8 ( offset ++ ) ) { /* scan for NUL */ } return offset - mark - 1 ; } ; _decoder = new TextDecoder ( attrs . Encoding || 'UTF-16LE' ) ; _bpu = ( attrs . Encoding === 'UTF-16' ) ? 2 : 1 ; if ( parseInt ( attrs . GeneratedByEngineVersion , 10 ) >= 2.0 ) { _v2 = true ; _tail = _bpu ; // HUGE dictionary file (>4G) is not supported, take only lower 32-bit _readNum = function ( scanner ) { return scanner . forward ( 4 ) , scanner . readInt ( ) ; } ; _readShort = function ( scanner ) { return scanner . readUint16 ( ) ; } ; _checksum_v2 = function ( scanner ) { return scanner . checksum ( ) ; } ; } else { _tail = 0 ; } // keyword index decrypted? if ( attrs . Encrypted & 0x02 ) { _decryptors [ 1 ] = decrypt ; } var regexp = common . REGEXP_STRIPKEY [ ext ] ; if ( isTrue ( attrs . KeyCaseSensitive ) ) { _adaptKey = isTrue ( attrs . StripKey ) ? function ( key ) { return key . replace ( regexp , '$1' ) ; } : function ( key ) { return key ; } ; } else { _adaptKey = isTrue ( attrs . StripKey || ( _v2 ? '' : 'yes' ) ) ? function ( key ) { return key . toLowerCase ( ) . replace ( regexp , '$1' ) ; } : function ( key ) { return key . toLowerCase ( ) ; } ; } }