a àMÒe ã @ sF d dl Z d dlZd dlmZmZmZ d dlZd dlZG dd„ dƒZ dS )é N)ÚIteratorÚOptionalÚTuplec @ sô e Zd Zd(eedœdd„Zedœdd„Zeedœd d „Zd)eedœd d„Zedœdd„Z edœdd„Z edœdd„Zedœdd„Zedœdd„Z eedœdd„Zd*ed ddœdd „Zedd!œd"d#„Zejeedœd$d%„ƒZejedœd&d'„ƒZdS )+ÚParserr )ÚwireÚcurrentc C s0 || _ d| _t| j ƒ| _|r&| |¡ || _d S ©Nr )r r ÚlenÚendÚseekÚfurthest)Úselfr r © r ú,/usr/lib/python3.9/site-packages/dns/wire.pyÚ__init__ s zParser.__init__)Úreturnc C s | j | j S ©N)r r ©r r r r Ú remaining s zParser.remaining)Úsizer c C sL || ¡ krtjj‚| j| j| j| … }| j|7 _t| j| jƒ| _|S r )r ÚdnsÚ exceptionÚ FormErrorr r Úmaxr )r r Úoutputr r r Ú get_bytes s zParser.get_bytesé )Úlength_sizer c C s t | |¡d¡}| |¡S )NÚbig©ÚintÚ from_bytesr )r r Úlengthr r r Úget_counted_bytes s zParser.get_counted_bytesc C s | | ¡ ¡S r )r r r r r r Ú get_remaining$ s zParser.get_remainingc C s t d| d¡¡d S )Nz!Br r ©ÚstructÚunpackr r r r r Ú get_uint8' s zParser.get_uint8c C s t d| d¡¡d S )Nz!Hé r r% r r r r Ú get_uint16* s zParser.get_uint16c C s t d| d¡¡d S )Nz!Ié r r% r r r r Ú get_uint32- s zParser.get_uint32c C s t | d¡d¡S )Né r r r r r r Ú get_uint480 s zParser.get_uint48)Úformatr c C s t || t |¡¡¡S r )r&