github.com/bluenviron/mediacommon@v1.9.3/pkg/formats/mpegts/track_test.go (about)

     1  //nolint:dupl
     2  package mpegts
     3  
     4  import (
     5  	"bytes"
     6  	"context"
     7  	"testing"
     8  
     9  	"github.com/asticode/go-astits"
    10  	"github.com/stretchr/testify/require"
    11  
    12  	"github.com/bluenviron/mediacommon/pkg/codecs/mpeg4audio"
    13  )
    14  
    15  func TestTrackUnmarshalExternal(t *testing.T) {
    16  	for _, ca := range []struct {
    17  		name  string
    18  		byts  []byte
    19  		track *Track
    20  	}{
    21  		{
    22  			"h264 gstreamer",
    23  			[]byte{
    24  				0x47, 0x40, 0x00, 0x31, 0xa6, 0x00, 0xff, 0xff,
    25  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    26  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    27  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    28  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    29  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    30  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    31  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    32  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    33  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    34  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    35  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    36  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    37  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    38  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    39  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    40  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    41  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    42  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    43  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    44  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    45  				0xff, 0xff, 0xff, 0x00, 0x00, 0xb0, 0x0d, 0x00,
    46  				0x01, 0xc1, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x20,
    47  				0xa2, 0xc3, 0x29, 0x41,
    48  				0x47, 0x40, 0x20, 0x31, 0x97, 0x00, 0xff, 0xff,
    49  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    50  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    51  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    52  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    53  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    54  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    55  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    56  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    57  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    58  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    59  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    60  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    61  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    62  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    63  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    64  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    65  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    66  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    67  				0xff, 0xff, 0xff, 0xff, 0x00, 0x02, 0xb0, 0x1c,
    68  				0x00, 0x01, 0xc1, 0x00, 0x00, 0xe0, 0x41, 0xf0,
    69  				0x00, 0x1b, 0xe0, 0x41, 0xf0, 0x0a, 0x05, 0x08,
    70  				0x48, 0x44, 0x4d, 0x56, 0xff, 0x1b, 0x44, 0x3f,
    71  				0x45, 0xdd, 0x4e, 0x12,
    72  			},
    73  			&Track{
    74  				PID:   65,
    75  				Codec: &CodecH264{},
    76  			},
    77  		},
    78  		{
    79  			"h264 ffmpeg",
    80  			[]byte{
    81  				0x47, 0x40, 0x00, 0x10,
    82  				0x00, 0x00, 0xb0, 0x0d, 0x00, 0x01, 0xc1, 0x00,
    83  				0x00, 0x00, 0x01, 0xf0, 0x00, 0x2a, 0xb1, 0x04,
    84  				0xb2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    85  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    86  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    87  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    88  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    89  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    90  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    91  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    92  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    93  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    94  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    95  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    96  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    97  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    98  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
    99  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   100  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   101  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   102  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   103  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   104  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   105  				0x47, 0x50, 0x00, 0x10, 0x00, 0x02, 0xb0, 0x12,
   106  				0x00, 0x01, 0xc1, 0x00, 0x00, 0xe1, 0x00, 0xf0,
   107  				0x00, 0x1b, 0xe1, 0x00, 0xf0, 0x00, 0x15, 0xbd,
   108  				0x4d, 0x56, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   109  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   110  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   111  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   112  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   113  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   114  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   115  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   116  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   117  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   118  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   119  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   120  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   121  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   122  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   123  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   124  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   125  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   126  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   127  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   128  				0xff, 0xff, 0xff, 0xff,
   129  			},
   130  			&Track{
   131  				PID:   256,
   132  				Codec: &CodecH264{},
   133  			},
   134  		},
   135  		{
   136  			"h265",
   137  			[]byte{
   138  				0x47, 0x40, 0x00, 0x10,
   139  				0x00, 0x00, 0xb0, 0x0d, 0x00, 0x01, 0xc1, 0x00,
   140  				0x00, 0x00, 0x01, 0xf0, 0x00, 0x2a, 0xb1, 0x04,
   141  				0xb2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   142  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   143  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   144  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   145  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   146  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   147  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   148  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   149  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   150  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   151  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   152  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   153  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   154  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   155  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   156  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   157  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   158  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   159  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   160  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   161  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   162  				0x47, 0x50, 0x00, 0x10, 0x00, 0x02, 0xb0, 0x18,
   163  				0x00, 0x01, 0xc1, 0x00, 0x00, 0xe1, 0x00, 0xf0,
   164  				0x00, 0x24, 0xe1, 0x00, 0xf0, 0x06, 0x05, 0x04,
   165  				0x48, 0x45, 0x56, 0x43, 0xcb, 0x9e, 0x00, 0x52,
   166  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   167  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   168  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   169  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   170  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   171  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   172  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   173  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   174  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   175  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   176  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   177  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   178  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   179  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   180  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   181  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   182  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   183  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   184  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   185  				0xff, 0xff, 0xff, 0xff,
   186  			},
   187  			&Track{
   188  				PID:   256,
   189  				Codec: &CodecH265{},
   190  			},
   191  		},
   192  		{
   193  			"mpeg4-audio",
   194  			[]byte{
   195  				0x47, 0x40, 0x00, 0x10,
   196  				0x00, 0x00, 0xb0, 0x0d, 0x00, 0x01, 0xc1, 0x00,
   197  				0x00, 0x00, 0x01, 0xf0, 0x00, 0x2a, 0xb1, 0x04,
   198  				0xb2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   199  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   200  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   201  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   202  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   203  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   204  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   205  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   206  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   207  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   208  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   209  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   210  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   211  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   212  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   213  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   214  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   215  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   216  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   217  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   218  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   219  				0x47, 0x50, 0x00, 0x10, 0x00, 0x02, 0xb0, 0x18,
   220  				0x00, 0x01, 0xc1, 0x00, 0x00, 0xe1, 0x00, 0xf0,
   221  				0x00, 0x0f, 0xe1, 0x00, 0xf0, 0x06, 0x0a, 0x04,
   222  				0x65, 0x6e, 0x67, 0x00, 0x90, 0xd3, 0x1b, 0x58,
   223  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   224  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   225  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   226  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   227  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   228  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   229  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   230  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   231  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   232  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   233  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   234  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   235  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   236  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   237  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   238  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   239  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   240  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   241  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   242  				0xff, 0xff, 0xff, 0xff, 0x47, 0x41, 0x00, 0x30,
   243  				0x07, 0x50, 0x00, 0x00, 0x7b, 0x0c, 0x7e, 0x00,
   244  				0x00, 0x00, 0x01, 0xc0, 0x0b, 0x11, 0x80, 0x80,
   245  				0x05, 0x21, 0x00, 0x07, 0xd8, 0x61, 0xff, 0xf1,
   246  				0x4c, 0x80, 0x03, 0xdf, 0xfc, 0xde, 0x02, 0x00,
   247  				0x4c, 0x61, 0x76, 0x63, 0x35, 0x38, 0x2e, 0x31,
   248  				0x34, 0x2e, 0x31, 0x30, 0x30, 0x00, 0x42, 0x20,
   249  				0x08, 0xc1, 0x18, 0x38, 0xff, 0xf1, 0x4c, 0x80,
   250  				0x01, 0xbf, 0xfc, 0x21, 0x10, 0x04, 0x60, 0x8c,
   251  				0x1c, 0xff, 0xf1, 0x4c, 0x80, 0x01, 0xbf, 0xfc,
   252  				0x21, 0x20, 0x04, 0x60, 0x8c, 0x1c, 0xff, 0xf1,
   253  				0x4c, 0x80, 0x2f, 0x5f, 0xfc, 0x21, 0x4c, 0xcc,
   254  				0x80, 0x01, 0x80, 0x7f, 0xff, 0xff, 0x39, 0x07,
   255  				0xa0, 0x91, 0x07, 0x37, 0xe3, 0x9b, 0xf0, 0x09,
   256  				0xfb, 0x01, 0x15, 0xc7, 0x5f, 0x20, 0x12, 0xc4,
   257  				0x08, 0xff, 0x06, 0x4c, 0x49, 0x27, 0xcb, 0xf7,
   258  				0xb2, 0x7c, 0xa2, 0x58, 0xfd, 0x24, 0xb9, 0x28,
   259  				0x9c, 0x05, 0xd8, 0xe0, 0x95, 0x2d, 0x91, 0x05,
   260  				0xb2, 0x71, 0xb0, 0xd8, 0x2e, 0x70, 0x99, 0xa3,
   261  				0x13, 0x97, 0x18, 0x8e, 0x1b, 0x18, 0x43, 0x38,
   262  				0xbe, 0x13, 0x0c, 0x42, 0x8c, 0x02, 0x6b, 0x31,
   263  				0x35, 0xc0, 0x26, 0x0a, 0xc4, 0x38, 0x3e, 0x5f,
   264  				0x85, 0xc6, 0x60, 0xf5, 0x89, 0xc2, 0x8c, 0x4e,
   265  				0x34, 0x22, 0x39, 0x0b, 0xa4, 0x06, 0x32, 0x1a,
   266  				0x47, 0x01, 0x00, 0x11, 0xf1, 0xe0, 0xc9, 0x97,
   267  				0x86, 0x40, 0x69, 0x20, 0xa6, 0x10, 0x52, 0x6a,
   268  				0x6c, 0x15, 0x4c, 0x99, 0x6d, 0x24, 0x26, 0x2b,
   269  				0x3b, 0x98, 0x9c, 0x04, 0xcb, 0x75, 0xc9, 0x8c,
   270  				0x44, 0x0a, 0x0c, 0xe3, 0xf0, 0x79, 0xdc, 0x16,
   271  				0xed, 0x29, 0x44, 0xd9, 0x54, 0x15, 0x98, 0x25,
   272  				0x8b, 0x73, 0x3b, 0x3b, 0xf3, 0x2b, 0x0f, 0x1f,
   273  				0x87, 0xd8, 0xe1, 0xfd, 0x37, 0x69, 0x33, 0xe6,
   274  				0xa5, 0x71, 0x11, 0x0a, 0xc8, 0x1a, 0x04, 0xaa,
   275  				0x49, 0x45, 0x96, 0x98, 0x49, 0x84, 0x44, 0xc4,
   276  				0x1f, 0xed, 0xf3, 0x5e, 0x93, 0xfa, 0xfe, 0x3d,
   277  				0x5e, 0x61, 0xed, 0x9e, 0x87, 0x22, 0x73, 0xe5,
   278  				0x78, 0x1d, 0x1d, 0xcb, 0x79, 0x59, 0x7d, 0x3d,
   279  				0x0f, 0xad, 0xe7, 0xfb, 0x1b, 0xf9, 0xa1, 0x81,
   280  				0x81, 0xac, 0x80, 0x8f, 0x97, 0xd8, 0x6e, 0x40,
   281  				0x7e, 0x5d, 0xb3, 0xf4, 0x87, 0xe6, 0xd5, 0x6b,
   282  				0x2f, 0xcd, 0x0e, 0xfa, 0x11, 0x49, 0xd8, 0xa7,
   283  				0x51, 0x1b, 0xfc, 0x79, 0x2b, 0x73, 0x67, 0xff,
   284  				0x6c, 0x96, 0x43, 0x29, 0x07, 0x63, 0x79, 0x27,
   285  				0x57, 0xfb, 0x6f, 0xfd, 0xf4, 0xb1, 0xe5, 0xe9,
   286  				0xce, 0x79, 0x80, 0x00, 0x58, 0x9e, 0x40, 0x21,
   287  				0x91, 0xb6, 0x4a, 0x56, 0x60, 0x9d, 0xf8, 0xa4,
   288  				0x0b, 0x38, 0x8e, 0x1c, 0xa4, 0xaf, 0x5e, 0x23,
   289  				0x2a, 0x2c, 0xff, 0xac, 0x47, 0x01, 0x00, 0x12,
   290  				0xc1, 0xe3, 0x11, 0x34, 0x02, 0x12, 0x92, 0x41,
   291  				0xc6, 0x23, 0x3e, 0x01, 0x2a, 0x70, 0x25, 0x29,
   292  				0xa4, 0x4d, 0x43, 0x2a, 0xb4, 0x8b, 0x01, 0x66,
   293  				0x8c, 0x98, 0xa3, 0x4b, 0x60, 0xf1, 0x3e, 0x6c,
   294  				0xa1, 0x03, 0x74, 0x87, 0x20, 0x18, 0x85, 0x11,
   295  				0x58, 0xb4, 0x26, 0x3c, 0xec, 0x4e, 0x48, 0x67,
   296  				0xf6, 0x6f, 0x9a, 0xf1, 0x3f, 0x51, 0xd4, 0x1e,
   297  				0x5d, 0x2a, 0x91, 0xc8, 0x3d, 0x04, 0x28, 0x39,
   298  				0x1f, 0x47, 0xc0, 0x27, 0xec, 0x04, 0x57, 0x1d,
   299  				0x7c, 0x80, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00,
   300  				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
   301  				0xff, 0xf1, 0x4c, 0x80, 0x64, 0xbf, 0xfc, 0x21,
   302  				0x7a, 0x14, 0x65, 0xfd, 0x27, 0xde, 0x6b, 0xc5,
   303  				0xfe, 0xbf, 0xc4, 0x66, 0x71, 0xbc, 0xe3, 0x16,
   304  				0xb6, 0x37, 0x72, 0x5e, 0xab, 0x99, 0xd4, 0xa8,
   305  				0xf6, 0x04, 0xb5, 0xbe, 0x19, 0x21, 0xed, 0xee,
   306  				0x3d, 0x66, 0xf1, 0x12, 0x34, 0x90, 0x47, 0x65,
   307  				0x14, 0x8a, 0xad, 0x93, 0x95, 0xa8, 0x23, 0x59,
   308  				0xa4, 0x33, 0x91, 0x49, 0x8b, 0x08, 0x47, 0x6f,
   309  				0x8f, 0x21, 0x81, 0x94, 0x4a, 0x44, 0x12, 0x7b,
   310  				0x2a, 0x64, 0xc3, 0xc7, 0x78, 0x5a, 0x84, 0xf6,
   311  				0xf8, 0xc2, 0x4f, 0x79, 0x1d, 0xbe, 0x5e, 0xa2,
   312  				0x80, 0x43, 0x5b, 0x0e, 0xea, 0xc5, 0x11, 0x56,
   313  				0x47, 0x01, 0x00, 0x13, 0x02, 0xa4, 0x86, 0x42,
   314  				0x91, 0x88, 0xd2, 0xaf, 0x53, 0x40, 0x23, 0x73,
   315  				0x4c, 0x4e, 0xb0, 0x48, 0x52, 0x29, 0x19, 0xda,
   316  				0xd2, 0x37, 0xf0, 0x64, 0xed, 0x00, 0x92, 0xa5,
   317  				0x12, 0xaf, 0xad, 0xba, 0x68, 0x4b, 0x93, 0x09,
   318  				0xe3, 0x31, 0x04, 0xb3, 0x36, 0x78, 0x42, 0x10,
   319  				0x9f, 0xaa, 0x23, 0x33, 0x22, 0x4c, 0xc6, 0x27,
   320  				0x08, 0x44, 0x28, 0x68, 0xc9, 0xd8, 0x94, 0x4a,
   321  				0x2a, 0x48, 0xe1, 0x2f, 0x13, 0x45, 0x92, 0x53,
   322  				0x35, 0xb5, 0x86, 0x20, 0x96, 0x44, 0x84, 0x89,
   323  				0x07, 0x8f, 0x89, 0x4c, 0xc6, 0x12, 0x99, 0x66,
   324  				0xde, 0xbb, 0x95, 0xe2, 0x92, 0xc8, 0xe3, 0x09,
   325  				0xd0, 0xa8, 0x42, 0x86, 0x10, 0x95, 0x08, 0xa4,
   326  				0x70, 0x99, 0xd2, 0x29, 0x4f, 0xe8, 0x4c, 0xb2,
   327  				0x89, 0xd3, 0xcd, 0x12, 0xa7, 0x14, 0x9d, 0xe2,
   328  				0x13, 0x8a, 0x4a, 0x82, 0x11, 0x2c, 0x66, 0x1c,
   329  				0x9b, 0x69, 0xc1, 0xa8, 0x3a, 0x75, 0xbd, 0x09,
   330  				0x3b, 0x1a, 0x40, 0xc2, 0x27, 0x31, 0xa4, 0xb2,
   331  				0x39, 0x12, 0x18, 0x29, 0x04, 0x29, 0xd3, 0x97,
   332  				0x26, 0x50, 0x10, 0x65, 0xc9, 0x84, 0x32, 0x32,
   333  				0x08, 0x5e, 0x98, 0x42, 0x63, 0x49, 0x32, 0x15,
   334  				0x8d, 0x20, 0x82, 0x52, 0x4c, 0xf1, 0x48, 0xc5,
   335  				0xa6, 0x43, 0x02, 0x7c, 0x19, 0x92, 0x86, 0x3e,
   336  				0x50, 0xbc, 0x46, 0x45,
   337  				0x47, 0x01, 0x00, 0x14, 0x3b, 0x4a, 0x55, 0x17,
   338  				0x16, 0x5a, 0x84, 0x48, 0x96, 0xc9, 0x92, 0xb4,
   339  				0xb6, 0xc2, 0x14, 0xd9, 0x2d, 0xca, 0x21, 0x36,
   340  				0x29, 0x3c, 0xd1, 0x08, 0xc0, 0x39, 0x3a, 0x93,
   341  				0x09, 0x0f, 0x02, 0x44, 0xf5, 0x88, 0xc2, 0x85,
   342  				0x32, 0xdd, 0xe3, 0xb5, 0x88, 0xb5, 0x37, 0x6a,
   343  				0x72, 0xb4, 0x22, 0x77, 0x72, 0x04, 0xaa, 0x24,
   344  				0x85, 0xe8, 0xa4, 0x20, 0x45, 0x21, 0x37, 0x0a,
   345  				0x40, 0xc6, 0x23, 0x5d, 0xd3, 0xa4, 0x82, 0x4e,
   346  				0x0e, 0x74, 0x8b, 0xe5, 0x14, 0x15, 0x42, 0x01,
   347  				0x80, 0x42, 0xa4, 0x5a, 0x8e, 0x84, 0xb1, 0x28,
   348  				0x9d, 0x69, 0x04, 0xe4, 0x50, 0x22, 0x90, 0x91,
   349  				0xb7, 0x9a, 0x21, 0x78, 0xe4, 0x8e, 0x12, 0x49,
   350  				0x95, 0x80, 0x87, 0x06, 0x90, 0x40, 0xf0, 0xa5,
   351  				0x34, 0xee, 0x72, 0x55, 0xe1, 0x93, 0xa7, 0x6a,
   352  				0xea, 0x86, 0x4d, 0x56, 0xa6, 0x4c, 0x69, 0x08,
   353  				0x74, 0xee, 0x96, 0xf2, 0x39, 0x03, 0x1a, 0xa6,
   354  				0xa1, 0x76, 0xb7, 0x81, 0x65, 0x75, 0x13, 0x1a,
   355  				0xb2, 0x02, 0x72, 0x03, 0x72, 0x14, 0x52, 0x05,
   356  				0x94, 0x42, 0xd3, 0x48, 0x95, 0xb2, 0x74, 0xef,
   357  				0x4f, 0xff, 0x72, 0x69, 0x95, 0x44, 0x45, 0x93,
   358  				0xe0, 0xd1, 0x70, 0x49, 0xc5, 0x6c, 0xbf, 0x38,
   359  				0x8b, 0x6b, 0x13, 0x14, 0xb2, 0x29, 0xa2, 0x41,
   360  				0xf1, 0x6a, 0x2a, 0x24,
   361  				0x47, 0x01, 0x00, 0x15,
   362  				0x13, 0x2f, 0x84, 0xaf, 0xc7, 0x68, 0xe8, 0x13,
   363  				0x3a, 0x48, 0xa4, 0x59, 0x0d, 0x24, 0x92, 0x9e,
   364  				0xb8, 0xb3, 0xd3, 0xa7, 0x7f, 0xdc, 0x80, 0x23,
   365  				0x71, 0xd0, 0x10, 0x5a, 0xc9, 0xd6, 0x01, 0x28,
   366  				0x06, 0xe2, 0x64, 0x57, 0x1b, 0x06, 0x8c, 0x49,
   367  				0x60, 0xe3, 0xa0, 0x9e, 0x38, 0x6e, 0x0b, 0x8c,
   368  				0xe3, 0xab, 0xc1, 0x81, 0x63, 0x46, 0x23, 0x0e,
   369  				0x3f, 0x1d, 0x37, 0x0a, 0x32, 0x74, 0x07, 0x50,
   370  				0x36, 0xea, 0x31, 0x38, 0xf0, 0x25, 0x05, 0x54,
   371  				0xd1, 0xfb, 0x5e, 0xe8, 0x6d, 0x4a, 0x62, 0x43,
   372  				0x86, 0x4d, 0x4d, 0x21, 0x43, 0x00, 0x46, 0x9e,
   373  				0x50, 0x9d, 0x39, 0x04, 0x29, 0xe8, 0xf3, 0xb4,
   374  				0x1a, 0x02, 0x2e, 0x0b, 0x23, 0xe8, 0x7a, 0xaf,
   375  				0xaa, 0x60, 0xdf, 0x51, 0xea, 0x8e, 0x92, 0xfa,
   376  				0x87, 0xd1, 0xc1, 0x36, 0xc2, 0x0c, 0x61, 0x22,
   377  				0xb3, 0xfc, 0x08, 0x15, 0x84, 0x4b, 0x47, 0x6c,
   378  				0xc0, 0x61, 0xf1, 0xc2, 0xd6, 0xa5, 0xc0, 0xd8,
   379  				0x44, 0xa5, 0xcc, 0x38, 0x0c, 0x3e, 0x38, 0x5c,
   380  				0x98, 0xce, 0x10, 0xa4, 0x80, 0x00, 0x26, 0x00,
   381  				0x10, 0x04, 0x0a, 0x26, 0x45, 0xa2, 0x8e, 0x16,
   382  				0x06, 0xc5, 0x20, 0x88, 0x04, 0xd0, 0x02, 0x48,
   383  				0x41, 0x34, 0x00, 0x98, 0x10, 0x46, 0x04, 0x0e,
   384  				0x11, 0x1c, 0x70, 0x1f, 0xf4, 0xc9, 0xf2, 0x89,
   385  				0x47, 0x01, 0x00, 0x16, 0x95, 0x9e, 0x86, 0x4d,
   386  				0x85, 0xc9, 0xc5, 0xe3, 0x90, 0xc8, 0xc3, 0x2e,
   387  				0x06, 0x5f, 0xf2, 0x66, 0x3c, 0x9d, 0x0e, 0xb4,
   388  				0x87, 0x41, 0xb2, 0xb5, 0x86, 0x4c, 0xa5, 0xe1,
   389  				0x40, 0x4a, 0x04, 0x02, 0x68, 0x06, 0xc4, 0x24,
   390  				0x04, 0x51, 0x08, 0xa2, 0x41, 0x44, 0x02, 0x8a,
   391  				0x41, 0x30, 0x40, 0xd8, 0xc4, 0xd0, 0x82, 0x32,
   392  				0x00, 0x4d, 0x10, 0x38, 0x54, 0x10, 0x44, 0x0a,
   393  				0x20, 0x1c, 0x71, 0x1c, 0x71, 0x04, 0x80, 0x02,
   394  				0x20, 0x05, 0x10, 0x8e, 0x3a, 0x0d, 0x8b, 0x44,
   395  				0x20, 0x92, 0x00, 0x40, 0x00, 0xa2, 0x50, 0x4a,
   396  				0x02, 0x2d, 0x24, 0x70, 0x88, 0x22, 0x84, 0x13,
   397  				0x91, 0x70, 0x95, 0xc2, 0x70, 0xa4, 0x26, 0x42,
   398  				0x10, 0x24, 0x82, 0x17, 0x24, 0x71, 0xd2, 0x00,
   399  				0x00, 0x00, 0x00, 0x04, 0x60, 0xfd, 0x27, 0xde,
   400  				0x6b, 0xc5, 0xfe, 0xbf, 0xc4, 0x66, 0x71, 0xbc,
   401  				0xe3, 0x16, 0xb6, 0x37, 0x72, 0x5e, 0xab, 0x99,
   402  				0xd4, 0xa8, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x00,
   403  				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   404  				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   405  				0x1c, 0xff, 0xf1, 0x4c, 0x80, 0x62, 0xff, 0xfc,
   406  				0x21, 0x1a, 0x14, 0x25, 0xfd, 0x20, 0xe3, 0x9f,
   407  				0x3e, 0x00, 0x00, 0x01, 0xa6, 0xde, 0xdf, 0x7f,
   408  				0x94, 0xfa, 0x04, 0xfe,
   409  				0x47, 0x01, 0x00, 0x17,
   410  				0x11, 0x7d, 0x07, 0x23, 0xfa, 0x3e, 0xfb, 0x78,
   411  				0x43, 0xb6, 0xd8, 0x23, 0x87, 0xbc, 0x4b, 0x1e,
   412  				0x42, 0x74, 0xc8, 0x41, 0xec, 0x25, 0x62, 0x29,
   413  				0x26, 0x42, 0x25, 0x40, 0x24, 0x70, 0x73, 0xff,
   414  				0xce, 0x4c, 0x39, 0x5c, 0x1a, 0x41, 0x39, 0x71,
   415  				0x48, 0xe4, 0x04, 0x48, 0xf8, 0x7a, 0x89, 0x84,
   416  				0xd9, 0xa9, 0xa8, 0xce, 0x40, 0xf2, 0x88, 0x42,
   417  				0x3c, 0xcb, 0x28, 0x8e, 0x32, 0x2e, 0x4d, 0xcd,
   418  				0x10, 0x95, 0x14, 0x85, 0x8c, 0x09, 0x12, 0x42,
   419  				0x96, 0xa1, 0x13, 0xbc, 0x12, 0x14, 0xe2, 0x93,
   420  				0xc3, 0xd3, 0x25, 0x4c, 0x84, 0x93, 0x78, 0x94,
   421  				0xd0, 0x91, 0x8b, 0x5b, 0x01, 0xd4, 0x93, 0xa7,
   422  				0x78, 0x8e, 0x07, 0x19, 0xc7, 0x22, 0x92, 0x95,
   423  				0x08, 0x9e, 0xf3, 0x2a, 0x41, 0x98, 0x12, 0x18,
   424  				0x12, 0x13, 0xcd, 0x63, 0x28, 0xbc, 0x09, 0x03,
   425  				0xd8, 0x23, 0x9a, 0x61, 0x1c, 0x25, 0x3c, 0x16,
   426  				0xb1, 0x1c, 0x3a, 0x49, 0xe4, 0xa1, 0x4b, 0x11,
   427  				0x49, 0xa6, 0x11, 0x14, 0x86, 0xa2, 0xc2, 0x12,
   428  				0xb0, 0x92, 0x41, 0xb0, 0x4b, 0x52, 0x92, 0x49,
   429  				0xc7, 0xcc, 0x94, 0x09, 0xe3, 0x31, 0x84, 0x35,
   430  				0x7c, 0xb0, 0x8f, 0x08, 0xdb, 0x91, 0xa0, 0x92,
   431  				0x74, 0x30, 0x24, 0x1f, 0x92, 0x22, 0x9e, 0x26,
   432  				0x42, 0x85, 0x62, 0x61, 0xc0, 0x92, 0xb6, 0xf2,
   433  				0x47, 0x01, 0x00, 0x18, 0x41, 0xc6, 0x10, 0x3c,
   434  				0x52, 0x36, 0x18, 0x46, 0x56, 0x1f, 0x00, 0xa1,
   435  				0x50, 0x9c, 0x86, 0x06, 0x99, 0x02, 0x53, 0x21,
   436  				0xa3, 0xbc, 0x4a, 0xb4, 0x2b, 0x1e, 0x16, 0x01,
   437  				0x20, 0x8d, 0x09, 0x58, 0x04, 0xa2, 0x49, 0x3c,
   438  				0xcb, 0x08, 0x99, 0xd9, 0x51, 0x07, 0xa5, 0xea,
   439  				0x1b, 0xc4, 0x24, 0x1c, 0x82, 0x42, 0x46, 0x16,
   440  				0x60, 0x95, 0x38, 0x53, 0x2e, 0x80, 0x95, 0x09,
   441  				0x04, 0x13, 0x14, 0x84, 0xa6, 0x10, 0x90, 0x7f,
   442  				0xaa, 0x92, 0xa1, 0x08, 0x95, 0xba, 0x18, 0x14,
   443  				0xa2, 0x50, 0xb2, 0xb8, 0x0c, 0xae, 0x39, 0x6f,
   444  				0x68, 0x51, 0x3a, 0x3a, 0x26, 0xb1, 0x3a, 0xd7,
   445  				0x88, 0x6b, 0xaf, 0x51, 0x1a, 0x3e, 0x3a, 0x1a,
   446  				0x2f, 0x24, 0x4a, 0x68, 0x48, 0xc5, 0x0f, 0x1c,
   447  				0xc4, 0x90, 0x9b, 0xb7, 0x25, 0x9a, 0xd7, 0x10,
   448  				0xad, 0x7a, 0x89, 0x21, 0x39, 0xba, 0x02, 0x52,
   449  				0xa1, 0x54, 0x77, 0xaa, 0x32, 0x10, 0xc0, 0x84,
   450  				0x89, 0x2f, 0x12, 0xc0, 0xcd, 0xc1, 0xe9, 0x91,
   451  				0x4c, 0x8a, 0x24, 0x92, 0x93, 0xc9, 0x30, 0x35,
   452  				0x13, 0x08, 0xe0, 0x61, 0x11, 0x7a, 0x49, 0x1d,
   453  				0x24, 0xa4, 0x3e, 0x8b, 0xb0, 0x45, 0xe4, 0x24,
   454  				0x98, 0x44, 0x93, 0x22, 0x50, 0x4c, 0xa4, 0xca,
   455  				0x2d, 0xe4, 0xc9, 0x36, 0xc4, 0x85, 0x51, 0xc8,
   456  				0x94, 0x6c, 0x10, 0x3d,
   457  				0x47, 0x01, 0x00, 0x19,
   458  				0x8b, 0x4e, 0x6d, 0x8b, 0x5a, 0xc4, 0x0d, 0x15,
   459  				0x28, 0x83, 0x22, 0x90, 0xad, 0x08, 0x9c, 0x88,
   460  				0x44, 0x62, 0x86, 0x88, 0x0c, 0xa6, 0xc2, 0x04,
   461  				0x4d, 0xe7, 0xc2, 0xc2, 0x94, 0xd9, 0x81, 0x3c,
   462  				0x81, 0x08, 0x4d, 0x32, 0xbe, 0xa0, 0x4a, 0x99,
   463  				0xc8, 0x04, 0xf2, 0x81, 0x08, 0xd0, 0x3d, 0xa4,
   464  				0x42, 0x41, 0x65, 0x14, 0x92, 0x69, 0x95, 0x66,
   465  				0xb6, 0xd3, 0x0e, 0x40, 0x8b, 0x26, 0x97, 0x21,
   466  				0x17, 0x21, 0x04, 0x98, 0x4a, 0x40, 0x25, 0xf4,
   467  				0xdf, 0xcf, 0x13, 0x0a, 0x67, 0x36, 0x88, 0x68,
   468  				0x90, 0xe4, 0x00, 0xe4, 0x14, 0xe1, 0xbc, 0x29,
   469  				0x68, 0x80, 0xc9, 0xe9, 0x9a, 0x49, 0xc1, 0x26,
   470  				0x54, 0xcb, 0xa5, 0x22, 0x54, 0xf1, 0xd4, 0xd9,
   471  				0xa9, 0x20, 0x16, 0xff, 0xb1, 0x36, 0xa4, 0x84,
   472  				0x56, 0xe0, 0x04, 0x99, 0x03, 0x23, 0x4b, 0x47,
   473  				0xbc, 0xb0, 0x03, 0xe0, 0x8f, 0x26, 0x12, 0x7f,
   474  				0x9c, 0x9a, 0x5f, 0x80, 0x04, 0x89, 0xcf, 0x68,
   475  				0xb0, 0x89, 0x26, 0x92, 0x7d, 0x02, 0x0f, 0x09,
   476  				0x0a, 0x6c, 0x21, 0x41, 0xe4, 0x65, 0x42, 0xd8,
   477  				0xf8, 0x0b, 0x09, 0x3c, 0xf2, 0x81, 0xf6, 0x3e,
   478  				0xc7, 0xfb, 0xdc, 0x86, 0xd5, 0xfc, 0xd3, 0x38,
   479  				0x7a, 0xf7, 0x6e, 0x13, 0x87, 0x47, 0x30, 0xe6,
   480  				0x22, 0x30, 0xe5, 0x13, 0x64, 0x3c, 0x9f, 0x46,
   481  				0x47, 0x01, 0x00, 0x1a, 0x82, 0x2e, 0x4c, 0x2d,
   482  				0x6e, 0xca, 0xd9, 0x99, 0x8f, 0x27, 0x97, 0x30,
   483  				0x7b, 0xa1, 0x32, 0xb2, 0xb7, 0x29, 0x1d, 0x3a,
   484  				0xb8, 0xe2, 0x88, 0x29, 0x44, 0x29, 0xd3, 0x25,
   485  				0x4e, 0x99, 0x15, 0x28, 0x8d, 0x35, 0x70, 0xaa,
   486  				0x27, 0x4e, 0x9f, 0x1c, 0xc6, 0x90, 0x55, 0x32,
   487  				0x2a, 0x57, 0x1c, 0xc6, 0x90, 0xc6, 0xd3, 0x20,
   488  				0xa5, 0x12, 0xa7, 0x4e, 0xd1, 0x07, 0x84, 0x26,
   489  				0x88, 0x04, 0x20, 0x00, 0x94, 0x88, 0x16, 0x8c,
   490  				0x82, 0x40, 0x01, 0x10, 0x50, 0x24, 0x88, 0x14,
   491  				0x48, 0x2d, 0x30, 0x5a, 0x20, 0x26, 0x04, 0x12,
   492  				0x80, 0x02, 0x10, 0x10, 0x42, 0xc0, 0x08, 0x21,
   493  				0x04, 0x40, 0x0b, 0x4d, 0x04, 0x80, 0x0a, 0x2c,
   494  				0x04, 0x81, 0x23, 0x85, 0x07, 0x5f, 0xe1, 0x11,
   495  				0x44, 0x02, 0xd0, 0x91, 0x44, 0x40, 0x21, 0x21,
   496  				0x04, 0x2c, 0x40, 0x21, 0x42, 0x45, 0xa6, 0x02,
   497  				0x02, 0x59, 0x31, 0x2c, 0x9c, 0x45, 0x90, 0x10,
   498  				0xab, 0x31, 0x12, 0x14, 0xd2, 0x4b, 0x15, 0x61,
   499  				0x13, 0x84, 0x17, 0x64, 0x76, 0x41, 0x05, 0x8b,
   500  				0x84, 0x59, 0x08, 0x91, 0x2d, 0xfa, 0xe4, 0xeb,
   501  				0xcd, 0x24, 0xd6, 0x91, 0xb7, 0x98, 0x24, 0xdc,
   502  				0xc7, 0x09, 0x6c, 0x38, 0x4b, 0x60, 0x00, 0x00,
   503  				0x00, 0x00, 0x10, 0x83, 0xf4, 0x83, 0x8e, 0x7c,
   504  				0xf8, 0x00, 0x00, 0x06,
   505  				0x47, 0x01, 0x00, 0x1b, 0x9b, 0x7b, 0x7d, 0xfe,
   506  				0x53, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   507  				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   508  				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70,
   509  				0xff, 0xf1, 0x4c, 0x80, 0x63, 0x7f, 0xfc, 0x21,
   510  				0x1a, 0x14, 0x35, 0xfd, 0x27, 0x1c, 0xf9, 0xd7,
   511  				0x75, 0x5f, 0x1f, 0x6b, 0xc0, 0x00, 0x07, 0xc5,
   512  				0x7a, 0xd7, 0xde, 0xf9, 0xba, 0xf8, 0x04, 0x74,
   513  				0x9f, 0x16, 0x48, 0xf8, 0xb7, 0xc1, 0x64, 0xbc,
   514  				0x11, 0xc4, 0xf8, 0x5b, 0x79, 0xde, 0x71, 0x19,
   515  				0xd7, 0x49, 0x54, 0x79, 0x02, 0xbc, 0x96, 0x0f,
   516  				0x07, 0x95, 0xe4, 0x13, 0x87, 0x86, 0x21, 0x97,
   517  				0xa9, 0xff, 0xa2, 0x2f, 0xc6, 0xf1, 0xc9, 0x19,
   518  				0x5b, 0x06, 0x41, 0x6b, 0xca, 0xf8, 0x32, 0x79,
   519  				0x8b, 0x64, 0x6d, 0xdb, 0xb3, 0x61, 0x92, 0xb6,
   520  				0x8e, 0x38, 0x8e, 0x39, 0x6e, 0xcd, 0x45, 0x9d,
   521  				0x3c, 0x94, 0x38, 0x64, 0x21, 0xc3, 0xbb, 0x16,
   522  				0x4e, 0xb6, 0x46, 0xed, 0x91, 0x95, 0xe4, 0x67,
   523  				0x57, 0x90, 0xc6, 0xce, 0x26, 0xf9, 0xc4, 0x5f,
   524  				0x38, 0x8c, 0x97, 0xd4, 0x85, 0xe1, 0x0a, 0x4e,
   525  				0xf3, 0xc8, 0xc8, 0xb8, 0x43, 0x1e, 0x42, 0x12,
   526  				0x2e, 0x10, 0xd1, 0xdc, 0x27, 0xc2, 0x38, 0xf1,
   527  				0x1c, 0x21, 0xc8, 0xcd, 0x9b, 0xc7, 0x26, 0x91,
   528  				0xad, 0x91, 0x23, 0x5a,
   529  				0x47, 0x01, 0x00, 0x1c,
   530  				0x41, 0x25, 0xc8, 0x23, 0x59, 0x64, 0xa4, 0x48,
   531  				0xfd, 0x71, 0x18, 0x75, 0x38, 0x40, 0x93, 0xa9,
   532  				0x53, 0x84, 0x09, 0x0a, 0x95, 0x08, 0x6e, 0xaa,
   533  				0x12, 0xc7, 0xc8, 0x25, 0x8f, 0x21, 0x02, 0x70,
   534  				0xb2, 0x57, 0x24, 0x12, 0xb9, 0x23, 0x85, 0x91,
   535  				0xf9, 0xa4, 0xe4, 0xc9, 0x20, 0x52, 0xf0, 0x8f,
   536  				0x20, 0x59, 0x3c, 0x72, 0xa6, 0xc7, 0x23, 0x22,
   537  				0x05, 0xa2, 0x82, 0x72, 0x20, 0x70, 0x90, 0x09,
   538  				0xc8, 0x05, 0x14, 0x82, 0x08, 0x80, 0x43, 0x3c,
   539  				0x82, 0x68, 0x46, 0x43, 0x9e, 0x46, 0x7c, 0x32,
   540  				0x08, 0x86, 0x4d, 0x08, 0xc8, 0x08, 0x25, 0x0e,
   541  				0x1f, 0x08, 0xbe, 0x3a, 0x2b, 0x7e, 0x6d, 0x65,
   542  				0x34, 0x84, 0x49, 0xbd, 0x93, 0x59, 0xcd, 0x24,
   543  				0x28, 0x96, 0xec, 0xdb, 0x71, 0x75, 0x23, 0xc9,
   544  				0x3c, 0xa4, 0x24, 0xbf, 0x84, 0x93, 0x53, 0xbc,
   545  				0x8c, 0x97, 0x91, 0x7b, 0xff, 0x37, 0x8e, 0xe4,
   546  				0xc9, 0xbc, 0xa4, 0xf2, 0x2b, 0x22, 0xba, 0xd9,
   547  				0x52, 0x41, 0x29, 0x0b, 0x27, 0x83, 0x59, 0x19,
   548  				0x12, 0x32, 0xa2, 0xc8, 0xaf, 0x23, 0x95, 0x64,
   549  				0x11, 0x5c, 0x82, 0x4b, 0xc1, 0xe5, 0x69, 0x04,
   550  				0x62, 0x57, 0x21, 0x11, 0x75, 0x94, 0x4b, 0x72,
   551  				0x27, 0x64, 0x11, 0x89, 0x37, 0x85, 0x59, 0x05,
   552  				0x88, 0x9a, 0xd7, 0xd9, 0x24, 0x26, 0xc4, 0xac,
   553  				0x47, 0x01, 0x00, 0x1d, 0x96, 0x4d, 0x62, 0xe3,
   554  				0x93, 0x6d, 0xc8, 0x84, 0xa6, 0x88, 0x82, 0xd7,
   555  				0xef, 0x08, 0xac, 0x44, 0x17, 0x34, 0x90, 0x85,
   556  				0xc2, 0x44, 0xac, 0xd6, 0x40, 0x42, 0xb7, 0x44,
   557  				0x40, 0x4b, 0xac, 0x44, 0x44, 0x4b, 0xac, 0x56,
   558  				0x49, 0x71, 0x2b, 0x29, 0xa4, 0x05, 0x36, 0xb1,
   559  				0x59, 0x01, 0x2c, 0x90, 0xb0, 0x04, 0x26, 0x8a,
   560  				0xb1, 0x89, 0x6e, 0x0a, 0xb3, 0x15, 0xbc, 0x2e,
   561  				0xb8, 0xa8, 0x05, 0xc2, 0x3f, 0xae, 0xb8, 0x51,
   562  				0x7e, 0x72, 0xa3, 0x17, 0xe7, 0x32, 0x08, 0xad,
   563  				0xbe, 0xb8, 0xb6, 0x66, 0x74, 0xf0, 0xb1, 0x6a,
   564  				0x17, 0x92, 0x8a, 0x22, 0x70, 0x00, 0x42, 0x44,
   565  				0x82, 0x00, 0x41, 0x2c, 0x00, 0x2d, 0x28, 0x04,
   566  				0x20, 0x20, 0x88, 0x10, 0x46, 0x40, 0x38, 0x54,
   567  				0x13, 0x80, 0x02, 0x12, 0x11, 0x69, 0x02, 0x8a,
   568  				0x05, 0xa6, 0x82, 0x28, 0x05, 0xa0, 0x02, 0x28,
   569  				0x87, 0x67, 0x23, 0xfd, 0xff, 0x3e, 0x19, 0x0d,
   570  				0x1c, 0x22, 0x2c, 0xc4, 0x12, 0x45, 0xbc, 0x82,
   571  				0x82, 0x48, 0x41, 0x14, 0x43, 0xc8, 0x48, 0xe1,
   572  				0x61, 0xe4, 0x18, 0x64, 0x21, 0xc3, 0xe3, 0x90,
   573  				0x08, 0x81, 0x1b, 0x1f, 0xaf, 0x51, 0x60, 0xa2,
   574  				0xc1, 0x68, 0x00, 0x98, 0x01, 0xc2, 0x80, 0x9a,
   575  				0x00, 0x1c, 0x2a, 0x36, 0x35, 0xa4, 0x82, 0x32,
   576  				0x24, 0x12, 0x81, 0x20,
   577  				0x47, 0x01, 0x00, 0x1e,
   578  				0x98, 0x00, 0x4a, 0x02, 0x28, 0x84, 0x11, 0x90,
   579  				0x8e, 0x12, 0x01, 0x20, 0x20, 0x8a, 0x11, 0x69,
   580  				0x20, 0x80, 0x01, 0x45, 0x23, 0xc2, 0xf5, 0xee,
   581  				0x3a, 0x8f, 0x09, 0xc7, 0x11, 0x69, 0x80, 0x9b,
   582  				0xe7, 0x13, 0x7b, 0xff, 0xfc, 0xce, 0xb9, 0xcc,
   583  				0xeb, 0x3b, 0x1f, 0xce, 0xce, 0xf3, 0x88, 0xbf,
   584  				0x1a, 0x46, 0x74, 0xec, 0x7b, 0x3b, 0xff, 0xce,
   585  				0x38, 0xf2, 0x13, 0xa7, 0x63, 0xe7, 0xff, 0xf9,
   586  				0x8f, 0x9e, 0x46, 0xa4, 0x32, 0x21, 0x86, 0x4c,
   587  				0x30, 0xc9, 0x86, 0xa1, 0x30, 0xc3, 0x23, 0x97,
   588  				0x09, 0x2a, 0x95, 0x38, 0xed, 0x4e, 0x38, 0x12,
   589  				0x01, 0x09, 0x30, 0xd4, 0x27, 0x0e, 0x19, 0x20,
   590  				0xd4, 0x27, 0x0f, 0x2e, 0x46, 0xa0, 0x48, 0x06,
   591  				0x19, 0x28, 0x68, 0x24, 0x88, 0x7c, 0x75, 0x04,
   592  				0x50, 0x8c, 0x81, 0x3e, 0xce, 0x41, 0x04, 0x4f,
   593  				0x20, 0x84, 0x11, 0x42, 0x32, 0x1a, 0x32, 0x04,
   594  				0x32, 0x56, 0xd1, 0xff, 0x62, 0x76, 0xd0, 0x45,
   595  				0x13, 0xec, 0xdc, 0x3e, 0x3e, 0x9d, 0x8f, 0x9f,
   596  				0xff, 0xb2, 0x6f, 0x7e, 0x3d, 0x9d, 0x9d, 0xa7,
   597  				0x10, 0x7c, 0xe2, 0x0f, 0xc6, 0x93, 0xbb, 0x3b,
   598  				0x85, 0x9c, 0x49, 0xef, 0xff, 0xfb, 0x1e, 0xce,
   599  				0x25, 0x3a, 0x71, 0x0b, 0xb3, 0x89, 0x4e, 0x79,
   600  				0x24, 0x43, 0x26, 0x89, 0xe4, 0xd1, 0x6f, 0x84,
   601  				0x47, 0x01, 0x00, 0x3f, 0x60, 0x00, 0xff, 0xff,
   602  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   603  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   604  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   605  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   606  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   607  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   608  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   609  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   610  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   611  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   612  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   613  				0xff, 0xff, 0xff, 0xff, 0xff, 0x41, 0x1b, 0x68,
   614  				0x24, 0x84, 0x13, 0x9f, 0x0f, 0x8e, 0xdb, 0xe1,
   615  				0x6d, 0xfe, 0x78, 0x2c, 0xeb, 0x7c, 0x25, 0xbb,
   616  				0x39, 0x16, 0x6a, 0x3f, 0x3c, 0x46, 0x0c, 0x12,
   617  				0x3a, 0x48, 0x3c, 0x77, 0x06, 0x46, 0x0c, 0x1e,
   618  				0x13, 0x83, 0x70, 0x9a, 0x40, 0x00, 0x00, 0x00,
   619  				0x00, 0x08, 0x61, 0xfa, 0x4e, 0x39, 0xf3, 0xae,
   620  				0xea, 0xbe, 0x3e, 0xd7, 0x80, 0x00, 0x0f, 0x8a,
   621  				0xf5, 0xaf, 0xbd, 0xf3, 0x75, 0xf0, 0x00, 0x00,
   622  				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   623  				0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   624  				0x00, 0x00, 0x00, 0x38,
   625  			},
   626  			&Track{
   627  				PID: 256,
   628  				Codec: &CodecMPEG4Audio{
   629  					Config: mpeg4audio.AudioSpecificConfig{
   630  						Type:         2,
   631  						SampleRate:   48000,
   632  						ChannelCount: 2,
   633  					},
   634  				},
   635  			},
   636  		},
   637  		{
   638  			"opus",
   639  			[]byte{
   640  				0x47, 0x40, 0x00, 0x10, 0x00, 0x00, 0xb0, 0x0d,
   641  				0x00, 0x01, 0xc1, 0x00, 0x00, 0x00, 0x01, 0xf0,
   642  				0x00, 0x2a, 0xb1, 0x04, 0xb2, 0xff, 0xff, 0xff,
   643  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   644  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   645  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   646  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   647  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   648  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   649  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   650  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   651  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   652  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   653  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   654  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   655  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   656  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   657  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   658  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   659  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   660  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   661  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   662  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   663  				0xff, 0xff, 0xff, 0xff,
   664  				0x47, 0x50, 0x00, 0x10,
   665  				0x00, 0x02, 0xb0, 0x22, 0x00, 0x01, 0xc1, 0x00,
   666  				0x00, 0xe1, 0x00, 0xf0, 0x00, 0x06, 0xe1, 0x00,
   667  				0xf0, 0x10, 0x05, 0x04, 0x4f, 0x70, 0x75, 0x73,
   668  				0x7f, 0x02, 0x80, 0x02, 0x0a, 0x04, 0x64, 0x65,
   669  				0x75, 0x00, 0xc4, 0x80, 0xf8, 0x2f, 0xff, 0xff,
   670  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   671  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   672  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   673  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   674  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   675  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   676  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   677  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   678  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   679  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   680  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   681  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   682  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   683  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   684  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   685  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   686  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   687  				0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
   688  			},
   689  			&Track{
   690  				PID: 256,
   691  				Codec: &CodecOpus{
   692  					ChannelCount: 2,
   693  				},
   694  			},
   695  		},
   696  	} {
   697  		t.Run(ca.name, func(t *testing.T) {
   698  			dem := astits.NewDemuxer(
   699  				context.Background(),
   700  				bytes.NewReader(ca.byts),
   701  				astits.DemuxerOptPacketSize(188))
   702  
   703  			pmt, err := findPMT(dem)
   704  			require.NoError(t, err)
   705  
   706  			var track Track
   707  			err = track.unmarshal(dem, pmt.ElementaryStreams[0])
   708  			require.NoError(t, err)
   709  			require.Equal(t, ca.track, &track)
   710  		})
   711  	}
   712  }