
(/VERSIONCHECK 2) 

(DEFUN |DDFACT;ranpol| (|d| $)
  (PROG (|k1| |j| #0=#:G1831 |u|)
    (RETURN
      (SEQ (LETT |k1| 0 . #1=(|DDFACT;ranpol|))
           (SEQ G190 (COND ((NULL (EQL |k1| 0)) #2=(GO G191)))
                (SEQ (EXIT (LETT |k1| (RANDOM |d|) . #1#))) NIL
                #3=(GO G190) G191 (EXIT NIL))
           (EXIT (COND
                   ((QREFELT $ 11)
                    (SEQ (LETT |u| (|spadConstant| $ 13) . #1#)
                         (SEQ (LETT |j| 1 . #1#) G190
                              (COND ((QSGREATERP |j| |k1|) #2#))
                              (SEQ (EXIT
                                    (LETT |u|
                                     (SPADCALL |u|
                                      (SPADCALL
                                       (SPADCALL (QREFELT $ 14)) |j|
                                       (QREFELT $ 15))
                                      (QREFELT $ 16)) . #1#)))
                              (LETT |j| (QSADD1 |j|) . #1#) #3# G191
                              (EXIT NIL))
                         (EXIT |u|)))
                   ('T
                    (SEQ (LETT |u|
                               (SPADCALL (|spadConstant| $ 17) |k1|
                                   (QREFELT $ 15)) . #1#)
                         (SEQ (LETT |j| 0 . #1#)
                              (LETT #0# (- |k1| 1) . #1#) G190
                              (COND ((QSGREATERP |j| #0#) #2#))
                              (SEQ (EXIT
                                    (LETT |u|
                                     (SPADCALL |u|
                                      (SPADCALL
                                       (SPADCALL (QREFELT $ 14)) |j|
                                       (QREFELT $ 15))
                                      (QREFELT $ 16)) . #1#)))
                              (LETT |j| (QSADD1 |j|) . #1#) #3# G191
                              (EXIT NIL))
                         (EXIT |u|))))))))) 

(DEFUN |DDFACT;notSqFr| (|m| |appl| $)
  (PROG (|lcm| |llf| |lf| #0=#:G1849 |d1| |lcp| |pol| |fln| #1=#:G1850
               |pf| #2=#:G1851 |factlist|)
    (RETURN
      (SEQ (LETT |factlist| NIL . #3=(|DDFACT;notSqFr|))
           (LETT |fln| NIL . #3#)
           (SEQ (LETT |lcm| (SPADCALL |m| (QREFELT $ 19)) . #3#)
                (EXIT (COND
                        ((NULL (SPADCALL |lcm| (|spadConstant| $ 17)
                                   (QREFELT $ 21)))
                         (LETT |m|
                               (SPADCALL
                                   (SPADCALL |lcm| (QREFELT $ 22)) |m|
                                   (QREFELT $ 23)) . #3#)))))
           (LETT |llf|
                 (SPADCALL (SPADCALL |m| (QREFELT $ 25))
                     (QREFELT $ 30)) . #3#)
           (SEQ (LETT |lf| NIL . #3#) (LETT #0# |llf| . #3#) G190
                (COND
                  ((OR (ATOM #0#)
                       (PROGN (LETT |lf| (CAR #0#) . #3#) NIL))
                   #4=(GO G191)))
                (SEQ (LETT |d1| (QVELT |lf| 2) . #3#)
                     (LETT |pol| (QVELT |lf| 1) . #3#)
                     (SEQ (LETT |lcp|
                                (SPADCALL |pol| (QREFELT $ 19)) . #3#)
                          (EXIT (COND
                                  ((NULL
                                    (SPADCALL |lcp|
                                     (|spadConstant| $ 17)
                                     (QREFELT $ 21)))
                                   (LETT |pol|
                                    (SPADCALL
                                     (SPADCALL |lcp| (QREFELT $ 22))
                                     |pol| (QREFELT $ 23)) . #3#)))))
                     (EXIT (COND
                             ((EQL (SPADCALL |pol| (QREFELT $ 31)) 1)
                              (LETT |factlist|
                                    (CONS (CONS |pol| |d1|) |factlist|) . #3#))
                             ('T
                              (SEQ (LETT |fln|
                                    (SPADCALL |pol| |appl|) . #3#)
                                   (EXIT
                                    (LETT |factlist|
                                     (APPEND
                                      (PROGN
                                        (LETT #1# NIL . #3#)
                                        (SEQ (LETT |pf| NIL . #3#)
                                         (LETT #2# |fln| . #3#) G190
                                         (COND
                                           ((OR (ATOM #2#)
                                             (PROGN
                                               (LETT |pf|
                                                (CAR #2#) . #3#)
                                               NIL))
                                            #4#))
                                         (SEQ
                                          (EXIT
                                           (LETT #1#
                                            (CONS (CONS |pf| |d1|) #1#) . #3#)))
                                         (LETT #2# (CDR #2#) . #3#)
                                         #5=(GO G190) G191
                                         (EXIT (NREVERSE0 #1#))))
                                      |factlist|) . #3#)))))))
                (LETT #0# (CDR #0#) . #3#) #5# G191 (EXIT NIL))
           (EXIT |factlist|))))) 

(DEFUN |DDFACT;exptMod;FPNni2FP;3| (|u| |k| |v| $)
  (SPADCALL (SPADCALL (SPADCALL |u| (QREFELT $ 32)) |k| (QREFELT $ 33))
      |v| (QREFELT $ 34))) 

(DEFUN |DDFACT;trace2PowMod;FPNni2FP;4| (|u| |k| |v| $)
  (PROG (|i| |uu|)
    (RETURN
      (SEQ (LETT |uu| |u| . #0=(|DDFACT;trace2PowMod;FPNni2FP;4|))
           (SEQ (LETT |i| 1 . #0#) G190
                (COND ((QSGREATERP |i| |k|) (GO G191)))
                (SEQ (EXIT (LETT |uu|
                                 (SPADCALL
                                     (SPADCALL |u|
                                      (SPADCALL |uu| |uu|
                                       (QREFELT $ 36))
                                      (QREFELT $ 16))
                                     |v| (QREFELT $ 34)) . #0#)))
                (LETT |i| (QSADD1 |i|) . #0#) (GO G190) G191
                (EXIT NIL))
           (EXIT |uu|))))) 

(DEFUN |DDFACT;tracePowMod;FPNni2FP;5| (|u| |k| |v| $)
  (PROG (|u1| |i| |uu|)
    (RETURN
      (SEQ (LETT |u1| (SPADCALL |u| (QREFELT $ 32))
                 . #0=(|DDFACT;tracePowMod;FPNni2FP;5|))
           (LETT |uu| |u1| . #0#)
           (SEQ (LETT |i| 1 . #0#) G190
                (COND ((QSGREATERP |i| |k|) (GO G191)))
                (SEQ (EXIT (LETT |uu|
                                 (SPADCALL |u1|
                                     (SPADCALL |uu| (QREFELT $ 38))
                                     (QREFELT $ 39)) . #0#)))
                (LETT |i| (QSADD1 |i|) . #0#) (GO G190) G191
                (EXIT NIL))
           (EXIT (SPADCALL (SPADCALL |uu| (QREFELT $ 40)) |v|
                     (QREFELT $ 34))))))) 

(DEFUN |DDFACT;normPowMod| (|u| |k| |v| $)
  (PROG (|u1| |i| |uu|)
    (RETURN
      (SEQ (LETT |u1| (SPADCALL |u| (QREFELT $ 32))
                 . #0=(|DDFACT;normPowMod|))
           (LETT |uu| |u1| . #0#)
           (SEQ (LETT |i| 1 . #0#) G190
                (COND ((QSGREATERP |i| |k|) (GO G191)))
                (SEQ (EXIT (LETT |uu|
                                 (SPADCALL |u1|
                                     (SPADCALL |uu| (QREFELT $ 38))
                                     (QREFELT $ 42)) . #0#)))
                (LETT |i| (QSADD1 |i|) . #0#) (GO G190) G191
                (EXIT NIL))
           (EXIT (SPADCALL (SPADCALL |uu| (QREFELT $ 40)) |v|
                     (QREFELT $ 34))))))) 

(DEFUN |DDFACT;ddffact1| (|m| |testirr| $)
  (PROG (|p| |mon| |k1| |v| |dg| |g| |ddfact| |u| |du| #0=#:G1870)
    (RETURN
      (SEQ (EXIT (SEQ (LETT |p| (SPADCALL (QREFELT $ 43))
                            . #1=(|DDFACT;ddffact1|))
                      (LETT |dg| 0 . #1#) (LETT |ddfact| NIL . #1#)
                      (LETT |u| |m| . #1#)
                      (LETT |du| (SPADCALL |u| (QREFELT $ 31)) . #1#)
                      (SPADCALL |u| (QREFELT $ 44))
                      (LETT |mon|
                            (SPADCALL (|spadConstant| $ 17) 1
                                (QREFELT $ 15)) . #1#)
                      (LETT |v| |mon| . #1#)
                      (SEQ (LETT |k1| 1 . #1#) G190
                           (COND
                             ((NULL (COND
                                      ((< (QUOTIENT2 |du| 2) |k1|)
                                       'NIL)
                                      ('T 'T)))
                              (GO G191)))
                           (SEQ (LETT |v|
                                      (SPADCALL
                                       (SPADCALL
                                        (SPADCALL |v| (QREFELT $ 32))
                                        (QREFELT $ 38))
                                       (QREFELT $ 40)) . #1#)
                                (LETT |g|
                                      (SPADCALL
                                       (SPADCALL |v| |mon|
                                        (QREFELT $ 45))
                                       |u| (QREFELT $ 46)) . #1#)
                                (LETT |dg|
                                      (SPADCALL |g| (QREFELT $ 31)) . #1#)
                                (EXIT (COND
                                        ((EQL |dg| 0) "next k1")
                                        ('T
                                         (SEQ
                                          (COND
                                            ((NULL
                                              (SPADCALL
                                               (SPADCALL |g|
                                                (QREFELT $ 19))
                                               (|spadConstant| $ 17)
                                               (QREFELT $ 21)))
                                             (LETT |g|
                                              (SPADCALL
                                               (SPADCALL
                                                (SPADCALL |g|
                                                 (QREFELT $ 19))
                                                (QREFELT $ 22))
                                               |g| (QREFELT $ 23)) . #1#)))
                                          (LETT |ddfact|
                                           (CONS (CONS |k1| |g|)
                                            |ddfact|) . #1#)
                                          (EXIT
                                           (COND
                                             (|testirr|
                                              (PROGN
                                                (LETT #0#
                                                 |ddfact| . #1#)
                                                (GO #0#)))
                                             ('T
                                              (SEQ
                                               (LETT |u|
                                                (SPADCALL |u| |g|
                                                 (QREFELT $ 47)) . #1#)
                                               (LETT |du|
                                                (SPADCALL |u|
                                                 (QREFELT $ 31)) . #1#)
                                               (EXIT
                                                (COND
                                                  ((EQL |du| 0)
                                                   (PROGN
                                                     (LETT #0#
                                                      |ddfact| . #1#)
                                                     (GO #0#)))
                                                  ('T
                                                   (SPADCALL |u|
                                                    (QREFELT $ 44))))))))))))))
                           (LETT |k1| (QSADD1 |k1|) . #1#) (GO G190)
                           G191 (EXIT NIL))
                      (EXIT (CONS (CONS |du| |u|) |ddfact|))))
           #0# (EXIT #0#))))) 

(DEFUN |DDFACT;irreducible?;FPB;8| (|m| $)
  (PROG (|mf|)
    (RETURN
      (SEQ (LETT |mf| (|SPADfirst| (|DDFACT;ddffact1| |m| 'T $))
                 |DDFACT;irreducible?;FPB;8|)
           (EXIT (EQL (SPADCALL |m| (QREFELT $ 31)) (QCAR |mf|))))))) 

(DEFUN |DDFACT;separateDegrees;FPL;9| (|m| $)
  (|DDFACT;ddffact1| |m| 'NIL $)) 

(DEFUN |DDFACT;separateFactors;LL;10| (|distf| $)
  (PROG (|ddfact| |p1| |n1| |ffprod| #0=#:G1889 |fprod| |d| #1=#:G1877
            #2=#:G1878 |t| |u| #3=#:G1890 |g| |dg| |v| |ris| |newaux|
            |aux|)
    (RETURN
      (SEQ (LETT |ddfact| |distf|
                 . #4=(|DDFACT;separateFactors;LL;10|))
           (LETT |p1| (SPADCALL (QREFELT $ 43)) . #4#)
           (COND
             ((QREFELT $ 11)
              (LETT |n1| (- (INTEGER-LENGTH |p1|) 1) . #4#)))
           (LETT |ris| NIL . #4#)
           (SEQ (LETT |ffprod| NIL . #4#) (LETT #0# |ddfact| . #4#)
                G190
                (COND
                  ((OR (ATOM #0#)
                       (PROGN (LETT |ffprod| (CAR #0#) . #4#) NIL))
                   #5=(GO G191)))
                (SEQ (LETT |fprod| (QCDR |ffprod|) . #4#)
                     (LETT |d| (QCAR |ffprod|) . #4#)
                     (EXIT (COND
                             ((EQL (SPADCALL |fprod| (QREFELT $ 31))
                                   |d|)
                              (LETT |ris| (CONS |fprod| |ris|) . #4#))
                             ('T
                              (SEQ (LETT |aux| (LIST |fprod|) . #4#)
                                   (SPADCALL |fprod| (QREFELT $ 44))
                                   (EXIT
                                    (SEQ G190
                                     (COND
                                       ((NULL
                                         (COND
                                           ((NULL |aux|) 'NIL)
                                           ('T 'T)))
                                        #5#))
                                     (SEQ
                                      (LETT |t|
                                       (|DDFACT;ranpol|
                                        (SPADCALL 2 |d| (QREFELT $ 53))
                                        $) . #4#)
                                      (COND
                                        ((QREFELT $ 11)
                                         (LETT |t|
                                          (SPADCALL |t|
                                           (PROG1
                                            (LETT #1#
                                             (- (* |n1| |d|) 1) . #4#)
                                             (|check-subtype|
                                              (>= #1# 0)
                                              '(|NonNegativeInteger|)
                                              #1#))
                                           |fprod| (QREFELT $ 37)) . #4#))
                                        ('T
                                         (LETT |t|
                                          (SPADCALL
                                           (SPADCALL
                                            (SPADCALL |t|
                                             (PROG1
                                              (LETT #2#
                                               (- |d| 1) . #4#)
                                               (|check-subtype|
                                                (>= #2# 0)
                                                '(|NonNegativeInteger|)
                                                #2#))
                                             |fprod| (QREFELT $ 41))
                                            (QUOTIENT2 |p1| 2) |fprod|
                                            (QREFELT $ 35))
                                           (|spadConstant| $ 18)
                                           (QREFELT $ 45)) . #4#)))
                                      (LETT |newaux| NIL . #4#)
                                      (SEQ (LETT |u| NIL . #4#)
                                       (LETT #3# |aux| . #4#) G190
                                       (COND
                                         ((OR (ATOM #3#)
                                           (PROGN
                                             (LETT |u| (CAR #3#) . #4#)
                                             NIL))
                                          #5#))
                                       (SEQ
                                        (LETT |g|
                                         (SPADCALL |u| |t|
                                          (QREFELT $ 46)) . #4#)
                                        (LETT |dg|
                                         (SPADCALL |g| (QREFELT $ 31)) . #4#)
                                        (COND
                                          ((OR (EQL |dg| 0)
                                            (EQL |dg|
                                             (SPADCALL |u|
                                              (QREFELT $ 31))))
                                           (EXIT
                                            (LETT |newaux|
                                             (CONS |u| |newaux|) . #4#))))
                                        (LETT |v|
                                         (SPADCALL |u| |g|
                                          (QREFELT $ 47)) . #4#)
                                        (COND
                                          ((EQL |dg| |d|)
                                           (LETT |ris|
                                            (CONS
                                             (SPADCALL
                                              (SPADCALL
                                               (SPADCALL |g|
                                                (QREFELT $ 19))
                                               (QREFELT $ 22))
                                              |g| (QREFELT $ 23))
                                             |ris|) . #4#))
                                          ('T
                                           (LETT |newaux|
                                            (CONS |g| |newaux|) . #4#)))
                                        (EXIT
                                         (COND
                                           ((EQL
                                             (SPADCALL |v|
                                              (QREFELT $ 31))
                                             |d|)
                                            (LETT |ris|
                                             (CONS
                                              (SPADCALL
                                               (SPADCALL
                                                (SPADCALL |v|
                                                 (QREFELT $ 19))
                                                (QREFELT $ 22))
                                               |v| (QREFELT $ 23))
                                              |ris|) . #4#))
                                           ('T
                                            (LETT |newaux|
                                             (CONS |v| |newaux|) . #4#)))))
                                       (LETT #3# (CDR #3#) . #4#)
                                       #6=(GO G190) G191 (EXIT NIL))
                                      (EXIT
                                       (LETT |aux| |newaux| . #4#)))
                                     NIL #6# G191 (EXIT NIL))))))))
                (LETT #0# (CDR #0#) . #4#) #6# G191 (EXIT NIL))
           (EXIT |ris|))))) 

(DEFUN |DDFACT;ddffact| (|m| $)
  (PROG (|ddfact|)
    (RETURN
      (SEQ (LETT |ddfact| (|DDFACT;ddffact1| |m| 'NIL $)
                 |DDFACT;ddffact|)
           (EXIT (COND
                   ((NULL |ddfact|) (LIST |m|))
                   ('T (SPADCALL |ddfact| (QREFELT $ 55))))))))) 

(DEFUN |DDFACT;distdfact;FPBR;12| (|m| |test| $)
  (PROG (|lcm| |d| |fln| #0=#:G1906 |pol| #1=#:G1907 |factlist|)
    (RETURN
      (SEQ (LETT |factlist| NIL . #2=(|DDFACT;distdfact;FPBR;12|))
           (LETT |fln| NIL . #2#)
           (SEQ (LETT |lcm| (SPADCALL |m| (QREFELT $ 19)) . #2#)
                (EXIT (COND
                        ((NULL (SPADCALL |lcm| (|spadConstant| $ 17)
                                   (QREFELT $ 21)))
                         (LETT |m|
                               (SPADCALL
                                   (SPADCALL |lcm| (QREFELT $ 22)) |m|
                                   (QREFELT $ 23)) . #2#)))))
           (SEQ (LETT |d| (SPADCALL |m| (QREFELT $ 56)) . #2#)
                (EXIT (COND
                        ((< 0 |d|)
                         (SEQ (LETT |m|
                                    (QCAR
                                     (SPADCALL |m|
                                      (SPADCALL (|spadConstant| $ 17)
                                       |d| (QREFELT $ 15))
                                      (QREFELT $ 63))) . #2#)
                              (EXIT (LETT |factlist|
                                     (LIST
                                      (CONS
                                       (SPADCALL (|spadConstant| $ 17)
                                        1 (QREFELT $ 15))
                                       |d|)) . #2#)))))))
           (LETT |d| (SPADCALL |m| (QREFELT $ 31)) . #2#)
           (EXIT (COND
                   ((EQL |d| 0) (CONS |lcm| |factlist|))
                   ((EQL |d| 1)
                    (CONS |lcm| (CONS (CONS |m| |d|) |factlist|)))
                   (|test| (SEQ (LETT |fln|
                                      (|DDFACT;ddffact| |m| $) . #2#)
                                (LETT |factlist|
                                      (APPEND
                                       (PROGN
                                         (LETT #0# NIL . #2#)
                                         (SEQ (LETT |pol| NIL . #2#)
                                          (LETT #1# |fln| . #2#) G190
                                          (COND
                                            ((OR (ATOM #1#)
                                              (PROGN
                                                (LETT |pol|
                                                 (CAR #1#) . #2#)
                                                NIL))
                                             (GO G191)))
                                          (SEQ
                                           (EXIT
                                            (LETT #0#
                                             (CONS (CONS |pol| 1) #0#) . #2#)))
                                          (LETT #1# (CDR #1#) . #2#)
                                          (GO G190) G191
                                          (EXIT (NREVERSE0 #0#))))
                                       |factlist|) . #2#)
                                (EXIT (CONS |lcm| |factlist|))))
                   ('T
                    (SEQ (LETT |factlist|
                               (APPEND (|DDFACT;notSqFr| |m|
                                        (CONS
                                         (|function| |DDFACT;ddffact|)
                                         $)
                                        $)
                                       |factlist|) . #2#)
                         (EXIT (CONS |lcm| |factlist|)))))))))) 

(DEFUN |DDFACT;factor;FPF;13| (|m| $)
  (PROG (|flist| #0=#:G1918 |u| #1=#:G1919)
    (RETURN
      (SEQ (COND
             ((SPADCALL |m| (|spadConstant| $ 13) (QREFELT $ 67))
              (|spadConstant| $ 68))
             ('T
              (SEQ (LETT |flist| (SPADCALL |m| 'NIL (QREFELT $ 66))
                         . #2=(|DDFACT;factor;FPF;13|))
                   (EXIT (SPADCALL
                             (SPADCALL (QCAR |flist|) (QREFELT $ 69))
                             (PROGN
                               (LETT #0# NIL . #2#)
                               (SEQ (LETT |u| NIL . #2#)
                                    (LETT #1# (QCDR |flist|) . #2#)
                                    G190
                                    (COND
                                      ((OR (ATOM #1#)
                                        (PROGN
                                          (LETT |u| (CAR #1#) . #2#)
                                          NIL))
                                       (GO G191)))
                                    (SEQ
                                     (EXIT
                                      (LETT #0#
                                       (CONS
                                        (VECTOR (CONS 3 "prime")
                                         (QCAR |u|) (QCDR |u|))
                                        #0#) . #2#)))
                                    (LETT #1# (CDR #1#) . #2#)
                                    (GO G190) G191
                                    (EXIT (NREVERSE0 #0#))))
                             (QREFELT $ 72)))))))))) 

(DEFUN |DDFACT;factorSquareFree;FPF;14| (|m| $)
  (PROG (|flist| #0=#:G1930 |u| #1=#:G1931)
    (RETURN
      (SEQ (COND
             ((SPADCALL |m| (|spadConstant| $ 13) (QREFELT $ 67))
              (|spadConstant| $ 68))
             ('T
              (SEQ (LETT |flist| (SPADCALL |m| 'T (QREFELT $ 66))
                         . #2=(|DDFACT;factorSquareFree;FPF;14|))
                   (EXIT (SPADCALL
                             (SPADCALL (QCAR |flist|) (QREFELT $ 69))
                             (PROGN
                               (LETT #0# NIL . #2#)
                               (SEQ (LETT |u| NIL . #2#)
                                    (LETT #1# (QCDR |flist|) . #2#)
                                    G190
                                    (COND
                                      ((OR (ATOM #1#)
                                        (PROGN
                                          (LETT |u| (CAR #1#) . #2#)
                                          NIL))
                                       (GO G191)))
                                    (SEQ
                                     (EXIT
                                      (LETT #0#
                                       (CONS
                                        (VECTOR (CONS 3 "prime")
                                         (QCAR |u|) (QCDR |u|))
                                        #0#) . #2#)))
                                    (LETT #1# (CDR #1#) . #2#)
                                    (GO G190) G191
                                    (EXIT (NREVERSE0 #0#))))
                             (QREFELT $ 72)))))))))) 

(DEFUN |DistinctDegreeFactorize| (&REST #0=#:G1932)
  (PROG ()
    (RETURN
      (PROG (#1=#:G1933)
        (RETURN
          (COND
            ((LETT #1#
                   (|lassocShiftWithFunction| (|devaluateList| #0#)
                       (HGET |$ConstructorCache|
                             '|DistinctDegreeFactorize|)
                       '|domainEqualList|)
                   . #2=(|DistinctDegreeFactorize|))
             (|CDRwithIncrement| #1#))
            ('T
             (UNWIND-PROTECT
               (PROG1 (APPLY (|function| |DistinctDegreeFactorize;|)
                             #0#)
                 (LETT #1# T . #2#))
               (COND
                 ((NOT #1#)
                  (HREM |$ConstructorCache| '|DistinctDegreeFactorize|))))))))))) 

(DEFUN |DistinctDegreeFactorize;| (|#1| |#2|)
  (PROG (DV$1 DV$2 |dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|) . #0=(|DistinctDegreeFactorize|))
        (LETT DV$2 (|devaluate| |#2|) . #0#)
        (LETT |dv$| (LIST '|DistinctDegreeFactorize| DV$1 DV$2) . #0#)
        (LETT $ (GETREFV 75) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
        (|haddProp| |$ConstructorCache| '|DistinctDegreeFactorize|
            (LIST DV$1 DV$2) (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7 |#2|)
        (QSETREFV $ 8 (|ModMonic| |#1| |#2|))
        (QSETREFV $ 11 (EQL (SPADCALL (QREFELT $ 10)) 2))
        $)))) 

(MAKEPROP '|DistinctDegreeFactorize| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) 'D
             (|NonNegativeInteger|) (0 . |characteristic|) '|charF|
             (4 . |Zero|) (8 . |Zero|) (12 . |random|)
             (16 . |monomial|) (22 . +) (28 . |One|) (32 . |One|)
             (36 . |leadingCoefficient|) (|Boolean|) (41 . =)
             (47 . |inv|) (52 . *) (|Factored| $) (58 . |squareFree|)
             (|Union| '"nil" '"sqfr" '"irred" '"prime")
             (|Record| (|:| |flg| 26) (|:| |fctr| 7)
                 (|:| |xpnt| (|Integer|)))
             (|List| 27) (|Factored| 7) (63 . |factorList|)
             (68 . |degree|) (73 . |reduce|) (78 . **) (84 . |rem|)
             |DDFACT;exptMod;FPNni2FP;3| (90 . *)
             |DDFACT;trace2PowMod;FPNni2FP;4| (96 . |frobenius|)
             (101 . +) (107 . |lift|) |DDFACT;tracePowMod;FPNni2FP;5|
             (112 . *) (118 . |size|) (122 . |setPoly|) (127 . -)
             (133 . |gcd|) (139 . |quo|) |DDFACT;irreducible?;FPB;8|
             (|Record| (|:| |deg| 9) (|:| |prod| 7)) (|List| 49)
             |DDFACT;separateDegrees;FPL;9| (|PositiveInteger|)
             (145 . *) (|List| 7) |DDFACT;separateFactors;LL;10|
             (151 . |minimumDegree|) (156 . |Zero|)
             (|Fraction| (|Integer|)) (160 . |Zero|) (|ModMonic| 6 7)
             (164 . |Zero|)
             (|Record| (|:| |quotient| $) (|:| |remainder| $))
             (168 . |monicDivide|)
             (|Record| (|:| |irr| 7) (|:| |pow| (|Integer|)))
             (|Record| (|:| |cont| 6) (|:| |factors| (|List| 64)))
             |DDFACT;distdfact;FPBR;12| (174 . =) (180 . |Zero|)
             (184 . |coerce|) (|PrimitiveArray| $) (189 . |pow|)
             (193 . |makeFR|) |DDFACT;factor;FPF;13|
             |DDFACT;factorSquareFree;FPF;14|)
          '#(|tracePowMod| 199 |trace2PowMod| 206 |separateFactors| 213
             |separateDegrees| 218 |irreducible?| 223
             |factorSquareFree| 228 |factor| 233 |exptMod| 238
             |distdfact| 245)
          'NIL
          (CONS (|makeByteWordVec2| 1 'NIL)
                (CONS '#()
                      (CONS '#()
                            (|makeByteWordVec2| 74
                                '(0 6 9 10 0 6 0 12 0 7 0 13 0 6 0 14 2
                                  7 0 6 9 15 2 7 0 0 0 16 0 6 0 17 0 7
                                  0 18 1 7 6 0 19 2 6 20 0 0 21 1 6 0 0
                                  22 2 7 0 6 0 23 1 7 24 0 25 1 29 28 0
                                  30 1 7 9 0 31 1 8 0 7 32 2 8 0 0 9 33
                                  2 7 0 0 0 34 2 7 0 0 0 36 1 8 0 0 38
                                  2 8 0 0 0 39 1 8 7 0 40 2 8 0 0 0 42
                                  0 6 9 43 1 8 7 7 44 2 7 0 0 0 45 2 7
                                  0 0 0 46 2 7 0 0 0 47 2 9 0 52 0 53 1
                                  7 9 0 56 0 8 0 57 0 58 0 59 0 60 0 61
                                  2 7 62 0 0 63 2 7 20 0 0 67 0 29 0 68
                                  1 7 0 6 69 0 8 70 71 2 29 0 7 28 72 3
                                  0 7 7 9 7 41 3 0 7 7 9 7 37 1 0 54 50
                                  55 1 0 50 7 51 1 0 20 7 48 1 0 29 7
                                  74 1 0 29 7 73 3 0 7 7 9 7 35 2 0 65
                                  7 20 66)))))
          '|lookupComplete|)) 
