internal void readNextRange(int num, NgramTrieModel.TrieRange trieRange)
            {
                int num2 = num * this.totalBits;

                num2           += this.wordBits;
                num2           += this.getQuantBits();
                trieRange.begin = NgramTrie.access_100(this.this_0).readInt(this.memPtr, num2, this.nextMask);
                num2           += this.totalBits;
                trieRange.end   = NgramTrie.access_100(this.this_0).readInt(this.memPtr, num2, this.nextMask);
            }
            internal MiddleNgramSet(NgramTrie ngramTrie, int num, int num2, int num3, int num4, int num5) : base(ngramTrie, num, num4, num2 + NgramTrie.access_000(ngramTrie, num5))
            {
                this.nextMask = (1 << NgramTrie.access_000(ngramTrie, num5)) - 1;
                if (num3 + 1 >= 33554432 || num5 >= 33554432)
                {
                    string text = "Sorry, current implementation doesn't support more than 33554432 n-grams of particular order";

                    throw new Error(text);
                }
            }
            internal NgramSet(NgramTrie ngramTrie, int num, int num2, int num3)
            {
                this.this_0   = ngramTrie;
                this.maxVocab = num2;
                this.memPtr   = num;
                this.wordBits = NgramTrie.access_000(ngramTrie, num2);
                if (this.wordBits > 25)
                {
                    string text = "Sorry, word indices more than33554432 are not implemented";

                    throw new Error(text);
                }
                this.totalBits = this.wordBits + num3;
                this.wordMask  = (1 << this.wordBits) - 1;
                this.insertIdx = 0;
            }
 internal static int access_000(NgramTrie ngramTrie, int num)
 {
     return(ngramTrie.requiredBits(num));
 }
            internal virtual int readNgramWord(int num)
            {
                int bitOffset = num * this.totalBits;

                return(NgramTrie.access_100(this.this_0).readInt(this.memPtr, bitOffset, this.wordMask));
            }
 internal override int getQuantBits()
 {
     return(NgramTrie.access_200(this.this_0));
 }
 internal LongestNgramSet(NgramTrie ngramTrie, int num, int num2, int num3) : base(ngramTrie, num, num3, num2)
 {
 }
 internal static int access_200(NgramTrie ngramTrie)
 {
     return(ngramTrie.quantProbBoLen);
 }
 internal static NgramTrieBitarr access_100(NgramTrie ngramTrie)
 {
     return(ngramTrie.bitArr);
 }