public RabinKarp(string str)
 {
     this.pat = str;
     this.R   = 256;
     this.M   = java.lang.String.instancehelper_length(str);
     this.Q   = RabinKarp.longRandomPrime();
     this.RM  = 1L;
     for (int i = 1; i <= this.M - 1; i++)
     {
         long expr_54 = (long)this.R * this.RM;
         long expr_5B = this.Q;
         this.RM = ((expr_5B != -1L) ? (expr_54 % expr_5B) : 0L);
     }
     this.patHash = this.hash(str, this.M);
 }
        /**/
        public static void main(string[] strarr)
        {
            string text  = strarr[0];
            string text2 = strarr[1];

            java.lang.String.instancehelper_toCharArray(text);
            java.lang.String.instancehelper_toCharArray(text2);
            RabinKarp rabinKarp = new RabinKarp(text);
            int       num       = rabinKarp.search(text2);

            StdOut.println(new StringBuilder().append("text:    ").append(text2).toString());
            StdOut.print("pattern: ");
            for (int i = 0; i < num; i++)
            {
                StdOut.print(" ");
            }
            StdOut.println(text);
        }