
(/VERSIONCHECK 2) 

(DEFUN |MFINFACT;convertPUP| (|lfg| $)
  (PROG (#1=#:G702 |lff| #2=#:G701)
    (RETURN
     (SEQ
      (CONS (QCAR |lfg|)
            (PROGN
             (LETT #2# NIL . #3=(|MFINFACT;convertPUP|))
             (SEQ (LETT |lff| NIL . #3#) (LETT #1# (QCDR |lfg|) . #3#) G190
                  (COND
                   ((OR (ATOM #1#) (PROGN (LETT |lff| (CAR #1#) . #3#) NIL))
                    (GO G191)))
                  (SEQ
                   (EXIT
                    (LETT #2#
                          (CONS
                           (CONS (SPADCALL (QCAR |lff|) (QREFELT $ 13))
                                 (QCDR |lff|))
                           #2#)
                          . #3#)))
                  (LETT #1# (CDR #1#) . #3#) (GO G190) G191
                  (EXIT (NREVERSE0 #2#))))))))) 

(DEFUN |MFINFACT;supFactor| (|um| |dx| $)
  (PROG (#1=#:G738 |lcfacs| #2=#:G733 #3=#:G732 #4=#:G734 #5=#:G736 #6=#:G752
         |f| |factorlist| |auxfl| #7=#:G751 |lfp| #8=#:G750 |lf| |ldeg|
         #9=#:G725 #10=#:G724 #11=#:G726 #12=#:G749 |fc| #13=#:G748 |xx|
         #14=#:G747 |coefs| |ffcont| |ffexp| |ffactor| #15=#:G746 |fact|
         |sqqfact| #16=#:G745 |ff| #17=#:G744 |flead| |lcont| |sqfacs| |om|
         #18=#:G742 |lfg| #19=#:G712 |f1| |mdeg| |lvar| #20=#:G705 #21=#:G704
         #22=#:G706 #23=#:G743 |cf|)
    (RETURN
     (SEQ
      (EXIT
       (COND
        ((EQL (SPADCALL |um| (QREFELT $ 15)) 0)
         (|MFINFACT;convertPUP|
          (|MFINFACT;mFactor| (SPADCALL |um| (QREFELT $ 16)) |dx| $) $))
        (#24='T
         (SEQ
          (LETT |lvar|
                (PROGN
                 (LETT #20# NIL . #25=(|MFINFACT;supFactor|))
                 (SEQ (LETT |cf| NIL . #25#)
                      (LETT #23# (SPADCALL |um| (QREFELT $ 18)) . #25#) G190
                      (COND
                       ((OR (ATOM #23#)
                            (PROGN (LETT |cf| (CAR #23#) . #25#) NIL))
                        #26=(GO G191)))
                      (SEQ
                       (EXIT
                        (PROGN
                         (LETT #22# (SPADCALL |cf| (QREFELT $ 20)) . #25#)
                         (COND
                          (#20#
                           (LETT #21# (SPADCALL #21# #22# (QREFELT $ 21))
                                 . #25#))
                          ('T
                           (PROGN
                            (LETT #21# #22# . #25#)
                            (LETT #20# 'T . #25#)))))))
                      (LETT #23# (CDR #23#) . #25#) #27=(GO G190) G191
                      (EXIT NIL))
                 (COND (#20# #21#) (#24# (|IdentityError| '|setUnion|))))
                . #25#)
          (LETT |flead| (CONS (|spadConstant| $ 25) NIL) . #25#)
          (LETT |factorlist| NIL . #25#)
          (LETT |mdeg| (SPADCALL |um| (QREFELT $ 26)) . #25#)
          (COND
           ((< 0 |mdeg|)
            (SEQ
             (LETT |f1| (SPADCALL (|spadConstant| $ 32) |mdeg| (QREFELT $ 33))
                   . #25#)
             (LETT |um|
                   (PROG2
                       (LETT #19# (SPADCALL |um| |f1| (QREFELT $ 35)) . #25#)
                       (QCDR #19#)
                     (|check-union| (QEQCAR #19# 0)
                                    (|SparseUnivariatePolynomial|
                                     (|SparseMultivariatePolynomial|
                                      (|SparseUnivariatePolynomial|
                                       (QREFELT $ 8))
                                      (QREFELT $ 6)))
                                    #19#))
                   . #25#)
             (LETT |factorlist|
                   (CONS
                    (CONS (SPADCALL (|spadConstant| $ 32) 1 (QREFELT $ 33))
                          |mdeg|)
                    |factorlist|)
                   . #25#)
             (EXIT
              (COND
               ((EQL (SPADCALL |um| (QREFELT $ 15)) 0)
                (PROGN
                 (LETT #18#
                       (SEQ
                        (LETT |lfg|
                              (|MFINFACT;convertPUP|
                               (|MFINFACT;mFactor|
                                (SPADCALL |um| (QREFELT $ 16)) |dx| $)
                               $)
                              . #25#)
                        (EXIT
                         (CONS (QCAR |lfg|)
                               (APPEND |factorlist| (QCDR |lfg|)))))
                       . #25#)
                 (GO #18#))))))))
          (LETT |om|
                (SPADCALL
                 (CONS #'|MFINFACT;supFactor!0| (VECTOR $ (QREFELT $ 10))) |um|
                 (QREFELT $ 39))
                . #25#)
          (LETT |sqfacs| (SPADCALL |om| (QREFELT $ 41)) . #25#)
          (LETT |lcont|
                (SPADCALL
                 (CONS #'|MFINFACT;supFactor!1| (VECTOR $ (QREFELT $ 10)))
                 (SPADCALL |sqfacs| (QREFELT $ 43)) (QREFELT $ 46))
                . #25#)
          (COND
           ((SPADCALL |lcont| (QREFELT $ 48))
            (LETT |flead|
                  (|MFINFACT;convertPUP|
                   (|MFINFACT;constantCase| (SPADCALL |lcont| (QREFELT $ 16))
                    NIL $)
                   $)
                  . #25#))
           (#24# (LETT |flead| (|MFINFACT;supFactor| |lcont| |dx| $) . #25#)))
          (LETT |factorlist| (QCDR |flead|) . #25#)
          (LETT |sqqfact|
                (PROGN
                 (LETT #17# NIL . #25#)
                 (SEQ (LETT |ff| NIL . #25#)
                      (LETT #16# (SPADCALL |sqfacs| (QREFELT $ 51)) . #25#)
                      G190
                      (COND
                       ((OR (ATOM #16#)
                            (PROGN (LETT |ff| (CAR #16#) . #25#) NIL))
                        #26#))
                      (SEQ
                       (EXIT
                        (LETT #17#
                              (CONS
                               (CONS
                                (SPADCALL
                                 (CONS #'|MFINFACT;supFactor!2|
                                       (VECTOR $ (QREFELT $ 10)))
                                 (QCAR |ff|) (QREFELT $ 46))
                                (QCDR |ff|))
                               #17#)
                              . #25#)))
                      (LETT #16# (CDR #16#) . #25#) #27# G191
                      (EXIT (NREVERSE0 #17#))))
                . #25#)
          (SEQ (LETT |fact| NIL . #25#) (LETT #15# |sqqfact| . #25#) G190
               (COND
                ((OR (ATOM #15#) (PROGN (LETT |fact| (CAR #15#) . #25#) NIL))
                 #26#))
               (SEQ (LETT |ffactor| (QCAR |fact|) . #25#)
                    (LETT |ffexp| (QCDR |fact|) . #25#)
                    (LETT |ffcont| (SPADCALL |ffactor| (QREFELT $ 52)) . #25#)
                    (LETT |coefs| (SPADCALL |ffactor| (QREFELT $ 18)) . #25#)
                    (LETT |ldeg|
                          (PROGN
                           (LETT #14# NIL . #25#)
                           (SEQ (LETT |xx| NIL . #25#)
                                (LETT #13# |lvar| . #25#) G190
                                (COND
                                 ((OR (ATOM #13#)
                                      (PROGN
                                       (LETT |xx| (CAR #13#) . #25#)
                                       NIL))
                                  #26#))
                                (SEQ
                                 (EXIT
                                  (LETT #14#
                                        (CONS
                                         (PROGN
                                          (LETT #9# NIL . #25#)
                                          (SEQ (LETT |fc| NIL . #25#)
                                               (LETT #12# |coefs| . #25#) G190
                                               (COND
                                                ((OR (ATOM #12#)
                                                     (PROGN
                                                      (LETT |fc| (CAR #12#)
                                                            . #25#)
                                                      NIL))
                                                 #26#))
                                               (SEQ
                                                (EXIT
                                                 (PROGN
                                                  (LETT #11#
                                                        (SPADCALL |fc| |xx|
                                                                  (QREFELT $
                                                                           53))
                                                        . #25#)
                                                  (COND
                                                   (#9#
                                                    (LETT #10# (MAX #10# #11#)
                                                          . #25#))
                                                   ('T
                                                    (PROGN
                                                     (LETT #10# #11# . #25#)
                                                     (LETT #9# 'T . #25#)))))))
                                               (LETT #12# (CDR #12#) . #25#)
                                               #27# G191 (EXIT NIL))
                                          (COND (#9# #10#)
                                                ('T (|IdentityError| '|max|))))
                                         #14#)
                                        . #25#)))
                                (LETT #13# (CDR #13#) . #25#) #27# G191
                                (EXIT (NREVERSE0 #14#))))
                          . #25#)
                    (COND
                     ((SPADCALL (SPADCALL |ffactor| (QREFELT $ 54))
                                (QREFELT $ 55))
                      (LETT |lf|
                            (|MFINFACT;mfconst| |ffactor| |dx| |lvar| |ldeg| $)
                            . #25#))
                     ('T
                      (LETT |lf|
                            (|MFINFACT;mfpol| |ffactor| |dx| |lvar| |ldeg| $)
                            . #25#)))
                    (LETT |auxfl|
                          (PROGN
                           (LETT #8# NIL . #25#)
                           (SEQ (LETT |lfp| NIL . #25#) (LETT #7# |lf| . #25#)
                                G190
                                (COND
                                 ((OR (ATOM #7#)
                                      (PROGN
                                       (LETT |lfp| (CAR #7#) . #25#)
                                       NIL))
                                  #26#))
                                (SEQ
                                 (EXIT
                                  (LETT #8# (CONS (CONS |lfp| |ffexp|) #8#)
                                        . #25#)))
                                (LETT #7# (CDR #7#) . #25#) #27# G191
                                (EXIT (NREVERSE0 #8#))))
                          . #25#)
                    (EXIT
                     (LETT |factorlist| (APPEND |factorlist| |auxfl|) . #25#)))
               (LETT #15# (CDR #15#) . #25#) #27# G191 (EXIT NIL))
          (LETT |lcfacs|
                (PROGN
                 (LETT #2# NIL . #25#)
                 (SEQ (LETT |f| NIL . #25#) (LETT #6# |factorlist| . #25#) G190
                      (COND
                       ((OR (ATOM #6#) (PROGN (LETT |f| (CAR #6#) . #25#) NIL))
                        #26#))
                      (SEQ
                       (EXIT
                        (PROGN
                         (LETT #4#
                               (SPADCALL
                                (SPADCALL (SPADCALL (QCAR |f|) (QREFELT $ 54))
                                          (QREFELT $ 56))
                                (PROG1 (LETT #5# (QCDR |f|) . #25#)
                                  (|check-subtype| (>= #5# 0)
                                                   '(|NonNegativeInteger|)
                                                   #5#))
                                (QREFELT $ 57))
                               . #25#)
                         (COND
                          (#2#
                           (LETT #3# (SPADCALL #3# #4# (QREFELT $ 58)) . #25#))
                          ('T
                           (PROGN
                            (LETT #3# #4# . #25#)
                            (LETT #2# 'T . #25#)))))))
                      (LETT #6# (CDR #6#) . #25#) #27# G191 (EXIT NIL))
                 (COND (#2# #3#) (#24# (|spadConstant| $ 59))))
                . #25#)
          (EXIT
           (CONS
            (PROG2
                (LETT #1#
                      (SPADCALL
                       (SPADCALL (SPADCALL |um| (QREFELT $ 54)) (QREFELT $ 56))
                       |lcfacs| (QREFELT $ 60))
                      . #25#)
                (QCDR #1#)
              (|check-union| (QEQCAR #1# 0)
                             (|SparseUnivariatePolynomial| (QREFELT $ 8)) #1#))
            |factorlist|))))))
      #18# (EXIT #18#))))) 

(DEFUN |MFINFACT;supFactor!2| (|p1| $$)
  (PROG (|basicVar| $)
    (LETT |basicVar| (QREFELT $$ 1) . #1=(|MFINFACT;supFactor|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (|MFINFACT;pushdown| |p1| |basicVar| $))))) 

(DEFUN |MFINFACT;supFactor!1| (|p1| $$)
  (PROG (|basicVar| $)
    (LETT |basicVar| (QREFELT $$ 1) . #1=(|MFINFACT;supFactor|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (|MFINFACT;pushdown| |p1| |basicVar| $))))) 

(DEFUN |MFINFACT;supFactor!0| (|p1| $$)
  (PROG (|basicVar| $)
    (LETT |basicVar| (QREFELT $$ 1) . #1=(|MFINFACT;supFactor|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (|MFINFACT;pushup| |p1| |basicVar| $))))) 

(DEFUN |MFINFACT;factor;SupF;3| (|um| $)
  (PROG (#1=#:G758 #2=#:G757 #3=#:G759 #4=#:G763 |u| |flist| |cm| |dx|
         #5=#:G754 #6=#:G753 #7=#:G755 #8=#:G762 #9=#:G661 |ld| |lv|)
    (RETURN
     (SEQ
      (LETT |lv| (SPADCALL |um| (QREFELT $ 62))
            . #10=(|MFINFACT;factor;SupF;3|))
      (LETT |ld| (SPADCALL |um| |lv| (QREFELT $ 64)) . #10#)
      (LETT |dx|
            (PROGN
             (LETT #5# NIL . #10#)
             (SEQ (LETT #9# NIL . #10#) (LETT #8# |ld| . #10#) G190
                  (COND
                   ((OR (ATOM #8#) (PROGN (LETT #9# (CAR #8#) . #10#) NIL))
                    #11=(GO G191)))
                  (SEQ
                   (EXIT
                    (PROGN
                     (LETT #7# #9# . #10#)
                     (COND (#5# (LETT #6# (MIN #6# #7#) . #10#))
                           ('T
                            (PROGN
                             (LETT #6# #7# . #10#)
                             (LETT #5# 'T . #10#)))))))
                  (LETT #8# (CDR #8#) . #10#) #12=(GO G190) G191 (EXIT NIL))
             (COND (#5# #6#) (#13='T (|IdentityError| '|min|))))
            . #10#)
      (SETELT $ 10
              (SPADCALL |lv| (SPADCALL |dx| |ld| (QREFELT $ 66))
                        (QREFELT $ 67)))
      (LETT |cm|
            (SPADCALL
             (CONS #'|MFINFACT;factor;SupF;3!0| (VECTOR $ (QREFELT $ 10))) |um|
             (QREFELT $ 46))
            . #10#)
      (LETT |flist| (|MFINFACT;supFactor| |cm| |dx| $) . #10#)
      (EXIT
       (SPADCALL
        (SPADCALL (|MFINFACT;pushupconst| (QCAR |flist|) (QREFELT $ 10) $)
                  (QREFELT $ 68))
        (PROGN
         (LETT #1# NIL . #10#)
         (SEQ (LETT |u| NIL . #10#) (LETT #4# (QCDR |flist|) . #10#) G190
              (COND
               ((OR (ATOM #4#) (PROGN (LETT |u| (CAR #4#) . #10#) NIL)) #11#))
              (SEQ
               (EXIT
                (PROGN
                 (LETT #3#
                       (SPADCALL
                        (SPADCALL
                         (CONS #'|MFINFACT;factor;SupF;3!1|
                               (VECTOR $ (QREFELT $ 10)))
                         (QCAR |u|) (QREFELT $ 39))
                        (QCDR |u|) (QREFELT $ 69))
                       . #10#)
                 (COND
                  (#1# (LETT #2# (SPADCALL #2# #3# (QREFELT $ 70)) . #10#))
                  ('T (PROGN (LETT #2# #3# . #10#) (LETT #1# 'T . #10#)))))))
              (LETT #4# (CDR #4#) . #10#) #12# G191 (EXIT NIL))
         (COND (#1# #2#) (#13# (|spadConstant| $ 71))))
        (QREFELT $ 72))))))) 

(DEFUN |MFINFACT;factor;SupF;3!1| (|p1| $$)
  (PROG (|basicVar| $)
    (LETT |basicVar| (QREFELT $$ 1) . #1=(|MFINFACT;factor;SupF;3|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (|MFINFACT;pushup| |p1| |basicVar| $))))) 

(DEFUN |MFINFACT;factor;SupF;3!0| (|p1| $$)
  (PROG (|basicVar| $)
    (LETT |basicVar| (QREFELT $$ 1) . #1=(|MFINFACT;factor;SupF;3|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (|MFINFACT;pushdown| |p1| |basicVar| $))))) 

(DEFUN |MFINFACT;mFactor| (|m| |dx| $)
  (PROG (|factorlist| |auxfl| #1=#:G808 |lfp| #2=#:G807 |lf| |um| |lcum| |ldeg|
         #3=#:G806 |lcterm| |ffactor| #4=#:G783 |pc| |lvar| |x| |varch|
         #5=#:G805 #6=#:G777 |lcont| #7=#:G804 |lterm| |ffexp| #8=#:G803 |fact|
         |sqqfact| #9=#:G802 |ff| #10=#:G801 |flead| |sqfacs| |om| #11=#:G767
         #12=#:G766 #13=#:G768 #14=#:G800 |n| |lmdeg|)
    (RETURN
     (SEQ
      (COND ((SPADCALL |m| (QREFELT $ 55)) (|MFINFACT;constantCase| |m| NIL $))
            (#15='T
             (SEQ
              (LETT |lvar| (SPADCALL |m| (QREFELT $ 20))
                    . #16=(|MFINFACT;mFactor|))
              (LETT |flead| (CONS (|spadConstant| $ 59) NIL) . #16#)
              (LETT |factorlist| NIL . #16#)
              (LETT |lmdeg| (SPADCALL |m| |lvar| (QREFELT $ 74)) . #16#)
              (EXIT
               (COND
                ((PROGN
                  (LETT #11# NIL . #16#)
                  (SEQ (LETT |n| NIL . #16#) (LETT #14# |lmdeg| . #16#) G190
                       (COND
                        ((OR (ATOM #14#)
                             (PROGN (LETT |n| (CAR #14#) . #16#) NIL))
                         #17=(GO G191)))
                       (SEQ
                        (EXIT
                         (PROGN
                          (LETT #13# (< 0 |n|) . #16#)
                          (COND
                           (#11# (LETT #12# (COND (#12# 'T) ('T #13#)) . #16#))
                           ('T
                            (PROGN
                             (LETT #12# #13# . #16#)
                             (LETT #11# 'T . #16#)))))))
                       (LETT #14# (CDR #14#) . #16#) #18=(GO G190) G191
                       (EXIT NIL))
                  (COND (#11# #12#) (#15# 'NIL)))
                 (|MFINFACT;simplify| |m| |dx| |lvar| |lmdeg| $))
                (#15#
                 (SEQ
                  (LETT |om| (|MFINFACT;pushup| |m| (QREFELT $ 10) $) . #16#)
                  (LETT |sqfacs| (SPADCALL |om| (QREFELT $ 75)) . #16#)
                  (LETT |lcont|
                        (|MFINFACT;pushdown| (SPADCALL |sqfacs| (QREFELT $ 77))
                         (QREFELT $ 10) $)
                        . #16#)
                  (COND
                   ((SPADCALL |lcont| (QREFELT $ 55))
                    (LETT |flead| (|MFINFACT;constantCase| |lcont| NIL $)
                          . #16#))
                   (#15#
                    (LETT |flead| (|MFINFACT;mFactor| |lcont| |dx| $) . #16#)))
                  (LETT |factorlist| (QCDR |flead|) . #16#)
                  (LETT |sqqfact|
                        (PROGN
                         (LETT #10# NIL . #16#)
                         (SEQ (LETT |ff| NIL . #16#)
                              (LETT #9# (SPADCALL |sqfacs| (QREFELT $ 80))
                                    . #16#)
                              G190
                              (COND
                               ((OR (ATOM #9#)
                                    (PROGN (LETT |ff| (CAR #9#) . #16#) NIL))
                                #17#))
                              (SEQ
                               (EXIT
                                (LETT #10#
                                      (CONS
                                       (CONS
                                        (|MFINFACT;pushdown| (QCAR |ff|)
                                         (QREFELT $ 10) $)
                                        (QCDR |ff|))
                                       #10#)
                                      . #16#)))
                              (LETT #9# (CDR #9#) . #16#) #18# G191
                              (EXIT (NREVERSE0 #10#))))
                        . #16#)
                  (SEQ (LETT |fact| NIL . #16#) (LETT #8# |sqqfact| . #16#)
                       G190
                       (COND
                        ((OR (ATOM #8#)
                             (PROGN (LETT |fact| (CAR #8#) . #16#) NIL))
                         #17#))
                       (SEQ (LETT |ffactor| (QCAR |fact|) . #16#)
                            (LETT |ffexp| (QCDR |fact|) . #16#)
                            (EXIT
                             (COND
                              ((SPADCALL |ffactor| (QREFELT $ 55))
                               (SEQ (LETT |lterm| NIL . #16#)
                                    (LETT #7#
                                          (QCDR
                                           (|MFINFACT;constantCase| |ffactor|
                                            NIL $))
                                          . #16#)
                                    G190
                                    (COND
                                     ((OR (ATOM #7#)
                                          (PROGN
                                           (LETT |lterm| (CAR #7#) . #16#)
                                           NIL))
                                      #17#))
                                    (SEQ
                                     (EXIT
                                      (LETT |factorlist|
                                            (CONS
                                             (CONS (QCAR |lterm|)
                                                   (* (QCDR |lterm|) |ffexp|))
                                             |factorlist|)
                                            . #16#)))
                                    (LETT #7# (CDR #7#) . #16#) #18# G191
                                    (EXIT NIL)))
                              ('T
                               (SEQ
                                (LETT |lvar|
                                      (SPADCALL |ffactor| (QREFELT $ 20))
                                      . #16#)
                                (LETT |x| (SPADCALL |lvar| 1 (QREFELT $ 67))
                                      . #16#)
                                (LETT |ldeg|
                                      (SPADCALL |ffactor| |lvar|
                                                (QREFELT $ 81))
                                      . #16#)
                                (EXIT
                                 (COND
                                  ((SPADCALL 1 |ldeg| (QREFELT $ 84))
                                   (SEQ
                                    (LETT |x|
                                          (SPADCALL |lvar|
                                                    (SPADCALL 1 |ldeg|
                                                              (QREFELT $ 66))
                                                    (QREFELT $ 67))
                                          . #16#)
                                    (LETT |lcont|
                                          (SPADCALL
                                           (SPADCALL
                                            (SPADCALL |ffactor| |x|
                                                      (QREFELT $ 86))
                                            (QREFELT $ 18))
                                           (QREFELT $ 88))
                                          . #16#)
                                    (LETT |ffactor|
                                          (PROG2
                                              (LETT #6#
                                                    (SPADCALL |ffactor| |lcont|
                                                              (QREFELT $ 89))
                                                    . #16#)
                                              (QCDR #6#)
                                            (|check-union| (QEQCAR #6# 0)
                                                           (|SparseMultivariatePolynomial|
                                                            (|SparseUnivariatePolynomial|
                                                             (QREFELT $ 8))
                                                            (QREFELT $ 6))
                                                           #6#))
                                          . #16#)
                                    (LETT |factorlist|
                                          (CONS (CONS |ffactor| |ffexp|)
                                                |factorlist|)
                                          . #16#)
                                    (EXIT
                                     (SEQ (LETT |lcterm| NIL . #16#)
                                          (LETT #5#
                                                (QCDR
                                                 (|MFINFACT;mFactor| |lcont|
                                                  |dx| $))
                                                . #16#)
                                          G190
                                          (COND
                                           ((OR (ATOM #5#)
                                                (PROGN
                                                 (LETT |lcterm| (CAR #5#)
                                                       . #16#)
                                                 NIL))
                                            #17#))
                                          (SEQ
                                           (EXIT
                                            (LETT |factorlist|
                                                  (CONS
                                                   (CONS (QCAR |lcterm|)
                                                         (* (QCDR |lcterm|)
                                                            |ffexp|))
                                                   |factorlist|)
                                                  . #16#)))
                                          (LETT #5# (CDR #5#) . #16#) #18# G191
                                          (EXIT NIL)))))
                                  ('T
                                   (SEQ
                                    (LETT |varch|
                                          (|MFINFACT;varChoose| |ffactor|
                                           |lvar| |ldeg| $)
                                          . #16#)
                                    (LETT |um| (QVELT |varch| 0) . #16#)
                                    (LETT |ldeg| (CDR |ldeg|) . #16#)
                                    (LETT |lvar| (CDR |lvar|) . #16#)
                                    (COND
                                     ((NULL
                                       (SPADCALL
                                        (SPADCALL (QVELT |varch| 1) 1
                                                  (QREFELT $ 67))
                                        |x| (QREFELT $ 90)))
                                      (SEQ
                                       (LETT |lvar| (QVELT |varch| 1) . #16#)
                                       (LETT |x|
                                             (SPADCALL |lvar| 1 (QREFELT $ 67))
                                             . #16#)
                                       (LETT |lvar| (CDR |lvar|) . #16#)
                                       (LETT |pc|
                                             (SPADCALL
                                              (SPADCALL |um| (QREFELT $ 18))
                                              (QREFELT $ 88))
                                             . #16#)
                                       (COND
                                        ((NULL
                                          (SPADCALL |pc| (|spadConstant| $ 32)
                                                    (QREFELT $ 91)))
                                         (SEQ
                                          (LETT |um|
                                                (PROG2
                                                    (LETT #4#
                                                          (SPADCALL |um| |pc|
                                                                    (QREFELT $
                                                                             92))
                                                          . #16#)
                                                    (QCDR #4#)
                                                  (|check-union| (QEQCAR #4# 0)
                                                                 (|SparseUnivariatePolynomial|
                                                                  (|SparseMultivariatePolynomial|
                                                                   (|SparseUnivariatePolynomial|
                                                                    (QREFELT $
                                                                             8))
                                                                   (QREFELT $
                                                                            6)))
                                                                 #4#))
                                                . #16#)
                                          (LETT |ffactor|
                                                (SPADCALL |um| |x|
                                                          (QREFELT $ 93))
                                                . #16#)
                                          (EXIT
                                           (SEQ (LETT |lcterm| NIL . #16#)
                                                (LETT #3#
                                                      (QCDR
                                                       (|MFINFACT;mFactor| |pc|
                                                        |dx| $))
                                                      . #16#)
                                                G190
                                                (COND
                                                 ((OR (ATOM #3#)
                                                      (PROGN
                                                       (LETT |lcterm| (CAR #3#)
                                                             . #16#)
                                                       NIL))
                                                  #17#))
                                                (SEQ
                                                 (EXIT
                                                  (LETT |factorlist|
                                                        (CONS
                                                         (CONS (QCAR |lcterm|)
                                                               (*
                                                                (QCDR |lcterm|)
                                                                |ffexp|))
                                                         |factorlist|)
                                                        . #16#)))
                                                (LETT #3# (CDR #3#) . #16#)
                                                #18# G191 (EXIT NIL))))))
                                       (EXIT
                                        (LETT |ldeg|
                                              (SPADCALL |ffactor| |lvar|
                                                        (QREFELT $ 81))
                                              . #16#)))))
                                    (LETT |lcum|
                                          (SPADCALL
                                           (SPADCALL
                                            (SPADCALL |um| (QREFELT $ 54))
                                            (QREFELT $ 56))
                                           (QREFELT $ 94))
                                          . #16#)
                                    (COND
                                     ((NULL
                                       (SPADCALL |lcum| (|spadConstant| $ 30)
                                                 (QREFELT $ 95)))
                                      (SEQ
                                       (LETT |um|
                                             (SPADCALL
                                              (SPADCALL
                                               (SPADCALL
                                                (SPADCALL |lcum|
                                                          (QREFELT $ 96))
                                                (QREFELT $ 97))
                                               (QREFELT $ 98))
                                              |um| (QREFELT $ 99))
                                             . #16#)
                                       (EXIT
                                        (PROGN
                                         (RPLACA |flead|
                                                 (SPADCALL
                                                  (SPADCALL |lcum|
                                                            (QREFELT $ 97))
                                                  (QCAR |flead|)
                                                  (QREFELT $ 58)))
                                         (QCAR |flead|))))))
                                    (COND
                                     ((SPADCALL (SPADCALL |um| (QREFELT $ 54))
                                                (QREFELT $ 55))
                                      (LETT |lf|
                                            (|MFINFACT;mfconst| |um| |dx|
                                             |lvar| |ldeg| $)
                                            . #16#))
                                     ('T
                                      (LETT |lf|
                                            (|MFINFACT;mfpol| |um| |dx| |lvar|
                                             |ldeg| $)
                                            . #16#)))
                                    (LETT |auxfl|
                                          (PROGN
                                           (LETT #2# NIL . #16#)
                                           (SEQ (LETT |lfp| NIL . #16#)
                                                (LETT #1# |lf| . #16#) G190
                                                (COND
                                                 ((OR (ATOM #1#)
                                                      (PROGN
                                                       (LETT |lfp| (CAR #1#)
                                                             . #16#)
                                                       NIL))
                                                  #17#))
                                                (SEQ
                                                 (EXIT
                                                  (LETT #2#
                                                        (CONS
                                                         (CONS
                                                          (SPADCALL |lfp| |x|
                                                                    (QREFELT $
                                                                             93))
                                                          |ffexp|)
                                                         #2#)
                                                        . #16#)))
                                                (LETT #1# (CDR #1#) . #16#)
                                                #18# G191
                                                (EXIT (NREVERSE0 #2#))))
                                          . #16#)
                                    (EXIT
                                     (LETT |factorlist|
                                           (APPEND |factorlist| |auxfl|)
                                           . #16#)))))))))))
                       (LETT #8# (CDR #8#) . #16#) #18# G191 (EXIT NIL))
                  (PROGN (RPLACD |flead| |factorlist|) (QCDR |flead|))
                  (EXIT |flead|)))))))))))) 

(DEFUN |MFINFACT;pM| (|lum| $)
  (PROG (#1=#:G826 |p| #2=#:G818 |q| #3=#:G813 |e| #4=#:G811 #5=#:G810
         #6=#:G827 |i| |x|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |x| (SPADCALL (|spadConstant| $ 30) 1 (QREFELT $ 100))
              . #7=(|MFINFACT;pM|))
        (SEQ (LETT |i| 1 . #7#) (LETT #6# (SPADCALL (QREFELT $ 101)) . #7#)
             G190 (COND ((QSGREATERP |i| #6#) #8=(GO G191)))
             (SEQ
              (EXIT
               (SEQ
                (LETT |p|
                      (SPADCALL |x|
                                (SPADCALL
                                 (SPADCALL
                                  (PROG1 (LETT #5# |i| . #7#)
                                    (|check-subtype| (> #5# 0)
                                                     '(|PositiveInteger|) #5#))
                                  (QREFELT $ 103))
                                 (QREFELT $ 97))
                                (QREFELT $ 104))
                      . #7#)
                (EXIT
                 (COND
                  ((SPADCALL |p| |lum| (QREFELT $ 107))
                   (PROGN
                    (LETT #4# (PROGN (LETT #1# |p| . #7#) (GO #1#)) . #7#)
                    (GO #4#)))))))
              #4# (EXIT #4#))
             (LETT |i| (QSADD1 |i|) . #7#) #9=(GO G190) G191 (EXIT NIL))
        (EXIT
         (SEQ (LETT |e| 2 . #7#) G190 NIL
              (SEQ
               (LETT |p|
                     (SPADCALL
                      (PROG1 (LETT #3# |e| . #7#)
                        (|check-subtype| (> #3# 0) '(|PositiveInteger|) #3#))
                      (QREFELT $ 109))
                     . #7#)
               (EXIT
                (COND
                 ((SPADCALL |p| |lum| (QREFELT $ 107))
                  (PROGN (LETT #1# |p| . #7#) (GO #1#)))
                 ('T
                  (SEQ G190
                       (COND
                        ((NULL
                          (SEQ (LETT |q| (SPADCALL |p| (QREFELT $ 111)) . #7#)
                               (EXIT (COND ((QEQCAR |q| 1) 'NIL) ('T 'T)))))
                         #8#))
                       (SEQ
                        (LETT |p|
                              (PROG2
                                  (LETT #2# |q| . #7#)
                                  (QCDR #2#)
                                (|check-union| (QEQCAR #2# 0)
                                               (|SparseUnivariatePolynomial|
                                                (QREFELT $ 8))
                                               #2#))
                              . #7#)
                        (EXIT
                         (COND
                          ((SPADCALL |p| |lum| (QREFELT $ 107))
                           (PROGN (LETT #1# |p| . #7#) (GO #1#))))))
                       NIL #9# G191 (EXIT NIL))))))
              (LETT |e| (QSADD1 |e|) . #7#) #9# G191 (EXIT NIL)))))
      #1# (EXIT #1#))))) 

(DEFUN |MFINFACT;pushdcoef| (|t| $) (SPADCALL (ELT $ 97) |t| (QREFELT $ 114))) 

(DEFUN |MFINFACT;intfact| (|um| |lvar| |ldeg| |tleadpol| |ltry| $)
  (PROG (|factfin| #1=#:G885 |ff| #2=#:G884 |ffin| #3=#:G868 |unifact| |i|
         #4=#:G883 |dd| |lpol| |dist| #5=#:G880 |distf| |leadval| |lval|
         |nfact| |vfchoo| |leadpol| #6=#:G882 #7=#:G881 |polcase|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |polcase| (COND ((NULL (QCDR |tleadpol|)) 'NIL) (#8='T 'T))
              . #9=(|MFINFACT;intfact|))
        (LETT |vfchoo|
              (COND
               (|polcase|
                (SEQ
                 (LETT |leadpol|
                       (PROGN
                        (LETT #7# NIL . #9#)
                        (SEQ (LETT |ff| NIL . #9#)
                             (LETT #6# (QCDR |tleadpol|) . #9#) G190
                             (COND
                              ((OR (ATOM #6#)
                                   (PROGN (LETT |ff| (CAR #6#) . #9#) NIL))
                               #10=(GO G191)))
                             (SEQ
                              (EXIT (LETT #7# (CONS (QCAR |ff|) #7#) . #9#)))
                             (LETT #6# (CDR #6#) . #9#) #11=(GO G190) G191
                             (EXIT (NREVERSE0 #7#))))
                       . #9#)
                 (EXIT
                  (|MFINFACT;intChoose| |um| |lvar| (QCAR |tleadpol|) |leadpol|
                   |ltry| $))))
               (#8#
                (|MFINFACT;intChoose| |um| |lvar| (|spadConstant| $ 59) NIL NIL
                 $)))
              . #9#)
        (LETT |unifact| (QVELT |vfchoo| 1) . #9#)
        (LETT |nfact| (LENGTH |unifact|) . #9#)
        (EXIT
         (COND ((EQL |nfact| 1) (LIST |um|))
               (#8#
                (SEQ (LETT |ltry| (QVELT |vfchoo| 0) . #9#)
                     (LETT |lval| (|SPADfirst| |ltry|) . #9#)
                     (LETT |dd| (QVELT |vfchoo| 2) . #9#)
                     (LETT |lpol| NIL . #9#) (LETT |leadval| NIL . #9#)
                     (COND
                      (|polcase|
                       (SEQ (LETT |leadval| (QVELT |vfchoo| 3) . #9#)
                            (LETT |distf|
                                  (SPADCALL (QVELT |vfchoo| 2) |unifact|
                                            |tleadpol| |leadval| |lvar| |lval|
                                            (QREFELT $ 121))
                                  . #9#)
                            (EXIT
                             (COND
                              ((QEQCAR |distf| 1)
                               (PROGN
                                (LETT #5#
                                      (|MFINFACT;intfact| |um| |lvar| |ldeg|
                                       |tleadpol| |ltry| $)
                                      . #9#)
                                (GO #5#)))
                              (#8#
                               (SEQ (LETT |dist| (QCDR |distf|) . #9#)
                                    (LETT |lpol| (QVELT |dist| 0) . #9#)
                                    (LETT |dd| (QVELT |dist| 1) . #9#)
                                    (EXIT
                                     (LETT |unifact| (QVELT |dist| 2)
                                           . #9#)))))))))
                     (COND
                      ((NULL
                        (SPADCALL |dd| (|spadConstant| $ 59) (QREFELT $ 122)))
                       (SEQ
                        (LETT |unifact|
                              (PROGN
                               (LETT #4# NIL . #9#)
                               (SEQ (LETT |i| 1 . #9#) G190
                                    (COND ((QSGREATERP |i| |nfact|) #10#))
                                    (SEQ
                                     (EXIT
                                      (LETT #4#
                                            (CONS
                                             (SPADCALL |dd|
                                                       (SPADCALL |unifact| |i|
                                                                 (QREFELT $
                                                                          124))
                                                       (QREFELT $ 125))
                                             #4#)
                                            . #9#)))
                                    (LETT |i| (QSADD1 |i|) . #9#) #11# G191
                                    (EXIT (NREVERSE0 #4#))))
                              . #9#)
                        (EXIT
                         (LETT |um|
                               (SPADCALL
                                (SPADCALL
                                 (SPADCALL |dd|
                                           (PROG1
                                               (LETT #3# (- |nfact| 1) . #9#)
                                             (|check-subtype| (>= #3# 0)
                                                              '(|NonNegativeInteger|)
                                                              #3#))
                                           (QREFELT $ 57))
                                 (QREFELT $ 98))
                                |um| (QREFELT $ 99))
                               . #9#)))))
                     (LETT |ffin|
                           (SPADCALL |um| |lvar| |unifact| |lval| |lpol| |ldeg|
                                     (|MFINFACT;pM| |unifact| $)
                                     (QREFELT $ 128))
                           . #9#)
                     (EXIT
                      (COND
                       ((QEQCAR |ffin| 1)
                        (|MFINFACT;intfact| |um| |lvar| |ldeg| |tleadpol|
                         |ltry| $))
                       (#8#
                        (SEQ (LETT |factfin| (QCDR |ffin|) . #9#)
                             (COND
                              ((NULL
                                (SPADCALL |dd| (|spadConstant| $ 59)
                                          (QREFELT $ 122)))
                               (LETT |factfin|
                                     (PROGN
                                      (LETT #2# NIL . #9#)
                                      (SEQ (LETT |ff| NIL . #9#)
                                           (LETT #1# |factfin| . #9#) G190
                                           (COND
                                            ((OR (ATOM #1#)
                                                 (PROGN
                                                  (LETT |ff| (CAR #1#) . #9#)
                                                  NIL))
                                             #10#))
                                           (SEQ
                                            (EXIT
                                             (LETT #2#
                                                   (CONS
                                                    (SPADCALL |ff|
                                                              (QREFELT $ 129))
                                                    #2#)
                                                   . #9#)))
                                           (LETT #1# (CDR #1#) . #9#) #11# G191
                                           (EXIT (NREVERSE0 #2#))))
                                     . #9#)))
                             (EXIT |factfin|)))))))))))
      #5# (EXIT #5#))))) 

(DEFUN |MFINFACT;pushup| (|f| |x| $)
  (PROG (|rr| |lvf| |cf| |lf|)
    (RETURN
     (SEQ
      (COND
       ((SPADCALL |f| (QREFELT $ 55))
        (|MFINFACT;pushupconst| (SPADCALL |f| (QREFELT $ 130)) |x| $))
       ('T
        (SEQ (LETT |rr| (|spadConstant| $ 27) . #1=(|MFINFACT;pushup|))
             (SEQ G190
                  (COND
                   ((NULL
                     (COND
                      ((SPADCALL |f| (|spadConstant| $ 29) (QREFELT $ 91))
                       'NIL)
                      ('T 'T)))
                    (GO G191)))
                  (SEQ (LETT |lf| (SPADCALL |f| (QREFELT $ 131)) . #1#)
                       (LETT |cf|
                             (|MFINFACT;pushupconst|
                              (SPADCALL |f| (QREFELT $ 56)) |x| $)
                             . #1#)
                       (LETT |lvf| (SPADCALL |lf| (QREFELT $ 20)) . #1#)
                       (LETT |rr|
                             (SPADCALL |rr|
                                       (SPADCALL |cf| |lvf|
                                                 (SPADCALL |lf| |lvf|
                                                           (QREFELT $ 81))
                                                 (QREFELT $ 132))
                                       (QREFELT $ 133))
                             . #1#)
                       (EXIT (LETT |f| (SPADCALL |f| (QREFELT $ 134)) . #1#)))
                  NIL (GO G190) G191 (EXIT NIL))
             (EXIT |rr|)))))))) 

(DEFUN |MFINFACT;pushdown| (|g| |x| $)
  (PROG (|ug| |rf| |cf|)
    (RETURN
     (SEQ
      (COND
       ((SPADCALL |g| (QREFELT $ 135))
        (SPADCALL (SPADCALL (SPADCALL |g| (QREFELT $ 136)) (QREFELT $ 97))
                  (QREFELT $ 98)))
       ('T
        (SEQ (LETT |rf| (|spadConstant| $ 29) . #1=(|MFINFACT;pushdown|))
             (LETT |ug| (SPADCALL |g| |x| (QREFELT $ 137)) . #1#)
             (SEQ G190
                  (COND
                   ((NULL
                     (COND
                      ((SPADCALL |ug| (|spadConstant| $ 138) (QREFELT $ 139))
                       'NIL)
                      ('T 'T)))
                    (GO G191)))
                  (SEQ
                   (LETT |cf|
                         (SPADCALL (|spadConstant| $ 30)
                                   (SPADCALL |ug| (QREFELT $ 140))
                                   (QREFELT $ 100))
                         . #1#)
                   (LETT |rf|
                         (SPADCALL |rf|
                                   (SPADCALL |cf|
                                             (|MFINFACT;pushdcoef|
                                              (SPADCALL |ug| (QREFELT $ 141))
                                              $)
                                             (QREFELT $ 142))
                                   (QREFELT $ 143))
                         . #1#)
                   (EXIT (LETT |ug| (SPADCALL |ug| (QREFELT $ 144)) . #1#)))
                  NIL (GO G190) G191 (EXIT NIL))
             (EXIT |rf|)))))))) 

(DEFUN |MFINFACT;pushupconst| (|r| |x| $)
  (PROG (|rr|)
    (RETURN
     (SEQ
      (COND
       ((SPADCALL |r| (QREFELT $ 145))
        (SPADCALL (SPADCALL |r| (QREFELT $ 146)) (QREFELT $ 147)))
       ('T
        (SEQ (LETT |rr| (|spadConstant| $ 27) . #1=(|MFINFACT;pushupconst|))
             (SEQ G190
                  (COND
                   ((NULL
                     (COND
                      ((SPADCALL |r| (|spadConstant| $ 25) (QREFELT $ 122))
                       'NIL)
                      ('T 'T)))
                    (GO G191)))
                  (SEQ
                   (LETT |rr|
                         (SPADCALL |rr|
                                   (SPADCALL
                                    (SPADCALL (SPADCALL |r| (QREFELT $ 94))
                                              (QREFELT $ 147))
                                    |x| (SPADCALL |r| (QREFELT $ 148))
                                    (QREFELT $ 149))
                                   (QREFELT $ 133))
                         . #1#)
                   (EXIT (LETT |r| (SPADCALL |r| (QREFELT $ 150)) . #1#)))
                  NIL (GO G190) G191 (EXIT NIL))
             (EXIT |rr|)))))))) 

(DEFUN |MFINFACT;ran| (|k1| $)
  (PROG (#1=#:G902 #2=#:G901 #3=#:G903 |i|)
    (RETURN
     (SEQ
      (PROGN
       (LETT #1# NIL . #4=(|MFINFACT;ran|))
       (SEQ (LETT |i| 0 . #4#) G190 (COND ((QSGREATERP |i| |k1|) (GO G191)))
            (SEQ
             (EXIT
              (PROGN
               (LETT #3#
                     (SPADCALL (SPADCALL (QREFELT $ 151)) |i| (QREFELT $ 100))
                     . #4#)
               (COND (#1# (LETT #2# (SPADCALL #2# #3# (QREFELT $ 104)) . #4#))
                     ('T (PROGN (LETT #2# #3# . #4#) (LETT #1# 'T . #4#)))))))
            (LETT |i| (QSADD1 |i|) . #4#) (GO G190) G191 (EXIT NIL))
       (COND (#1# #2#) ('T (|spadConstant| $ 25)))))))) 

(DEFUN |MFINFACT;checkzero| (|u| |um| $)
  (COND
   ((SPADCALL |u| (|spadConstant| $ 28) (QREFELT $ 152))
    (SPADCALL |um| (|spadConstant| $ 153) (QREFELT $ 154)))
   ((SPADCALL |um| (|spadConstant| $ 153) (QREFELT $ 154)) 'NIL)
   (#1='T
    (COND
     ((EQL (SPADCALL |u| (QREFELT $ 15)) (SPADCALL |um| (QREFELT $ 155)))
      (|MFINFACT;checkzero| (SPADCALL |u| (QREFELT $ 156))
       (SPADCALL |um| (QREFELT $ 157)) $))
     (#1# 'NIL))))) 

(DEFUN |MFINFACT;varChoose| (|m| |lvar| |ldeg| $)
  (PROG (|x| |i| |k| #1=#:G909 #2=#:G908 #3=#:G910 #4=#:G914 |d|)
    (RETURN
     (SEQ
      (LETT |k|
            (PROGN
             (LETT #1# NIL . #5=(|MFINFACT;varChoose|))
             (SEQ (LETT |d| NIL . #5#) (LETT #4# |ldeg| . #5#) G190
                  (COND
                   ((OR (ATOM #4#) (PROGN (LETT |d| (CAR #4#) . #5#) NIL))
                    (GO G191)))
                  (SEQ
                   (EXIT
                    (PROGN
                     (LETT #3# |d| . #5#)
                     (COND (#1# (LETT #2# (MIN #2# #3#) . #5#))
                           ('T
                            (PROGN
                             (LETT #2# #3# . #5#)
                             (LETT #1# 'T . #5#)))))))
                  (LETT #4# (CDR #4#) . #5#) (GO G190) G191 (EXIT NIL))
             (COND (#1# #2#) (#6='T (|IdentityError| '|min|))))
            . #5#)
      (EXIT
       (COND
        ((EQL |k| (SPADCALL |m| (|SPADfirst| |lvar|) (QREFELT $ 53)))
         (VECTOR (SPADCALL |m| (|SPADfirst| |lvar|) (QREFELT $ 86)) |lvar|
                 |ldeg|))
        (#6#
         (SEQ (LETT |i| (SPADCALL |k| |ldeg| (QREFELT $ 66)) . #5#)
              (LETT |x| (SPADCALL |lvar| |i| (QREFELT $ 67)) . #5#)
              (LETT |ldeg| (CONS |k| (SPADCALL |ldeg| |i| (QREFELT $ 158)))
                    . #5#)
              (LETT |lvar| (CONS |x| (SPADCALL |lvar| |i| (QREFELT $ 159)))
                    . #5#)
              (EXIT
               (VECTOR (SPADCALL |m| |x| (QREFELT $ 86)) |lvar| |ldeg|)))))))))) 

(DEFUN |MFINFACT;norm| (|lum| $)
  (PROG (#1=#:G916 #2=#:G915 #3=#:G917 #4=#:G919 |lup|)
    (RETURN
     (SEQ
      (PROGN
       (LETT #1# NIL . #5=(|MFINFACT;norm|))
       (SEQ (LETT |lup| NIL . #5#) (LETT #4# |lum| . #5#) G190
            (COND
             ((OR (ATOM #4#) (PROGN (LETT |lup| (CAR #4#) . #5#) NIL))
              (GO G191)))
            (SEQ
             (EXIT
              (PROGN
               (LETT #3# (SPADCALL |lup| (QREFELT $ 155)) . #5#)
               (COND (#1# (LETT #2# (MAX #2# #3#) . #5#))
                     ('T (PROGN (LETT #2# #3# . #5#) (LETT #1# 'T . #5#)))))))
            (LETT #4# (CDR #4#) . #5#) (GO G190) G191 (EXIT NIL))
       (COND (#1# #2#) ('T (|IdentityError| '|max|)))))))) 

(DEFUN |MFINFACT;intChoose| (|um| |lvar| |clc| |plist| |ltry| $)
  (PROG (|nfatt| |int| |leadcomp| |lffc| |unifact| #1=#:G1016 |uf| #2=#:G1015
         |leadtest| #3=#:G1014 #4=#:G1013 #5=#:G997 #6=#:G1012 #7=#:G1011
         #8=#:G1010 #9=#:G1009 #10=#:G1008 |ff| #11=#:G1007 #12=#:G1006
         #13=#:G1005 |lffc1| |nf| |lunivf| |luniv| |dx| #14=#:G937 #15=#:G936
         #16=#:G938 #17=#:G1004 |uc| |newm| |lcnm| |range| |D2newm| |Dnewm|
         #18=#:G930 #19=#:G924 #20=#:G923 #21=#:G925 #22=#:G1003 |epl|
         |leadcomp1| #23=#:G1002 |pol| #24=#:G1001 |lval| |i| #25=#:G1000
         |newunifact| |testp| |ctf1| |nvar1| |degum|)
    (RETURN
     (SEQ
      (LETT |degum| (SPADCALL |um| (QREFELT $ 15))
            . #26=(|MFINFACT;intChoose|))
      (LETT |nvar1| (LENGTH |lvar|) . #26#) (LETT |range| 0 . #26#)
      (LETT |ctf1| (|spadConstant| $ 59) . #26#)
      (LETT |testp|
            (COND ((SPADCALL |plist| NIL (QREFELT $ 160)) 'NIL) ('T 'T))
            . #26#)
      (LETT |leadcomp| (LETT |leadcomp1| NIL . #26#) . #26#)
      (LETT |nfatt| (+ |degum| 1) . #26#)
      (LETT |lffc| (|spadConstant| $ 59) . #26#) (LETT |lffc1| |lffc| . #26#)
      (LETT |newunifact| NIL . #26#) (LETT |leadtest| 'T . #26#)
      (LETT |int| NIL . #26#)
      (SEQ
       (EXIT
        (SEQ G190 (COND ((NULL 'T) #27=(GO G191)))
             (SEQ
              (LETT |lval|
                    (PROGN
                     (LETT #25# NIL . #26#)
                     (SEQ (LETT |i| 1 . #26#) G190
                          (COND ((QSGREATERP |i| |nvar1|) #27#))
                          (SEQ
                           (EXIT
                            (LETT #25# (CONS (|MFINFACT;ran| |range| $) #25#)
                                  . #26#)))
                          (LETT |i| (QSADD1 |i|) . #26#) #28=(GO G190) G191
                          (EXIT (NREVERSE0 #25#))))
                    . #26#)
              (EXIT
               (COND
                ((SPADCALL |lval| |ltry| (QREFELT $ 162))
                 (LETT |range| (+ 1 |range|) . #26#))
                ('T
                 (SEQ (LETT |ltry| (CONS |lval| |ltry|) . #26#)
                      (LETT |leadcomp1|
                            (PROGN
                             (LETT #24# NIL . #26#)
                             (SEQ (LETT |pol| NIL . #26#)
                                  (LETT #23# |plist| . #26#) G190
                                  (COND
                                   ((OR (ATOM #23#)
                                        (PROGN
                                         (LETT |pol| (CAR #23#) . #26#)
                                         NIL))
                                    #27#))
                                  (SEQ
                                   (EXIT
                                    (LETT #24#
                                          (CONS
                                           (SPADCALL
                                            (SPADCALL |pol| |lvar| |lval|
                                                      (QREFELT $ 163))
                                            (QREFELT $ 130))
                                           #24#)
                                          . #26#)))
                                  (LETT #23# (CDR #23#) . #26#) #28# G191
                                  (EXIT (NREVERSE0 #24#))))
                            . #26#)
                      (COND
                       (|testp|
                        (COND
                         ((PROGN
                           (LETT #19# NIL . #26#)
                           (SEQ (LETT |epl| NIL . #26#)
                                (LETT #22# |leadcomp1| . #26#) G190
                                (COND
                                 ((OR (ATOM #22#)
                                      (PROGN
                                       (LETT |epl| (CAR #22#) . #26#)
                                       NIL))
                                  #27#))
                                (SEQ
                                 (EXIT
                                  (PROGN
                                   (LETT #21# (SPADCALL |epl| (QREFELT $ 164))
                                         . #26#)
                                   (COND
                                    (#19#
                                     (LETT #20# (COND (#20# 'T) ('T #21#))
                                           . #26#))
                                    ('T
                                     (PROGN
                                      (LETT #20# #21# . #26#)
                                      (LETT #19# 'T . #26#)))))))
                                (LETT #22# (CDR #22#) . #26#) #28# G191
                                (EXIT NIL))
                           (COND (#19# #20#) ('T 'NIL)))
                          (EXIT (LETT |range| (+ |range| 1) . #26#))))))
                      (LETT |newm|
                            (SPADCALL |um| |lvar| |lval| (QREFELT $ 166))
                            . #26#)
                      (COND
                       ((EQL |degum| (SPADCALL |newm| (QREFELT $ 155)))
                        (COND
                         ((NULL (EQL (SPADCALL |newm| (QREFELT $ 167)) 0))
                          (EXIT (LETT |range| (+ |range| 1) . #26#)))))
                       ('T (EXIT (LETT |range| (+ |range| 1) . #26#))))
                      (LETT |lffc1| (SPADCALL |newm| (QREFELT $ 168)) . #26#)
                      (LETT |newm|
                            (PROG2
                                (LETT #18#
                                      (SPADCALL |newm| |lffc1| (QREFELT $ 169))
                                      . #26#)
                                (QCDR #18#)
                              (|check-union| (QEQCAR #18# 0)
                                             (|SparseUnivariatePolynomial|
                                              (|SparseUnivariatePolynomial|
                                               (QREFELT $ 8)))
                                             #18#))
                            . #26#)
                      (COND
                       (|testp|
                        (COND
                         (|leadtest|
                          (COND
                           ((NULL
                             (SPADCALL (SPADCALL |lffc1| |clc| (QREFELT $ 58))
                                       (LENGTH |plist|) |leadcomp1|
                                       (QREFELT $ 170)))
                            (EXIT (LETT |range| (+ |range| 1) . #26#))))))))
                      (LETT |Dnewm| (SPADCALL |newm| (QREFELT $ 171)) . #26#)
                      (LETT |D2newm|
                            (SPADCALL (ELT $ 173) |newm| (QREFELT $ 176))
                            . #26#)
                      (COND
                       ((NULL
                         (EQL
                          (SPADCALL
                           (SPADCALL (LIST |newm| |Dnewm| |D2newm|)
                                     (QREFELT $ 177))
                           (QREFELT $ 155))
                          0))
                        (EXIT (LETT |range| (+ |range| 1) . #26#))))
                      (LETT |lcnm| (|spadConstant| $ 30) . #26#)
                      (SEQ
                       (LETT |lcnm|
                             (SPADCALL (SPADCALL |newm| (QREFELT $ 178))
                                       (QREFELT $ 94))
                             . #26#)
                       (EXIT
                        (COND
                         ((NULL
                           (SPADCALL |lcnm| (|spadConstant| $ 30)
                                     (QREFELT $ 95)))
                          (LETT |newm|
                                (SPADCALL
                                 (SPADCALL (SPADCALL |lcnm| (QREFELT $ 96))
                                           (QREFELT $ 97))
                                 |newm| (QREFELT $ 125))
                                . #26#)))))
                      (LETT |dx|
                            (PROGN
                             (LETT #14# NIL . #26#)
                             (SEQ (LETT |uc| NIL . #26#)
                                  (LETT #17# (SPADCALL |newm| (QREFELT $ 179))
                                        . #26#)
                                  G190
                                  (COND
                                   ((OR (ATOM #17#)
                                        (PROGN
                                         (LETT |uc| (CAR #17#) . #26#)
                                         NIL))
                                    #27#))
                                  (SEQ
                                   (EXIT
                                    (PROGN
                                     (LETT #16# (SPADCALL |uc| (QREFELT $ 148))
                                           . #26#)
                                     (COND
                                      (#14# (LETT #15# (MAX #15# #16#) . #26#))
                                      ('T
                                       (PROGN
                                        (LETT #15# #16# . #26#)
                                        (LETT #14# 'T . #26#)))))))
                                  (LETT #17# (CDR #17#) . #26#) #28# G191
                                  (EXIT NIL))
                             (COND (#14# #15#) ('T (|IdentityError| '|max|))))
                            . #26#)
                      (LETT |luniv| (SPADCALL |newm| (QREFELT $ 182)) . #26#)
                      (LETT |lunivf| (SPADCALL |luniv| (QREFELT $ 185)) . #26#)
                      (LETT |nf| (LENGTH |lunivf|) . #26#)
                      (COND
                       ((OR (EQL |nf| 0) (< |nfatt| |nf|))
                        (EXIT "next values")))
                      (COND
                       ((EQL |nf| 1)
                        (PROGN
                         (LETT #5# (LETT |unifact| (LIST |newm|) . #26#)
                               . #26#)
                         (GO #5#))))
                      (LETT |lffc1|
                            (SPADCALL
                             (SPADCALL |lcnm|
                                       (SPADCALL
                                        (SPADCALL |luniv| (QREFELT $ 186))
                                        (QREFELT $ 187))
                                       (QREFELT $ 188))
                             |lffc1| (QREFELT $ 58))
                            . #26#)
                      (EXIT
                       (COND
                        ((EQL |nfatt| |nf|)
                         (SEQ
                          (COND
                           (|leadtest|
                            (SEQ
                             (LETT |unifact|
                                   (PROGN
                                    (LETT #13# NIL . #26#)
                                    (SEQ (LETT |uf| NIL . #26#)
                                         (LETT #12# |lunivf| . #26#) G190
                                         (COND
                                          ((OR (ATOM #12#)
                                               (PROGN
                                                (LETT |uf| (CAR #12#) . #26#)
                                                NIL))
                                           #27#))
                                         (SEQ
                                          (EXIT
                                           (LETT #13# (CONS (QCAR |uf|) #13#)
                                                 . #26#)))
                                         (LETT #12# (CDR #12#) . #26#) #28#
                                         G191 (EXIT (NREVERSE0 #13#))))
                                   . #26#)
                             (LETT |int| |lval| . #26#)
                             (LETT |lffc| |lffc1| . #26#)
                             (EXIT
                              (COND
                               (|testp|
                                (LETT |leadcomp| |leadcomp1| . #26#))))))
                           ((<
                             (|MFINFACT;norm|
                              (PROGN
                               (LETT #11# NIL . #26#)
                               (SEQ (LETT |ff| NIL . #26#)
                                    (LETT #10# |lunivf| . #26#) G190
                                    (COND
                                     ((OR (ATOM #10#)
                                          (PROGN
                                           (LETT |ff| (CAR #10#) . #26#)
                                           NIL))
                                      #27#))
                                    (SEQ
                                     (EXIT
                                      (LETT #11# (CONS (QCAR |ff|) #11#)
                                            . #26#)))
                                    (LETT #10# (CDR #10#) . #26#) #28# G191
                                    (EXIT (NREVERSE0 #11#))))
                              $)
                             (|MFINFACT;norm| |unifact| $))
                            (COND
                             (|testp|
                              (COND
                               ((SPADCALL
                                 (SPADCALL |lffc1| |clc| (QREFELT $ 58))
                                 (LENGTH |plist|) |leadcomp1| (QREFELT $ 170))
                                (SEQ
                                 (LETT |unifact|
                                       (PROGN
                                        (LETT #9# NIL . #26#)
                                        (SEQ (LETT |uf| NIL . #26#)
                                             (LETT #8# |lunivf| . #26#) G190
                                             (COND
                                              ((OR (ATOM #8#)
                                                   (PROGN
                                                    (LETT |uf| (CAR #8#)
                                                          . #26#)
                                                    NIL))
                                               #27#))
                                             (SEQ
                                              (EXIT
                                               (LETT #9# (CONS (QCAR |uf|) #9#)
                                                     . #26#)))
                                             (LETT #8# (CDR #8#) . #26#) #28#
                                             G191 (EXIT (NREVERSE0 #9#))))
                                       . #26#)
                                 (LETT |int| |lval| . #26#)
                                 (LETT |lffc| |lffc1| . #26#)
                                 (EXIT
                                  (COND
                                   (|testp|
                                    (LETT |leadcomp| |leadcomp1| . #26#))))))))
                             ('T
                              (SEQ
                               (LETT |unifact|
                                     (PROGN
                                      (LETT #7# NIL . #26#)
                                      (SEQ (LETT |uf| NIL . #26#)
                                           (LETT #6# |lunivf| . #26#) G190
                                           (COND
                                            ((OR (ATOM #6#)
                                                 (PROGN
                                                  (LETT |uf| (CAR #6#) . #26#)
                                                  NIL))
                                             #27#))
                                           (SEQ
                                            (EXIT
                                             (LETT #7# (CONS (QCAR |uf|) #7#)
                                                   . #26#)))
                                           (LETT #6# (CDR #6#) . #26#) #28#
                                           G191 (EXIT (NREVERSE0 #7#))))
                                     . #26#)
                               (LETT |int| |lval| . #26#)
                               (LETT |lffc| |lffc1| . #26#)
                               (EXIT
                                (COND
                                 (|testp|
                                  (LETT |leadcomp| |leadcomp1| . #26#)))))))))
                          (EXIT (PROGN (LETT #5# "foundit" . #26#) (GO #5#)))))
                        ((< |degum| |nfatt|)
                         (SEQ
                          (LETT |unifact|
                                (PROGN
                                 (LETT #4# NIL . #26#)
                                 (SEQ (LETT |uf| NIL . #26#)
                                      (LETT #3# |lunivf| . #26#) G190
                                      (COND
                                       ((OR (ATOM #3#)
                                            (PROGN
                                             (LETT |uf| (CAR #3#) . #26#)
                                             NIL))
                                        #27#))
                                      (SEQ
                                       (EXIT
                                        (LETT #4# (CONS (QCAR |uf|) #4#)
                                              . #26#)))
                                      (LETT #3# (CDR #3#) . #26#) #28# G191
                                      (EXIT (NREVERSE0 #4#))))
                                . #26#)
                          (LETT |lffc| |lffc1| . #26#)
                          (COND (|testp| (LETT |leadcomp| |leadcomp1| . #26#)))
                          (LETT |int| |lval| . #26#)
                          (LETT |leadtest| 'NIL . #26#)
                          (EXIT (LETT |nfatt| |nf| . #26#))))
                        ((< |nf| |nfatt|)
                         (SEQ
                          (COND
                           (|testp|
                            (LETT |leadtest|
                                  (COND
                                   ((SPADCALL
                                     (SPADCALL |lffc| |clc| (QREFELT $ 58))
                                     (LENGTH |plist|) |leadcomp|
                                     (QREFELT $ 170))
                                    'NIL)
                                   ('T 'T))
                                  . #26#))
                           ('T (LETT |leadtest| 'NIL . #26#)))
                          (COND
                           ((NULL |leadtest|)
                            (SEQ
                             (LETT |unifact|
                                   (PROGN
                                    (LETT #2# NIL . #26#)
                                    (SEQ (LETT |uf| NIL . #26#)
                                         (LETT #1# |lunivf| . #26#) G190
                                         (COND
                                          ((OR (ATOM #1#)
                                               (PROGN
                                                (LETT |uf| (CAR #1#) . #26#)
                                                NIL))
                                           #27#))
                                         (SEQ
                                          (EXIT
                                           (LETT #2# (CONS (QCAR |uf|) #2#)
                                                 . #26#)))
                                         (LETT #1# (CDR #1#) . #26#) #28# G191
                                         (EXIT (NREVERSE0 #2#))))
                                   . #26#)
                             (LETT |lffc| |lffc1| . #26#)
                             (COND
                              (|testp| (LETT |leadcomp| |leadcomp1| . #26#)))
                             (EXIT (LETT |int| |lval| . #26#)))))
                          (EXIT (LETT |nfatt| |nf| . #26#)))))))))))
             NIL #28# G191 (EXIT NIL)))
       #5# (EXIT #5#))
      (EXIT (VECTOR (CONS |int| |ltry|) |unifact| |lffc| |leadcomp|)))))) 

(DEFUN |MFINFACT;constantCase| (|m| |factorlist| $)
  (PROG (#1=#:G1026 |pp| #2=#:G1025 |lunm|)
    (RETURN
     (SEQ
      (LETT |lunm|
            (SPADCALL (SPADCALL |m| (QREFELT $ 130)) 'NIL (QREFELT $ 192))
            . #3=(|MFINFACT;constantCase|))
      (EXIT
       (CONS (SPADCALL (QCAR |lunm|) (QREFELT $ 97))
             (APPEND |factorlist|
                     (PROGN
                      (LETT #2# NIL . #3#)
                      (SEQ (LETT |pp| NIL . #3#) (LETT #1# (QCDR |lunm|) . #3#)
                           G190
                           (COND
                            ((OR (ATOM #1#)
                                 (PROGN (LETT |pp| (CAR #1#) . #3#) NIL))
                             (GO G191)))
                           (SEQ
                            (EXIT
                             (LETT #2#
                                   (CONS
                                    (CONS (SPADCALL (QCAR |pp|) (QREFELT $ 98))
                                          (QCDR |pp|))
                                    #2#)
                                   . #3#)))
                           (LETT #1# (CDR #1#) . #3#) (GO G190) G191
                           (EXIT (NREVERSE0 #2#))))))))))) 

(DEFUN |MFINFACT;simplify| (|m| |dm| |lvar| |lmdeg| $)
  (PROG (|flead| #1=#:G1032 |factorlist| |pol1| |i| #2=#:G1037 |x|)
    (RETURN
     (SEQ (LETT |factorlist| NIL . #3=(|MFINFACT;simplify|))
          (LETT |pol1| (|spadConstant| $ 32) . #3#)
          (SEQ (LETT |x| NIL . #3#) (LETT #2# |lvar| . #3#) G190
               (COND
                ((OR (ATOM #2#) (PROGN (LETT |x| (CAR #2#) . #3#) NIL))
                 (GO G191)))
               (SEQ
                (LETT |i|
                      (SPADCALL |lmdeg| (SPADCALL |x| |lvar| (QREFELT $ 193))
                                (QREFELT $ 194))
                      . #3#)
                (EXIT
                 (COND ((EQL |i| 0) "next value")
                       ('T
                        (SEQ
                         (LETT |pol1|
                               (SPADCALL |pol1|
                                         (SPADCALL (|spadConstant| $ 32) |x|
                                                   |i| (QREFELT $ 195))
                                         (QREFELT $ 196))
                               . #3#)
                         (EXIT
                          (LETT |factorlist|
                                (CONS (CONS (SPADCALL |x| (QREFELT $ 197)) |i|)
                                      |factorlist|)
                                . #3#)))))))
               (LETT #2# (CDR #2#) . #3#) (GO G190) G191 (EXIT NIL))
          (LETT |m|
                (PROG2
                    (LETT #1# (SPADCALL |m| |pol1| (QREFELT $ 89)) . #3#)
                    (QCDR #1#)
                  (|check-union| (QEQCAR #1# 0)
                                 (|SparseMultivariatePolynomial|
                                  (|SparseUnivariatePolynomial| (QREFELT $ 8))
                                  (QREFELT $ 6))
                                 #1#))
                . #3#)
          (EXIT
           (COND
            ((SPADCALL |m| (QREFELT $ 55))
             (|MFINFACT;constantCase| |m| |factorlist| $))
            ('T
             (SEQ (LETT |flead| (|MFINFACT;mFactor| |m| |dm| $) . #3#)
                  (PROGN
                   (RPLACD |flead| (APPEND |factorlist| (QCDR |flead|)))
                   (QCDR |flead|))
                  (EXIT |flead|))))))))) 

(DEFUN |MFINFACT;mfconst| (|um| |dm| |lvar| |ldeg| $)
  (PROG (#1=#:G1047 |lumf| #2=#:G1046 |lum| |um1| |factfin|)
    (RETURN
     (SEQ (LETT |factfin| NIL . #3=(|MFINFACT;mfconst|))
          (EXIT
           (COND
            ((NULL |lvar|)
             (SEQ
              (LETT |um1| (SPADCALL (ELT $ 198) |um| (QREFELT $ 201)) . #3#)
              (LETT |lum| (SPADCALL |um1| (QREFELT $ 182)) . #3#)
              (EXIT
               (PROGN
                (LETT #2# NIL . #3#)
                (SEQ (LETT |lumf| NIL . #3#)
                     (LETT #1# (SPADCALL |lum| (QREFELT $ 185)) . #3#) G190
                     (COND
                      ((OR (ATOM #1#)
                           (PROGN (LETT |lumf| (CAR #1#) . #3#) NIL))
                       (GO G191)))
                     (SEQ
                      (EXIT
                       (LETT #2#
                             (CONS
                              (SPADCALL (ELT $ 98) (QCAR |lumf|)
                                        (QREFELT $ 204))
                              #2#)
                             . #3#)))
                     (LETT #1# (CDR #1#) . #3#) (GO G190) G191
                     (EXIT (NREVERSE0 #2#)))))))
            ('T
             (|MFINFACT;intfact| |um| |lvar| |ldeg|
              (CONS (|spadConstant| $ 25) NIL) NIL $)))))))) 

(DEFUN |MFINFACT;mfpol| (|um| |dm| |lvar| |ldeg| $)
  (PROG (|tleadpol|)
    (RETURN
     (SEQ
      (LETT |tleadpol|
            (|MFINFACT;mFactor| (SPADCALL |um| (QREFELT $ 54)) |dm| $)
            |MFINFACT;mfpol|)
      (EXIT (|MFINFACT;intfact| |um| |lvar| |ldeg| |tleadpol| NIL $)))))) 

(DEFUN |MFINFACT;factor;PGF;20| (|m| $)
  (PROG (#1=#:G1065 #2=#:G1064 #3=#:G1066 #4=#:G1073 |u| |flist| |cm| |dx|
         #5=#:G1061 #6=#:G1060 #7=#:G1062 #8=#:G1072 #9=#:G662 |ld| #10=#:G1071
         |x| #11=#:G1070 |lv|)
    (RETURN
     (SEQ
      (LETT |lv| (SPADCALL |m| (QREFELT $ 205))
            . #12=(|MFINFACT;factor;PGF;20|))
      (EXIT
       (COND
        ((SPADCALL |lv| NIL (QREFELT $ 206))
         (SPADCALL |m| NIL (QREFELT $ 210)))
        (#13='T
         (SEQ
          (LETT |ld|
                (PROGN
                 (LETT #11# NIL . #12#)
                 (SEQ (LETT |x| NIL . #12#) (LETT #10# |lv| . #12#) G190
                      (COND
                       ((OR (ATOM #10#)
                            (PROGN (LETT |x| (CAR #10#) . #12#) NIL))
                        #14=(GO G191)))
                      (SEQ
                       (EXIT
                        (LETT #11#
                              (CONS (SPADCALL |m| |x| (QREFELT $ 211)) #11#)
                              . #12#)))
                      (LETT #10# (CDR #10#) . #12#) #15=(GO G190) G191
                      (EXIT (NREVERSE0 #11#))))
                . #12#)
          (LETT |dx|
                (PROGN
                 (LETT #5# NIL . #12#)
                 (SEQ (LETT #9# NIL . #12#) (LETT #8# |ld| . #12#) G190
                      (COND
                       ((OR (ATOM #8#) (PROGN (LETT #9# (CAR #8#) . #12#) NIL))
                        #14#))
                      (SEQ
                       (EXIT
                        (PROGN
                         (LETT #7# #9# . #12#)
                         (COND (#5# (LETT #6# (MIN #6# #7#) . #12#))
                               ('T
                                (PROGN
                                 (LETT #6# #7# . #12#)
                                 (LETT #5# 'T . #12#)))))))
                      (LETT #8# (CDR #8#) . #12#) #15# G191 (EXIT NIL))
                 (COND (#5# #6#) (#13# (|IdentityError| '|min|))))
                . #12#)
          (SETELT $ 10
                  (SPADCALL |lv| (SPADCALL |dx| |ld| (QREFELT $ 66))
                            (QREFELT $ 67)))
          (LETT |cm| (|MFINFACT;pushdown| |m| (QREFELT $ 10) $) . #12#)
          (LETT |flist| (|MFINFACT;mFactor| |cm| |dx| $) . #12#)
          (EXIT
           (SPADCALL (|MFINFACT;pushupconst| (QCAR |flist|) (QREFELT $ 10) $)
                     (PROGN
                      (LETT #1# NIL . #12#)
                      (SEQ (LETT |u| NIL . #12#)
                           (LETT #4# (QCDR |flist|) . #12#) G190
                           (COND
                            ((OR (ATOM #4#)
                                 (PROGN (LETT |u| (CAR #4#) . #12#) NIL))
                             #14#))
                           (SEQ
                            (EXIT
                             (PROGN
                              (LETT #3#
                                    (SPADCALL
                                     (|MFINFACT;pushup| (QCAR |u|)
                                      (QREFELT $ 10) $)
                                     (QCDR |u|) (QREFELT $ 212))
                                    . #12#)
                              (COND
                               (#1#
                                (LETT #2# (SPADCALL #2# #3# (QREFELT $ 213))
                                      . #12#))
                               ('T
                                (PROGN
                                 (LETT #2# #3# . #12#)
                                 (LETT #1# 'T . #12#)))))))
                           (LETT #4# (CDR #4#) . #12#) #15# G191 (EXIT NIL))
                      (COND (#1# #2#) (#13# (|spadConstant| $ 83))))
                     (QREFELT $ 214))))))))))) 

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

(DEFUN |MultFiniteFactorize;| (|#1| |#2| |#3| |#4|)
  (PROG (|pv$| $ |dv$| DV$4 DV$3 DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #1=(|MultFiniteFactorize|))
      (LETT DV$2 (|devaluate| |#2|) . #1#)
      (LETT DV$3 (|devaluate| |#3|) . #1#)
      (LETT DV$4 (|devaluate| |#4|) . #1#)
      (LETT |dv$| (LIST '|MultFiniteFactorize| DV$1 DV$2 DV$3 DV$4) . #1#)
      (LETT $ (GETREFV 216) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
      (|haddProp| |$ConstructorCache| '|MultFiniteFactorize|
                  (LIST DV$1 DV$2 DV$3 DV$4) (CONS 1 $))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (QSETREFV $ 7 |#2|)
      (QSETREFV $ 8 |#3|)
      (QSETREFV $ 9 |#4|)
      (QSETREFV $ 10 NIL)
      $)))) 

(MAKEPROP '|MultFiniteFactorize| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
              (|local| |#3|) (|local| |#4|) '|basicVar|
              (|SparseMultivariatePolynomial| 24 6)
              (|SparseUnivariatePolynomial| 11) (0 . |coerce|)
              (|NonNegativeInteger|) (5 . |degree|) (10 . |ground|) (|List| 11)
              (15 . |coefficients|) (|List| 6) (20 . |variables|)
              (25 . |setUnion|) (31 . |Zero|) (35 . |Zero|)
              (|SparseUnivariatePolynomial| 8) (39 . |Zero|)
              (43 . |minimumDegree|) (48 . |Zero|) (52 . |Zero|) (56 . |Zero|)
              (60 . |One|) (64 . |One|) (68 . |One|) (72 . |monomial|)
              (|Union| $ '"failed") (78 . |exquo|)
              (|SparseUnivariatePolynomial| 9) (|Mapping| 9 11)
              (|UnivariatePolynomialCategoryFunctions2| 11 12 9 36)
              (84 . |map|) (|Factored| $) (90 . |squareFree|) (|Factored| 36)
              (95 . |unit|) (|Mapping| 11 9)
              (|UnivariatePolynomialCategoryFunctions2| 9 36 11 12)
              (100 . |map|) (|Boolean|) (106 . |ground?|)
              (|Record| (|:| |factor| 36) (|:| |exponent| 65)) (|List| 49)
              (111 . |factors|) (116 . |content|) (121 . |degree|)
              (127 . |leadingCoefficient|) (132 . |ground?|)
              (137 . |leadingCoefficient|) (142 . ^) (148 . *) (154 . |One|)
              (158 . |exquo|) (|FactoringUtilities| 7 6 8 9)
              (164 . |variables|) (|List| 14) (169 . |degree|) (|Integer|)
              (175 . |position|) (181 . |elt|) (187 . |coerce|)
              (192 . |primeFactor|) (198 . *) (204 . |One|) (208 . *)
              |MFINFACT;factor;SupF;3| (214 . |minimumDegree|)
              (220 . |squareFree|) (|Factored| 9) (225 . |unit|)
              (|Record| (|:| |factor| 9) (|:| |exponent| 65)) (|List| 78)
              (230 . |factors|) (235 . |degree|) (241 . |One|) (245 . |One|)
              (249 . |member?|) (|SparseUnivariatePolynomial| $)
              (255 . |univariate|) (|List| $) (261 . |gcd|) (266 . |exquo|)
              (272 . =) (278 . =) (284 . |exquo|) (290 . |multivariate|)
              (296 . |leadingCoefficient|) (301 . =) (307 . |inv|)
              (312 . |coerce|) (317 . |coerce|) (322 . *) (328 . |monomial|)
              (334 . |size|) (|PositiveInteger|) (338 . |index|) (343 . +)
              (|List| 123) (|GenExEuclid| 24 123) (349 . |testModulus|)
              (|FiniteFieldPolynomialPackage| 8)
              (355 . |createIrreduciblePoly|) (|Union| 24 '"failed")
              (360 . |nextIrreduciblePoly|) (|Mapping| 24 8)
              (|MPolyCatFunctions2| 6 7 (|IndexedExponents| 6) 8 24 9 11)
              (365 . |map|)
              (|Record| (|:| |polfac| 17) (|:| |correct| 24)
                        (|:| |corrfact| 105))
              (|Union| 115 '"failed") (|Record| (|:| |irr| 11) (|:| |pow| 65))
              (|Record| (|:| |contp| 24) (|:| |factors| (|List| 117)))
              (|List| 24)
              (|LeadingCoefDetermination| 6 (|IndexedExponents| 6) 24 11)
              (371 . |distFact|) (381 . =) (|SparseUnivariatePolynomial| 24)
              (387 . |elt|) (393 . *) (|Union| (|List| 12) '"failed")
              (|MultivariateLifting| (|IndexedExponents| 6) 6 24 11)
              (399 . |lifting|) (410 . |primitivePart|) (415 . |retract|)
              (420 . |leadingMonomial|) (425 . |monomial|) (432 . +)
              (438 . |reductum|) (443 . |ground?|) (448 . |retract|)
              (453 . |univariate|) (459 . |Zero|) (463 . =) (469 . |degree|)
              (474 . |leadingCoefficient|) (479 . *) (485 . +)
              (491 . |reductum|) (496 . |ground?|) (501 . |retract|)
              (506 . |coerce|) (511 . |degree|) (516 . |monomial|)
              (523 . |reductum|) (528 . |random|) (532 . =) (538 . |Zero|)
              (542 . =) (548 . |degree|) (553 . |reductum|) (558 . |reductum|)
              (563 . |delete|) (569 . |delete|) (575 . =) (|List| 119)
              (581 . |member?|) (587 . |eval|) (594 . |unit?|)
              (|FactoringUtilities| (|IndexedExponents| 6) 6 24 11)
              (599 . |completeEval|) (606 . |minimumDegree|) (611 . |content|)
              (616 . |exquo|) (622 . |polCase|) (629 . |differentiate|)
              (634 . |differentiate|) (639 . |differentiate|)
              (644 . |differentiate|) (|Mapping| 24 24) (649 . |map|)
              (655 . |gcd|) (660 . |leadingCoefficient|) (665 . |coefficients|)
              (|Factored| 123) (|TwoFactorize| 8) (670 . |generalTwoFactor|)
              (|Record| (|:| |factor| 123) (|:| |exponent| 65)) (|List| 183)
              (675 . |factors|) (680 . |unit|) (685 . |retract|) (690 . *)
              (|Record| (|:| |irr| 24) (|:| |pow| 65))
              (|Record| (|:| |cont| 8) (|:| |factors| (|List| 189)))
              (|DistinctDegreeFactorize| 8 24) (696 . |distdfact|)
              (702 . |position|) (708 . |elt|) (714 . |monomial|) (721 . *)
              (727 . |coerce|) (732 . |ground|) (|Mapping| 24 11)
              (|UnivariatePolynomialCategoryFunctions2| 11 12 24 123)
              (737 . |map|) (|Mapping| 11 24)
              (|UnivariatePolynomialCategoryFunctions2| 24 123 11 12)
              (743 . |map|) (749 . |variables|) (754 . =)
              (|Union| '"nil" '"sqfr" '"irred" '"prime")
              (|Record| (|:| |flg| 207) (|:| |fctr| 9) (|:| |xpnt| 65))
              (|List| 208) (760 . |makeFR|) (766 . |degree|)
              (772 . |primeFactor|) (778 . *) (784 . *)
              |MFINFACT;factor;PGF;20|)
           '#(|factor| 790) 'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 215
                                                 '(1 12 0 11 13 1 12 14 0 15 1
                                                   12 11 0 16 1 12 17 0 18 1 11
                                                   19 0 20 2 19 0 0 0 21 0 7 0
                                                   22 0 8 0 23 0 24 0 25 1 12
                                                   14 0 26 0 9 0 27 0 12 0 28 0
                                                   11 0 29 0 8 0 30 0 9 0 31 0
                                                   11 0 32 2 12 0 11 14 33 2 12
                                                   34 0 0 35 2 38 36 37 12 39 1
                                                   36 40 0 41 1 42 36 0 43 2 45
                                                   12 44 36 46 1 12 47 0 48 1
                                                   42 50 0 51 1 12 11 0 52 2 11
                                                   14 0 6 53 1 12 11 0 54 1 11
                                                   47 0 55 1 11 24 0 56 2 24 0
                                                   0 14 57 2 24 0 0 0 58 0 24 0
                                                   59 2 24 34 0 0 60 1 61 19 36
                                                   62 2 61 63 36 19 64 2 63 65
                                                   14 0 66 2 19 6 0 65 67 1 36
                                                   0 9 68 2 42 0 36 65 69 2 42
                                                   0 0 0 70 0 42 0 71 2 42 0 36
                                                   0 72 2 11 63 0 19 74 1 9 40
                                                   0 75 1 76 9 0 77 1 76 79 0
                                                   80 2 11 63 0 19 81 0 12 0 82
                                                   0 76 0 83 2 63 47 14 0 84 2
                                                   11 85 0 6 86 1 11 0 87 88 2
                                                   11 34 0 0 89 2 6 47 0 0 90 2
                                                   11 47 0 0 91 2 12 34 0 11 92
                                                   2 11 0 85 6 93 1 24 8 0 94 2
                                                   8 47 0 0 95 1 8 0 0 96 1 24
                                                   0 8 97 1 11 0 24 98 2 12 0
                                                   11 0 99 2 24 0 8 14 100 0 8
                                                   14 101 1 8 0 102 103 2 24 0
                                                   0 0 104 2 106 47 24 105 107
                                                   1 108 24 102 109 1 108 110
                                                   24 111 2 113 11 112 9 114 6
                                                   120 116 24 105 118 119 19
                                                   119 121 2 24 47 0 0 122 2
                                                   105 123 0 65 124 2 123 0 24
                                                   0 125 7 127 126 12 19 105
                                                   119 17 63 24 128 1 12 0 0
                                                   129 1 11 24 0 130 1 11 0 0
                                                   131 3 9 0 0 19 63 132 2 9 0
                                                   0 0 133 1 11 0 0 134 1 9 47
                                                   0 135 1 9 8 0 136 2 9 85 0 6
                                                   137 0 36 0 138 2 36 47 0 0
                                                   139 1 36 14 0 140 1 36 9 0
                                                   141 2 11 0 24 0 142 2 11 0 0
                                                   0 143 1 36 0 0 144 1 24 47 0
                                                   145 1 24 8 0 146 1 9 0 8 147
                                                   1 24 14 0 148 3 9 0 0 6 14
                                                   149 1 24 0 0 150 0 8 0 151 2
                                                   12 47 0 0 152 0 123 0 153 2
                                                   123 47 0 0 154 1 123 14 0
                                                   155 1 12 0 0 156 1 123 0 0
                                                   157 2 63 0 0 65 158 2 19 0 0
                                                   65 159 2 17 47 0 0 160 2 161
                                                   47 119 0 162 3 11 0 0 19 119
                                                   163 1 24 47 0 164 3 165 123
                                                   12 19 119 166 1 123 14 0 167
                                                   1 123 24 0 168 2 123 34 0 24
                                                   169 3 120 47 24 14 119 170 1
                                                   123 0 0 171 1 8 0 0 172 1 24
                                                   0 0 173 1 12 0 0 174 2 123 0
                                                   175 0 176 1 123 0 87 177 1
                                                   123 24 0 178 1 123 119 0 179
                                                   1 181 180 123 182 1 180 184
                                                   0 185 1 180 123 0 186 1 123
                                                   24 0 187 2 24 0 8 0 188 2
                                                   191 190 24 47 192 2 19 65 6
                                                   0 193 2 63 14 0 65 194 3 11
                                                   0 0 6 14 195 2 11 0 0 0 196
                                                   1 11 0 6 197 1 11 24 0 198 2
                                                   200 123 199 12 201 2 203 12
                                                   202 123 204 1 9 19 0 205 2
                                                   19 47 0 0 206 2 76 0 9 209
                                                   210 2 9 14 0 6 211 2 76 0 9
                                                   65 212 2 76 0 0 0 213 2 76 0
                                                   9 0 214 1 0 42 36 73 1 0 76
                                                   9 215)))))
           '|lookupComplete|)) 
