original_string: public function sanitizePermissionsValue($permissions, $revision)
      {
          if (is_array($permissions)) {
              $legacyOptions = ['print' => 4, 'modify' => 8, 'copy' => 16, 'annot-forms' => 32];
              foreach ($permissions as $key => $value) {
                  if (isset($legacyOptions[$value])) {
                      $permissions[$key] = $legacyOptions[$value];
                  } elseif (!is_int($value)) {
                      throw new \InvalidArgumentException(
                          sprintf('Invalid permission value: %s', $value)
                      );
                  }
              }
  
              $permissions = array_sum($permissions);
          }
  
          $permissions = (int)$permissions;
  
          $allowed = self::PERM_PRINT
              | self::PERM_MODIFY
              | self::PERM_COPY
              | self::PERM_ANNOT;
  
          if ($revision > 2) {
              $allowed |= self::PERM_FILL_FORM
                  | self::PERM_ACCESSIBILITY
                  | self::PERM_ASSEMBLE
                  | self::PERM_DIGITAL_PRINT;
          }
  
          if (($allowed & $permissions) !== $permissions) {
              throw new \InvalidArgumentException(
                  sprintf(
                      'Permission flags (%s) are not allowed for this security handler revision %s.',
                      $permissions,
                      $revision
                  )
              );
          }
  
          $permissions = 61632 | 0xFFFF0000 | $permissions;
          if ($revision < 3) {
              // 3840 = bit 9 to 12 to 1 - we are < revision 3
              $permissions |= 3840;
          }
  
          // PDF integer are 32 bit integers. Ensure this.
          if (PHP_INT_SIZE === 4 || ($permissions) < (2147483647)) {
              return $permissions;
          }
  
          return ($permissions | (4294967295 << 32));
      }
code: public function sanitizePermissionsValue($permissions, $revision)
      {
          if (is_array($permissions)) {
              $legacyOptions = ['print' => 4, 'modify' => 8, 'copy' => 16, 'annot-forms' => 32];
              foreach ($permissions as $key => $value) {
                  if (isset($legacyOptions[$value])) {
                      $permissions[$key] = $legacyOptions[$value];
                  } elseif (!is_int($value)) {
                      throw new \InvalidArgumentException(
                          sprintf('Invalid permission value: %s', $value)
                      );
                  }
              }
  
              $permissions = array_sum($permissions);
          }
  
          $permissions = (int)$permissions;
  
          $allowed = self::PERM_PRINT
              | self::PERM_MODIFY
              | self::PERM_COPY
              | self::PERM_ANNOT;
  
          if ($revision > 2) {
              $allowed |= self::PERM_FILL_FORM
                  | self::PERM_ACCESSIBILITY
                  | self::PERM_ASSEMBLE
                  | self::PERM_DIGITAL_PRINT;
          }
  
          if (($allowed & $permissions) !== $permissions) {
              throw new \InvalidArgumentException(
                  sprintf(
                      'Permission flags (%s) are not allowed for this security handler revision %s.',
                      $permissions,
                      $revision
                  )
              );
          }
  
          $permissions = 61632 | 0xFFFF0000 | $permissions;
          if ($revision < 3) {
              // 3840 = bit 9 to 12 to 1 - we are < revision 3
              $permissions |= 3840;
          }
  
          // PDF integer are 32 bit integers. Ensure this.
          if (PHP_INT_SIZE === 4 || ($permissions) < (2147483647)) {
              return $permissions;
          }
  
          return ($permissions | (4294967295 << 32));
      }
code_tokens: public function sanitizePermissionsValue ( $ permissions , $ revision ) { if ( is_array ( $ permissions ) ) { $ legacyOptions = [ 'print' => 4 , 'modify' => 8 , 'copy' => 16 , 'annot-forms' => 32 ] ; foreach ( $ permissions as $ key => $ value ) { if ( isset ( $ legacyOptions [ $ value ] ) ) { $ permissions [ $ key ] = $ legacyOptions [ $ value ] ; } elseif ( ! is_int ( $ value ) ) { throw new \ InvalidArgumentException ( sprintf ( 'Invalid permission value: %s' , $ value ) ) ; } } $ permissions = array_sum ( $ permissions ) ; } $ permissions = ( int ) $ permissions ; $ allowed = self :: PERM_PRINT | self :: PERM_MODIFY | self :: PERM_COPY | self :: PERM_ANNOT ; if ( $ revision > 2 ) { $ allowed |= self :: PERM_FILL_FORM | self :: PERM_ACCESSIBILITY | self :: PERM_ASSEMBLE | self :: PERM_DIGITAL_PRINT ; } if ( ( $ allowed & $ permissions ) !== $ permissions ) { throw new \ InvalidArgumentException ( sprintf ( 'Permission flags (%s) are not allowed for this security handler revision %s.' , $ permissions , $ revision ) ) ; } $ permissions = 61632 | 0xFFFF0000 | $ permissions ; if ( $ revision < 3 ) { // 3840 = bit 9 to 12 to 1 - we are < revision 3 $ permissions |= 3840 ; } // PDF integer are 32 bit integers. Ensure this. if ( PHP_INT_SIZE === 4 || ( $ permissions ) < ( 2147483647 ) ) { return $ permissions ; } return ( $ permissions | ( 4294967295 << 32 ) ) ; }
docstring: Ensures a valid permission value.
  
  @param int[]|int$permissions
  @param int $revision
  @return int
docstring_tokens: Ensures a valid permission value .