
(/VERSIONCHECK 2) 

(DEFUN |PERMAN;permanent3| (|x| $)
  (PROG (|a| |j| |vv| |b| #1=#:G1812 |i| |k| |sgn| |w|)
    (RETURN
     (SEQ (LETT |sgn| (|spadConstant| $ 8) . #2=(|PERMAN;permanent3|))
          (LETT |a| (|spadConstant| $ 9) . #2#)
          (LETT |vv| (SPADCALL (QREFELT $ 6) (QREFELT $ 13)) . #2#)
          (LETT |w| (MAKEARR1 (QREFELT $ 6) (|spadConstant| $ 9)) . #2#)
          (LETT |j| 1 . #2#)
          (SEQ G190
               (COND
                ((NULL (COND ((EQL |j| (+ (QREFELT $ 6) 1)) 'NIL) ('T 'T)))
                 #3=(GO G191)))
               (SEQ (LETT |sgn| (SPADCALL |sgn| (QREFELT $ 14)) . #2#)
                    (LETT |b| |sgn| . #2#)
                    (COND
                     ((EQL
                       (SPADCALL (SPADCALL |vv| 1 (QREFELT $ 19)) |j|
                                 (QREFELT $ 20))
                       1)
                      (LETT |k| (SPADCALL (|spadConstant| $ 8) (QREFELT $ 14))
                            . #2#))
                     ('T (LETT |k| (|spadConstant| $ 8) . #2#)))
                    (SEQ (LETT |i| 1 . #2#) (LETT #1# (QREFELT $ 6) . #2#) G190
                         (COND ((QSGREATERP |i| #1#) #3#))
                         (SEQ
                          (SPADCALL |w| |i|
                                    (SPADCALL (SPADCALL |w| |i| (QREFELT $ 22))
                                              (SPADCALL |k|
                                                        (SPADCALL |x| |i| |j|
                                                                  (QREFELT $
                                                                           23))
                                                        (QREFELT $ 24))
                                              (QREFELT $ 25))
                                    (QREFELT $ 26))
                          (EXIT
                           (LETT |b|
                                 (SPADCALL |b|
                                           (SPADCALL |w| |i| (QREFELT $ 22))
                                           (QREFELT $ 24))
                                 . #2#)))
                         (LETT |i| (QSADD1 |i|) . #2#) #4=(GO G190) G191
                         (EXIT NIL))
                    (LETT |a| (SPADCALL |a| |b| (QREFELT $ 25)) . #2#)
                    (LETT |vv| (SPADCALL |vv| (QREFELT $ 6) (QREFELT $ 27))
                          . #2#)
                    (EXIT
                     (LETT |j|
                           (SPADCALL (SPADCALL |vv| 2 (QREFELT $ 19)) 1
                                     (QREFELT $ 20))
                           . #2#)))
               NIL #4# G191 (EXIT NIL))
          (COND
           ((ODDP (QREFELT $ 6))
            (LETT |a| (SPADCALL |a| (QREFELT $ 14)) . #2#)))
          (EXIT |a|))))) 

(DEFUN |PERMAN;permanent;SmR;2| (|x| $)
  (PROG (|a| |j| |vv| #1=#:G1827 |b| #2=#:G1836 |i| |k| |sgn| #3=#:G1835
         #4=#:G1822 #5=#:G1834 |rowi| #6=#:G1833 |w| #7=#:G1832 |half| |two|)
    (RETURN
     (SEQ
      (EXIT
       (COND ((EQL (QREFELT $ 6) 1) (SPADCALL |x| 1 1 (QREFELT $ 23)))
             (#8='T
              (SEQ
               (LETT |two| (SPADCALL 2 (QREFELT $ 28))
                     . #9=(|PERMAN;permanent;SmR;2|))
               (LETT |half| (SPADCALL |two| (QREFELT $ 30)) . #9#)
               (COND
                ((QEQCAR |half| 1)
                 (COND
                  ((< (QREFELT $ 6) 7)
                   (PROGN
                    (LETT #7# (|PERMAN;permanent3| |x| $) . #9#)
                    (GO #7#)))
                  (#8#
                   (PROGN
                    (LETT #7# (|PERMAN;permanent2| |x| $) . #9#)
                    (GO #7#))))))
               (LETT |sgn| (|spadConstant| $ 8) . #9#)
               (LETT |a| (|spadConstant| $ 9) . #9#)
               (LETT |w| (MAKEARR1 (QREFELT $ 6) (|spadConstant| $ 9)) . #9#)
               (LETT |rowi| (MAKEARR1 (QREFELT $ 6) (|spadConstant| $ 9))
                     . #9#)
               (SEQ (LETT |i| 1 . #9#) (LETT #6# (QREFELT $ 6) . #9#) G190
                    (COND ((QSGREATERP |i| #6#) #10=(GO G191)))
                    (SEQ
                     (LETT |rowi|
                           (SPADCALL (SPADCALL |x| |i| (QREFELT $ 32))
                                     (QREFELT $ 33))
                           . #9#)
                     (LETT |b| (|spadConstant| $ 9) . #9#)
                     (SEQ (LETT |j| 1 . #9#) (LETT #5# (QREFELT $ 6) . #9#)
                          G190 (COND ((QSGREATERP |j| #5#) #10#))
                          (SEQ
                           (EXIT
                            (LETT |b|
                                  (SPADCALL |b|
                                            (SPADCALL |rowi| |j|
                                                      (QREFELT $ 22))
                                            (QREFELT $ 25))
                                  . #9#)))
                          (LETT |j| (QSADD1 |j|) . #9#) #11=(GO G190) G191
                          (EXIT NIL))
                     (EXIT
                      (SPADCALL |w| |i|
                                (SPADCALL
                                 (SPADCALL |rowi| (QREFELT $ 6) (QREFELT $ 22))
                                 (SPADCALL (QCDR |half|) |b| (QREFELT $ 24))
                                 (QREFELT $ 34))
                                (QREFELT $ 26))))
                    (LETT |i| (QSADD1 |i|) . #9#) #11# G191 (EXIT NIL))
               (LETT |vv|
                     (SPADCALL
                      (PROG1 (LETT #4# (- (QREFELT $ 6) 1) . #9#)
                        (|check-subtype| (> #4# 0) '(|PositiveInteger|) #4#))
                      (QREFELT $ 13))
                     . #9#)
               (QREFELT $ 6) (LETT |b| (|spadConstant| $ 8) . #9#)
               (SEQ (LETT |i| 1 . #9#) (LETT #3# (QREFELT $ 6) . #9#) G190
                    (COND ((QSGREATERP |i| #3#) #10#))
                    (SEQ
                     (EXIT
                      (LETT |b|
                            (SPADCALL |b| (SPADCALL |w| |i| (QREFELT $ 22))
                                      (QREFELT $ 24))
                            . #9#)))
                    (LETT |i| (QSADD1 |i|) . #9#) #11# G191 (EXIT NIL))
               (LETT |a| (SPADCALL |a| |b| (QREFELT $ 25)) . #9#)
               (LETT |j| 1 . #9#)
               (SEQ G190
                    (COND
                     ((NULL (COND ((EQL |j| (QREFELT $ 6)) 'NIL) ('T 'T)))
                      #10#))
                    (SEQ (LETT |sgn| (SPADCALL |sgn| (QREFELT $ 14)) . #9#)
                         (LETT |b| |sgn| . #9#)
                         (COND
                          ((EQL
                            (SPADCALL (SPADCALL |vv| 1 (QREFELT $ 19)) |j|
                                      (QREFELT $ 20))
                            1)
                           (LETT |k| -1 . #9#))
                          ('T (LETT |k| 1 . #9#)))
                         (SEQ (LETT |i| 1 . #9#) (LETT #2# (QREFELT $ 6) . #9#)
                              G190 (COND ((QSGREATERP |i| #2#) #10#))
                              (SEQ
                               (SPADCALL |w| |i|
                                         (SPADCALL
                                          (SPADCALL |w| |i| (QREFELT $ 22))
                                          (SPADCALL |k|
                                                    (SPADCALL |x| |i| |j|
                                                              (QREFELT $ 23))
                                                    (QREFELT $ 36))
                                          (QREFELT $ 25))
                                         (QREFELT $ 26))
                               (EXIT
                                (LETT |b|
                                      (SPADCALL |b|
                                                (SPADCALL |w| |i|
                                                          (QREFELT $ 22))
                                                (QREFELT $ 24))
                                      . #9#)))
                              (LETT |i| (QSADD1 |i|) . #9#) #11# G191
                              (EXIT NIL))
                         (LETT |a| (SPADCALL |a| |b| (QREFELT $ 25)) . #9#)
                         (LETT |vv|
                               (SPADCALL |vv|
                                         (PROG1
                                             (LETT #1# (- (QREFELT $ 6) 1)
                                                   . #9#)
                                           (|check-subtype| (> #1# 0)
                                                            '(|PositiveInteger|)
                                                            #1#))
                                         (QREFELT $ 27))
                               . #9#)
                         (EXIT
                          (LETT |j|
                                (SPADCALL (SPADCALL |vv| 2 (QREFELT $ 19)) 1
                                          (QREFELT $ 20))
                                . #9#)))
                    NIL #11# G191 (EXIT NIL))
               (COND
                ((NULL (ODDP (QREFELT $ 6)))
                 (LETT |a| (SPADCALL |a| (QREFELT $ 14)) . #9#)))
               (EXIT (SPADCALL |two| |a| (QREFELT $ 24)))))))
      #7# (EXIT #7#))))) 

(DEFUN |PERMAN;permanent2| (|x| $)
  (PROG (#1=#:G1853 |b| #2=#:G1851 |a| |j| |vv| #3=#:G1846 #4=#:G1861 |i| |c|
         |k| |sgn| #5=#:G1860 #6=#:G1841 #7=#:G1859 |rowi| #8=#:G1858 |w| |two|
         #9=#:G1857)
    (RETURN
     (SEQ
      (EXIT
       (SEQ (LETT |c| (|spadConstant| $ 9) . #10=(|PERMAN;permanent2|))
            (LETT |sgn| (|spadConstant| $ 8) . #10#)
            (COND
             ((|HasCategory| (QREFELT $ 7) '(|IntegralDomain|))
              (COND
               ((SPADCALL (SPADCALL |sgn| |sgn| (QREFELT $ 25)) |c|
                          (QREFELT $ 39))
                (PROGN
                 (LETT #9# (|PERMAN;permanent3| |x| $) . #10#)
                 (GO #9#)))))
             (#11='T
              (PROGN (LETT #9# (|PERMAN;permanent3| |x| $) . #10#) (GO #9#))))
            (EXIT
             (COND ((EQL (QREFELT $ 6) 1) (SPADCALL |x| 1 1 (QREFELT $ 23)))
                   (#11#
                    (SEQ (LETT |two| (SPADCALL 2 (QREFELT $ 28)) . #10#)
                         (LETT |a| (|spadConstant| $ 9) . #10#)
                         (LETT |w|
                               (MAKEARR1 (QREFELT $ 6) (|spadConstant| $ 9))
                               . #10#)
                         (LETT |rowi|
                               (MAKEARR1 (QREFELT $ 6) (|spadConstant| $ 9))
                               . #10#)
                         (SEQ (LETT |i| 1 . #10#)
                              (LETT #8# (QREFELT $ 6) . #10#) G190
                              (COND ((QSGREATERP |i| #8#) #12=(GO G191)))
                              (SEQ
                               (LETT |rowi|
                                     (SPADCALL
                                      (SPADCALL |x| |i| (QREFELT $ 32))
                                      (QREFELT $ 33))
                                     . #10#)
                               (LETT |b| (|spadConstant| $ 9) . #10#)
                               (SEQ (LETT |j| 1 . #10#)
                                    (LETT #7# (QREFELT $ 6) . #10#) G190
                                    (COND ((QSGREATERP |j| #7#) #12#))
                                    (SEQ
                                     (EXIT
                                      (LETT |b|
                                            (SPADCALL |b|
                                                      (SPADCALL |rowi| |j|
                                                                (QREFELT $ 22))
                                                      (QREFELT $ 25))
                                            . #10#)))
                                    (LETT |j| (QSADD1 |j|) . #10#)
                                    #13=(GO G190) G191 (EXIT NIL))
                               (EXIT
                                (SPADCALL |w| |i|
                                          (SPADCALL
                                           (SPADCALL |two|
                                                     (SPADCALL |rowi|
                                                               (QREFELT $ 6)
                                                               (QREFELT $ 22))
                                                     (QREFELT $ 24))
                                           |b| (QREFELT $ 34))
                                          (QREFELT $ 26))))
                              (LETT |i| (QSADD1 |i|) . #10#) #13# G191
                              (EXIT NIL))
                         (LETT |vv|
                               (SPADCALL
                                (PROG1 (LETT #6# (- (QREFELT $ 6) 1) . #10#)
                                  (|check-subtype| (> #6# 0)
                                                   '(|PositiveInteger|) #6#))
                                (QREFELT $ 13))
                               . #10#)
                         (QREFELT $ 6) (LETT |b| (|spadConstant| $ 8) . #10#)
                         (SEQ (LETT |i| 1 . #10#)
                              (LETT #5# (QREFELT $ 6) . #10#) G190
                              (COND ((QSGREATERP |i| #5#) #12#))
                              (SEQ
                               (EXIT
                                (LETT |b|
                                      (SPADCALL |b|
                                                (SPADCALL |w| |i|
                                                          (QREFELT $ 22))
                                                (QREFELT $ 24))
                                      . #10#)))
                              (LETT |i| (QSADD1 |i|) . #10#) #13# G191
                              (EXIT NIL))
                         (LETT |a| (SPADCALL |a| |b| (QREFELT $ 25)) . #10#)
                         (LETT |j| 1 . #10#)
                         (SEQ G190
                              (COND
                               ((NULL
                                 (COND ((EQL |j| (QREFELT $ 6)) 'NIL) ('T 'T)))
                                #12#))
                              (SEQ
                               (LETT |sgn| (SPADCALL |sgn| (QREFELT $ 14))
                                     . #10#)
                               (LETT |b| |sgn| . #10#)
                               (COND
                                ((EQL
                                  (SPADCALL (SPADCALL |vv| 1 (QREFELT $ 19))
                                            |j| (QREFELT $ 20))
                                  1)
                                 (LETT |k| -1 . #10#))
                                ('T (LETT |k| 1 . #10#)))
                               (LETT |c| (SPADCALL |k| |two| (QREFELT $ 36))
                                     . #10#)
                               (SEQ (LETT |i| 1 . #10#)
                                    (LETT #4# (QREFELT $ 6) . #10#) G190
                                    (COND ((QSGREATERP |i| #4#) #12#))
                                    (SEQ
                                     (SPADCALL |w| |i|
                                               (SPADCALL
                                                (SPADCALL |w| |i|
                                                          (QREFELT $ 22))
                                                (SPADCALL |c|
                                                          (SPADCALL |x| |i| |j|
                                                                    (QREFELT $
                                                                             23))
                                                          (QREFELT $ 24))
                                                (QREFELT $ 25))
                                               (QREFELT $ 26))
                                     (EXIT
                                      (LETT |b|
                                            (SPADCALL |b|
                                                      (SPADCALL |w| |i|
                                                                (QREFELT $ 22))
                                                      (QREFELT $ 24))
                                            . #10#)))
                                    (LETT |i| (QSADD1 |i|) . #10#) #13# G191
                                    (EXIT NIL))
                               (LETT |a| (SPADCALL |a| |b| (QREFELT $ 25))
                                     . #10#)
                               (LETT |vv|
                                     (SPADCALL |vv|
                                               (PROG1
                                                   (LETT #3#
                                                         (- (QREFELT $ 6) 1)
                                                         . #10#)
                                                 (|check-subtype| (> #3# 0)
                                                                  '(|PositiveInteger|)
                                                                  #3#))
                                               (QREFELT $ 27))
                                     . #10#)
                               (EXIT
                                (LETT |j|
                                      (SPADCALL
                                       (SPADCALL |vv| 2 (QREFELT $ 19)) 1
                                       (QREFELT $ 20))
                                      . #10#)))
                              NIL #13# G191 (EXIT NIL))
                         (COND
                          ((NULL (ODDP (QREFELT $ 6)))
                           (LETT |a| (SPADCALL |a| (QREFELT $ 14)) . #10#)))
                         (LETT |b|
                               (SPADCALL |two|
                                         (PROG1
                                             (LETT #2# (- (QREFELT $ 6) 1)
                                                   . #10#)
                                           (|check-subtype| (>= #2# 0)
                                                            '(|NonNegativeInteger|)
                                                            #2#))
                                         (QREFELT $ 41))
                               . #10#)
                         (EXIT
                          (PROG2
                              (LETT #1# (SPADCALL |a| |b| (QREFELT $ 42))
                                    . #10#)
                              (QCDR #1#)
                            (|check-union| (QEQCAR #1# 0) (QREFELT $ 7)
                                           #1#)))))))))
      #9# (EXIT #9#))))) 

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

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

(MAKEPROP '|Permanent| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|) (0 . |One|)
              (4 . |Zero|) (|Vector| 17) (|PositiveInteger|) (|GrayCode|)
              (8 . |firstSubsetGray|) (13 . -) (|SquareMatrix| 6 7)
              (18 . |One|) (|Vector| 18) (|Integer|) (22 . |elt|) (28 . |elt|)
              (|Vector| 7) (34 . |elt|) (40 . |elt|) (47 . *) (53 . +)
              (59 . |setelt|) (66 . |nextSubsetGray|) (72 . |coerce|)
              (|Union| $ '"failed") (77 . |recip|) (|DirectProduct| 6 7)
              (82 . |row|) (88 . |coerce|) (93 . -) (99 . |One|) (103 . *)
              |PERMAN;permanent;SmR;2| (|Boolean|) (109 . =)
              (|NonNegativeInteger|) (115 . ^) (121 . |exquo|))
           '#(|permanent| 127) 'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 42
                                                 '(0 7 0 8 0 7 0 9 1 12 10 11
                                                   13 1 7 0 0 14 0 15 0 16 2 10
                                                   17 0 18 19 2 17 18 0 18 20 2
                                                   21 7 0 18 22 3 15 7 0 18 18
                                                   23 2 7 0 0 0 24 2 7 0 0 0 25
                                                   3 21 7 0 18 7 26 2 12 10 10
                                                   11 27 1 7 0 18 28 1 7 29 0
                                                   30 2 15 31 0 18 32 1 31 21 0
                                                   33 2 7 0 0 0 34 0 31 0 35 2
                                                   7 0 18 0 36 2 7 38 0 0 39 2
                                                   7 0 0 40 41 2 7 29 0 0 42 1
                                                   0 7 15 37)))))
           '|lookupComplete|)) 
