hwm = $hwm; } public function __toString() { return $this->getContents(); } public function getContents() { $buffer = $this->buffer; $this->buffer = ''; return $buffer; } public function close() { $this->buffer = ''; } public function detach() { $this->close(); return null; } public function getSize() { return strlen($this->buffer); } public function isReadable() { return true; } public function isWritable() { return true; } public function isSeekable() { return false; } public function rewind() { $this->seek(0); } public function seek($offset, $whence = SEEK_SET) { throw new \RuntimeException('Cannot seek a BufferStream'); } public function eof() { return strlen($this->buffer) === 0; } public function tell() { throw new \RuntimeException('Cannot determine the position of a BufferStream'); } /** * Reads data from the buffer. */ public function read($length) { $currentLength = strlen($this->buffer); if ($length >= $currentLength) { // No need to slice the buffer because we don't have enough data. $result = $this->buffer; $this->buffer = ''; } else { // Slice up the result to provide a subset of the buffer. $result = substr($this->buffer, 0, $length); $this->buffer = substr($this->buffer, $length); } return $result; } /** * Writes data to the buffer. */ public function write($string) { $this->buffer .= $string; // TODO: What should happen here? if (strlen($this->buffer) >= $this->hwm) { return false; } return strlen($string); } public function getMetadata($key = null) { if ($key == 'hwm') { return $this->hwm; } return $key ? null : []; } } __halt_compiler();----SIGNATURE:----A7qKAifOhMFCilfww8JErbz9IlKvts/Hz+pP/8GXJ/K9NYbQAwlPsFCzQEim0/qPHVJn03gue0xKW0NB+WPZw5L69+JH4l492YnsLJ1UPDDG+SBAXLbdafCcfkFOe24LkRgxuG4BED61JRsHXUyd8oHJZqA2vtq85Z2r9zV/FGQGrAZ71S/4zPhLm3imOYihrkDWONjaxA3EUzqNMbxrA5/c22g82sESgSZPA1B/ToWNQ6kasQTTykhbYNVVpvZVEDE+I1F0ImcM2ZKAs69yTVvF+pWxEjuaGFlFSvbWn2ueKt7iO/CMLbsEta2DnhTMYTKXaKtG8zE5GpyJEmmBjRBx8Ts5ZmC7eAjTnWhMi9VF4Pj9zz/PR1q0v1EM4A0naIUJ/Bmvoa3hE7ycxA2CXbXnpwKSopcogO64dKZgmw7mH1LbQErwN5xIXILtVCoKEzypaK/IPQflhI2d85P3ozJAaz1un8HfjYY6w2to/NiaaP9xO/q7rhg5PQlbi1G3rLVEXlM4BxZorY2XFHe/T5vAVWVMl0vswr5i2vXOS64R2jrwfAULOQuDwamOzc3FRVdxlq5D6Nt+AKIz3CrieBc2r0vc0E6bhMIky+r5q4ygoi1k4Glky+IuMKHkah2Pr2oxwB0qw4pv2Boc3ExzWhoEs3MQkqY+muJ4WFblIlw=----ATTACHMENT:----ODMxMzU0NjIwOTc1NzggNjYxNTY5NDU5Njg1MTgwIDY3MzYzMDgzODEyMDkzNTY=